summaryrefslogtreecommitdiff
path: root/web/funnelAC/userman/u_manual.ps
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/funnelAC/userman/u_manual.ps
Initial commit
Diffstat (limited to 'web/funnelAC/userman/u_manual.ps')
-rw-r--r--web/funnelAC/userman/u_manual.ps9876
1 files changed, 9876 insertions, 0 deletions
diff --git a/web/funnelAC/userman/u_manual.ps b/web/funnelAC/userman/u_manual.ps
new file mode 100644
index 0000000000..e8b54fd616
--- /dev/null
+++ b/web/funnelAC/userman/u_manual.ps
@@ -0,0 +1,9876 @@
+%!PS-Adobe-2.0
+%%Creator: dvips 5.493 Copyright 1986, 1992 Radical Eye Software
+%%Title: u_manual.dvi
+%%CreationDate: Sat Feb 6 19:08:15 1993
+%%Pages: 128
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSCommandLine: dvips u_manual
+%DVIPSSource: TeX output 1993.02.06:1904
+%%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/userman/u_manual.dvi)
+@start /Fa 13 118 df<072008E018E0306030C060C060C060C0C180C188C1884388659038E0
+0D0E7C8D12>97 D<03C00C6018E030E030006000600060004000C0004020604021801E000B0E7C
+8D10>99 D<07001880304060404080FF00C000C000C0008000C040C08043003C000A0E7B8D10>
+101 D<1F0006000600060006000C000C000C000C0019C01A601C201830306030603060306060C0
+60C461846188C098C0E00E177D9612>104 D<030706000000000000384C4C4C8C181818303262
+62243808177D960B>I<3E0C0C0C0C181818183030303060606060C0D0D0D0D06007177C9609>
+108 D<387044984708460C8C180C180C180C18183018311861186230263038100E7D8D14>110
+D<1C702288230C230C460C060C060C060C0C180C180C100C301A601B8018001800300030003000
+FC000E147E8D12>112 D<072008A018E0306030C060C060C060C0C180C180C180438067003B00
+030003000600060006003F800B147C8D10>I<38F04518463846308C000C000C000C0018001800
+18001800300030000D0E7D8D0F>I<07800C4018E018E038001E001F8007C000C060C0E0C0C180
+C3003E000B0E7D8D0F>I<030003000600060006000600FF800C000C000C001800180018001800
+300031003100310032001C0009147D930C>I<1C0826184618461886300C300C300C3018601862
+1862186208E407380F0E7D8D13>I E /Fb 11 115 df<07E01FF03838701C701C781C7E1C7FB8
+3FF01FF00FF83BFC70FEE03EE01EE00EE00EF00C78183FF00FE00F157E9414>56
+D<FFF83FE0FFF83FE00F800E000F801C000F8030000F8060000F81C0000F8380000F8700000F8F
+00000F9F00000FBF80000FE7C0000FC7C0000F83E0000F81F0000F81F8000F80F8000F807C000F
+803E000F803F00FFF8FFE0FFF8FFE01B177E9620>75 D<FEFEFEE0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0FEFEFE07217D980B>91 D<FEFEFE0E0E0E0E0E0E0E0E0E0E0E
+0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EFEFEFE072180980B>93 D<0FE0003838003C1C003C1E00
+181E00001E0000FE000F9E003C1E00781E00F01E00F01E00F01E00786FC01F87C0120F7F8E14>
+97 D<07F01C18380C78067007F007F007FFFFF000F0007000780038031E0603FC100F7F8E13>
+101 D<0FCF001873803033807038007038007038007038003030001860002FC000200000300000
+3FF8003FFE003FFF00700780E00380E00380E00380700700380E000FF80011167F8E14>103
+D<FC0000FC00003C00003C00003C00003C00003C00003C00003C7C003D8E003E0F003E0F003C0F
+003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F00FF3FC0FF3FC012177E9617>I<38
+7C7C7C3800000000FCFC3C3C3C3C3C3C3C3C3C3C3CFFFF08187F970B>I<FC7C00FD8E003E0F00
+3E0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F00FF3FC0FF3FC0120F7E
+8E17>110 D<F8E0F9383A783A783C303C003C003C003C003C003C003C003C00FF80FF800D0F7E
+8E11>114 D E /Fc 1 111 df<383C0044C6004702004602008E06000C06000C06000C0C00180C
+00180C40181840181880300880300F00120E7F8D15>110 D E /Fd 57 123
+df<387CFEFEFE7C3807077C8610>46 D<0000180000380000380000700000700000E00000E000
+00E00001C00001C0000380000380000380000700000700000700000E00000E00001C00001C0000
+1C0000380000380000700000700000700000E00000E00001C00001C00001C00003800003800007
+00000700000700000E00000E00000E00001C00001C0000380000380000380000700000700000E0
+0000E00000C0000015317DA41C>I<00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C
+7C007CFC007CFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007E
+FC007EFC007E7C007C7C007C7C007C3E00F83E00F81F01F00F83E007FFC000FE0017207E9F1C>
+I<00180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001F80001F8
+0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
+0001F80001F80001F80001F8007FFFE07FFFE013207C9F1C>I<03FC000FFF003C1FC07007E07C
+07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F8000
+1F00003E0000380000700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FF
+FFF0FFFFF015207D9F1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F8
+1F03F00003F00003E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE
+7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000
+E00001E00003E00003E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307
+E00707E00E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007
+E00007E00007E00007E000FFFE00FFFE17207E9F1C>I<1000201E01E01FFFC01FFF801FFF001F
+FE001FF8001BC00018000018000018000018000019FC001FFF001E0FC01807E01803E00003F000
+03F00003F80003F83803F87C03F8FE03F8FE03F8FC03F0FC03F07007E03007C01C1F800FFF0003
+F80015207D9F1C>I<001F8000FFE003F07007C0F00F01F81F01F83E01F83E01F87E00F07C0000
+7C0000FC0800FC7FC0FCFFE0FD80F0FF00F8FE007CFE007CFC007EFC007EFC007EFC007E7C007E
+7C007E7C007E3C007C3E007C1E00F80F00F00783E003FFC000FF0017207E9F1C>I<6000007800
+007FFFFE7FFFFE7FFFFC7FFFF87FFFF87FFFF0E00060E000C0C00180C00300C00300000600000C
+00001C0000180000380000780000780000F00000F00000F00001F00001F00001F00003F00003F0
+0003F00003F00003F00003F00003F00001E00017227DA11C>I<00FE0003FFC00703E00E00F01C
+00F01C00783C00783E00783F00783F80783FE0F01FF9E01FFFC00FFF8007FFC003FFE007FFF01E
+7FF83C1FFC7807FC7801FEF000FEF0003EF0001EF0001EF0001CF8001C7800383C00381F01F00F
+FFC001FF0017207E9F1C>I<01FE0007FF800F83E01E01F03E00F07C00F87C0078FC007CFC007C
+FC007CFC007EFC007EFC007EFC007E7C00FE7C00FE3E01FE1E037E0FFE7E07FC7E00207E00007C
+00007C1E007C3F00F83F00F83F00F03F01E01E03C01C0F800FFE0003F80017207E9F1C>I<0000
+70000000007000000000F800000000F800000000F800000001FC00000001FC00000003FE000000
+03FE00000003FE00000006FF000000067F0000000E7F8000000C3F8000000C3F800000183FC000
+00181FC00000381FE00000300FE00000300FE00000600FF000006007F00000E007F80000FFFFF8
+0000FFFFF800018001FC00018001FC00038001FE00030000FE00030000FE000600007F00060000
+7F00FFE00FFFF8FFE00FFFF825227EA12A>65 D<FFFFFF8000FFFFFFE00007F001F80007F000FC
+0007F0007E0007F0007E0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F000
+7E0007F000FE0007F000FC0007F003F80007FFFFF00007FFFFF00007F001FC0007F0007E0007F0
+003F0007F0003F8007F0001F8007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007
+F0001FC007F0003F8007F0003F8007F0007F0007F001FE00FFFFFFF800FFFFFFC00022227EA128
+>I<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F80
+0007803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E00000180
+7F000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F80038
+0000FF00F000001FFFC0000003FE000021227DA128>I<FFFFFF8000FFFFFFF00007F003FC0007
+F0007E0007F0003F0007F0001F8007F0000FC007F00007E007F00007E007F00007F007F00003F0
+07F00003F007F00003F007F00003F807F00003F807F00003F807F00003F807F00003F807F00003
+F807F00003F807F00003F807F00003F807F00003F007F00003F007F00003F007F00007E007F000
+07E007F0000FC007F0001F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFFFF80002522
+7EA12B>I<FFFFFFFCFFFFFFFC07F000FC07F0003C07F0001C07F0000C07F0000E07F0000E07F0
+000607F0180607F0180607F0180607F0180007F0380007F0780007FFF80007FFF80007F0780007
+F0380007F0180007F0180007F0180307F0180307F0000307F0000607F0000607F0000607F0000E
+07F0000E07F0001E07F0003E07F001FCFFFFFFFCFFFFFFFC20227EA125>I<FFFFFFF8FFFFFFF8
+07F001F807F0007807F0003807F0001807F0001C07F0001C07F0000C07F0000C07F0180C07F018
+0C07F0180007F0180007F0380007F0780007FFF80007FFF80007F0780007F0380007F0180007F0
+180007F0180007F0180007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
+F00000FFFFE000FFFFE0001E227EA123>I<0003FE0040001FFFC0C0007F00F1C001F8003FC003
+F0000FC007C00007C00FC00003C01F800003C03F000001C03F000001C07F000000C07E000000C0
+7E000000C0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
+00FE000FFFFC7E000FFFFC7F00001FC07F00001FC03F00001FC03F00001FC01F80001FC00FC000
+1FC007E0001FC003F0001FC001FC003FC0007F80E7C0001FFFC3C00003FF00C026227DA12C>I<
+FFFF83FFFEFFFF83FFFE07F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001F
+C007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007FFFF
+FFC007FFFFFFC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0
+001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007
+F0001FC0FFFF83FFFEFFFF83FFFE27227EA12C>I<FFFFE0FFFFE003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800
+FFFFE0FFFFE013227FA115>I<FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
+F0000007F0000007F0000007F0000007F0000007F0001807F0001807F0001807F0001807F00038
+07F0003807F0007007F0007007F000F007F001F007F007F0FFFFFFF0FFFFFFF01D227EA122>76
+D<FFF000000FFFFFF800001FFF07F800001FE006FC000037E006FC000037E006FC000037E0067E
+000067E0067E000067E0063F0000C7E0063F0000C7E0061F800187E0061F800187E0060FC00307
+E0060FC00307E0060FC00307E00607E00607E00607E00607E00603F00C07E00603F00C07E00601
+F81807E00601F81807E00601F81807E00600FC3007E00600FC3007E006007E6007E006007E6007
+E006003FC007E006003FC007E006001F8007E006001F8007E006001F8007E006000F0007E0FFF0
+0F00FFFFFFF00600FFFF30227EA135>I<FFF8001FFEFFFC001FFE07FC0000C007FE0000C006FF
+0000C0067F8000C0063FC000C0061FE000C0060FE000C0060FF000C00607F800C00603FC00C006
+01FE00C00600FE00C00600FF00C006007F80C006003FC0C006001FE0C006000FF0C0060007F0C0
+060007F8C0060003FCC0060001FEC0060000FFC00600007FC00600007FC00600003FC00600001F
+C00600000FC006000007C006000003C006000003C0FFF00001C0FFF00000C027227EA12C>I<00
+07FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80003F001F80003F00
+3F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000F
+E0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F0000
+1FC07F00001FC03F00001F803F80003F801F80003F000FC0007E0007E000FC0003F001F80000FC
+07E000003FFF80000007FC000023227DA12A>I<FFFFFF00FFFFFFE007F007F007F001FC07F000
+FC07F0007E07F0007E07F0007F07F0007F07F0007F07F0007F07F0007F07F0007E07F0007E07F0
+00FC07F001FC07F007F007FFFFE007FFFF0007F0000007F0000007F0000007F0000007F0000007
+F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF8000
+20227EA126>I<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80
+003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00000FE0FE
+00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0
+7E00000FC07F00001FC07F00001FC03F00001F803F81F03F801F83F83F000FC70C7E0007E606FC
+0003F607F80000FF07E000003FFF80000007FF80200000038020000003C020000003E0E0000003
+FFE0000001FFC0000001FFC0000000FFC0000000FF800000007F000000001E00232C7DA12A>I<
+FFFFFE0000FFFFFFC00007F007F00007F001F80007F000FC0007F0007E0007F0007F0007F0007F
+0007F0007F0007F0007F0007F0007F0007F0007F0007F0007E0007F000FC0007F001F80007F007
+F00007FFFFC00007FFFF800007F00FE00007F007F00007F003F80007F001FC0007F001FC0007F0
+01FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0607F000FE0607
+F000FF0CFFFF803FF8FFFF800FF027227EA12A>I<01FC0407FF8C1F03FC3C007C7C003C78001C
+78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE
+003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8
+C7FFE080FF8018227DA11F>I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F8038060
+03F80180E003F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F80000
+0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800
+000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
+00000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127>I<FFFF803FFC
+FFFF803FFC07F000018007F000018007F000018007F000018007F000018007F000018007F00001
+8007F000018007F000018007F000018007F000018007F000018007F000018007F000018007F000
+018007F000018007F000018007F000018007F000018007F000018007F000018007F000018007F0
+00018007F000018003F000030003F800030001F800060000FC000E00007E001C00003F80F80000
+0FFFE0000001FF000026227EA12B>I<FFFF0FFFF01FFEFFFF0FFFF01FFE0FF000FF0000E007F0
+007F0000C007F0007F0000C003F8007F80018003F8003F80018003FC003F80038001FC003FC003
+0001FC003FC0030000FE007FE0060000FE006FE0060000FF006FE00600007F00C7F00C00007F00
+C7F00C00007F80C7F81C00003F8183F81800003F8183F81800001FC383FC3000001FC301FC3000
+001FE301FC3000000FE600FE6000000FE600FE6000000FF600FFE0000007FC007FC0000007FC00
+7FC0000003FC007F80000003F8003F80000003F8003F80000001F0001F00000001F0001F000000
+00F0001E00000000E0000E00000000E0000E000037227FA13A>87 D<07FC001FFF803F07C03F03
+E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01
+F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97 D<FF000000FF0000001F0000001F0000
+001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0F
+E0001F3FF8001FF07C001F801E001F001F001F000F801F000F801F000FC01F000FC01F000FC01F
+000FC01F000FC01F000FC01F000FC01F000FC01F000F801F001F801F801F001FC03E001EE07C00
+1C3FF800180FC0001A237EA21F>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000
+FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00600FC0E007FF80
+00FE0014167E9519>I<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000
+003E0000003E0000003E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E00
+3E003E007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E
+00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC3FC01A237EA21F>
+I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC00
+00FC00007C00007C00007E00003E00181F00300FC07003FFC000FF0015167E951A>I<003F8000
+FFC001E3E003C7E007C7E00F87E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FF
+FC000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F
+80000F80000F80000F80000F80000F80007FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F
+3E07CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC00300000
+3000003800003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C
+7C007C3F01F80FFFE001FF0018217E951C>I<FF000000FF0000001F0000001F0000001F000000
+1F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F07E0001F1FF8
+001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E001F003E001F00
+3E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FF
+E1FFC01A237EA21F>I<1C003E007F007F007F003E001C000000000000000000000000000000FF
+00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
+FFE0FFE00B247EA310>I<FF000000FF0000001F0000001F0000001F0000001F0000001F000000
+1F0000001F0000001F0000001F0000001F0000001F0000001F00FF801F00FF801F0038001F0060
+001F01C0001F0380001F0700001F0E00001F1C00001F7E00001FFF00001FCF00001F0F80001F07
+C0001F03E0001F01E0001F01F0001F00F8001F007C001F003C00FFE0FFC0FFE0FFC01A237EA21E
+>107 D<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
+001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B237EA2
+10>I<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F801F801F00
+1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
+001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
+1F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF07E000FF1FF8001F307C001F40
+3C001F803E001F803E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F
+003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FFC01A167E95
+1F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007E
+FC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF0F
+E000FF3FF8001FF07C001F803E001F001F001F001F801F001F801F000FC01F000FC01F000FC01F
+000FC01F000FC01F000FC01F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC00
+1F3FF8001F0FC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
+00FFE00000FFE000001A207E951F>I<00FE030007FF87000FC1C7001F006F003F003F007E003F
+007E001F007C001F00FC001F00FC001F00FC001F00FC001F00FC001F00FC001F00FC001F007E00
+1F007E001F003E003F001F007F000FC1DF0007FF9F0001FC1F0000001F0000001F0000001F0000
+001F0000001F0000001F0000001F0000001F000000FFE00000FFE01B207E951E>I<FE1F00FE3F
+C01E67E01EC7E01E87E01E87E01F83C01F00001F00001F00001F00001F00001F00001F00001F00
+001F00001F00001F00001F00001F0000FFF000FFF00013167E9517>I<0FF3003FFF00781F0060
+0700E00300E00300F00300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E0
+0380E00380F00700FC0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000
+0380000780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F8000
+0F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE00
+00F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E001F003E001F003E001F003E001F
+003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00
+1F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F>I<FFE01FE0FFE01FE00F800600
+0F8006000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F860
+00007CC000007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E00001B16
+7F951E>I<FFE7FF07F8FFE7FF07F81F007800C00F807801800F807C01800F807C018007C07E03
+0007C0DE030007E0DE070003E0DF060003E18F060001F18F0C0001F38F8C0001FB079C0000FB07
+D80000FE03D800007E03F000007E03F000007C01F000003C01E000003800E000001800C0002516
+7F9528>I<FFE07FC0FFE07FC00F801C0007C0380003E0700003F0600001F8C00000F98000007F
+8000003F0000001F0000001F8000003FC0000037C0000063E00000C1F00001C0F8000380FC0007
+007E000E003E00FF80FFE0FF80FFE01B167F951E>I<FFE01FE0FFE01FE00F8006000F8006000F
+C00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F86000007CC000
+007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E0000000C0000000C00
+000018000078180000FC380000FC300000FC60000069C000007F8000001F0000001B207F951E>
+I<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00C07E0000FC0000F80001F00003F0
+3007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0FFFFE014167E9519>I
+E /Fe 20 118 df<60F0F0600404798312>46 D<FFFEFFFE7FFE0000000000007FFEFFFEFFFE0F
+097F8E12>61 D<03E007F01E18381C30FC71FE739EE30EE70EE70EE70EE70EE30C739C71F830F0
+38001E0E07FE03F80F147F9312>64 D<7FFEFFFEE38EE38EE38E03800380038003800380038003
+800380038003800380038003801FF01FF00F147F9312>84 D<C000E000E0007000700038003800
+1C001C001C000E000E00070007000380038001C001C001C000E000E0007000700038003800180D
+1A7E9612>92 D<3F807FC070E0207000700FF03FF07870E070E070E07070F03FFE1F3E0F0E7E8D
+12>97 D<F800F80038003800380038003BE03FF03C38381C380C380E380E380E380E380C381C3C
+383FF01BC00F147F9312>I<00F800F8003800380038003807B81FF8387870386038E038E038E0
+38E0386038707838781FFE0FBE0F147F9312>100 D<07801FE0387070706038E038FFF8FFF8E0
+006000703838381FF007C00D0E7E8D12>I<F800F800380038003800380039E03FF03E383C3838
+383838383838383838383838383838FE3EFE3E0F147F9312>104 D<06000F000F000600000000
+000000FF00FF000700070007000700070007000700070007000700FFF0FFF00C157D9412>I<FF
+00FF000700070007000700070007000700070007000700070007000700070007000700FFF8FFF8
+0D147E9312>108 D<F71C00FFBE0079E70079E70071C70071C70071C70071C70071C70071C700
+71C70071C700F9E780F8E380110E808D12>I<F9E0FFF03E383C38383838383838383838383838
+38383838FE3EFE3E0F0E7F8D12>I<0F803FE038E07070E038E038E038E038E038F078707038E0
+3FE00F800D0E7E8D12>I<FBE0FFF03C38381C380C380E380E380E380E380C381C3C383FF03BC0
+38003800380038003800FE00FE000F157F8D12>I<FCF8FDFC1F1C1E081E001C001C001C001C00
+1C001C001C00FFC0FFC00E0E7E8D12>114 D<1FF03FF06070C070E0007F003FE00FF000786018
+E018F030FFE0DFC00D0E7E8D12>I<06000E000E000E007FF8FFF80E000E000E000E000E000E00
+0E000E380E380E3807F003C00D127F9112>I<F8F8F8F838383838383838383838383838383838
+383838781FFE0FBE0F0E7F8D12>I E /Ff 6 55 df<0C003C00CC000C000C000C000C000C000C
+000C000C000C000C000C000C00FF8009107E8F0F>49 D<1F00618040C08060C0600060006000C0
+0180030006000C00102020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001800F00
+008000400060C060C060804060801F000B107F8F0F>I<0300030007000F000B00130033002300
+4300C300FFE003000300030003001FE00B107F8F0F>I<20803F002C002000200020002F003080
+2040006000600060C06080C061801F000B107F8F0F>I<0780184030C060C06000C000CF00F080
+E040C060C060C060406060C030801F000B107F8F0F>I E /Fg 6 55 df<0C001C00EC000C000C
+000C000C000C000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211>49
+D<1F0060C06060F070F030603000700070006000C001C00180020004000810101020207FE0FFE0
+0C137E9211>I<0FC030707038703870380038003000E00FC0007000380018001C601CF01CF018
+E03860701FC00E137F9211>I<006000E000E00160026006600C600860106020606060C060FFFC
+0060006000600060006003FC0E137F9211>I<60607FC07F8044004000400040004F0070C040E0
+006000700070E070E070E06040E021C01F000C137E9211>I<07C00C201070207060006000C000
+CF00D0C0E060C020C030C030C03040306020206010C00F000C137E9211>I
+E /Fh 60 123 df<00FC000782000E07001C07001C02001C00001C00001C00001C0000FFFF001C
+07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF1FE013
+17809614>12 D<60C0F1E0F1E070E01020102020402040408040800B0A7F9612>34
+D<1C00183200186180706161E0E09E60E080C0E08180E08180E08300E08300610600610C00320C
+001C18380030640030C20060C200C1C100C1C10181C10181C10301C10601C10600C20C00C21800
+64080038181B7E981D>37 D<60F0F070101020204040040A7D960A>39 D<0102040C1818303070
+606060E0E0E0E0E0E0E0E0E0E060606070303018180C04020108227D980E>I<8040203018180C
+0C0E060606070707070707070707070606060E0C0C18183020408008227E980E>I<60F0F07010
+1020204040040A7D830A>44 D<60F0F06004047D830A>46 D<07C018303018701C600C600CE00E
+E00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30181C7007C00F157F9412>48
+D<03000700FF000700070007000700070007000700070007000700070007000700070007000700
+07007FF00C157E9412>I<0F8030E040708030C038E0384038003800700070006000C001800300
+06000C08080810183FF07FF0FFF00D157E9412>I<0FE030306018701C701C001C001800380060
+07E000300018000C000E000EE00EE00EC00C401830300FE00F157F9412>I<20303FE03FC02400
+20002000200020002F8030E020700030003800384038E038E0388030406020C01F000D157E9412
+>53 D<01F00608080C181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E300C
+3018183007C00F157F9412>I<40007FFE7FFC7FF8C00880108020004000800080010001000300
+0200060006000E000E000E000E000E0004000F167E9512>I<60F0F06000000000000060F0F060
+040E7D8D0A>58 D<001000003800003800003800005C00005C00005C00008E00008E00008E0001
+070001070003078002038002038007FFC00401C00401C00800E00800E01800E03800F0FE03FE17
+177F961A>65 D<FFFE001C03801C00E01C00601C00701C00701C00701C00701C00E01C01C01FFF
+801FFFC01C00E01C00701C00301C00381C00381C00381C00381C00701C00E01C01C0FFFF001517
+7F9619>I<00FC100383300E00B01C0070380030300030700010600010E00010E00000E00000E0
+0000E00000E00000E000106000107000103000203800201C00400E008003830000FC0014177E96
+19>I<FFFFE01C00E01C00601C00201C00101C00101C00101C04001C04001C04001C0C001FFC00
+1C0C001C04001C04081C04081C00081C00181C00101C00101C00301C00F0FFFFF015177F9618>
+69 D<FFFFE01C00E01C00601C00201C00101C00101C00101C04001C04001C04001C0C001FFC00
+1C0C001C04001C04001C04001C00001C00001C00001C00001C00001C0000FFC00014177F9617>
+I<FF83FE1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701FFFF01C00
+701C00701C00701C00701C00701C00701C00701C00701C00701C0070FF83FE17177F961A>72
+D<FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E000E00FFE00B177F960D>I<FF80FE1C00781C00601C00401C00801C01001C06001C0800
+1C10001C38001C78001C9C001D0E001E0E001C07001C03801C01C01C01C01C00E01C00701C0078
+1C007CFF80FF18177F961B>75 D<FFC0001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C00001C00001C00001C00001C00201C00201C00201C00601C00601C00401C00C01C
+03C0FFFFC013177F9616>I<FC00FE1E00381F001017001013801011C01011C01010E010107010
+103810103810101C10100E10100F101007101003901001D01001D01000F0100070100030380030
+FE001017177F961A>78 D<00FC000303000E01C01C00E0380070300030700038600018E0001CE0
+001CE0001CE0001CE0001CE0001CE0001C7000387000383000303800701C00E00E01C003030000
+FC0016177E961B>I<FFFE001C03801C00C01C00601C00701C00701C00701C00701C00601C00C0
+1C03801FFE001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8000
+14177F9618>I<FFFC001C03801C00C01C00E01C00701C00701C00701C00701C00E01C00C01C03
+801FFE001C07801C01C01C00E01C00E01C00E01C00E01C00E01C00E11C00E11C0072FF803C1817
+7F961A>82 D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E000680
+0680068006C004E008D81087E00F177E9614>I<7FFFF860381840380840380880380480380480
+380400380000380000380000380000380000380000380000380000380000380000380000380000
+380000380000380007FFC016177F9619>I<FF07FC3F803C01E00E001C00E004001C00E004001C
+017004000E017008000E017008000E023808000702381000070238100007041C100003841C2000
+03841C200003880E200001C80E400001C80E400001D80F400000F007800000F007800000F00780
+0000600300000060030000006003000021177F9624>87 D<FF83FC1F01E00E0080070080078100
+03820001C20001E40000E800007800007800003800007C00005E00008E00018700010780020380
+0601C00401E00C00E01C00F0FF03FE17177F961A>I<FFC03F801E001C000F0008000700100007
+8030000380200001C0400001E0400000E0800000F1800000710000003A0000003E0000001C0000
+001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000FF8000191780
+961A>I<204020404080408081008100E1C0F1E0F1E060C00B0A7B9612>92
+D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97
+D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001F06001C03001C03
+801C01801C01C01C01C01C01C01C01C01C01801C03801C03001B0E0010F8001217809614>I<07
+F01838303870106000E000E000E000E000600070083008183007C00D0E7F8D10>I<007E00000E
+00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E00700E00600E00E00E
+00E00E00E00E00E00E00600E00700E00301E00182E0007CFC012177F9614>I<0FC01860303070
+38E018FFF8E000E000E000600070083010183007C00D0E7F8D10>I<03E006700E701C201C001C
+001C001C001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00FF800C178096
+0B>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006C006C006
+600C38380FE010157F8D12>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00
+001C7C001D8E001E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07
+00FF9FE01317809614>I<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1CFF081780960A>
+I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C3F801C1C001C18001C20
+001C40001CC0001FE0001CF0001C70001C78001C3C001C1E001C1E00FF3FC01217809613>107
+D<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
+1C001C001C00FF80091780960A>I<FC7C1F001D8E63801E0781C01C0701C01C0701C01C0701C0
+1C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D0E808D1E>I<
+FC7C001D8E001E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700
+FF9FE0130E808D14>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C00F
+0E7F8D12>I<FCF8001F0E001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C0380
+1C07001F0E001CF8001C00001C00001C00001C00001C0000FF80001214808D14>I<07C2001C26
+00381E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E001C2E0007CE00000E
+00000E00000E00000E00000E00007FC012147F8D13>I<FCF01D381E381C101C001C001C001C00
+1C001C001C001C001C00FF800D0E808D0E>I<1F4060C0C040C040E000FF007F801FC001E08060
+8060C060E0C09F000B0E7F8D0E>I<080008000800180018003800FF8038003800380038003800
+3800380038403840384038401C800F000A147F930E>I<FC3F001C07001C07001C07001C07001C
+07001C07001C07001C07001C07001C07001C0F000E170003E7E0130E808D14>I<FE1F3C0E3C0C
+1C081C080E100E100720072003C003C003C001800180100E7F8D13>I<FCFE7C3838383838101C
+3C201C3C201C4C200E4E400E4E400E8640078780078780070380030300030300160E7F8D19>I<
+FE3F3C181C100E20074007C0038001C002E004F008701838383CFC7F100E7F8D13>I<FE1F3C0E
+3C0C1C081C080E100E100720072003C003C003C00180018001000100E200E200A400780010147F
+8D13>I<FFF0C0E080E081C08380878007000E001E081C08381870107030FFF00D0E7F8D10>I
+E /Fi 57 122 df<0001FF0000001FFFC000007F80F00000FC00F80001F801F80003F803FC0007
+F003FC0007F003FC0007F003FC0007F001F80007F000F00007F000000007F000000007F0000000
+07F0000000FFFFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007F001FC0007F001FC0007F001FC
+0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001
+FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F0
+01FC0007F001FC007FFF1FFFC07FFF1FFFC07FFF1FFFC0222A7FA926>12
+D<0001FF803FE000001FFFE3FFF800007F80FFF01E0000FE007F801F0001F800FF003F0003F801
+FF007F8007F001FE007F8007F001FE007F8007F001FE007F8007F000FE003F0007F000FE001E00
+07F000FE00000007F000FE00000007F000FE00000007F000FE000000FFFFFFFFFFFF80FFFFFFFF
+FFFF80FFFFFFFFFFFF8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007
+F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE00
+3F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F0
+00FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F
+807FFF0FFFE3FFF87FFF0FFFE3FFF87FFF0FFFE3FFF8352A7FA939>14 D<1C007F007F00FF80FF
+C0FFC07FC07FC01CC000C000C00180018001800300030006000C001800300020000A157BA913>
+39 D<1C003E007F00FF80FF80FF807F003E001C0009097B8813>46 D<003F800001FFF00007E0
+FC000FC07E001F803F001F803F003F001F803F001F807F001FC07F001FC07F001FC07F001FC0FF
+001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0
+FF001FE0FF001FE0FF001FE0FF001FE0FF001FE07F001FC07F001FC07F001FC07F001FC03F001F
+803F001F801F803F001F803F000FC07E0007E0FC0001FFF000003F80001B277DA622>48
+D<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFF
+FE17277BA622>I<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003F
+C0FF003FE0FF001FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F800000
+7F000000FE000000FC000001F8000003F0000003E00000078000000F0000001E0000003C00E000
+7000E000E000E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80
+FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC000F81FE001F00FF003F80FF00
+3F807F803F807F803F807F801F807F800F007F800000FF000000FF000000FE000001FC000001F8
+000007F00000FFC00000FFF0000001FC0000007E0000007F0000007F8000003FC000003FC00000
+3FE000003FE03C003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007FC07E007F807C007F003F
+01FE001FFFFC0007FFF00000FF80001B277DA622>I<00000E0000001E0000003E0000007E0000
+00FE000000FE000001FE000003FE0000077E00000E7E00000E7E00001C7E0000387E0000707E00
+00E07E0000E07E0001C07E0003807E0007007E000E007E000E007E001C007E0038007E0070007E
+00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000
+FE000000FE000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFF
+FE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000000E0000000E
+0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C003F0000001F8000001FC0
+00001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE001FC0FC001F
+C078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF80001B277DA622>I<0007F0
+00003FFC0000FFFE0001FC0F0003F01F8007E03F800FC03F801FC03F801F803F803F801F003F80
+00007F0000007F0000007F000000FF000000FF0FC000FF3FF800FF707C00FFC03E00FFC03F00FF
+801F80FF801FC0FF001FC0FF001FE0FF001FE0FF001FE07F001FE07F001FE07F001FE07F001FE0
+3F001FE03F001FC01F801FC01F803F800FC03F0007E07E0003FFFC0000FFF000003FC0001B277D
+A622>I<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF
+0070000E0070000E0070001C00E0003800E0007000E000E0000000E0000001C000000380000007
+800000078000000F0000000F0000001F0000001F0000003F0000003E0000003E0000007E000000
+7E0000007E0000007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
+00FE0000007C0000003800001C297CA822>I<003FC00001FFF00003FFFC0007C07E000F003F00
+1E001F001E000F803E000F803E000F803F000F803F000F803FC00F003FF01F001FFC1E001FFE3C
+000FFFF80007FFE00003FFF80001FFFC0001FFFE0007FFFF000F0FFF801E03FFC03C01FFC07C00
+7FE078001FE0F80007E0F80007E0F80003E0F80003E0F80003E0F80003C07C0003C07C0007803F
+000F001FC03E000FFFFC0003FFF800007FC0001B277DA622>I<007F800001FFF00007FFF8000F
+E0FC001F807E003F803F007F003F007F001F80FF001F80FF001FC0FF001FC0FF001FC0FF001FE0
+FF001FE0FF001FE0FF001FE07F001FE07F003FE03F003FE01F807FE00F807FE007C1DFE003FF9F
+E0007E1FE000001FE000001FC000001FC000001FC000003F801F003F803F803F003F803F003F80
+7E003F807C001F01F8001E03F0000FFFE00007FF800001FE00001B277DA622>I<01FF000FFFE0
+1E03F03801F87801FCFC01FEFE01FEFE01FEFE01FE7C01FE3801FC0003F80007F00007C0000F80
+001F00001E00003C00003800003800007800007000007000007000007000007000007000000000
+00000000000000000000000000000000700000F80001FC0003FE0003FE0003FE0001FC0000F800
+007000172A7CA920>63 D<000003800000000007C00000000007C0000000000FE0000000000FE0
+000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF8000000
+0073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF
+00000003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003FE00000
+0E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000780007
+FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF0001
+C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65
+D<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F8003FC
+00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007803FC0000003
+807FC0000003807F80000003807F8000000000FF8000000000FF8000000000FF8000000000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000007F80000000
+007F80000000007FC0000003803FC0000003803FC0000003801FE0000003801FE0000007000FF0
+0000070007F000000E0003FC00001E0001FE00003C0000FF8000F800003FF007E000000FFFFFC0
+000003FFFF000000003FF8000029297CA832>67 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFE000
+03FC001FF80003FC0007FC0003FC0001FE0003FC0000FF0003FC00007F8003FC00003FC003FC00
+001FC003FC00001FE003FC00001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF0
+03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00
+000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF003FC00000FF003FC00000FF0
+03FC00001FE003FC00001FE003FC00001FC003FC00003FC003FC00007F8003FC00007F0003FC00
+01FE0003FC0003FC0003FC001FF800FFFFFFFFE000FFFFFFFF8000FFFFFFFC00002D297DA835>
+I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007F003FC0001F003FC0001F003FC00
+00F003FC00007003FC00007003FC00007003FC01C07803FC01C03803FC01C03803FC01C03803FC
+03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003
+FC03C00003FC01C00E03FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C
+03FC00003C03FC00003803FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFF
+F0FFFFFFFFF0FFFFFFFFF027297DA82D>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003
+FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F0
+03FC03807003FC03807003FC03807003FC03800003FC07800003FC07800003FC1F800003FFFF80
+0003FFFF800003FFFF800003FC1F800003FC07800003FC07800003FC03800003FC03800003FC03
+800003FC03800003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297DA82B>I<FFFFF01F
+FFFEFFFFF01FFFFEFFFFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC00007F8003
+FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
+7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFFFF8003
+FFFFFFFF8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
+7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
+FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFFFFF01F
+FFFEFFFFF01FFFFE2F297DA836>72 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE
+0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE
+0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE
+0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFFC0000FFFFFC0000
+FFFFFC000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000
+0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00
+000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0001C003FC
+0001C003FC0001C003FC0001C003FC0003C003FC00038003FC00038003FC00078003FC00078003
+FC000F8003FC000F8003FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF00
+22297DA829>76 D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF0
+0003FF0000003FF00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7
+F000038FE00001C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F00003
+87F0000383F8000707F0000383F8000707F0000381FC000E07F0000381FC000E07F0000380FE00
+1C07F0000380FE001C07F0000380FF003807F00003807F003807F00003807F003807F00003803F
+807007F00003803F807007F00003801FC0E007F00003801FC0E007F00003800FE1C007F0000380
+0FE1C007F00003800FE1C007F000038007F38007F000038007F38007F000038003FF0007F00003
+8003FF0007F000038001FE0007F000038001FE0007F000038000FC0007F000038000FC0007F000
+FFFE00FC01FFFFC0FFFE007801FFFFC0FFFE007801FFFFC03A297DA841>I<FFFC0000FFFEFFFE
+0000FFFEFFFF0000FFFE03FF8000038003FF8000038003BFC0000380039FE0000380039FF00003
+80038FF80003800387F80003800383FC0003800381FE0003800381FF0003800380FF8003800380
+7FC0038003803FC0038003801FE0038003800FF0038003800FF80380038007FC0380038003FC03
+80038001FE0380038000FF0380038000FF83800380007FC3800380003FE3800380001FE3800380
+000FF38003800007FB8003800007FF8003800003FF8003800001FF8003800000FF80038000007F
+80038000007F80038000003F80038000001F80038000000F80FFFE00000780FFFE00000380FFFE
+000003802F297DA836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007
+F00003F80003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803F
+C000007F807FC000007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF800000
+3FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF
+8000003FE0FF8000003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F803FC00000
+7F801FE00000FF001FE00000FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000
+FF001FE000003FC07F8000000FFFFE00000000FFE000002B297CA834>I<FFFFFFF800FFFFFFFF
+00FFFFFFFFC003FC003FE003FC000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC00
+03FE03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC
+0007F803FC000FF003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003
+FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF000
+0027297DA82F>I<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003
+F80003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC00000
+7F807FC000007FC07FC000007FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF
+8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF800000
+3FE0FF8000003FE07F8000003FC07F8000003FC07FC000007FC03FC000007F803FC000007F801F
+E00000FF001FE01F00FF000FF03F81FE0007F060C1FC0003F8C063F80001FCC077F00000FFC07F
+E000003FE07F8000000FFFFE00000000FFFE00600000003E00600000003F00600000001F81E000
+00001FFFE00000001FFFC00000000FFFC00000000FFFC000000007FF8000000007FF8000000003
+FF0000000001FE000000000078002B357CA834>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF8000
+03FC007FE00003FC000FF00003FC0007F80003FC0007FC0003FC0003FC0003FC0003FE0003FC00
+03FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FC0003FC0007F800
+03FC0007F80003FC001FE00003FC007FC00003FFFFFE000003FFFFF0000003FC00FC000003FC00
+7F000003FC003F800003FC003F800003FC001FC00003FC001FE00003FC001FE00003FC001FE000
+03FC001FE00003FC001FE00003FC001FF00003FC001FF00003FC001FF00003FC001FF00703FC00
+1FF80703FC000FF80703FC0007F80EFFFFF003FE1CFFFFF001FFF8FFFFF0003FF030297DA834>
+I<007F806003FFF0E007FFF9E00F807FE01F001FE03E0007E07C0003E07C0001E0FC0001E0FC00
+01E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFE00007FFFE0003FFFFC001FFFFE000F
+FFFF8007FFFFC003FFFFE000FFFFE00007FFF000007FF000000FF8000007F8000003F8600001F8
+E00001F8E00001F8E00001F8F00001F0F00001F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF
+00E0FFFE00C01FF0001D297CA826>I<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03F
+C07E003FC007C078003FC003C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0E000
+3FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC0000000003FC000
+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000
+3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000
+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000
+3FC00000007FFFFFE000007FFFFFE000007FFFFFE0002B287EA730>I<FFFFF001FFFCFFFFF001
+FFFCFFFFF001FFFC03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003
+FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003
+FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070001FC00000E0001FE00000E0000FE00001C0000
+7E00001C00007F00003800003FC000F000000FF007E0000007FFFFC0000001FFFF000000001FF8
+00002E297DA835>I<FFFFF0003FFF80FFFFF0003FFF80FFFFF0003FFF8003FE000001E00001FE
+000001C00001FF000003C00000FF000003800000FF0000038000007F8000070000007F80000700
+00007FC0000F0000003FC0000E0000003FE0001E0000001FE0001C0000001FF0001C0000000FF0
+00380000000FF0003800000007F8007000000007F8007000000007FC00F000000003FC00E00000
+0003FE01E000000001FE01C000000001FF01C000000000FF038000000000FF038000000000FF87
+80000000007F8700000000007FCF00000000003FCE00000000003FFE00000000001FFC00000000
+001FFC00000000000FF800000000000FF800000000000FF8000000000007F0000000000007F000
+0000000003E0000000000003E0000000000001C000000031297FA834>I<FFFFE07FFFF007FFF0
+FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003FC0001FE00001C0003FC0001FE00001C0001FE00
+01FF0000380001FE0000FF0000380001FF0000FF0000780000FF0000FF8000700000FF0000FF80
+00700000FF8000FF8000F000007F8001FFC000E000007F8001FFC000E000003FC003FFE001C000
+003FC0039FE001C000003FE0039FE003C000001FE0070FF0038000001FE0070FF0038000001FF0
+0F0FF0078000000FF00E07F8070000000FF00E07F80700000007F81E07FC0E00000007F81C03FC
+0E00000007FC1C03FC1E00000003FC3801FE1C00000003FC3801FE1C00000001FE7801FF380000
+0001FE7000FF3800000001FE7000FF3800000000FFF000FFF000000000FFE0007FF000000000FF
+E0007FF0000000007FC0003FE0000000007FC0003FE0000000003FC0003FC0000000003F80001F
+C0000000003F80001FC0000000001F80001F80000000001F00000F80000000001F00000F800000
+00000E00000700000044297FA847>I<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F
+000F803F8007003F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F80
+3F803F003F807F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0F
+FF0FFC01FC03FC1E1B7E9A21>97 D<FFE0000000FFE0000000FFE00000000FE00000000FE00000
+000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
+00000FE00000000FE00000000FE1FE00000FE7FF80000FFE07E0000FF801F0000FF000F8000FE0
+00FC000FE000FE000FE0007F000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800F
+E0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE0007F000FE0007F000FE000FE00
+0FE000FC000FF001F8000FF803F0000F9E07E0000F07FF80000E01FC0000212A7EA926>I<001F
+F80000FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F0000007F000000FF
+000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F0000007F800000
+3F8001C01F8001C00FC0038007E0070003F01E0000FFFC00001FE0001A1B7E9A1F>I<00003FF8
+0000003FF80000003FF800000003F800000003F800000003F800000003F800000003F800000003
+F800000003F800000003F800000003F800000003F800000003F800000003F800001FE3F80000FF
+FBF80003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F
+0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800
+7F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF
+8000FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F000F801F801F
+800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000
+FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC001C007E0038003F81F
+0000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F87F03F87F03F07F07F07F07F0
+3E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F0
+0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0
+0007F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7
+F80FC1FE7C1F80FC7C1F007C383F007E107F007F007F007F007F007F007F007F007F007F007F00
+7F003F007E001F007C001F80FC000FC1F8001FFFE00018FF800038000000380000003C0000003E
+0000003FFFF8001FFFFF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8
+F80000F8F80000F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E
+9A22>I<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE0000000
+0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
+000FE07F00000FE1FFC0000FE787E0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003
+F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
+03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
+E003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926>I<07000F801FC03FE03FE03FE01F
+C00F8007000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14
+>I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE000000F
+E000000FE000000FE000000FE000000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE00780
+0FE00F000FE01E000FE03C000FE078000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0
+000FF3F8000FE3F8000FC1FC000FC0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC0
+0FE0FFFC3FFEFFFC3FFEFFFC3FFE1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F
+800FF000FFC1FFE03FFC00FFC383F0707E000FC603F8C07F000FCC01F9803F000FD801FF003F80
+0FF001FE003F800FF001FE003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
+003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
+E001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC00
+3F800FE001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC0
+7F0000FFC1FFC000FFC787E0000FCE03F0000FD803F0000FD803F8000FF003F8000FF003F8000F
+E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
+0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
+00FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F80
+1F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007
+F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC0
+1F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803
+F0000FF001F8000FE000FC000FE000FE000FE000FF000FE0007F000FE0007F000FE0007F800FE0
+007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE000FF000F
+E000FF000FE000FE000FE001FC000FF001F8000FF803F0000FFE0FE0000FE7FF80000FE1FC0000
+0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
+000FE0000000FFFE000000FFFE000000FFFE00000021277E9A26>I<FFC1F0FFC7FCFFCE3E0FD8
+7F0FD87F0FF07F0FF03E0FF01C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0
+000FE0000FE0000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114
+D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007FFF803FFF
+E01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC0070FF01E0F7FF
+C0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F00003F00003
+F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F00007
+F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03803F03803F87001
+F86000FFC0001F8015267FA51B>I<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8
+000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
+F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
+03F8000FE007F80007E007F80007E00FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>
+I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F800E00003FC01
+E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F070000007F8F0000003F
+8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF800000007F0000000
+07F000000003E000000003E000000001C00000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC0FFEFF
+FE7FFC0FFE0FE007E000E007F003F001C007F003F001C007F807F803C003F807F8038003F807F8
+038001FC0EFC070001FC0EFC070001FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000FF383F1E0000
+7F383F1C00007F783F3C00003FF01FB800003FF01FB800003FF01FF800001FE00FF000001FE00F
+F000000FC007E000000FC007E000000FC007E00000078003C00000078003C0002F1B7F9A32>I<
+FFFC0FFF00FFFC0FFF00FFFC0FFF0007F003C00003F807800001FC07800000FE0F000000FF1E00
+00007F3C0000003FF80000001FF00000000FF00000000FF000000007F000000007F80000000FFC
+0000001FFE0000001EFE0000003C7F000000783F800000F01FC00001E01FE00001C00FE00003C0
+07F000FFF01FFF80FFF01FFF80FFF01FFF80211B7F9A24>I<FFFE03FF80FFFE03FF80FFFE03FF
+8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE03
+800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC0000001F
+DC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E0000000
+01C000000001C000000003800000000380000038078000007C07000000FE0F000000FE0E000000
+FE1E000000FE3C0000007C780000003FE00000000FC000000021277F9A24>I
+E /Fj 18 121 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFFFE0000FF
+FFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
+000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
+00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
+0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
+FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
+0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00007FFFFFFFC0
+7FFFFFFFC07FFFFFFFC07FFFFFFFC0223879B731>49 D<0007FE0000007FFFE00001FFFFF80003
+FFFFFE0007F01FFF000F8007FF801F0001FFC03E0000FFE07F8000FFF07FC0007FF0FFE0007FF8
+FFF0003FF8FFF0003FFCFFF0003FFCFFF0003FFCFFF0003FFC7FE0003FFC3FC0003FFC1F80003F
+FC0000003FFC0000003FF80000007FF80000007FF00000007FF0000000FFE0000000FFC0000001
+FF80000001FF00000003FE00000007FC00000007F80000000FF00000001FC00000003F80000000
+7F00000000FC00000001F800000001F0003C0003E0003C0007C0003C000F000078001E00007800
+3C00007800780000F800F00000F801FFFFFFF803FFFFFFF007FFFFFFF00FFFFFFFF01FFFFFFFF0
+3FFFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE026387BB731>I<0003
+FF8000001FFFF000007FFFFE0000FE03FF0001F000FF8003C000FFC00780007FE00FF0007FF00F
+F8007FF01FFC007FF81FFE007FF81FFE007FF81FFE007FF81FFE007FF81FFE007FF80FFC007FF0
+07F8007FF003F0007FF0000000FFE0000000FFC0000001FF80000001FF00000003FE00000007FC
+0000001FF000000FFFC000000FFF8000000FFFF800000003FE00000000FF800000007FE0000000
+3FF00000003FF80000003FFC0000001FFC0000001FFE0000001FFE0200001FFF1FC0001FFF3FE0
+001FFF7FF0001FFF7FF0001FFFFFF8001FFFFFF8001FFFFFF8001FFEFFF8001FFEFFF0001FFE7F
+F0003FFC7FE0003FFC3FC0003FF81F80007FF01FE000FFE007FC03FFC003FFFFFF0001FFFFFE00
+003FFFF0000007FF800028397CB731>I<00000007C0000000000FC0000000000FC0000000001F
+C0000000003FC0000000007FC000000000FFC000000000FFC000000001FFC000000003FFC00000
+0007FFC00000000FFFC00000000FFFC00000001EFFC00000003CFFC00000007CFFC0000000F8FF
+C0000000F0FFC0000001E0FFC0000003C0FFC0000007C0FFC000000F80FFC000000F00FFC00000
+1E00FFC000003C00FFC000007C00FFC00000F800FFC00000F000FFC00001E000FFC00003C000FF
+C00007C000FFC0000F8000FFC0000F0000FFC0001E0000FFC0003C0000FFC0007C0000FFC000F8
+0000FFC000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0000001FFC000000001FF
+C000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
+0001FFC000000001FFC0000007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC02A377DB6
+31>I<04000000C00F800007C00FF8007FC00FFFFFFF800FFFFFFF000FFFFFFE000FFFFFFC000F
+FFFFF8000FFFFFF0000FFFFFE0000FFFFF80000FFFFE00000FFFF800000F800000000F80000000
+0F800000000F800000000F800000000F800000000F800000000F800000000F81FF00000F8FFFE0
+000FBFFFF8000FFE03FE000FF000FF000FC000FF800F80007FC00F00007FE00700007FF0000000
+3FF00000003FF80000003FF80000003FF80000003FFC0000003FFC0600003FFC1F80003FFC3FC0
+003FFC7FE0003FFCFFE0003FFCFFF0003FFCFFF0003FFCFFF0003FF8FFE0003FF8FFE0003FF87F
+C0007FF07F00007FF03C00007FE03E0000FFC01F0000FF800FC003FF0007F00FFE0003FFFFFC00
+01FFFFF000007FFFC000000FFC000026397BB731>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 /Fk 1 98 df<00200000700000700000700000B80000B80000B800011C
+00011C00011C00020E00020E0004070004070007FF000803800803800803801801C03803C0FE0F
+F815157F9419>97 D E /Fl 94 127 df<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060
+F0F0600419779816>33 D<E038F078F078F078F078F078F078F078E038E03860300D0B7C9816>
+I<0387000387000387000387000387000387007FFFC0FFFFE0FFFFE0070E00070E00070E000E1C
+000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C38001C38001C38001C38001C38001319
+7F9816>I<00C00001C00001C00001C00007F0001FFC003FFE007DCF0071C780E1C380E1C780E1
+C780F1C30079C0003FC0001FF00007FC0001FE0001CF0001C70061C380F1C380F1C380E1C38071
+C70079DF003FFE001FF80007E00001C00001C00000C00011207E9C16>I<3801807C03807C0380
+EE0700EE0700EE0E00EE0E00EE0E00EE1C007C1C007C380038380000700000700000700000E000
+00E00001C00001C00001C0000380000383800707C00707C00E0EE00E0EE00E0EE01C0EE01C0EE0
+3807C03807C018038013207F9C16>I<03800007E0000FE0001E70001C70001C70001C70001C77
+E01CE7E01DE7E00FC7000F8E000F0E001E0E003F1C007F1C00739C00E3F800E1F800E0F1C0E0F1
+C071F9C07FFFC03F9F801E070013197F9816>I<30787C3C1C1C1C1C3878F0E040060D789816>I<
+00E001E0038007000E001C001C0038003800700070007000E000E000E000E000E000E000E000E0
+00E000700070007000380038001C001C000E000700038001E000E00B217A9C16>I<C000E00070
+0038001C000E000E000700070003800380038001C001C001C001C001C001C001C001C001C00380
+03800380070007000E000E001C0038007000E000C0000A217B9C16>I<01C00001C00001C00001
+C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF8071C70001C00001C00001
+C00001C00011127E9516>I<01C00001C00001C00001C00001C00001C00001C00001C000FFFF80
+FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00001C00011137E9516>I<387C
+7E7E3E0E1E1C78F060070B798416>I<FFFF80FFFF80FFFF8011037E8D16>I<70F8F8F870050578
+8416>I<000180000380000380000700000700000E00000E00001C00001C000038000038000070
+0000700000E00000E00001C00001C0000380000380000700000700000E00000E00001C00001C00
+00380000380000700000700000E00000E00000C0000011207E9C16>I<03E0000FF8001FFC001E
+3C00380E00780F00700700700700E00380E00380E00380E00380E00380E00380E00380E00380F0
+0780700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816>I<018003800380
+07800F807F80FF807380038003800380038003800380038003800380038003800380038003807F
+F87FFC7FF80E197C9816>I<07E0001FF8003FFC00783E00E00700F00780F00380600380000380
+000380000700000700000E00001C0000380000700000E00001C0000380000F00001E0380380380
+7FFF80FFFF807FFF8011197E9816>I<07E0001FF8003FFC00781E007807003007000007000007
+00000E00003E0007FC0007F00007FC00001E00000700000300000380000380600380F00380E007
+00781E003FFC001FF80007E00011197E9816>I<007C0000FC0000DC0001DC00039C00039C0007
+1C000F1C000E1C001E1C003C1C00381C00781C00F01C00FFFFE0FFFFE0FFFFE0001C00001C0000
+1C00001C00001C0001FFC001FFC001FFC013197F9816>I<3FFE003FFE003FFE00380000380000
+3800003800003800003800003800003BF0003FFC003FFE003C0F00300700000380000380600380
+F00380F00380E00700781E003FFC001FF80007E00011197E9816>I<00F80003FC0007FE000F07
+001C0F00380F00780600700000700000E3F800EFFC00FFFE00F80F00F00700F00380E00380E003
+807003807003807007803807003C1E001FFC000FF80003E00011197E9816>I<E00000FFFF80FF
+FF80FFFF80E00F00E01E00001C0000380000780000700000E00000E00001C00001C00001C00003
+8000038000038000038000070000070000070000070000070000070000070000111A7E9916>I<
+07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001FFC0007F0001FFC00
+3C1E00700700F00780E00380E00380E00380F007807007007C1F003FFE001FFC0007F00011197E
+9816>I<03E0000FF8001FFC003C1E00700E00700700E00700E00780E00380E00380E007807007
+80780F803FFF801FFB800FE380000700000700300700780E00781C007078003FF0001FE0000F80
+0011197E9816>I<70F8F8F870000000000000000070F8F8F8700512789116>I<387C7C7C380000
+00000000000038787C7C3C1C1C3870E0400618799116>I<000180000780001F80003E0000F800
+01F00007C0000F80003E0000FC0000F00000FC00003E00000F800007C00001F00000F800003E00
+001F8000078000018011157E9616>I<7FFF00FFFF80FFFF800000000000000000000000000000
+00FFFF80FFFF807FFF00110B7E9116>I<C00000F00000FC00003E00000F800007C00001F00000
+F800003E00001F80000780001F80003E0000F80001F00007C0000F80003E0000FC0000F00000C0
+000011157E9616>I<0FE03FF87FFCF01EF00EF00E601E003C007800F001C00380038003800380
+03800300000000000000000003000780078003000F197D9816>I<00F80003FC0007FE000F0700
+1C3F80387F8078FF8071C3C071C3C0E381C0E381C0E381C0E381C0E381C0E381C0E381C071C380
+71C38078FF00387E001C3C000F03C007FFC003FF0000FC0012197E9816>I<00E00001F00001F0
+0001B00001B00003B80003B80003B800031800071C00071C00071C00071C00071C000E0E000E0E
+000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1FE07F1FC013197F9816>I<7FF800FF
+FE007FFF001C0F001C07801C03801C03801C03801C07801C07001FFF001FFE001FFE001C1F001C
+03801C03C01C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF007FFC0012197F9816>I<
+01F18007FB800FFF801F0F803C0780380380700380700380F00000E00000E00000E00000E00000
+E00000E00000E00000F000007003807003803803803C07001F0F000FFE0007FC0001F00011197E
+9816>I<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C00E01C00E01C00
+E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE007FF8
+001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C001C
+1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E07FFFE0FF
+FFE07FFFE013197F9816>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C0000
+1C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00001C00001C00001C0000
+FF8000FFC000FF800013197F9816>I<03E30007FF000FFF001E1F003C0F003807007007007007
+00F00000E00000E00000E00000E00000E03F80E07FC0E03F80F00700700700700700380F003C0F
+001E1F000FFF0007F70003E70012197E9816>I<7F1FC0FFBFE07F1FC01C07001C07001C07001C
+07001C07001C07001C07001FFF001FFF001FFF001C07001C07001C07001C07001C07001C07001C
+07001C07001C07007F1FC0FFBFE07F1FC013197F9816>I<FFFEFFFEFFFE038003800380038003
+8003800380038003800380038003800380038003800380038003800380FFFEFFFEFFFE0F197D98
+16>I<07FE07FF07FE003800380038003800380038003800380038003800380038003800380038
+00386038F038F0707FF07FE01F8010197D9816>I<7F0FE0FF8FF07F0FE01C07801C0F001C0E00
+1C1C001C3C001C78001CF0001CE0001DF0001FF0001FF8001F38001E1C001C1C001C0E001C0E00
+1C07001C07001C03807F07E0FF8FF07F07E01419809816>I<FFC000FFC000FFC0001C00001C00
+001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00
+401C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FC07E0FE0FE0FE0FE03A
+0B803B1B803B1B803B1B803B1B803B1B803BBB8039B38039B38039B38039B38039F38038E38038
+E380380380380380380380380380380380FE0FE0FE0FE0FE0FE013197F9816>I<7E1FC0FF3FE0
+7F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7001CE7001CE7001C6700
+1C67001C77001C77001C37001C37001C37001C17007F1F00FF9F007F0F0013197F9816>I<1FFC
+003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E00380E00380E003
+80E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE001FFC0011197E9816
+>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801F
+FF001FFE001FF8001C00001C00001C00001C00001C00001C00001C00007F0000FF80007F000012
+197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380
+E00380E00380E00380E00380E00380E00380E00380E0E380E1E380F0F780787F007FFF003FFE00
+1FFC00001C00001E00000E00000F00000700000700111F7E9816>I<7FE000FFF8007FFC001C1E
+001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001FFC001C1C001C0E001C0E
+001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>I<07E3001FFF003F
+FF00781F00F00700E00700E00700E00000F000007800003F80001FF00007FC0000FE00000F0000
+0700000380000380600380E00380E00700F80F00FFFE00FFFC00C7F00011197E9816>I<7FFFE0
+FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC0013197F9816>
+I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01
+C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF0003FE0000F8001519
+809816>I<FE0FE0FF1FE0FE0FE03803801C07001C07001C07001C07000E0E000E0E000E0E000E
+0E00060C00071C00071C00071C00071C0003180003B80003B80003B80001B00001F00001F00000
+E00013197F9816>I<FC07E0FE0FE0FC07E07001C07001C07001C0300180380380380380380380
+38E38039F38039F38039B38019B30019B30019B30019B30019B30019B3001913001B1B000F1E00
+0F1E000E0E0013197F9816>I<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003F0
+0001F00001E00000E00001E00001F00003F00003B80007B800071C00071C000E0E000E0E001C07
+007F1FC0FF1FE07F1FC013197F9816>I<FE0FE0FF1FE0FE0FE01C07001C07000E0E000E0E0007
+1C00071C00071C0003B80003B80001F00001F00000E00000E00000E00000E00000E00000E00000
+E00000E00003F80007FC0003F80013197F9816>I<7FFF80FFFF80FFFF80E00700E00F00E01E00
+E01C00003C0000780000700000F00001E00001C00003C0000780000700000F00001E03801C0380
+3C0380780380700380FFFF80FFFF80FFFF8011197E9816>I<FFF0FFF0FFF0E000E000E000E000
+E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
+00E000E000FFF0FFF0FFF00C20789C16>I<C00000E00000E00000700000700000380000380000
+1C00001C00000E00000E000007000007000003800003800001C00001C00000E00000E000007000
+007000003800003800001C00001C00000E00000E0000070000070000038000038000018011207E
+9C16>I<FFF0FFF0FFF00070007000700070007000700070007000700070007000700070007000
+7000700070007000700070007000700070007000700070FFF0FFF0FFF00C207F9C16>I<03000F
+803FE0FDF8F07840100D067C9816>I<FFFF80FFFF80FFFF8011037E7E16>I<081C3C7870E0E0E0
+E0F0F87830060D789B16>I<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE00
+3E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>I<7E0000FE00
+007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00E00E00E00E00700E00
+700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF00063C001419809816>I<03
+F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC0FF803F010127D91
+16>I<003F00007F00003F0000070000070000070000070003C7000FF7001FFF003C1F00780F00
+700700E00700E00700E00700E00700E00700E00700700F00700F003C1F001FFFE00FE7F007C7E0
+14197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE
+0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FF
+FF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003F
+FE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00
+380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0
+E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00000E00
+000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03800E03800E03
+800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003C003C001
+8000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001C001C0
+7FFFFFFF7FFF101A7D9916>I<003000780078003000000000000000001FF81FF81FF800380038
+003800380038003800380038003800380038003800380038003800380038003800386070F0F0FF
+E07FC03F800D237E9916>I<7E0000FE00007E00000E00000E00000E00000E00000E7FE00E7FE0
+0E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E0780
+7F87F0FFCFF07F87F01419809816>I<FFC000FFC000FFC00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C000FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78E03C78E03870E038
+70E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C7815128091
+16>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E0380
+0E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E00780F
+00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC000FF80003E0
+0011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00700E00700E00700E
+00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00000E00000E00000E
+00007FC000FFE0007FC000141B809116>I<07C7000FE7001FF7003C1F00700F00700F00E00700
+E00700E00700E00700E00700E00700700F00700F003C3F003FF7001FE70007C700000700000700
+000700000700000700000700003FE0007FF0003FE0141B7E9116>I<FF0FC0FF3FE0FF7FE007F0
+4007C000078000078000070000070000070000070000070000070000070000070000FFFC00FFFC
+00FFFC0013127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00E
+F81EFFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF00
+07000007000007000007000007000007000007000007010007038007038007038007870003FE00
+01FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E03800E03800E03800E03
+800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F01512809116>I<7F1FC0FF
+1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003
+B80001F00001F00000E00013127F9116>I<FF1FE0FFBFE0FF1FE0380380380380380380380380
+38E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F1E0013127F9116>
+I<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B800073C
+00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1FC01C07000E07000E
+0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F00000F00000F00000
+E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F9116>I<3FFFC07FFFC0
+7FFFC0700780700F00701E00003C0000780001F00003E0000780000F00001E01C03C01C07801C0
+FFFFC0FFFFC0FFFFC012127F9116>I<001F80007F8000FF8001E00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00003C0007F8000FF0000FF00007F800003C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001E00000FF80007F80001F8011207E9C16
+>I<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E00320779C16>
+I<7C0000FF0000FF800003C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001E00000FF00007F80007F8000FF0001E00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00003C000FF8000FF00007C000011207E9C16>I<1C303F78FFF8F7E061C00D057C
+9816>I E /Fm 47 122 df<0001FC3C00060E67000C0EC7001C0DC6001C01C0003801C0003803
+800038038000380380003803800070038007FFFFF800700700007007000070070000E0070000E0
+0E0000E00E0000E00E0000E00E0001C00E0001C01C0001C01C0001C01C0001C01C0003801C0003
+803800038038000380380003003800070030000700700006006000C6606000E470C000C8618000
+703E00002025819C19>11 D<0001FC000703000C03001C07001C03001800003800003800003800
+00380000700007FFFC00701C00701C00701C00E03800E03800E03800E03800E07001C07001C070
+01C07001C0E201C0E201C0E20380E4038064038038038000030000070000060000C60000E40000
+CC00007000001825819C17>I<00C001E001E001E001C003C003C0038003800380030007000700
+06000600060004000C000C00080008000000000000000000000030007800F00060000B1E7C9D0D
+>33 D<183C3C3C0404080810204080060C779C0D>39 D<183878380808101020404080050C7D83
+0D>44 D<FFC0FFC0FFC00A037D890F>I<3078F06005047C830D>I<0001800001C0000380000380
+000380000300000700000700000600000E00000C00001C00001800001800003000003000006000
+00400000C600018E00010E00020E00061C000C1C00181C003F1C0040F800803F00003800003800
+00700000700000700000700000E00000600012247E9B15>52 D<060F0F06000000000000000000
+003078F06008127C910D>58 D<0000180000001800000038000000380000007800000078000000
+B8000001B800000138000002380000023C0000041C0000041C0000081C0000181C0000101C0000
+201C0000201C00007FFC0000401C0000801C0001801C0001001C0002001C0002001C0004000E00
+0C000E001C001E00FF00FFC01A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001
+C0038001C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000007800
+0000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008007000080070
+00100038002000180040000C0180000706000001F800001B1E7A9C1E>67
+D<01FFFE00003C0780003801C0003801C0003800E0003800E0007000F000700070007000700070
+00F000E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001C0038003C003
+800380038007800380070007000E0007001C0007003800070070000E01C000FFFF00001C1C7D9B
+1F>I<01FFFFC0003C01C0003800C0003800800038008000380080007000800070008000702080
+0070200000E0400000E0400000E0C00000FFC00001C0800001C0800001C0800001C08000038100
+00038000000380000003800000070000000700000007000000070000000F000000FFF000001A1C
+7D9B1B>70 D<01FFCFFE003C01E0003801C0003801C0003801C0003801C0007003800070038000
+7003800070038000E0070000E0070000E0070000FFFF0001C00E0001C00E0001C00E0001C00E00
+03801C0003801C0003801C0003801C00070038000700380007003800070038000F007800FFE7FF
+001F1C7D9B1F>72 D<01FFC0003C00003800003800003800003800007000007000007000007000
+00E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038000070000
+0700000700000700000F0000FFE000121C7E9B10>I<007FF00007800007000007000007000007
+00000E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038000070
+0000700000700000700060E000E0E000C0C00081C0008380004700003C0000141D7B9B16>I<01
+FFE0003C0000380000380000380000380000700000700000700000700000E00000E00000E00000
+E00001C00001C00001C00001C0000380080380080380080380100700100700300700600700E00E
+03C0FFFFC0151C7D9B1A>76 D<01FE0007F8003E000780002E000F00002E001700002E00170000
+2E002700004E002E00004E004E00004E004E00004E008E00008E011C00008E011C00008E021C00
+008E021C0001070438000107043800010708380001071038000207107000020720700002072070
+000207407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC00251C7D
+9B25>I<01FC03FE001C0070003C0060002E0040002E0040002E00400047008000470080004700
+80004380800083810000838100008181000081C1000101C2000101C2000100E2000100E2000200
+E4000200740002007400020074000400380004003800040038000C0018001C001000FF8010001F
+1C7D9B1F>I<01FFF800003C0E0000380700003803800038038000380380007007800070078000
+70078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C0600001C0700001C07000
+038070000380700003807000038070000700F0000700F0400700F0400700F0800F007880FFE079
+0000001E001A1D7D9B1E>82 D<1FFFFFC01C0701C0300E00C0200E0080600E0080400E0080401C
+0080801C0080801C0080001C000000380000003800000038000000380000007000000070000000
+7000000070000000E0000000E0000000E0000000E0000001C0000001C0000001C0000001C00000
+03C000007FFE00001A1C799B1E>84 D<7FF0FF800F001C000E0018000E0010000E0010000E0010
+001C0020001C0020001C0020001C00200038004000380040003800400038004000700080007000
+80007000800070008000E0010000E0010000E0010000E0020000E0020000E0040000E004000060
+08000030300000104000000F800000191D779B1F>I<FF83FF0FF03C007001C038007001803800
+F001003800F0020038017002003801700400380270040038027008001C047008001C047010001C
+087010001C087020001C107020001C107040001C207040001C207080001C407180001C40710000
+1C807200001D807200001D007400001E007400001E007800001C007800001C0070000018007000
+0018006000001000600000241D779B29>87 D<03CC063C0C3C181C3838303870387038E070E070
+E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E000E001C
+001C001C001C0039C03E60383038307038703870387038E070E070E070E060E0E0C0C0C1C06180
+63003C000D1D7B9C13>I<01F007080C08181C3838300070007000E000E000E000E000E000E008
+E010602030C01F000E127B9113>I<001F80000380000380000700000700000700000700000E00
+000E00000E00000E0003DC00063C000C3C00181C00383800303800703800703800E07000E07000
+E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B9C15>I<01E007100C101808
+3810701070607F80E000E000E000E000E000E0086010602030C01F000D127B9113>I<0003C000
+0670000C70001C60001C00001C0000380000380000380000380000380003FF8000700000700000
+700000700000700000E00000E00000E00000E00000E00001C00001C00001C00001C00001C00003
+8000038000038000030000030000070000C60000E60000CC00007800001425819C0D>I<00F301
+8F030F06070E0E0C0E1C0E1C0E381C381C381C381C383830383038187818F00F700070007000E0
+00E0C0C0E1C0C3007E00101A7D9113>I<0FC00001C00001C00003800003800003800003800007
+00000700000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C0038
+1C00381C00383800703880703880707080707100E03200601C00111D7D9C15>I<018003800100
+00000000000000000000000000001C002600470047008E008E000E001C001C001C003800380071
+0071007100720072003C00091C7C9B0D>I<0FC00001C00001C000038000038000038000038000
+0700000700000700000700000E0F000E11000E23800E43801C83001C80001D00001E00003F8000
+39C00038E00038E00070E20070E20070E20070E400E06400603800111D7D9C13>107
+D<1F800380038007000700070007000E000E000E000E001C001C001C001C003800380038003800
+7000700070007000E400E400E400E40068003800091D7C9C0B>I<3C1E0780266318C04683A0E0
+4703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C0701C01C0701C01C070380380E03
+88380E0388380E0708380E0710701C0320300C01C01D127C9122>I<3C3C002646004687004707
+008E07008E07000E07000E07001C0E001C0E001C0E001C1C00381C40381C403838403838807019
+00300E0012127C9117>I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030
+E06060C031801E000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E0
+0381C00381C00381C00381800703800703000707000706000E8C000E70000E00000E00001C0000
+1C00001C00001C00003C0000FF8000131A7F9115>I<03C4062C0C3C181C3838303870387038E0
+70E070E070E070E0E0C0E0C0E061E063C03DC001C001C0038003800380038007803FF00E1A7B91
+13>I<3C3C26C2468747078E068E000E000E001C001C001C001C00380038003800380070003000
+10127C9112>I<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C0308060
+60C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E000E00
+0E000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E03002707004707
+00470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C003838803838801838801839
+001C5900078E0011127C9116>I<1E06270E470E4706870287020E020E021C041C041C041C0818
+083808181018200C4007800F127C9113>I<1E01832703874703874703838707018707010E0701
+0E07011C0E021C0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>
+I<070E0019910010E38020E38041C30041C00001C00001C0000380000380000380000380000702
+00670200E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E0E
+1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C00101A7C
+9114>I E /Fn 7 121 df<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C83
+0C>I<0000038000000F0000003C000000F0000003C000000F0000003C000000F0000003C00000
+0F0000003C000000F0000000F00000003C0000000F00000003C0000000F00000003C0000000F00
+000003C0000000F00000003C0000000F000000038019187D9520>I<E0000000780000001E0000
+000780000001E0000000780000001E0000000780000001E0000000780000001E00000007800000
+078000001E00000078000001E00000078000001E00000078000001E00000078000001E00000078
+000000E000000019187D9520>62 D<0003F800000E0E000038038000E001C001C001C0038000E0
+070000E00F0000F01E0000F01C0000F03C0000F03C0000F0780000F0780000F0780000F0F00001
+E0F00001E0F00001E0F00003C0F00003C0F0000780F0000780F0000F0070000E0070001C003800
+38003C0070001C01C0000707800001FC00001C1E7E9C20>79 D<381F004E61804681C04701C08F
+01C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10380E2070064030
+038014127E9119>110 D<07878008C84010F0C020F1E020E3C040E18000E00000E00001C00001
+C00001C00001C000638080F38080F38100E5810084C60078780013127E9118>120
+D E /Fo 73 123 df<003FE3F801F03F1C03C03E3E07C07C3E0F807C3E0F807C1C0F807C000F80
+7C000F807C000F807C000F807C00FFFFFFC0FFFFFFC00F807C000F807C000F807C000F807C000F
+807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C00
+7FE1FFC07FE1FFC01F1D809C1C>11 D<003FC00001F0300003C0380007C07C000F807C000F807C
+000F8038000F8000000F8000000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F80
+7C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F
+807C000F807C007FE1FF807FE1FF80191D809C1B>I<781E00FC3F00FC3F00FE3F80FE3F807A1E
+80020080020080040100040100080200080200300C00401000110E7E9C19>34
+D<78FCFCFEFE7A0202040408083040070E7D9C0D>39 D<78FCFCFEFE7A0202040408083040070E
+7D850D>44 D<FFE0FFE0FFE0FFE00B047F8A10>I<78FCFCFCFC7806067D850D>I<03F8000F1E00
+1C07003C07803803807803C07803C07803C0F803E0F803E0F803E0F803E0F803E0F803E0F803E0
+F803E0F803E0F803E0F803E0F803E07803C07803C03803803C07801C07000F1E0003F800131B7E
+9A18>48 D<00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003
+E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
+E0007FFF807FFF80111B7D9A18>I<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E0
+7803E00007E00007C00007C0000F80001F00001E0000380000700000E000018060030060060060
+0800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F8001FFE003C1F003C0F807C07
+C07E07C07C07C03807C0000F80000F80001E00003C0003F800001E00000F800007C00007C00007
+E03007E07807E0FC07E0FC07E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<00018000
+0380000780000F80001F80003F80006F8000CF80008F80018F80030F80060F800C0F80180F8030
+0F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F8001FFF801FFF815
+1B7F9A18>I<1801801FFF001FFE001FFC001FF8001FC00018000018000018000018000019F800
+1E0E00180F801007800007C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F80
+381F001FFE0007F000131B7E9A18>I<007E0003FF000781800F03C01E07C03C07C03C03807800
+00780000F80000F8F800FB0E00FA0780FC0380FC03C0F803E0F803E0F803E0F803E07803E07803
+E07803C03C03C03C07801E0F0007FE0003F800131B7E9A18>I<6000007FFFE07FFFE07FFFC07F
+FF807FFF80E00300C00600C00C00C0180000300000300000600000E00000E00001E00001C00003
+C00003C00003C00003C00007C00007C00007C00007C00007C00007C000038000131C7D9B18>I<
+03F8000FFE001E0F803807803803C07803C07803C07E03C07F83807FC7003FFE001FFC000FFE00
+07FF801DFF80387FC0781FE0F007E0F003E0F001E0F001E0F001E07801C07803803E07801FFE00
+03F800131B7E9A18>I<03F8000FFE001E0F003C07807807807803C0F803C0F803C0F803E0F803
+E0F803E0F803E07807E03807E03C0BE00E1BE003E3E00003E00003C00003C03807C07C07807C07
+00780F00383C001FF8000FE000131B7E9A18>I<78FCFCFCFC7800000000000078FCFCFCFC7806
+127D910D>I<00038000000380000007C0000007C0000007C000000FE000000FE000001FF00000
+1BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E0001803F00
+01FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFFC07F
+FE1F1C7E9B24>65 D<FFFFF800FFFFFF000FC01F800FC00FC00FC007C00FC007E00FC007E00FC0
+07E00FC007E00FC007E00FC007C00FC00F800FC03F000FFFFE000FC00F800FC007C00FC007E00F
+C003E00FC003F00FC003F00FC003F00FC003F00FC003F00FC007E00FC007E00FC01FC0FFFFFF00
+FFFFFC001C1C7E9B22>I<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E03E0000E0
+3E0000607E0000607C000060FC000000FC000000FC000000FC000000FC000000FC000000FC0000
+00FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007C0030003F80E0000FF
+FC00001FE0001B1C7D9B22>I<FFFFF800FFFFFF000FC01FC00FC007E00FC001F00FC001F80FC0
+00F80FC000FC0FC0007C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0F
+C0007E0FC0007E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001F00FC007E00FC01FC0
+FFFFFF00FFFFF8001F1C7E9B25>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC00380
+0FC003800FC181800FC181800FC181800FC180000FC380000FFF80000FFF80000FC380000FC180
+000FC180000FC180600FC180600FC000E00FC000C00FC000C00FC001C00FC001C00FC003C00FC0
+0F80FFFFFF80FFFFFF801B1C7E9B1F>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC0
+03800FC003800FC001800FC181800FC181800FC180000FC180000FC380000FFF80000FFF80000F
+C380000FC180000FC180000FC180000FC180000FC000000FC000000FC000000FC000000FC00000
+0FC00000FFFF0000FFFF0000191C7E9B1E>I<000FF008007FFE3801FC07F807E001F80F800078
+1F0000783F0000383E0000387E0000187C000018FC000000FC000000FC000000FC000000FC0000
+00FC000000FC007FFFFC007FFF7C0001F87E0001F83E0001F83F0001F81F0001F80F8001F807E0
+01F801FC07F8007FFE78000FF818201C7D9B26>I<FFFC3FFFFFFC3FFF0FC003F00FC003F00FC0
+03F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FFFFFF00FFFFFF00F
+C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F0
+0FC003F00FC003F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFFFFFF07E007E007E007E007E007E0
+07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFF
+FF101C7F9B12>I<07FFF007FFF0001F80001F80001F80001F80001F80001F80001F80001F8000
+1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80301F80781F80FC1F80FC
+1F80FC1F00783E00387C000FF000141C7F9B19>I<FFFC07FFFFFC07FF0FC000E00FC001C00FC0
+03800FC006000FC00C000FC038000FC070000FC0E0000FC1C0000FC3C0000FC7E0000FCFE0000F
+FBF0000FF3F8000FE1F8000FC0FC000FC0FE000FC07E000FC03F000FC01F800FC01FC00FC00FC0
+0FC007E00FC007F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFF00FFFF000FC0000FC0000FC0000F
+C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0030F
+C0030FC0030FC0070FC0070FC0060FC00E0FC01E0FC07EFFFFFEFFFFFE181C7E9B1D>I<FFC000
+03FFFFE00007FF0FE00007F00DF0000DF00DF0000DF00DF0000DF00CF80019F00CF80019F00C7C
+0031F00C7C0031F00C3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F00C1F00C0F8181F00C
+0F8181F00C07C301F00C07C301F00C03E601F00C03E601F00C01FC01F00C01FC01F00C01FC01F0
+0C00F801F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFE003FFFFE003FF0FF00030
+0FF800300DFC00300CFE00300C7E00300C3F00300C1F80300C1FC0300C0FE0300C07F0300C03F0
+300C01F8300C01FC300C00FE300C007F300C003F300C001FB00C001FF00C000FF00C0007F00C00
+03F00C0001F00C0000F00C0000F0FFC00070FFC00030201C7E9B25>I<003FE00001F07C0003C0
+1E000F800F801F0007C01E0003C03E0003E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC
+0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07E0003F07E0003F03E0003E0
+3F0007E01F0007C00F800F8003C01E0001F07C00003FE0001D1C7D9B24>I<FFFFF800FFFFFE00
+0FC03F800FC00F800FC007C00FC007E00FC007E00FC007E00FC007E00FC007E00FC007C00FC007
+C00FC00F800FC03F000FFFFC000FC000000FC000000FC000000FC000000FC000000FC000000FC0
+00000FC000000FC000000FC000000FC00000FFFC0000FFFC00001B1C7E9B21>I<003FE00001F0
+7C0003C01E000F800F801F0007C01F0007C03E0003E07E0003F07C0001F07C0001F0FC0001F8FC
+0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07C0001F07E0003F0
+3E0003E03E0703E01F08C7C00F906F8003D07E0001F87C00003FF8080000380800003C1800003F
+F800001FF800001FF000000FF0000007E0000003C01D247D9B24>I<FFFFF00000FFFFFE00000F
+C03F00000FC00F80000FC007C0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E000
+0FC007C0000FC00F80000FC03E00000FFFF000000FC07C00000FC03E00000FC03F00000FC01F80
+000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F81800FC01F81800FC00F
+C180FFFC07C300FFFC01FE00211C7E9B24>I<07F8201FFEE03C07E07801E07000E0F000E0F000
+60F00060F80000FE0000FFE0007FFE003FFF003FFF800FFFC007FFE0007FE00003F00001F00000
+F0C000F0C000F0C000E0E000E0F001C0FC03C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFF
+E0781F81E0701F80E0601F8060E01F8070C01F8030C01F8030C01F8030C01F8030001F8000001F
+8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
+1F8000001F8000001F8000001F8000001F800007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFF
+FC03FF0FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC00030
+0FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000
+3007C0003007C0006003E000E001F001C000FC0780007FFE00000FF800201C7E9B25>I<FFFC01
+FF80FFFC01FF800FC000180007E000300007E000300007F000700003F000600003F800E00001F8
+00C00001FC00C00000FC01800000FC018000007E030000007E030000007F070000003F06000000
+3F8E0000001F8C0000001FCC0000000FD80000000FD800000007F000000007F000000007F00000
+0003E000000003E000000001C000000001C00000211C7F9B24>I<FFFC7FFE0FFCFFFC7FFE0FFC
+0FC007E000C00FC007F000C00FE003F001C007E003F0018007E007F8018003F007F8030003F007
+F8030003F80CFC070001F80CFC060001F81CFE060001FC187E0E0000FC187E0C0000FC387F0C00
+007E303F1800007E303F1800007F601FB800003F601FB000003FE01FF000003FC00FF000001FC0
+0FE000001FC00FE000000F8007C000000F8007C000000F0003C000000700038000000700038000
+2E1C7F9B31>I<7FFE1FFE007FFE1FFE0007F001800003F803800001FC07000000FC06000000FE
+0C0000007F1C0000003F380000003FB00000001FE00000000FE00000000FE000000007F0000000
+03F800000007F80000000FFC0000000CFE000000187E000000387F000000703F800000601F8000
+00C01FC00001C00FE000018007F000030007F000FFF03FFF80FFF03FFF80211C7F9B24>I<FFFC
+01FF80FFFC01FF800FE000380007F000300003F800700003F800600001FC00C00000FE01C00000
+FE018000007F030000003F870000003F860000001FCE0000000FFC0000000FF800000007F80000
+0003F000000003F000000003F000000003F000000003F000000003F000000003F000000003F000
+000003F000000003F00000003FFF0000003FFF0000211C7F9B24>I<7FFFFC7FFFFC7E01F87803
+F87003F0E007E0E007E0C00FC0C01FC0C01F80003F00007F00007E0000FC0000FC0001F80003F8
+0603F00607E0060FE0060FC00E1F800E1F801C3F001C7F003C7E00FCFFFFFCFFFFFC171C7D9B1D
+>I<FEFEFEE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0FEFEFE07297C9E0D>I<040100180600200800200800401000401000802000802000BC2F00FE
+3F80FE3F807E1F807E1F803C0F00110E7B9C19>I<FEFEFE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E
+0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EFEFEFE07297F9E0D>I<0FF8001C1E003E0F80
+3E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC0
+3E13F80FE1F815127F9117>97 D<FF0000FF00001F00001F00001F00001F00001F00001F00001F
+00001F00001F00001F3F801FE1E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E1F
+003E1F003E1F003C1F003C1F00781F80701EC1E01C3F00171D7F9C1B>I<03FC000E0E001C1F00
+3C1F00781F00780E00F80000F80000F80000F80000F80000F800007800007801803C01801C0300
+0E0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F00001F00001F00001F00001
+F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801
+F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C
+01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F
+038001FC0013127F9116>I<007F0001E38003C7C00787C00F87C00F83800F80000F80000F8000
+0F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80000F80000F80000F8000
+0F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07
+303C07803C07803C07803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFF
+C00FFFE01FFFF07801F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>I<FF
+0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F31E01F
+40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
+00F8FFE7FFFFE7FF181D7F9C1B>I<1E003F003F003F003F001E00000000000000000000000000
+FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F
+9D0E>I<007800FC00FC00FC00FC007800000000000000000000000003FC03FC007C007C007C00
+7C007C007C007C007C007C007C007C007C007C007C007C007C007C007C707CF87CF878F8F070E0
+1F800E26839D0F>I<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F0000
+1F00001F0FF81F0FF81F03801F07001F0C001F18001F70001FF8001FFC001FBC001F3E001F1F00
+1F0F001F0F801F07C01F03E0FFC7FCFFC7FC161D7F9C19>I<FF00FF001F001F001F001F001F00
+1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
+00FFE0FFE00B1D7F9C0E>I<FF0FC07E00FF31E18F001F40F207801F80FC07C01F80FC07C01F00
+F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F
+00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128>I<FF0FC0FF31E01F40
+F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
+F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F8
+00F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>I<FF3F80
+FFE1E01F80F01F00781F007C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F007C
+1F00781F80F01FC1E01F3F001F00001F00001F00001F00001F00001F0000FFE000FFE000171A7F
+911B>I<03F0600F0CE01E07E03C03E07C03E07803E0F803E0F803E0F803E0F803E0F803E0F803
+E07803E07C03E03C03E01C07E00E0FE003F3E00003E00003E00003E00003E00003E00003E0001F
+FC001FFC161A7E9119>I<FE3E00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F
+00001F00001F00001F00001F00001F00001F0000FFF000FFF00011127F9114>I<1FD830786018
+E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<0300
+030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F
+0C1F0C1F0C0F08079803F00E1A7F9913>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F8
+1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>
+I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001F60001F60001FE
+0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8FF8FE1F03E0301F03E030
+1F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003F83D8001F83F0001F83F
+0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7FC1F81800F838007C700
+03EE0001FC0001F80000F800007C0000FE0001DF00039F00070F800607C00C03E0FF07FCFF07FC
+16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001F7
+0001F60000FE0000FC0000FC00007800007800003000003000007000706000F86000F8C000F980
+007300003E0000161A7F9119>I<3FFF803C1F00303F00303E00607C0060FC0060F80001F00003
+F00007E00007C1800F81801F81801F03803E03007E07007C0F00FFFF0011127F9115>I
+E /Fp 33 122 df<00000007FF800000000001FFFFF0000000000FFFFFFC000000003FFFFFFE00
+000000FFFC00FF00000001FFC0003F80000007FF00007FC000000FFE0001FFC000001FFC0001FF
+E000001FF80003FFE000003FF00003FFE000003FF00003FFE000007FE00003FFE000007FE00003
+FFE000007FE00003FFE000007FE00003FFE000007FE00001FFC000007FE00000FF8000007FE000
+003E0000007FE00000000000007FE00000000000007FE00000000000007FE00000000000007FE0
+0000000000007FE00000000000007FE0003FFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFF
+FFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000007FF00000FFF000007FF000007FF00000
+7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
+007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
+00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007F
+F000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00000
+7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
+007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
+00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0003FFF
+FFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03B
+487EC742>12 D<0000000003E000000000000000000007F000000000000000000007F000000000
+00000000000FF80000000000000000000FF80000000000000000000FF80000000000000000001F
+FC0000000000000000001FFC0000000000000000003FFE0000000000000000003FFE0000000000
+000000007FFF0000000000000000007FFF0000000000000000007FFF000000000000000000FFFF
+800000000000000000FFFF800000000000000001FFFFC00000000000000001FFFFC00000000000
+000001FFFFC00000000000000003FFFFE00000000000000003EFFFE00000000000000007EFFFF0
+0000000000000007CFFFF00000000000000007C7FFF0000000000000000FC7FFF8000000000000
+000F83FFF8000000000000001F83FFFC000000000000001F03FFFC000000000000001F01FFFC00
+0000000000003F01FFFE000000000000003E00FFFE000000000000007E00FFFF00000000000000
+7C007FFF00000000000000FC007FFF80000000000000F8007FFF80000000000000F8003FFF8000
+0000000001F8003FFFC0000000000001F0001FFFC0000000000003F0001FFFE0000000000003E0
+001FFFE0000000000003E0000FFFE0000000000007E0000FFFF0000000000007C00007FFF00000
+0000000FC00007FFF800000000000F800007FFF800000000000F800003FFF800000000001F8000
+03FFFC00000000001F000001FFFC00000000003FFFFFFFFFFE00000000003FFFFFFFFFFE000000
+00007FFFFFFFFFFF00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF0000000000FC000000
+7FFF8000000000F80000003FFF8000000001F80000003FFFC000000001F00000003FFFC0000000
+01F00000001FFFC000000003F00000001FFFE000000003E00000000FFFE000000007E00000000F
+FFF000000007C00000000FFFF000000007C000000007FFF00000000FC000000007FFF80000000F
+8000000003FFF80000001F8000000003FFFC0000001F0000000003FFFC0000007FC000000001FF
+FC0000FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFF
+C00007FFFFFFFF80FFFFFFC00007FFFFFFFF8051487CC75A>65 D<000000003FFE00000E000000
+0FFFFFC0001E0000007FFFFFF8003E000003FFFFFFFE00FE00000FFFFFFFFF81FE00003FFFF800
+FFC3FE0000FFFF80000FF7FE0001FFFC000003FFFE0007FFF0000001FFFE000FFFC00000007FFE
+001FFF800000003FFE003FFF000000001FFE007FFE000000000FFE00FFFC0000000007FE01FFF8
+0000000007FE03FFF00000000003FE03FFF00000000001FE07FFE00000000001FE07FFE0000000
+0000FE0FFFC00000000000FE0FFFC000000000007E1FFFC000000000007E1FFF8000000000007E
+3FFF8000000000007E3FFF8000000000003E3FFF8000000000003E7FFF8000000000003E7FFF00
+00000000003E7FFF000000000000007FFF00000000000000FFFF00000000000000FFFF00000000
+000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000
+FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00
+000000000000FFFF00000000000000FFFF000000000000007FFF000000000000007FFF00000000
+0000007FFF000000000000007FFF8000000000003E3FFF8000000000003E3FFF8000000000003E
+3FFF8000000000003E1FFF8000000000003E1FFFC000000000003E0FFFC000000000007C0FFFC0
+00000000007C07FFE000000000007C07FFE00000000000F803FFF00000000000F803FFF0000000
+0001F801FFF80000000001F000FFFC0000000003E0007FFE0000000007E0003FFF000000000FC0
+001FFF800000001F80000FFFC00000003F000007FFF0000000FE000001FFFC000001FC000000FF
+FF80000FF80000003FFFF8007FF00000000FFFFFFFFFC000000003FFFFFFFF00000000007FFFFF
+FC00000000000FFFFFE00000000000003FFE000000474979C756>67 D<FFFFFFFFFFFFC0000000
+FFFFFFFFFFFFFE000000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFC00
+00001FFF800007FFFF0000001FFF8000007FFF8000001FFF8000000FFFE000001FFF80000007FF
+F000001FFF80000001FFF800001FFF80000000FFFC00001FFF800000007FFE00001FFF80000000
+3FFF00001FFF800000001FFF00001FFF800000000FFF80001FFF800000000FFFC0001FFF800000
+0007FFC0001FFF8000000007FFE0001FFF8000000003FFE0001FFF8000000003FFF0001FFF8000
+000003FFF0001FFF8000000003FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF80
+00000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF
+8000000001FFFC001FFF8000000001FFFE001FFF8000000000FFFE001FFF8000000000FFFE001F
+FF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE00
+1FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE
+001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000001FFFE001FFF8000000001FF
+FC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001
+FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF8000000003FFF0001FFF80000000
+03FFF0001FFF8000000003FFF0001FFF8000000007FFE0001FFF8000000007FFE0001FFF800000
+000FFFC0001FFF800000000FFF80001FFF800000001FFF80001FFF800000003FFF00001FFF8000
+00003FFE00001FFF800000007FFC00001FFF80000001FFF800001FFF80000003FFF000001FFF80
+00000FFFE000001FFF8000007FFFC000001FFF800003FFFF0000FFFFFFFFFFFFFFFE0000FFFFFF
+FFFFFFFFF80000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFC00000004F47
+7CC65B>I<FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFF
+FC00FFFFFFFFFFFFFFFE00001FFFC00003FFFE00001FFFC000003FFE00001FFFC000000FFE0000
+1FFFC0000003FE00001FFFC0000001FE00001FFFC0000000FE00001FFFC0000000FE00001FFFC0
+0000007E00001FFFC00000007F00001FFFC00000003F00001FFFC00000003F00001FFFC0000000
+1F00001FFFC00000001F00001FFFC00000001F00001FFFC00000001F00001FFFC0007C001F0000
+1FFFC0007C000F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0
+007C000000001FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC001FC00
+0000001FFFC003FC000000001FFFC01FFC000000001FFFFFFFFC000000001FFFFFFFFC00000000
+1FFFFFFFFC000000001FFFFFFFFC000000001FFFFFFFFC000000001FFFC01FFC000000001FFFC0
+03FC000000001FFFC001FC000000001FFFC000FC000000001FFFC000FC000000001FFFC000FC00
+0000001FFFC0007C000000001FFFC0007C000000001FFFC0007C000000001FFFC0007C00000000
+1FFFC0007C000000001FFFC0007C000000001FFFC00000000000001FFFC00000000000001FFFC0
+0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000
+0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
+1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
+0000000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF0000
+0000FFFFFFFFFF0000000041467CC54B>70 D<000000003FFE00000E000000000FFFFFC0001E00
+0000007FFFFFF8003E00000003FFFFFFFE00FE0000000FFFFFFFFF81FE0000003FFFF800FFC3FE
+000000FFFF80000FF7FE000001FFFC000003FFFE000007FFF0000001FFFE00000FFFC00000007F
+FE00001FFF800000003FFE00003FFF000000001FFE00007FFE000000000FFE0000FFFC00000000
+07FE0001FFF80000000007FE0003FFF00000000003FE0003FFF00000000001FE0007FFE0000000
+0001FE0007FFE00000000000FE000FFFC00000000000FE000FFFC000000000007E001FFFC00000
+0000007E001FFF8000000000007E003FFF8000000000007E003FFF8000000000003E003FFF8000
+000000003E007FFF8000000000003E007FFF0000000000003E007FFF00000000000000007FFF00
+00000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF
+0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FF
+FF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000
+FFFF0000000000000000FFFF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF0000007FFFFFFF
+FE7FFF8000007FFFFFFFFE7FFF8000007FFFFFFFFE3FFF8000000000FFFE003FFF8000000000FF
+FE003FFF8000000000FFFE001FFF8000000000FFFE001FFFC000000000FFFE000FFFC000000000
+FFFE000FFFC000000000FFFE0007FFE000000000FFFE0007FFE000000000FFFE0003FFF0000000
+00FFFE0003FFF800000000FFFE0001FFF800000000FFFE0000FFFC00000000FFFE00007FFE0000
+0000FFFE00003FFF00000000FFFE00001FFF80000000FFFE00000FFFE0000001FFFE000007FFF0
+000003FFFE000001FFFC000007FFFE000000FFFF80001FFFFE0000003FFFFC00FFC7FE0000000F
+FFFFFFFF83FE00000003FFFFFFFE00FE000000007FFFFFF8003E000000000FFFFFE0000E000000
+00003FFE000000004F4979C75D>I<FFFFFFFFF801FFFFFFFFF0FFFFFFFFF801FFFFFFFFF0FFFF
+FFFFF801FFFFFFFFF0FFFFFFFFF801FFFFFFFFF0FFFFFFFFF801FFFFFFFFF0001FFFC00000003F
+FF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFF
+C00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF
+8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC0
+0000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF80
+00001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC000
+00003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000
+001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000
+003FFF8000001FFFC00000003FFF8000001FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF800000
+1FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFC0000000
+3FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001F
+FFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003F
+FF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFF
+C00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF
+8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC0
+0000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF80
+00001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC000
+00003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000001FFFC00000003FFF8000
+FFFFFFFFF801FFFFFFFFF0FFFFFFFFF801FFFFFFFFF0FFFFFFFFF801FFFFFFFFF0FFFFFFFFF801
+FFFFFFFFF0FFFFFFFFF801FFFFFFFFF054477CC65D>I<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFF
+FFFFFFFEFFFFFFFFFE000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000
+000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
+00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
+E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000F
+FFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE00000
+0FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000
+000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
+00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
+E000FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE27477DC62D>I<FFFFFFC000
+0000FFFFFFF0FFFFFFE0000000FFFFFFF0FFFFFFF0000000FFFFFFF0FFFFFFF8000000FFFFFFF0
+FFFFFFFC000000FFFFFFF0001FFFFC000000007FE000001FFFFE000000001F8000001FFFFF0000
+00001F8000001FFFFF800000001F8000001FFFFFC00000001F8000001FBFFFE00000001F800000
+1F9FFFE00000001F8000001F9FFFF00000001F8000001F8FFFF80000001F8000001F87FFFC0000
+001F8000001F83FFFE0000001F8000001F81FFFF0000001F8000001F80FFFF0000001F8000001F
+80FFFF8000001F8000001F807FFFC000001F8000001F803FFFE000001F8000001F801FFFF00000
+1F8000001F800FFFF800001F8000001F8007FFF800001F8000001F8007FFFC00001F8000001F80
+03FFFE00001F8000001F8001FFFF00001F8000001F8000FFFF80001F8000001F80007FFFC0001F
+8000001F80003FFFC0001F8000001F80003FFFE0001F8000001F80001FFFF0001F8000001F8000
+0FFFF8001F8000001F800007FFFC001F8000001F800003FFFE001F8000001F800001FFFF001F80
+00001F800001FFFF001F8000001F800000FFFF801F8000001F8000007FFFC01F8000001F800000
+3FFFE01F8000001F8000001FFFF01F8000001F8000000FFFF81F8000001F8000000FFFF81F8000
+001F80000007FFFC1F8000001F80000003FFFE1F8000001F80000001FFFF1F8000001F80000000
+FFFF9F8000001F800000007FFFDF8000001F800000007FFFDF8000001F800000003FFFFF800000
+1F800000001FFFFF8000001F800000000FFFFF8000001F8000000007FFFF8000001F8000000003
+FFFF8000001F8000000003FFFF8000001F8000000001FFFF8000001F8000000000FFFF8000001F
+80000000007FFF8000001F80000000003FFF8000001F80000000001FFF8000001F80000000001F
+FF8000001F80000000000FFF8000001F800000000007FF8000001F800000000003FF8000001F80
+0000000001FF8000007FE00000000000FF8000FFFFFFF000000000FF8000FFFFFFF0000000007F
+8000FFFFFFF0000000003F8000FFFFFFF0000000001F8000FFFFFFF0000000000F000054477CC6
+5D>78 D<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFC0
+00FFFFFFFFFFFFFFF000001FFF80000FFFFC00001FFF800001FFFE00001FFF8000007FFF00001F
+FF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF8000000FFFE0001FFF8000
+000FFFE0001FFF80000007FFF0001FFF80000007FFF0001FFF80000007FFF0001FFF80000007FF
+F8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001F
+FF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF0001FFF8000
+0007FFF0001FFF80000007FFF0001FFF8000000FFFE0001FFF8000000FFFE0001FFF8000000FFF
+C0001FFF8000001FFF80001FFF8000003FFF80001FFF8000007FFF00001FFF800001FFFE00001F
+FF80000FFFF800001FFFFFFFFFFFF000001FFFFFFFFFFFC000001FFFFFFFFFFE0000001FFFFFFF
+FFF00000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000000000
+00001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001F
+FFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
+00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000000000
+00001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001F
+FFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
+00000000001FFFC00000000000FFFFFFFFF800000000FFFFFFFFF800000000FFFFFFFFF8000000
+00FFFFFFFFF800000000FFFFFFFFF80000000045477CC651>80 D<FFFFFFFFFFFC0000000000FF
+FFFFFFFFFFF000000000FFFFFFFFFFFFFE00000000FFFFFFFFFFFFFF80000000FFFFFFFFFFFFFF
+E0000000001FFF80001FFFF8000000001FFF800001FFFC000000001FFF8000007FFF000000001F
+FF8000003FFF800000001FFF8000001FFF800000001FFF8000000FFFC00000001FFF8000000FFF
+E00000001FFF8000000FFFE00000001FFF80000007FFF00000001FFF80000007FFF00000001FFF
+80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF8
+0000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80
+000007FFF80000001FFF80000007FFF00000001FFF80000007FFF00000001FFF8000000FFFE000
+00001FFF8000000FFFE00000001FFF8000000FFFC00000001FFF8000001FFF800000001FFF8000
+003FFF000000001FFF800000FFFE000000001FFF800003FFF8000000001FFF80001FFFF0000000
+001FFFFFFFFFFFC0000000001FFFFFFFFFFE00000000001FFFFFFFFFF800000000001FFFFFFFFF
+FE00000000001FFF80007FFF80000000001FFF80001FFFC0000000001FFF800007FFE000000000
+1FFF800003FFF0000000001FFF800001FFF8000000001FFF800001FFFC000000001FFF800000FF
+FE000000001FFF800000FFFE000000001FFF8000007FFE000000001FFF8000007FFF000000001F
+FF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF
+000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF800000001FFF
+8000007FFF800000001FFF8000007FFF800000001FFF8000007FFF800000001FFF8000007FFF80
+0000001FFF8000007FFF8000E0001FFF8000007FFF8001F0001FFF8000007FFFC001F0001FFF80
+00007FFFC001F0001FFF8000003FFFC001F0001FFF8000003FFFC003F0001FFF8000001FFFE003
+E0001FFF8000000FFFE007E0FFFFFFFFF00007FFF007C0FFFFFFFFF00003FFFC1F80FFFFFFFFF0
+0001FFFFFF00FFFFFFFFF000007FFFFE00FFFFFFFFF000001FFFFC000000000000000000FFF000
+54487CC659>82 D<3FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003F
+FFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFF0003FFF8003FFF007FF80003FFF80007FF80
+7FE00003FFF80001FF807FC00003FFF80000FF807F800003FFF800007F807F000003FFF800003F
+807F000003FFF800003F807E000003FFF800001F807E000003FFF800001F807E000003FFF80000
+0F807C000003FFF800000F807C000003FFF800000F807C000003FFF800000F807C000003FFF800
+000F80FC000003FFF800000FC0F8000003FFF8000007C0F8000003FFF8000007C0F8000003FFF8
+000007C0F8000003FFF8000007C0F8000003FFF8000007C000000003FFF80000000000000003FF
+F80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003
+FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800000000000000
+03FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000000000
+0003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000
+000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800000000
+00000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000
+0000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF80000
+000000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800
+00000000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8
+0000000000000003FFF80000000000000003FFF80000000000000003FFF8000000000003FFFFFF
+FFFFF800000003FFFFFFFFFFF800000003FFFFFFFFFFF800000003FFFFFFFFFFF800000003FFFF
+FFFFFFF800004A467CC553>84 D<FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF0
+001FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFFFFFF
+C03FFFFFFFF0001FFFFFF0007FFF0000001FFFE00000000FF800007FFF0000000FFFE000000003
+E000007FFF8000000FFFE000000007E000003FFF8000000FFFF000000007C000003FFFC0000007
+FFF000000007C000003FFFC0000007FFF80000000FC000001FFFC0000003FFF80000000F800000
+1FFFE0000003FFF80000001F8000000FFFE0000003FFFC0000001F0000000FFFE0000001FFFC00
+00001F0000000FFFF0000001FFFE0000003F00000007FFF0000001FFFE0000003E00000007FFF8
+000001FFFE0000007E00000003FFF8000003FFFF0000007C00000003FFF8000003FFFF0000007C
+00000003FFFC000003FFFF000000FC00000001FFFC000007FFFF800000F800000001FFFE000007
+FFFF800000F800000001FFFE000007FFFFC00001F800000000FFFE00000F9FFFC00001F0000000
+00FFFF00000F9FFFC00003F0000000007FFF00001F9FFFE00003E0000000007FFF00001F0FFFE0
+0003E0000000007FFF80001F0FFFE00007E0000000003FFF80003F0FFFF00007C0000000003FFF
+C0003E07FFF00007C0000000001FFFC0007E07FFF8000F80000000001FFFC0007C03FFF8000F80
+000000001FFFE0007C03FFF8001F80000000000FFFE000FC03FFFC001F00000000000FFFE000F8
+01FFFC001F00000000000FFFF000F801FFFE003F000000000007FFF001F801FFFE003E00000000
+0007FFF801F000FFFE007E000000000003FFF803F000FFFF007C000000000003FFF803E0007FFF
+007C000000000003FFFC03E0007FFF00FC000000000001FFFC07E0007FFF80F8000000000001FF
+FE07C0003FFF80F8000000000001FFFE0FC0003FFFC1F8000000000000FFFE0F80001FFFC1F000
+0000000000FFFF0F80001FFFC3F00000000000007FFF1F80001FFFE3E00000000000007FFF1F00
+000FFFE3E00000000000007FFF9F00000FFFF7E00000000000003FFFBF00000FFFF7C000000000
+00003FFFFE000007FFFFC00000000000001FFFFE000007FFFF800000000000001FFFFC000003FF
+FF800000000000001FFFFC000003FFFF800000000000000FFFFC000003FFFF000000000000000F
+FFF8000001FFFF000000000000000FFFF8000001FFFF0000000000000007FFF0000000FFFE0000
+000000000007FFF0000000FFFE0000000000000003FFF0000000FFFC0000000000000003FFE000
+00007FFC0000000000000003FFE00000007FFC0000000000000001FFE00000007FF80000000000
+000001FFC00000003FF80000000000000001FFC00000003FF80000000000000000FF800000001F
+F00000000000000000FF800000001FF000000000000000007F800000001FE00000000000000000
+7F000000000FE000000000000000007F000000000FE000000000000000003E0000000007C00000
+000074487DC67B>87 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007
+FE001FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007F
+F8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC000000
+00003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC000000FFFFFFFC
+000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC0003FFC000FFF00
+003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003FFC00FFF000003FFC00
+FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000007FFC007FF80000
+FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC03F8FFFF807FFFFFF07FFFC01
+FFFFFC03FFFC007FFFF001FFFC0003FF80007FF8362E7DAD3A>97 D<007FC00000000000FFFFC0
+0000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000000003FF
+C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001
+FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000000
+01FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
+0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
+000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDFF00F
+FF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF00001FFE000
+003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE000001FFE0001FFE0
+00000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF8001FF
+E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001
+FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF00
+01FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE000001FFE0001FFE000001FFC
+0001FFE000001FFC0001FFE000003FF80001FFF000003FF80001FFF800007FF00001FFFC0000FF
+E00001FFFE0001FFC00001FFBF0007FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFF
+F0000001F800FFFF80000001F0001FF800000039487CC742>I<00001FFFC0000000FFFFF80000
+07FFFFFE00001FFFFFFF80007FFC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003
+FFE00FFE0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E007F
+F8000000007FF8000000007FF800000000FFF800000000FFF800000000FFF800000000FFF80000
+0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000007F
+F8000000007FF8000000007FFC000000003FFC000000003FFC000000001FFC000000F81FFE0000
+00F80FFE000000F80FFF000001F007FF800003F003FFC00007E001FFE0000FC000FFF0001F8000
+7FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE00002D2E7CAD35>I<000000
+00007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000
+0000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC0000000000001FFC00000
+00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000
+0000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
+000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
+C0000000000001FFC00000000FFC01FFC0000000FFFF81FFC0000007FFFFE1FFC000001FFFFFF9
+FFC000007FFC03FFFFC00000FFF0007FFFC00001FFC0001FFFC00003FF80000FFFC00007FF0000
+07FFC0000FFE000003FFC0000FFE000003FFC0001FFC000003FFC0001FFC000003FFC0003FFC00
+0003FFC0003FFC000003FFC0007FF8000003FFC0007FF8000003FFC0007FF8000003FFC000FFF8
+000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FF
+F8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000
+7FF8000003FFC0007FF8000003FFC0007FF8000003FFC0003FF8000003FFC0003FFC000003FFC0
+003FFC000003FFC0001FFC000003FFC0001FFC000003FFC0000FFE000007FFC00007FF00000FFF
+C00003FF00001FFFC00001FFC0003FFFC00000FFE000FFFFE000007FF807FBFFFF80001FFFFFF3
+FFFF800007FFFFC3FFFF800001FFFF03FFFF8000001FF803FFFF8039487CC742>I<00001FFE00
+000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF0000FFE001FF8001FFC0007FC003FF
+80003FE007FF00003FF00FFE00001FF01FFE00000FF81FFC00000FF83FFC00000FFC3FFC000007
+FC7FFC000007FC7FF8000007FC7FF8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFF
+FFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF8000000
+00FFF8000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC
+0000001C1FFE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003
+F0007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002F2E
+7DAD36>I<000000FFC000000007FFF80000003FFFFC000000FFFFFF000001FFC1FF000007FF03
+FF80000FFC03FF80000FF807FFC0001FF807FFC0003FF007FFC0003FF007FFC0003FE003FF8000
+7FE003FF80007FE001FF00007FE000FE00007FE0003800007FE0000000007FE0000000007FE000
+0000007FE0000000007FE0000000007FE0000000007FE0000000007FE0000000007FE000000000
+7FE0000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000007FF000
+0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
+0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
+0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF00000003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF8
+00003FFFFFF800002A487DC724>I<00000000001F8000007FF000FFE00007FFFF03FFF0001FFF
+FFC7FFF0007FFFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF0007FE0FF807FE0003FF07F0
+07FE0003FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80001FFC0001FFC0001FFC0001
+FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0000FFC0001FF80000F
+FC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF000003FF0007FE000001FF800FFC
+000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF00000003C07FF000000007C0
+000000000007C0000000000007C0000000000007C0000000000007E0000000000007F000000000
+0007F8000000000007FFFFFFF0000007FFFFFFFF000003FFFFFFFFE00003FFFFFFFFF80001FFFF
+FFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80007FFFFFFFFF8003FFFFFFFFFFC00FFFFFFFFFFFC0
+1FF800001FFFE03FE0000001FFE07FC00000007FF07FC00000003FF0FF800000001FF0FF800000
+001FF0FF800000001FF0FF800000001FF0FF800000001FF07FC00000003FE07FC00000003FE03F
+E00000007FC03FF0000000FFC01FFC000003FF800FFF00000FFF0003FFF000FFFC0000FFFFFFFF
+F000003FFFFFFFC0000007FFFFFE000000003FFFC0000035447DAE3B>I<00FC0001FE0003FF00
+07FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF8003FF0001FE0000FC00
+000000000000000000000000000000000000000000000000000000000000000000007FC0FFFFC0
+FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
+01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
+01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18497CC820>105 D<007FC000000000FFFFC000000000FF
+FFC000000000FFFFC000000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000
+000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
+C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000
+0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
+0000000001FFC00000000001FFC0007FFFF801FFC0007FFFF801FFC0007FFFF801FFC0007FFFF8
+01FFC0007FFFF801FFC0000FFE0001FFC00007F00001FFC0000FE00001FFC0003FC00001FFC000
+7F800001FFC000FE000001FFC001FC000001FFC007F8000001FFC00FF0000001FFC01FC0000001
+FFC03F80000001FFC0FF00000001FFC1FE00000001FFC3FF00000001FFCFFF80000001FFDFFFC0
+000001FFFFFFC0000001FFFFFFE0000001FFFFFFF0000001FFFCFFF8000001FFF87FFC000001FF
+E03FFC000001FFC01FFE000001FFC01FFF000001FFC00FFF800001FFC007FFC00001FFC003FFC0
+0001FFC001FFE00001FFC001FFF00001FFC000FFF80001FFC0007FFC0001FFC0003FFC0001FFC0
+001FFE0001FFC0000FFF0001FFC0000FFF8001FFC0000FFFC0FFFFFF807FFFFFFFFFFF807FFFFF
+FFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFF38487CC73F>107 D<007FC000FFFFC000FF
+FFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
+0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
+C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
+FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
+0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFF
+FF80FFFFFF8019487CC720>I<007FC001FFC00000FFE00000FFFFC00FFFF80007FFFC0000FFFF
+C03FFFFE001FFFFF0000FFFFC0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03FFC000FFFFC3E003
+FFC1F001FFE00003FFC7C001FFC3E000FFE00001FFCF0001FFE78000FFF00001FFDE0000FFEF00
+007FF00001FFDC0000FFEE00007FF00001FFFC0000FFFE00007FF80001FFF80000FFFC00007FF8
+0001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FF
+E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000
+FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
+007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8
+0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FF
+E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000
+FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
+007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8
+0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF800FFFF
+FFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07F
+FFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD63>I<007FC001FFC00000FFFFC00FFF
+F80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC07FF8000FFFFC3E003FFC00003FFC7C0
+01FFC00001FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF8
+0000FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF00001FF
+E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
+FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
+01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
+0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
+F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
+FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC0
+7FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF000000007FFFFFE0000001FFFFFFF8000
+003FFC03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE000007FE000FFE0000
+07FF000FFC000003FF001FFC000003FF803FFC000003FFC03FF8000001FFC03FF8000001FFC07F
+F8000001FFE07FF8000001FFE07FF8000001FFE0FFF8000001FFF0FFF8000001FFF0FFF8000001
+FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8
+000001FFF0FFF8000001FFF07FF8000001FFE07FF8000001FFE07FF8000001FFE07FF8000001FF
+E03FFC000003FFC03FFC000003FFC01FFC000003FF801FFE000007FF800FFE000007FF0007FF00
+000FFE0003FF80001FFC0001FFC0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF8000
+0007FFFFFE00000000FFFFF0000000000FFF000000342E7DAD3B>I<00FF803F8000FFFF80FFF0
+00FFFF83FFFC00FFFF87FFFE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC0FFF8001FF
+B80FFF8001FFF80FFF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE0001FFE000F8
+0001FFE000000001FFE000000001FFC000000001FFC000000001FFC000000001FFC000000001FF
+C000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
+0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FF
+C000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
+00FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000292E7CAD31>114
+D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F80000FE03F0000
+07E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FFF0000000FFFE
+000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003
+FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000FFFC0000001FFC7800000FFC
+F8000007FCF8000003FCFC000003FCFC000003FCFE000003F8FE000003F8FF000003F8FF800007
+F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000262E7C
+AD2F>I<0001F000000001F000000001F000000001F000000001F000000001F000000003F00000
+0003F000000003F000000007F000000007F000000007F00000000FF00000000FF00000001FF000
+00003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFFFFC0FFFFFF
+FFC0FFFFFFFFC0FFFFFFFFC000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF
+F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000
+FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000
+00FFF0000000FFF0000000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001
+F000FFF001F000FFF001F000FFF001F0007FF001E0007FF803E0003FF803E0003FFC07C0001FFE
+0F80000FFFFF800007FFFE000001FFFC0000001FF00024427EC12E>I<007FE000003FF000FFFF
+E0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF00003
+FFE00001FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
+01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
+0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
+F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
+FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE000
+00FFF00001FFE00000FFF00001FFE00000FFF00001FFE00001FFF00001FFE00001FFF00001FFE0
+0001FFF00001FFE00003FFF00000FFE00007FFF00000FFE0000F7FF000007FE0001F7FF000007F
+F0003E7FF800003FFC00FC7FFFE0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF807FFFE000
+003FFE007FFFE03B2E7CAD42>I<FFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFEFFFFFF07FF
+FFE007FFFEFFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFE03FFC0001FFC00003FC003FFE000
+0FFC00001F8001FFE0000FFC00001F0001FFE0000FFE00001F0001FFF00007FE00003F0000FFF0
+000FFF00003E0000FFF8000FFF00007E00007FF8000FFF00007C00007FF8001FFF80007C00003F
+FC001FFF8000F800003FFC003FFFC000F800003FFE003EFFC001F800001FFE003EFFC001F00000
+1FFE007EFFE003F000000FFF007C7FE003E000000FFF00FC7FF003E000000FFF80F83FF007E000
+0007FF80F83FF007C0000007FF81F83FF80FC0000003FFC1F01FF80F80000003FFC3F01FFC0F80
+000003FFE3E00FFC1F80000001FFE3E00FFC1F00000001FFE7E00FFE3F00000000FFF7C007FE3E
+00000000FFFFC007FF3E00000000FFFF8003FF7E000000007FFF8003FF7C000000007FFF8003FF
+FC000000003FFF0001FFF8000000003FFF0001FFF8000000003FFE0000FFF8000000001FFE0000
+FFF0000000001FFE0000FFF0000000000FFC00007FE0000000000FFC00007FE0000000000FF800
+003FE00000000007F800003FC00000000007F800003FC00000000003F000001F800000000001E0
+00000F0000004F2E7DAD56>119 D<7FFFFF801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF00
+7FFFFF801FFFFF007FFFFF801FFFFF00007FF80001FF0000007FFC0001FC0000003FFE0003F800
+00001FFF0007F00000000FFF0007E000000007FF800FC000000003FFC01F8000000003FFE03F80
+00000001FFF07F0000000000FFF8FE00000000007FF9FC00000000003FFFF800000000003FFFF0
+00000000001FFFE000000000000FFFC0000000000007FFC0000000000003FFC0000000000001FF
+E0000000000001FFF0000000000001FFF8000000000003FFFC000000000003FFFE000000000007
+FFFE00000000000FEFFF00000000001FCFFF80000000003F87FFC0000000007F03FFE000000000
+FE01FFE000000001FC00FFF000000001F8007FF800000003F0007FFC00000007F0003FFE000000
+0FE0001FFF0000001FC0000FFF0000003F800007FF800000FF800007FFC000FFFFF8003FFFFFC0
+FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC03A2E7EAD3F>I<
+7FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF
+8000FFF000000FE00000FFF800000FC00000FFF800000FC000007FFC00000F8000007FFC00001F
+8000003FFC00001F0000003FFE00003F0000001FFE00003E0000001FFF00007E0000000FFF0000
+7C0000000FFF8000FC00000007FF8000F800000007FFC001F800000003FFC001F000000003FFE0
+03F000000003FFE003F000000001FFF003E000000001FFF007E000000000FFF007C000000000FF
+F80FC0000000007FF80F80000000007FFC1F80000000003FFC1F00000000003FFE3F0000000000
+1FFE3E00000000001FFF7E00000000000FFF7C00000000000FFFFC00000000000FFFFC00000000
+0007FFF8000000000007FFF8000000000003FFF0000000000003FFF0000000000001FFE0000000
+000001FFE0000000000000FFC0000000000000FFC00000000000007F800000000000007F800000
+000000003F000000000000003F000000000000003F000000000000003E000000000000007E0000
+00000000007C00000000000000FC000000001F8000F8000000003FC001F8000000007FE001F000
+000000FFF003F000000000FFF003E000000000FFF007E000000000FFF00FC000000000FFF01F80
+00000000FFF03F80000000007FE07F00000000007F43FE00000000003FFFF800000000001FFFF0
+000000000007FFC0000000000001FE00000000000039427EAD3F>I E /Fq
+7 104 df<FFFFFF80FFFFFF8019027D8A20>0 D<0003FE0000000FFF8000003C01E00000F00078
+0001C0001C00030000060006000003000C0000018018000000C018000000C03000000060300000
+0060600000003060000000306000000030C000000018C000000018C000000018C000000018C000
+000018C000000018C000000018C000000018C00000001860000000306000000030600000003030
+00000060300000006018000000C018000000C00C000001800600000300030000060001C0001C00
+00F0007800003C01E000000FFF80000003FE000025277E9D2A>13 D<03C00FF01FF83FFC7FFE7F
+FEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<02000000000400000000
+0400000000080000000010000000002000000000FFFFFFFFF0FFFFFFFFF0200000000010000000
+000800000000040000000004000000000200000000240E7D902A>32 D<0000600000600000C000
+00C0000180000180000180000300000300000600000600000C00000C0000180000180000180000
+300000300000600000600000C00000C0000180000180000300000300000300000600000600000C
+00000C0000180000180000300000300000300000600000600000C0000040000013287A9D00>54
+D<003C00E001C00180038003800380038003800380038003800380038003800380038003000700
+1C00F0001C00070003000380038003800380038003800380038003800380038003800380018001
+C000E0003C0E297D9E15>102 D<F0001C00070003000380038003800380038003800380038003
+800380038003800380018001C000E0003C00E001C0018003800380038003800380038003800380
+03800380038003800380030007001C00F0000E297D9E15>I E /Fr 91 125
+df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E
+01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000
+0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC
+001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E0000
+0E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
+0E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01
+C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01
+C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17
+>I<003F07E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00
+E000000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E
+00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C00
+0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<003F
+07FC0001C0DC1C000381F03C000701F03C000E01E01C000E00E01C000E00E01C000E00E01C000E
+00E01C000E00E01C000E00E01C00FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C00
+0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C
+000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<60F0F0F0F0F0
+F0F060606060606060606060606060000000000060F0F060041E7C9D0C>33
+D<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C15>I<0080008007E018
+98308460824081C087C08FC08FC086E080F0807E803FC01FF00FF803FC00BE008E00876087F083
+F083E0838082408240842088189007E00080008010217E9E15>36 D<00E0000001900000030800
+0003080000070800000708000007080000070800000710000007100000072000000740000003C0
+3FE003800F00038006000380040005C0040009C0080010E0100030E010006070200060702000E0
+384000E03C4000E01C8000E00F0020E0070020700780403009C0401830E18007C03E001B1F7E9D
+20>38 D<60F0F8680808081010204080050C7C9C0C>I<004000800100020006000C000C001800
+1800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E000E00060
+0060006000700030003000180018000C000C00060002000100008000400A2A7D9E10>I<800040
+002000100018000C000C000600060003000300038001800180018001C001C001C001C001C001C0
+01C001C001C001C001C001C0018001800180038003000300060006000C000C0018001000200040
+0080000A2A7E9E10>I<0006000000060000000600000006000000060000000600000006000000
+0600000006000000060000000600000006000000060000FFFFFFE0FFFFFFE00006000000060000
+000600000006000000060000000600000006000000060000000600000006000000060000000600
+00000600001B1C7E9720>43 D<60F0F0701010101020204080040C7C830C>I<FFE0FFE00B0280
+890E>I<60F0F06004047C830C>I<00010003000600060006000C000C000C001800180018003000
+3000300060006000C000C000C0018001800180030003000300060006000C000C000C0018001800
+1800300030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006
+6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C300C18
+180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700070007000700070007
+000700070007000700070007000700070007000700070007000F80FFF80D1C7C9B15>I<07C018
+30201C400C400EF00FF80FF807F8077007000F000E000E001C001C00380070006000C001800300
+06010C01180110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C
+001C00180030006007E00030001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007
+E0101D7E9B15>I<000C00000C00001C00003C00003C00005C0000DC00009C00011C00031C0002
+1C00041C000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C0000
+1C00001C00001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000
+200023E024302818301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007
+C0101D7E9B15>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE0
+06E007E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF
+807FFF007FFF0040020080040080040080080000100000100000200000600000400000C00000C0
+0001C0000180000180000380000380000380000380000780000780000780000780000780000780
+00030000111D7E9B15>I<03E00C301008200C20066006600660067006780C3E083FB01FE007F0
+07F818FC307E601E600FC007C003C003C003C00360026004300C1C1007E0101D7E9B15>I<03C0
+0C301818300C700C600EE006E006E007E007E007E007E0076007700F300F18170C2707C7000600
+06000E300C780C78187010203030C00F80101D7E9B15>I<60F0F0600000000000000000000060
+F0F06004127C910C>I<60F0F0600000000000000000000060F0F0701010101020204080041A7C
+910C>I<60F0F060000000000060606060606060606060606060F0F0F0F0F0F0F060041E7C940C>
+I<7FFFFFC0FFFFFFE0000000000000000000000000000000000000000000000000000000000000
+0000FFFFFFE07FFFFFC01B0C7E8F20>I<03000780078003000000000000000000000001000100
+0200020002000200060004000C00180038007000E000E01EE01EE01EE00E600430180FE00F1D7E
+9414>I<0FE03038401CE00EF00EF00EF00E000C001C0030006000C00080018001000100010001
+00010001000000000000000000000003000780078003000F1D7E9C14>I<003F800000C0600003
+001800040004000800020010000100201F00802070808040E0404040C0384041C0384081803820
+83803820838038208380382083803820838038208180382041C0382040C0384040E07840207098
+80201F0F00100000000800000004000000030001E000C01F80003FF0001B1D7E9C20>I<000600
+000006000000060000000F0000000F0000000F00000017800000178000001780000023C0000023
+C0000023C0000041E0000041E0000041E0000080F0000080F0000180F8000100780001FFF80003
+007C0002003C0002003C0006003E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C
+1F>I<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F0078
+0F01F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E
+0F003C0F0078FFFFE0181C7E9B1D>I<001F808000E0618001801980070007800E0003801C0003
+801C00018038000180780000807800008070000080F0000000F0000000F0000000F0000000F000
+0000F0000000F0000000F0000000700000807800008078000080380000801C0001001C0001000E
+000200070004000180080000E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F
+000E000F0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E0
+0F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007
+800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>I<FFFFFC0F003C0F000C0F00
+040F00040F00060F00020F00020F02020F02000F02000F02000F06000FFE000F06000F02000F02
+000F02000F02010F00010F00020F00020F00020F00060F00060F000C0F003CFFFFFC181C7E9B1C
+>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F02040F02000F02000F02000F
+06000FFE000F06000F02000F02000F02000F02000F00000F00000F00000F00000F00000F00000F
+00000F8000FFF800161C7E9B1B>I<001F808000E0618001801980070007800E0003801C000380
+1C00018038000180780000807800008070000080F0000000F0000000F0000000F0000000F00000
+00F0000000F000FFF0F0000F80700007807800078078000780380007801C0007801C0007800E00
+078007000B800180118000E06080001F80001C1E7E9C21>I<FFF3FFC00F003C000F003C000F00
+3C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
+FFFC000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00
+0F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<FFF00F000F000F000F000F00
+0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
+000F00FFF00C1C7F9B0F>I<1FFF00F80078007800780078007800780078007800780078007800
+7800780078007800780078007800787078F878F878F878F0F040E021C01F00101D7F9B15>I<FF
+F03FE00F000F000F000C000F0008000F0010000F0020000F0040000F0080000F0100000F020000
+0F0400000F0E00000F1F00000F2F00000F2780000F4780000F83C0000F01E0000F01E0000F00F0
+000F00F8000F0078000F003C000F003C000F001E000F001F000F001F80FFF07FF01C1C7E9B20>
+I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
+000F00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F00300F00
+700F01F0FFFFF0151C7E9B1A>I<FF8000FF800F8000F8000F8000F8000BC00178000BC0017800
+0BC001780009E002780009E002780008F004780008F004780008F0047800087808780008780878
+000878087800083C107800083C107800083C107800081E207800081E207800081E207800080F40
+7800080F40780008078078000807807800080780780008030078001C03007800FF8307FF80211C
+7E9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F804000878
+0400083C0400083C0400081E0400080F0400080F0400080784000807C4000803C4000801E40008
+01E4000800F40008007C0008007C0008003C0008003C0008001C0008000C001C000C00FF800400
+1A1C7E9B1F>I<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380
+780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001
+E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C000380
+380000E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F
+001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F
+00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<003F800000E0E00003
+80380007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0
+F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003
+C0380003803C0E07801C1107000E208E000720DC0003A0F80000F0E020003FE020000060200000
+7060000078E000003FC000003FC000001F8000000F001B257E9C20>I<FFFF00000F01E0000F00
+78000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F
+01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F007800
+0F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>I<07E0801C
+1980300580700380600180E00180E00080E00080E00080F00000F800007C00007FC0003FF8001F
+FE0007FF0000FF80000F800007C00003C00001C08001C08001C08001C0C00180C00180E00300D0
+0200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020
+800F0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F00
+00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
+0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F00
+04000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F
+0004000F0004000F0004000F0004000F0004000F0004000F000400070008000780080003801000
+0180100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001800F000100
+0F800300078002000780020003C0040003C0040003C0040001E0080001E0080001F0080000F010
+0000F0100000F830000078200000782000003C4000003C4000003C4000001E8000001E8000001F
+8000000F0000000F00000006000000060000000600001C1D7F9B1F>I<FFE0FFE0FF1F001F003C
+1E001E00180F001F00100F001F00100F001F001007801F00200780278020078027802003C02780
+4003C043C04003C043C04003E043C04001E081E08001E081E08001E081E08000F100F10000F100
+F10000F100F100007900FA00007A007A00007A007A00003E007C00003C003C00003C003C00003C
+003C00001800180000180018000018001800281D7F9B2B>I<7FF0FFC00FC03E000780180003C0
+180003E0100001E0200001F0600000F0400000788000007D8000003D0000001E0000001F000000
+0F0000000F8000000F80000013C0000023E0000021E0000041F00000C0F8000080780001007C00
+03003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F>I<FFF007FC0F8001E007800080
+07C0018003C0010003E0020001F0020000F0040000F8040000780800007C1800003C1000001E20
+00001F2000000F4000000FC0000007800000078000000780000007800000078000000780000007
+800000078000000780000007800000078000007FF8001E1C809B1F>I<7FFFF07C01F07001E060
+03C06003C0400780400F80400F00401E00001E00003C00007C0000780000F00000F00001E00003
+E00003C0100780100780100F00101F00301E00203C00203C00607800E0F803E0FFFFE0141C7E9B
+19>I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0FEFE07297C9E0C>I<08081010202040404040808080808080B0B0F8F8787830300D0C7A
+9C15>I<FEFE060606060606060606060606060606060606060606060606060606060606060606
+06060606FEFE0729809E0C>I<1FC000307000783800781C00301C00001C00001C0001FC000F1C
+00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>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 /Fs 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 /Ft 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 /Fu 13 118 df<1F003F807FC0FFC0FFE0FFE0FFF0FFF07FF03FB01F300030003000300030
+003000600060006000C000C000C0018001800300060006000C001800300020000C1F77C71D>39
+D<FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00007FF800001FFF00003FF0000001
+FF80001FF00000007F80001FF00000003F80001FF00000001F80001FF00000000F80001FF00000
+000780001FF00000000780001FF00000000380001FF000000003C0001FF000000003C0001FF000
+000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF0
+00000000E0001FF000000000E0001FF000000000E0001FF00001C000E0001FF00001C00000001F
+F00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C0000000
+1FF00003C00000001FF00003C00000001FF00007C00000001FF0000FC00000001FF0003FC00000
+001FFFFFFFC00000001FFFFFFFC00000001FFFFFFFC00000001FF0003FC00000001FF0000FC000
+00001FF00007C00000001FF00003C00000001FF00003C00000001FF00001C00000001FF00001C0
+0000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001
+C00000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF000
+00000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF0
+0000000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001F
+F00000000000001FF00000000000001FF00000000000003FF80000000000007FFE0000000000FF
+FFFFFF80000000FFFFFFFF80000000FFFFFFFF800000003B477DC643>70
+D<FFFFF800000000001FFFFFFFFFF800000000001FFFFFFFFFF800000000001FFFFF007FFC0000
+0000003FFE00003FFC00000000003FFC00001DFE000000000077F800001DFE000000000077F800
+001DFE000000000077F800001CFF0000000000E7F800001CFF0000000000E7F800001C7F800000
+0001C7F800001C7F8000000001C7F800001C7F8000000001C7F800001C3FC00000000387F80000
+1C3FC00000000387F800001C1FE00000000707F800001C1FE00000000707F800001C1FE0000000
+0707F800001C0FF00000000E07F800001C0FF00000000E07F800001C0FF00000000E07F800001C
+07F80000001C07F800001C07F80000001C07F800001C03FC0000003807F800001C03FC00000038
+07F800001C03FC0000003807F800001C01FE0000007007F800001C01FE0000007007F800001C00
+FF000000E007F800001C00FF000000E007F800001C00FF000000E007F800001C007F800001C007
+F800001C007F800001C007F800001C007F800001C007F800001C003FC000038007F800001C003F
+C000038007F800001C001FE000070007F800001C001FE000070007F800001C001FE000070007F8
+00001C000FF0000E0007F800001C000FF0000E0007F800001C0007F8001C0007F800001C0007F8
+001C0007F800001C0007F8001C0007F800001C0003FC00380007F800001C0003FC00380007F800
+001C0001FE00700007F800001C0001FE00700007F800001C0001FE00700007F800001C0000FF00
+E00007F800001C0000FF00E00007F800001C0000FF00E00007F800001C00007F81C00007F80000
+1C00007F81C00007F800001C00003FC3800007F800001C00003FC3800007F800001C00003FC380
+0007F800001C00001FE7000007F800001C00001FE7000007F800001C00000FFE000007F800001C
+00000FFE000007F800001C00000FFE000007F800001C000007FC000007F800001C000007FC0000
+07F800003E000007FC000007F800007F000003F8000007F80000FF800003F800000FFC0003FFE0
+0001F000001FFE00FFFFFF8001F0003FFFFFFFFFFFFF8001F0003FFFFFFFFFFFFF8000E0003FFF
+FFFF58477DC65F>77 D<FFFFFFFE0007FFFFFCFFFFFFFE0007FFFFFCFFFFFFFE0007FFFFFC007F
+FC0000001FFF00003FF800000007FC00001FF000000003F800001FF000000001F000001FF00000
+0000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E0
+00001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001F
+F000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF00000
+0000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E0
+00001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001F
+F000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF00000
+0000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E0
+00001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001F
+F000000000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF00000
+0000E000001FF000000000E000001FF000000000E000001FF000000000E000001FF000000000E0
+00001FF000000000E000000FF000000000C000000FF000000001C000000FF800000001C0000007
+F800000001C0000007F80000000380000007F80000000380000003FC0000000700000003FC0000
+000700000001FC0000000E00000000FE0000000E000000007F0000001C000000003F0000003800
+0000001F80000070000000000FC00000E00000000007F00003C00000000003FC000F8000000000
+00FF007F0000000000003FFFFC0000000000000FFFF000000000000001FF8000000046487DC64D
+>85 D<FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001
+FFFFF803FFF800000FFFE000001FFF8000FFE0000003FF80000007FE00007FC0000001FF000000
+01FC00007FC0000001FF00000000F800007FC0000001FF80000000F000003FE0000000FF800000
+00E000003FE0000000FF80000000E000003FE0000000FF80000000E000001FF00000007FC00000
+01C000001FF00000007FC0000001C000001FF00000007FC0000001C000001FF8000000FFE00000
+03C000000FF8000000FFE00000038000000FF8000000FFE00000038000000FFC000001DFF00000
+0780000007FC000001DFF000000700000007FC000001DFF000000700000007FE0000038FF80000
+0F00000003FE0000038FF800000E00000003FE0000038FF800000E00000003FF0000078FFC0000
+1E00000001FF00000707FC00001C00000001FF00000707FC00001C00000001FF00000F07FE0000
+1C00000000FF80000E03FE00003800000000FF80000E03FE00003800000000FF80001E03FF0000
+38000000007FC0001C01FF000070000000007FC0001C01FF000070000000007FC0003C01FF8000
+70000000003FE0003800FF8000E0000000003FE0003800FF8000E0000000003FE0003800FF8000
+E0000000001FF00070007FC001C0000000001FF00070007FC001C0000000001FF00070007FC001
+C0000000001FF800E0003FE003C0000000000FF800E0003FE00380000000000FF800E0003FE003
+80000000000FFC01C0001FF007800000000007FC01C0001FF007000000000007FC01C0001FF007
+000000000007FE0380000FF80F000000000003FE0380000FF80E000000000003FE0380000FF80E
+000000000003FF0780000FFC1E000000000001FF07000007FC1C000000000001FF07000007FC1C
+000000000001FF0F000007FE1C000000000000FF8E000003FE38000000000000FF8E000003FE38
+000000000000FF9E000003FF380000000000007FDC000001FF700000000000007FDC000001FF70
+0000000000007FFC000001FFF00000000000003FF8000000FFE00000000000003FF8000000FFE0
+0000000000003FF8000000FFE00000000000001FF00000007FC00000000000001FF00000007FC0
+0000000000001FF00000007FC00000000000001FE00000003FC00000000000000FE00000003F80
+0000000000000FE00000003F800000000000000FC00000001F8000000000000007C00000001F00
+00000000000007C00000001F0000000000000007800000000F0000000000000003800000000E00
+00000065487EC66A>87 D<0003FE000000001FFFC00000007E03F0000000F000FC000001C0007E
+00000380003F000007C0001F800007F0001FC0000FF0000FC0000FF8000FE0000FF8000FE0000F
+F80007F00007F00007F00007F00007F00001C00007F00000000007F00000000007F00000000007
+F00000000007F000000001FFF00000007FFFF0000003FF87F000001FF007F000007F8007F00001
+FE0007F00003F80007F00007F00007F0000FE00007F0001FC00007F0003FC00007F0003F800007
+F0007F800007F01C7F800007F01CFF000007F01CFF000007F01CFF000007F01CFF00000FF01CFF
+00000FF01CFF00000FF01C7F80001BF01C7F800033F01C3FC00031F8381FC00061F8380FF001C0
+FC7003FC0780FFE000FFFE003FC0001FF8001F802E2F7CAD34>97 D<01FE0000000000FFFE0000
+000000FFFE0000000000FFFE000000000003FE000000000001FE000000000000FE000000000000
+FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE000000
+000000FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE
+000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE00000000
+0000FE000000000000FE000000000000FE000000000000FE00FF00000000FE07FFF0000000FE1F
+01FC000000FE38003E000000FE70001F800000FEC0000FC00000FF800007E00000FF800003F000
+00FF000003F80000FE000001FC0000FE000001FC0000FE000000FE0000FE000000FE0000FE0000
+00FF0000FE000000FF0000FE0000007F8000FE0000007F8000FE0000007F8000FE0000007FC000
+FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE000000
+7FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007F8000FE0000007F8000FE
+000000FF8000FE000000FF0000FE000000FF0000FE000000FE0000FE000001FE0000FE000001FC
+0000FE000001F80000FF000003F00000FF800007F00000FD800007E00000F9C0000F800000F8E0
+003F000000F078007E000000F01E03F8000000E00FFFE00000000001FE00000032497DC739>I<
+00007F80000003FFF000000FC0FC00003F003F00007C001F8000F8000FC001F80007E003F00007
+E007E00003F00FE00003F80FE00003F81FC00001FC1FC00001FC3FC00001FC3FC00001FC7F8000
+01FE7F800000FE7F800000FEFF800000FEFF800000FEFFFFFFFFFEFFFFFFFFFEFF80000000FF80
+000000FF80000000FF80000000FF80000000FF800000007F800000007F800000007F800000007F
+C00000003FC00000003FC000000E1FC000000E1FE000000E0FE000001C07E000001C07F0000038
+03F000007001F800007000FC0000E0003E0003C0001F8007000007E03E000001FFF80000003FC0
+00272F7DAD2E>101 D<01FE00FFFE00FFFE00FFFE0003FE0001FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0003FF80FFFFFEFFFFFEFFFFFE17487DC71C>108
+D<01FC007F800000FFFC03FFF00000FFFC0781F80000FFFC0C007C000003FC18007E000001FC30
+003F000000FC60003F800000FCC0001F800000FD80001F800000FD80001FC00000FF00001FC000
+00FF00001FC00000FF00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE0000
+1FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000
+FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F
+C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
+00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
+0000FE00001FC00000FE00001FC00003FF80007FF000FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE
+1FFFFFC0322D7CAC39>110 D<01FC01F800FFFC07FE00FFFC1E1F00FFFC383F8003FC607FC001
+FC607FC000FCC07FC000FCC07FC000FD803F8000FD801F0000FF000E0000FF00000000FF000000
+00FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000FF00000003FF800000FFFFFF8000FFFFFF8000FF
+FFFF8000222D7DAC28>114 D<001FF8060000FFFF0E0003F0079E00078001FE000E00007E001C
+00003E003C00003E007800001E007800001E00F800001E00F800000E00F800000E00FC00000E00
+FC00000E00FE00000E00FF000000007FC00000007FF80000003FFFE000001FFFFE00000FFFFF80
+0007FFFFE00003FFFFF00000FFFFFC00001FFFFE000001FFFE0000000FFF00000001FF80000000
+7F806000001FC0E000001FC0E000000FC0F000000FC0F0000007C0F0000007C0F0000007C0F800
+0007C0F800000780FC00000780FC00000F00FE00000F00FF00001E00FF80003C00F9E0007800F0
+F803E000E03FFFC000C007FC0000222F7DAD29>I<01FE00003FC000FFFE001FFFC000FFFE001F
+FFC000FFFE001FFFC00003FE00007FC00001FE00003FC00000FE00001FC00000FE00001FC00000
+FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F
+C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
+00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
+0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00
+001FC00000FE00001FC00000FE00001FC00000FE00003FC00000FE00003FC00000FE00003FC000
+00FE00007FC000007E00007FC000007E00007FC000003F0000DFC000003F00019FE000001F0003
+1FF000000F80061FFFC00007F01C1FFFC00001FFF81FFFC000003FE01FE000322E7CAC39>117
+D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 0 1
+0 0 bop 258 823 a Fu(F)-9 b(unnelW)g(eb)38 b(User's)c(Man)m(ual)603
+1151 y Ft(Ross)21 b(N.)g(Williams)519 1343 y Fs(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 Fr(Cop)o(yrigh)o(t)384
+2674 y(c)372 2675 y Fq(\015)14 b Fr(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 Fr(2)p eop
+%%Page: 3 4
+3 3 bop 177 401 a Fp(Con)m(ten)m(ts)177 687 y Fo(Preface)1592
+b(9)177 808 y(Ac)o(kno)o(wledgemen)o(ts)1324 b(11)177 928 y(Presen)o(tation)
+12 b(Notes)1323 b(13)177 1048 y(1)38 b(A)16 b(T)l(utorial)e(In)o(tro)q
+(duction)1159 b(15)239 1126 y Fr(1.1)42 b(What)13 b(is)h(Literate)h
+(Programmi)o(ng?)9 b Fn(:)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 Fr(15)239 1204 y(1.2)42 b(What)13 b(is)h(F)m(unnelW)m(eb?)19
+b Fn(:)i(:)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 Fr(18)239 1281 y(1.3)42 b(The)14 b(Name)f(F)m(unnelW)m(eb)26
+b Fn(:)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 Fr(19)239 1359 y(1.4)42 b(A)14 b(F)m(unnelW)m(eb)f(T)m(utorial)24
+b Fn(:)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(:)61
+b Fr(19)239 1437 y(1.5)42 b(A)14 b(Hello)f(W)m(orld)g(Do)q(cumen)o(t)34
+b Fn(:)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 Fr(20)239 1514 y(1.6)42 b(Macro)14 b(F)m(acilities)i Fn(:)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(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
+Fr(22)335 1592 y(1.6.1)46 b(Simple)12 b(Macros)35 b Fn(:)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
+Fr(22)335 1670 y(1.6.2)46 b(Num)o(b)q(er)13 b(of)g(Times)g(Called)h
+Fn(:)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 Fr(23)335 1747
+y(1.6.3)46 b(Inden)o(tation)26 b Fn(:)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(:)61 b Fr(25)335 1825 y(1.6.4)46 b(Additiv)o(e)13
+b(Macros)34 b Fn(:)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 Fr(26)335 1903 y(1.6.5)46 b(P)o(arameterized)14 b(Macros)26
+b Fn(:)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 Fr(28)335
+1980 y(1.6.6)46 b(Macro)14 b(Expansion)i Fn(:)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 Fr(30)335 2058 y(1.6.7)46 b(Include)14
+b(Files)37 b Fn(:)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 Fr(30)239 2136 y(1.7)42 b(T)o(yp)q(esetting)15 b(F)m(acilities)10
+b Fn(:)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 Fr(32)335 2213 y(1.7.1)46 b(Ov)o(erview)35 b Fn(:)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 Fr(32)335
+2291 y(1.7.2)46 b(T)o(yp)q(esetter)16 b(Indep)q(endence)41
+b Fn(:)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(:)61 b Fr(34)335 2369
+y(1.7.3)46 b(Hierarc)o(hical)14 b(Structure)30 b Fn(:)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 Fr(34)335 2446 y(1.7.4)46 b(Understanding)14
+b(the)h(Prin)o(ted)f(Do)q(cumen)o(tation)36 b Fn(:)21 b(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fr(35)335
+2524 y(1.7.5)46 b(Literals)14 b(and)f(Emphasis)24 b Fn(:)c(:)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 Fr(37)335 2602 y(1.7.6)46 b(Adding)13
+b(a)h(Header)h(P)o(age)20 b Fn(:)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 Fr(37)335 2679 y(1.7.7)46 b(Commen)o(ts)9 b Fn(:)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 Fr(37)239
+2757 y(1.8)42 b(A)14 b(Complete)f(Example)c Fn(:)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 Fr(38)239 2835 y(1.9)42
+b(Summary)31 b Fn(:)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 Fr(39)1053 2940 y(3)p eop
+%%Page: 4 5
+4 4 bop 177 42 a Fo(2)38 b(F)l(unnelW)l(eb)14 b(Hin)o(ts)1296
+b(41)239 116 y Fr(2.1)42 b(Macro)14 b(Names)22 b Fn(:)f(:)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
+Fr(41)239 190 y(2.2)42 b(Quic)o(k)14 b(Names)30 b Fn(:)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 Fr(42)239 265 y(2.3)42 b(F)m(unnelW)m(eb)13 b(the)i(Martinet)i
+Fn(:)j(:)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 Fr(42)239 339 y(2.4)42 b(Fiddling)12 b(With)i(End)g(of)f(Lines)28
+b Fn(:)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
+Fr(43)239 413 y(2.5)42 b(F)m(udging)13 b(Conditionals)e Fn(:)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 Fr(44)239 488 y(2.6)42 b(Changing)13 b(the)h(Strength)h(of)e(Headings)19
+b Fn(:)h(:)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 Fr(46)239 562 y(2.7)42
+b(E\016ciency)14 b(Notes)h Fn(:)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 Fr(47)239 636 y(2.8)42
+b(In)o(teractiv)o(e)15 b(Mo)q(de)28 b Fn(:)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 Fr(47)239 711 y(2.9)42
+b(Setting)14 b(Up)g(Default)f(Options)29 b Fn(:)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 Fr(49)239 785 y(2.10)21 b(F)m(unnelW)m(eb)13
+b(and)h(Mak)o(e)38 b Fn(:)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 Fr(49)239 860 y(2.11)21 b(The)14 b(Dangers)g(of)g(F)m(unnelW)m
+(eb)33 b Fn(:)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 Fr(50)239 934 y(2.12)21 b(Wholistic)13 b(Debugging)21 b Fn(:)g(:)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 Fr(53)239
+1008 y(2.13)21 b(Examples)13 b(of)g(F)m(unnelW)m(eb)g(Applications)e
+Fn(:)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 Fr(53)335 1083 y(2.13.1)25
+b(Analyzing)13 b(the)h(Monster)h(P)o(ostscript)g(Header)g(File)e
+Fn(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fr(54)335 1157 y(2.13.2)25 b(Making)13 b(Ada)g(ADTs)h(more)f(A)31
+b Fn(:)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(:)61 b Fr(55)335 1231
+y(2.13.3)25 b(Multiple)13 b(Language)g(Systems)26 b Fn(:)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(:)61 b Fr(55)335 1306 y(2.13.4)25
+b(The)14 b(Case)g(of)g(the)g(Small)e(F)m(unction)g Fn(:)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 Fr(56)335 1380 y(2.13.5)25 b(When)14
+b(Commen)o(ts)d(are)k(Bad)24 b Fn(:)d(:)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 Fr(57)335 1455 y(2.13.6)25 b(Do)q(cumen)o(ts)13 b(That)h(Share)g(T)m(ext)41
+b Fn(:)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 Fr(58)335 1529 y(2.13.7)25
+b(Generics)18 b Fn(:)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 Fr(59)239 1603 y(2.14)21 b(Summary)31 b
+Fn(:)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 Fr(62)177 1719 y Fo(3)38 b(F)l(unnelW)l(eb)14
+b(De\014niti)o(on)1201 b(63)239 1793 y Fr(3.1)42 b(In)o(tro)q(duction)13
+b Fn(:)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 Fr(63)239 1868 y(3.2)42 b(Notation)14 b
+Fn(:)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 Fr(63)239 1942 y(3.3)42 b(T)m(erminology)11
+b Fn(:)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 Fr(63)239 2017 y(3.4)42 b(An)14 b(Arc)o(hitectural)h(Ov)o
+(erview)40 b Fn(:)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 Fr(64)239 2091 y(3.5)42 b(Diagnostics)32 b Fn(:)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
+Fr(65)239 2165 y(3.6)42 b(T)o(yp)q(esetter)16 b(Indep)q(endence)45
+b Fn(:)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 Fr(65)239 2240 y(3.7)42 b(Command)11 b(Line)i(In)o(terface)j
+Fn(:)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 Fr(66)335 2314 y(3.7.1)46 b(In)o(v)o(oking)12 b(F)m(unnelW)m(eb)25
+b Fn(:)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
+Fr(66)335 2388 y(3.7.2)46 b(Comma)o(nd)11 b(Line)j(Argumen)o(ts)35
+b Fn(:)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(:)61 b Fr(67)335 2463
+y(3.7.3)46 b(Options)29 b Fn(:)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 Fr(68)239 2537 y(3.8)42
+b(File)13 b(Name)g(Inheritance)30 b Fn(:)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 Fr(70)239 2612 y(3.9)42 b(F)m(unnelW)m(eb)13
+b(Startup)h Fn(:)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(:)61 b Fr(70)239 2686 y(3.10)21 b(Scanner)33 b Fn(:)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 Fr(71)335 2760 y(3.10.1)25 b(Basic)14 b(Input)g(File)g(Pro)q
+(cessing)30 b Fn(:)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(:)61 b Fr(71)335
+2835 y(3.10.2)25 b(Sp)q(ecial)14 b(Sequences)44 b Fn(:)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 Fr(72)1053 2940 y(4)p eop
+%%Page: 5 6
+5 5 bop 335 42 a Fr(3.10.3)25 b(Setting)14 b(the)g(Sp)q(ecial)g(Character)24
+b Fn(:)c(:)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 Fr(74)335 115 y(3.10.4)25
+b(Inserting)14 b(the)h(Sp)q(ecial)f(Character)g(in)o(to)g(the)g(T)m(ext)30
+b Fn(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fr(74)335 189 y(3.10.5)25 b(Inserting)14 b(Arbitrary)g(Characters)i(in)o
+(to)d(the)h(T)m(ext)40 b Fn(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
+f(:)g(:)h(:)f(:)g(:)61 b Fr(74)335 262 y(3.10.6)25 b(Commen)o(ts)9
+b Fn(:)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 Fr(75)335 336 y(3.10.7)25 b(Quic)o(k)14 b(Names)26
+b Fn(:)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 Fr(76)335 409 y(3.10.8)25 b(Inserting)14 b(End)g(of)g(Line)g(Mark)o(ers)42
+b Fn(:)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 Fr(76)335 483 y(3.10.9)25
+b(Suppressing)15 b(End)f(of)f(Line)h(Mark)o(ers)21 b Fn(:)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 Fr(77)335 556 y(3.10.10)t(Include)14 b(Files)37 b Fn(:)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 Fr(77)335 630 y(3.10.11)t(Pragmas)13 b Fn(:)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 Fr(78)468 703
+y(3.10.11.1)8 b(Inden)o(tation)18 b Fn(:)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(:)61 b Fr(78)468 777 y(3.10.11.2)8 b(Maxim)o(um)i(Input)k(Line)g(Length)
+19 b Fn(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)61 b Fr(79)468 850 y(3.10.11.3)8 b(Maxim)o(um)i(Output)15
+b(File)e(Line)h(Length)33 b Fn(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)61 b Fr(79)468 924 y(3.10.11.4)8 b(T)o(yp)q(esetter)35
+b Fn(:)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
+Fr(80)335 997 y(3.10.12)t(F)m(reestanding)14 b(T)o(yp)q(esetter)i(Directiv)o
+(es)23 b Fn(:)d(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fr(81)468 1071 y(3.10.12.1)8
+b(New)14 b(P)o(age)h Fn(:)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 Fr(81)468 1144 y(3.10.12.2)8 b(T)m(able)13 b(of)g(Con)o(ten)o(ts)35
+b Fn(:)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(:)61 b Fr(81)468 1218
+y(3.10.12.3)8 b(V)m(ertical)14 b(Skip)25 b Fn(:)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 Fr(81)468 1291 y(3.10.12.4)8 b(Title)i
+Fn(:)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 Fr(82)335 1365 y(3.10.13)t(Scanner/P)o(arser)16 b(In)o(terface)c
+Fn(:)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 Fr(82)239 1438
+y(3.11)21 b(P)o(arser)29 b Fn(:)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 Fr(82)335
+1512 y(3.11.1)25 b(High)13 b(Lev)o(el)h(Structure)20 b Fn(:)g(:)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 Fr(82)335 1585 y(3.11.2)25
+b(F)m(ree)14 b(T)m(ext)31 b Fn(:)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 Fr(83)335 1659 y(3.11.3)25
+b(T)o(yp)q(esetter)16 b(Directiv)o(es)42 b Fn(:)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 Fr(83)468 1732 y(3.11.3.1)29 b(Section)j
+Fn(:)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 Fr(83)468 1806 y(3.11.3.2)29 b(Literal)13 b(Directiv)o(e)27
+b Fn(:)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(:)61 b Fr(84)468 1879
+y(3.11.3.3)29 b(Emphasis)13 b(Directiv)o(e)38 b Fn(:)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 Fr(85)335 1953 y(3.11.4)25 b(Macros)42 b Fn(:)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 Fr(85)468
+2026 y(3.11.4.1)29 b(Names)41 b Fn(:)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 Fr(86)468 2100 y(3.11.4.2)29 b(F)m(ormal)11
+b(P)o(arameter)j(Lists)24 b Fn(:)c(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
+f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fr(86)335
+2173 y(3.11.5)25 b(Expressions)g Fn(:)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(:)61 b Fr(86)335 2247 y(3.11.6)25
+b(Macro)14 b(Calls)j Fn(:)j(:)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 Fr(86)335 2320 y(3.11.7)25 b(F)m(ormal)11
+b(P)o(arameters)19 b Fn(:)i(:)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 Fr(87)335 2394 y(3.11.8)25 b(Macros)14 b(are)h(Static)e Fn(:)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 Fr(87)239
+2467 y(3.12)21 b(Analyser)16 b Fn(:)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 Fr(88)239
+2541 y(3.13)21 b(T)m(angle)g Fn(:)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 Fr(88)239
+2614 y(3.14)21 b(W)m(ea)o(v)o(e)26 b Fn(:)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 Fr(89)335 2688 y(3.14.1)25 b(T)m(arget)13 b(T)o(yp)q(esetter)40
+b Fn(:)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 Fr(89)335 2761 y(3.14.2)25 b(Cross)14 b(Reference)i(Num)o(b)q(ering)22
+b Fn(:)e(:)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 Fr(89)239 2835 y(3.15)21
+b(F)m(unnelW)m(eb)13 b(Shell)32 b Fn(:)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 Fr(90)1053 2940 y(5)p
+eop
+%%Page: 6 7
+6 6 bop 335 42 a Fr(3.15.1)25 b(In)o(tro)q(duction)41 b Fn(:)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 Fr(90)335 116 y(3.15.2)25 b(Return)14 b(Statuses)43 b Fn(:)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 Fr(90)335
+190 y(3.15.3)25 b(Comma)o(nd)11 b(Line)j(Length)42 b Fn(:)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 Fr(91)335 265 y(3.15.4)25
+b(String)13 b(Substitution)k Fn(:)k(:)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 Fr(91)335 339 y(3.15.5)25 b(Ho)o(w)13 b(a)h(Command)d(Line)i(is)h
+(Pro)q(cessed)j Fn(:)j(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
+g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fr(92)335 413 y(3.15.6)25
+b(Options)k Fn(:)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 Fr(92)335 488 y(3.15.7)25 b(Shell)13 b(Commands)26
+b Fn(:)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 Fr(93)468 562 y(3.15.7.1)29 b(Absen)o(t)37 b Fn(:)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 Fr(93)468 636 y(3.15.7.2)29
+b(Co)q(dify)41 b Fn(:)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 Fr(93)468 711 y(3.15.7.3)29 b(Compare)h Fn(:)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 Fr(93)468 785 y(3.15.7.4)29 b(De\014ne)17
+b Fn(:)j(:)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 Fr(94)468 860 y(3.15.7.5)29 b(Di\013)h Fn(:)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 Fr(94)468 934 y(3.15.7.6)29
+b(Di\013summary)22 b Fn(:)e(:)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 Fr(95)468 1008 y(3.15.7.7)29 b(Di\013zero)22 b Fn(:)e(:)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 Fr(95)468 1083 y(3.15.7.8)29
+b(Eneo)41 b Fn(:)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 Fr(95)468 1157 y(3.15.7.9)29 b(Execute)20 b Fn(:)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 Fr(96)468 1231 y(3.15.7.10)8
+b(Exists)21 b Fn(:)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 Fr(96)468 1306 y(3.15.7.11)8 b(Fixeols)35 b Fn(:)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 Fr(96)468 1380 y(3.15.7.12)8
+b(Fw)41 b Fn(:)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 Fr(97)468 1455 y(3.15.7.13)8 b(Help)14 b Fn(:)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 Fr(97)468 1529
+y(3.15.7.14)8 b(Here)15 b Fn(:)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 Fr(98)468 1603 y(3.15.7.15)8 b(Quit)15
+b Fn(:)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 Fr(98)468 1678 y(3.15.7.16)8 b(Set)41 b Fn(:)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 Fr(98)468 1752 y(3.15.7.17)8
+b(Sho)o(w)35 b Fn(:)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 Fr(98)468 1826 y(3.15.7.18)8 b(Skipto)14 b Fn(:)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
+Fr(98)468 1901 y(3.15.7.19)8 b(Status)16 b Fn(:)k(:)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 Fr(99)468 1975 y(3.15.7.20)8
+b(T)m(olerate)14 b Fn(:)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
+(:)41 b Fr(100)468 2049 y(3.15.7.21)8 b(T)m(race)31 b Fn(:)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(:)41 b
+Fr(100)468 2124 y(3.15.7.22)8 b(W)m(rite)29 b Fn(:)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(:)41 b Fr(100)468 2198 y(3.15.7.23)8
+b(W)m(riteu)38 b Fn(:)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(:)
+41 b Fr(100)239 2273 y(3.16)21 b(Concluding)13 b(Remarks)22
+b Fn(:)f(:)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(:)41
+b Fr(100)177 2388 y Fo(4)d(F)l(unnelW)l(eb)14 b(Installation)1146
+b(101)239 2463 y Fr(4.1)42 b(Obtaining)13 b(a)h(Cop)o(y)f(of)g(F)m(unnelW)m
+(eb)37 b Fn(:)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(:)41 b Fr(101)239
+2537 y(4.2)h(Establishing)13 b(The)i(Directory)f(T)m(ree)41
+b Fn(:)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(:)41 b Fr(102)335
+2612 y(4.2.1)46 b(Admin)12 b(Directory)25 b Fn(:)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(:)41 b Fr(102)335 2686 y(4.2.2)46
+b(Answ)o(ers)15 b(Directory)30 b Fn(:)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(:)41 b Fr(102)335 2760 y(4.2.3)46 b(Hac)o(kman)12
+b(Directory)f Fn(:)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(:)41
+b Fr(103)335 2835 y(4.2.4)46 b(Results)14 b(Directory)i Fn(:)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(:)41 b Fr(103)1053 2940 y(6)p
+eop
+%%Page: 7 8
+7 7 bop 335 42 a Fr(4.2.5)46 b(Scripts)14 b(Directory)24 b
+Fn(:)c(:)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(:)41
+b Fr(103)335 116 y(4.2.6)46 b(Sources)15 b(Directory)d Fn(:)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(:)41 b Fr(103)335
+191 y(4.2.7)46 b(T)m(ests)14 b(Directory)23 b Fn(:)d(:)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(:)41 b Fr(104)335 266 y(4.2.8)46
+b(Userman)13 b(Directory)20 b Fn(:)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(:)41 b Fr(105)239 340 y(4.3)h(Compiling)11 b(F)m(unnelW)m(eb)29
+b Fn(:)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(:)41
+b Fr(105)239 415 y(4.4)h(T)m(esting)14 b(F)m(unnelW)m(eb)k
+Fn(:)i(:)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(:)41
+b Fr(105)239 490 y(4.5)h(Installing)12 b(F)m(unnelW)m(eb)i
+Fn(:)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(:)41
+b Fr(106)239 565 y(4.6)h(Prin)o(ting)13 b(Man)o(uals)21 b Fn(:)f(:)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(:)41 b
+Fr(107)239 639 y(4.7)h(Installation)12 b(Problems?)24 b Fn(:)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(:)41 b Fr(107)177 756
+y Fo(5)d(F)l(unnelW)l(eb)14 b(Administr)o(ati)o(on)1066 b(109)239
+830 y Fr(5.1)42 b(In)o(tro)q(duction)13 b Fn(:)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(:)41 b
+Fr(109)239 905 y(5.2)h(The)14 b(User's)h(Commitm)n(en)o(t)d(T)m(o)h(F)m
+(unnelW)m(eb)30 b Fn(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)41 b Fr(109)239
+980 y(5.3)h(Do)q(cumen)o(tation)25 b Fn(:)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(:)41 b Fr(110)239 1054
+y(5.4)h(Registration)17 b Fn(:)j(:)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(:)41 b Fr(110)239 1129 y(5.5)h(Supp)q(ort)29
+b Fn(:)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(:)41 b Fr(110)239 1204 y(5.6)h(Cop)o(yrigh)o(t)26
+b Fn(:)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(:)41 b Fr(112)239 1279 y(5.7)h(No)o(w)o(arran)o(t)o(y)27
+b Fn(:)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(:)41 b Fr(112)239 1353 y(5.8)h(Distribution)18
+b Fn(:)i(:)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(:)41 b Fr(113)239 1428 y(5.9)h(Mo)q(di\014cation)11
+b Fn(:)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(:)41 b Fr(113)239 1503 y(5.10)21 b(V)m(ersions)k
+Fn(:)c(:)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(:)41 b Fr(114)239 1577 y(5.11)21 b(FTP)14 b(Arc)o(hiv)o(e)g(and)
+g(Author)36 b Fn(:)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(:)41
+b Fr(114)177 1694 y Fo(A)26 b(Glossary)1456 b(115)177 1810
+y(B)28 b(References)1412 b(117)177 1926 y(Index)1581 b(117)1053
+2940 y Fr(7)p eop
+%%Page: 8 9
+8 8 bop 1053 2940 a Fr(8)p eop
+%%Page: 9 10
+9 9 bop 177 399 a Fp(Preface)177 639 y Fr(When,)17 b(in)f(1986,)g(I)g
+(\014rst)i(read)f(Donald)e(Kn)o(uth's)i(tec)o(hnical)g(rep)q(ort)h(on)e(W)m
+(eb)p Fo([Kn)o(uth83])p Fr(,)f(and)h(tried)h(W)m(eb)177 689
+y(out,)f(I)f(w)o(as)h(sim)o(ultaneously)d(excited)k(b)o(y)e(Kn)o(uth's)h
+(idea)f(of)g(literate)h(programming,)c(and)k(disapp)q(oin)o(ted)f(b)o(y)177
+739 y(his)f(implemen)o(tati)o(on)d(of)i(it.)18 b(I)13 b(w)o(as)h(excited)g(b)
+q(ecause)i(I)d(could)h(sense)h(the)f(p)q(oten)o(tial)g(for)f(the)h(literate)g
+(st)o(yle)g(to)177 789 y(transform)g(the)h(state)g(of)f(mind)f(of)h(the)h
+(programmer,)d(but)j(w)o(as)f(disapp)q(oin)o(ted)g(b)o(y)h(W)m(eb's)f
+(rigidit)o(y)f(and)h(lac)o(k)177 839 y(of)h(practicalit)o(y)m(,)f(whic)o(h)h
+(seemed)h(to)f(b)q(etra)o(y)g(this)h(p)q(oten)o(tial.)21 b(The)16
+b(W)m(eb)f(I)g(used)h(w)o(as)f(P)o(ascal-sp)q(eci\014c,)i(T)1881
+847 y(E)1904 839 y(X-)177 888 y(sp)q(eci\014c,)c(and)e(applied)f(to)q(o)h
+(man)o(y)e(constrain)o(ts)i(to)g(the)h(programmi)o(ng)c(pro)q(cess.)19
+b(In)11 b(particular,)g(it)g(insisted)g(on)177 938 y(taking)i(con)o(trol)g
+(of)g(the)h(program)e(text,)h(mangling)e(the)j(co)q(de)g(in)f(the)h(P)o
+(ascal)f(output)h(\014les,)f(and)h(imp)q(osing)d(its)177 988
+y(o)o(wn)i(rather)g(rigid)f(ideas)h(ab)q(out)g(inden)o(ting)f(in)g(the)i(T)
+1026 997 y(E)1049 988 y(X)f(output.)18 b(All)12 b(this,)g(com)o(bined)g(with)
+g(the)i(complexit)o(y)177 1038 y(of)f(the)i(to)q(ol,)e(led)h(me)e(to)i(come)f
+(to)h(p)q(erceiv)o(e)h(W)m(eb)f(as)g(problem)e(rather)j(than)f(solution.)177
+1112 y(Despite)h(all)f(this,)g(I)h(w)o(as)f(w)o(ell)g(and)g(truly)h(ho)q(ok)o
+(ed)f(on)h(the)g(idea)f(of)g(literate)h(programming)o(.)i(The)e(inevitable)
+177 1162 y(result)g(w)o(as)f(that)g(I)f(designed)i(and)f(implem)o(en)o(ted)e
+(m)o(y)g(o)o(wn)i(v)o(ersion)g(of)f(W)m(eb)h(|)f(F)m(unnelW)m(eb!)177
+1237 y(F)m(unnelW)m(eb)d(is)h(not)f(the)i(most)d(sophisticated)j(literate)e
+(programming)d(to)q(ol)j(a)o(v)n(ailable,)f(but)i(it)f(is)h(an)f(extremely)
+177 1287 y Fm(pr)n(actic)n(al)i Fr(to)q(ol,)g(striving)g(for)g(simplicit)o(y)
+f(and)h(p)q(ortabilit)o(y)g(in)g(all)f(areas.)18 b(Not)13 b(only)f(is)h(F)m
+(unnelW)m(eb)f(language-)177 1337 y(indep)q(enden)o(t,)23 b(and)d(to)g(some)f
+(exten)o(t)i(t)o(yp)q(esetter)i(indep)q(enden)o(t,)f(but)f(its)f(implemen)o
+(tatio)o(n)d(also)j(stresses)177 1386 y(p)q(ortabilit)o(y)m(,)14
+b(b)q(eing)h(written)h(in)f(C,)g(and)h(curren)o(tly)g(op)q(erating)g(on)f
+(four)g(ma)r(jor)f(platforms)g(\(Sun,)h(V)m(ax,)g(PC,)177 1436
+y(Mac\).)j(F)m(unnelW)m(eb)13 b(allo)o(ws)f(the)j(programmer)c(total)h(con)o
+(trol)i(o)o(v)o(er)f(the)h(output)g(\014le,)f(making)e(it)i(suitable)g(for)
+177 1486 y(use)18 b(with)e(all)g(sorts)h(of)f(format-sensitiv)o(e)g
+(languages.)26 b(It)17 b(also)f(allo)o(ws)f(con)o(trol)i(o)o(v)o(er)f(its)h
+(o)o(wn)f(source)i(co)q(de,)177 1536 y(whic)o(h)11 b(has)g(b)q(een)h
+(released)g(under)g(a)e(GNU)h(license.)18 b(F)m(unnelW)m(eb)10
+b(is)h(quite)g(solid,)f(ha)o(ving)g(to)h(pass)g(a)g(regression)177
+1586 y(testing)17 b(suite)h(of)e(o)o(v)o(er)h(200)f(tests)i(b)q(efore)f(b)q
+(eing)g(released.)28 b(Finally)m(,)15 b(F)m(unnelW)m(eb)h(is)h(w)o(ell)f(do)q
+(cumen)o(ted)h(b)o(y)177 1636 y(this)d(man)o(ual)e(whic)o(h)h(pro)o(vides)h
+(a)g(tutorial,)f(adv)n(anced)h(hin)o(ts,)f(and)h(a)f(language)g
+(de\014nition.)177 1710 y(I)e(w)o(ould)e(lik)o(e)h(to)g(dedicate)i(F)m
+(unnelW)m(eb)e(and)g(this)g(man)o(ual)e(to)j(Donald)e(Kn)o(uth)i(and)f(his)h
+(literate)f(programming)177 1760 y(to)q(ol)g(W)m(eb.)17 b(Although)10
+b(this)g(man)o(ual)f(is)h(somewhat)g(critical)g(of)g(some)g(asp)q(ects)i(of)e
+(W)m(eb,)h(this)f(criticism)g(is)g(really)177 1810 y(a)j(pro)q(duct)h(of)e
+(di\013ering)h(design)g(goals.)k(Kn)o(uth)d(designed)f(a)g(paradigm)e
+(\(literate)i(programming\))d(and)j(a)f(to)q(ol)177 1860 y(\(W)m(eb\))20
+b(aimed)f(at)h(the)h(highest)f(pitc)o(h)h(of)e(program)g(presen)o(tation)i
+(and)f(t)o(yp)q(esetting.)38 b(F)m(unnelW)m(eb)20 b(aims)177
+1910 y(lo)o(w)o(er,)13 b(relaxing)f(constrain)o(ts,)h(and)g(making)e
+(compromises)g(in)h(order)i(to)f(ac)o(hiev)o(e)g(simplicit)o(y)m(,)d
+(\015exibilit)o(y)m(,)h(and)177 1959 y(p)q(ortabilit)o(y)m(.)16
+b(The)c(result)g(is)f(a)g(practical)h(to)q(ol)f(whic)o(h)g(I)g(hop)q(e)h
+(will)e(attract)i(more)f(p)q(eople)h(to)f(the)h(literate)g(st)o(yle.)177
+2059 y Fo(Ross)j(N.)i(Williams)177 2109 y(Adelaide,)d(Australia)177
+2159 y(Ma)o(y)i(1992)1053 2940 y Fr(9)p eop
+%%Page: 10 11
+10 10 bop 1042 2940 a Fr(10)p eop
+%%Page: 11 12
+11 11 bop 177 399 a Fp(Ac)m(kno)m(wledgemen)m(ts)177 645 y
+Fr(Man)o(y)16 b(thanks)h(to)g Fo(Da)o(vid)h(Hulse)d Fr(\()p
+Fl(dave@cs.adelaide.e)o(du.au)o Fr(\))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
+Fo(Simon)h(Hac)o(k)o(ett)e Fr(\()p Fl(simon@internode.com)o(.au)p
+Fr(\))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
+Fo(Jerem)o(y)i(Begg)f Fr(\()p Fl(jeremy@vsm.com.au)o Fr(\))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 Fo(Barry)57 b(Dwy)o(er)50
+b Fr(\()p Fl(dwyer@cs.adelaid)o(e.edu)o(.au)p Fr(\))d(and)j
+Fo(Roger)57 b(Brissenden)177 1367 y Fr(\()p Fl(rjb@koala.harvard.e)o(du)p
+Fr(\))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 Fo(Ross)h(N.)i(Williams)177 1641 y(Adelaide,)d(Australia)177
+1691 y(Ma)o(y)i(1992)1042 2940 y Fr(11)p eop
+%%Page: 12 13
+12 12 bop 1042 2940 a Fr(12)p eop
+%%Page: 13 14
+13 13 bop 177 399 a Fp(Presen)m(tation)42 b(Notes)177 639 y
+Fo(References:)e Fr(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 Fo([)p Fn(<)p Fm(\014rstauthor)p Fn(><)p Fm(ye)n(ar)p
+Fn(>)p Fo(])p Fr(.)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 Fo(Sp)q(ecial)d(terms:)17 b Fr(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 814 y(A)i(glossary)g(app)q(ears)g(as)g(an)g(app)q
+(endix.)177 888 y Fo(T)o(yp)q(esetting:)69 b Fr(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
+938 y(ro)o(w's)29 b(\()p Fl(akt150@cscgpo.anu.e)o(du.au)o Fr(\))e(implemen)o
+(tatio)o(n)g(\(OzT)m(eX\))j(of)f(the)h(T)1558 947 y(E)1581
+938 y(X/L)1644 933 y Fk(a)1663 938 y Fr(T)1686 951 y(E)1709
+938 y(X)p Fo([Kn)o(uth84])177 988 y([Lamp)q(ort86])13 b Fr(t)o(yp)q(esetting)
+i(system)e(running)h(on)g(a)f(Macin)o(tosh-SE.)177 1063 y Fo(Graphics:)i
+Fr(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 1058 y Fk(a)1450 1063 y Fr(T)1473 1075
+y(E)1496 1063 y(X)f Fl(verbatim)f Fr(en)o(vironmen)o(t)177
+1112 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
+1107 y Fk(a)1714 1112 y Fr(T)1737 1125 y(E)1761 1112 y(X)g(without)177
+1162 y(access)g(to)e(the)g(author's)g(dra)o(wing)f(to)q(ols.)177
+1237 y Fo(Kno)o(wn)g(t)o(yp)q(esetting)d(problems:)k Fr(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 1287 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 1337 y(unable)h(to)g(w)o(ork)f(out)h(ho)o(w)g(to)
+f(get)h(L)754 1332 y Fk(a)773 1337 y Fr(T)796 1349 y(E)820
+1337 y(X)g(to)g(suppress)h(blank)f(pages)g(at)f(the)i(start)f(of)g(c)o
+(hapters.)1042 2940 y(13)p eop
+%%Page: 14 15
+14 14 bop 1042 2940 a Fr(14)p eop
+%%Page: 15 16
+15 15 bop 177 378 a Fj(Chapter)34 b(1)177 610 y Fp(A)40 b(T)-10
+b(utorial)41 b(In)m(tro)s(duction)177 876 y Fi(1.1)70 b(What)23
+b(is)f(Literate)g(Programming?)177 992 y Fr(A)e(traditional)e(computer)h
+(program)f(consists)i(of)f(a)g(text)h(\014le)f(con)o(taining)g(program)f(co)q
+(de.)35 b(Scattered)21 b(in)177 1041 y(amongst)12 b(the)j(program)d(co)q(de)j
+(are)f(commen)o(ts)e(whic)o(h)i(describ)q(e)i(the)e(v)n(arious)f(parts)i(of)e
+(the)i(co)q(de.)177 1116 y(In)d Fo(literate)f(programming)e
+Fr(the)k(emphasis)e(is)h(rev)o(ersed.)20 b(Instead)13 b(of)e(writing)g(co)q
+(de)i(con)o(taining)e(do)q(cumen-)177 1166 y(tation,)g(the)i(literate)f
+(programmer)e(writes)i(do)q(cumen)o(tation)f(con)o(taining)g(co)q(de.)18
+b(No)11 b(longer)h(do)q(es)h(the)f(English)177 1216 y(commen)o(tary)d
+(injected)j(in)o(to)f(a)g(program)f(ha)o(v)o(e)h(to)g(b)q(e)h(hidden)f(in)g
+(commen)o(t)e(delimiters)h(at)i(the)f(top)h(of)e(the)i(\014le,)177
+1266 y(or)j(under)g(pro)q(cedure)h(headings,)e(or)h(at)f(the)h(end)g(of)f
+(lines.)19 b(Instead,)c(it)f(is)g(wrenc)o(hed)i(in)o(to)e(the)h(da)o(yligh)o
+(t)e(and)177 1315 y(made)j(the)h(main)e(fo)q(cus.)26 b(The)17
+b(\\program")e(then)i(b)q(ecomes)g(primarily)d(a)j(do)q(cumen)o(t)f(directed)
+i(at)f(h)o(umans,)177 1365 y(with)12 b(the)h(co)q(de)h(b)q(eing)e(herded)i(b)
+q(et)o(w)o(een)g(\\co)q(de)f(delimiters")e(from)g(where)i(it)f(can)h(b)q(e)g
+(extracted)h(and)e(sh)o(u\017ed)177 1415 y(out)i(sidew)o(a)o(ys)g(to)g(the)g
+(language)f(system)h(b)o(y)f(literate)i(programmi)o(ng)c(to)q(ols.)177
+1490 y(The)k(e\013ect)i(of)d(this)h(simple)e(shift)h(of)h(emphasis)e(can)i(b)
+q(e)h(so)f(profound)f(as)h(to)f(c)o(hange)h(one's)g(whole)g(approac)o(h)177
+1540 y(to)f(programming.)i(Under)f(the)g(literate)g(programming)c(paradigm,)g
+(the)k(cen)o(tral)g(activit)o(y)f(of)f(programming)177 1589
+y(b)q(ecomes)i(that)g(of)f(con)o(v)o(eying)g(meaning)f(to)i(other)g(in)o
+(telligen)o(t)f(b)q(eings)h(rather)g(than)g(merely)f(con)o(vincing)g(the)177
+1639 y(computer)i(to)g(b)q(eha)o(v)o(e)g(in)g(a)g(particular)g(w)o(a)o(y)m(.)
+23 b(It)16 b(is)g(the)h(di\013erence)h(b)q(et)o(w)o(een)f(p)q(erforming)e
+(and)h(exp)q(osing)g(a)177 1689 y(magic)c(tric)o(k.)177 1764
+y(In)18 b(order)g(to)g(program)e(in)i(a)f(literate)h(st)o(yle,)h(particular)e
+(to)q(ols)h(are)g(required.)30 b(The)19 b(traditional)d(approac)o(h)177
+1814 y(\(used)f(in)f(the)g(F)m(unnelW)m(eb)g(system\))g(is)g(to)f(ha)o(v)o(e)
+h(some)f(sort)i(of)e(text-\014le-in/text-\014le-out)h(utilit)o(y)f(that)h
+(reads)177 1863 y(a)20 b(literate)f(program)f(\(con)o(taining)h(a)h(program)e
+(commen)o(tary)f(p)q(epp)q(ered)22 b(with)d(scraps)i(of)e(program)f(text\))
+177 1913 y(and)e(writes)g(out)g(a)g(\014le)g(con)o(taining)e(all)h(the)h
+(program)f(co)q(de)h(and)g(a)f(\014le)h(con)o(taining)f(t)o(yp)q(esetter)j
+(commands)177 1963 y(represen)o(ting)e(the)e(en)o(tire)h(input)e(do)q(cumen)o
+(t,)g(do)q(cumen)o(tation,)g(co)q(de,)h(and)g(all)e(\()p Fo(Figure)i(1)p
+Fr(\).)177 2038 y(Giv)o(en)h(the)h(coming)e(age)h(of)g(h)o(yp)q(ertext)i
+(systems,)e(this)h(is)f(probably)g(not)h(the)g(b)q(est)g(approac)o(h.)23
+b(Ho)o(w)o(ev)o(er,)16 b(it)177 2087 y(do)q(es)c(mesh)f(b)q(eautifully)f
+(with)h(curren)o(t)i(text)f(\014les)g(and)f(command)e(line)i(in)o(terfaces,)h
+(the)g(exp)q(ectation)g(of)f(linear)177 2137 y(presen)o(tations)k(in)f(the)g
+(do)q(cumen)o(ts)g(w)o(e)g(read,)g(and)g(the)h(particular)e(requiremen)o(ts)i
+(of)e(curren)o(t)i(programming)177 2187 y(languages)f(and)f(t)o(yp)q
+(esetting)i(systems.)j(It)c(is)g(certainly)g(not)g(a)f(bad)h(approac)o(h.)177
+2262 y(With)i(this)h(structure)h(in)e(place,)h(the)g(literate)g(programming)c
+(system)j(can)h(pro)o(vide)f(far)g(more)g(than)g(just)h(a)177
+2312 y(rev)o(ersal)h(of)e(the)i(priorit)o(y)e(of)h(commen)o(ts)e(and)i(co)q
+(de.)28 b(In)17 b(its)g(full)e(blo)o(wn)i(form,)e(a)i(go)q(o)q(d)f(literate)i
+(program-)177 2361 y(ming)c(facilit)o(y)g(can)h(pro)o(vide)h(total)f(supp)q
+(ort)h(for)f(the)h(essen)o(tial)g(thrust)h(of)e(literate)h(programmi)o(ng,)c
+(whic)o(h)k(is)177 2411 y(that)f(computer)g(programs)f(should)h(b)q(e)h
+(written)g(more)e(for)h(the)h(h)o(uman)e(reader)i(than)f(for)g(the)h
+(compiler.)21 b(In)177 2461 y(particular,)13 b(a)h(literate)g(programming)c
+(system)k(can)g(pro)o(vide:)295 2536 y Fo(Re-ordering)f(of)j(co)q(de:)k
+Fr(Programmi)o(ng)11 b(languages)j(often)g(force)h(the)g(programmer)d(to)i
+(giv)o(e)295 2586 y(the)g(v)n(arious)e(parts)h(of)f(a)h(computer)f(program)f
+(in)h(a)h(particular)f(order.)19 b(F)m(or)12 b(example,)f(the)j(P)o(as-)295
+2635 y(cal)f(programming)d(language)p Fo([BSI82])i Fr(imp)q(oses)g(the)i
+(ordering:)j(constan)o(ts,)d(t)o(yp)q(es,)g(v)n(ariables,)295
+2685 y(pro)q(cedures,)i(co)q(de.)k(P)o(ascal)14 b(also)g(requires)h(that)g
+(pro)q(cedures)h(app)q(ear)f(in)f(an)g(order)h(consisten)o(t)295
+2735 y(with)g(the)g(partial)f(ordering)h(imp)q(osed)e(b)o(y)i(the)g(static)g
+(call)f(graph)h(\(but)g(forw)o(ard)g(declarations)295 2785
+y(allo)o(w)e(this)i(to)g(b)q(e)g(b)o(ypassed\).)21 b(In)15
+b(con)o(trast,)g(the)h(literate)f(st)o(yle)f(requires)i(that)f(the)g
+(program-)295 2835 y(mer)c(b)q(e)i(free)f(to)g(presen)o(t)h(the)f(computer)g
+(program)e(in)h(an)o(y)h(order)g(whatso)q(ev)o(er.)19 b(The)12
+b(facilit)o(y)e(to)1042 2940 y(15)p eop
+%%Page: 16 17
+16 16 bop 526 789 a Fl(+----------------)o(-----)o(----)o(-----)o(-----)o
+(-----)o(-+)526 838 y(|)21 b(File)g(containing)f(the)h(program)g(description)
+e(|)526 888 y(|)i(peppered)g(with)g(scraps)f(of)h(program)g(code.)64
+b(|)526 938 y(|)21 b(This)g(is)h(what)f(the)g(programmer)f(works)g(on.)65
+b(|)526 988 y(|)218 b(\(e.g.)20 b(sloth.web\))325 b(|)526 1038
+y(+----------------)o(-----)o(----)o(-----)o(-----)o(-----)o(-+)962
+1087 y(|)962 1137 y(v)657 1187 y(o---------------)o(----)o(-----)o(---o)657
+1237 y(|)21 b(Literate)f(Programming)g(Tool)h(|)657 1287 y(o---------------)o
+(----)o(-----)o(---o)962 1336 y(|)526 1386 y(+----------------)o(---+-)o
+(----)o(-----)o(-----)o(----+)526 1436 y(|)850 b(|)526 1486
+y(v)g(v)330 1536 y(+---------------)o(---+)236 b(+------------------)o(-----)
+o(-----)o(----)o(--+)330 1586 y(|)65 b(Traditional)85 b(|)239
+b(|)22 b(Documentation)d(file)i(suitable)f(for)43 b(|)330 1635
+y(|)21 b(Computer)f(Program)h(|)239 b(|)22 b(input)f(into)g(a)g(typesetting)f
+(program)g(|)330 1685 y(|)43 b(\(e.g.)21 b(sloth.c\))42 b(|)239
+b(|)174 b(\(e.g.)21 b(sloth.tex\))216 b(|)330 1735 y(+---------------)o(---+)
+236 b(+------------------)o(-----)o(-----)o(----)o(--+)343
+1876 y Fh(Literate)14 b(programming)e(to)q(ols)j(could)g(b)q(e)g(organized)e
+(in)j(a)g(n)o(um)o(b)q(er)e(of)h(w)o(a)o(ys.)28 b(Ho)o(w)o(ev)o(er,)17
+b(to)e(\014t)h(in)f(with)281 1926 y(curren)o(t)9 b(\014le)h(and)h(command)d
+(line)i(based)g(en)o(vironmen)n(ts,)e(most)i(to)q(ols)g(conform)f(to)h(the)h
+(traditional)d(arc)o(hitectur)o(e)281 1976 y(sho)o(wn)g(here)g(in)h(whic)o(h)
+g(the)f(user)g(feeds)g(in)h(a)f(\014le)h(con)o(taining)d(a)j(literate)e
+(program,)g(and)h(the)g(literate)f(programmin)o(g)281 2026
+y(utilit)o(y)j(generates)f(program)g(\014les)i(and)f(a)i(do)q(cumen)o(ta)o
+(tion)c(\014le.)465 2117 y Fo(Figure)15 b(1)p Fr(:)i(T)m(raditional)12
+b(arc)o(hitecture)k(of)d(literate)h(programming)c(to)q(ols.)1042
+2940 y(16)p eop
+%%Page: 17 18
+17 17 bop 295 42 a Fr(do)15 b(this)g(is)g(implemen)o(ted)e(in)i(literate)g
+(programming)d(to)q(ols)i(b)o(y)h(pro)o(viding)f(text)i Fm(macr)n(os)f
+Fr(that)295 91 y(can)f(b)q(e)h(de\014ned)g(and)f(used)g(in)g(an)o(y)f(order.)
+295 170 y Fo(T)o(yp)q(eset)h(co)q(de)g(and)g(do)q(cumen)o(tation)o(:)i
+Fr(T)m(raditionally)10 b(program)h(listings)h(are)h(dull)f(a\013airs)295
+220 y(consisting)i(of)g(pages)h(of)e(fan-form)f(pap)q(er)j(imprin)o(ted)d
+(with)i(meandering)f(coastlines)i(of)f(struc-)295 270 y(tured)k(text)f(in)g
+(a)f(b)q(oring)g(fon)o(t.)26 b(In)17 b(con)o(trast,)h(literate)f(programmi)o
+(ng)d(systems)j(are)g(capable)295 320 y(of)d(pro)q(ducing)g(do)q(cumen)o
+(tation)e(that)i(is)g(sup)q(erior)h(in)e(t)o(w)o(o)h(w)o(a)o(ys.)k(First,)13
+b(b)q(ecause)j(most)d(of)g(the)295 369 y(do)q(cumen)o(tation)i(text)h(is)g
+(fed)g(straigh)o(t)f(to)h(the)g(t)o(yp)q(esetter,)j(the)d(programmer)e(can)i
+(mak)o(e)e(use)295 419 y(of)k(all)f(the)i(p)q(o)o(w)o(er)f(of)g(the)g
+(underlying)g(t)o(yp)q(esetter,)j(resulting)e(in)e(do)q(cumen)o(tation)g
+(that)i(has)295 469 y(the)14 b(same)e(presen)o(tation)h(as)g(an)g(ordinary)f
+(t)o(yp)q(eset)i(do)q(cumen)o(t.)j(Second,)d(b)q(ecause)g(the)f(literate)295
+519 y(programming)f(utilit)o(y)j(sees)i(all)e(the)h(co)q(de,)h(it)f(can)g
+(use)g(its)g(kno)o(wledge)g(of)f(the)h(programming)295 569
+y(language)c(and)g(the)h(features)h(of)d(the)i(t)o(yp)q(esetting)h(language)d
+(to)i(t)o(yp)q(eset)h(the)f(program)d(co)q(de)k(as)295 618
+y(if)f(it)h(w)o(ere)h(app)q(earing)e(in)h(a)f(tec)o(hnical)h(journal.)k(It)c
+(is)f(the)i(di\013erence)h(b)q(et)o(w)o(een:)264 745 y Fl(while)21
+b(sloth<walrus)e(loop)330 795 y(sloth:=sloth+1;)264 845 y(end)j(loop)295
+971 y Fr(and)281 1098 y Fo(while)12 b Fm(sloth)p Fn(<)p Fm(walrus)h
+Fo(lo)q(op)447 1147 y Fm(sloth)p Fq( )p Fm(sloth)p Fr(+1;)281
+1197 y Fo(end)g(lo)q(op)295 1324 y Fr(Unfortunately)m(,)18
+b(while)g(F)m(unnelW)m(eb)f(pro)o(vides)h(full)f(t)o(yp)q(esetting)i(of)e
+(the)i(do)q(cumen)o(tation,)e(it)295 1374 y(t)o(yp)q(esets)j(all)d(of)h(its)g
+(co)q(de)h(in)e(the)i(st)o(yle)f(of)g(the)h(\014rst)f(of)g(these)h(t)o(w)o(o)
+f(examples.)30 b(T)m(o)17 b(t)o(yp)q(eset)295 1423 y(in)e(the)g(st)o(yle)g
+(of)f(the)h(second)h(requires)g(kno)o(wledge)e(of)h(the)g(programmi)o(ng)d
+(language,)i(and)g(the)295 1473 y(curren)o(t)f(v)o(ersion)d(of)h(F)m(unnelW)m
+(eb)f(is)g(programming)d(language)j(indep)q(enden)o(t.)19 b(A)o(t)10
+b(a)h(later)g(stage,)295 1523 y(it)h(is)g(p)q(ossible)h(that)f(F)m(unnelW)m
+(eb)g(will)f(b)q(e)i(mo)q(di\014ed)e(to)h(read)h(in)f(a)g(\014le)g(con)o
+(taining)g(information)295 1573 y(ab)q(out)j(the)g(target)h(programmi)o(ng)c
+(language)i(to)g(b)q(e)i(used)f(to)g(assist)g(in)g(t)o(yp)q(esetting)g(the)h
+(co)q(de)295 1623 y(prop)q(erly)m(.)295 1702 y Fo(Cross)h(referencing:)h
+Fr(Because)f(the)e(literate)h(to)q(ol)e(sees)i(all)e(the)i(co)q(de)g(and)e
+(do)q(cumen)o(tation,)295 1751 y(it)19 b(is)g(able)h(to)f(generate)h
+(extensiv)o(e)h(cross)f(referencing)h(information)c(in)i(the)h(t)o(yp)q(eset)
+g(do)q(cu-)295 1801 y(men)o(tation.)28 b(This)18 b(mak)o(es)e(the)j(prin)o
+(ted)f(program)e(do)q(cumen)o(t)h(more)g(easy)h(to)g(na)o(vigate)f(and)295
+1851 y(partially)g(comp)q(ensates)h(for)g(the)g(lac)o(k)g(of)f(an)h
+(automatic)e(searc)o(hing)i(facilit)o(y)e(when)j(reading)295
+1901 y(prin)o(ted)c(do)q(cumen)o(tation.)177 1980 y(In)e(the)h(end,)f(the)g
+(details)g(don't)g(matter.)k(The)c(most)f(signi\014can)o(t)g(b)q(ene\014t)i
+(that)f(literate)h(programmi)o(ng)c(o\013ers)177 2029 y(is)17
+b Fm(its)h(c)n(ap)n(acity)g(to)g(tr)n(ansform)f(the)h(state)g(of)g(mind)g(of)
+g(the)g(pr)n(o)n(gr)n(ammer)p Fr(.)27 b(It)18 b(is)f(no)o(w)g(legend)g(that)h
+(the)f(act)177 2079 y(of)d(explaining)g(something)g(can)h(transform)f(one's)h
+(understanding)g(of)f(it.)21 b(This)15 b(is)g(one)g(of)f(the)i
+(justi\014cations)177 2129 y(b)q(ehind)j(the)h(p)q(o)o(w)o(erful)e(com)o
+(bination)e(of)i(researc)o(h)j(and)d(teac)o(hing)h(in)f(univ)o(ersities)p
+Fo([Roso)o(vsky90])p Fr(.)33 b(Simi-)177 2179 y(larly)m(,)12
+b(b)o(y)h(constan)o(tly)h(explaining)e(the)i(unfolding)e(program)g(co)q(de)j
+(in)e(English)g(to)h(an)f(imaginary)e(reader,)j(the)177 2229
+y(programmer)e(transforms)h(his)h(p)q(erception)h(of)e(the)i(co)q(de,)f(la)o
+(ying)e(it)i(op)q(en,)f(prone,)h(to)g(the)h(critical)e(ey)o(e.)177
+2307 y(The)f(result)h(of)e(this)h(exp)q(osure)h(is)e(a)h(higher)f(qualit)o(y)
+g(of)g(programmi)o(ng.)j(When)e(exp)q(osed)h(to)e(the)i(harsh)f(ligh)o(t)e
+(of)177 2357 y(the)i(literate)g(ey)o(e,)g(bugs)g(cra)o(wl)g(out,)f(sp)q
+(ecial)h(cases)h(v)n(anish,)e(and)h(slopp)o(y)f(co)q(de)h(ev)n(ap)q(orates.)
+18 b(As)12 b(a)g(rule)g(literate)177 2407 y(programs)18 b(tak)o(e)i(longer)f
+(to)g(write)g(than)h(ordinary)f(programs,)g(but)g(the)h(total)f(dev)o
+(elopmen)o(t)f(time)g(is)h(the)177 2457 y(same)13 b(or)h(less)g(b)q(ecause)h
+(the)f(time)f(tak)o(en)g(to)h(write)g(and)f(do)q(cumen)o(t)h(the)g(program)e
+(carefully)h(is)h(comp)q(ensated)177 2507 y(for)i(b)o(y)g(a)g(reduced)j
+(debugging)c(and)i(main)o(tenance)e(time.)24 b(Th)o(us)17 b(literate)g
+(programmi)o(ng)c(do)q(es)k(not)g(merely)177 2557 y(assist)c(in)f(the)g
+(preparation)g(of)g(do)q(cumen)o(tation,)f(but)h(also)g(mak)o(es)f
+(signi\014can)o(t)g(con)o(tributes)j(to)e(the)g(pro)q(cess)i(of)177
+2606 y(programming)d(itself.)18 b(In)c(practice)h(this)f(has)g(turned)h(out)f
+(to)g(b)q(e)g(a)g(con)o(tribution)g(far)f(more)h(imp)q(ortan)o(t)e(than)177
+2656 y(the)j(mere)e(capacit)o(y)h(to)g(pro)q(duce)h(t)o(yp)q(eset)g(do)q
+(cumen)o(tation.)177 2735 y(F)m(or)h(more)f(information)e(on)j(literate)h
+(programmi)o(ng,)c(the)k(reader)h(is)e(directed)h(to)f(Kn)o(uth's)h(early)f
+(founding)177 2785 y(w)o(ork)10 b Fo([Kn)o(uth83])f Fr(and)h
+Fo([Kn)o(uth84])p Fr(.)16 b(F)m(or)10 b(more)f(recen)o(t)j(information)c
+(refer)j(to)g Fo([Smith91])p Fr(,)d(whic)o(h)j(pro)o(vides)177
+2835 y(a)j(comprehensiv)o(e)g(bibliograph)o(y)e(up)i(to)f(1990.)1042
+2940 y(17)p eop
+%%Page: 18 19
+18 18 bop 177 42 a Fi(1.2)70 b(What)23 b(is)f(F)-6 b(unnelW)g(eb?)177
+160 y Fr(F)m(unnelW)m(eb)10 b(is)h(a)g(particular)f(literate)h(programming)c
+(system)k(that)g(is)f(implemen)o(ted)f(b)o(y)h(a)h(single)f(C)h(program.)177
+210 y(F)m(unnelW)m(eb)16 b(tak)o(es)h(as)f(input)h(a)f(single)g
+Fl(.fw)g Fo(input)g(\014le)f Fr(and)h(writes)h(one)g(or)f(more)g
+Fo(pro)q(duct)h(\014les)e Fr(and)h(a)177 260 y Fo(do)q(cumen)o(tation)c
+(\014le)h Fr(\()p Fo(Figure)h(2)p Fr(\).)831 386 y Fl(+-----------+)831
+436 y(|)22 b(sloth.fw)41 b(|)831 485 y(+-----------+)962 535
+y(|)962 585 y(v)744 635 y(o---------------)o(----o)744 685
+y(|)21 b(FUNNELWEB)f(Program)h(|)744 734 y(o---------------)o(----o)962
+784 y(|)526 834 y(+----------------)o(---+-)o(----)o(-----)o(-----)o(-+)526
+884 y(|)784 b(|)526 934 y(v)g(v)221 983 y(+---------------)o(-----)o(-----)o
+(----+)84 b(+--------------)o(-----)o(-----)o(-----)o(---+)221
+1033 y(|)21 b(Product)g(File)g(\(e.g.)f(sloth.c\))h(|)87 b(|)21
+b(Documentation)e(File)i(\(sloth.tex\))f(|)221 1083 y(+---------------)o
+(-----)o(-----)o(----+)84 b(+--------------)o(-----)o(-----)o(-----)o(---+)
+343 1174 y Fh(F)m(unnelW)m(eb)10 b(follo)o(ws)h(the)g(traditiona)o(l)e(arc)o
+(hitecture)f(of)j(literate)f(programmin)o(g)f(to)q(ols.)709
+1266 y Fo(Figure)14 b(2)p Fr(:)k(Arc)o(hitecture)e(of)e(F)m(unnelW)m(eb.)177
+1378 y(In)c(literate)f(programming)d(systems,)k(it)g(is)f(usual)g(to)h(refer)
+g(to)g(the)g(pro)q(duct)g(\014le)g(as)g(a)f(\\program)e(\014le".)17
+b(Ho)o(w)o(ev)o(er,)177 1427 y(as)i(F)m(unnelW)m(eb)f(is)g(a)g(general)h(to)q
+(ol)f(that)g(can)h(b)q(e)g(used)h(to)e(prepare)i(all)d(sorts)i(of)f(text)h
+(\014les)g(that)g(are)g(not)177 1477 y(computer)f(programs,)g(the)g(more)g
+(generic)h(term)e(\\pro)q(duct)i(\014le")f(w)o(as)g(c)o(hosen.)32
+b(Pro)q(duct)20 b(\014les)e(should)g(b)q(e)177 1527 y(carefully)13
+b(distinguished)g(from)e(the)j(term)e Fo(output)g(\014les)g
+Fr(whic)o(h)h(refers)h(to)f(all)f(of)g(the)i(output)f(\014les)h(pro)q(duced)
+177 1577 y(b)o(y)g(F)m(unnelW)m(eb.)177 1654 y(F)m(unnelW)m(eb)g(is)f
+(distinguished)h(b)o(y)g(the)g(follo)o(wing)e(c)o(haracteristics:)295
+1730 y Fo(Simplici)o(t)o(y:)18 b Fr(A)d(go)o(v)o(erning)g(design)g(goal)f(of)
+h(F)m(unnelW)m(eb)f(is)h(to)g(pro)o(vide)g(a)g Fm(simple)g
+Fr(to)q(ol)g(that)295 1780 y(could)i(b)q(e)g(easily)f(learn)o(t)h(and)f
+(completely)g(mastered.)26 b(This)17 b(man)o(ual)d(is)j(thic)o(k)f(b)q
+(ecause)j(it)d(is)295 1830 y(comprehensiv)o(e)h(and)e(lingers)h(on)g(the)h(w)
+o(a)o(ys)f(in)f(whic)o(h)h(F)m(unnelW)m(eb)g(can)g(b)q(e)g(used.)26
+b(The)16 b(to)q(ol)295 1880 y(itself)e(is)g(quite)f(simple.)295
+1957 y Fo(Reliabili)o(t)n(y:)22 b Fr(Another)17 b(design)g(goal)f(is)h(to)f
+(pro)o(vide)h(a)f(to)q(ol)g(that)h(will)e(protect)j(the)g(user)g(as)295
+2007 y(m)o(uc)o(h)g(as)h(p)q(ossible)g(from)e(silly)h(errors.)34
+b(Macro)19 b(prepro)q(cessors)j(are)e(notorious)e(for)h(causing)295
+2056 y(obscure)j(errors.)38 b(Ev)o(ery)21 b(attempt)e(has)h(b)q(een)i(made)d
+(in)g(F)m(unnelW)m(eb)h(to)g(k)o(eep)h(the)g(syn)o(tax)295
+2106 y(robust.)31 b(F)m(or)18 b(example,)f(in)h(F)m(unnelW)m(eb)f(the)i(syn)o
+(tax)f(of)f(macro)g(calls)h(has)g(b)q(een)h(purp)q(osely)295
+2156 y(designed)i(to)e(b)q(e)i(highly)e(visible)g(so)h(that)g(the)g(reader)h
+(is)f(alw)o(a)o(ys)e(a)o(w)o(are)i(when)g(the)h(macro)295 2206
+y(facilit)o(y)12 b(is)i(b)q(eing)g(in)o(v)o(ok)o(ed.)295 2283
+y Fo(Language)i(and)h(T)o(yp)q(esetter)e(Indep)q(endence:)k
+Fr(Unlik)o(e)14 b(Kn)o(uth's)i(original)d(W)m(eb)i(system)295
+2332 y(whic)o(h)h(w)o(as)g(sp)q(eci\014c)h(to)f(the)h(P)o(ascal)f(programmi)o
+(ng)d(language)p Fo([BSI82])i Fr(and)h(the)g(T)1667 2341 y(E)1690
+2332 y(X)g(t)o(yp)q(e-)295 2382 y(setting)g(language)p Fo([Kn)o(uth84])p
+Fr(,)d(F)m(unnelW)m(eb)h(striv)o(es)j(to)e(b)q(e)h(language)e(and)h(t)o(yp)q
+(esetter)j(inde-)295 2432 y(p)q(enden)o(t.)h(The)14 b(curren)o(t)g(v)o
+(ersion)f(of)g(F)m(unnelW)m(eb)f(is)h(completely)f(language)g(indep)q(enden)o
+(t,)i(but)295 2482 y(is)g(still)f(somewhat)g(dep)q(enden)o(t)j(on)d(the)i(T)
+965 2491 y(E)988 2482 y(X)f(t)o(yp)q(esetter)i(language.)295
+2559 y Fo(P)o(ortabili)o(t)n(y:)f Fr(F)m(unnelW)m(eb)10 b(has)g(b)q(een)i
+(written)f(in)f(the)h(C)f(programming)d(language)i(with)h(great)295
+2608 y(emphasis)k(on)g(p)q(ortabilit)o(y)m(.)k(F)m(unnelW)m(eb)c(curren)o
+(tly)h(runs)h(on)e(the)h(Sun,)f(V)-5 b(AX,)15 b(IBM)g(PC,)f(and)295
+2658 y(Mac.)295 2735 y Fo(Con)o(trollabl)o(e:)h Fr(F)m(unnelW)m(eb)10
+b(is)h(an)f(extremely)h(con)o(trollable)f(to)q(ol.)16 b(T)m(o)11
+b(protect)h(users')g(in)o(v)o(est-)295 2785 y(men)o(t)f(in)h(source)h
+(\014les)g(constructed)h(in)e(the)g(F)m(unnelW)m(eb)g(macro)f(language,)g
+(the)h(C)g(source)i(co)q(de)295 2835 y(to)h(F)m(unnelW)m(eb)f(has)h(b)q(een)h
+(released)g(under)g(GNU)e(license.)22 b(This)14 b(means)g(that)h(it)f(will)g
+(alw)o(a)o(ys)1042 2940 y(18)p eop
+%%Page: 19 20
+19 19 bop 295 42 a Fr(b)q(e)17 b(a)o(v)n(ailable)c(to)j(ev)o(ery)o(one.)24
+b(F)m(urthermore,)16 b(license)h(has)e(b)q(een)i(gran)o(ted)f(for)g(the)g(F)m
+(unnelW)m(eb)295 91 y(User's)h(Man)o(ual)e(and)h(F)m(unnelW)m(eb)f(Hac)o(k)o
+(er's)i(Man)o(ual)e(to)g(b)q(e)i(copied)f(freely)g(so)g(long)f(as)h(they)295
+141 y(are)e(not)f(mo)q(di\014ed.)j(All)c(this)h(means)g(that)g(F)m(unnelW)m
+(eb)f(is)h(not)g(going)f(to)h(disapp)q(ear)g(suddenly)m(.)295
+217 y Fo(A)18 b(Pro)q(duction)c(T)l(o)q(ol:)20 b Fr(Ab)q(o)o(v)o(e)c(all,)d
+(F)m(unnelW)m(eb)i(has)g(b)q(een)h(designed)g(to)f(b)q(e)h(a)e(pro)q(duction)
+295 267 y(to)q(ol)e(and)h(ev)o(ery)g(e\013ort)g(has)g(b)q(een)h(made)d(to)h
+(ensure)j(that)d(it)g(will)f(op)q(erate)j(e\013ectiv)o(ely)f(in)g(a)f(pro-)
+295 317 y(fessional)h(en)o(vironmen)o(t.)j(F)m(unnelW)m(eb)d(is)g(\\op)q(en")
+g(and)g(p)q(ortable.)18 b(There)c(is)f(a)f(comprehensiv)o(e)295
+367 y(user)18 b(man)o(ual.)24 b(Its)17 b(error)g(messages)g(are)g
+(comprehensiv)o(e.)26 b(It)17 b(is)f(fast.)26 b(Finally)m(,)15
+b(it)h(has)h(b)q(een)295 417 y(designed)e(with)e(the)i(exp)q(erience)h(of)d
+(three)i(y)o(ears)g(of)e(using)h(F)m(unnelW)m(eb)f(V1.)177
+493 y(F)m(or)c(more)g(information)e(on)i(the)h(history)g(and)f(design)h(of)f
+(F)m(unnelW)m(eb,)g(see)i(the)f Fm(F)m(unnelWeb)i(Hacker's)e(Manual)p
+Fr(.)177 660 y Fi(1.3)70 b(The)22 b(Name)g(F)-6 b(unnelW)g(eb)177
+779 y Fr(The)16 b(name)e(\\F)m(unnelW)m(eb")g(w)o(as)h(c)o(hosen)i(b)q
+(ecause)g(it)d(con)o(tains)i(the)g(name)e(\\WEB",)g(whic)o(h)h(is)g(the)h
+(name)e(of)177 828 y(Kn)o(uth's)g(system.)k(It)c(w)o(as)g(also)f(c)o(hosen)i
+(b)q(ecause)h(it)d(has)h(a)g(distinctly)f(Australian)h(\015a)o(v)o(our.)177
+905 y(F)m(unnel-w)o(eb)j(spiders)g(are)g(found)f(in)g(Northern)i(and)e
+(Eastern)i(Australia.)26 b(They)16 b(are)h(ab)q(out)g(three)h(to)e(four)177
+955 y(cen)o(timetres)c(long)e(and)g(are)i(v)o(ery)f(p)q(oisonous.)17
+b(The)11 b(Sydney)g(F)m(unnel-w)o(eb)g(spider)h(\()p Fm(A)o(tr)n(ax)g(r)n
+(obustus)p Fr(\),)f(common)177 1004 y(in)k(Sydney)m(,)g(has)h(caused)g(the)g
+(most)e(trouble)i(and)f(has)h(b)q(een)g(resp)q(onsible)h(for)e(sev)o(eral)h
+(deaths.)23 b(F)m(unnel-w)o(eb)177 1054 y(spiders)16 b(lo)o(v)o(e)f(to)g(cra)
+o(wl)f(in)o(to)h(temp)q(orarily)e(discarded)j(sho)q(es)g(where)h(they)e
+(later)g(react)h(in)f(a)g(hostile)g(manner)177 1104 y(to)h(an)g(unsusp)q
+(ecting)h(fo)q(ot.)24 b(They)17 b(are)f(kno)o(wn)g(to)f(hang)h(on)g(once)g
+(they)h(sink)f(their)g(fangs)g(in.)24 b(F)m(unnel-w)o(eb)177
+1154 y(spiders)17 b(deriv)o(e)f(their)h(name)e(from)f(the)i(shap)q(e)h(of)e
+(their)h(w)o(ebs)h(whic)o(h)f(are)g(horizon)o(tally-aligned)e(narro)o(wing)
+177 1204 y(tub)q(es,)h(op)q(en)f(at)g(one)g(end)p Fo([ANZE])p
+Fr(.)177 1280 y(The)j(F)m(unnel-w)o(eb)f(spider,)g(lik)o(e)g(the)g(tiger)h
+(snak)o(e)f(and)g(the)h(white)f(p)q(oin)o(ter)g(shark,)g(is)g(secretly)i
+(regarded)f(b)o(y)177 1330 y(Australians)d(as)g(a)g(kind)f(of)g(national)g
+(treasure.)281 1450 y Fo(F)h Fr(is)g(for)f(F)m(unnel-w)o(eb)281
+1500 y(Our)h(furry-legged)g(fo)q(e.)281 1550 y(He)g(sleeps)h(in)f(y)o(our)g
+(slipp)q(er)281 1599 y(And)g(breakfasts)h(on)e(to)q(e.)281
+1649 y(|)g(One)i(v)o(erse)g(from)d Fm(A)j(Me)n(gastar's)f(Mantr)n(as:)19
+b(Things)c(that)g(Me)n(an)h(a)f(L)n(ot)g(to)f(Me)p Fr(,)378
+1699 y(b)o(y)f(Dame)g(Edna)h(Ev)o(erage)p Fo([Humphries91])p
+Fr(.)177 1866 y Fi(1.4)70 b(A)23 b(F)-6 b(unnelW)g(eb)22 b(T)-6
+b(utorial)177 1985 y Fr(The)19 b(remainder)f(of)g(this)h(c)o(hapter)h
+(consists)g(of)e(an)g(in)o(tro)q(ductory)h(tutorial)f(on)g(F)m(unnelW)m(eb.)
+32 b(Ideally)18 b(y)o(ou)177 2034 y(should)13 b(ha)o(v)o(e)f(a)h(w)o(orking)e
+(v)o(ersion)i(of)f(F)m(unnelW)m(eb)g(in)h(fron)o(t)f(of)g(y)o(ou)g(when)i
+(reading)e(this)h(c)o(hapter)h(so)e(that)h(y)o(ou)177 2084
+y(can)h(try)g(out)f(the)h(examples)f(y)o(ourself.)k(There)e(is)e(no)g(need)i
+(to)e(try)h(all)e(the)i(examples)f(so)g(long)g(as)g(y)o(ou)g(t)o(yp)q(e)h(in)
+177 2134 y(enough)i(to)f(feel)g(comfortable)f(with)h(what)g(y)o(ou)g(are)h
+(reading.)22 b(There)16 b(is)f(no)g(harm)f(in)h(reading)g(this)h(c)o(hapter)
+177 2184 y(o\017ine)d(to)q(o,)h(so)f(long)g(as)h(y)o(ou)g(get)g(to)g(the)g
+(computer)g(within)f(a)g(couple)h(of)g(da)o(ys)f(to)h(reinforce)h(what)f(y)o
+(ou)f(ha)o(v)o(e)177 2234 y(read.)177 2310 y(F)m(or)g(b)q(est)i(e\013ect,)g
+(y)o(ou)e(should)g(create)i(a)e(new,)g(temp)q(orary)m(,)f(empt)o(y)h
+(directory)h(in)f(whic)o(h)g(to)h(exp)q(erimen)o(t)f(with)177
+2360 y(F)m(unnelW)m(eb.)21 b(That)15 b(w)o(a)o(y)m(,)f(it)h(will)e(b)q(e)j
+(more)e(ob)o(vious)g(when)i(F)m(unnelW)m(eb)e(creates)j(an)e(output)g
+(\014le.)22 b(Y)m(ou)15 b(can)177 2410 y(either)f(t)o(yp)q(e)f(in)f(the)h
+(examples)e(in)h(this)h(c)o(hapter)g(directly)m(,)f(or)h(cop)o(y)f(and)h
+(paste)g(them)f(from)e(the)k(L)1727 2405 y Fk(a)1746 2410 y
+Fr(T)1769 2422 y(E)1792 2410 y(X)e(source)177 2459 y(\014le)f(for)g(this)h(c)
+o(hapter)g(or)f(the)h(F)m(unnelW)m(eb)f(test)h(suite.)18 b(The)12
+b(source)g(\014le)f(for)g(this)h(c)o(hapter)g(should)f(b)q(e)h(a)o(v)n
+(ailable)177 2509 y(in)i(a)g(\014le)g(suc)o(h)h(as)f Fl(/fwdir/userman/c)o
+(h1.te)o(x)p Fr(.)i(The)e(test)i(suite)e(should)g(b)q(e)h(a)o(v)n(ailable)d
+(in)h(a)h(directory)h(suc)o(h)177 2559 y(as)i Fl(/fwdir/tests/)p
+Fr(.)23 b(The)16 b(test)i(\014les)f(called)f Fl(ex01.fw)f Fr(through)h
+Fl(ex16.fw)f Fr(con)o(tain)h(the)h(examples)f(in)g(this)177
+2609 y(c)o(hapter.)j(The)14 b(test)g(\014les)g(called)f Fl(hi01.fw)f
+Fr(through)h Fl(hi10.fw)f Fr(con)o(tain)h(the)h(examples)f(in)f(the)i(next)g
+(c)o(hapter.)177 2685 y(If)h(y)o(ou)f(do)g(not)h(y)o(et)g(ha)o(v)o(e)g(an)f
+(installed)h(cop)o(y)f(of)h(F)m(unnelW)m(eb,)f(refer)h(to)g(Chapter)h(4)e
+(for)g(full)g(details)h(on)f(ho)o(w)177 2735 y(to)h(obtain)g(and)g(install)f
+(a)h(cop)o(y)g(of)f(F)m(unnelW)m(eb.)22 b(If)15 b(y)o(ou)f(are)i(not)f(sure)h
+(if)f(y)o(ou)f(ha)o(v)o(e)h(an)g(installed)g(cop)o(y)m(,)g(try)177
+2785 y(in)o(v)o(oking)e(F)m(unnelW)m(eb)i(b)o(y)f(giving)g(the)i(command)c
+(\\)p Fl(fw)p Fr(".)20 b(If)15 b(this)g(yields)f(an)h(error)h(suc)o(h)g(as)f
+(\\command)d(not)177 2835 y(found")h(then)i(y)o(ou)e(do)h(not)g(ha)o(v)o(e)g
+(a)f(prop)q(erly)h(installed)g(v)o(ersion)g(of)f(F)m(unnelW)m(eb.)1042
+2940 y(19)p eop
+%%Page: 20 21
+20 20 bop 177 42 a Fi(1.5)70 b(A)23 b(Hello)d(W)-6 b(orld)24
+b(Do)r(cumen)n(t)177 153 y Fr(Just)c(as)f(one)g(starts)i(the)e(pro)q(cess)i
+(of)d(learning)h(a)g(new)g(programming)d(language)i(with)g(a)h(\\Hello)f(W)m
+(orld")177 202 y(program,)c(when)i(learning)e(F)m(unnelW)m(eb,)h(y)o(ou)g
+(can)h(start)g(with)f(a)g(\\Hello)f(W)m(orld")g(do)q(cumen)o(t!)22
+b(And)16 b(here)g(it)177 252 y(is!)k(Edit)14 b(a)g(text)h(\014le)g(called)f
+Fl(hello.fw)e Fr(and)j(put)f(the)h(follo)o(wing)d(text)j(in)f(it.)19
+b(\(Note:)h(The)15 b(second)g(c)o(haracter)177 302 y(is)f(the)g(letter)h
+(\\Oh",)e(not)h(the)h(digit)e(\\Zero"\).)177 402 y Fl(@O@<hello.txt@>@{H)o
+(ello)18 b(World@+@})177 502 y Fr(T)m(o)13 b(\\run")h(this)g(\\program",)d
+(in)o(v)o(ok)o(e)i(F)m(unnelW)m(eb)h(using)f(the)i(\\)p Fl(fw)p
+Fr(")e(command)e(as)j(follo)o(ws.)177 602 y Fl(fw)22 b(hello)177
+701 y Fm(If)c(this)g(c)n(ommand)h(do)n(esn)l('t)f(work,)g(then)h(chanc)n(es)g
+(ar)n(e)f(that)g(F)m(unnelWeb)i(has)e(not)h(b)n(e)n(en)f(instal)r(le)n(d)g
+(on)h(your)177 751 y(machine.)h(R)n(efer)14 b(to)h(Chapter)g(4)g(for)f(ful)r
+(l)g(details)h(on)g(how)g(to)g(obtain)g(and)h(instal)r(l)e(a)h(c)n(opy)g(of)g
+(F)m(unnelWeb.)177 821 y Fr(There)j(should)e(b)q(e)h(no)f(errors.)28
+b(If)16 b(there)h(are,)h(ha)o(v)o(e)e(a)g(lo)q(ok)g(at)g(the)h(listing)e
+(\014le)i Fl(hello.lis)p Fr(,)e(whic)o(h)h(should)177 871 y(con)o(tain)c(an)g
+(explanation)f(of)h(the)g(error,)h(and)f(compare)g(the)h(area)f(in)g(the)h
+(\014le)f(where)h(the)g(error)g(o)q(ccurred)h(with)177 921
+y(the)h(text)f(ab)q(o)o(v)o(e.)k(If)13 b(there)j(are)e(no)g(errors,)g(y)o(ou)
+g(will)e(\014nd)i(that)g(the)h(follo)o(wing)c(t)o(w)o(o)i(\014les)h(ha)o(v)o
+(e)g(b)q(een)h(created.)177 1021 y Fl(hello.lis)64 b(-)21 b(The)g(LISTING)g
+(file.)177 1071 y(hello.txt)64 b(-)21 b(The)g(PRODUCT)g(file.)177
+1170 y Fr(T)m(ak)o(e)14 b(a)h(lo)q(ok)f(at)g Fl(hello.txt)p
+Fr(.)19 b(It)c(should)f(con)o(tain)h(a)f(single)h(line)f(with)g(the)i(text)f
+Fl(Hello)21 b(World)p Fr(.)f(Let's)15 b(tak)o(e)177 1220 y(another)f(lo)q(ok)
+f(at)h(the)h(input)e(\014le.)177 1320 y Fl(@O@<hello.txt@>@{H)o(ello)18
+b(World@+@})177 1420 y Fr(The)f(whole)g(structure)i(of)d(the)h(input)g
+(\014le)g(is)f(con)o(trolled)h(b)o(y)f(\\)p Fl(@)p Fr(",)h(called)f(the)h
+Fo(sp)q(ecial)h(c)o(haracter)p Fr(,)e(whic)o(h)177 1470 y(in)o(tro)q(duces)f
+Fo(sp)q(ecial)g(sequence)p Fr(s.)i(A)d(scanner's-ey)o(e)h(view)f(of)f(the)i
+(command)c(line)i(lo)q(oks)h(lik)o(e)f(this:)177 1570 y Fl(@O)43
+b(@<)h("hello.txt")d(@>)i(@{)g("Hello)21 b(World")42 b(@+)h(@})177
+1669 y Fr(The)11 b Fl(@)f Fr(c)o(haracter)h(con)o(trols)f(ev)o(erything.)17
+b(In)10 b(this)h(\014le)f(w)o(e)g(ha)o(v)o(e)g(six)g(di\013eren)o(t)h(sp)q
+(ecial)f(sequences)j(that)d(together)177 1719 y(form)i(a)i(single)f(macro)g
+(de\014nition.)18 b(The)c Fl(@<)g Fr(and)f Fl(@>)h Fr(delimit)d(the)k(name)e
+(of)g(the)h(macro.)j(The)e Fl(@O)e Fr(signals)g(the)177 1769
+y(start)g(of)f(the)h(macro)e(de\014nition)h(and)g(indicates)h(that)f(the)h
+(macro)e(is)i(to)f(b)q(e)h(connected)h(to)e(a)g(pro)q(duct)i(\014le)e(with)
+177 1819 y(the)j(same)e(name)g(as)h(the)g(macro)f(\(This)h(is)g(is)g(wh)o(y)f
+(w)o(e)i(got)e(a)h(pro)q(duct)h(\014le)f(when)g(w)o(e)g(ran)g(F)m(unnelW)m
+(eb\).)k(The)177 1869 y Fl(@)p Fq(f)e Fr(and)f Fl(@)p Fq(g)h
+Fr(delimit)e(the)i(b)q(o)q(dy)g(of)g(the)g(macro.)23 b(Finally)m(,)14
+b(the)j Fl(@+)e Fr(instructs)j(that)e(an)f(end)i(of)e(line)h(sequence)177
+1918 y(should)e(b)q(e)g(inserted)i(at)d(that)h(p)q(oin)o(t)g(in)f(the)i(pro)q
+(duct)f(\014le.)177 1988 y(If)c(y)o(ou)g(think)f(this)h(syn)o(tax)g(lo)q(oks)
+g(messy)m(,)g(then)g(y)o(ou're)g(righ)o(t.)17 b(It)10 b Fm(is)g
+Fr(messy)m(.)15 b(F)m(unnelW)m(eb)10 b Fm(c)n(ould)g Fr(ha)o(v)o(e)g(emplo)o
+(y)o(ed)177 2038 y(a)k(\\simpler")e(notation)h(in)g(whic)o(h)h(more)f(of)g
+(the)i Fl(@)e Fr(sequences)k(w)o(ere)e(eliminated.)h(F)m(or)d(example:)177
+2138 y Fl(Warning:)20 b(This)h(example)g(is)g(NOT)g(legal)g(FunnelWeb.)177
+2238 y(#hello.txt{Hello)e(World+})177 2338 y Fr(Ho)o(w)o(ev)o(er,)14
+b(if)f(suc)o(h)h(a)f(syn)o(tax)h(w)o(ere)h(used,)f(the)g(user)h(\(y)o(ou!\))j
+(w)o(ould)12 b(ha)o(v)o(e)i(to)f(remem)o(b)q(er)g(that)h Fl(#)f
+Fr(starts)i(a)e(new)177 2387 y(macro.)18 b(Y)m(ou)c(w)o(ould)g(also)f(ha)o(v)
+o(e)i(to)f(remem)o(b)q(er)f(that)i(the)g(c)o(haracters)h Fq(g)e
+Fr(and)g Fl(+)g Fr(cannot)h(b)q(e)g(used)g(in)f(a)g(macro)177
+2437 y(b)q(o)q(dy)j(without)f(a)h(fuss.)27 b(And)17 b(so)g(on.)27
+b(F)m(unnelW)m(eb)16 b(is)h(messier,)g(but)g(pro)o(vides)g(one)g(simple)e
+(rule:)25 b Fm(Nothing)177 2487 y(sp)n(e)n(cial)15 b(happ)n(ens)h(unless)f
+(the)g(sp)n(e)n(cial)f(char)n(acter)h Fl(@)f Fm(app)n(e)n(ars.)177
+2557 y Fr(This)f(means)g(that)g(in)g(F)m(unnelW)m(eb,)g(y)o(ou)g(can)g(lo)q
+(ok)g(at)g(large)g(blo)q(c)o(ks)g(of)g(text)h(in)f(the)h(con\014dence)h(that)
+e(\(unlik)o(e)177 2607 y(for)g(the)g(C)g(pre-pro)q(cessor\))j(there)e(are)f
+(no)g(macro)f(calls)g(hidden)h(in)g(there.)19 b(If)12 b(there)j(w)o(ere,)e
+(there)h(w)o(ould)e(b)q(e)i(an)177 2657 y Fl(@)g Fr(c)o(haracter!)391
+2642 y Fg(1)177 2727 y Fr(Let's)g(tak)o(e)g(another)h(lo)q(ok)e(at)g(the)i
+(hello)e(w)o(orld)g(program.)p 177 2757 709 2 v 223 2783 a
+Ff(1)241 2795 y Fh(The)e(only)g(exception)e(to)i(this)g(rule)f(o)q(ccurs)h
+(where)g(the)f(user)h(has)g(explicitly)e(c)o(hanged)g(the)i(sp)q(ecial)f(c)o
+(haracter)f(using)i(the)g Fe(@=)177 2835 y Fh(sp)q(ecial)f(sequence.)1042
+2940 y Fr(20)p eop
+%%Page: 21 22
+21 21 bop 177 42 a Fl(@O@<hello.txt@>@{H)o(ello)18 b(World@+@})177
+177 y Fr(In)c(its)f(curren)o(t)j(form,)11 b(it)i(consists)i(of)e(a)g(single)g
+(macro)g(de\014nition.)k(This)d(de\014nition,)f(while)g(completely)f(v)n
+(alid)177 226 y(on)i(its)g(o)o(wn,)f(only)g(represen)o(ts)j(half)d(the)i(p)q
+(o)o(w)o(er)f(of)f(F)m(unnelW)m(eb.)k(In)d(fact)g(y)o(ou)g(could)f(sa)o(y)h
+(that)g(it)f(is)h(a)g(\\Hello)177 276 y(Northern)h(Hemisphere)f(Program".)i
+(T)m(o)d(turn)h(it)f(in)o(to)g(a)g(prop)q(er)i(F)m(unnelW)m(eb)e(\\Hello)g(W)
+m(orld")f(program,)g(w)o(e)177 326 y(need)j(to)f(add)f(some)g(do)q(cumen)o
+(tation!)177 408 y(A)k(F)m(unnelW)m(eb)g(input)f(\014le)h(consists)h(of)f(a)f
+(sequence)j(of)e(macro)e(de\014nitions)i(surrounded)h(b)o(y)f(a)g(sea)g(of)g
+(do)q(c-)177 458 y(umen)o(tation)e(whic)o(h)h(is)h(just)g(ordinary)f(text.)26
+b(Mo)q(dify)16 b(y)o(our)g(hello)g(w)o(orld)g(do)q(cumen)o(t)g(so)h(that)f
+(it)h(lo)q(oks)f(lik)o(e)177 508 y(this:)177 643 y Fl(This)21
+b(hello)g(world)g(document)f(was)h(created)f(by)i(-insert)e(your)h(name)g
+(here-.)177 743 y(@O@<hello.txt@>@{H)o(ello)d(World@+@})177
+842 y(It)k(writes)e(out)h(a)h(file)f(called)f(hello.txt)g(containing)g(the)h
+(string)g(``Hello)f(World''.)177 977 y Fr(No)o(w)14 b(run)g(it)f(through)h(F)
+m(unnelW)m(eb,)f(but)h(this)g(time,)e(add)i(a)g Fl(+t)f Fr(to)h(the)g
+(command)d(line.)177 1113 y Fl(fw)22 b(hello)e(+t)177 1248
+y Fr(If)14 b(all)e(go)q(es)j(w)o(ell,)d(y)o(ou)i(should)f(\014nd)h(that)g(y)o
+(ou)g(no)o(w)f(ha)o(v)o(e)177 1383 y Fl(hello.lis)64 b(-)21
+b(A)h(LISTING)151 b(file.)177 1433 y(hello.tex)64 b(-)21 b(A)h(DOCUMENTATION)
+d(file)i(\(in)g(TeX)g(format\).)177 1482 y(hello.txt)64 b(-)21
+b(A)h(PRODUCT)151 b(file.)177 1618 y Fr(T)m(ak)o(e)13 b(a)g(lo)q(ok)g(at)g
+Fl(hello.txt)p Fr(.)j(Y)m(ou)d(will)f(\014nd)i(that)f(it)g(is)g(iden)o(tical)
+g(to)h(the)g Fl(hello.txt)d Fr(of)i(the)h(previous)g(run.)177
+1667 y(Only)g(macro)f(de\014nitions)i(a\013ect)g(the)g(pro)q(duct)g(\014les)g
+(that)f(F)m(unnelW)m(eb)g(pro)q(duces)i(\(as)e(a)g(result)h(of)f
+Fl(@O)g Fr(macro)177 1717 y(de\014nitions\).)23 b(The)16 b(surrounding)f(do)q
+(cumen)o(tation)f(has)i Fm(no)g Fr(e\013ect.)24 b(In)16 b(con)o(trast,)g(the)
+g(new)f(\014le,)h Fl(hello.tex)177 1767 y Fr(\(ha)o(v)o(e)i(a)g(lo)q(ok)e(at)
+i(it)g(no)o(w\))f(whic)o(h)h(w)o(as)g(created)h(as)f(a)g(result)g(of)g(y)o
+(our)f(adding)g(the)i Fl(+t)e Fr(option)g(con)o(tains)h(a)177
+1817 y(fairly)d(full)g(represen)o(tation)j(of)d(the)i(input)f(\014le.)25
+b(Whereas)18 b Fl(hello.txt)c Fr(is)i(the)h Fm(pr)n(o)n(duct)g(\014le)f
+Fr(of)g(F)m(unnelW)m(eb,)177 1867 y Fl(hello.tex)e Fr(is)h(the)i
+Fm(do)n(cumentation)g(\014le)p Fr(.)24 b(T)m(ry)15 b(t)o(yp)q(esetting)h(the)
+h(do)q(cumen)o(tation)d(\014le)i(no)o(w)f(using)g(the)i(T)1895
+1876 y(E)1918 1867 y(X)177 1916 y(t)o(yp)q(esetting)k(program.)36
+b(Then)20 b(prin)o(t)g(it.)37 b(The)21 b(follo)o(wing)c(commands)h(are)j(an)e
+(example)g(of)h(the)h(sort)f(of)177 1966 y(commands)12 b(y)o(ou)h(will)f(ha)o
+(v)o(e)i(to)g(giv)o(e)f(to)h(do)g(this.)177 2101 y Fl(tex)21
+b(hello)392 b(!)21 b(Typeset)g(the)g(documentation.)177 2151
+y(lpr)g(-Pcslw)g(-d)g(hello.dvi)86 b(!)21 b(Print)g(the)g(typeset)f
+(documentation.)177 2286 y Fr(The)14 b(result)g(should)f(b)q(e)g(a)g(single)g
+(page)g(con)o(taining)f(the)i(t)o(w)o(o)e(lines)h(of)g(do)q(cumen)o(tation)f
+(along)g(with)g(a)h(t)o(yp)q(eset)177 2336 y(represen)o(tation)g(of)e(the)i
+(macro.)j(A)o(t)11 b(this)h(p)q(oin)o(t,)f(y)o(ou)g(ha)o(v)o(e)h(exercised)h
+(the)g(t)o(w)o(o)e(main)e(asp)q(ects)14 b(of)d(F)m(unnelW)m(eb.)177
+2386 y(Starting)h(with)g(an)g(input)g(\014le)g(con)o(taining)g(macros)f(\(or)
+h(in)g(this)h(case)g(macro\))e(and)h(do)q(cumen)o(tation,)f(y)o(ou)h(ha)o(v)o
+(e)177 2436 y(successfully)j(generated)g(a)f(pro)q(duct)g(\014le)g(based)g
+(on)g(the)g(macros,)f(and)g(a)h(do)q(cumen)o(tation)e(\014le,)h(based)i(on)e
+(the)177 2486 y(en)o(tire)i(do)q(cumen)o(t.)i(Congratulations!)177
+2568 y(The)11 b(remainder)e(of)g(this)h(tutorial)f(is)h(divided)f(in)o(to)h
+(t)o(w)o(o)f(parts,)i(whic)o(h)f(fo)q(cus)g(on)g(F)m(unnelW)m(eb's)f(macro)g
+(facilities)177 2618 y(and)15 b(its)h(t)o(yp)q(esetting)g(facilities.)22
+b(By)16 b(tradition,)e(the)i(generation)g(of)f(program)f(\014les)h(from)f(a)h
+(literate)h(text)g(is)177 2667 y(called)e Fo(T)l(angling)p
+Fr(,)d(and)j(the)g(generation)g(of)f(t)o(yp)q(eset)j(do)q(cumen)o(tation)c
+(is)i(called)g Fo(W)l(ea)o(ving)p Fr(.)1681 2652 y Fg(2)p 177
+2717 709 2 v 223 2744 a Ff(2)241 2756 y Fh(In)8 b(F)m(unnelW)m(eb,)f(these)h
+(t)o(w)o(o)h(functions)d(are)j(asp)q(ects)e(of)h(a)h(single)e(computer)g
+(program.)12 b(Ho)o(w)o(ev)o(er,)c(in)h(Kn)o(uth's)e(WEB)j(system,)177
+2795 y(the)g(t)o(w)o(o)i(functions)c(are)j(em)o(b)q(o)q(died)d(in)i(t)o(w)o
+(o)i(separate)d(computer)f(programs)g(called)i(T)m(angle)g(and)g(W)m(ea)o(v)o
+(e,)g(presumably)e(b)q(ecause,)177 2835 y(as)j(ev)o(ery)o(one)f(kno)o(ws,)g
+(\\it)h(tak)o(es)g(t)o(w)o(o)g(to)g(T)m(angle".)1042 2940 y
+Fr(21)p eop
+%%Page: 22 23
+22 22 bop 177 42 a Fi(1.6)70 b(Macro)24 b(F)-6 b(aciliti)o(es)177
+154 y Fr(The)13 b(hello)e(w)o(orld)h(program)f(of)g(the)i(previous)g(section)
+g(exercised)h(b)q(oth)f(the)f(macro)g(expansion)g(\(pro)q(duct-\014le\))177
+204 y(asp)q(ect)i(of)e(F)m(unnelW)m(eb,)g(and)h(the)h(t)o(yp)q(esetting)f
+(\(do)q(cumen)o(tation)f(\014le\))h(asp)q(ect)h(of)e(F)m(unnelW)m(eb.)17
+b(This)c(section)177 254 y(con)o(tains)h(an)g(exp)q(osition)g(of)f(the)i
+(macro)e(facilities,)f(and)i(totally)f(ignores)h(the)h(do)q(cumen)o(tation)e
+(side.)19 b(This)14 b(is)177 303 y(partly)e(to)g(increase)h(the)g(fo)q(cus)g
+(of)e(the)i(tutorial,)e(and)h(partly)g(b)q(ecause)i(do)q(cumen)o(tation)d(is)
+h(usually)f(bulky)h(and)177 353 y(w)o(ould)h(tak)o(e)h(to)q(o)g(long)f(for)g
+(the)i(reader)g(to)f(t)o(yp)q(e)g(in)f(to)h(mak)o(e)f(the)h(tutorial)f
+(e\013ectiv)o(e.)177 490 y Fd(1.6.1)55 b(Simple)17 b(Macros)177
+588 y Fr(The)d(original)f(\\Hello)g(W)m(orld")f(program)g(consisted)j(of)e(a)
+h(single)g(macro)e(de\014nition.)177 692 y Fl(@O@<hello.txt@>@{H)o(ello)18
+b(World@+@})177 797 y Fr(In)e(fact,)g(this)g(is)g(a)g(rather)h(exceptional)f
+(macro,)f(as)h(it)g(causes)h(its)f(expansion)g(to)g(b)q(e)h(written)f(to)g(a)
+g(pro)q(duct)177 847 y(\014le.)28 b(The)17 b Fl(@O)g Fr(\(for)g
+Fo(O)p Fr(utput\))h(signals)e(this.)28 b(In)17 b(F)m(unnelW)m(eb,)g(most)f
+(macros)g(are)i(de\014ned)g(using)f Fl(@$)p Fr(.)27 b(This)177
+897 y(results)16 b(in)e(a)g(macro)f(that)i(do)q(es)g(not)f(generate)i(a)e
+(pro)q(duct)h(\014le,)g(but)f(whic)o(h)h(can)f(b)q(e)h(called)g(in)f(other)h
+(macros)177 947 y(\(including)e Fl(@O)h Fr(macros\).)j(Let)d(us)h(expand)f
+(the)g(hello)f(w)o(orld)h(program)e(to)i(include)g(some)f(other)h(macros.)177
+1051 y Fl(@O@<hello.txt@>@{@)o(<Gree)o(tings)o(@>@+@)o(})177
+1151 y(@$@<H@>==@{Hello@})177 1201 y(@$@<W@>==@{World@})177
+1300 y(@$@<Greetings@>==@)o({@<H@)o(>)19 b(@<W@>@})177 1405
+y Fr(T)o(yp)q(e)14 b(in)g(the)g(\014le)g(and)g(run)g(it)g(through)g(F)m
+(unnelW)m(eb)f(using)h(the)g(command:)177 1510 y Fl(fw)22 b(hello)177
+1614 y Fr(The)14 b(pro)q(duct)h(\014le)f(\(result.out\))h(should)e(lo)q(ok)g
+(lik)o(e)g(this:)177 1719 y Fl(Hello)21 b(World)177 1823 y
+Fr(This)16 b(short)h(program)e(illustrates)h(some)g(of)f(the)i(features)h(of)
+d(ordinary)h(macros)g(in)g(F)m(unnelW)m(eb.)24 b(Consider)177
+1873 y(the)15 b Fl(@O)e Fr(macro.)k(Instead)d(of)g(con)o(taining)e(straigh)o
+(t)i(text)h(\(\\Hello)e(W)m(orld"\),)f(it)h(no)o(w)h(con)o(tains)f(the)i
+(macro)e(call)177 1923 y Fl(@<Greetings@>)p Fr(.)20 b(A)c(F)m(unnelW)m(eb)f
+(macro)f(can)h(b)q(e)i(called)e(from)e(within)i(the)h(b)q(o)q(dy)g(of)e
+(another)i(macro)f(just)177 1973 y(b)o(y)f(giving)e(the)j(macro)d(name)h
+(delimited)f(in)i Fl(@<)f Fr(and)h Fl(@>)p Fr(.)177 2044 y(A)o(t)e(the)h(b)q
+(ottom)d(of)i(the)g(\014le)g(is)g(the)h(de\014nition)e(of)h(the)g
+Fl(@<Greetings@>)d Fr(macro.)17 b(The)12 b(de\014nition)g(is)f(similar)f(to)
+177 2094 y(the)k(de\014nition)e(of)g Fl(hello.txt)f Fr(except)j(that)f(it)g
+(starts)h(with)e Fl(@$)g Fr(to)h(indicate)g(that)g(no)f(pro)q(duct)i(\014le)f
+(is)g(desired)177 2144 y(from)f(this)i(macro)f(\(directly\).)18
+b(It)c(also)f(emplo)o(ys)g(the)h(optional)e Fl(==)i Fr(syn)o(tax)g(whic)o(h)f
+(has)h(no)g(seman)o(tic)f(impact,)177 2194 y(but)k(can)f(b)q(e)h(used)g(to)f
+(mak)o(e)f(de\014nitions)h(clearer.)27 b(The)17 b(b)q(o)q(dy)f(of)g(the)g
+Fl(@<Greetings@>)e Fr(macro)h(consists)i(of)177 2244 y(calls)d(to)f(the)i
+Fl(H)e Fr(and)h Fl(W)g Fr(macros)f(whic)o(h)h(are)g(de\014ned)h(immedia)o
+(tely)c(ab)q(o)o(v)o(e.)177 2315 y(Note)k(that)g(the)g(macros)f(are)h(not)g
+(constrained)g(to)g(b)q(e)g(de\014ned)g(in)g(an)o(y)f(particular)g(order.)21
+b(One)16 b(of)e(the)h(main)177 2365 y(features)h(of)e(literate)h(programmi)o
+(ng)d(to)q(ols)i(is)h(that)f(they)i(allo)o(w)d(the)i(di\013eren)o(t)g(parts)h
+(of)e(the)h(text)g(do)q(cumen)o(t)177 2415 y(b)q(eing)f(dev)o(elop)q(ed)h
+(\(usually)e(a)g(computer)h(program\))e(to)i(b)q(e)h(la)o(y)o(ed)e(out)h(in)f
+(an)o(y)h(order.)k(So)c(long)f(as)h(there)h(is)f(a)177 2464
+y(de\014nition)g(somewhere)g(in)f(the)i(input)e(\014le)h(for)g(ev)o(ery)h
+(macro)d(call,)h(F)m(unnelW)m(eb)g(will)g(sort)h(it)f(all)g(out.)177
+2536 y(In)h(fact,)g(F)m(unnelW)m(eb's)g(macro)f(facilit)o(y)f(is)i(v)o(ery)h
+(simple.)i(Unlik)o(e)d(man)o(y)e(macro)h(prepro)q(cessors)k(whic)o(h)d(allo)o
+(w)177 2586 y(macros)d(to)g(de\014ne)i(other)f(macros,)f(F)m(unnelW)m(eb)g
+(completely)f(\014nishes)i(parsing)g(and)f(analysing)f(the)j(macros)d(in)177
+2635 y(the)k(input)e(\014le)h(b)q(efore)g(it)g(starts)h(expanding)e(them)g
+(in)o(to)g(pro)q(duct)i(\014les.)k(Other)c(prepro)q(cessors)h(allo)o(w)d
+(macros)177 2685 y(to)j(b)q(e)h(rede\014ned)g(lik)o(e)f(v)n(ariables)f(\(as)h
+(in,)g(sa)o(y)m(,)f(T)950 2694 y(E)973 2685 y(X\))h(taking)f(on)h(man)o(y)e
+(di\013eren)o(t)j(v)n(alues)f(as)g(the)g(macro)f(pre-)177 2735
+y(pro)q(cessor)f(tra)o(v)o(els)e(through)g(the)g(input)g(\014le.)17
+b(In)10 b(con)o(trast,)i(F)m(unnelW)m(eb)e(has)h(no)g(concept)h(of)e
+(\\di\013eren)o(t)i(times")177 2785 y(and)h(treats)h(the)f(input)f(as)h(one)g
+(h)o(uge)g(static)g(orderless,)h(timeless,)e(collection)g(of)g
+(de\014nitions.)18 b(In)13 b(F)m(unnelW)m(eb,)177 2835 y(there)i(is)f(only)f
+(ev)o(er)i(one)f(time,)e(and)i(so)g(there)h(can)f(only)f(ev)o(er)i(b)q(e)f
+(one)h(v)n(alue/de\014nition)d(for)i(eac)o(h)g(macro.)1042
+2940 y(22)p eop
+%%Page: 23 24
+23 23 bop 177 42 a Fd(1.6.2)55 b(Num)n(b)r(er)17 b(of)i(Times)e(Called)177
+140 y Fr(So)e(far)g(w)o(e)g(ha)o(v)o(e)g(seen)i(only)d(tin)o(y)m(,)g
+(degenerate)j(input)e(\014les.)22 b(The)16 b(next)g(example)e(mo)o(v)o(es)f
+(up)j(to)f(the)h(lev)o(el)e(of)177 190 y(\\trivial",)c(but)h(starts)i(to)e
+(con)o(v)o(ey)g(the)h(\015a)o(v)o(our)f(of)g(the)h(w)o(a)o(y)f(F)m(unnelW)m
+(eb)f(can)i(b)q(e)g(used)g(in)f(practice.)18 b(Normally)m(,)177
+240 y(there)f(w)o(ould)d(b)q(e)i(do)q(cumen)o(tation)e(text)i(app)q(earing)f
+(b)q(et)o(w)o(een)i(the)f(macros,)e(but)i(this)f(has)g(b)q(een)i(omitted)d
+(so)177 289 y(as)i(to)f(k)o(eep)i(the)f(fo)q(cus)g(on)g(the)g(macros)f
+(themselv)o(es.)23 b(Although)15 b(the)i(next)f(example)e(is)i(m)o(uc)o(h)e
+(longer)i(than)177 339 y(the)h(previous)g(example,)f(the)h(only)f(new)h
+(construct)h(is)e Fl(@-)h Fr(whic)o(h)f(can)h(app)q(ear)g(only)f(at)g(the)h
+(end)g(of)f(a)h(line,)177 389 y(and)d(suppresses)j(it,)c(prev)o(en)o(ting)h
+(it)g(from)e(app)q(earing)i(in)g(the)g(text.)19 b(The)c Fl(@-)e
+Fr(construct)j(allo)o(ws)c(the)j(text)g(of)e(a)177 439 y(macro)g(to)g(b)q(e)h
+(aligned)f(at)h(the)g(left)g(margin,)d(rather)j(than)g(ha)o(ving)e(the)j
+(\014rst)f(line)f(hanging)g(at)h(the)g(end)g(of)f(the)177 489
+y Fl(@)p Fq(f)p Fr(.)20 b(F)m(unnelW)m(eb)14 b(could)h(ha)o(v)o(e)f(b)q(een)i
+(set)g(up)f(so)f(that)h(this)g(end)g(of)f(line)g(mark)o(er)g(w)o(as)h
+(suppressed.)23 b(Ho)o(w)o(ev)o(er,)177 538 y(it)14 b(w)o(ould)g(ha)o(v)o(e)g
+(b)q(een)i(a)e(sp)q(ecial)h(case)g(that)f(w)o(ould)g(ha)o(v)o(e)g(brok)o(en)h
+(the)g(v)o(ery)g(memorable)d(rule)i(\\the)h(text)g(of)f(a)177
+588 y(macro)f(is)h(the)g(text)h(app)q(earing)e(b)q(et)o(w)o(een)i(the)g
+Fl(@)p Fq(f)e Fr(and)h Fl(@)p Fq(g)p Fr(".)177 660 y(T)o(yp)q(e)i(the)g
+(follo)o(wing)e(text)i(in)o(to)f(the)h(\014le)g Fl(hello.fw)e
+Fr(and)h(run)h(it)f(through)h(F)m(unnelW)m(eb.)23 b(The)16
+b(\014le)g(con)o(tains)177 710 y(some)9 b(in)o(ten)o(tional)g(errors)j(so)e
+(b)q(e)h(sure)g(to)f(t)o(yp)q(e)g(it)g(in)g(exactly)g(and)g(w)o(orry)g(only)g
+(if)f(F)m(unnelW)m(eb)g Fm(do)n(esn)l('t)h Fr(generate)177
+759 y(some)j(errors.)177 865 y Fl(@O@<hello.c@>==@{@)o(-)177
+914 y(@<Include)20 b(Files@>)177 964 y(@<Include)g(Files@>)177
+1014 y(@<Main)h(Program@>)177 1064 y(@})177 1163 y(@$@<Main)f
+(Program@>==@{@-)177 1213 y(main\(\))177 1263 y({)199 1313
+y(doit\(\);)177 1363 y(})177 1413 y(@})177 1512 y(@$@<Subroutine@>==)o(@{@-)
+177 1562 y(void)h(doit\(\))177 1612 y({)199 1662 y(int)g(i;)199
+1711 y(for)g(\(i=0;i<10;i++\))243 1761 y({)264 1811 y(@<Print@>)264
+1861 y(@<Print@>)243 1911 y(})177 1960 y(}@})177 2060 y(@$@<Print@>==@{@-)177
+2110 y(printf\("Hello)e(World!"\);)177 2160 y(printf\("\\n"\);@})177
+2259 y(@$@<Scan@>==@{scan)o(f@})177 2359 y(@$@<Include)h(Files@>==@{@-)177
+2409 y(#include)g(<stdio.h>)177 2459 y(#include)g(<stdlib.h>@})177
+2564 y Fr(What)14 b(happ)q(ened?)21 b(W)m(ell,)13 b(if)g(y)o(ou)h(ha)o(v)o
+(en't)g(t)o(yp)q(ed)i(the)f(\014le)f(in)g(prop)q(erly)m(,)g(y)o(ou)g(ma)o(y)f
+(get)h(some)g(miscellaneous)177 2614 y(syn)o(tax)e(errors.)18
+b(Fix)12 b(these)h(b)q(efore)f(con)o(tin)o(uing.)k(If)c(the)g(\014le)g(has)g
+(b)q(een)g(correctly)h(t)o(yp)q(ed,)f(y)o(ou)g(should)f(b)q(e)h(faced)177
+2663 y(with)i(some)f(error)i(messages)f(to)f(do)h(with)f(the)i(n)o(um)o(b)q
+(er)e(of)g(times)g(some)g(of)h(the)g(macros)f(are)h(called.)177
+2735 y(By)h(default,)f(F)m(unnelW)m(eb)g(insists)h(that)g(eac)o(h)g(macro)e
+(de\014ned)j(is)e(in)o(v)o(ok)o(ed)g(exactly)h(once.)21 b(Ho)o(w)o(ev)o(er,)
+15 b(the)g(\014le)177 2785 y(ab)q(o)o(v)o(e)h(de\014nes)i(macros)d(that)h
+(are)h(used)g(more)e(than)h(once)h(and)f(a)g(macro)f(that)i(is)f(not)g(used)h
+(at)f(all.)24 b(Let)16 b(us)177 2835 y(examine)d(the)h(errors.)1042
+2940 y(23)p eop
+%%Page: 24 25
+24 24 bop 177 42 a Fr(First,)15 b(w)o(e)g(see)h(that)e(F)m(unnelW)m(eb)g(has)
+h(alerted)g(us)g(to)g(the)g(fact)g(that)f(the)i Fl(Include)k(Files)13
+b Fr(macro)h(has)h(b)q(een)177 91 y(called)d(t)o(wice.)18 b(Once)c(alerted)f
+(to)g(this,)f(a)g(quic)o(k)h(lo)q(ok)e(at)i(the)g(program)e(con)o(vinces)i
+(us)g(that)g(calling)e(the)i(macro)177 141 y(t)o(wice)h(is)g(a)g(mistak)o(e,)
+e(and)h(that)h(one)g(of)g(the)g(calls)g(should)f(b)q(e)i(eliminated.)177
+217 y(Second,)d(w)o(e)e(note)h(that)f(F)m(unnelW)m(eb)g(has)h(alerted)g(us)g
+(to)f(the)h(fact)f(that)h(the)g Fl(@<subroutine@>)c Fr(macro)j(is)g(nev)o(er)
+177 267 y(called.)18 b(Again,)12 b(a)h(quic)o(k)g(lo)q(ok)g(at)g(the)h
+(program)e(tells)h(us)h(that)f(this)h(is)f(a)g(mistak)o(e)f(\(and)h(a)g(v)o
+(ery)h(common)d(one)177 317 y(in)k(the)h(use)h(of)e(F)m(unnelW)m(eb\),)g(and)
+g(that)h(a)f(call)g(to)g(the)h Fl(@<subroutine@>)d Fr(macro)h(should)i(b)q(e)
+g(inserted)h(just)177 367 y(ab)q(o)o(v)o(e)d(the)g(call)f(to)h(the)h
+Fl(@<Main)20 b(Program@>)12 b Fr(macro)h(in)g(the)i(de\014nition)e(of)g
+Fl(@<hello.c@>)p Fr(.)177 443 y(These)g(t)o(w)o(o)f(cases)h(demonstrate)f(wh)
+o(y)g(these)h(c)o(hec)o(ks)h(ha)o(v)o(e)d(b)q(een)i(placed)g(in)e(F)m(unnelW)
+m(eb.)17 b(It)12 b(is)g(nearly)g(alw)o(a)o(ys)177 492 y(acceptable)k(for)f(a)
+f(macro)g(to)h(b)q(e)g(called)g(once.)22 b(Ho)o(w)o(ev)o(er,)15
+b(if)f(a)h(macro)f(is)g(not)h(called)g(at)g(all,)e(or)i(called)g(more)177
+542 y(than)f(once,)g(this)g(is)g(often)g(a)f(sign)h(that)g(the)g(user)h(has)f
+(made)f(a)h(mistak)o(e.)177 618 y(These)19 b(c)o(hec)o(ks)g(ha)o(v)o(e)e(a)g
+(dark)g(side)h(to)q(o.)28 b(In)18 b(addition)e(to)h(the)h(errors)h(men)o
+(tioned)d(ab)q(o)o(v)o(e,)i(F)m(unnelW)m(eb)f(has)177 668 y(generated)e(t)o
+(w)o(o)f(similar)d(errors)k(that)f(do)g(not)g(help)g(us.)177
+744 y(First,)h(w)o(e)f(are)h(alerted)g(to)f(the)h(fact)f(that)h(the)g
+Fl(@<print@>)d Fr(macro)h(has)i(b)q(een)g(called)f(t)o(wice.)20
+b(Clearly)m(,)13 b(in)h(this)177 794 y(case,)h(this)f(is)f(not)h(a)g
+(problem,)e(and)h(so)h(here)h(F)m(unnelW)m(eb's)f(fussiness)h(is)f(a)f(n)o
+(uisance.)177 870 y(Second,)22 b(w)o(e)e(are)g(alerted)g(to)g(the)g(fact)g
+(that)g(the)g Fl(@<scan@>)e Fr(macro)h(has)h(nev)o(er)g(b)q(een)h(called.)36
+b(Lik)o(e)19 b(the)177 920 y Fl(@<print@>)e Fr(macro,)h(this)g(macro)f(w)o
+(as)i(de\014ned)g(as)g(a)f(notational)f(con)o(v)o(enience,)j(and)e(clearly)h
+(it)f(do)q(es)h(not)177 969 y(matter)13 b(here)i(if)e(it)h(is)g(not)g(used.)k
+(Again,)13 b(F)m(unnelW)m(eb)g(is)h(b)q(eing)g(a)g(n)o(uisance.)177
+1045 y(The)19 b(four)f(cases)i(ab)q(o)o(v)o(e)e(demonstrate)h(the)g(ligh)o(t)
+e(and)h(dark)h(side)f(of)g(F)m(unnelW)m(eb's)g(insistence)i(that)e(eac)o(h)
+177 1095 y(macro)10 b(b)q(e)i(called)f(exactly)h(once.)17 b(T)m(o)11
+b(resolv)o(e)h(the)g(con\015ict)f(without)g(reducing)h(the)g(strength)g(of)f
+(the)h(c)o(hec)o(king,)177 1145 y(F)m(unnelW)m(eb)i(pro)o(vides)g(t)o(w)o(o)f
+(sp)q(ecial)h(sequences)j Fl(@Z)c Fr(\(for)h Fo(Z)p Fr(ero\))h(and)e
+Fl(@M)h Fr(\(for)g Fo(M)p Fr(an)o(y\))f(that)h(can)h(b)q(e)f(attac)o(hed)177
+1195 y(to)h(macro)e(de\014nitions.)20 b(Presence)e(of)c(the)h
+Fl(@Z)f Fr(tag)g(allo)o(ws)g(the)h(designated)g(macro)f(to)g(b)q(e)h(called)g
+(zero)g(times.)177 1245 y(Presence)j(of)c(the)i Fl(@M)e Fr(tag)h(allo)o(ws)e
+(the)j(designated)f(macro)f(to)h(b)q(e)g(called)g(more)f(than)h(once.)21
+b(A)15 b(single)g(macro)177 1294 y(ma)o(y)d(carry)j(b)q(oth)f(tags.)k(It)c
+(is)f(alw)o(a)o(ys)g(true)i(that)f(all)e(macros)i(are)g(allo)o(w)o(ed)e(to)i
+(b)q(e)h(called)e(exactly)h(once.)177 1370 y(Here)20 b(is)e(the)h(revised)g
+(program)e(with)h(the)h(errors)g(\014xed,)h(b)o(y)e(eliminating)d(or)k
+(adding)e(macro)g(calls,)i(or)f(b)o(y)177 1420 y(adding)13
+b(tags.)18 b(T)m(ry)c(pro)q(cessing)h(the)f(\014le)g(no)o(w.)k(There)d
+(should)f(b)q(e)g(no)g(errors.)177 1540 y Fl(@O@<hello.c@>==@{@)o(-)177
+1589 y(@<Include)20 b(Files@>)177 1639 y(@<Function@>)177 1689
+y(@<Main)h(Program@>)177 1739 y(@})177 1838 y(@$@<Main)f(Program@>==@{@-)177
+1888 y(main\(\))177 1938 y({)199 1988 y(doit\(\);)177 2038
+y(})177 2087 y(@})177 2187 y(@$@<Function@>==@{)o(@-)177 2237
+y(void)h(doit\(\))177 2287 y({)199 2337 y(int)g(i;)199 2386
+y(for)g(\(i=0;i<10;i++\))243 2436 y({)264 2486 y(@<Print@>)264
+2536 y(@<Print@>)243 2586 y(})177 2635 y(}@})177 2735 y(@$@<Print@>@M==@{@)o
+(-)177 2785 y(printf\("Hello)e(World!"\);)177 2835 y(printf\("\\n"\);@})1042
+2940 y Fr(24)p eop
+%%Page: 25 26
+25 25 bop 177 91 a Fl(@$@<Scan@>@Z==@{sc)o(anf@})177 191 y(@$@<Include)20
+b(Files@>==@{@-)177 241 y(#include)g(<stdio.h>)177 291 y(#include)g
+(<stdlib.h>@})177 450 y Fd(1.6.3)55 b(Inden)n(tation)177 560
+y Fr(The)14 b(b)q(o)q(dy)g(of)f(the)i Fl(print)d Fr(macro)h(of)g(the)h
+(previous)g(example)f(con)o(tains)g(t)o(w)o(o)g(lines)h(of)f(text.)19
+b(A)14 b(literal)e(substi-)177 610 y(tution)i(of)f(this)h(macro's)e(b)q(o)q
+(dy)i(in)g(its)g(con)o(text)g(w)o(ould)f(result)i(in:)243 741
+y Fl({)264 791 y(printf\("Hello)k(World!"\);)177 841 y(printf\("\\n"\);)264
+891 y(printf\("Hello)g(World!"\);)177 941 y(printf\("\\n"\);)243
+990 y(})177 1121 y Fr(But)c(instead,)e(it)h(comes)f(out)h(as)g(\(ha)o(v)o(e)g
+(a)g(lo)q(ok)e(at)i(this)g(part)g(of)f Fl(hello.c)g Fr(no)o(w\):)243
+1252 y Fl({)264 1302 y(printf\("Hello)19 b(World!"\);)264 1352
+y(printf\("\\n"\);)264 1402 y(printf\("Hello)g(World!"\);)264
+1452 y(printf\("\\n"\);)243 1502 y(})177 1633 y Fr(The)12 b(explanation)e(is)
+g(that)h(F)m(unnelW)m(eb)g(inden)o(ts)g(eac)o(h)h(line)e(of)h(m)o(ultili)o
+(ne)e(macros)h(b)o(y)h(the)g(lev)o(el)g(of)f(inden)o(tation)177
+1682 y(at)i(the)h(p)q(oin)o(t)e(of)g(call.)17 b(This)12 b(means)f(that,)h(as)
+g(in)f(the)i(case)g(ab)q(o)o(v)o(e,)e(program)g(texts,)i(whic)o(h)e(are)i
+(usually)e(highly)177 1732 y(inden)o(ted,)j(come)f(out)h(lo)q(oking)e(\\righ)
+o(t".)177 1813 y(In)i(other)h(circumstances,)g(where)g(the)g(mo)q(del)e(of)g
+(the)i(text)g(is)f(one)g(dimensional,)e(F)m(unnelW)m(eb's)h(inden)o(tation)
+177 1863 y(could)g(b)q(ecome)h(an)f(imp)q(edimen)o(t)e(or)i(ev)o(en)i(a)e
+(danger.)18 b(In)13 b(these)i(cases,)g(it)e(can)h(b)q(e)g(switc)o(hed)g
+(o\013)g(b)o(y)f(including)177 1912 y(the)i(F)m(unnelW)m(eb)e
+Fo(pragma)g Fr(line)177 2044 y Fl(@p)22 b(indentation)d(=)j(none)177
+2175 y Fr(an)o(ywhere)15 b(in)e(the)i(input)e(\014le.)177 2255
+y(One)19 b(of)f(the)h(design)f(goals)g(of)f(F)m(unnelW)m(eb)h(is)g(to)g(allo)
+o(w)f(the)i(user)g(total)f(con)o(trol)g(o)o(v)o(er)g(the)h(pro)q(duct)g
+(\014les.)177 2305 y(This)13 b(con)o(trasts)h(with)f(the)h(approac)o(h)f(of)g
+(Kn)o(uth's)g(WEB)g(system)g Fo([Kn)o(uth83])f Fr(\(up)q(on)h(whic)o(h)g(F)m
+(unnelW)m(eb)g(is)177 2355 y(based\),)18 b(whic)o(h)e(mangles)f(the)i(input)f
+(text)h(at)f(the)h(P)o(ascal)g(program)d(syn)o(tax)j(lev)o(el,)f(truncating)h
+(iden)o(ti\014ers,)177 2405 y(con)o(v)o(erting)e(the)g(text)g(to)f(upp)q(er)i
+(case,)f(and)f(paragraphing)g(text.)20 b(Here)c(is)e(an)g(example)f(of)h
+(part)h(of)f(a)g(P)o(ascal)177 2455 y(program)e(pro)q(duced)k(b)o(y)d(WEB)h
+(\(from)f(page)h(14)f(of)g Fo([Kn)o(uth83])p Fr(\):)177 2586
+y Fl(IF)22 b(R=0)f(THEN)g(XREF[P]:=XREFPTR)d(ELSE)j(XMEM[R].XLINKFIELD)o
+(:=XRE)o(FPTR;)o(END;{)o(:51})177 2635 y({58:}FUNCTION)e
+(IDLOOKUP\(T:EIGHTBIT)o(S\):NA)o(MEPO)o(INTER)o(;LABE)o(L)g(31;)177
+2685 y(VAR)i(I:0..LONGBUFSIZE;H:)o(0..HA)o(SHSIZ)o(E;K:0)o(..MA)o(XBYTE)o
+(S;W:0)o(..1;)177 2735 y(L:0..LONGBUFSIZE;P)o(:NAME)o(POINT)o(ER;BE)o(GIN)e
+(L:=IDLOC-IDFIRS)o(T;{59)o(:})177 2785 y(H:=BUFFER[IDFIRST])o(;I=ID)o(FIRST)o
+(+1;)177 2835 y(WHILE)i(I<IDLOC)f(DO)i(BEGIN)e(H:=\(H+H+BUFFER[I]\)M)o(OD)f
+(HASHSIZE;I=I+1;EN)o(D{:59)o(};)1042 2940 y Fr(25)p eop
+%%Page: 26 27
+26 26 bop 177 42 a Fr(Kn)o(uth's)13 b(theory)g(is)f(that)g(the)h(program)e
+(generated)i(b)o(y)f(a)g(literate)h(programmi)o(ng)c(system)k(should)f(b)q(e)
+h(treated)177 91 y(as)20 b(ob)r(ject)h(co)q(de)g(and)f(hence)h(should)f(lo)q
+(ok)f(lik)o(e)g(ob)r(ject)i(co)q(de)f(to)q(o.)36 b(While)20
+b(this)g(ma)o(y)e(b)q(e)i(an)g(admirable)177 141 y(approac)o(h)d(in)g(the)h
+(long)f(run,)h(the)f(presen)o(t)i(programming)14 b(en)o(vironmen)o(t)i(is)h
+(one)h(of)f(fault)o(y)f(compilers)g(and)177 191 y(buggy)c(to)q(ols.)18
+b(The)13 b(F)m(unnelW)m(eb)f(view)h(is)g(that,)f(in)g(this)h(en)o(vironmen)o
+(t,)f(the)h(programmer)e(needs)j(all)d(the)j(help)177 241 y(he)j(can)g(get)g
+(and)f(that)h(therefore)h(he)f(should)f(b)q(e)h(allo)o(w)o(ed)f(total)f(con)o
+(trol)i(o)o(v)o(er)f(the)h(pro)q(duct)h(\014le.)26 b(Another)177
+291 y(reason)12 b(for)g(F)m(unnelW)m(eb's)f(pro)o(viding)f(total)h(con)o
+(trol)g(o)o(v)o(er)h(the)g(pro)q(duct)h(\014le,)e(is)h(that)g(F)m(unnelW)m
+(eb)f(is)g(in)o(tended)177 340 y(to)17 b(b)q(e)i(target)e(language)g(indep)q
+(enden)o(t,)i(and)e(so)h(ev)o(en)g(if)f(Kn)o(uth's)g(view)h(w)o(ere)g
+(adopted,)g(it)f(w)o(ould)g(not)g(b)q(e)177 390 y(clear)d(what)g(a)g
+(legitimate)e(transformation)g(of)h(the)h(text)h(could)e(b)q(e.)177
+529 y Fd(1.6.4)55 b(Additiv)n(e)18 b(Macros)177 629 y Fr(Sometimes)c(it)i(is)
+h(con)o(v)o(enien)o(t)f(to)h(build)e(up)i(the)g(de\014nition)f(of)f(a)h
+(macro)g(in)f(stages)j(throughout)e(the)h(input)177 679 y(\014le.)h(In)13
+b(F)m(unnelW)m(eb,)g(this)g(can)g(b)q(e)h(done)g(using)f(an)g
+Fo(additiv)o(e)f(macro)p Fr(.)17 b(An)d(additiv)o(e)e(macro)g(is)h(iden)o
+(tical)g(to)177 728 y(an)h(ordinary)f(macro)g(except)i(that)228
+839 y(1.)20 b(It)14 b(has)g Fl(+=)f Fr(instead)i(of)e Fl(==)p
+Fr(.)228 920 y(2.)20 b(It)13 b(can)g(b)q(e)g(de\014ned)h(in)e(one)h(or)f
+(more)g(parts)h(throughout)g(the)g(input)g(\014le.)k(The)c(de\014nition)g(of)
+f(the)h(macro)281 970 y(is)h(the)g(concatenation)g(of)g(all)e(the)j(parts)f
+(in)g(the)g(order)h(in)e(whic)o(h)h(they)g(app)q(ear.)177 1080
+y(The)f(follo)o(wing)c(example)h(sho)o(ws)j(ho)o(w)e(additiv)o(e)g(macros)g
+(can)h(b)q(e)h(used)g(to)f(scatter)h(and)f(regroup)g(information,)177
+1130 y(in)k(this)h(case)g(assisting)g(in)f(the)h(lucid)f(construction)h(of)f
+(a)g(data)g(abstraction)h(in)f(a)g(language)g(\(P)o(ascal\))h(that)177
+1180 y(do)q(es)e(not)f(supp)q(ort)g(them)f(explicitly)m(.)177
+1290 y Fl(@!****************)o(*****)o(*****)o(****)177 1390
+y(@O@<prog.pas@>==@{)o(@-)177 1440 y(program)21 b(adt\(input,outpu)o(t\);)177
+1490 y(@<Types@>)177 1540 y(@<Variables@>)177 1589 y(@<Procedures@>)177
+1639 y(begin)g(startproc;)f(end.)177 1689 y(@})177 1789 y(@!****************)
+o(*****)o(*****)o(****)177 1888 y(@$@<Types@>+=@{@-)177 1938
+y(type)h(buffer_type)f(=)243 1988 y(record)243 2038 y(length)g(:)i(integer;)
+243 2087 y(buf)f(:)g(array[1..100])e(of)j(char;)243 2137 y(end;)177
+2187 y(@})177 2287 y(@$@<Variables@>+=@)o({@-)177 2337 y(bigbuf)f(:)g
+(buffer_type;)177 2386 y(@})177 2486 y(@$@<Procedures@>+=)o(@{@-)177
+2536 y(procedure)f(buf_init)g(\(var)h(b)h(:)f(buffer_type)325
+b(\))22 b({Body)e(of)i(buf_init})177 2586 y(procedure)e(buf_add)42
+b(\(var)21 b(b)h(:)f(buffer_type;)107 b(ch)21 b(:)h(char\))f({Body)f(of)i
+(buf_add})177 2635 y(procedure)e(buf_get)42 b(\(var)21 b(b)h(:)f
+(buffer_type;)f(var)h(ch)g(:)h(char\))f({Body)f(of)i(buf_get})177
+2685 y(@})177 2785 y(@!****************)o(*****)o(*****)o(****)1042
+2940 y Fr(26)p eop
+%%Page: 27 28
+27 27 bop 177 42 a Fl(@$@<Types@>+=@{@-)177 91 y(type)21 b(complex_type)e(=)j
+(record)f(r,i)g(:)g(real;)g(end;)177 141 y(@})177 241 y(@$@<Procedures@>+=)o
+(@{@-)177 291 y(procedure)f(cm_set)h(\(var)g(c:)g(complex_type;)e(a,b:)i
+(real\))195 b({Body)21 b(of)g(cm_set})177 340 y(procedure)f(cm_add)h(\(a,b:)f
+(complex_type;)g(var)h(c:)g(complex_type\))e({Body)i(of)g(cm_add})177
+390 y({Other)g(procedures)e(and)j(functions})177 440 y(@})177
+540 y(@!****************)o(*****)o(*****)o(****)177 639 y({...more)e(pieces)h
+(of)g(program...})177 739 y(@!****************)o(*****)o(*****)o(****)177
+853 y Fr(It)d(is)f(imp)q(ortan)o(t)f(to)h(remem)o(b)q(er)g(that)g(the)h
+(de\014nition)f(of)g(eac)o(h)h(macro)e(do)q(es)j(not)e(c)o(hange)h
+(throughout)f(the)177 903 y(input)c(\014le.)18 b(F)m(unnelW)m(eb)13
+b(parses)i(the)f(en)o(tire)g(input)f(\014le)h(and)f(assem)o(bles)g(all)f(the)
+i(macro)f(de\014nitions)g(b)q(efore)h(it)177 953 y(ev)o(en)h(starts)g(to)f
+(expand)h(macros.)j(As)d(a)f(result,)h(eac)o(h)f(additiv)o(e)g(macro)f(can)h
+(only)g(ha)o(v)o(e)g(one)g(de\014nition,)g(and)177 1003 y(that)g
+(de\014nition)g(is)f(the)i(concatenation)f(of)f(all)g(its)h(parts.)177
+1077 y(The)19 b(example)d(ab)q(o)o(v)o(e)i(sho)o(ws)g(ho)o(w)g(additiv)o(e)f
+(macros)g(can)h(b)q(e)h(used)g(to)e(rearrange)i(the)g(presen)o(tation)g(of)e
+(a)177 1126 y(computer)h(program)e(in)i(the)g(order)h(in)e(whic)o(h)h(the)g
+(user)h(wishes)g(to)f(discuss)h(it)e(rather)i(than)f(the)h(order)f(in)177
+1176 y(whic)o(h)h(the)h(compiler)d(requires)j(that)f(it)g(b)q(e)g(consumed.)
+33 b(It)19 b(is)g(easy)m(,)h(ho)o(w)o(ev)o(er,)g(to)f(abuse)g(the)h(feature)f
+(of)177 1226 y(additiv)o(e)c(macros.)24 b(In)15 b(man)o(y)f(cases,)k(the)e
+(same)f(e\013ect)j(can)e(b)q(e)h(obtained)e(more)g(clearly)h(b)o(y)g
+(replacing)f(eac)o(h)177 1276 y(part)d(of)e(an)h(additiv)o(e)g(macro)f
+(in-situ)h(using)g(uniquely)f(named)g(non-additiv)o(e)h(macros,)f(and)h(then)
+h(collect)g(them)177 1326 y(together)j(as)e(a)h(group)f(at)h(the)g(p)q(oin)o
+(t)f(where)i(the)f(additiv)o(e)f(macro)f(is)h(called.)18 b(Doing)12
+b(this)i(is)f(more)g(w)o(ork,)g(and)177 1376 y(is)i(more)e(error)j(prone,)e
+(but)h(can)g(result)g(in)f(a)h(clearer)g(exp)q(osition.)20
+b(The)15 b(follo)o(wing)d(program)h(illustrates)i(this)177
+1425 y(alternativ)o(e)f(approac)o(h.)177 1540 y Fl(@!****************)o
+(*****)o(*****)o(****)177 1639 y(@O@<prog.pas@>==@{)o(@-)177
+1689 y(program)21 b(adt\(input,outpu)o(t\);)177 1739 y(@<Types@>)177
+1789 y(@<Variables@>)177 1838 y(@<Procedures@>)177 1888 y(begin)g(startproc;)
+f(end.)177 1938 y(@})177 2038 y(@$@<Types@>==@{@-)177 2087
+y(@<Buffer)g(type@>)177 2137 y(@<Complex)g(type@>)177 2187
+y(@})177 2287 y(@$@<Variables@>==@)o({@-)177 2337 y(@<Buffer)g(variable@>)177
+2386 y(@})177 2486 y(@$@<Procedures@>==)o(@{@-)177 2536 y(@<Buffer)g
+(procedures@>)177 2586 y(@<Complex)g(procedures@>)177 2635
+y(@})177 2735 y(@!****************)o(*****)o(*****)o(****)177
+2835 y(@$@<Buffer)g(type@>==@{@-)1042 2940 y Fr(27)p eop
+%%Page: 28 29
+28 28 bop 177 42 a Fl(type)21 b(buffer_type)f(=)h(record)591
+91 y(length)g(:)g(integer;)591 141 y(buf)g(:)h(array[1..100])d(of)i(char;)591
+191 y(end;)177 241 y(@})177 340 y(@$@<Buffer)f(variable@>==@{@-)177
+390 y(bigbuf)h(:)g(buffer_type;)177 440 y(@})177 540 y(@$@<Buffer)f
+(procedures@>==@{@)o(-)177 589 y(procedure)g(buf_init\(var)f(b)j(:)g
+(buffer_type\))d({Body)i(of)g(buf_init})177 639 y(procedure)f(buf_add\(var)g
+(b)h(:)h(buffer_type;)d(ch)i(:)h(char\))f({Body)g(of)g(buf_add})177
+689 y(procedure)f(buf_get\(var)g(b)h(:)h(buffer_type;)d(var)i(ch)h(:)f
+(char\))g({Body)g(of)g(buf_get})177 739 y(@})177 839 y(@!****************)o
+(*****)o(*****)o(****)177 938 y(@$@<Complex)f(type@>==@{@-)177
+988 y(type)h(complex_type)e(=)j(record)f(r,i)g(:)g(real;)g(end;)177
+1038 y(@})177 1137 y(@$@<Complex)f(procedures@>+=@{)o(@-)177
+1187 y(procedure)g(cm_set\(var)g(c:)h(complex_type;)e(a,b)i(:)h(real\))43
+b({Body)20 b(of)i(cm_set})177 1237 y(procedure)e(cm_add\(a,b)g(:)h
+(complex_type;)f(var)h(c:)g(complex_type\))e({Body)i(of)g(cm_add})177
+1287 y({Other)g(procedures)e(and)j(functions})177 1337 y(@})177
+1436 y(@!****************)o(*****)o(*****)o(****)177 1536 y({...more)e
+(pieces)h(of)g(program...})177 1636 y(@!****************)o(*****)o(*****)o
+(****)177 1745 y Fr(One)16 b(of)e(adv)n(an)o(tages)g(of)g(F)m(unnelW)m(eb)g
+(\(and)h(literate)g(programmi)o(ng)d(in)i(general\))h(is)g(that)f(\(as)h(sho)
+o(wn)g(ab)q(o)o(v)o(e\))177 1794 y(it)d(allo)o(ws)f(the)i(user)g(to)f(la)o(y)
+f(out)h(the)h(program)e(in)g(whatev)o(er)i(order)g(is)f(desired)i(with)d
+(near)i(total)f(indep)q(endence)177 1844 y(from)g(the)j(ordering)f
+(requiremen)o(ts)g(of)f(the)i(target)f(programming)c(language.)177
+1917 y(Additiv)o(e)15 b(macros)f(are)h(allo)o(w)o(ed)f(to)h(b)q(e)h(tagged)f
+(with)f Fl(@Z)h Fr(and)g Fl(@M)g Fr(just)g(as)g(other)h(macros)e(can,)h(but)g
+(the)h(tags)177 1967 y(m)o(ust)9 b(app)q(ear)i(only)e(on)h(the)h(\014rst)g
+(de\014nition)f(of)g(the)g(macro.)16 b(Additiv)o(e)10 b(macros)f(cannot)i(b)q
+(e)f(connected)i(directly)177 2017 y(to)i(pro)q(duct)h(\014les.)177
+2155 y Fd(1.6.5)55 b(P)n(arameterized)17 b(Macros)177 2254
+y Fr(No)c(self-resp)q(ecting)i(macro)d(prepro)q(cessor)k(w)o(ould)c(b)q(e)i
+(complete)e(without)h(some)f(form)g(of)g(macro)g(parameter-)177
+2304 y(ization,)h(and)h(F)m(unnelW)m(eb)g(is)g(no)g(exception.)20
+b(F)m(unnelW)m(eb)14 b(allo)o(ws)f(eac)o(h)i(macro)e(to)h(ha)o(v)o(e)g(from)e
+(zero)k(to)e(nine)177 2354 y(formal)e(parameters)i(named)e
+Fl(@1)p Fr(,)h Fl(@2)p Fr(,)g Fl(@3)p Fr(,)g Fl(@4)p Fr(,)g
+Fl(@5)p Fr(,)g Fl(@6)p Fr(,)g Fl(@7)p Fr(,)g Fl(@8)p Fr(,)g(and)h
+Fl(@9)p Fr(.)177 2427 y(T)m(o)d(de\014ne)i(a)f(macro)f(with)h(one)g(or)g
+(more)f(parameters,)h(insert)g(a)g(formal)e(parameter)h(list)h(just)g(after)g
+(the)h(macro)177 2476 y(name)g(in)h(the)h(macro)f(de\014nition.)19
+b(Because)d(macro)e(parameters)g(ha)o(v)o(e)g(\014xed)h(names)f(\()p
+Fl(@1)p Fn(:)7 b(:)g(:)n Fl(@9)p Fr(\),)14 b(there)i(is)e(no)177
+2526 y(need)19 b(to)e(sp)q(ecify)h(the)g(names)e(of)h(formal)e(parameters)j
+(in)f(the)h(formal)d(parameter)i(list.)28 b(All)16 b(that)i(need)g(b)q(e)177
+2576 y(con)o(v)o(ey)o(ed)c(is)g(ho)o(w)f(man)o(y)f(parameters)i(the)g(macro)e
+(has.)19 b(Here)c(is)e(an)h(example)e(of)h(the)h(de\014nition)g(of)f(a)g
+(macro)177 2626 y(ha)o(ving)g(three)i(parameters:)177 2735
+y Fl(@$@<While)20 b(loop@>@\(@3@\)@M==@{)o(@-)177 2785 y(@1)177
+2835 y(while)h(\(@2\))1042 2940 y Fr(28)p eop
+%%Page: 29 30
+29 29 bop 221 42 a Fl({)243 91 y(@3)221 141 y(})177 191 y(@})177
+310 y Fr(T)m(o)11 b(call)g(a)g(parameterized)h(macro,)e(an)i(actual)f
+(parameter)g(list)h(m)o(ust)e(b)q(e)i(supplied)g(that)g(con)o(tains)f
+(exactly)h(the)177 360 y(same)j(n)o(um)o(b)q(er)g(of)f(actual)i(parameters)f
+(as)h(there)g(are)g(formal)d(parameters)j(in)f(the)h(de\014nition)f(of)g(the)
+h(macro)177 410 y(b)q(eing)h(called.)26 b(An)16 b(actual)h(parameter)f(list)g
+(is)h(delimited)d(b)o(y)j Fl(@\()f Fr(and)g Fl(@\))p Fr(,)h(and)f(parameters)
+h(are)g Fm(sep)n(ar)n(ate)n(d)177 459 y Fr(b)o(y)c(\\)p Fl(@,)p
+Fr(".)k(The)c(actual)g(parameters)g(themselv)o(es)h(are)f(general)h(F)m
+(unnelW)m(eb)e(expressions)j(\(see)f(Chapter)g(3)f(for)177
+509 y(the)g(exact)g(syn)o(tax\))f(and)h(can)f(b)q(e)h(inserted)h(in)o(to)d
+(the)i(list)f(directly)g(or)h(can)f(b)q(e)h(delimited)e(b)o(y)h
+Fl(@")g Fr(so)g(as)g(to)g(allo)o(w)177 559 y(some)j(white)g(space)h(to)f
+(assist)h(in)f(formatting)e(the)j(actual)e(parameters.)23 b(Here)16
+b(are)g(some)e(examples)h(of)f(calls)177 609 y(of)f(the)i Fl(While)21
+b(loop)13 b Fr(macro)f(de\014ned)j(ab)q(o)o(v)o(e.)177 728
+y Fl(@!)22 b(First)e(form)h(of)h(actual)e(parameters)g(without)g(whitespace)g
+(and)h(double)g(quotes.)177 778 y(@<While)g(loop@>@\(x=1;@,x)o(<=10@)o(,prin)
+o(tf\("X)o(=\045u\\)o(n",x\))o(;@\))177 877 y(@!)h(Second)e(form)h(of)g
+(actual)g(parameters.)f(The)h(double)f(quotes)h(allow)g(non-active)177
+927 y(@!)h(whitespace)d(that)i(helps)g(to)g(lay)h(out)f(the)g(actual)f
+(parameters)g(neatly.)177 977 y(@!)i(This)f(call)f(is)i(functionally)d
+(identical)h(to)h(the)h(one)f(above.)177 1027 y(@<While)g(loop@>@\()243
+1076 y(@"x:=1;@")e(@,)243 1126 y(@"x<=10@")g(@,)243 1176 y
+(@"printf\("X=\045u\\)o(n",x\))o(;@")g(@\))177 1276 y(@!)j(The)f(two)g(forms)
+g(can)g(be)g(mixed)g(in)g(a)h(single)e(call.)177 1325 y(@<While)h
+(loop@>@\(x=1;@,x)o(<=10@)o(,)482 1375 y(@"printf\("X=\045u\\n",x)o(\);@")d
+(@\))177 1494 y Fr(A)h(few)g(rules)g(ab)q(out)f(parameterized)h(macros)f(are)
+h(w)o(orth)g(men)o(tioning.)30 b(Macros)19 b(that)g(do)f(not)h(ha)o(v)o(e)f
+(an)o(y)177 1544 y(parameters)c(m)o(ust)f(ha)o(v)o(e)g(no)h(formal)d(or)j
+(actual)g(parameter)f(lists.)18 b(Additiv)o(e)c(macros)f(can)h(ha)o(v)o(e)f
+(parameters,)177 1594 y(but)h(the)h(formal)c(parameter)j(list)f(m)o(ust)g
+(app)q(ear)h(in)g(the)g(\014rst)h(de\014nition)e(part)h(only)m(.)177
+1670 y(Here)k(is)f(another)g(example)e(of)h(the)h(use)h(of)e(parameterized)g
+(macros.)26 b(This)16 b(time,)g(parameters)h(and)f(macro)177
+1719 y(calls)g(are)g(used)g(in)g(a)f(F)m(unnelW)m(eb)g(input)h(\014le)g(that)
+g(constructs)h(an)f Fn(O)q Fr(\()p Fn(n)p Fr(\))g(represen)o(tation)h(of)e(a)
+h(song)f(whose)177 1769 y(full)e(size)h(is)g Fn(O)q Fr(\()p
+Fn(n)444 1754 y Fg(2)463 1769 y Fr(\))g(in)f(the)i(n)o(um)o(b)q(er)e
+Fn(n)h Fr(of)f(unique)h(lines.)177 1938 y Fl(@O@<Twelve_bugs.tx)o(t@>==)o
+(@{@-)177 1988 y(The)21 b(Twelve)g(Bugs)g(of)g(Christmas)177
+2038 y(------------------)o(-----)o(-----)177 2087 y(@<Verse@>@\(@"first)o
+(@")84 b(@,@<1@>@\))177 2137 y(@<Verse@>@\(@"secon)o(d@")62
+b(@,@<2@>@\))177 2187 y(@<Verse@>@\(@"third)o(@")84 b(@,@<3@>@\))177
+2237 y(@<Verse@>@\(@"fourt)o(h@")62 b(@,@<4@>@\))177 2287 y
+(@<Verse@>@\(@"fifth)o(@")84 b(@,@<5@>@\))177 2337 y(@<Verse@>@\(@"sixth)o
+(@")g(@,@<6@>@\))177 2386 y(@<Verse@>@\(@"seven)o(th@")40 b(@,@<7@>@\))177
+2436 y(@<Verse@>@\(@"eight)o(h@")62 b(@,@<8@>@\))177 2486 y
+(@<Verse@>@\(@"ninth)o(@")84 b(@,@<9@>@\))177 2536 y(@<Verse@>@\(@"tenth)o
+(@")g(@,@<A@>@\))177 2586 y(@<Verse@>@\(@"eleve)o(nth@")18
+b(@,@<B@>@\))177 2635 y(@<Verse@>@\(@"twelf)o(th@")40 b(@,@<C@>@\))177
+2735 y(This)21 b(song)g(appeared)f(in)i(the)f(internet)f(newsgroup)g
+(rec.humor.funny)f(on)i(24-Dec-1991.)177 2785 y(It)h(was)f(contributed)e(by)j
+(Pat)f(Scannell)f(\(scannell@@darkst)o(ar.ma)o(30.bu)o(ll.co)o(m\).)177
+2835 y(@})1042 2940 y Fr(29)p eop
+%%Page: 30 31
+30 30 bop 177 91 a Fl(@$@<Verse@>@\(@2@\)@)o(M==@{)o(@-)177
+141 y(For)21 b(the)h(@1)f(bug)g(of)g(Christmas,)f(my)i(manager)e(said)h(to)g
+(me)286 191 y(@2)177 241 y(@})177 340 y(@$@<1@>@M==@{See)e(if)i(they)g(can)g
+(do)h(it)f(again.@})177 390 y(@$@<2@>@M==@{Ask)e(them)i(how)g(they)g(did)g
+(it)g(and@+@<1@>@})177 440 y(@$@<3@>@M==@{Try)e(to)i(reproduce)f(it@+@<2@>@})
+177 490 y(@$@<4@>@M==@{Run)f(with)i(the)g(debugger@+@<3@>@)o(})177
+540 y(@$@<5@>@M==@{Ask)e(for)i(a)g(dump@+@<4@>@})177 589 y
+(@$@<6@>@M==@{Reins)o(tall)d(the)k(software@+@<5@>)o(@})177
+639 y(@$@<7@>@M==@{Say)d(they)i(need)g(an)g(upgrade@+@<6@>@})177
+689 y(@$@<8@>@M==@{Find)d(a)k(way)f(around)g(it@+@<7@>@})177
+739 y(@$@<9@>@M==@{Blame)d(it)k(on)f(the)g(hardware@+@<8@>@})177
+789 y(@$@<A@>@M==@{Chang)o(e)e(the)i(documentation@+@<9)o(@>@})177
+839 y(@$@<B@>@M==@{Say)e(it's)i(not)g(supported@+@<A@>)o(@})177
+888 y(@$@<C@>@M==@{Tell)d(them)j(it's)g(a)h(feature@+@<B@>@})177
+1028 y Fd(1.6.6)55 b(Macro)19 b(Expansion)177 1128 y Fr(One)g(of)f(the)g
+(strengths)i(of)d(F)m(unnelW)m(eb)h(is)g(that,)h(when)f(writing)g(pro)q(duct)
+h(\014les,)g(it)f(do)q(es)h(not)f(attempt)f(to)177 1178 y(ev)n(aluate)g(an)o
+(y)f(text)h(expression)h(\(e.g.)e(text)h(blo)q(c)o(k,)g(parameter,)g(macro)e
+(call\))h(in)g(memory)f(and)h(then)h(write)177 1228 y(the)f(result)f(out.)22
+b(Instead,)15 b(it)g(alw)o(a)o(ys)f(writes)h(out)g(what)g(it)g(is)f
+(expanding)h(dynamically)d(and)j(directly)m(.)21 b(This)177
+1277 y(means)13 b(that)h(the)h(user)f(need)h(not)f(fear)g(de\014ning)g
+(macros)f(that)h(expand)g(to)f(h)o(uge)h(amoun)o(ts)f(of)g(text)h(and)g(then)
+177 1327 y(calling)d(those)i(macros)e(in)g(other)i(macros,)e(or)h(passing)g
+(those)h(h)o(uge)f(macros)f(as)h(parameters)h(to)e(other)i(macros.)177
+1377 y(In)f(all)e(cases,)i(F)m(unnelW)m(eb)f(expands)h(directly)g(to)f(the)h
+(pro)q(duct)g(\014le,)g(and)f(there)i(can)e(b)q(e)h(no)f(danger)h(in)f
+(running)177 1427 y(out)i(of)f(memory)f(during)i(expansion)f(\(except)j(for)e
+(running)f(out)h(of)f(stac)o(k)i(space)g(and)f(other)g(marginally)d(used)177
+1477 y(resources)16 b(in)e(pathological)e(cases\).)177 1550
+y(The)17 b(only)e(thing)h(to)f(remem)o(b)q(er)h(in)f(this)h(regard)h(is)f
+(that)g(F)m(unnelW)m(eb)g(alw)o(a)o(ys)f(stores)i(the)g(en)o(tire)f
+Fm(input)h Fr(\014le)177 1600 y(and)d(all)f(included)h(\014les,)f(in)h(their)
+g(en)o(tiret)o(y)h(in)e(memory)m(,)d(for)k(the)g(duration)g(of)f(the)i(run.)
+177 1674 y(Here)g(is)f(an)g(example,)e(that)i(illustrates)g(ho)o(w)f(robust)i
+(F)m(unnelW)m(eb)e(is:)177 1786 y Fl(@!)22 b(FunnelWeb)d(copes)i(well)g(with)
+g(the)g(following)f(macro)h(definitions.)177 1835 y(@!)h(\(Providing)d(that)i
+(it)h(has)f(a)g(little)g(over)g(ten)g(megabytes)f(of)h(memory\).)177
+1935 y(@O@<woppa.txt@>==@)o({@<Qu)o(ote@>)o(@\(@<H)o(umung)o(eous)o(@>@\)@)o
+(+@})177 2035 y(@$@<Quote@>@\(@1@\)=)o(=@{"@)o(1"@})177 2134
+y(@$@<Humungeous@>==)o(@{@-)177 2184 y(...Ten)g(Megabytes)f(of)h(Text...)177
+2234 y(@})177 2373 y Fd(1.6.7)55 b(Include)18 b(Files)177 2474
+y Fr(F)m(unnelW)m(eb)i(pro)o(vides)g(a)g(nested)i(include)e(\014le)h(facilit)
+o(y)d(that)i(can)h(b)q(e)g(used)g(for)f(a)g(n)o(um)o(b)q(er)f(of)h(purp)q
+(oses.)177 2523 y(When)c(F)m(unnelW)m(eb)f(runs)h(in)o(to)f(a)h(single)f
+(line)g(con)o(taining)f(the)j(sp)q(ecial)e(sequence)j Fl(@i)d
+Fr(follo)o(w)o(ed)f(b)o(y)i(a)f(blank,)177 2573 y(follo)o(w)o(ed)10
+b(b)o(y)g(a)h(\014le)g(name,)f(it)g(reads)i(in)f(the)g(designated)h(\014le)f
+(and)g(replaces)h(the)g(line)e(con)o(taining)g(the)i(command)177
+2623 y(\(including)h(the)g(end)h(of)f(line)f(mark)o(er)h(at)g(the)h(end)f(of)
+g(the)h(line\))f(with)g(the)g(en)o(tire)h(con)o(ten)o(ts)h(of)d(the)i
+(designated)177 2673 y(\014le.)k(F)m(or)c(example,)e(if)h(there)i(w)o(as)f(a)
+f(\014le)h(called)g Fl(camera.txt)e Fr(con)o(taining)g(the)j(t)o(w)o(o)e
+(lines:)177 2785 y Fl('Cos)21 b(I)h(shoot)e(with)h(a)h(camera)f(instead)f(of)
+h(a)h(gun.)177 2835 y(The)f(animals)g(flock)f(to)i(be)f(petted)g(and)g(fed,)
+1042 2940 y Fr(30)p eop
+%%Page: 31 32
+31 31 bop 177 42 a Fr(and)14 b(another)g(\014le)g(called)g
+Fl(poem.fw)e Fr(con)o(taining)h(the)h(follo)o(wing)e(four)h(lines)177
+152 y Fl(I)22 b(like)f(to)g(go)g(shooting,)f(it's)h(a)h(whole)f(lot)g(of)g
+(fun,)177 202 y(@i)h(camera.txt)177 251 y(Cos)f(they)g(know)g(my)h(camera)e
+(isn't)h(loaded)g(with)f(lead.)177 301 y(-)i(RNW,)f(04-Jan-1991.)177
+412 y Fr(Then,)14 b(if)f(F)m(unnelW)m(eb)g(w)o(ere)i(to)f(pro)q(cess)i
+Fl(poem.fw)p Fr(,)c(the)i(result)h(w)o(ould)e(b)q(e)h(as)g(if)f(F)m(unnelW)m
+(eb)h(had)f(read)i(in:)177 522 y Fl(I)22 b(like)f(to)g(go)g(shooting,)f(it's)
+h(a)h(whole)f(lot)g(of)g(fun,)177 572 y('Cos)g(I)h(shoot)e(with)h(a)h(camera)
+f(instead)f(of)h(a)h(gun.)177 621 y(The)f(animals)g(flock)f(to)i(be)f(petted)
+g(and)g(fed,)177 671 y('Cos)g(they)g(know)g(my)g(camera)g(isn't)g(loaded)f
+(with)h(lead.)177 721 y(-)h(RNW,)f(04-Jan-1991.)177 831 y Fr(F)m(unnelW)m(eb)
+11 b(expands)g(include)g(\014les)h(b)q(efore)f(it)g(starts)h(scanning)f(and)g
+(parsing)f(the)i(included)f(text.)18 b(The)11 b(result)177
+881 y(is)17 b(that)f(include)h(\014les)g(can)g(con)o(tain)f(an)o(ything)g
+(that)g(can)h(b)q(e)g(found)g(in)f(a)g(F)m(unnelW)m(eb)g(\014le.)26
+b(The)17 b(follo)o(wing)177 931 y(example)c(illustrates)h(the)g(lev)o(el)g
+(at)g(whic)o(h)f(the)i(include)f(mec)o(hanism)d(op)q(erates.)20
+b(If)13 b Fl(main.fw)g Fr(con)o(tains)177 1041 y Fl(@O@<output.dat@>==)o
+(@{@-)177 1091 y(@i)22 b(inc.fw)177 1141 y(This)f(is)h(the)f(text)g(of)g(the)
+g(sloth)g(macro.)177 1191 y(@})177 1301 y Fr(and)14 b(inc.fw)f(con)o(tains)
+177 1411 y Fl(@<Sloth@>)177 1461 y(@})177 1561 y(@$@<Sloth@>==@{@-)177
+1671 y Fr(Then)i(if)e(F)m(unnelW)m(eb)g(w)o(ere)i(applied)e(to)h
+Fl(main.fw)p Fr(,)e(it)h(w)o(ould)g(see:)177 1781 y Fl(@O@<output.dat@>==)o
+(@{@-)177 1831 y(@<Sloth@>)177 1881 y(@})177 1981 y(@$@<Sloth@>==@{@-)177
+2030 y(This)21 b(is)h(the)f(text)g(of)g(the)g(sloth)g(macro.)177
+2080 y(@})177 2190 y Fr(whic)o(h)c(it)g(w)o(ould)f(pro)q(cess)j(in)e(the)h
+(normal)d(manner.)27 b(The)18 b(only)e(sp)q(ecial)h(sequence)j(pro)q(cessing)
+e(that)f(tak)o(es)177 2240 y(place)12 b(at)g(a)f(lev)o(el)h(lo)o(w)o(er)f
+(than)h(include)g(\014les)g(is)g(the)g(pro)q(cessing)h(of)e(the)h
+Fl(<special>=<newspecia)o(l>)d Fr(sequence)177 2290 y(whic)o(h)14
+b(c)o(hanges)h(the)f(sp)q(ecial)g(c)o(haracter.)177 2363 y(A)g(few)f(other)h
+(facts)g(ab)q(out)f(include)g(\014les)h(are)g(w)o(orth)f(men)o(tioning)e
+(here.)19 b(Include)14 b(\014les)g(inherit)f(the)h(directory)177
+2413 y(sp)q(eci\014cation)k(supplied)g(using)f(the)h Fl(+I)f
+Fr(command)e(line)i(option.)28 b(The)17 b(sp)q(ecial)h(c)o(haracter)h(is)e
+(sa)o(v)o(ed)h(at)f(the)177 2463 y(start)e(of)e(eac)o(h)h(include)g(\014le)g
+(and)g(restored)i(to)d(its)h(previous)h(v)n(alue)e(at)h(the)g(end)g(of)g(eac)
+o(h)g(include)g(\014le.)k(Include)177 2513 y(\014les)c(can)g(b)q(e)g(nested)h
+(up)f(to)f(ten)i(lev)o(els.)i(Recursiv)o(e)e(included)f(\014les)g(will)e(alw)
+o(a)o(ys)g(cause)j(an)e(in\014nite)h(recursion)177 2562 y(as)f(there)h(is)e
+(no)g(b)q(ottoming)f(out)h(mec)o(hanism)e(a)o(v)n(ailable.)16
+b(Include)d(\014les)g(m)o(ust)e(con)o(tain)h(an)h(in)o(teger)g(n)o(um)o(b)q
+(er)e(of)177 2612 y(lines)i(\(i.e.)g(the)h(last)f(line)g(m)o(ust)f(b)q(e)i
+(terminated)e(with)h(an)g(end)h(of)f(line)g(mark)o(er\).)k(Once)d(F)m(unnelW)
+m(eb)f(has)g(seen)177 2662 y(\\)p Fl(@i)21 b Fr(")14 b(at)g(the)h(start)f(of)
+g(a)f(line,)h(it)f(will)g(grab)h(the)g(rest)i(of)d(the)i(line)e(ra)o(w)h(and)
+g(treat)h(it)e(as)h(a)g(\014le)g(name.)k(There)177 2712 y(is)c(no)g(place)g
+(on)f(the)i(line)e(for)h(things)f(lik)o(e)h(F)m(unnelW)m(eb)f(commen)o(ts)f
+(\(see)j(later\))f(or)g(extraneous)h(text.)177 2785 y(Include)21
+b(\014les)f(can)h(b)q(e)f(used)h(for)f(man)o(y)e(purp)q(oses,)23
+b(but)d(are)g(particularly)g(useful)g(for)g(hauling)e(in)i(macro)177
+2835 y(libraries.)1042 2940 y(31)p eop
+%%Page: 32 33
+32 32 bop 177 42 a Fi(1.7)70 b(T)n(yp)r(esetting)21 b(F)-6
+b(acilitie)o(s)177 158 y Fr(The)14 b(\014rst)g(half)e(of)g(this)h(tutorial)f
+(fo)q(cuses)j(solely)d(on)h(the)h(macro)e(facilities)g(of)g(F)m(unnelW)m(eb)h
+(\(whic)o(h)g(it)g(more)f(or)177 208 y(less)j(co)o(v)o(ers)g(completely\).)i
+(As)e(a)e(result,)i(the)f(example)f(do)q(cumen)o(ts)h(y)o(ou)f(ha)o(v)o(e)h
+(seen)i(so)e(far)f(ha)o(v)o(e)h(b)q(een)h(gross)177 257 y(distortions)k(of)g
+(\\normal")e(F)m(unnelW)m(eb)h(do)q(cumen)o(ts)h(whic)o(h)g(often)h(con)o
+(tain)e(as)i(m)o(uc)o(h)e(do)q(cumen)o(tation)g(as)177 307
+y(co)q(de.)270 292 y Fg(3)307 307 y Fr(While)12 b(there)j(are)e(applications)
+f(where)i(F)m(unnelW)m(eb)e(can)i(b)q(e)f(used)h(solely)e(as)h(a)g(macro)f
+(prepro)q(cessor,)177 357 y(most)h(applications)g(will)f(use)j(its)f(t)o(yp)q
+(esetting)h(facilities)d(as)i(w)o(ell.)177 432 y(This)g(section)h(restores)g
+(the)g(balance)f(in)f(this)h(tutorial)f(b)o(y)h(presen)o(ting)h(F)m(unnelW)m
+(eb's)e(t)o(yp)q(esetting)i(facilities.)177 574 y Fd(1.7.1)55
+b(Ov)n(erview)177 676 y Fr(The)12 b(macro)e(de\014nitions)h(discussed)h(in)f
+(the)h(macro)e(tutorial)g(completely)g(de\014ne)i(the)g(con)o(ten)o(ts)g(of)e
+(the)i(pro)q(duct)177 726 y(\014les)19 b(that)f(F)m(unnelW)m(eb)f(will)g
+(generate.)32 b(These)19 b(macro)e(de\014nitions)h(can)g(b)q(e)h(arranged)f
+(in)g(an)o(y)f(order)i(and)177 776 y(nothing)14 b(external)g(to)g(them)f(can)
+i(a\013ect)g(the)g(con)o(ten)o(ts)g(of)e(the)i(pro)q(duct)g(\014les.)k(The)c
+(macros)e(can)h(b)q(e)h(though)o(t)177 826 y(of)e(as)h(a)g(group)g(of)f
+(self-con)o(tained)h(islands.)177 901 y(Although)f(F)m(unnelW)m(eb)f(will)g
+(can)i(pro)q(cess)h(the)e(macros)g(all)f(on)h(their)g(o)o(wn,)g(the)g(full)f
+(p)q(o)o(w)o(er)i(of)e(F)m(unnelW)m(eb)h(is)177 950 y(realized)i(only)f(when)
+i(the)f(macros)f(are)i(surrounded)g(b)o(y)e(a)h(sea)g(of)f(do)q(cumen)o
+(tation.)20 b(This)15 b(sea)g(can)g(tak)o(e)g(t)o(w)o(o)177
+1000 y(forms:)j(directiv)o(es)d(and)f(free)h(text.)20 b(Some)13
+b(of)h(the)h(directiv)o(es)g(con)o(trol)f(things)g(suc)o(h)h(as)g(the)g
+(maxim)n(um)10 b(input)177 1050 y(line)f(length.)17 b(Ho)o(w)o(ev)o(er,)10
+b(most)f(of)f(them)h(are)h(t)o(yp)q(esetting)h(directiv)o(es)f(that)g
+(a\013ect)g(the)h(prin)o(ted)e(do)q(cumen)o(tation.)177 1100
+y(Th)o(us)j(a)g(F)m(unnelW)m(eb)g(do)q(cumen)o(t)f(can)h(b)q(e)h(view)o(ed)f
+(as)g(a)g(sequence)i(of)d Fo(macro)j(de\014niti)o(ons)o Fr(,)9
+b Fo(directiv)o(es)p Fr(,)g(and)177 1150 y Fo(free)15 b(text)p
+Fr(.)177 1225 y(Unlik)o(e)10 b(the)i(pro)q(duct)f(\014les)g(whic)o(h)g
+(consist)g(of)g(unscram)o(bled)f(macro)f(calls,)i(the)g(do)q(cumen)o(tation)f
+(\014le)g(is)h(more)f(or)177 1274 y(less)g(a)f(direct)h(represen)o(tation)h
+(of)e(the)h(input)f(\014le.)17 b(Eac)o(h)9 b(part)h(of)f(the)h(input)f
+(\014le)g(app)q(ears)h(in)f(the)h(do)q(cumen)o(tation)177 1324
+y(\014le)h(in)f(the)h(order)h(in)e(whic)o(h)h(it)f(app)q(ears)i(in)e(the)h
+(input)g(\014le.)17 b(Ho)o(w)o(ev)o(er,)11 b(eac)o(h)g(di\013eren)o(t)h(kind)
+e(of)g(part)h(is)g(t)o(yp)q(eset)1929 1309 y Fg(4)177 1374
+y Fr(in)i(a)g(di\013eren)o(t)i(manner.)i(Macros)d(are)g(t)o(yp)q(eset)h(in)e
+(a)g(particular)g(st)o(yle,)h(with)f(the)h(macro)e(b)q(o)q(dy)i(app)q(earing)
+f(in)177 1424 y Fl(tt)22 b(font)11 b Fr(\(see)i(some)e(F)m(unnelW)m(eb)h
+(prin)o(ted)g(do)q(cumen)o(tation)f(for)h(an)f(example\).)17
+b(T)o(yp)q(esetter)d(directiv)o(es)f(ha)o(v)o(e)177 1474 y(sp)q(eci\014c)j
+(de\014ned)f(e\013ects)h(\(more)d(later\).)18 b(F)m(ree)d(text)f(is)g(t)o(yp)
+q(eset)h(exactly)f(as)g(it)g(is,)f(except)i(that)f(eac)o(h)h(blo)q(c)o(k)e
+(of)177 1524 y(text)i(b)q(et)o(w)o(een)g(blank)e(lines)h(is)g(\014lled)f(and)
+h(justi\014ed)g(as)g(a)g(paragraph.)177 1599 y(The)f(follo)o(wing)d(example)i
+(demonstrates)h(ho)o(w)f(all)f(this)i(w)o(orks.)k(T)o(yp)q(e)c(in)g(the)g
+(follo)o(wing)d(as)i Fl(example.fw)f Fr(and)177 1648 y(run)k(it)g(through)f
+(F)m(unnelW)m(eb)g(with)h(the)g(command)d(\\)p Fl(fw)21 b(example)g(+t)p
+Fr(".)e(The)c(\\)p Fl(+t)p Fr(")f(instructs)i(F)m(unnelW)m(eb)177
+1698 y(to)j(generate)h(a)f(do)q(cumen)o(tation)f(\014le)h(called)g
+Fl(example.tex)p Fr(.)31 b(Run)19 b(the)g(\014le)g(through)h(T)1643
+1707 y(E)1666 1698 y(X)f(and)g(prin)o(t)g(it.)177 1748 y(Examine)13
+b(the)h(\014les)g Fl(example.out)e Fr(and)i Fl(example.tex)p
+Fr(.)177 1865 y Fl(You)21 b(are)h(reading)e(some)h(free)g(text)g(before)f
+(the)h(macro.)g(Free)g(text)g(can)g(consist)177 1915 y(of)h(any)f(text)g
+(\(not)g(containing)e(the)j(FunnelWeb)d(special)i(character\))f(including)177
+1965 y(typesetter)g(commands)177 2014 y(such)h(as)h($,)f(\045,)g(#,)h(and)f
+(\\TeX{})f(which)177 2064 y(will)h(be)h(typeset)e(to)h(appear)g(exactly)f(as)
+i(they)e(do)i(in)f(the)g(input)g(file!)177 2114 y(Look)g(out!)g(Here)g(comes)
+g(a)g(macro!)177 2214 y(@O@<example.out@>=)o(=@{@-)177 2263
+y(This)g(text)g(is)g(part)g(of)177 2313 y(a)h(macro)f(definition.)177
+2363 y(@})177 2463 y(This)g(is)h(free)e(text)h(following)f(the)i(macro.)e
+(This)h(sentence)f(contains)177 2513 y(two)h(@{inline@})f(typesetter)g
+(@/directives@/.)177 2562 y(Now)h(here)g(is)h(a)f(non-inline)f(typesetting)g
+(directive.)p 177 2599 709 2 v 223 2626 a Ff(3)241 2637 y Fh(As)12
+b(an)f(example,)e(the)h(author)g(used)h(F)m(unnelW)m(eb)e(to)i(dev)o(elop)f
+(a)h(largish)f(computer)f(program)g(and)i(found)f(that)g(on)h(a)o(v)o(erage)
+177 2677 y(his)g(st)o(yle)g(of)g(using)f(F)m(unnelW)m(eb)g(resulted)f(in)j
+(ab)q(out)d(30\045)j(do)q(cumen)o(ta)o(tion)c(and)j(70\045)g(macros)f(\(co)q
+(de\))g(\(measured)e(b)o(y)j(n)o(um)o(b)q(ers)177 2716 y(of)g(lines\).)223
+2744 y Ff(4)241 2756 y Fh(Here)i(the)h(term)e(\\t)o(yp)q(eset")g(is)i(used)f
+(lo)q(osely)f(to)i(refer)e(to)i(F)m(unnelW)m(eb's)e(generation)f(of)i(t)o(yp)
+q(esetter)f(commands)f(for)i(eac)o(h)177 2795 y(construct)e(in)h(the)g(input)
+g(\014le.)18 b(Strictly)m(,)11 b(the)h(term)g(should)f(b)q(e)i(used)f(only)f
+(to)i(describ)q(e)e(the)h(actions)f(of)h(a)h(t)o(yp)q(esetter)d(program)177
+2835 y(\(e.g.)h(T)275 2842 y(E)295 2835 y(X\).)1042 2940 y
+Fr(32)p eop
+%%Page: 33 34
+33 33 bop 177 91 a Fl(@t)22 b(new_page)177 191 y(This)f(sentence)f(will)h
+(appear)g(on)g(the)g(next)g(page.)177 312 y Fr(A)o(t)12 b(the)h(top)e(of)h
+(the)g Fl(example.tex)d Fr(do)q(cumen)o(tation)i(\014le)h(will)e(b)q(e)j(a)e
+(set)i(of)e(T)1383 321 y(E)1406 312 y(X)h(macro)f(de\014nitions.)17
+b(The)c(T)1895 321 y(E)1918 312 y(X)177 362 y(co)q(de)g(corresp)q(onding)h
+(to)e(the)h(input)f(ab)q(o)o(v)o(e)g(app)q(ears)h(at)f(the)h(end)g(of)f(the)h
+(\014le.)18 b(It)12 b(should)g(lo)q(ok)g(something)f(lik)o(e)177
+412 y(this.)177 533 y Fl(You)21 b(are)h(reading)e(some)h(free)g(text)g
+(before)f(the)h(macro.)g(Free)g(text)g(can)g(consist)177 583
+y(of)h(any)f(text)g(\(not)g(containing)e(the)j(FunnelWeb)d(special)i
+(character\))f(including)177 632 y(typesetter)g(commands)177
+682 y(such)h(as)h(\\$,)f(\\\045,)g(\\#,)g(and)g($\\backslash$TeX$\\{)o
+($$\\}$)d(which)177 732 y(will)j(be)h(typeset)e(to)h(appear)g(exactly)f(as)i
+(they)e(do)i(in)f(the)g(input)g(file!)177 782 y(Look)g(out!)g(Here)g(comes)g
+(a)g(macro!)177 882 y(\\fwbeginmacro)177 931 y(\\fwfilename{exampl)o(e.out)o
+(}{1}\\)o(fwequ)o(als)e(\\fwodef)h(\\fwbtx[This)f(text)i(is)h(part)f(of)177
+981 y(a)h(macro)f(definition.)177 1031 y(]fwetx=\045)177 1081
+y(\\fwcdef)177 1131 y(\\fwbeginmacronotes)177 1180 y(\\fwisafile{This)e
+(macro)i(is)g(attached)f(to)i(an)f(output)f(file.})177 1230
+y(\\fwendmacronotes)177 1280 y(\\fwendmacro)177 1380 y(This)h(is)h(free)e
+(text)h(following)f(the)i(macro.)e(This)h(sentence)f(contains)177
+1430 y(two)h(\\fwlit{inline})e(typesetter)h(\\fwemp{directives)o(}.)177
+1479 y(Now)h(here)g(is)h(a)f(non-inline)f(typesetting)g(directive.)177
+1579 y(\\fwnewpage)177 1679 y(This)h(sentence)f(will)h(appear)g(on)g(the)g
+(next)g(page.)177 1800 y Fr(The)14 b(follo)o(wing)e(p)q(oin)o(ts)i(explain)f
+(the)h Fl(example.tex)e Fr(\014le.)295 1876 y Fo(Y)l(ou)f(don't)e(ha)o(v)o(e)
+h(to)g(kno)o(w)h(T)l(eX:)f Fr(If)f(y)o(ou)g(don't)g(kno)o(w)g(T)1238
+1885 y(E)1261 1876 y(X,)g(don't)g(pa)o(y)g(to)q(o)h(m)o(uc)o(h)e(atten)o
+(tion)295 1926 y(to)14 b(this)g(section.)19 b(Y)m(ou)13 b(don't)g(need)i(to)f
+(kno)o(w)f(T)1054 1935 y(E)1078 1926 y(X)g(to)h(use)h(F)m(unnelW)m(eb.)295
+2003 y Fo(In)h(order:)h Fr(F)m(unnelW)m(eb)c(has)h(merely)g(transformed)f
+(the)h(input.)k(It)c(hasn't)g(rearranged)h(it.)295 2080 y Fo(F)l(ree)i(text:)
+22 b Fr(Most)15 b(of)g(the)h(free)h(text)f(has)f(b)q(een)i(simply)c(copied)j
+(o)o(v)o(er.)23 b(The)16 b(T)1580 2089 y(E)1603 2080 y(X)f(t)o(yp)q(esetter)
+295 2129 y(justi\014es)f(and)f(\014lls)g(all)e(paragraphs)j(fed)f(to)g(it)g
+(b)o(y)f(default,)h(so)g(most)f(of)h(the)g(text)h(has)f(just)h(b)q(een)295
+2179 y(copied)g(v)o(erbatim.)295 2256 y Fo(T)l(eX)20 b(co)q(des:)25
+b Fr(The)17 b(c)o(haracters)i(and)e(sequences)i(whic)o(h)e(T)1263
+2265 y(E)1286 2256 y(X)g(treats)h(as)f(sp)q(ecial)h(ha)o(v)o(e)f(b)q(een)295
+2306 y(neutralized)12 b(in)e(the)i(do)q(cumen)o(tation)d(\014le.)17
+b(F)m(or)11 b(example,)e(\\)p Fl($)p Fr(")i(has)g(b)q(ecome)f(\\)p
+Fl(\\$)p Fr(".)16 b(By)11 b(default,)295 2356 y(F)m(unnelW)m(eb)h(allo)o(ws)f
+(the)i(user)g(to)f(write)g(an)o(y)g(text)h(as)f(free)h(text)g(and)f(not)g(ha)
+o(v)o(e)g(to)g(w)o(orry)g(ab)q(out)295 2405 y(acciden)o(tally)i(in)o(v)o
+(oking)e(t)o(yp)q(esetter)k(features.)295 2482 y Fo(fw)h(sequences:)j
+Fr(The)15 b Fl(fw)f Fr(sequences)j(\(e.g.)e Fl(\\fwbeginmacro)p
+Fr(\))d(in)o(v)o(ok)o(e)i(T)1491 2491 y(E)1514 2482 y(X)h(macros)f(de\014ned)
+295 2532 y(earlier)g(in)g(the)g(do)q(cumen)o(tation)f(\014le)h(\(and)g(not)f
+(sho)o(wn)h(here\).)295 2609 y Fo(The)19 b(macro:)24 b Fr(The)17
+b(macro)e(is)i(t)o(yp)q(eset)h(using)e(a)g(set)i(of)e(prede\014ned)i(T)1460
+2617 y(E)1484 2609 y(X)e(macros.)26 b(See)17 b(the)295 2658
+y(prin)o(ted)e(do)q(cumen)o(tation)d(to)i(see)h(what)f(this)g(lo)q(oks)f(lik)
+o(e)g(on)h(pap)q(er.)295 2735 y Fo(T)o(yp)q(esetter)i(directiv)o(es:)k
+Fr(Unlik)o(e)15 b(the)h(T)1002 2744 y(E)1025 2735 y(X)g(command)d(sequences)
+18 b(\(whic)o(h)e(w)o(ere)h(neutral-)295 2785 y(ized\),)f(the)g(F)m(unnelW)m
+(eb)f(t)o(yp)q(esetter)i(directiv)o(es)f(turn)g(in)o(to)e(T)1286
+2794 y(E)1310 2785 y(X)h(macro)f(calls.)22 b(F)m(or)14 b(example,)295
+2835 y(\\)p Fl(@)p Fq(f)p Fl(inline@)p Fq(g)p Fr(")d(b)q(ecame)j(\\)p
+Fl(\\fwlit)p Fq(f)p Fl(inline)p Fq(g)p Fr(".)1042 2940 y(33)p
+eop
+%%Page: 34 35
+34 34 bop 177 42 a Fr(In)16 b(summary)m(,)c(F)m(unnelW)m(eb)j(pro)q(duces)i
+(t)o(yp)q(eset)g(do)q(cumen)o(tation)d(that)h(transforms,)g(but)g(do)q(es)h
+(not)g(reorder,)177 91 y(the)e(input)f(\014le.)18 b(Macros)c(are)g(t)o(yp)q
+(eset)h(in)e(a)g(sp)q(eci\014c)i(st)o(yle.)j(F)m(unnelW)m(eb)13
+b(t)o(yp)q(esetter)j(directiv)o(es)f(ha)o(v)o(e)e(partic-)177
+141 y(ular)i(w)o(ell-de\014ned)g(e\013ects.)23 b(F)m(ree)16
+b(text)g(is)f(\014lled)f(and)h(justi\014ed,)g(but)g(will)f(otherwise)i(app)q
+(ear)f(in)g(the)g(prin)o(ted)177 191 y(do)q(cumen)o(tation)e(exactly)h(as)g
+(it)f(app)q(ears)i(in)e(the)i(input)f(\014le.)177 333 y Fd(1.7.2)55
+b(T)n(yp)r(esetter)17 b(Indep)r(endence)177 436 y Fr(Although)f(the)h(curren)
+o(t)h(v)o(ersion)e(of)g(F)m(unnelW)m(eb)f(can)i(only)e(generate)j(do)q(cumen)
+o(tation)d(\014les)i(in)f(T)1783 444 y(E)1806 436 y(X)g(form,)177
+485 y(it)i(encourages)i(t)o(yp)q(esetter)h(indep)q(endence)g(b)o(y)d
+(neutralizing)g(all)f(T)1280 494 y(E)1303 485 y(X)i(con)o(trol)f(sequences)j
+(b)q(efore)f(writing)177 535 y(them)f(out.)34 b(The)20 b(result)g(is)f(that)h
+(y)o(ou)f(don't)f(ha)o(v)o(e)i(w)o(orry)f(ab)q(out)g(upsetting)h(or)f(dep)q
+(ending)h(on)f(T)1831 544 y(E)1855 535 y(X)g(b)o(y)177 585
+y(acciden)o(tally)11 b(including)g(some)g(sp)q(ecial)h(c)o(haracter)h(or)f
+(sequence.)19 b(By)12 b(default)g(y)o(our)f(input)h(\014le)g(is)f
+Fo(t)o(yp)q(esetter)177 635 y(indep)q(enden)n(t)p Fr(.)177
+710 y(This)i(sc)o(heme)g(di\013ers)h(from)d(other)i(literate)g(programming)d
+(to)q(ols,)i(including)g(all)f(earlier)j(v)o(ersions)f(of)f(F)m(unnel-)177
+760 y(W)m(eb,)h(whic)o(h)g(cop)o(y)g(their)h(free)g(text)g(directly)f(to)g
+(the)h(do)q(cumen)o(tation)e(\014le,)h(the)h(justi\014cation)f(b)q(eing)g
+(that)g(the)177 810 y(programmer)d(can)j(use)g(the)g(full)e(p)q(o)o(w)o(er)h
+(of)g(the)h(t)o(yp)q(esetter)h(language)e(to)g(describ)q(e)i(the)f(program.)i
+(The)e(disad-)177 859 y(v)n(an)o(tages)h(of)f(doing)g(this)h(are)g(\014rst)h
+(that)f(the)g(programmer)e(is)i(required)g(to)g(kno)o(w)f(the)i(t)o(yp)q
+(esetting)g(language)177 909 y(and)h(second)h(that)f(the)g(input)g(\014le)g
+(b)q(ecomes)g(t)o(yp)q(esetter)i(dep)q(enden)o(t.)25 b(F)m(unnelW)m(eb)16
+b(a)o(v)o(oids)e(these)k(problems)177 959 y(b)o(y)c(knobbling)e(the)j(free)g
+(text)f(b)q(e)h(default.)177 1034 y(Ho)o(w)o(ev)o(er,)e(F)m(unnelW)m(eb)g(do)
+q(es)h(pro)o(vide)f(a)f(trap)q(do)q(or)i(for)e(those)i(who)f(w)o(an)o(t)g
+(their)g(free)h(text)g(to)f(b)q(e)g(fed)g(directly)177 1084
+y(to)h(T)251 1093 y(E)274 1084 y(X.)f(T)m(o)h(op)q(en)g(the)g(trap)q(do)q
+(or,)g(simply)e(include)i(the)g(follo)o(wing)d(pragma)h(somewhere)j(in)e(y)o
+(our)h(input)f(\014le.)177 1201 y Fl(@p)22 b(typesetter)d(=)j(tex)177
+1319 y Fr(See)15 b(Section)f(3.11.2)e(for)i(more)f(information.)177
+1394 y(F)m(unnelW)m(eb)d(lea)o(v)o(es)h(the)h(degree)g(to)e(whic)o(h)h(the)g
+(user)h(wishes)g(to)e(bind)h(a)f(particular)h(do)q(cumen)o(t)f(to)h(a)f
+(particular)177 1444 y(t)o(yp)q(esetter)15 b(up)e(to)f(the)i(user.)k(In)13
+b(some)f(cases,)h(the)h(extra)f(t)o(yp)q(esetting)g(p)q(o)o(w)o(er)g(ma)o(y)e
+(comp)q(ensate)i(for)f(the)h(lac)o(k)177 1493 y(of)h(p)q(ortabilit)o(y)m(.)k
+(Ho)o(w)o(ev)o(er,)d(as)f(a)g(rule,)h(it)f(is)g(b)q(est)i(to)e(a)o(v)o(oid)f
+(t)o(yp)q(esetter-sp)q(ec)q(i\014c)k(commands,)12 b(so)j(as)f(to)g(allo)o(w)
+177 1543 y(y)o(our)j(input)g(\014les)h(to)f(b)q(e)g(formatted)f(at)h(a)g
+(later)h(date)f(for)g(di\013eren)o(t)h(t)o(yp)q(esetters.)31
+b(F)m(unnelW)m(eb)16 b(includes)i(a)177 1593 y(n)o(um)o(b)q(er)c(of)g(its)g
+(o)o(wn)h(t)o(yp)q(esetter)h(commands)d(so)h(as)h(to)f(supp)q(ort)i(t)o(yp)q
+(esetter-indep)q(enden)o(t)i(input)c(\014les.)20 b(The)177
+1643 y(follo)o(wing)12 b(sections)k(describ)q(e)g(some)d(of)h(these)i
+(commands.)h(In)e(particular,)e(the)j(next)e(section)i(describ)q(es)g(the)177
+1693 y(most)f(p)q(o)o(w)o(erful)g(F)m(unnelW)m(eb)g(t)o(yp)q(esetting)h
+(directiv)o(es)h(whic)o(h)e(allo)o(w)f(the)i(user)h(to)e(structure)j(the)e
+(do)q(cumen)o(t)177 1742 y(hierarc)o(hically)m(.)177 1885 y
+Fd(1.7.3)55 b(Hierarc)n(hical)18 b(Structure)177 1987 y Fr(The)h(tree)h
+(structure)g(is)f(one)f(of)g(the)h(most)e(e\013ectiv)o(e)j(structuring)g(to)q
+(ols)e(that)g(exists,)i(deriving)e(its)g(p)q(o)o(w)o(er)177
+2037 y(from)13 b(the)i(principal)f(of)g(divide)h(and)f(conquor.)21
+b(So)14 b(e\013ectiv)o(e)i(is)f(it)f(that)h(the)g(in)o(ternal)f(organization)
+g(of)g(most)177 2087 y(tec)o(hnical)j(b)q(o)q(oks)g(are)h(tree)g(structures)h
+(whic)o(h)e(are)h(concisely)f(summarized)e(in)i(the)g(table)g(of)f(con)o(ten)
+o(ts.)29 b(In)177 2136 y(con)o(trast,)14 b(computer)e(programs)g(are)i
+(usually)e(presen)o(ted)j(as)e(\015at)g(sequences)j(of)c(text)i(to)f(b)q(e)g
+(consumed)g(b)o(y)g(an)177 2186 y(anon)o(ymous)f(compiler.)177
+2261 y(In)20 b(order)h(to)e(bring)h(program)e(do)q(cumen)o(tation)h(up)h(to)f
+(the)i(structural)g(sophistication)e(commonplace)e(in)177 2311
+y(tec)o(hnical)12 b(b)q(o)q(oks,)g(F)m(unnelW)m(eb)f(pro)o(vides)g(\014v)o(e)
+h(lev)o(els)g(of)e(section)j(headings)e(implemen)o(ted)e(b)o(y)j(the)g(\014v)
+o(e)g(sp)q(ecial)177 2361 y(sequences)j Fl(@A)p Fr(,)c Fl(@B)p
+Fr(,)g Fl(@C)p Fr(,)g Fl(@D)p Fr(,)h(and)g Fl(@E)p Fr(.)f(These)i(m)o(ust)e
+(alw)o(a)o(ys)h(app)q(ear)g(at)g(the)h(start)g(of)e(a)h(line.)17
+b Fl(@A)12 b Fr(is)g(the)g(highest)177 2411 y(lev)o(el)21 b(section)g(\(e.g.)
+f(lik)o(e)g(L)617 2406 y Fk(a)636 2411 y Fr(T)659 2423 y(E)683
+2411 y(X's)g Fl(\\chapter)p Fr(\))g(and)g Fl(@E)h Fr(is)f(the)i(lo)o(w)o(est)
+e(lev)o(el)h(section)g(\(e.g.)f(lik)o(e)g(L)1824 2406 y Fk(a)1843
+2411 y Fr(T)1866 2423 y(E)1890 2411 y(X's)177 2461 y Fl(\\subsubsubsection)p
+Fr(\).)30 b(Section)19 b(headings)g(can)g(app)q(ear)g(an)o(ywhere)h(in)e(the)
+h(free)h(text)g(of)e(a)g(F)m(unnelW)m(eb)177 2510 y(input)c(\014le)g(\(i.e.)f
+(an)o(ywhere)h(except)i(inside)e(a)f(macro)g(de\014nition\).)177
+2586 y(Eac)o(h)j(section)g(heading)f(in)g(a)g(F)m(unnelW)m(eb)g(do)q(cumen)o
+(t)f(has)i(an)f(asso)q(ciated)h(name.)21 b(The)16 b(name)e(of)h(a)g(section)
+177 2635 y(can)i(b)q(e)f(pro)o(vided)h(explicitly)e(b)o(y)h(supplying)f(it)h
+(delimited)f(b)o(y)h Fl(@<)f Fr(and)h Fl(@>)g Fr(immediately)d(after)j(the)h
+(section)177 2685 y(sequence)e(\(e.g.)e Fl(@A)p Fr(\),)f(or)h(implicitly)d(b)
+o(y)i(not)h(pro)o(viding)f(an)h(explicit)f(name,)g(in)g(whic)o(h)h(case)h
+(the)g(section)f(tak)o(es)177 2735 y(the)e(name)f(of)g(the)h(\014rst)g(macro)
+f(de\014ned)h(b)q(et)o(w)o(een)h(the)g(section)f(header)g(in)g(question)f
+(and)h(the)g(follo)o(wing)d(section)177 2785 y(header.)18 b(An)12
+b(error)h(is)e(generated)i(if)e(a)g(section)h(has)g(not)f(b)q(een)i(giv)o(en)
+e(an)h(explicit)f(name)f(and)h(do)q(es)i(not)e(con)o(tain)177
+2835 y(an)o(y)j(macro)e(de\014nitions.)18 b(Here)d(are)g(some)e(example)f
+(headings:)1042 2940 y(34)p eop
+%%Page: 35 36
+35 35 bop 177 42 a Fl(@A@<Feed)20 b(the)h(Penguins)g(and)g(Save)g(the)g
+(World@>)177 91 y(@B@<Feed)f(the)h(Penguins@>)177 141 y(@C@<Feed)f(the)h
+(little)g(penguins@>)177 191 y(@C@<Feed)f(the)h(big)h(penguins@>)177
+241 y(@B@<Save)e(the)h(World@>)177 291 y(@C@<Save)f(Europe@>)177
+340 y(@C@<Save)g(Africa@>)177 440 y(@C)i(This)f(heading)f(hasn't)g(been)h
+(given)g(an)h(explicit)e(name,)g(but)i(will)f(inherit)f(the)177
+490 y(name)h(\\p{Save)f(the)i(rest)f(of)g(the)g(world})g(from)g(the)g(macro)g
+(definition)e(below.)177 589 y(@$@<Save)h(the)h(rest)g(of)h(the)f
+(world@>@Z==@{...@)o(})177 706 y Fr(The)16 b(feature)h(of)e(ha)o(ving)g
+(unnamed)f(sections)j(inherit)f(the)g(name)f(of)g(the)h(\014rst)h(macro)e
+(de\014ned)h(within)f(their)177 756 y(scop)q(e)f(is)f(presen)o(t)h(b)q
+(ecause)g(a)f(common)c(st)o(yle)k(of)f(writing)g(in)g(F)m(unnelW)m(eb)h(is)f
+(to)h(ha)o(v)o(e)f(one)h(section)g(p)q(er)h(macro)177 806 y(de\014nition.)26
+b(Because,)19 b(under)e(this)g(st)o(yle,)g(eac)o(h)g(section)g(describ)q(es)i
+(a)d(single)h(macro,)e(it)i(usually)e(turns)j(out)177 855 y(that)12
+b(the)h(macro)e(name)g(mak)o(es)g(a)h(go)q(o)q(d)g(name)f(for)h(the)h
+(section)g(to)q(o.)k(The)c(inheritance)g(mec)o(hanism)c(prev)o(en)o(ts)177
+905 y(duplication)k(of)g(the)i(name.)177 980 y(Apart)d(from)e(the)i
+(requiremen)o(t)g(that)g(eac)o(h)g(section)g(ha)o(v)o(e)g(an)f(explicit)g(or)
+h(implicit)d(name)i(and)g(that)h(its)g(sp)q(ecial)177 1030
+y(sequence)21 b(app)q(ear)e(at)f(the)h(start)g(of)f(a)g(line,)h(the)g(only)f
+(other)h(restriction)g(on)g(section)g(headings)f(is)h(that)f(a)177
+1080 y(section)c(heading)e(at)h(lev)o(el)f Fn(n)h Fr(cannot)g(app)q(ear)g
+(immediately)c(after)k(a)g(section)g(heading)g(at)g(lev)o(el)f
+Fn(n)7 b Fq(\000)g Fr(1)13 b(or)g(less.)177 1129 y(In)k(other)g(w)o(ords,)f
+(the)h(hierarc)o(h)o(y)g(cannot)g(b)q(e)g(brok)o(en.)26 b(F)m(or)16
+b(example,)f(an)h Fl(@C)g Fr(cannot)h(app)q(ear)f(after)h(an)f
+Fl(@A)177 1179 y Fr(heading)e(unless)g(there)i(is)d(an)h(in)o(terv)o(ening)g
+Fl(@B)f Fr(heading.)177 1296 y Fl(@A@<The)21 b(Top)g(Heading@>)177
+1346 y(@C@<Level)f(C)i(here)f(is)g(not)g(allowed)g(after)f(an)i(A)f(and)g
+(will)g(cause)g(an)h(error@>)177 1462 y Fr(This)14 b(rule)g(extends)i(to)e
+(the)h(start)f(of)g(the)g(\014le;)g(if)f(there)j(are)e(an)o(y)g(headings)g
+(at)g(all,)e(the)j(\014rst)g(one)f(m)o(ust)f(b)q(e)i(an)177
+1512 y Fl(@A)f Fr(heading.)j(The)e(follo)o(wing)c(\014le,)i(while)h(short,)g
+(is)f(in)h(error.)177 1628 y Fl(This)21 b(FunnelWeb)f(input)h(file)g(is)g(in)
+h(error)e(because)h(its)g(first)g(section)f(heading)177 1678
+y(is)i(at)f(level)g(C)g(rather)g(than)g(level)g(A.)177 1728
+y(@C@<2@>)177 1869 y Fd(1.7.4)55 b(Understanding)19 b(the)f(Prin)n(ted)h(Do)r
+(cumen)n(tation)177 1971 y Fr(T)o(yp)q(e)g(in)f(the)h(follo)o(wing)c(\014le,)
+k(and)g(use)g(F)m(unnelW)m(eb)f(and)g(T)1173 1980 y(E)1196
+1971 y(X)g(to)h(generate)g(the)g(corresp)q(onding)g(prin)o(ted)177
+2021 y(do)q(cumen)o(tation.)177 2137 y Fl(@A@<Table)h(of)h(Contents@>)177
+2237 y(@t)h(table_of_conten)o(ts)177 2337 y(@A@<Macros)e(for)h(Moral)g
+(Support@>)177 2436 y(The)g(following)f(macro)h(contain)f(comments)h(that)f
+(provide)h(moral)g(support)f(in)h(the)177 2486 y(output)g(code.)177
+2586 y(@$@<Programmer's)e(Cheer@>@M==@{)177 2635 y(--)j(Shift)e(to)i(the)f
+(left!)177 2685 y(--)h(Shift)e(to)i(the)f(right!)177 2735 y(--)h(Pop)f(up,)g
+(push)g(down!)177 2785 y(--)h(Byte!)e(Byte!)h(Byte!)177 2835
+y(--)h(\(From)e("The)h(New)g(Hacker's)g(Dictionary"\).)1042
+2940 y Fr(35)p eop
+%%Page: 36 37
+36 36 bop 177 42 a Fl(@})177 141 y(The)21 b(next)g(macro)g(is)g(similar)g
+(but)g(is)g(distributed)f(throughout)g(the)h(program.)177 191
+y(@$@<Hacker's)e(Cheer@>+=@{@+--)g(Pointer)i(to)g(the)g(left@+@})177
+291 y(@A@<An)g(Extremely)f(Imperative)f(Stack)i(Abstraction@>)177
+390 y(@B@<Define)f(the)h(Stack@>)177 440 y(@$@<Hacker's)e(Cheer@>+=@{--)h
+(Pointer)g(to)h(the)g(right@+@})177 490 y(@$@<Stack)f(Type@>@Z==@{type)f
+(stack)h(=)i(record)e(...)i(end;@})177 589 y(@B@<Push)e(the)h(Stack@>)177
+639 y(@$@<Hacker's)e(Cheer@>+=@{--)h(Hack)h(that)g(code@+@})177
+689 y(@$@<Push)f(Procedure@>@Z==@{@-)177 739 y(procedure)g(push\(var)g
+(b:stack;)g(v:value\);)g(@<Programmer's)f(Cheer@>)i({...}@})177
+839 y(@B@<Pop)g(the)g(Stack@>)177 888 y(@$@<Hacker's)e(Cheer@>+=@{--)h
+(Tight!)g(Tight!)h(Tight!@+@})177 938 y(@$@<Pop)g(Procedure@>@Z==)o(@{@-)177
+988 y(procedure)f(pop\(var)g(b:stack\);)g(@<Programmer's)f(Cheer@>)i({...}@})
+177 1088 y(@B@<Rough)f(the)h(Stack)g(Up)g(a)h(Bit@>)177 1137
+y(@$@<Hacker's)d(Cheer@>+=@{--)h(\(RNW,)g(04-Jan-1991\).@+@})177
+1187 y(@$@<Rough)g(Procedure@>@Z==@{@)o(-)177 1237 y(procedure)g(rough\(var)g
+(b:stack\);)g(@<Hacker's)g(Cheer@>)g({...}@})177 1337 y(@O@<dummy.txt@>==@)o
+({dumm)o(y@+@})177 1525 y Fr(An)15 b(examination)e(of)h(the)i(prin)o(ted)f
+(do)q(cumen)o(tation)f(rev)o(eals)i(a)f(lot)f(ab)q(out)h(ho)o(w)g(F)m(unnelW)
+m(eb's)f(presen)o(tation)177 1574 y(w)o(orks.)177 1678 y(First,)f(notice)g
+(ho)o(w)g(the)g Fl(@t)g Fr(t)o(yp)q(esetter)i(directiv)o(e)f(at)e(the)i(top)f
+(of)f(the)h(\014le)g(has)g(caused)h(a)f(table)g(of)f(con)o(ten)o(ts)i(to)177
+1728 y(app)q(ear.)24 b(This)15 b(is)h(one)f(of)g(F)m(unnelW)m(eb's)g(t)o(yp)q
+(esetting)i(features)f(and)g(is)f(discussed)j(in)d(a)g(later)h(section.)23
+b(The)177 1777 y(table)14 b(of)f(con)o(ten)o(ts)i(sho)o(ws)f(that)g(the)h
+(sections)g(ha)o(v)o(e)f(b)q(een)h(n)o(um)o(b)q(ered)e(hierarc)o(hically)m(.)
+177 1881 y(No)o(w)18 b(tak)o(e)h(a)f(lo)q(ok)g(at)g(the)h(t)o(yp)q(eset)i
+(macro)c(de\014nitions.)32 b(Most)19 b(imp)q(ortan)o(t)e(are)i(the)g(n)o(um)o
+(b)q(ers)f(in)g(square)177 1931 y(brac)o(k)o(ets)h(that)f(follo)o(w)e(eac)o
+(h)i(macro)f(name.)28 b(As)19 b(w)o(ell)e(as)h(n)o(um)o(b)q(ering)e(the)i
+(headings)g Fm(hier)n(ar)n(chic)n(al)r(ly)p Fr(,)f(F)m(un-)177
+1980 y(nelW)m(eb)e Fm(indep)n(endently)h Fr(n)o(um)o(b)q(ers)f(the)g(macro)f
+(de\014nitions)h Fm(se)n(quential)r(ly)p Fr(.)21 b(The)16 b(\014rst)g(macro)d
+(de\014nition)i(\(for)177 2030 y(\\Programmer's)h(Cheer"\))j(is)e(n)o(um)o(b)
+q(ered)h(1.)30 b(The)19 b(second)g(\(for)e(\\Hac)o(k)o(er's)i(Cheer"\))g(is)f
+(n)o(um)o(b)q(ered)f(2)h(and)177 2080 y(so)f(on.)27 b(Note)17
+b(that)g(it)f(is)h(not)f(macros)g(that)h(are)g(n)o(um)o(b)q(ered,)g(but)g
+(macro)f(de\014nitions.)26 b(The)18 b(distinction)e(is)177
+2130 y(necessary)e(b)q(ecause)g(some)d(macros)g(\(suc)o(h)i(as)f(the)h(\\Hac)
+o(k)o(er's)f(Cheer")h(macro\))e(are)h(additiv)o(e.)17 b(It)12
+b(is)g(imp)q(ortan)o(t)177 2180 y(to)k(realize)g(that)f(there)i(is)f(no)f
+(relationship)g(b)q(et)o(w)o(een)i(the)f(n)o(um)o(b)q(ers)g(of)f(the)h
+(headings)f(and)h(the)g(n)o(um)o(b)q(ers)f(of)177 2229 y(the)g(macro)d
+(de\014nitions.)177 2333 y(No)o(w)h(tak)o(e)g(a)f(lo)q(ok)g(at)h(the)g(notes)
+h(b)q(eneath)f(the)h(b)q(o)q(dy)f(of)f(eac)o(h)h(macro)f(de\014nition.)17
+b(All)12 b(macro)g(de\014nitions)g(are)177 2383 y(follo)o(w)o(ed)i(b)o(y)i(a)
+f(note)h(indicating)e(the)j(de\014nitions)e(in)g(whic)o(h)h(the)g(macro)e(is)
+i(called.)23 b(Additiv)o(e)15 b(macros)g(ha)o(v)o(e)177 2432
+y(an)f(additional)e(list,)h(listing)g(the)h(de\014nitions)g(in)f(whic)o(h)h
+(they)h(are)f(de\014ned.)177 2536 y(Finally)m(,)20 b(tak)o(e)g(a)g(lo)q(ok)f
+(at)i(the)g(macro)e Fm(c)n(al)r(l)h Fr(of)f(\\Programmer's)f(Cheer")j(in)f
+(section)h(3.2)f(of)f(the)i(prin)o(ted)177 2586 y(do)q(cumen)o(tation.)d
+(Macro)d(calls)f(are)g(set)h(in)f(slan)o(ted)h(roman)d(\(so)j(that)f(they)h
+(can)g(b)q(e)f(distinguished)h(from)d(the)177 2635 y Fl(tt)22
+b(font)13 b Fr(co)q(de\))j(and)e(are)h(follo)o(w)o(ed)e(b)o(y)h(the)h(n)o(um)
+o(b)q(er)f(of)g(the)h(de\014ning)g(macro)e(de\014nition.)20
+b(In)14 b(this)h(case,)g(the)177 2685 y(macro)d(w)o(as)h(de\014ned)h(in)e
+(de\014nition)h(1.)k(F)m(urther)d(do)o(wn,)e(the)i(call)e(to)h(the)h(\\Hac)o
+(k)o(er's)f(Cheer")h(macro)d(indicates)177 2735 y(that)h(the)h(macro)e(w)o
+(as)h(de\014ned)h(in)f(de\014nition)f(2.)18 b(In)12 b(fact)g(the)g(macro)f
+(is)h(additiv)o(e)g(and)f(de\014nition)h(2)g(is)g(just)g(the)177
+2785 y(\014rst)g(of)e(man)o(y)f(de\014nitions.)17 b(T)m(o)10
+b(list)h(all)f(de\014nitions)g(in)h(a)f(call)h(to)f(an)h(additiv)o(e)f(macro)
+g(w)o(ould)g(b)q(e)i(unnecessarily)177 2835 y(messy)m(.)1042
+2940 y(36)p eop
+%%Page: 37 38
+37 37 bop 177 42 a Fd(1.7.5)55 b(Literals)17 b(and)j(Emphasis)177
+144 y Fr(When)d(writing)f(ab)q(out)h(program)e(co)q(de,)j(it)f(is)g(often)g
+(desirable)g(to)g(b)q(e)g(able)g(to)g(indicate)f(that)h(a)g(particular)177
+194 y(w)o(ord)11 b(or)g(phrase)h(b)q(e)g(t)o(yp)q(eset)h(in)d(the)i(same)e
+(manner)g(as)h(the)h(co)q(de)g(b)q(eing)f(discussed.)19 b(F)m(or)11
+b(example,)f(one)h(migh)o(t)177 244 y(talk)16 b(ab)q(out)h(the)g(v)n(ariable)
+e Fl(topval)h Fr(or)g(the)i(pro)q(cedure)g Fl(stack)p 1202
+244 14 2 v 15 w(pop)e Fr(and)g(wish)h(for)f(them)g(to)g(b)q(e)i(t)o(yp)q
+(eset)g(as)177 294 y(they)d(are)f(in)f(this)i(sen)o(tence.)20
+b(This,)13 b(of)h(course,)h(is)e(simple)g(to)h(do)f(using)h(T)1355
+302 y(E)1378 294 y(X)g(macros,)f(but)h(use)h(of)e(the)i(\(more)177
+343 y(general\))h(F)m(unnelW)m(eb)f(t)o(yp)q(esetting)h(directiv)o(es)g(to)g
+(do)f(the)h(same)e(w)o(ork)h(has)h(the)g(added)f(b)q(ene\014t)i(of)e(k)o
+(eeping)177 393 y(the)g(do)q(cumen)o(t)e(p)q(ortable)h(to)g(other)g(t)o(yp)q
+(esetters.)177 469 y(F)m(unnelW)m(eb)g(pro)o(vides)h(t)o(w)o(o)f(in-text)g(t)
+o(yp)q(e)h(mo)q(di\014cation)e(constructs:)21 b Fl(@)p Fq(f)p
+Fl(...@)p Fq(g)13 b Fr(and)h Fl(@/...@/)f Fr(where)j Fn(:)7
+b(:)g(:)13 b Fr(is)177 518 y(ra)o(w)i(text.)20 b(The)15 b Fl(@)p
+Fq(f)p Fl(...@)p Fq(g)e Fr(construct)j(sets)g(the)g(enclosed)f(text)g(in)f
+(the)i(same)d(manner)h(as)h(the)g(text)g(of)f(macro)177 568
+y(de\014nitions)c(is)g(set.)18 b(The)11 b Fl(@/...@/)d Fr(construct)k
+(emphasises)e(its)h(enclosed)g(text)g(in)e(some)h(t)o(yp)q(esetter-dep)q
+(ende)q(n)o(t)177 618 y(fashion.)17 b(T)o(ypically)c(the)h(emphasised)g(text)
+g(is)g(set)h(in)e(italics.)177 693 y(Here)i(is)f(an)g(example)e(of)i(ho)o(w)f
+(these)i(constructs)h(migh)o(t)c(b)q(e)j(used:)177 812 y Fl(The)21
+b(following)f(procedure)g(@{put_sloth@})f(writes)i(the)g(@{sloth@})f
+(variable)g(to)177 861 y(the)h(output)g(file.)g(Note:)f(@/The)h(output)g
+(file)g(must)g(be)g(opened)g(for)g(writing)177 911 y(at)h(this)f(point)f(or)i
+(the)f(program)f(will)h(crash!@/)177 1055 y Fd(1.7.6)55 b(Adding)19
+b(a)g(Header)f(P)n(age)177 1157 y Fr(F)m(unnelW)m(eb)h(pro)o(vides)h(a)f(few)
+h(t)o(yp)q(esetter-indep)q(enden)o(t)j(t)o(yp)q(esetting)e(constructs)g(whic)
+o(h)f(are)g(sp)q(eci\014cally)177 1207 y(designed)14 b(for)f(the)g
+(construction)i(of)d(header)i(pages.)k(These)d(constructs)g(are)e(usually)g
+(b)q(est)h(placed)f(at)g(the)h(top)177 1257 y(of)e(y)o(our)f(input)h(\014le,)
+g(but)h(can)f(b)q(e)h(placed)f(an)o(ywhere)h(the)f(do)q(cumen)o(t)g(if)f
+(desired)i(to)f(create)i(header)f(pages)f(righ)o(t)177 1307
+y(through.)24 b(The)16 b(t)o(w)o(o)f(main)f(restrictions)j(on)e(these)i
+(constructs)h(is)e(that)g(the)g Fl(@t)f Fr(m)o(ust)g(start)h(at)g(the)g
+(start)g(of)177 1356 y(a)h(line)f(\(whic)o(h)h(cannot)g(con)o(tain)f(commen)o
+(ts\),)f(and)i(that)g(the)g(constructs)i(cannot)e(app)q(ear)g(inside)g(a)f
+(macro)177 1406 y(de\014nition.)i(Here)d(is)f(what)f(the)i(top)f(of)f(an)h
+(input)f(\014le)h(migh)o(t)e(lo)q(ok)h(lik)o(e:)177 1524 y
+Fl(@t)22 b(vskip)e(40)i(mm)177 1574 y(@t)g(title)e(titlefont)g(centre)h
+("Hairy)f(Wombat")177 1624 y(@t)i(title)e(titlefont)g(centre)h("Simulation")
+177 1674 y(@t)h(vskip)e(10)i(mm)177 1723 y(@t)g(title)e(smalltitlefont)f
+(centre)i("A)g(Program)f(in)i(Six)f(Parts")177 1773 y(@t)h(title)e
+(smalltitlefont)f(centre)i("Simulating)e(the)i(Life)g(of)h(Some)f(Hairy)g
+(Wombats")177 1823 y(@t)h(vskip)e(20)i(mm)177 1873 y(@t)g(title)e(normalfont)
+g(left)h("By)g(Zqitzypbuswapzra)e(Ypongtatoslrtzz")177 1923
+y(@t)j(new_page)177 1973 y(@t)g(table_of_conten)o(ts)177 2022
+y(@t)g(new_page)177 2140 y Fr(The)14 b Fl(@t)e Fr(at)h(the)h(start)g(of)e
+(eac)o(h)i(line)e(indicates)i(that)f(eac)o(h)g(en)o(tire)h(line)f(is)g(a)g(t)
+o(yp)q(esetter)i(directiv)o(e.)j(The)c Fl(vskip)177 2190 y
+Fr(directiv)o(e)i(instructs)h(F)m(unnelW)m(eb)e(to)h(skip)f(some)g(v)o
+(ertical)g(space)i(\(measured)f(in)f(milli)o(m)o(etres\).)22
+b(The)16 b Fl(title)177 2240 y Fr(directiv)o(e)f(instructs)h(F)m(unnelW)m(eb)
+e(to)h(p)q(osition)f(a)g(string)g(of)g(text)i(on)e(a)g(single)g(line)g(of)g
+(its)h(o)o(wn.)20 b(Options)14 b(are)177 2290 y(pro)o(vided)i(for)g(fon)o(t)f
+(and)h(alignmen)o(t.)23 b(The)16 b(\014rst)h(w)o(ord)f(after)g
+Fl(title)f Fr(is)h(the)h(fon)o(t)e(whic)o(h)h(can)h(b)q(e)f(one)h(of)e(\(in)
+177 2340 y(decreasing)j(order)f(of)e(size\))j Fl(titlefont)p
+Fr(,)c Fl(smalltitlefont)p Fr(,)g(and)i Fl(normalfont)p Fr(.)23
+b(The)17 b(second)g(w)o(ord)g(after)177 2389 y Fl(title)d Fr(is)i(the)g
+(desired)g(alignmen)o(t)d(of)i(the)h(text.)23 b(The)16 b(options)f(here)h
+(are)g Fl(left)p Fr(,)f Fl(right)p Fr(,)f(and)h Fl(centre)p
+Fr(.)21 b(The)177 2439 y Fl(new)p 246 2439 V 15 w(page)16 b
+Fr(directiv)o(e)g(instructs)i(F)m(unnelW)m(eb)d(to)h(skip)g(to)g(a)g(new)h
+(page.)25 b(Finally)m(,)14 b(the)j Fl(table)p 1704 2439 V 14
+w(of)p 1762 2439 V 15 w(contents)177 2489 y Fr(directiv)o(e)e(instructs)g(F)m
+(unnelW)m(eb)e(to)h(insert)h(a)e(table)h(of)f(con)o(ten)o(ts)i(at)f(that)g(p)
+q(oin)o(t)f(in)h(the)g(text.)177 2632 y Fd(1.7.7)55 b(Commen)n(ts)177
+2735 y Fr(A)14 b(F)m(unnelW)m(eb)g(commen)o(t)d(commences)i(with)h(the)h
+Fl(@!)j Fr(sequence)e(and)d(con)o(tin)o(ues)i(up)f(to,)f(but)h(not)g
+(including,)177 2785 y(the)h(end)f(of)g(line)g(mark)o(er)f(at)h(the)g(end)h
+(of)e(the)i(line)f(that)g(the)h(commen)o(t)c(sequence)17 b(is)d(on.)k(Commen)
+o(ts)12 b(can)i(b)q(e)177 2835 y(placed)g(on)g(an)o(y)f(line)h(except)h
+Fl(@i)f Fr(include,)f Fl(@p)g Fr(pragma,)f(and)i Fl(@t)f Fr(t)o(yp)q(esetter)
+j(directiv)o(e)f(lines.)1042 2940 y(37)p eop
+%%Page: 38 39
+38 38 bop 177 42 a Fr(The)17 b(text)f(follo)o(wing)e(the)j(F)m(unnelW)m(eb)e
+(commen)o(t)f(sequence)k Fl(@!)25 b Fr(will)15 b(not)h(app)q(ear)g(in)g(the)g
+(pro)q(duct)h(\014les)g(or)177 91 y(the)c(do)q(cumen)o(tation)e(\014le.)17
+b(It)12 b(is)g(only)g(for)f(the)i(ey)o(es)g(of)f(those)h(who)e(b)q(other)i
+(to)f(lo)q(ok)g(at)g(the)g(original)f Fl(.fw)g Fr(input)177
+141 y(\014le.)18 b(T)o(ypically)12 b(F)m(unnelW)m(eb)i(commen)o(ts)e(are)i
+(used)h(to)e(describ)q(e)j(the)e(w)o(a)o(y)g(in)f(whic)o(h)h(particular)f(F)m
+(unnelW)m(eb)177 191 y(constructs)j(are)e(b)q(eing)g(used.)19
+b(Example:)177 304 y Fl(@!)j(This)f(macro)f(is)i(really)e(revolting.)g
+(Please)g(forgive)h(me.)g(I)h(had)f(to)g(do)h(it!)177 354 y(@$@<Revolt)e
+(Me@>==@{@-)177 404 y(@#X@\(@#Y@\(@#Z@,@"@)o(#Z@"@)o(\)=6@,)o(Teapo)o(t@,@")o
+(@#Q@)o(\(45@\))o(@"@,T)o(iger@)o(\)@})177 564 y Fi(1.8)70
+b(A)23 b(Complete)d(Example)177 679 y Fr(T)m(o)c(\014nish)h(o\013)f(the)h(c)o
+(hapter,)h(a)e(complete)g(example)f(of)h(a)h(F)m(unnelW)m(eb)f(input)g
+(\014le)h(is)f(presen)o(ted.)28 b(Although)177 729 y(unrealistically)13
+b(short,)h(it)f(giv)o(es)h(a)g(b)q(etter)h(idea)f(of)f(what)h(a)f(t)o(ypical)
+g(F)m(unnelW)m(eb)h Fl(.fw)f Fr(\014le)h(lo)q(oks)f(lik)o(e.)177
+842 y Fl(@!----------------)o(-----)o(-----)o(-----)o(-----)o(---!)177
+892 y(@!)43 b(Start)21 b(of)g(FunnelWeb)f(Example)h(.fw)g(File)43
+b(!)177 942 y(@!----------------)o(-----)o(-----)o(-----)o(-----)o(---!)177
+1041 y(@t)22 b(vskip)e(40)i(mm)177 1091 y(@t)g(title)e(titlefont)g(centre)h
+("Powers:")177 1141 y(@t)h(title)e(titlefont)g(centre)h("An)g(Example)f(of")
+177 1191 y(@t)i(title)e(titlefont)g(centre)h("A)g(Short")177
+1241 y(@t)h(title)e(titlefont)g(centre)h("FunnelWeb)f(.fw)h(File")177
+1290 y(@t)h(vskip)e(10)i(mm)177 1340 y(@t)g(title)e(smalltitlefont)f(centre)i
+("by)g(Ross)g(Williams")177 1390 y(@t)h(title)e(smalltitlefont)f(centre)i
+("26)g(January)f(1992")177 1440 y(@t)i(vskip)e(20)i(mm)177
+1490 y(@t)g(table_of_conten)o(ts)177 1589 y(@A@<FunnelWeb)d(Example)i
+(Program@>)177 1689 y(This)43 b(program)20 b(writes)43 b(out)21
+b(each)43 b(of)21 b(the)43 b(first)21 b(@{p@})42 b(powers)21
+b(of)43 b(the)21 b(first)43 b(@{n@})177 1739 y(integers.)20
+b(These)43 b(constant)20 b(parameters)g(are)h(located)42 b(here)21
+b(so)g(that)g(they)43 b(are)21 b(easy)g(to)177 1789 y(change.)177
+1888 y(@$@<Constants@>==@)o({@-)177 1938 y(n)h(:)f(constant)f(natural)h(:=)g
+(10;)109 b(--)21 b(How)g(many)g(numbers?)f(\(Ans:)h([1,n]\).)177
+1988 y(p)h(:)f(constant)f(natural)h(:=)43 b(5;)109 b(--)21
+b(How)g(many)g(powers?)42 b(\(Ans:)21 b([1,p]\).@})177 2087
+y(@B)h(Here)f(is)43 b(the)21 b(outline)f(of)i(the)43 b(program.)20
+b(This)h(FunnelWeb)f(file)42 b(generates)20 b(a)i(single)177
+2137 y(Ada)f(output)g(file)43 b(called)20 b(@{Power.ada@}.)f(The)i(main)g
+(program)g(consists)42 b(of)21 b(a)g(loop)g(that)177 2187 y(iterates)f(once)h
+(for)g(each)g(number)g(to)g(be)h(written)e(out.)177 2287 y
+(@O@<Power.ada@>==@)o({@-)177 2337 y(@<Pull)h(in)g(packages@>)177
+2436 y(procedure)f(example)g(is)243 2486 y(@<Constants@>)177
+2536 y(begin)h(--)g(example)243 2586 y(for)g(i)g(in)h(1..n)f(loop)308
+2635 y(@<Write)f(out)h(the)h(first)e(p)i(powers)f(of)g(i)g(on)h(a)f(single)g
+(line@>)243 2685 y(end)g(loop;)177 2735 y(end)g(example;)177
+2785 y(@})1042 2940 y Fr(38)p eop
+%%Page: 39 40
+39 39 bop 177 42 a Fl(@B)22 b(In)f(this)g(section,)42 b(we)21
+b(pull)g(in)h(the)f(packages)f(that)h(this)g(program)42 b(needs)21
+b(to)g(run.)g(In)177 91 y(fact,)g(all)g(we)g(need)g(is)h(the)f(IO)g(package)g
+(so)g(that)g(we)g(can)h(write)e(out)i(the)f(results.)f(To)h(use)177
+141 y(the)g(IO)h(package,)e(we)h(first)g(of)g(all)h(need)42
+b(to)22 b(haul)f(it)g(in)g(\(@{with)g(text_io@}\))e(and)j(then)177
+191 y(we)g(need)f(to)g(make)g(all)g(its)g(identifiers)f(visible)g(at)h(the)h
+(top)f(level)g(\(@{use)f(text_io@}\).)177 291 y(@$@<Pull)g(in)i
+(packages@>==@{wi)o(th)d(text_io;)h(use)h(text_io;@})177 390
+y(@B)h(Here)f(is)43 b(the)21 b(bit)g(that)g(writes)g(out)43
+b(the)21 b(first)f(@{p@})h(powers)g(of)43 b(@{i@}.)20 b(The)i(power)177
+440 y(values)43 b(are)f(calculated)g(incrementally)f(in)i(@{ip@})f(to)i
+(avoid)e(the)h(use)g(of)g(the)177 490 y(exponentiation)19 b(operator.)177
+589 y(@$@<Write)h(out)h(the)g(first)g(p)h(powers)e(of)i(i)f(on)h(a)f(single)g
+(line@>==@{@-)177 639 y(declare)243 689 y(ip)g(:)h(natural)e(:=)h(1;)177
+739 y(begin)243 789 y(for)g(power)f(in)i(1..p)f(loop)308 839
+y(ip:=ip*i;)308 888 y(put\(natural'image)o(\(ip\))d(&)k(")g("\);)243
+938 y(end)f(loop;)243 988 y(new_line;)177 1038 y(end;@})177
+1137 y(@!----------------)o(-----)o(-----)o(-----)o(-----)o(---!)177
+1187 y(@!)65 b(End)21 b(of)h(FunnelWeb)e(Example)g(.fw)h(File)65
+b(!)177 1237 y(@!----------------)o(-----)o(-----)o(-----)o(-----)o(---!)177
+1399 y Fi(1.9)70 b(Summary)177 1515 y Fr(This)17 b(c)o(hapter)h(has)f(pro)o
+(vided)g(an)g(in)o(tro)q(duction)g(to)g(F)m(unnelW)m(eb)f(and)h(a)g(tutorial)
+f(that)i(co)o(v)o(ers)f(most)f(of)h(its)177 1565 y(features.)h(F)m(unnelW)m
+(eb's)11 b(functionalit)o(y)f(can)h(b)q(e)h(split)f(in)o(to)g(t)o(w)o(o)g
+(parts:)17 b(a)11 b(macro)f(prepro)q(cessor,)k(and)d(supp)q(ort)177
+1615 y(for)h(t)o(yp)q(esetting.)18 b(The)13 b(reader)g(should)f(b)q(e)g(a)o
+(w)o(are)g(that)g(the)h(examples)e(in)g(this)h(c)o(hapter,)h(constructed)h
+(as)e(they)177 1664 y(w)o(ere)h(to)e(demonstrate)g(particular)g(features)i
+(of)e(F)m(unnelW)m(eb,)g(do)g(not)g(presen)o(t)i(a)e(realistic)h(picture)g
+(of)f(the)h(b)q(est)177 1714 y(use)j(of)f(the)h(to)q(ol.)k(Only)14
+b(the)h(\014nal)f(example)f(of)h(this)h(c)o(hapter)g(comes)f(close.)20
+b(The)15 b(reader)h(should)e(study)h(this)177 1764 y(last)g(example)f
+(carefully)h(and)g(then)h(write)f(some)f(real)h(programs)f(using)h(F)m
+(unnelW)m(eb)g(b)q(efore)h(pro)q(ceeding)g(to)177 1814 y(Chapter)c(2)f(whic)o
+(h)g(pro)o(vides)g(more)f(adv)n(anced)h(information.)k(A)o(t)c(this)g(stage)h
+(it)e(do)q(es)i(not)f(particularly)f(matter)177 1864 y(exactly)i(ho)o(w)e(y)o
+(ou)h(use)h(F)m(unnelw)o(eb,)g(as)f(ev)o(ery)o(one)h(dev)o(elops)g(their)f(o)
+o(wn)g(st)o(yle)h(an)o(yw)o(a)o(y)m(.)j(The)d(imp)q(ortan)o(t)d(thing)177
+1914 y(is)14 b(to)g(try)g(it.)1042 2940 y(39)p eop
+%%Page: 40 41
+40 40 bop 1042 2940 a Fr(40)p eop
+%%Page: 41 42
+41 41 bop 177 373 a Fj(Chapter)34 b(2)177 602 y Fp(F)-10 b(unnelW)g(eb)41
+b(Hin)m(ts)177 838 y Fr(Whereas)12 b(Chapter)f(1)g(pro)o(vides)g(an)f(in)o
+(tro)q(duction)h(to)g(F)m(unnelW)m(eb)f(and)g(Chapter)i(3)e(a)h
+(de\014nition,)f Fm(this)h Fr(c)o(hapter)177 888 y(con)o(tains)i(hin)o(ts)g
+(ab)q(out)f(ho)o(w)g(F)m(unnelW)m(eb)h(can)g(b)q(e)g(used.)19
+b(This)12 b(c)o(hapter)i(probably)e(should)g(not)h(b)q(e)g(read)h(un)o(til)
+177 938 y(the)j(reader)g(has)f(already)g(commenced)f(using)h(F)m(unnelW)m
+(eb,)g(or)g(at)f(the)i(v)o(ery)g(least,)f(tried)g(out)g(some)g(of)f(the)177
+987 y(examples)f(in)h(Chapter)h(1.)21 b(Those)15 b(who)g(\014nd)g(themselv)o
+(es)h(using)e(F)m(unnelW)m(eb)h(frequen)o(tly)g(should)g(read)h(this)177
+1037 y(c)o(hapter)f(at)f(some)f(stage)h(so)g(as)g(to)g(ensure)h(that)f(they)h
+(are)f(getting)g(the)g(most)f(out)h(of)f(it.)177 1108 y(Most)19
+b(of)f(the)h(examples)f(in)g(this)h(c)o(hapter)h(ha)o(v)o(e)e(b)q(een)i
+(placed)f(in)f(the)h(F)m(unnelW)m(eb)g(regression)h(test)f(suite)177
+1157 y(whic)o(h)14 b(should)g(b)q(e)g(a)o(v)n(ailable)e(in)h(a)h(directory)g
+(called)g Fl(/fwdir/tests/)p Fr(.)h(The)f(\014les)h(to)e(examine)g(are)h
+Fl(hi01.fw)177 1207 y Fr(through)g Fl(hi10.fw)p Fr(.)177 1363
+y Fi(2.1)70 b(Macro)24 b(Names)177 1475 y Fr(When)17 b(using)f(F)m(unnelW)m
+(eb,)g(the)h(c)o(hoice)g(of)f(macro)f(names)h(can)g(b)q(e)h(as)g(imp)q(ortan)
+o(t)e(to)h(the)h(readabilit)o(y)e(of)h(a)177 1525 y(program)d(as)h(the)h(c)o
+(hoice)g(of)f(program)f(iden)o(ti\014ers,)h(and)g(it)g(is)h(imp)q(ortan)o(t)d
+(that)j(the)g(user)g(kno)o(w)f(the)h(range)f(of)177 1574 y(options)g(a)o(v)n
+(ailable.)295 1645 y Fo(Names)i(are)f(case)h(sensitiv)o(e)d(and)i(exact)g
+(matc)o(hing:)i Fr(Macro)c(names)g(are)h(case)h(sensitiv)o(e)295
+1695 y(and)e(are)f(matc)o(hed)g(exactly)m(.)17 b(The)c(strings)g(used)g(as)g
+(a)f(macro)f(name)g(at)h(the)h(p)q(oin)o(t)f(of)g(de\014nition)295
+1744 y(and)i(call)f(m)o(ust)g(b)q(e)h Fm(identic)n(al)g Fr(for)g(the)g
+(connection)h(to)e(b)q(e)i(made.)295 1815 y Fo(Names)e(can)f(con)o(tain)f(an)
+o(y)h(prin)o(tabl)o(e)e(c)o(haracter:)16 b Fr(F)m(unnelW)m(eb)10
+b(is)h(less)h(restrictiv)o(e)g(ab)q(out)295 1865 y(its)19 b(macro)d(names)i
+(than)g(most)f(programming)e(languages)i(are)i(ab)q(out)f(their)h(iden)o
+(ti\014ers.)32 b(A)295 1914 y(F)m(unnelW)m(eb)15 b(macro)e(name)h(can)h(con)o
+(tain)g(an)o(y)f(sequence)j(of)e(prin)o(table)f(c)o(haracters,)j(including)
+295 1964 y(blanks)12 b(and)f(punctuation.)18 b(Names)11 b(can)h(start)g(and)g
+(end)g(with)f(an)o(y)h(c)o(haracter.)18 b(Names)11 b(cannot)295
+2014 y(cross)k(line)f(b)q(oundaries.)k(The)d(follo)o(wing)c(are)j(all)f
+(legal)g(macro)f(names:)352 2115 y Fl(@<This)20 b(macro)h(expands)f(to)i
+(some)f(really)f(bad)h(code@>)352 2165 y(@<@>)352 2215 y(@<453)f(#$)i(\045&#)
+f(--===~~1">>>@>)352 2265 y(@<<@>)352 2314 y(@<<>@>)352 2364
+y(@<a)g(b)g(c)h(d)f(e)h(f)g(g@>)352 2414 y(@<)152 b(!)108 b(@>)352
+2464 y(@<??)20 b(...@>)352 2514 y(@<"Who's)g(been)h(hacking)f(MY)h(program")f
+(said)h(Father)g(Bear.@>)352 2564 y(@<Update)f(the)h(maximum)f(and)h(return)g
+(for)g(more)g(data@>)295 2665 y Fo(Names)16 b(m)o(ust)d(b)q(e)i(no)g(more)f
+(than)g(a)i(maxim)o(um)d(limit)g(in)h(length:)i Fr(Names)c(can)i(b)q(e)g(no)
+295 2714 y(longer)e(than)h(a)f(prede\014ned)i(maxim)o(um)8
+b(length.)17 b(Curren)o(tly)c(this)f(length)h(cannot)f(b)q(e)i(mo)q
+(di\014ed.)177 2785 y(T)o(ypically)m(,)8 b(macro)h(names)g(will)f(consist)j
+(of)e(a)h(short)g(English)g(phrase)g(or)g(sen)o(tence)i(that)e(describ)q(es)i
+(the)f(con)o(ten)o(ts)177 2835 y(of)i(the)i(macro.)1042 2940
+y(41)p eop
+%%Page: 42 43
+42 42 bop 177 42 a Fi(2.2)70 b(Quic)n(k)22 b(Names)177 157
+y Fr(Sometimes)14 b(a)i(particular)g(macro)g(m)o(ust)f(b)q(e)i(used)g
+(extremely)f(often.)25 b(When)17 b(this)f(happ)q(ens)h(it)f(is)g(desirable)
+177 207 y(to)e(mak)o(e)f(the)i(macro's)e(name)g(as)h(short)h(as)f(p)q
+(ossible.)20 b(The)15 b(shortest)g(ordinary)f(F)m(unnelW)m(eb)g(macro)f(name)
+g(is)177 257 y(the)h(empt)o(y)f(name)g(\\)p Fl(@<@>)p Fr(",)f(whic)o(h)h(is)h
+(four)f(c)o(haracters)j(long.)h(Single-c)o(haracter)d(names)f(are)h(\014v)o
+(e)g(c)o(haracters)177 307 y(long.)177 381 y(T)m(o)h(cater)i(for)e(the)h
+(cases)h(where)g(really)e(short)h(names)f(are)h(needed,)h(F)m(unnelW)m(eb)e
+(pro)o(vides)h(a)f Fo(quic)o(k)i(name)177 431 y Fr(syn)o(tax)c(that)h(allo)o
+(ws)e(one-c)o(haracter)i(macro)e(names)h(to)g(b)q(e)h(sp)q(eci\014ed)g(in)f
+(t)o(w)o(o)g(less)h(c)o(haracters.)19 b(Quic)o(k)14 b(names)177
+481 y(tak)o(e)20 b(the)h(form)d(of)i(the)h(sp)q(ecial)f(c)o(haracter,)i
+(follo)o(w)o(ed)d(b)o(y)h(a)g(hash)g(\()p Fl(#)p Fr(\))g(follo)o(w)o(ed)e(b)o
+(y)i(a)g(single)g(c)o(haracter.)177 531 y(Examples:)177 647
+y Fl(@#A)109 b(@#|)f(@#&)g(@#m)177 763 y Fr(This)17 b(form)d(of)i(macro)f
+(name)h(has)g(the)h(same)f(syn)o(tactic)h(functionalit)o(y)e(as)i(an)f
+(ordinary)g(name)f(and)h(can)h(b)q(e)177 813 y(substituted)g(wherev)o(er)g
+(an)f(ordinary)f(name)g(can)g(b)q(e.)24 b(In)16 b(fact)g(quic)o(k)f(names)g
+(liv)o(e)g(in)g(the)h(same)f(namespace)177 863 y(as)g(ordinary)g(macro)e
+(names.)21 b(F)m(or)15 b(example)e(the)j(quic)o(kname)d Fl(@#A)i
+Fr(is)f(the)i Fm(same)g(name)g Fr(\(refers)g(to)f(the)h(same)177
+913 y(macro\))d(as)h(the)g(ordinary)g(name)f Fl(@<A@>)p Fr(.)177
+988 y(Because)g(quic)o(k)d(names)g(lo)q(ok)g(syn)o(tactically)g(\\op)q(en")h
+(\(i.e.)f(they)h(do)g(not)f(ha)o(v)o(e)h(a)g(closing)p Fl(@>)e
+Fr(as)i(ordinary)g(names)177 1037 y(do\),)i(it)h(is)g(b)q(est)h(to)f(a)o(v)o
+(oid)e(them)h(except)i(where)g(a)f(macro)f(m)o(ust)g(b)q(e)h(called)g(v)o
+(ery)g(often.)177 1200 y Fi(2.3)70 b(F)-6 b(unnelW)g(eb)22
+b(the)h(Martinet)177 1315 y Fr(There)13 b(are)g(man)o(y)d(w)o(a)o(ys)i(in)g
+(whic)o(h)g(a)g(macro)f(prepro)q(cessor)j(can)f(cause)g(unexp)q(ected)h
+(di\016culties.)j(F)m(unnelW)m(eb)177 1365 y(seeks)g(to)d(a)o(v)o(oid)g(man)o
+(y)f(of)h(these)j(problems)d(b)o(y)g(p)q(erforming)g(a)g(n)o(um)o(b)q(er)g
+(of)h(c)o(hec)o(ks.)22 b(This)15 b(section)h(describ)q(es)177
+1415 y(some)d(of)g(the)i(c)o(hec)o(ks)g(that)f(F)m(unnelW)m(eb)f(p)q
+(erforms.)295 1490 y Fo(T)l(railing)h(blanks)h(in)g(the)h(input)e(\014le:)k
+Fr(T)m(railing)12 b(blanks)i(are)h(usually)f(not)g(dangerous,)g(but)295
+1540 y(F)m(unnelW)m(eb)19 b(disallo)o(ws)e(them)i(an)o(yw)o(a)o(y)m(.)31
+b(All)18 b(trailing)g(blanks)g(in)h(the)g Fm(input)h Fr(\()p
+Fl(.fw)e Fr(\014le\))h(are)295 1589 y(\015agged)d(as)h(errors)g(b)o(y)f(F)m
+(unnelW)m(eb.)25 b(F)m(unnelW)m(eb)15 b(do)q(es)i(not)f(\015ag)g(trailing)f
+(blanks)h(in)g(an)o(y)f(of)295 1639 y(its)f(output)g(\014les.)295
+1714 y Fo(Input)19 b(line)f(length:)24 b Fr(F)m(unnelW)m(eb)17
+b(has)g(a)h(maxim)n(um)13 b(input)18 b(line)f(length.)29 b(If)17
+b(F)m(unnelW)m(eb)295 1764 y(reads)h(an)e(input)h(line)f(longer)g(than)h
+(this)f(length,)h(it)f(\015ags)h(the)g(line)f(with)g(an)h(error)g(message.)
+295 1813 y(The)e(maxim)n(um)9 b(length)14 b(can)g(b)q(e)h(c)o(hanged)f(using)
+g(a)f(pragma)f(\(see)k(Chapter)e(3\).)295 1888 y Fo(Pro)q(duct)k(\014le)h
+(line)f(length:)23 b Fr(F)m(unnelW)m(eb)16 b(w)o(atc)o(hes)i(the)g(length)g
+(of)e(output)i(lines)f(and)g(all)295 1938 y(output)h(lines)f(longer)g(than)h
+(the)g(limit)c(are)k(\015agged)f(with)g(error)h(messages.)29
+b(The)18 b(maxim)n(um)295 1988 y(length)h(can)g(b)q(e)g(c)o(hanged)h(using)e
+(a)h(pragma)d(\(see)21 b(Chapter)e(3\).)33 b(That)18 b(F)m(unnelW)m(eb)g(p)q
+(olices)295 2038 y(output)c(lines)f(is)h(v)o(ery)f(imp)q(ortan)o(t.)j(Some)d
+(programs)f(can)i(b)q(eha)o(v)o(e)f(v)o(ery)h(strangely)g(if)e(they)i(get)295
+2087 y(an)i(input)g(line)g(that)g(is)h(to)q(o)f(long)f(\(e.g.)h(F)m(ortran)g
+(compilers)f(can)h(simply)f(ignore)h(text)g(past)h(a)295 2137
+y(certain)e(column!\))i(and)d(once)h(F)m(unnelW)m(eb)e(starts)i(expanding)f
+(macros)f(using)h(inden)o(tation,)f(it)295 2187 y(is)h(sometimes)e(not)i(ob)o
+(vious)f(ho)o(w)h(wide)f(the)i(pro)q(duct)g(\014le)f(will)e(b)q(e.)295
+2262 y Fo(Con)o(trol)j(c)o(haracters:)20 b Fr(The)c(presence)h(of)e(con)o
+(trol)g(c)o(haracters)i(in)d(a)h(text)h(\014le)f(can)g(result)h(in)295
+2312 y(some)11 b(confusing)g(b)q(eha)o(viour)h(do)o(wnstream)f(when)h(the)g
+(\014le)g(is)f(presen)o(ted)j(to)d(v)n(arious)g(programs.)295
+2361 y(Unfortunately)m(,)i(some)f(text)i(editors)g(allo)o(w)e(con)o(trol)h(c)
+o(haracters)i(to)f(b)q(e)g(inserted)g(in)o(to)f(the)h(text)295
+2411 y(rather)i(to)q(o)g(easily)m(,)e(and)h(it)g(is)g(all)f(to)q(o)h(easy)h
+(to)f(b)q(e)h(tripp)q(ed)g(up.)23 b(F)m(unnelW)m(eb)15 b(prev)o(en)o(ts)h
+(these)295 2461 y(problems)e(b)o(y)g(\015agging)f(with)i(diagnostics)f(all)f
+(non-end-of-line)h(con)o(trol)g(c)o(haracters)j(detected)295
+2511 y(in)f(the)h(input)f(\()p Fl(.fw)p Fr(\))g(\014le)h(\(ev)o(en)g(T)m
+(ABs\).)26 b(The)17 b(result)g(is)f(that)h(the)g(user)g(is)g(guaran)o(teed)g
+(that)295 2561 y(pro)q(duct)e(\014les)f(generated)h(from)d(F)m(unnelW)m(eb)h
+(con)o(tain)h(no)f(unin)o(ten)o(tional)g(con)o(trol)g(c)o(haracters.)295
+2610 y(This)g(said,)g(F)m(unnelW)m(eb)f(do)q(es)i(allo)o(w)d(the)j(insertion)
+f(of)g(con)o(trol)f(c)o(haracters)j(in)e(the)g(output)h(\014le)295
+2660 y(b)o(y)g(explicitly)f(sp)q(ecifying)h(them)f(in)g(the)i(text)f(using)g
+(a)f Fl(@^)h Fr(con)o(trol)f(sequence.)295 2735 y Fo(Num)o(b)q(er)j(of)g(in)o
+(v)o(o)q(cations:)h Fr(F)m(unnelW)m(eb)d(c)o(hec)o(ks)i(the)f(n)o(um)o(b)q
+(er)f(of)g(times)f(that)i(eac)o(h)g(macro)295 2785 y(is)j(called)f(and)g
+(issues)i(an)e(error)i(if)d(the)j(total)d(is)i(not)f(one.)29
+b(The)18 b Fl(@Z)g Fr(\(for)f(zero\))h(and)g Fl(@M)f Fr(\(for)295
+2835 y(man)o(y\))12 b(macro)h(attributes)i(can)f(b)q(e)g(used)h(to)f(b)o
+(ypass)g(these)h(c)o(hec)o(ks.)1042 2940 y(42)p eop
+%%Page: 43 44
+43 43 bop 295 42 a Fo(Recursion:)28 b Fr(Because)21 b(F)m(unnelW)m(eb)e(do)q
+(es)h(not)g(pro)o(vide)f(an)o(y)g(conditional)f(constructs,)23
+b(all)295 91 y(recursiv)o(ely)17 b(de\014ned)g(macros)e(m)o(ust,)g(b)o(y)g
+(de\014nition,)h(expand)g(in\014nitely)m(,)1483 76 y Fg(1)1516
+91 y Fr(and)g(are)g(therefore)295 141 y(unacceptable.)37 b(F)m(unnelW)m(eb)20
+b(p)q(erforms)f Fm(static)h Fr(c)o(hec)o(ks)h(to)f(detect)h(recursion,)h
+(detecting)f(it)295 191 y(b)q(efore)13 b(macro)d(expansion)i(commences.)k
+(The)d(user)f(need)h(not)f(fear)g(that)g(F)m(unnelW)m(eb)f(will)f(lo)q(c)o(k)
+295 241 y(up)k(or)g(sp)q(ew)h(forth)f(if)f(a)g(recursiv)o(e)j(macro)c(is)i
+(acciden)o(tally)f(sp)q(eci\014ed.)177 399 y Fi(2.4)70 b(Fiddling)21
+b(With)h(End)i(of)f(Lines)177 512 y Fr(One)13 b(of)f(the)h(\014ddly)f(asp)q
+(ects)j(of)c(programming)e(with)j(F)m(unnelW)m(eb)g(is)h(coping)f(with)g(end)
+h(of)f(lines.)17 b(If)12 b(y)o(ou)g(w)o(an)o(t)177 562 y(y)o(our)17
+b(pro)q(duct)h(\014le)e(to)h(b)q(e)h(w)o(ell)e(inden)o(ted)h(without)g(m)o
+(ultiple)d(blank)i(lines)h(or)g(co)q(de)g(run-ons,)h(y)o(ou)e(ha)o(v)o(e)h
+(to)177 612 y(sp)q(end)e(a)f(little)f(time)f(w)o(orking)h(out)h(ho)o(w)g(the)
+g(end)h(of)e(line)g(mark)o(ers)h(get)g(mo)o(v)o(ed)e(around.)177
+684 y(The)k(rule)g(to)f(remem)o(b)q(er)g(is)g(that,)g(disregarding)h(the)g
+(e\013ects)h(of)e(sp)q(ecial)h(sequences)i(within)c(a)h(macro)g(b)q(o)q(dy)m
+(,)177 733 y Fm(the)i(b)n(o)n(dy)g(of)g(a)g(macr)n(o)f(c)n(onsists)h(of)g
+(exactly)g(the)f(text)h(b)n(etwe)n(en)g(the)f(op)n(ening)i
+Fl(@)p Fq(f)e Fm(and)i(the)f(closing)f Fl(@)p Fq(g)p Fr(.)24
+b(This)177 783 y(text)15 b(includes)f(end)g(of)g(line)f(mark)o(ers.)177
+855 y(If)h(for)f(example)g(y)o(ou)g(call)g(a)h(macro)f(in)g(a)h(sequence)i
+(of)d(co)q(de)p Fn(:)7 b(:)g(:)177 961 y Fl(while)21 b(the_walrus_is_sle)o
+(epy)e(do)243 1011 y(begin)243 1061 y(writeln\('zzzzzz)o(z'\);)243
+1111 y(@<Wake)h(up)h(the)h(walrus@>)243 1161 y(writeln\('Umphar)o(umpha)o
+(...'\))o(;)243 1211 y(end;)177 1317 y Fr(where)15 b Fl(<wake)21
+b(up)g(the)h(walrus>)12 b Fr(is)i(de\014ned)h(as)f(follo)o(ws)177
+1423 y Fl(@$@<Wake)20 b(up)i(the)f(walrus@>==@{)177 1473 y
+(wake_up_the_walrus)o(\(the_)o(walru)o(s\);)177 1523 y(@})177
+1629 y Fr(then)15 b(when)f Fl(<Wake)21 b(up)g(the)g(walrus>)13
+b Fr(is)h(expanded)g(y)o(ou)g(will)e(get)177 1736 y Fl(while)21
+b(the_walrus_is_sle)o(epy)e(do)243 1786 y(begin)243 1835 y(writeln\("zzzzzz)o
+(z"\);)243 1935 y(wake_up_the_wal)o(rus\(t)o(he_wa)o(lrus\))o(;)243
+2035 y(writeln\("Umphar)o(umpha)o(..."\))o(;)243 2085 y(end;)177
+2191 y Fr(The)13 b(blank)f(lines)h(w)o(ere)g(in)o(tro)q(duced)h(b)o(y)e(the)i
+(end)f(on)f(line)h(mark)o(ers)f(included)h(in)f(the)h(de\014nition)f(of)g
+Fl(<Wake)21 b(up)177 2241 y(the)g(walrus>)p Fr(.)e(A)c(go)q(o)q(d)f(solution)
+f(to)i(this)g(problem)e(is)h(to)h(suppress)h(the)f(end)g(of)f(line)h(mark)o
+(ers)e(b)o(y)i(de\014ning)177 2291 y(the)g(macro)d(as)i(follo)o(ws)177
+2397 y Fl(@$@<Wake)20 b(up)i(the)f(walrus@>==@{@-)177 2447
+y(wake_up_the_walrus)o(\(the_)o(walru)o(s\);@})177 2553 y Fr(This)14
+b(is)g(the)g(usual)g(form)e(of)h(macro)g(de\014nitions)h(in)f(F)m(unnelW)m
+(eb)h(\014les.)177 2625 y(In)g(additiv)o(e)f(macros,)g(this)h(format)e(do)q
+(es)j(not)f(w)o(ork)f(prop)q(erly)i(b)q(ecause)g(the)g(end)g(of)e(line)g
+(that)h(is)g(suppressed)177 2675 y(b)o(y)f(the)h(trailing)d
+Fl(@)p Fq(g)i Fr(do)q(es)h(not)f(get)g(replaced)i(b)o(y)d(the)i(end)g(of)e
+(line)h(at)g(the)h(end)f(of)g(the)h(macro)e(in)o(v)o(o)q(cation.)k(F)m(or)177
+2725 y(example)d(the)h(de\014nition)p 177 2757 709 2 v 223
+2783 a Ff(1)241 2795 y Fh(A)f(sp)q(ecial)f(case)g(exists)g(where)h(there)e
+(is)i(recursion)e(but)h(no)h(con)o(ten)o(t.)18 b(In)12 b(this)h(case,)f(the)h
+(expansion)d(is)j(\014nite)f(\(the)g(empt)o(y)177 2835 y(string\))e(ev)o(en)g
+(though)g(the)h(op)q(eration)e(of)i(expanding)d(is)k(in\014nite.)h(F)m
+(unnelW)m(eb)d(do)q(es)g(not)h(treat)f(this)h(case)g(sp)q(ecially)m(.)1042
+2940 y Fr(43)p eop
+%%Page: 44 45
+44 44 bop 177 42 a Fl(@$@<Wake)20 b(up)i(the)f(walrus@>+=@{@-)177
+91 y(wake_up_the_walrus)o(_once)o(\(the_)o(walru)o(s\);@})177
+205 y Fr(later)14 b(follo)o(w)o(ed)e(b)o(y)177 318 y Fl(@$@<Wake)20
+b(up)i(the)f(walrus@>+=@{@-)177 368 y(wake_up_the_walrus)o(_agai)o(n\(the)o
+(_walr)o(us\);@)o(})177 482 y Fr(is)14 b(equiv)n(alen)o(t)f(to)h(the)g
+(single)g(de\014nition)177 595 y Fl(@$@<Wake)20 b(up)i(the)f(walrus@>==@{@-)
+177 645 y(wake_up_the_walrus)o(_once)o(\(the_)o(walru)o(s\);wa)o(ke_u)o
+(p_the)o(_walr)o(us_ag)o(ain\(t)o(he_wa)o(lrus)o(\);@})177
+759 y Fr(Putting)14 b(the)h(trailing)e Fl(@)p Fq(g)h Fr(on)g(a)g(new)h(line)f
+(at)g(the)h(end)g(of)f(the)g(macro)g(\(except)h(for)f(the)h(last)g
+(de\014nition)e(part\))177 809 y(solv)o(es)h(the)h(problem.)177
+922 y Fl(@$@<Wake)20 b(up)i(the)f(walrus@>+=@{@-)177 972 y
+(wake_up_the_walrus)o(_once)o(\(the_)o(walru)o(s\);)177 1022
+y(@})177 1135 y Fr(later)14 b(follo)o(w)o(ed)e(b)o(y)177 1249
+y Fl(@$@<Wake)20 b(up)i(the)f(walrus@>+=@{@-)177 1299 y(wake_up_the_walrus)o
+(_agai)o(n\(the)o(_walr)o(us\);@)o(})177 1412 y Fr(is)14 b(equiv)n(alen)o(t)f
+(to)h(the)g(single)g(de\014nition)177 1526 y Fl(@$@<Wake)20
+b(up)i(the)f(walrus@>==@{@-)177 1576 y(wake_up_the_walrus)o(_once)o(\(the_)o
+(walru)o(s\);)177 1625 y(wake_up_the_walrus)o(_agai)o(n\(the)o(_walr)o
+(us\);@)o(})177 1739 y Fr(Managing)12 b(end)i(of)f(line)g(mark)o(ers)g(is)g
+(tric)o(ky)m(,)g(but)h(once)g(y)o(ou)f(establish)g(a)h(con)o(v)o(en)o(tion)f
+(for)g(coping)g(with)g(them,)177 1789 y(the)i(problem)d(disapp)q(ears)j(in)o
+(to)e(the)i(bac)o(kground.)177 1950 y Fi(2.5)70 b(F)-6 b(udging)24
+b(Conditionals)177 2065 y Fr(As)13 b(a)g(macro)e(prepro)q(cessor,)k(the)e
+(facilit)o(y)e(that)i(F)m(unnelW)m(eb)f(most)g(ob)o(viously)f(lac)o(ks)h(is)h
+(a)f(conditional)f(facilit)o(y)177 2115 y(\(suc)o(h)19 b(as)e(C's)h
+Fl(#ifdef)p Fr(\).)28 b(It)18 b(migh)o(t,)e(therefore,)k(come)c(as)i(a)f
+(surprise)i(to)f(kno)o(w)f(that)h(the)g(\014rst)h(v)o(ersion)e(of)177
+2164 y(F)m(unnelW)m(eb)g(actually)g(had)g(a)g(built)g(in)g(conditional)g
+(facilit)o(y)m(.)26 b(The)18 b(facilit)o(y)e(allo)o(w)o(ed)h(the)h
+(programmer)d(to)177 2214 y(sp)q(ecify)f(a)e(construct)i(that)f(w)o(ould)f
+(select)i(from)d(one)i(of)g(a)f(n)o(um)o(b)q(er)g(of)g(macro)g(expressions)i
+(dep)q(ending)g(on)e(the)177 2264 y(v)n(alue)h(of)h(a)f(con)o(trolling)g
+(macro)f(expression.)177 2338 y(In)i(three)h(y)o(ears)g(the)f(construct)i(w)o
+(as)e(nev)o(er)g(used.)177 2412 y(The)f(reason)g(w)o(as)f(that)h(conditional)
+e(constructs)j(could)e(b)q(e)i(fudged)e(nearly)g(as)h(easily)f(as)g(they)h
+(could)f(b)q(e)h(used.)177 2462 y(Because)j(of)e(this,)f(the)i(in)o(built)e
+(conditional)f(feature)j(w)o(as)f(remo)o(v)o(ed)f(in)h(the)h(curren)o(t)g(v)o
+(ersion)f(of)g(F)m(unnelW)m(eb.)177 2512 y(Not)e(only)e(did)h(this)h
+(simplify)c(the)k(program,)e(but)h(is)h(also)e(allo)o(w)o(ed)h(recursiv)o(e)h
+(macros)f(to)g(b)q(e)h(detected)i(through)177 2561 y(static)g(analysis)g
+(rather)g(than)g(during)g(macro)e(expansion.)177 2635 y(There)18
+b(are)g(t)o(w)o(o)e(basic)h(w)o(a)o(ys)g(to)g(fudge)g(a)f(conditional.)26
+b(First,)18 b(the)f(commen)o(t)e(facilit)o(y)h(of)g(the)h(target)h(pro-)177
+2685 y(gramming)11 b(language)i(ma)o(y)f(b)q(e)j(emplo)o(y)o(ed.)i(F)m(or)c
+(example,)g(in)g(Ada,)h(commen)o(ts)e(commence)h(with)h(\\)p
+Fl(--)p Fr(")f(and)177 2735 y(terminate)g(at)h(the)h(end)f(of)g(the)g(line.)k
+(Using)c(this)g(fact,)g(it)f(is)h(easy)h(to)e(construct)j(macros)d(that)h
+(can)g(b)q(e)h(called)177 2785 y(at)d(the)g(start)h(of)e(eac)o(h)h(target)g
+(line)g(and)f(whic)o(h)h(turn)g(on)g(and)f(o\013)h(the)g(lines)g(so)g(mark)o
+(ed)e(b)o(y)i(de\014ning)g(the)g(macro)177 2835 y(to)i(b)q(e)g(the)h(empt)o
+(y)e(string)h(\(ON\))g(or)g(the)h(commen)o(t)c(sym)o(b)q(ol)h(\()p
+Fl(--)p Fr(\))i(\(OFF\).)g(F)m(or)g(example:)1042 2940 y(44)p
+eop
+%%Page: 45 46
+45 45 bop 177 42 a Fl(@A@<Debug)20 b(Macro@>)177 141 y(The)h(following)f
+(macro)h(determines)f(whether)g(debug)h(code)g(will)g(be)g(included)f(in)i
+(the)177 191 y(program.)e(All)h(lines)g(of)h(debug)e(code)h(commence)f(with)h
+(a)h(call)f(to)g(this)g(macro)g(and)g(so)177 241 y(we)h(can)f(turn)g(all)g
+(that)g(code)g(on)g(or)h(off)f(here)g(by)g(defining)f(this)h(macro)g(to)g(be)
+h(either)177 291 y(empty)f(or)g(the)g(single-line)f(comment)g(symbol)h
+(\(\\p{--}\).)f(Note)h(the)g(use)g(of)h(a)177 340 y(quick)f(macro)g(name.)177
+440 y(@$@#D@M==@{@})106 b(@!)22 b(Turns)f(the)g(debug)g(code)f(ON.)177
+490 y(@!)i(Use)f(this)g(definition)e(to)j(turn)f(the)g(debug)g(code)g(OFF:)g
+(@$@#D==@{--@})177 589 y(...)g(then)g(later)g(in)g(the)h(file...)177
+689 y(@$@<Sloth)e(incrementing)f(loop@>==@{@-)177 739 y(while)i(sloth<walrus)
+e(loop)243 789 y(@#D)i(assert\(sloth<wal)o(rus,")o(AWK!)d
+(sloth>=walrus!!!!!!)o(!"\);)243 839 y(@#D)j(assert\(timer<tim)o(ermax)o
+(,"AWK)o(!)e(timer>=timermax!!)o(!"\);)243 888 y(inc\(sloth\);)177
+938 y(end)i(loop@})177 1051 y Fr(The)16 b(other)f(w)o(a)o(y)f(to)h(fudge)g(a)
+f(conditional)g(is)h(to)g(de\014ne)g(a)g(macro)f(with)g(a)h(single)g
+(parameter.)20 b(A)15 b(call)f(to)h(the)177 1101 y(macro)g(is)g(then)i(wrapp)
+q(ed)g(around)e(all)g(the)h(conditional)f(co)q(de)i(in)e(the)h(program.)23
+b(The)16 b(macro)f(can)h(then)g(b)q(e)177 1151 y(de\014ned)f(to)f(presen)o(t)
+h(or)f(ignore)g(the)g(co)q(de)h(of)e(its)h(argumen)o(t.)j(F)m(or)d(example:)
+177 1263 y Fl(@A@<Debug)20 b(Macro@>)177 1363 y(The)h(following)f(macro)h
+(determines)f(whether)g(debug)h(code)g(will)g(be)g(included)f(in)i(the)177
+1413 y(program.)e(All)h(debug)g(code)g(is)h(wrapped)e(by)h(a)h(call)f(to)g
+(this)g(macro)g(and)g(so)177 1463 y(we)h(can)f(turn)g(all)g(the)g(debug)g
+(code)g(on)g(or)h(off)f(here)g(by)g(defining)f(this)h(macro)g(to)g(be)177
+1513 y(either)g(empty)f(or)i(its)f(parameter.)177 1612 y
+(@$@#D@\(@1@\)@M==@{@)o(1@})106 b(@!)21 b(Turns)g(the)g(debug)g(code)g(ON.)
+177 1662 y(@!)h(Use)f(this)g(definition)e(to)j(turn)f(the)g(debug)g(code)g
+(OFF:)g(@$@#D@\(@1@\)==@{@)o(})177 1762 y(...)g(then)g(later)g(in)g(the)h
+(file...)177 1861 y(@$@<Sloth)e(incrementing)f(loop@>==@{@-)177
+1911 y(while)i(sloth<walrus)e(loop)243 1961 y(@#D@\(assert\(slo)o(th<wa)o
+(lrus,)o("AWK!)f(sloth>=walrus!!!!!)o(!!"\);)352 2011 y(assert\(timer<ti)o
+(merma)o(x,"AW)o(K!)h(timer>=timermax!)o(!!"\);)o(@\))243 2060
+y(inc\(sloth\);)177 2110 y(end)i(loop@})177 2223 y Fr(In)16
+b(languages)g(that)g(allo)o(w)f(m)o(ulti-li)o(ne)f(commen)o(ts)g(\(e.g.)i(C)g
+(with)g Fl(/*)f Fr(and)h Fl(*/)p Fr(\),)g(commen)o(ts)f(can)h(b)q(e)h(used)g
+(to)177 2273 y(eliminate)12 b(the)j(conditioned)e(co)q(de)i(rather)g(than)f
+(absence.)19 b(F)m(or)14 b(example:)177 2386 y Fl(@$@#D@\(@1@\)@M==@{/)o(*)19
+b(@1)i(*/@})87 b(@!)21 b(Comments)f(out)h(the)h(debug)e(code)177
+2499 y Fr(\(Note:)i(If)15 b(this)h(example)e(w)o(ere)j(ev)o(er)f(actually)f
+(used,)h(the)h(programmer)c(w)o(ould)i(ha)o(v)o(e)g(to)g(b)q(e)i(careful)e
+(not)h(to)177 2548 y(place)e(commen)o(ts)e(in)i(the)g(argumen)o(t)f(co)q(de.)
+19 b(Nested)c(commen)o(ts)d(in)i(C)g(are)g(non-p)q(ortable.\))177
+2622 y(The)f(parameterized)f(macro)f(idea)g(can)i(b)q(e)f(generalized)h(to)f
+(supp)q(ort)h(the)f(c)o(hoice)h(of)e(more)g(than)h(one)g(m)o(utually)177
+2672 y(exclusiv)o(e)j(alternativ)o(e.)i(F)m(or)d(example:)177
+2785 y Fl(@A)22 b(This)f(module)f(contains)g(non-portable)g(code)g(that)h
+(must)g(execute)g(on)g(Hewlett)177 2835 y(Packard,)f(Sun,)h(and)g(DEC)h
+(workstations.)d(The)i(following)f(FunnelWeb)g(macro)h(is)1042
+2940 y Fr(45)p eop
+%%Page: 46 47
+46 46 bop 177 42 a Fl(defined)21 b(to)g(choose)f(between)h(these)g(three.)f
+(The)h(first)g(parameter)f(is)h(the)h(HP)f(code,)177 91 y(the)g(second)g(is)g
+(the)g(Sun)h(code,)e(and)i(the)f(third)f(is)i(the)f(DEC)g(code.)g(Whichever)
+177 141 y(parameter)f(constitutes)g(the)h(body)g(of)g(this)g(macro)g
+(determines)f(which)177 191 y(machine)h(the)g(code)g(is)g(being)g
+(targeted\\note{Di)o(ction)o(ary)e(says)i(only)g(one)g(t)177
+241 y(in)h(targeted.})d(for.)177 340 y(@$@<Machine)h(specific)g
+(code@>@\(@3@\)@M==@)o({@1@)o(})41 b(@!)21 b(Configure)f(for)h(HP.)177
+440 y(...then)g(later)f(in)i(the)f(file...)177 540 y(@<Machine)f(specific)g
+(code@>@\()177 589 y(@"get_command_line)o(\(coml)o(ine\)@)o(")237
+b(@,)21 b(@!)h(HP.)177 639 y(@"scan_command_lin)o(e\(128)o(,coml)o(ine\);)o
+(@")106 b(@,)21 b(@!)h(Sun.)177 689 y(@"dcl_get_command_)o(line\()o(comli)o
+(ne,25)o(6\);@")40 b(@\))21 b(@!)h(DEC.)177 793 y Fr(Of)13
+b(course,)g(this)g(could)f(also)g(b)q(e)h(p)q(erformed)f(using)h(three)h
+(separate)f(macros.)k(The)c(main)d(adv)n(an)o(tage)i(of)g(using)177
+842 y(a)j(single)g(macro)g(is)g(that)g(the)i(m)o(utual)c(exclusivit)o(y)i(is)
+g(enforced.)24 b(Also,)15 b(b)q(ecause)i(F)m(unnelW)m(eb)e(ensures)j(that)177
+892 y(the)d(n)o(um)o(b)q(er)f(of)g(formal)e(and)j(actual)f(parameters)h(are)g
+(the)g(same,)e(this)i(metho)q(d)f(lessens)i(the)f(c)o(hance)g(that)g(a)177
+942 y(mac)o(hine)e(will)f(b)q(e)j(forgotten)f(in)f(some)g(places.)177
+1099 y Fi(2.6)70 b(Changing)23 b(the)f(Strength)i(of)f(Headings)177
+1211 y Fr(F)m(unnelW)m(eb)18 b(pro)o(vides)g(\014v)o(e)g(heading)g(lev)o
+(els:)26 b Fl(@A)p Fr(,)17 b Fl(@B)p Fr(,)g Fl(@C)p Fr(,)g
+Fl(@D)p Fr(,)h(and)f Fl(@E)h Fr(to)g(whic)o(h)g(it)f(binds)i(\014v)o(e)f
+(di\013eren)o(t)177 1261 y(t)o(yp)q(ographical)e(strengths.)28
+b(These)17 b(bindings)f(are)h(static;)h(a)f(lev)o(el)f Fl(@A)g
+Fr(heading)g(will)f(alw)o(a)o(ys)h(b)q(e)h(t)o(yp)q(eset)h(in)177
+1311 y(a)e(particular)g(fon)o(t)g(size)h(regardless)h(of)e(the)g(size)i(of)d
+(the)i(do)q(cumen)o(t.)25 b(The)17 b(fon)o(t)f(sizes)h(ha)o(v)o(e)f(b)q(een)i
+(preset)g(to)177 1361 y(b)q(e)f(\\reasonable")e(for)h(a)f(range)h(of)f(do)q
+(cumen)o(t)h(sizes,)h(but)f(ma)o(y)d(b)q(e)k(inappropriate)e(for)h(v)o(ery)g
+(small)d(or)j(large)177 1410 y(do)q(cumen)o(ts.)177 1482 y(F)m(unnelW)m(eb)d
+(do)q(es)h(not)f(curren)o(tly)h(pro)o(vide)g(an)f(\\o\016cial")e(w)o(a)o(y)i
+(\(e.g.)f(a)h(pragma\))f(to)h(c)o(hange)h(the)g(t)o(yp)q(esetting)177
+1531 y(strength)f(of)f(headings.)17 b(This)12 b(feature)g(migh)o(t)e(b)q(e)j
+(added)f(in)f(later)h(v)o(ersions.)18 b(Mean)o(while,)12 b(a)f(hac)o(k)h(is)g
+(a)o(v)n(ailable)177 1581 y(that)17 b(will)e(do)h(the)i(job,)e(pro)o(viding)f
+(that)i(y)o(ou)f(do)h(not)f(mind)f(the)i(hac)o(k)g(b)q(eing)g(T)1490
+1590 y(E)1513 1581 y(X-sp)q(eci\014c)h(and)e(probably)177 1631
+y(F)m(unnelW)m(eb-v)o(ersion)e(sp)q(eci\014c.)177 1702 y(Inside)g(the)h(set)f
+(of)f(T)504 1711 y(E)528 1702 y(X)g(macro)g(de\014nitions)g(that)h(F)m
+(unnelW)m(eb)f(writes)i(at)e(the)i(top)e(of)h(ev)o(ery)g(do)q(cumen)o(tation)
+177 1752 y(\014le)d(are)h(\014v)o(e)f(\\library")f(de\014nitions)h
+Fl(fwliba)p Fn(:)c(:)g(:)m Fl(fwlibe)j Fr(whic)o(h)h(pro)o(vide)g(\014v)o(e)g
+(di\013eren)o(t)h(t)o(yp)q(esetting)g(strengths)177 1802 y(for)j(headings.)23
+b(Near)16 b(the)h(end)f(of)f(the)h(set)g(of)f(de\014nitions,)h(F)m(unnelW)m
+(eb)f(binds)g(these)i(macros)e(to)g(\014v)o(e)h(other)177 1851
+y(macros)i Fl(fwseca)p Fn(:)7 b(:)g(:)n Fl(fwsece)17 b Fr(whic)o(h)i(are)h
+(in)o(v)o(ok)o(ed)e(directly)i(in)e(the)i(generated)g(T)1511
+1860 y(E)1535 1851 y(X)f(co)q(de)h(to)f(t)o(yp)q(eset)h(the)177
+1901 y(headings.)177 2005 y Fl(\\def\\fwseca#1#2{\\f)o(wliba)o({#1}{)o(#2}})
+177 2055 y(\\def\\fwsecb#1#2{\\f)o(wlibb)o({#1}{)o(#2}})177
+2104 y(\\def\\fwsecc#1#2{\\f)o(wlibc)o({#1}{)o(#2}})177 2154
+y(\\def\\fwsecd#1#2{\\f)o(wlibd)o({#1}{)o(#2}})177 2204 y
+(\\def\\fwsece#1#2{\\f)o(wlibe)o({#1}{)o(#2}})177 2308 y Fr(This)10
+b(means)g(that)h(the)g(t)o(yp)q(esetting)g(strength)h(of)d(the)i(headings)g
+(in)f(a)g(F)m(unnelW)m(eb)g(do)q(cumen)o(t)g(can)g(b)q(e)h(c)o(hanged)177
+2357 y(b)o(y)j(rede\014ning)g(these)i(macros)d(at)g(the)i(top)f(of)f(a)h(F)m
+(unnelW)m(eb)f(do)q(cumen)o(t.)k(F)m(or)d(example:)177 2461
+y Fl(@p)22 b(typesetter)d(=)j(tex)177 2511 y(\\def\\fwseca#1#2{\\f)o(wlibc)o
+({#1}{)o(#2}})177 2614 y Fr(w)o(ould)10 b(set)h Fl(@A)f Fr(headings)g(at)h
+(the)f(same)g(strength)i(as)e(the)h(default)f(strength)i(of)d
+Fl(@C)h Fr(headings.)17 b(The)11 b Fl(typesetter)177 2664 y
+Fr(directiv)o(e)k(is)e(necessary)j(to)e(ensure)h(that)f(the)g(T)935
+2673 y(E)958 2664 y(X)g(con)o(trol)g(sequences)i(get)e(through)g(to)g(the)g
+(do)q(cumen)o(tation)177 2714 y(\014le)g(un\014ltered.)177
+2785 y(The)g(follo)o(wing)d(will)h(tone)i(do)o(wn)f(all)f(headings)h(b)o(y)g
+(t)o(w)o(o)g(lev)o(els)h(\(with)f(the)h Fl(@D)f Fr(and)g Fl(@E)g
+Fr(lev)o(els)h(b)q(eing)f(allo)q(cated)177 2835 y(the)i(default)e
+Fl(@E)h Fr(t)o(yp)q(esetting)g(strength)i(b)q(ecause)f(there)g(is)f(nothing)f
+(w)o(eak)o(er\).)1042 2940 y(46)p eop
+%%Page: 47 48
+47 47 bop 177 42 a Fl(@p)22 b(typesetter)d(=)j(tex)177 91 y
+(\\def\\fwseca#1#2{\\f)o(wlibc)o({#1}{)o(#2}})177 141 y
+(\\def\\fwsecb#1#2{\\f)o(wlibd)o({#1}{)o(#2}})177 191 y
+(\\def\\fwsecc#1#2{\\f)o(wlibe)o({#1}{)o(#2}})177 241 y
+(\\def\\fwsecd#1#2{\\f)o(wlibe)o({#1}{)o(#2}})177 291 y
+(\\def\\fwsece#1#2{\\f)o(wlibe)o({#1}{)o(#2}})177 408 y Fr(These)17
+b(de\014nitions)f(a\013ect)g(only)f(the)h(headings)f(that)h(follo)o(w)e
+(them,)g(and)i(so)f(they)h(should)g(b)q(e)g(placed)g(at)f(the)177
+458 y(top)f(of)f(the)i(F)m(unnelW)m(eb)e(input)h(\014le.)177
+622 y Fi(2.7)70 b(E\016ciency)21 b(Notes)177 739 y Fr(The)14
+b(follo)o(wing)e(notes)i(are)h(w)o(orth)f(k)o(eeping)f(in)h(mind)e(when)i
+(using)g(F)m(unnelW)m(eb.)295 814 y Fo(Memory:)j Fr(When)12
+b(F)m(unnelW)m(eb)f(pro)q(cesses)j(an)d(input)g(\014le,)g(it)g(reads)h(the)g
+(en)o(tire)g(input)f(\014le,)h(and)295 864 y(all)i(the)h(included)g(\014les)g
+(in)o(to)g(memory)m(.)920 849 y Fg(2)957 864 y Fr(This)g(organization)e(do)q
+(es)j(not)f(p)q(ose)g(a)g(constrain)o(t)g(on)295 914 y(mac)o(hines)e(with)h
+(large)f(memories,)e(but)j(could)g(presen)o(t)h(a)f(problem)e(on)i(the)g
+(smaller)f(mac)o(hines)295 964 y(suc)o(h)i(as)f(the)g(PC.)295
+1039 y Fo(Sp)q(eed:)j Fr(F)m(unnelW)m(eb)12 b(is)g(not)g(a)g(slo)o(w)g
+(program.)k(Ho)o(w)o(ev)o(er,)c(it)g(is)g(not)h(particularly)e(fast)h
+(either.)295 1089 y(If)17 b(the)g(sp)q(eed)h(at)f(whic)o(h)g(F)m(unnelW)m(eb)
+f(runs)h(is)g(imp)q(ortan)o(t)e(to)i(y)o(ou,)f(then)i(the)f(thing)f(to)h(k)o
+(eep)295 1138 y(in)e(mind)d(is)j(that)g(F)m(unnelW)m(eb)f(has)h(b)q(een)h
+(optimized)d(to)i(deal)f(e\016cien)o(tly)h(with)f(large)g(slabs)h(of)295
+1188 y(text.)23 b(F)m(unnelW)m(eb)15 b(treats)h(input)f(\014les)g(as)h(a)f
+(sequence)i(of)e(text)g(slabs)h(and)f(sp)q(ecial)g(sequences)295
+1238 y(\(e.g.)i Fl(@+)p Fr(\))h(and)f(whenev)o(er)i(it)e(hits)h(a)g(sp)q
+(ecial)g(sequence,)i(it)d(has)h(to)f(stop)h(and)g(think.)29
+b(Th)o(us,)295 1288 y(while)19 b(a)f(ten)h(megab)o(yte)f(text)i(slab)e(w)o
+(ould)g(b)q(e)h(manipulated)e(as)i(a)g(single)f(tok)o(en,)i(in)e(a)h(few)295
+1338 y(milliseconds,)11 b(a)i(similar)e(ten)j(megab)o(yte)e(c)o(h)o(unk)h
+(\014lled)g(with)f(sp)q(ecial)i(sequences)h(w)o(ould)e(tak)o(e)g(a)295
+1388 y(lot)j(longer.)25 b(If)16 b(F)m(unnelW)m(eb)f(is)h(running)g(slo)o(wly)
+m(,)f(lo)q(ok)g(to)h(see)i(if)d(the)i(input)f(con)o(tains)g(a)g(high)295
+1437 y(densit)o(y)e(of)f(sp)q(ecial)h(sequences.)21 b(This)13
+b(can)h(sometimes)e(happ)q(en)i(if)f(F)m(unnelW)m(eb)g(is)g(b)q(eing)h(used)
+295 1487 y(as)f(a)f(bac)o(k)o(end)h(macro)e(pro)q(cessor)j(and)f(its)f(input)
+g(is)h(b)q(eing)f(generated)i(automatically)9 b(b)o(y)k(some)295
+1537 y(other)i(program.)295 1612 y Fo(Macro)i(expansion:)h
+Fr(When)d(tangling)e(\(expanding)i(macros\),)e(F)m(unnelW)m(eb)h(nev)o(er)i
+(expands)295 1662 y(a)11 b(macro)f(expression)i(in)o(to)e(memory;)f(it)h(alw)
+o(a)o(ys)g(writes)i(it)f(to)f(the)i(pro)q(duct)g(\014le)f(as)g(it)f(go)q(es.)
+18 b(This)295 1712 y(is)10 b(a)h(p)q(o)o(w)o(erful)e(fact,)i(b)q(ecause)h(it)
+e(means)f(that)i(y)o(ou)f(can)g(write)h(macros)e(con)o(taining)h(an)g
+(unlimited)295 1762 y(amoun)o(t)h(of)h(text,)h(and)f(pass)h(suc)o(h)g(macros)
+f(as)h(parameters)f(to)h(other)g(macros)e(without)h(b)q(ecom-)295
+1812 y(ing)j(concerned)j(ab)q(out)e(o)o(v)o(er\015o)o(wing)f(some)g(kind)g
+(of)h(bu\013er)h(memory)m(.)k(In)16 b(short,)g(F)m(unnelW)m(eb)295
+1861 y(do)q(es)f(not)f(imp)q(ose)e(an)o(y)i(limits)d(on)j(the)h(size)f(of)f
+(macro)g(b)q(o)q(dies)h(or)g(their)h(expansions.)177 2025 y
+Fi(2.8)70 b(In)n(teractiv)n(e)21 b(Mo)r(de)177 2142 y Fr(As)15
+b(w)o(ell)e(as)i(ha)o(ving)e(a)h(command)d(line)j(in)o(terface)h(with)f(lots)
+g(of)g(options,)f(F)m(unnelW)m(eb)h(also)g(pro)o(vides)g(a)g(com-)177
+2192 y(mand)c(language)h(and)g(a)h(mo)q(de)e(\(\\in)o(teractiv)o(e)i(mo)q
+(de"\))e(in)i(whic)o(h)f(commands)e(in)i(the)i(language)d(can)i(b)q(e)g(t)o
+(yp)q(ed)177 2242 y(in)o(teractiv)o(ely)m(.)26 b(The)17 b(F)m(unnelW)m(eb)f
+(command)e(in)o(terpreter)19 b(w)o(as)d(created)i(primarily)d(to)h(supp)q
+(ort)i(regression)177 2292 y(testing,)c(but)g(can)g(also)f(b)q(e)i(useful)f
+(to)g(F)m(unnelW)m(eb)f(users.)177 2367 y(F)m(unnelW)m(eb's)d(command)d(in)o
+(terpreter)12 b(reads)f(one)f(command)d(p)q(er)k(line)f(and)g(can)g(read)g(a)
+g(stream)g(of)f(commands)177 2417 y(either)j(from)e(a)h(text)h(\014le,)f(or)h
+(from)d(the)j(console.)18 b(The)12 b(in)o(terpreter)h(can)e(understand)i(o)o
+(v)o(er)e(t)o(w)o(en)o(t)o(y)h(commands.)177 2466 y(See)17
+b(Chapter)f(3)f(for)g(a)g(full)f(list.)22 b(Ho)o(w)o(ev)o(er,)16
+b(most)e(of)h(them)g(w)o(ere)h(designed)g(to)f(supp)q(ort)i(regression)f
+(testing)177 2516 y(and)e(will)e(not)i(b)q(e)h(of)e(use)i(to)e(the)i(casual)f
+(user.)177 2592 y(The)g(commands)e(that)i(are)g(of)f(greatest)j(use)e(to)g
+(the)h(casual)e(user)i(are:)286 2709 y Fl(!)327 b(-)21 b(Comment.)g(Ignores)f
+(the)h(whole)g(line.)286 2759 y(EXECUTE)f(fn)131 b(-)21 b(Execute)g(the)g
+(specified)f(file.)p 177 2796 709 2 v 223 2823 a Ff(2)241 2835
+y Fh(If)11 b(a)g(\014le)g(is)h(included)d Fc(n)j Fh(times,)e(F)m(unnelW)m(eb)
+g(k)o(eeps)g Fc(n)i Fh(copies)e(in)h(memory)m(.)1042 2940 y
+Fr(47)p eop
+%%Page: 48 49
+48 48 bop 286 42 a Fl(FW)22 b(options)129 b(-)21 b(Invoke)g(FunnelWeb-proper)
+d(once.)286 91 y(SET)j(options)108 b(-)21 b(Sets)g(options.)286
+141 y(SHOW)261 b(-)21 b(Displays)g(currently)e(active)i(options.)286
+191 y(TRACE)g(ON)174 b(-)21 b(Turns)g(command)g(tracing)f(ON.)286
+241 y(QUIT)261 b(-)21 b(Quits)g(FunnelWeb.)177 373 y Fr(T)m(o)16
+b(distinguish)h(here)h(b)q(et)o(w)o(een)g(in)o(v)o(o)q(cations)e(of)g(the)i
+(F)m(unnelW)m(eb)e(program)f(and)i(F)m(unnelW)m(eb)f(runs)i(inside)177
+423 y(the)c(shell,)g(w)o(e)g(call)f(the)h(latter)g Fo(F)l(unnelW)l(eb)f(prop)
+q(er)p Fr(.)k(The)d(\\)p Fl(FW)p Fr(")e(command)f(in)o(v)o(ok)o(es)j(F)m
+(unnelW)m(eb)f(prop)q(er)177 473 y(with)h(the)g(sp)q(eci\014ed)h(options)f
+(whic)o(h)f(tak)o(e)h(the)h(same)d(syn)o(tax)i(as)g(they)g(do)g(on)f(the)i
+(command)c(line.)17 b(The)e(only)177 523 y(restriction)g(is)f(that)g(none)g
+(of)g(the)g(action)g(options)f(can)i(b)q(e)f(turned)h(on)f(except)h(\\)p
+Fl(+F)p Fr(")e(whic)o(h)h(m)o(ust)f(b)q(e)i(turned)177 572
+y(on.)177 654 y(The)e(\\)p Fl(SET)p Fr(")f(command)e(has)j(the)h(same)e(syn)o
+(tax)g(as)h(the)h(\\)p Fl(FW)p Fr(")e(command)e(except)k(that)f(it)g(do)q(es)
+g(not)g(allo)o(w)e Fm(any)177 703 y Fr(action)i(options)g(to)g(b)q(e)h(sp)q
+(eci\014ed.)19 b(It's)14 b(sole)f(e\013ect)i(is)e(to)g(set)i(default)d
+(option)h(v)n(alues)g(for)g(the)h(rest)g(of)f(the)h(run.)177
+785 y(The)g(\\)p Fl(SHOW)p Fr(")f(command)e(displa)o(ys)i(the)i(curren)o(t)g
+(default)f(options.)177 866 y(By)e(default,)g(F)m(unnelW)m(eb)f(do)q(es)i
+(not)f(ec)o(ho)h(the)f(commands)e(that)i(it)f(pro)q(cesses)k(in)d(a)f
+(script.)19 b(The)12 b(\\)p Fl(TRACE)20 b(ON)p Fr(")177 916
+y(command)11 b(turns)k(on)f(suc)o(h)g(tracing.)177 997 y(These)j(commands)12
+b(can)k(b)q(e)f(com)o(bined)f(to)h(streamline)f(the)i(use)g(of)f(F)m(unnelW)m
+(eb.)21 b(F)m(or)15 b(example,)e(y)o(ou)i(migh)o(t)177 1047
+y(wish)f(to)g(create)h(a)f(script)g(called)g Fl(typeset.fws)d
+Fr(to)j(pro)q(cess)i(a)d(whole)h(group)g(of)f(\014les.)177
+1179 y Fl(trace)21 b(on)177 1229 y(!This)g(script)f(typesets)h(the)g(whole)g
+(program.)177 1279 y(!)h(Set)f(no)g(listing)g(file,)f(no)i(product)e(files,)h
+(but)g(specify)f(a)i(documentation)d(file)177 1328 y(!)j(and)f(specify)f(the)
+h(directory)f(into)h(which)g(it)g(should)g(be)g(placed.)177
+1378 y(set)g(-L)h(-O)f(+T/usr/ross/typese)o(t/)177 1428 y(fw)h(prog1)177
+1478 y(fw)g(prog2)177 1528 y(fw)g(prog3)177 1578 y(fw)g(prog4)177
+1710 y Fr(There)12 b(are)e(a)g(few)h(w)o(a)o(ys)f(in)f(whic)o(h)i(this)f
+(script)h(can)g(b)q(e)f(run.)18 b(The)10 b(simplest)g(is)g(simply)e(to)i(sp)q
+(ecify)h(it)f(in)g(the)h(\\)p Fl(+X)p Fr(")177 1760 y(option)g(of)f(a)h(F)m
+(unnelW)m(eb)g(in)o(v)o(o)q(cation.)16 b(F)m(unnelW)m(eb)11
+b(shellscripts)h(default)f(to)g(\\)p Fl(<current)p 1621 1760
+14 2 v 14 w(directory>)p Fr(")e(and)177 1810 y(\\)p Fl(.fws)p
+Fr(".)177 1942 y Fl(fw)22 b(+xtypeset)177 2074 y Fr(The)14
+b(second)h(alternativ)o(e)f(is)g(to)g(en)o(ter)h(in)o(teractiv)o(e)f(mo)q
+(de.)177 2207 y Fl(fw)22 b(+k)177 2339 y Fr(F)m(rom)12 b(there,)j(y)o(ou)e
+(can)h(execute)i(the)f(script)f(using:)177 2472 y Fl(execute)21
+b(typeset)177 2604 y Fr(In)o(teractiv)o(e)13 b(mo)q(de)e(could)h(b)q(e)h(v)o
+(ery)f(useful)g(to)g(those)h(with)f(m)o(ultiple-windo)o(w)d(w)o(orkstations.)
+17 b(The)c(user)g(could)177 2654 y(create)f(a)f(windo)o(w)e(con)o(taining)h
+(an)g(in)o(teractiv)o(e)h(session)h(of)e(F)m(unnelW)m(eb,)g(and)g(then)i
+(switc)o(h)f(b)q(et)o(w)o(een)h(windo)o(ws,)177 2704 y(editing,)h(and)h
+(executing)g(F)m(unnelW)m(eb)g(prop)q(er)h(and)e(other)i(programs.)177
+2785 y(If)c(y)o(ou)f(\014nd)i(y)o(ourself)f(using)f(the)i(command)c(in)o
+(terpreter)13 b(a)e(lot,)g(b)q(e)g(sure)h(to)f(read)h(ab)q(out)f(the)g(other)
+h(commands)177 2835 y(that)i(are)g(a)o(v)n(ailable)e(in)h(Chapter)i(3.)1042
+2940 y(48)p eop
+%%Page: 49 50
+49 49 bop 177 42 a Fi(2.9)70 b(Setting)21 b(Up)i(Default)f(Options)177
+159 y Fr(If)14 b(y)o(ou)h(do)f(not)h(lik)o(e)f(F)m(unnelW)m(eb's)g(default)g
+(settings)i(for)e(its)h(command)d(line)i(options,)g(there)i(are)f(a)f(n)o(um)
+o(b)q(er)177 209 y(of)f(w)o(a)o(ys)h(in)f(whic)o(h)h(y)o(ou)g(can)g(c)o
+(hange)g(them.)295 284 y Fo(De\014ne)e(an)h(\\alias":)k Fr(Use)12
+b(y)o(our)g(op)q(erating)f(system)h(\\)p Fl(alias)p Fr(")e(facilit)o(y)g(to)i
+(create)h(an)e(alias)g(for)295 334 y(F)m(unnelW)m(eb)i(con)o(taining)f(the)h
+(desired)i(options.)i(F)m(unnelW)m(eb)12 b(pro)q(cesses)k(options)d(from)e
+(left)i(to)295 384 y(righ)o(t,)g(so)h(y)o(ou)g(can)g(o)o(v)o(erride)g(these)h
+(defaults)f(later)g(if)f(y)o(ou)h(wish.)295 460 y Fo(Create)k(a)f(script)f
+(called)g(\\)p Fl(fwinit.fws)p Fo(":)j Fr(When)d(F)m(unnelW)m(eb)f(starts)h
+(up,)f(it)g(executes)j(a)295 510 y(script)12 b(called)e(\\)p
+Fl(fwinit.fws)p Fr(")f(if)h(suc)o(h)h(a)g(script)g(exists)h(in)e(the)i
+(curren)o(t)g(directory)m(.)17 b(Y)m(ou)11 b(can)g(use)295
+560 y(this)j(fact)f(to)h(set)g(options)f(b)q(efore)i(the)f(run)g(of)f(F)m
+(unnelW)m(eb)g(prop)q(er)h(b)o(y)f(creating)h(suc)o(h)h(a)e(script)295
+609 y(and)i(placing)e(a)i(single)f(\\)p Fl(set)p Fr(")f(command)f(in)i(it)h
+(con)o(taining)e(the)i(desired)h(options.)k(The)15 b(main)295
+659 y(trouble)f(with)f(this)h(approac)o(h)f(is)g(that)h(the)g(options)f(in)g
+(the)h Fl(set)f Fr(command)d(will)i(b)q(e)i(pro)q(cessed)295
+709 y Fm(after)d Fr(the)h(command)d(line)i(options,)g(whic)o(h)h(means)e
+(that)i(y)o(ou)f(w)o(on't)g(b)q(e)h(able)f(to)h(o)o(v)o(erride)f(them)295
+759 y(on)j(the)g(command)e(line.)177 835 y(F)m(or)h(example,)f(y)o(ou)h(migh)
+o(t)f(b)q(e)i(in)o(v)o(olv)o(ed)e(more)h(with)g(presen)o(ting)h(programs)f
+(than)g(with)g(running)h(them,)e(and)177 884 y(w)o(an)o(t)f(F)m(unnelW)m(eb)g
+(to)h(generate)h(a)e(do)q(cumen)o(tation)f(\014le)i(b)o(y)f(default,)g(but)h
+(not)g(to)f(pro)q(duce)i(listing)d(or)i(pro)q(duct)177 934
+y(\014les)i(b)o(y)g(default.)k(In)c(Unix)f(y)o(ou)h(could)f(do)h(this)g
+(with:)177 1053 y Fl(alias)21 b(fw)g(fw)h(-L)f(-O)g(+T)177
+1219 y Fi(2.10)70 b(F)-6 b(unnelW)g(eb)23 b(and)g(Mak)n(e)177
+1336 y Fr(The)11 b(Unix)g Fl(Make)e Fr(program)g(allo)o(ws)h(a)g(set)i(of)e
+(dep)q(endencies)j(b)q(et)o(w)o(een)f(a)e(set)i(of)e(\014les)h(to)g(b)q(e)g
+(describ)q(ed,)i(and)d(then)177 1386 y(uses)16 b(these)f(dep)q(endencies)i
+(to)d(con)o(trol)g(the)h(w)o(a)o(y)f(in)g(whic)o(h)g(the)h(\014les)g(are)f
+(created)i(and)e(up)q(dated.)20 b(T)o(ypically)m(,)177 1436
+y Fl(Make)13 b Fr(is)g(used)i(to)e(con)o(trol)g(the)i(pro)q(cess)g(of)e
+(transforming)f(a)h(collection)g(of)g(source)i(co)q(de)f(\014les)g(to)f(one)h
+(or)g(more)177 1485 y(executable)j(\014les.)24 b(As)16 b(the)g(use)g(of)f(F)m
+(unnelW)m(eb)g(implies)f(an)h(extra)h(stage)h(to)e(this)h(pro)q(cess,)h(it)e
+(is)h(natural)f(to)177 1535 y(include)e(the)f(transformation)f(of)g
+Fl(.fw)h Fr(\014les)h(to)f(source)h(co)q(de)g(\014les)g(as)f(part)h(of)e(the)
+i Fl(Make)f Fr(pro)q(cess.)19 b(This)12 b(is)g(easy)177 1585
+y(to)i(do,)f(but)h(the)h(user)g(should)e(b)q(e)i(a)o(w)o(are)f(of)f(one)h
+(asp)q(ect)h(of)e(F)m(unnelW)m(eb)h(whic)o(h)g(can)g(cause)h(problems.)177
+1661 y(It)d(is)g(often)h(useful,)f(when)g(using)g(F)m(unnelW)m(eb,)g(to)g
+(create)h(a)f(F)m(unnelW)m(eb)g Fl(.fw)f Fr(\014le)i(that)f(generates)i(more)
+d(than)177 1711 y(one)j(pro)q(duct)g(\014le.)k(That)13 b(is,)g(a)g(single)g
+Fl(.fw)g Fr(\014le)h(ma)o(y)d(ha)o(v)o(e)i(man)o(y)f(macro)g(de\014nitions)h
+(connected)j(to)d(pro)q(duct)177 1760 y(\014les)g(so)g(that)f(when)h(the)g(F)
+m(unnelW)m(eb)f Fl(.fw)g Fr(\014le)g(is)h(pro)q(cessed)h(b)o(y)f(F)m(unnelW)m
+(eb,)e(sev)o(eral)i(\014les)g(are)g(created.)19 b(F)m(or)177
+1810 y(example,)d(this)g(facilit)o(y)f(has)i(b)q(een)g(used)h(to)e(great)h
+(e\013ect)h(to)f(place)f(the)h(description)h(of)e(an)g(Ada)g(pac)o(k)n(age's)
+177 1860 y(pac)o(k)n(age)e(sp)q(eci\014cation)g(\014le)g(and)g(pac)o(k)n(age)
+f(b)q(o)q(dy)h(\014le)g(in)g(the)g(same)f(F)m(unnelW)m(eb)g
+Fl(.fw)h Fr(\014le.)177 1936 y(The)j(use)h(of)e(m)o(ultiple)e(pro)q(duct)k
+(\014les,)f(ho)o(w)o(ev)o(er,)h(pro)o(v)o(ok)o(es)e(a)h(problem)e(with)h(dep)
+q(endencies.)29 b(Supp)q(ose)18 b(for)177 1986 y(example)9
+b(that)h(a)g(F)m(unnelW)m(eb)g Fl(prog.fw)e Fr(pro)q(duces)k(t)o(w)o(o)d(pro)
+q(duct)j(\014les)e Fl(proc.spec)e Fr(\(a)i(pac)o(k)n(age)g(sp)q
+(eci\014cation\))177 2035 y(and)16 b Fl(prog.body)f Fr(\(a)h(pac)o(k)n(age)f
+(b)q(o)q(dy\).)26 b(If)16 b(the)g(pac)o(k)n(age)g(is)g(accessed)j(in)d(the)g
+(w)o(a)o(y)g(that)g(pac)o(k)n(ages)g(normally)177 2085 y(are,)j(it)e(will)f
+(b)q(e)i(quite)f(common)e(for)i(the)h(programmer)d(to)j(w)o(an)o(t)f(to)g(mo)
+q(dify)e(the)j(pac)o(k)n(age)g(b)q(o)q(dy)f(without)177 2135
+y(mo)q(difying)12 b(the)j(program)e(sp)q(eci\014cation.)20
+b(So)14 b(the)i(programmer)c(will)h(edit)h(the)i Fl(prog.fw)d
+Fr(\014le)h(to)g(c)o(hange)h(the)177 2185 y(pac)o(k)n(age)c(b)q(o)q(dy)m(.)17
+b(The)12 b(result)g(of)e(running)h(this)h(through)f(F)m(unnelW)m(eb)g(will)f
+(b)q(e)i(the)g(desired)g(new)g(pac)o(k)n(age)f(b)q(o)q(dy)177
+2235 y(\014le.)23 b(Ho)o(w)o(ev)o(er,)16 b(F)m(unnelW)m(eb)f(will)f(also)h
+(pro)q(duce)i(a)e(new)h(pac)o(k)n(age)f(sp)q(eci\014cation)h(pro)q(duct)h
+(\014le)e Fm(even)i(though)177 2285 y(it)d(may)h(b)n(e)f(identic)n(al)g(to)g
+(the)h(pr)n(evious)f(version!)k Fr(The)c(result)g(is)f(that)g(the)h(newly)f
+(created)i(\(with)e(a)g(recen)o(t)i(\014le)177 2334 y(date\))h(sp)q
+(eci\014cation)h(pac)o(k)n(age)e(\014le)g(could)h(pro)o(v)o(ok)o(e)f(a)g(h)o
+(uge)h(remak)o(e)f(of)g(m)o(uc)o(h)f(of)h(the)i(program)d(in)h(whic)o(h)g(it)
+177 2384 y(resides.)177 2460 y(T)m(o)j(solv)o(e)h(the)g(problem,)f(F)m
+(unnelW)m(eb)h(includes)g(a)g(command)d(line)i(option)g(\()p
+Fl(D)h Fr(for)f(Delete\),)j(whic)o(h)d(when)177 2510 y(turned)f(on)f(\(using)
+g(\\)p Fl(+D)p Fr("\))g(causes)h(F)m(unnelW)m(eb)f(to)g(suppress)i(pro)q
+(duct)f(and)f(do)q(cumen)o(tation)f(\014les)h(that)g(are)177
+2560 y(iden)o(tical)c(to)h(the)g(previously)f(existing)h(v)o(ersions)g(of)f
+(the)h(same)f(\014les.)18 b(F)m(or)12 b(example,)f(if,)h(during)g(a)g(F)m
+(unnelW)m(eb)177 2609 y(run,)h(a)g(macro)e(w)o(as)i(connected)i(to)e(a)f(pro)
+q(duct)i(\014le)f(called)f Fl(x.dat)p Fr(,)g(and)h(the)g(macro)f(expanded)h
+(to)g Fm(exactly)g Fr(the)177 2659 y(same)g(text)h(as)f(is)h(con)o(tained)f
+(in)g Fl(x.dat)f Fr(then)i(F)m(unnelW)m(eb)f(w)o(ould)g(simply)e
+Fm(never)k(write)e(the)i(pr)n(o)n(duct)f(\014le)p Fr(,)f(the)177
+2709 y(\014le)h Fl(x.dat)f Fr(w)o(ould)g(b)q(e)h(un)o(touc)o(hed)h(and,)e(as)
+h(a)g(result,)g(no)g(further)g Fl(Make)f Fr(propagations)h(w)o(ould)f(tak)o
+(e)h(place.)177 2785 y(F)m(unnelW)m(eb)e(implemen)o(ts)f(this)i(feature)g(b)o
+(y)g(writing)f(eac)o(h)h(pro)q(duct)h(\014le)f(to)f(a)h(temp)q(orary)f
+(\014le)h(with)f(a)h(temp)q(o-)177 2835 y(rary)j(\014le)f(name.)21
+b(It)15 b(then)h(compares)f(the)h(temp)q(orary)e(\014le)h(with)g(the)h
+(target)g(\014le.)22 b(If)15 b(the)h(t)o(w)o(o)e(are)i(iden)o(tical,)1042
+2940 y(49)p eop
+%%Page: 50 51
+50 50 bop 177 42 a Fr(it)18 b(deletes)h(the)f(temp)q(orary)f(\014le.)30
+b(If)17 b(the)h(t)o(w)o(o)f(are)i(di\013eren)o(t)f(it)g(deletes)h(the)f
+(target)g(\014le)g(and)g(renames)f(the)177 91 y(temp)q(orary)c(\014le)h(to)g
+(the)g(target)h(\014le.)177 165 y(Use)c(of)f(the)h Fl(D)f Fr(facilit)o(y)e
+(means)i(that)g(the)h(programmer)d(need)j(not)f(b)q(e)h(punished)g(\(b)o(y)f
+(extra)h Fl(Make)e Fr(propagations\))177 215 y(for)14 b(describing)g(more)f
+(than)h(one)g(pro)q(duct)h(\014le)f(in)f(the)i(same)e(F)m(unnelW)m(eb)g
+(\014le.)177 376 y Fi(2.11)70 b(The)23 b(Dangers)g(of)g(F)-6
+b(unnelW)g(eb)177 492 y Fr(Lik)o(e)15 b(man)o(y)e(to)q(ols)i(that)g(are)h
+(general)f(and)g(\015exible,)g(F)m(unnelW)m(eb)g(can)g(b)q(e)h(used)g(in)f(a)
+g(v)n(ariet)o(y)f(of)h(w)o(a)o(ys,)g(b)q(oth)177 541 y(go)q(o)q(d)h(and)h
+(bad.)26 b(One)18 b(of)e(the)h(original)e(app)q(eals)i(of)f(the)h(literate)g
+(approac)o(h)g(to)f(programming)d(for)k(Kn)o(uth,)177 591 y(the)h(in)o(v)o
+(en)o(tor)f(of)f(literate)i(programmi)o(ng,)d(w)o(as)i(that)g(it)g(allo)o(ws)
+f(the)i(programmer)d(to)i(describ)q(e)i(the)e(target)177 641
+y(program)12 b(b)q(ottom)g(up,)h(top)g(do)o(wn,)g(size)h(to)f(side,)g(or)h(c)
+o(haotically)e(if)g(desired.)19 b(The)14 b(\015exibilit)o(y)e(that)h(this)h
+(st)o(yle)177 691 y(of)h(programmi)o(ng)d(lea)o(v)o(es)j(m)o(uc)o(h)f(ro)q
+(om)f(for)i(bad)g(do)q(cumen)o(tation)e(as)i(w)o(ell)g(as)g(go)q(o)q(d)f(do)q
+(cumen)o(tation.)20 b(Y)m(ears)177 741 y(of)c(exp)q(erience)j(with)e(F)m
+(unnelW)m(eb)f(has)h(rev)o(ealed)g(the)h(follo)o(wing)c(st)o(ylistic)i
+(pitfalls)g(whic)o(h)g(the)i(exp)q(erienced)177 791 y(F)m(unnelW)m(eb)c(user)
+h(should)e(tak)o(e)h(care)h(to)f(a)o(v)o(oid.)952 775 y Fg(3)295
+865 y Fo(Spaghetti)h(organization:)j Fr(By)e(far)f(the)h(w)o(orst)g(problem)e
+(that)h(arises)h(in)f(connection)h(with)295 914 y(the)k(literate)e(st)o(yle)h
+(o)q(ccurs)h(where)g(the)g(programmer)c(has)j(used)g(the)h(literate)f(to)q
+(ol)f(to)g(com-)295 964 y(pletely)f(scram)o(ble)e(the)i(program)d(so)j(that)f
+(the)h(program)d(is)i(describ)q(ed)i(and)e(la)o(y)o(ed)g(out)g(in)g(an)295
+1014 y(unordered,)j(undisciplined)e(\\stream)f(of)g(consciousness".)29
+b(In)17 b(suc)o(h)h(cases)g(the)g(programmer)295 1064 y(ma)o(y)11
+b(b)q(e)i(using)g(the)g(literate)g(st)o(yle)f(as)h(a)f(crutc)o(h)i(to)f(a)o
+(v)o(oid)e(ha)o(ving)g(to)i(think)f(ab)q(out)h(structuring)295
+1114 y(the)i(presen)o(tation.)295 1188 y Fo(Boring)h(organization:)i
+Fr(A)o(t)d(the)h(other)g(extreme,)f(a)g(program)f(ma)o(y)f(b)q(e)j(organized)
+f(in)g(suc)o(h)295 1238 y(a)h(strict)g(w)o(a)o(y)g(that)f(it)h(is)g(essen)o
+(tially)f(laid)g(out)h(in)f(the)i(order)f(most)f(\\desired")h(b)o(y)g(the)g
+(target)295 1287 y(programming)c(language.)21 b(F)m(or)15 b(example,)f(eac)o
+(h)i(macro)e(migh)o(t)f(con)o(tain)i(a)g(single)g(pro)q(cedure,)295
+1337 y(with)g(all)e(the)i(macros)f(b)q(eing)h(called)f(b)o(y)h(a)f(macro)g
+(connected)i(to)f(a)f(\014le)h(at)f(the)i(top.)k(In)15 b(man)o(y)295
+1387 y(cases)20 b(a)f(b)q(oring)f(structure)j(ma)o(y)c(b)q(e)i(en)o(tirely)g
+(appropriate,)h(but)f(the)g(programmer)e(should)295 1437 y(b)q(e)h(w)o(arned)
+f(that)f(it)h(is)f(easy)h(to)g(slip)f(in)o(to)g(suc)o(h)i(a)e(normativ)o(e)f
+(st)o(yle,)i(largely)f(forgetting)g(the)295 1487 y(descriptiv)o(e)f
+(structural)g(p)q(o)o(w)o(er)f(that)g(F)m(unnelW)m(eb)g(pro)o(vides.)295
+1561 y Fo(P)o(o)q(or)h(random)f(access:)k Fr(Using)c(F)m(unnelW)m(eb,)e(it)h
+(is)h(quite)f(p)q(ossible)h(to)f(write)h(programs)e(lik)o(e)295
+1611 y(no)o(v)o(els)j(|)f(to)g(b)q(e)h(read)g(from)e(co)o(v)o(er)i(to)f(co)o
+(v)o(er.)21 b(Sometimes)13 b(the)i(story)g(is)f(v)o(ery)h(exciting,)f(with)
+295 1660 y(data)i(structures)j(making)13 b(dashing)j(triumphs)f(and)h
+(optimized)f(co)q(de)i(bringing)e(the)h(story)h(to)295 1710
+y(a)d(satisfying)e(conclusion.)18 b(These)d(programs)e(can)g(b)q(e)i(w)o
+(orks)e(of)g(art.)18 b(Unfortunately)m(,)13 b(without)295 1760
+y(careful)e(construction,)h(suc)o(h)f(\\no)o(v)o(el-programs")d(can)j(b)q
+(ecome)f(v)o(ery)h(hard)g(to)f(access)j(randomly)295 1810 y(b)o(y)18
+b(\(sa)o(y\))h(a)f(main)o(tenance)f(programmer)g(who)h(wishes)h(only)e(to)i
+(div)o(e)f(in)g(and)g(\014x)g(a)g(sp)q(eci\014c)295 1860 y(problem.)f(If)d
+(the)g(en)o(tire)h(program)d(is)i(scram)o(bled)f(for)g(sequen)o(tial)h(exp)q
+(osition,)f(it)h(can)g(b)q(e)h(hard)295 1909 y(to)f(\014nd)h(the)f(parts)h
+(relating)f(to)g(a)g(single)g(function.)k(Someho)o(w)13 b(a)h(balance)g(m)o
+(ust)f(b)q(e)i(struc)o(k)g(in)295 1959 y(the)h(do)q(cumen)o(t)f(b)q(et)o(w)o
+(een)h(the)g(needs)h(of)d(the)i(sequen)o(tial)f(and)g(of)g(the)h
+(random-access)f(reader.)295 2009 y(This)f(balance)g(will)e(dep)q(end)k(on)d
+(the)i(in)o(tended)f(use)h(of)e(the)i(program.)295 2083 y Fo(T)l(o)q(o-in)o
+(terdep)q(end)o(en)n(t)g(do)q(cumen)o(tati)o(on:)k Fr(Sometimes,)13
+b(when)j(editing)f(a)g(program)f(writ-)295 2133 y(ten)j(using)g(F)m(unnelW)m
+(eb,)f(one)h(kno)o(ws)f(ho)o(w)g(to)g(mo)q(dify)f(the)i(program,)e(but)h(one)
+h(is)g(unsure)g(of)295 2183 y(ho)o(w)f(to)h(up)q(date)g(the)g(surrounding)f
+(do)q(cumen)o(tation!)25 b(The)16 b(do)q(cumen)o(tation)g(ma)o(y)e(b)q(e)j(w)
+o(o)o(v)o(en)295 2233 y(in)o(to)e(suc)o(h)g(a)g(net)o(w)o(ork)h(of)e(facts)h
+(that)h(it)e(seems)i(that)f(c)o(hanging)f(a)h(small)e(piece)i(of)g(co)q(de)h
+(could)295 2282 y(in)o(v)n(alidate)g(man)o(y)f(pieces)k(of)d(do)q(cumen)o
+(tation)g(scattered)k(throughout)d(the)h(do)q(cumen)o(t.)27
+b(The)295 2332 y(do)q(cumen)o(tation)12 b(b)q(ecomes)h(a)g(big)g(tar)g(pit)g
+(in)f(whic)o(h)h(mo)o(v)o(emen)o(t)e(is)i(imp)q(ossible.)j(F)m(or)c(example,)
+295 2382 y(if)18 b(y)o(ou)g(ha)o(v)o(e)g(talk)o(ed)g(ab)q(out)h(a)f
+(particular)g(data)g(structure)j(in)o(v)n(arian)o(t)c(throughout)h(a)g(do)q
+(cu-)295 2432 y(men)o(t,)f(c)o(hanging)f(that)h(in)o(v)n(arian)o(t)e(in)i(a)f
+(small)f(w)o(a)o(y)h(could)h(mean)f(ha)o(ving)g(to)h(up)q(date)g(all)f(the)
+295 2482 y(do)q(cumen)o(tation)i(without)g(touc)o(hing)h(m)o(uc)o(h)f(co)q
+(de.)33 b(In)19 b(suc)o(h)h(cases,)h(the)e(do)q(cumen)o(tation)f(is)295
+2531 y(to)q(o)c(in)o(terdep)q(enden)o(t.)21 b(This)14 b(could)g(b)q(e)h
+(symptomatic)c(of)j(an)f(excessibly)j(in)o(terconnected)g(pro-)295
+2581 y(gram,)g(or)g(of)g(an)h(excessiv)o(ely)h(v)o(erb)q(ose)g(or)e(redundan)
+o(t)i(do)q(cumen)o(ting)d(st)o(yle.)27 b(In)17 b(an)o(y)f(case,)i(a)295
+2631 y(balance)13 b(m)o(ust)f(b)q(e)h(struc)o(k)h(b)q(et)o(w)o(een)h(the)e
+(con)o(v)o(ersational)f(st)o(yle)h(that)g(encourages)i(redundancy)295
+2681 y(\(b)o(y)c(men)o(tioning)d(things)j(man)o(y)e(times\))h(and)g(the)i
+(normalized)d(database)i(approac)o(h)f(where)i(eac)o(h)p 177
+2717 709 2 v 223 2744 a Ff(3)241 2756 y Fh(The)f(fact)g(that)g(these)g
+(faults)f(are)h(listed)g(here)g(do)q(es)f(not)h(mean)g(that)g(the)g(author)f
+(has)h(eliminated)d(them)j(in)g(his)h(o)o(wn)f(w)o(ork.)177
+2795 y(Rather,)d(it)g(is)g(mainly)f(the)h(author's)e(o)o(wn)i(mistak)o(es)f
+(that)g(ha)o(v)o(e)h(resulted)e(in)i(this)g(list)g(b)q(eing)f(compiled.)12
+b(The)c(author)f(immediate)o(ly)177 2835 y(confesses)j(to)h(sev)o(eral)f(of)h
+(the)g(faults)f(listed)g(here,)h(most)f(notably)f(that)i(of)g(P)o(a)o(vlo)o
+(v)f(do)q(cumen)o(tat)o(ion)o(.)1042 2940 y Fr(50)p eop
+%%Page: 51 52
+51 51 bop 295 42 a Fr(fact)17 b(is)f(giv)o(en)g(at)g(only)g(one)g(p)q(oin)o
+(t,)g(and)h(the)g(reader)g(is)g(left)f(to)g(\014gure)h(out)f(the)h
+(implications)295 91 y(throughout)d(the)h(do)q(cumen)o(t.)295
+164 y Fo(P)o(a)o(vlo)o(v)d(do)q(cumen)o(tation:)i Fr(By)f(placing)e(so)h(m)o
+(uc)o(h)f(emphasis)g(on)h(the)g(do)q(cumen)o(tation,)f(F)m(un-)295
+214 y(nelW)m(eb)16 b(naturally)g(pro)o(vides)h(slots)f(where)i(do)q(cumen)o
+(tation)d(\\should")h(go.)25 b(F)m(or)17 b(example,)e(a)295
+264 y(F)m(unnelW)m(eb)h(user)i(ma)o(y)d(feel)h(that)h(there)h(ma)o(y)c(b)q(e)
+j(a)g(rather)g(unpleasan)o(t)g(gap)f(b)q(et)o(w)o(een)i(a)e
+Fl(@C)295 314 y Fr(mark)o(er)g(and)h(the)g(follo)o(wing)d(macro.)25
+b(In)17 b(man)o(y)e(cases)j Fm(no)f Fr(commen)o(tary)e(is)h(needed)i(and)f
+(the)295 363 y(zone)c(is)f(b)q(etter)i(left)e(blank)g(rather)h(than)g(b)q
+(eing)f(\014lled)g(with)g(the)h(kind)e(of)h(uninformativ)o(e)e(w)o(a\017e)295
+413 y(one)17 b(often)h(\014nds)f(\014lling)e(the)j(slots)f(of)g(structured)i
+(do)q(cumen)o(tation)d(written)h(according)g(to)g(a)295 463
+y(military)10 b(standards)k(\(e.g.)e(MIL-STD-2167A\).)1067
+448 y Fg(4)1097 463 y Fr(The)h(lesson)h(is)e(to)h(add)g(do)q(cumen)o(tation)e
+(only)295 513 y(when)h(it)e(adds)i(something.)j(The)d(lesson)f(in)g(Strunk)g
+(and)g(White)p Fo([Strunk79])e Fr(\(p.)i(23\))f(holds)h(for)295
+563 y(program)i(do)q(cumen)o(tation)f(as)i(it)g(do)q(es)g(for)g(other)g
+(writing:)k(\\Vigorous)13 b(writing)g(is)h(concise.)19 b(A)295
+613 y(sen)o(tence)14 b(should)d(con)o(tain)g(no)f(unnecessary)k(w)o(ords,)d
+(a)g(paragraph)g(no)g(unnecessary)j(sen)o(tences,)295 662 y(for)h(the)g(same)
+f(reason)h(that)f(a)h(dra)o(wing)f(should)g(ha)o(v)o(e)g(no)h(unnecessary)i
+(lines)d(and)h(a)f(mac)o(hine)295 712 y(no)g(unnecessary)i(parts.)j(This)13
+b(requires)j(not)d(that)h(the)h(writer)f(mak)o(e)f(all)f(his)i(sen)o(tences)j
+(short,)295 762 y(or)d(that)f(he)h(a)o(v)o(oid)f(all)f(detail)h(and)g(treat)i
+(his)e(sub)r(jects)j(only)c(in)h(outline,)g(but)h(that)f(ev)o(ery)i(w)o(ord)
+295 812 y(tell.".)295 885 y Fo(Duplicate)10 b(do)q(cumen)o(tation)o(:)15
+b Fr(Where)d(the)g(programmer)d(is)i(generating)g(pro)q(duct)h(\014les)g
+(that)295 935 y(m)o(ust)17 b(exist)g(on)g(their)h(o)o(wn)f(within)f(the)i(en)
+o(tire)g(programming)c(en)o(vironmen)o(t)i(\(e.g.)h(the)h(case)295
+984 y(of)f(a)h(programmer)d(in)j(a)f(team)g(who)h(is)f(using)h(F)m(unnelW)m
+(eb)f(for)g(his)h(o)o(wn)g(b)q(ene\014t)h(but)f(m)o(ust)295
+1034 y(generate)c(\(sa)o(y\))f(commen)o(ted)e(Ada)i(sp)q(eci\014cation)g(pac)
+o(k)n(age)f(\014les\))i(there)g(is)e(a)h(tendency)h(for)e(the)295
+1084 y(commen)o(ts)k(in)h(the)h(target)f(co)q(de)h(to)g(duplicate)f(the)h
+(commen)o(tary)d(in)i(the)h(F)m(unnelW)m(eb)f(text.)295 1134
+y(This)11 b(ma)o(y)e(or)i(ma)o(y)e(not)i(b)q(e)h(a)f(problem,)f(dep)q(ending)
+h(on)g(the)h(exact)f(situation.)17 b(Ho)o(w)o(ev)o(er,)11 b(if)g(this)295
+1184 y(is)g(happ)q(ening,)g(it)g(is)f(certainly)h(w)o(orth)g(the)h
+(programmer)c(sp)q(ending)k(some)e(time)g(deciding)g(if)g(one)295
+1233 y(or)j(other)g(of)f(the)h(F)m(unnelW)m(eb)f(or)h(inline-comm)o(en)o(t)d
+(do)q(cumen)o(tation)i(should)g(b)q(e)h(discarded.)19 b(In)295
+1283 y(man)o(y)11 b(cases,)j(a)e(mixture)g(can)g(b)q(e)i(used,)f(with)f(the)h
+(F)m(unnelW)m(eb)f(do)q(cumen)o(tation)g(referring)h(the)295
+1333 y(reader)i(to)f(the)h(inline)e(commen)o(ts)f(where)j(they)f(are)g
+(presen)o(t.)20 b(F)m(or)14 b(example:)177 1443 y Fl(@A)22
+b(Here)f(is)g(the)g(header)g(comment)f(for)h(the)g(list)g(package)g
+(specification.)177 1493 y(The)g(reader)g(should)f(read)h(these)g(comments)f
+(carefully)g(as)i(they)f(define)f(a)i(list.)177 1542 y(There)f(is)g(no)h
+(need)f(to)g(duplicate)f(the)h(comments)f(in)i(this)f(text.)177
+1642 y(@$@<Specification)d(package)j(header)f(comments@>==@{@-)177
+1692 y(--)i(LIST)f(PACKAGE)177 1742 y(--)h(============)177
+1792 y(--)g(*)f(A)h(LIST)f(consists)f(of)h(zero)g(or)h(more)f(ITEMS.)177
+1841 y(--)h(*)f(The)g(items)g(are)g(numbered)f(1)i(to)f(N)h(where)f(N)g(is)h
+(the)f(number)f(of)i(items)f(in)g(the)g(list.)177 1891 y(--)h(*)f(If)h(the)f
+(list)g(is)g(non-empty,)f(item)h(1)g(is)h(called)e(the)h(HEAD)g(of)h(the)f
+(list.)177 1941 y(--)h(*)f(If)h(the)f(list)g(is)g(non-empty,)f(item)h(N)g(is)
+h(called)e(the)h(TAIL)g(of)h(the)f(list.)177 1991 y(--)h(...)177
+2041 y(@})295 2150 y Fo(Ov)o(erdo)q(cumen)o(tin)o(g:)c Fr(Another)e(evil)f
+(that)g(can)g(arise)h(when)f(using)g(F)m(unnelW)m(eb)g(is)g(to)g(o)o(v)o(er-)
+295 2200 y(do)q(cumen)o(t)j(the)h(target)g(program.)29 b(In)19
+b(some)e(of)h(Kn)o(uth's)g(earlier)h(\(e.g.)e(1984\))h(examples)f(of)295
+2250 y(literate)11 b(programming,)d(eac)o(h)j(v)n(ariable)f(is)h(giv)o(en)f
+(its)h(o)o(wn)f(description)i(and)e(eac)o(h)i(piece)g(of)e(co)q(de)295
+2300 y(has)16 b(a)f(detailed)g(explanation.)22 b(This)16 b(lev)o(el)f(of)g
+(analysis,)f(while)h(justi\014ed)h(for)f(tric)o(ky)h(tracts)g(of)295
+2350 y(co)q(de,)d(is)f(probably)g(not)g(w)o(arran)o(ted)h(for)f(most)f(of)h
+(the)h(co)q(de)g(that)f(constitutes)i(most)d(programs.)295
+2400 y(Suc)o(h)18 b(o)o(v)o(er-commen)o(ting)d(can)j(ev)o(en)g(ha)o(v)o(e)f
+(the)h(detrimen)o(tal)f(a\013ect)h(of)f(obscuring)h(the)g(co)q(de,)295
+2449 y(making)11 b(it)h(hard)h(to)g(understand)h(b)q(ecause)h(it)d(is)h(so)g
+(scattered)i(\(see)f(\\spaghetti)f(organization")295 2499 y(earlier\).)18
+b(It)12 b(is)g(up)g(to)g(the)h(user)g(to)f(decide)h(when)f(a)g(stretc)o(h)i
+(of)d(just)i(a)e(few)i(lines)f(of)f(co)q(de)i(should)295 2549
+y(b)q(e)i(pulled)e(to)h(bits)g(and)g(analysed)f(and)h(when)h(it)e(is)h
+(clearer)h(to)f(lea)o(v)o(e)f(it)h(alone.)295 2622 y(In)i(the)g(case)g(where)
+h(there)g(are)e(a)h(few)f(rather)h(tric)o(ky)g(lines)f(of)g(co)q(de,)h(a)f
+(detailed)h(explanation)295 2672 y(ma)o(y)10 b(b)q(e)j(appropriate.)k(The)12
+b(follo)o(wing)e(example)g(con)o(tains)i(a)f(solution)g(to)h(a)g(problem)e
+(outlined)295 2722 y(in)k(section)g(16.3)f(of)g(the)h(b)q(o)q(ok)g(\\The)g
+(Science)h(of)e(Programming")d(b)o(y)k(Da)o(vid)e(Gries)p Fo([Gries81])295
+2771 y Fr(.)p 177 2796 709 2 v 223 2823 a Ff(4)241 2835 y Fh(Note:)j(This)c
+(is)h(not)e(a)i(criticism)d(of)i(2167A,)g(only)f(of)i(the)e(w)o(a)o(y)i(it)f
+(is)h(sometimes)d(used.)1042 2940 y Fr(51)p eop
+%%Page: 52 53
+52 52 bop 177 42 a Fl(@C@<Calculation)19 b(of)i(the)g(longest)g(plateau)f(in)
+h(array)g(b@>)177 141 y(This)g(section)f(contains)h(a)g(solution)f(to)i(a)f
+(problem)g(outlined)f(in)h(section)g(16.3)f(of)177 191 y(the)h(book)g(@/The)g
+(Science)f(of)i(Programming@/)d(by)i(David)g(Gries[Gries81].)177
+291 y(@D)h(Given)e(a)i(sorted)e(array)h(@{b[1..N]@})f(of)h(integers,)f(we)h
+(wish)g(to)h(determine)e(the)177 340 y(@/length@/)g(of)h(the)g(longest)g(run)
+g(of)g(identically)f(valued)g(elements)h(in)g(the)g(array.)177
+390 y(This)g(problem)f(is)i(defined)e(by)i(the)f(following)f(precondition)f
+(and)i(postcondition.)177 490 y(@$@<Precondition@>)o(==@{/)o(*)e(Pre:)i
+(sorted\(b\).)f(*/@})177 540 y(@$@<Postcondition@)o(>==@{)o(@-)177
+589 y(/*)i(Post:)e(sorted\(b\))g(and)h(p)h(is)f(the)h(length)e(of)h(the)h
+(longest)e(run)h(in)h(b[1..N].)e(*/@})177 689 y(@D)i(We)f(approach)f(a)i
+(solution)e(to)h(the)g(problem)g(by)g(deciding)f(to)i(try)f(the)g(approach)f
+(of)177 739 y(scanning)g(through)h(the)g(array)g(one)g(element)f(at)h(a)h
+(time)f(maintaining)f(a)h(useful)177 789 y(invariant)f(through)g(each)h
+(iteration.)f(A)i(loop)f(variable)177 839 y(array)g(index)g(@{i@})f(is)i
+(created)e(for)h(this)g(purpose.)f(The)i(bound)e(function)h(is)177
+888 y(@{N-i@}.)f(Here)h(is)h(the)f(invariant.)177 988 y(@$@<Invariant@>==@)o
+({@-)177 1038 y(/*)h(Invariant:)d(sorted\(b\))h(and)h(1<=i<=N)g(and)239
+b(*/)177 1088 y(/*)261 b(p)22 b(is)f(len)g(of)h(longest)e(run)h(in)h
+(b[1..i].)e(*/@})177 1187 y(@D)i(Establishing)d(the)i(invariant)f(above)h(in)
+g(the)g(initial,)f(degenerate)g(case)h(is)g(easy.)177 1287
+y(@$@<Establish)e(the)i(plateau)g(loop)g(invariant)f(initially@>==@{i)o(=1;)f
+(p=1;@})177 1386 y(@D)j(At)f(this)g(stage,)f(we)i(have)f(the)g(following)f
+(loop)h(structure.)f(Note)h(that)g(when)f(both)177 1436 y(the)h(invariant)f
+(and)h(@{i)h(!=)f(N@})g(are)g(true,)g(the)g(postcondition)e(holds)i(and)g
+(the)g(loop)177 1486 y(can)g(terminate.)177 1586 y(@$@<Set)g(p)g(to)g(the)h
+(length)e(of)i(the)f(longest)f(plateau)g(in)i(sorted)e(array)h
+(b[1..N]@>==@{@-)177 1636 y(@<Precondition@>)177 1685 y(@<Establish)f(the)h
+(plateau)f(loop)h(invariant)f(initially@>)177 1735 y(while)h(\(i)g(!=)h(N\))
+221 1785 y({)243 1835 y(@<Invariant@>)243 1885 y(@<Loop)e(body@>)221
+1934 y(})177 1984 y(@<Postcondition@>)177 2034 y(@})177 2134
+y(@D)i(Now)f(there)f(remains)h(only)g(the)g(loop)g(body)g(whose)g(sole)g
+(task)g(is)g(to)g(increase)f(@{i@})177 2183 y(\(and)h(so)h(decrease)e(the)h
+(value)g(of)g(the)g(bound)g(function\))f(while)h(maintaining)e(the)177
+2233 y(invariant.)h(If)h(@{p@})g(is)g(the)h(length)e(of)i(the)f(longest)f
+(run)177 2283 y(seen)h(so)h(far)f(\(i.e.)f(in)i(b[1..i]\),)e(then,)h(because)
+f(the)h(array)g(is)g(sorted,)177 2333 y(the)g(extension)f(of)i(our)f(array)g
+(range)f(to)177 2383 y(@{b[1..i+1]@})f(can)i(only)g(result)g(in)g(an)h
+(increase)e(in)h(@{p@})g(if)g(the)h(new)f(element)177 2433
+y(terminates)f(a)h(run)h(of)f(length)g(@{p+1@}.)f(The)h(increase)f(can)h(be)h
+(at)f(most)g(1.)g(Because)177 2482 y(the)g(array)g(is)g(sorted,)g(we)g(need)
+177 2532 y(only)g(compare)f(the)i(endpoints)e(of)h(this)g(possible)f(run)h
+(to)h(see)f(if)g(it)h(exists.)e(This)177 2582 y(is)i(performed)d(as)j(shown)f
+(below.)177 2682 y(@$@<Loop)f(body@>==@{i++;)f(if)j(\(b[i])e(!=)i(b[i-p]\))e
+(p++;@})295 2827 y Fr(Where)15 b(the)f(co)q(de)h(is)f(more)f(ob)o(vious,)f
+(it)i(is)g(often)g(b)q(etter)h(to)f(let)g(the)g(co)q(de)h(sp)q(eak)g(for)e
+(itself.)1042 2940 y(52)p eop
+%%Page: 53 54
+53 53 bop 177 42 a Fl(@C)22 b(The)f(following)f(function)g(compares)g(two)h
+(C~strings)f(and)h(returns)g(TRUE)g(iff)g(they)177 91 y(are)g(identical.)177
+191 y(@$@<Function)e(comp@>==@{@-)177 241 y(bool)i(comp\(p,q\))177
+291 y(char)g(*p,*q;)177 340 y({)199 390 y(while)g(\(TRUE\))243
+440 y({)264 490 y(if)h(\(*p)f(!=)g(*q)43 b(\))22 b(return)f(FALSE;)264
+540 y(if)h(\(*p)f(==)g('\\0'\))g(return)g(TRUE;)264 589 y(p++;)g(q++;)243
+639 y(})177 689 y(})177 739 y(@})177 932 y Fi(2.12)70 b(Wholistic)20
+b(Debugging)177 1062 y Fr(Surprising)f(though)f(it)g(ma)o(y)e(b)q(e,)k(F)m
+(unnelW)m(eb)e(has)g(a)h(k)o(ey)f(role)g(to)h(pla)o(y)e(in)h(the)h
+Fm(debugging)h Fr(of)d(programs.)177 1112 y(Long)12 b(exp)q(erience)i(in)e
+(programming)d(has)k(led)f(me)f(to)h(the)h(concept)h(of)e Fo(wholistic)f
+(debugging)p Fr(.)j(When)f(most)177 1162 y(programmers)g(detect)j(a)e(bug,)g
+(their)g(\014rst)h(reaction)g(seems)g(to)f(b)q(e)h(to)f(jump)f(in)o(to)h(the)
+h(debugger)g(where)g(they)177 1212 y(often)f(sp)q(end)h(man)o(y)e(hours)h
+(stepping)h(through)f(endless)h(stretc)o(hes)i(of)c(co)q(de)i(and)f
+(generally)g(w)o(asting)f(a)h(lot)f(of)177 1261 y(time.)177
+1346 y(In)j(con)o(trast,)g(m)o(y)d(\014rst)j(reaction)g(when)g(I)f(detect)i
+(a)e(bug)h(is)f(to)g(realize)h(that)f Fm(the)h(c)n(o)n(de)h(must)f(not)h(b)n
+(e)f(in)g(go)n(o)n(d)177 1396 y(enough)j(shap)n(e)g(if)f(such)g(a)g(bug)h(c)n
+(an)f(arise.)28 b Fr(The)18 b(presence)i(of)d(the)h(bug)f(is)g(tak)o(en)g(as)
+h(symptomatic)c(of)j(the)177 1446 y(lac)o(k)g(of)f(general)i(health)f(of)f
+(the)i(co)q(de.)29 b(If)17 b(that)g(bug)g(o)q(ccurred,)i(wh)o(y)e(not)g
+(another?)28 b(In)18 b(resp)q(onse)h(to)e(this)177 1495 y(realization,)12
+b(m)o(y)f(reaction)i(is)g(not)g(to)g(en)o(ter)h(the)f(debugger,)g(but)h
+(rather)f(to)g(return)h(to)f(the)g(original)e(co)q(de)j(and)177
+1545 y(tend)k(it)e(lik)o(e)h(a)f(garden,)i(adding)e(more)g(commen)o(ts,)f
+(rew)o(orking)i(the)h(grott)o(y)e(bits,)i(adding)e(assertions,)i(and)177
+1595 y(lo)q(oking)d(for)h(faults.)26 b(In)16 b(man)o(y)f(cases,)j(the)f
+(searc)o(h)h(for)e(faults)g(do)q(es)h(not)f(ev)o(en)h(cen)o(tre)i(on)d(the)h
+(sp)q(eci\014c)h(bug)177 1645 y(that)c(arose,)g(but)g(do)q(es)h(tend)f(to)g
+(fo)q(cus)g(on)g(the)h(area)f(of)f(co)q(de)i(where)g(the)f(bug)g(is)g(lik)o
+(ely)e(to)i(b)q(e.)177 1729 y(The)h(result)g(is)f(often)g(that)h(the)g
+(original)d(bug)i(is)h(lo)q(cated)f(more)f(quic)o(kly)h(than)g(it)g(w)o(ould)
+f(ha)o(v)o(e)i(b)q(een)g(had)f(the)177 1779 y(debugger)i(b)q(een)h(in)o(v)o
+(olv)o(ed.)k(But)16 b(ev)o(en)f(if)g(it)g(isn't,)g(there)h(are)g(other)g(b)q
+(ene\014ts.)24 b(A)15 b(programmer)e(who)i(en)o(ters)177 1829
+y(the)g(debugger)f(ma)o(y)e(sta)o(y)i(there)i(for)d(hours)h(and)g(still)f
+(not)h(\014nd)g(the)h(bug.)j(The)c(result)h(is)e(frustration)h(and)g(no)177
+1879 y(p)q(ositiv)o(e)c(gain)g(at)g(all.)15 b(In)c(con)o(trast,)g(b)o(y)f
+(tending)g(to)g(the)h(co)q(de,)h(the)f(programmer)d(is)i(making)e(forw)o(ard)
+i(progress)177 1929 y(at)15 b(all)f(times)h(\(the)h(co)q(de)g(is)f(constan)o
+(tly)g(impro)o(ving\))e(ev)o(en)j(if)f(the)h(bug)f(is)g(not)g(immediately)d
+(found.)22 b(A)o(t)15 b(the)177 1979 y(end)i(of)e(ten)i(hours,)g(the)g
+(programmer)d(can)i(at)g(least)g(feel)h(that)f(the)h(co)q(de)g(is)f(\\ten)g
+(hours)h(b)q(etter",)g(whereas)177 2028 y(the)e(debugger)h(freak)e(will)f
+(lik)o(ely)g(feel)i(defeated.)21 b(All)13 b(this)i(mak)o(es)e(co)q(de)i
+(tending)g(b)q(etter)h(psyc)o(hologically)d(as)177 2078 y(w)o(ell)g(as)h(a)g
+(more)f(e\016cien)o(t)h(approac)o(h)g(to)g(debugging.)177 2163
+y(I)19 b(call)f(this)h(tec)o(hnique)g(wholistic)f(debugging,)h(for)f(it)h(is)
+f(lik)o(e)g(the)i(di\013erence)g(b)q(et)o(w)o(een)g(con)o(v)o(en)o(tional)e
+(and)177 2213 y(wholistic)d(medicine.)20 b(Go)15 b(to)g(a)f(con)o(v)o(en)o
+(tional)g(do)q(ctor)i(with)f(a)f(headac)o(he)i(and)f(he)h(migh)o(t)d(send)j
+(o\013)f(for)f(head)177 2262 y(X-ra)o(ys,)20 b(p)q(erform)e(allergy)g(tests)i
+(and)f(p)q(erform)f(man)o(y)f(other)i(debugging)f(activities.)33
+b(Go)18 b(to)h(a)f(wholistic)177 2312 y(do)q(ctor)e(with)f(the)g(same)f
+(problem)g(and)h(he)h(migh)o(t)d(lo)q(ok)h(to)h(see)h(if)e(y)o(ou)h(are)g
+(\014t,)g(assess)i(y)o(our)e(men)o(tal)e(health,)177 2362 y(and)i(ask)h(y)o
+(ou)f(if)f(y)o(our)i(marriage)d(is)j(w)o(orking.)21 b(Both)16
+b(approac)o(hes)g(are)g(appropriate)f(at)h(di\013eren)o(t)g(times.)22
+b(In)177 2412 y(programming,)10 b(the)k(wholistic)g(approac)o(h)f(is)h(not)g
+(used)h(enough.)177 2605 y Fi(2.13)70 b(Examples)22 b(of)h(F)-6
+b(unnelW)g(eb)23 b(Applications)177 2735 y Fr(Despite)16 b(\(or)g(p)q(erhaps)
+g(b)q(ecause)i(of)s(\))d(its)g(\015exibilit)o(y)f(and)h(simplicit)o(y)m(,)e
+(F)m(unnelW)m(eb)i(can)g(b)q(e)i(applied)d(to)i(quite)177 2785
+y(a)f(n)o(um)o(b)q(er)f(of)h(di\013eren)o(t)h(text)g(pro)q(cessing)g(and)f
+(do)q(cumen)o(ting)f(problems.)21 b(This)15 b(section)h(describ)q(es)h(some)d
+(of)177 2835 y(the)h(more)e(in)o(teresting)h(real)g(problems)f(that)h(F)m
+(unnelW)m(eb)f(has)h(solv)o(ed.)1042 2940 y(53)p eop
+%%Page: 54 55
+54 54 bop 177 42 a Fd(2.13.1)55 b(Analyzing)19 b(the)f(Monster)g(P)n
+(ostscript)h(Header)f(File)177 141 y Fr(During)c(m)o(y)e(Ph.D.)h
+(candidature,)h(I)g(determined)g(at)g(one)g(p)q(oin)o(t)g(that)g(it)g(w)o
+(ould)f(b)q(e)i(v)o(ery)f(desirable)g(to)g(auto-)177 191 y(matically)f
+(insert)j(diagrams)d(from)h(the)i Fm(MacDr)n(aw)g Fr(program)e(on)h(m)o(y)f
+(Macin)o(tosh)h(in)o(to)g(T)1627 200 y(E)1650 191 y(X)g Fl(insert)p
+Fr(ions)f(in)177 240 y(m)o(y)e(thesis.)20 b(This)14 b(w)o(ould)f(allo)o(w)f
+(diagrams)g(to)i(\015oat)f(around)h(with)g(the)h(text)f(and)g(b)q(e)h(prin)o
+(ted)f(automatically)177 290 y(rather)k(than)f(ha)o(ving)g(to)g(b)q(e)g(prin)
+o(ted)h(separately)g(and)f(stuc)o(k)h(in)f(with)g(real)g(glue.)27
+b(On)18 b(the)g(face)f(of)g(it,)g(the)177 340 y(problem)c(seemed)i(inheren)o
+(tly)g(solv)n(able)e(as)i(the)g(Macin)o(tosh)g(could)f(generate)i(P)o
+(ostScript)f(for)f(eac)o(h)h(diagram)177 390 y(and)f(this)g(P)o(ostScript)h
+(could)e(presumably)g(b)q(e)i(inserted)g(in)o(to)e(the)h(P)o(ostScript)h
+(generated)g(using)f(T)1768 399 y(E)1791 390 y(X.)177 462 y(The)19
+b(only)e(trouble)h(w)o(as)g(that)g(the)h(Macin)o(tosh)f(P)o(ostScript)h(co)q
+(de)g(for)f(the)g(diagrams)f(relied)h(on)g(an)g(Apple)177 512
+y(P)o(ostScript)d(header)f(\014le.)k(This)c(mean)o(t)f(that)g(the)i(header)g
+(\014le)e(had)h(to)f(b)q(e)i(included)f(at)f(the)i(start)f(of)f(the)i(T)1895
+521 y(E)1918 512 y(X)177 562 y(P)o(ostScript)d(if)d(the)j(inserted)g(P)o
+(ostScript)f(for)f(the)h(diagrams)e(w)o(as)i(to)f(w)o(ork.)17
+b(Unfortunately)m(,)10 b(merely)g(including)177 612 y(the)17
+b(header)g(\014le)f(at)g(the)g(top)g(didn't)f(w)o(ork,)h(and)g(it)g(turned)h
+(out)e(that)i(a)e(rather)i(detailed)f(analysis)f(of)h(some)177
+662 y(parts)d(of)e(the)h(Apple)g(header)h(\014le)f(w)o(as)g(required)h(in)e
+(order)i(to)e(p)q(erform)g(the)i(necessary)h(surgery)f(on)e(the)i(header)177
+712 y(\014le)h(to)f(mak)o(e)f(it)h(w)o(ork.)18 b(This)13 b(analysis)g(w)o(as)
+g(sev)o(erely)i(aggra)o(v)n(ated)e(b)o(y)g(the)h(fact)g(that)f(the)h(P)o
+(ostScript)h(header)177 761 y(\014le)f(w)o(as)g(virtually)e(unreadable.)18
+b(Basically)13 b(it)h(w)o(as)f(ab)q(out)h(50K)g(of)f(in)o(terw)o(o)o(v)o(en)g
+(de\014nitions,)h(that)g(lo)q(ok)o(ed)f(as)177 811 y(if)f(it)g(had)g(b)q(een)
+i(run)f(through)f(a)g(w)o(ord)h(pro)q(cessor.)19 b(There)14
+b(w)o(as)e(no)g(w)o(a)o(y)g(that)h(the)g(co)q(de)g(could)f(b)q(e)i(understo)q
+(o)q(d)177 861 y(clearly)g(without)f(some)g(kind)g(of)h(reformatting.)i(Tw)o
+(o)d(other)i(asp)q(ects)g(of)e(the)i(problem)d(further)j(complicated)177
+911 y(the)g(analysis:)239 1019 y Fq(\017)21 b Fr(The)12 b(de\014nitions)h(of)
+e(in)o(terest)i(\(i.e.)f(the)g(ones)h(causing)f(the)h(problems\))e(w)o(ere)i
+(scattered)h(throughout)e(the)281 1069 y(\014le.)239 1150 y
+Fq(\017)21 b Fr(Man)o(y)c(de\014nitions)h(could)g(not)g(b)q(e)h(mo)o(v)o(ed.)
+28 b(F)m(or)18 b(one)g(or)g(more)f(reasons)i(\(e.g.)e(to)h(k)o(eep)h(a)e
+(de\014nition)281 1200 y(within)e(the)h(activ)n(ation)f(of)g(a)h(particular)f
+(dictionary)h Fl(begin)e Fr(and)i Fl(end)p Fr(\))f(it)h(w)o(ould)f(ha)o(v)o
+(e)h(b)q(een)h(un)o(wise)281 1250 y(to)d(mo)o(v)o(e)e(the)i(de\014nitions)g
+(of)g(in)o(terest)h(to)e(the)i(same)e(p)q(oin)o(t)g(in)h(the)g(\014le.)177
+1358 y(In)f(fact)g(the)h(\014le)f(w)o(as)g(so)g(messy)g(and)g(complicated)f
+(that,)g(as)i(a)e(rule,)h(it)g(had)g(to)g(b)q(e)h(handled)f(with)f(kid)h(glo)
+o(v)o(es.)177 1408 y(It)h(w)o(ould)f(ha)o(v)o(e)h(b)q(een)h(un)o(wise)f(to)g
+(re-arrange)g(the)h(de\014nitions)f(or)g(to)f(insert)i(commen)o(ts.)177
+1481 y(T)m(o)j(m)o(y)f(surprise,)k(F)m(unnelW)m(eb)d(pro)o(vided)g(an)h
+(unexp)q(ected)i(solution)c(to)i(the)g(problem.)31 b(First)19
+b(I)g(replaced)177 1531 y(all)e(o)q(ccurrences)j(of)d(the)i
+Fl(@)e Fr(in)g(the)h(header)h(\014le)f(with)f Fl(@@)p Fr(.)29
+b(Second,)19 b(I)e(placed)h(the)g(en)o(tire)h(header)f(\014le)g(in)f(a)177
+1580 y(F)m(unnelW)m(eb)d(macro)f(de\014nition)h(connected)j(to)d(a)g(pro)q
+(duct)h(\014le.)20 b(I)14 b(then)i(pro)q(cessed)g(the)f(\014le)g(and)f(c)o
+(hec)o(k)o(ed)i(to)177 1630 y(mak)o(e)f(sure)i(that)g(the)f(pro)q(duct)i
+(\014le)e(w)o(as)g(iden)o(tical)g(to)g(the)h(original)d(\014le.)25
+b(By)17 b(doing)e(all)g(this)h(I)g(had)h(placed)177 1680 y(the)f(header)g
+(\014le)g(under)g(F)m(unnelW)m(eb)e(con)o(trol.)22 b(I)16 b(then)f(left)g
+(the)h(macro)e(de\014nition)h(largely)g(un)o(touc)o(hed,)h(but)177
+1730 y(replaced)21 b(the)f(P)o(ostScript)g(de\014nitions)f(of)g(in)o(terest)i
+(with)e(F)m(unnelW)m(eb)g(macro)f(calls,)i(mo)o(ving)d(the)j(actual)177
+1780 y(P)o(ostScript)15 b(de\014nitions)f(in)o(to)f(F)m(unnelW)m(eb)g(macro)g
+(de\014nitions)h(at)g(the)g(end)g(of)g(the)g(F)m(unnelW)m(eb)g(\014le.)177
+1888 y Fl(@O@<LaserHeader.ps)o(@>==@)o({@-)177 1938 y(Unreadable)20
+b(Postscript)g(code)177 1988 y(@<Print)h(routine@>)177 2038
+y(Unreadable)f(Postscript)g(code)177 2087 y(@<Zap)h(routine@>)177
+2137 y(Unreadable)f(Postscript)g(code)177 2187 y(@})177 2287
+y(@A)i(This)f(routine)f(looks)h(as)g(if)g(it)h(does)f(this,)f(but)i(really)e
+(is)i(does)f(that,)177 2337 y(blah,)g(blah)g(blah.)177 2436
+y(@$@<Print)f(routine@>==@{@-)177 2486 y(/print)h({)g(push)g(pop)g(pop)h
+(push)f(turn)g(around)f(and)h(jump)g(up)h(and)f(down)g(and)g(print)g(it})g
+(def)177 2536 y(@})177 2635 y(@A)h(This)f(routine)f(zaps)h(the...)177
+2735 y(@$@<Zap)g(routine@>==@{@-)177 2785 y(/zap)g({)h(push)f(pop)g(pop)g
+(push)g(turn)g(around)g(and)g(jump)g(up)g(and)g(down)g(and)g(print)g(it})g
+(def)177 2835 y(@})1042 2940 y Fr(54)p eop
+%%Page: 55 56
+55 55 bop 177 42 a Fr(Use)19 b(of)f(F)m(unnelW)m(eb)g(mean)o(t)f(that)h(I)g
+(w)o(as)h(able)f(to)g(pluc)o(k)g(out)g(the)h(de\014nitions)f(of)g(in)o
+(terest)h(\(a)f(v)o(ery)h(small)177 91 y(part)g(of)e(the)i(whole)g(\014le\))f
+(and)g(collect)h(them)f(as)g(a)g(group)g(at)h(the)g(end)f(of)g(the)h(\014le)g
+(where)g(they)g(could)f(b)q(e)177 141 y(studied.)g(Because)13
+b(eac)o(h)f(de\014nition)e(w)o(as)i(safely)e(con)o(tained)i(in)e(a)h(macro,)f
+(it)h(w)o(as)g(p)q(ossible)g(to)g(write)h(a)f(detailed)177
+191 y(commen)o(tary)i(of)i(eac)o(h)g(routine)h(without)e(fear)i(of)e
+(a\013ecting)i(the)f(\014nal)g(P)o(ostScript)h(co)q(de)g(in)e(an)o(y)h(w)o(a)
+o(y)f(at)h(all.)177 241 y(Once)h(this)f(analysis)e(w)o(as)i(completed,)f(it)g
+(w)o(as)g(p)q(ossible)h(to)g(p)q(erform)e(surgery)j(on)e(the)i(o\013ending)e
+(P)o(ostScript)177 291 y(de\014nitions)k(in)f(an)h(extremely)f(con)o(trolled)
+h(w)o(a)o(y)m(.)28 b(In)18 b(particular,)g(the)h(F)m(unnelW)m(eb)e(input)g
+(\014le)h(serv)o(ed)h(as)f(a)177 340 y(rep)q(ository)f(for)g(all)e(the)i
+(di\013eren)o(t)h(v)o(ersions)f(of)f(particular)g(routines)h(that)g(w)o(ere)g
+(tried)g(in)g(order)g(to)f(get)h(the)177 390 y(de\014nitions)g(to)g(w)o(ork.)
+27 b(A)17 b(new)g(\()p Fo(Z)p Fr(ero\))h(macro)d(w)o(as)i(created)i(for)d
+(eac)o(h)i(v)o(ersion)f(of)f(eac)o(h)i(de\014nition,)e(and)h(a)177
+440 y(commen)o(tary)12 b(of)h(ho)o(w)h(it)f(p)q(erformed)h(added)g(ab)q(o)o
+(v)o(e)f(it.)177 516 y(This)e(case)g(demonstrates)h(that)e(F)m(unnelW)m(eb)g
+(is)h(an)g(extremely)f(p)q(o)o(w)o(erful)g(to)q(ol)g(for)g(dissecting)i(and)e
+(do)q(cumen)o(t-)177 566 y(ing)15 b(cryptic)h(text)g(\014les.)22
+b(Through)16 b(the)g(use)g(of)e(macros,)h(particular)g(parts)h(of)e(the)i
+(\014le)g(can)f(b)q(e)h(isolated)f(and)177 616 y(discussed)i(without)e
+(a\013ecting)g(the)h(\014nal)f(pro)q(duct)h(\014le)f(in)g(an)o(y)f(w)o(a)o(y)
+m(.)21 b(In)15 b(the)h(example)e(ab)q(o)o(v)o(e,)h(only)f(a)h(small)177
+665 y(part)d(of)f(the)i(\014le)e(w)o(as)h(analysed,)f(the)i(rest)g(b)q(eing)e
+(left)h(as)g(a)f(blob,)g(but)h(in)g(the)g(general)g(case,)h(a)e(cryptic)h
+(text)h(\014le)177 715 y(could)i(b)q(e)g(inserted)h(in)o(to)e(F)m(unnelW)m
+(eb)g(and)h(then)g(incremen)o(tally)e(dissected)k(\(and)e(p)q(ossibly)f(mo)q
+(di\014ed\))g(un)o(til)177 765 y(the)k(result)g(is)g(a)f(fully)f(do)q(cumen)o
+(ted)h(literate)h(program.)27 b(That)17 b(this)g(can)h(b)q(e)g(done)f
+(without)g(a\013ecting)h(the)177 815 y(actual)c(pro)q(duct)g(\014le)g
+(demonstrates)h(the)f(high)f(degree)j(of)d(descriptiv)o(e)i(con)o(trol)e
+(that)h(F)m(unnelW)m(eb)g(pro)o(vides.)177 960 y Fd(2.13.2)55
+b(Making)19 b(Ada)g(ADTs)g(more)e(A)177 1063 y Fr(Lik)o(e)c(man)o(y)f(mo)q
+(dern)g(programming)e(languages,)j(Ada)g(pro)o(vides)h(mec)o(hanisms)d(for)i
+(hiding)f(information)f(and)177 1113 y(structure.)25 b(In)16
+b(particular,)f(Ada)g(pro)o(vides)h(a)f Fo(pac)o(k)m(age)h
+Fr(facilit)o(y)d(that)j(allo)o(ws)e(the)i(programmer)e(to)h(declare)177
+1163 y(ob)r(jects)g(in)e(a)g(pac)o(k)n(age)h(de\014nition)f(and)g(de\014ne)i
+(them)e(in)g(a)g(corresp)q(onding)i(pac)o(k)n(age)e(b)q(o)q(dy)m(.)k(This)d
+(w)o(orks)f(w)o(ell)177 1213 y(for)h(functions)g(and)g(pro)q(cedures.)20
+b(Ho)o(w)o(ev)o(er,)14 b(in)g(the)g(case)h(of)f(t)o(yp)q(es,)g(implemen)o
+(tation)d(issues)k(\(in)e(particular,)177 1262 y(the)h(need)h(to)e(kno)o(w)g
+(the)h(size)h(of)e(exp)q(orted)h(t)o(yp)q(es\))h(ha)o(v)o(e)e(led)h(the)g
+(designers)h(of)d(Ada)i(to)f(force)h(the)g(placemen)o(t)177
+1312 y(of)f(priv)n(ate)g(t)o(yp)q(e)g(de\014nitions)g(in)g(the)h
+(de\014nition)e(pac)o(k)n(age)h(rather)h(than)f(the)h(implemen)o(tatio)o(n)c
+(pac)o(k)n(age.)18 b(This)177 1362 y(means)12 b(that)h(some)g(implem)o(en)o
+(tation)d(details)j(are)g(presen)o(t)i(in)d(the)i(pac)o(k)n(age)f
+(de\014nition)f(for)h(all)f(to)h(see.)19 b(While)177 1412 y(not)i(actually)e
+(dangerous)i(\(the)h(user)g(of)d(the)j(pac)o(k)n(age)e(cannot)h(mak)o(e)e
+(use)i(of)f(the)h(information)d(without)177 1462 y(recourse)d(to)d(\\Chapter)
+h(13")f(of)g(the)i(Ada)e(Language)g(Reference)j(Man)o(ual)p
+Fo([DOD83])p Fr(\),)c(this)h(asp)q(ect)i(of)e(Ada)h(is)177
+1512 y(certainly)h(unpleasan)o(t.)177 1588 y(During)9 b(the)i(dev)o(elopmen)o
+(t)e(of)h(some)f(Ada)h(programs,)f(F)m(unnelW)m(eb)g(w)o(as)h(used)h(to)f
+(solv)o(e)g(this)g(problem.)15 b(Instead)177 1637 y(of)j(creating)i(a)e
+(separate)i(\014le)f(for)g(the)g(pac)o(k)n(age)g(sp)q(eci\014cation)h(and)e
+(pac)o(k)n(age)h(b)q(o)q(dy)m(,)g(a)g(single)f(F)m(unnelW)m(eb)177
+1687 y(\014le)h(w)o(as)f(created)i(con)o(taining)d(t)o(w)o(o)h(sections,)i
+(one)f(for)f(the)h(eac)o(h)g(pac)o(k)n(age)f(part.)31 b(The)19
+b(\\priv)n(ate")f(part)g(of)177 1737 y(the)h(pac)o(k)n(age)f(sp)q
+(eci\014cation)h(w)o(as)f(then)g(mo)o(v)o(ed)f(\(using)h(a)g(F)m(unnelW)m(eb)
+f(macro)g(de\014nition\))h(to)g(the)h(section)177 1787 y(describing)f(the)h
+(pac)o(k)n(age)e(b)q(o)q(dy)m(.)29 b(Readers)18 b(who)g(wished)g(only)e(to)i
+(read)g(the)g(pac)o(k)n(age)g(sp)q(eci\014cation)g(could)177
+1837 y(read)13 b(only)e(the)i(\014rst)g(part,)f(whic)o(h)g(con)o(tained)g(a)g
+(fully)e(do)q(cumen)o(ted)j(description)f(not)g(con)o(taining)f(the)i(priv)n
+(ate)177 1886 y(de\014nition.)177 2031 y Fd(2.13.3)55 b(Multiple)18
+b(Language)g(Systems)177 2135 y Fr(With)10 b(the)h(prev)n(alence)h(of)e(op)q
+(en)h(systems)g(and)f(m)o(ulti-v)o(endor)f(computing,)g(it)h(is)g(often)h
+(necessary)i(to)d(construct)177 2185 y(systems)20 b(consisting)g(of)f
+(programs)f(written)i(in)g(a)f(n)o(um)o(b)q(er)g(of)g(di\013eren)o(t)i
+(programmi)o(ng)c(languages)i(for)g(a)177 2234 y(n)o(um)o(b)q(er)c(of)f
+(di\013eren)o(t)j(systems.)22 b(F)m(or)15 b(example,)f(a)h(particular)g
+(functionalit)o(y)f(migh)o(t)f(b)q(e)j(implemen)o(ted)d(b)o(y)i(a)177
+2284 y(shellscript)k(\(in)o(v)o(ok)o(ed)e(b)o(y)g(the)h(user\))h(that)f
+(calls)f(a)h(C)f(program)f(that)i(mak)o(es)f(a)g(net)o(w)o(ork)h(connection)h
+(to)e(a)177 2334 y(P)o(ascal)e(program)f(that)h(queries)h(a)f(database.)23
+b(Quite)15 b(often)h(all)e(these)i(programs)e(m)o(ust)h(conspire)h(closely)f
+(to)177 2384 y(execute)k(their)e(function.)25 b(In)17 b(the)g(normal)d(case,)
+k(they)f(m)o(ust)f(b)q(e)h(written)g(separately)m(.)26 b(F)m(unnelW)m(eb)16
+b(allo)o(ws)177 2434 y(them)d(to)h(b)q(e)g(written)h(as)f(a)f(whole.)177
+2510 y(By)19 b(creating)f(a)g(single)g(F)m(unnelW)m(eb)g(\014le)g(that)g
+(creates)i(man)o(y)c(pro)q(duct)j(\014les)g(in)f(di\013eren)o(t)h(languages,)
+f(the)177 2559 y(programmer)c(can)i(describ)q(e)i(the)e(in)o(teraction)g(b)q
+(et)o(w)o(een)i(the)e(di\013eren)o(t)h(programs)e(in)g(an)o(y)h(manner)f
+(desired.)177 2609 y(F)m(urthermore,)f(b)q(ecause)i(the)e(di\013eren)o(t)h
+(pro)q(duct)g(\014les)g(are)g(all)d(created)k(in)e(the)g(same)g(\\text)g
+(space")h(\(i.e.)e(in)h(a)177 2659 y(single)g(F)m(unnelW)m(eb)f(\014le\),)h
+(it)f(is)h(easy)g(for)g(them)f(to)h(share)g(information.)177
+2735 y(F)m(or)h(example,)e(in)i(one)g(real)g(application)e(F)m(unnelW)m(eb)i
+(w)o(as)g(used)g(to)g(create)i(a)d(system)h(for)g(prin)o(ting)f(\014les)h(on)
+177 2785 y(a)i(laser)h(prin)o(ter)g(connected)i(to)d(a)g(remote)g(V)m(ax)g
+(Unix)g(mac)o(hine)g(from)e(a)j(lo)q(cal)e(V)m(ax)h(VMS)h(mac)o(hine.)27
+b(The)177 2835 y(system)18 b(consisted)h(of)f(t)o(w)o(o)g(\014les:)27
+b(a)18 b(VMS)g(DCL)g(command)d(pro)q(cedure)20 b(to)e(run)h(on)f(the)g(lo)q
+(cal)g(no)q(de,)h(and)1042 2940 y(55)p eop
+%%Page: 56 57
+56 56 bop 177 42 a Fr(a)16 b(Unix)h(shellscript)g(to)f(run)h(on)g(the)g
+(remote)f(no)q(de.)27 b(The)17 b(user,)h(b)o(y)e(giving)f(the)i(prin)o(t)g
+(command,)d(in)o(v)o(ok)o(ed)177 91 y(the)h(lo)q(cal)f(VMS)h(command)d(pro)q
+(cedure,)17 b(whic)o(h)d(in)g(turn)i(\014red)f(up)g(the)g(remote)g(Unix)f
+(shellscript.)21 b(The)15 b(t)o(w)o(o)177 141 y(scripts)g(then)g(co)q(op)q
+(erated)g(to)f(transfer)h(the)f(\014les)g(to)g(b)q(e)h(prin)o(ted)f(and)g
+(prin)o(t)f(them.)177 215 y(In)e(addition)f(to)h(its)g(usual)f(do)q(cumen)o
+(tation)g(p)q(o)o(w)o(ers,)i(F)m(unnelW)m(eb)e(assisted)i(in)e(the)i
+(creation)f(of)g(this)g(system)f(in)177 265 y(t)o(w)o(o)i(sp)q(ecial)g(w)o(a)
+o(ys.)17 b(First,)c(it)e(allo)o(w)o(ed)g(pieces)i(of)f(co)q(de)h(from)d(the)j
+(t)o(w)o(o)e(di\013eren)o(t)j(command)9 b(pro)q(cedures)14
+b(to)e(b)q(e)177 315 y(partially)g(in)o(terw)o(o)o(v)o(en)h(in)g(a)g
+(description)h(of)f(their)g(in)o(teraction.)18 b(This)13 b(is)h(just)f(not)g
+(p)q(ossible)h(with)f(commen)o(ts.)177 364 y(Second,)19 b(it)e(facilitated)g
+(the)h(use)h(of)e(shared)i(information.)26 b(F)m(or)17 b(example,)g(under)i
+(some)d(conditions,)i(eac)o(h)177 414 y(\014le)d(to)f(b)q(e)h(prin)o(ted)g(w)
+o(ould)f(b)q(e)h(renamed)f(and)h(copied)f(to)h(the)g(remote)f(system)g(using)
+h(a)f(particular)g(constan)o(t)177 464 y(\014lename)h(\(e.g.)g(\\)p
+Fl(printfile.tmp)p Fr("\).)20 b(F)m(unnelW)m(eb)15 b(allo)o(w)o(ed)g(this)g
+(constan)o(t)i(\014lename)d(to)i(b)q(e)g(included)g(in)f(a)177
+514 y(single)i(macro)e(de\014nition)i(whic)o(h)g(w)o(as)g(in)o(v)o(ok)o(ed)f
+(in)g(the)i(de\014nition)e(of)h(eac)o(h)g(of)f(the)i(scripts.)28
+b(This)17 b(ensured)177 564 y(that)d(the)h(t)o(w)o(o)e(scripts)i(used)g(the)f
+(same)f(name.)177 677 y Fl(@A)22 b(The)f(following)f(macro)g(contains)h(the)g
+(temporary)f(file)h(name)g(used)g(to)g(allow)g(the)177 726
+y(two)g(shellscripts)f(to)h(transfer)f(each)h(file)g(to)g(be)h(printed.)177
+826 y(@$@<printfile@>@M=)o(=@{pr)o(intme)o(.txt@)o(})177 926
+y(@A)g(Here)f(are)g(the)g(scripts)f(for)h(the)h(local)e(VMS)h(node)g(and)h
+(the)f(remote)f(UNIX)h(node.)177 1025 y(@O@<vmscommandproc)o(edure)o(.com@)o
+(>==@{)o(@-)177 1075 y(DCL)g(commands)177 1125 y(copy)g(@<printfile@>)e
+(unixnode::)177 1175 y(DCL)i(commands)177 1225 y(@})177 1324
+y(@O@<unixshellscrip)o(t@>==)o(@{@-)177 1374 y(unix)g(commands)177
+1424 y(print)g(@<printfile@>)177 1474 y(unix)g(commands)177
+1523 y(@})177 1636 y Fr(In)13 b(the)h(case)g(of)e(the)i(prin)o(ting)e
+(system,)h(the)h(en)o(tire)f(system)g(w)o(as)g(describ)q(ed)i(and)e
+(de\014ned)h(in)f(a)f(single)h(F)m(unnel-)177 1686 y(W)m(eb)h
+Fl(.fw)g Fr(\014le.)19 b(In)c(larger)f(systems)g(con)o(taining)g(man)o(y)e(F)
+m(unnelW)m(eb)i Fl(.fw)f Fr(\014les)i(for)f(man)o(y)f(di\013eren)o(t)i(mo)q
+(dules)177 1736 y(in)e(man)o(y)e(di\013eren)o(t)i(languages,)g(the)g(same)f
+(tric)o(k)h(can)g(b)q(e)h(pulled)e(b)o(y)h(placing)f(F)m(unnelW)m(eb)g(macro)
+g(de\014nitions)177 1786 y(for)g(shared)h(v)n(alues)e(in)o(to)h(F)m(unnelW)m
+(eb)f(include)h(\014les.)18 b(F)m(or)11 b(example,)g(a)h(suite)g(of)f
+(implemen)o(tations)e(of)j(net)o(w)o(ork)177 1836 y(no)q(des,)18
+b(with)f(eac)o(h)h(implem)o(en)o(tation)c(b)q(eing)j(in)g(a)g(di\013eren)o(t)
+h(programmi)o(ng)c(language)i(for)h(a)g(di\013eren)o(t)h(tar-)177
+1885 y(get)d(mac)o(hine,)e(could)i(all)e(share)i(a)g(table)f(of)g
+(con\014guration)h(constan)o(ts)g(de\014ned)h(in)e(macros)g(in)g(a)g(F)m
+(unnelW)m(eb)177 1935 y(include)g(\014le.)177 2009 y(In)h(summary)m(,)c(F)m
+(unnelW)m(eb's)k(macro)e(and)i(include)g(\014le)f(mec)o(hanisms)f(pro)o(vide)
+i(a)f(simple)g(w)o(a)o(y)g(for)g(programs)177 2059 y(written)f(in)f
+(di\013eren)o(t)i(languages)e(to)g(share)h(information.)i(This)d(reduces)j
+(redundancy)f(b)q(et)o(w)o(een)f(the)h(systems)177 2109 y(and)g(hence)h(the)g
+(c)o(hance)g(of)e(inconsistencies)i(arising.)177 2248 y Fd(2.13.4)55
+b(The)19 b(Case)g(of)g(the)f(Small)f(F)-5 b(unction)177 2349
+y Fr(Often,)14 b(when)f(programming,)d(there)k(is)f(a)g(need)h(for)f(a)g(co)q
+(de)h(abstraction)g(facilit)o(y)d(that)j(op)q(erates)g(at)f(the)h(text)177
+2399 y(lev)o(el.)26 b(If)17 b(the)g(statemen)o(t)g(\\)p Fl(a:=3;)p
+Fr(")f(o)q(ccurs)j(often,)e(it)f(ma)o(y)f(b)q(e)i(b)q(est)h(simply)d(to)h
+(rep)q(eat)i(it)f(v)o(erbatim.)25 b(If)16 b(a)177 2449 y(sequence)e(of)d(one)
+g(h)o(undred)h(statemen)o(ts)g(is)f(rep)q(eated)j(often,)d(it)g(is)g(normal)f
+(to)h(remo)o(v)o(e)f(the)i(co)q(de)h(to)e(a)g(function)177
+2498 y(and)j(replace)h(the)g(o)q(ccurrences)i(b)o(y)c(a)h(function)g(call.)j
+(Ho)o(w)o(ev)o(er,)d(in)g(b)q(et)o(w)o(een)h(these)h(t)o(w)o(o)d(extremes)i
+(are)f(cases)177 2548 y(where)i(a)f(particular)f(sequence)k(of)c(co)q(de)i
+(is)e(long)g(enough)h(and)g(app)q(ears)h(often)f(enough)g(to)f(b)q(e)i
+(troublesome,)177 2598 y(but)e(whic)o(h)g(is)g(b)q(ound)g(so)g(messily)e(to)i
+(its)g(en)o(vironmen)o(t)f(as)h(to)f(mak)o(e)g(a)g(function)h(call)f(cum)o(b)
+q(ersome.)177 2672 y(F)m(or)d(example,)g(the)h(follo)o(wing)d(line)i(of)h
+(statemen)o(ts)f(\(referring)i(to)e(\014v)o(e)h(v)n(ariables)f(declared)i
+Fm(lo)n(c)n(al)e Fr(to)h(a)f(function\))177 2722 y(migh)o(t)i(app)q(ear)i
+(ten)h(times)e(in)g(a)h(function:)177 2835 y Fl(a=b*3.14159;)19
+b(c=d)j(\045)f(256;)g(e=e+1;)1042 2940 y Fr(56)p eop
+%%Page: 57 58
+57 57 bop 177 42 a Fr(No)o(w)11 b(the)h(\\normal")d(rule)j(of)f(programmi)o
+(ng)e(sa)o(ys)i(that)h(these)h(statemen)o(ts)f(should)f(b)q(e)h(placed)g(in)f
+(a)g(pro)q(cedure)177 91 y(\(also)h(called)h(a)f(\\function")g(in)h(the)g(C)g
+(programmi)o(ng)d(language)i(used)h(in)g(this)f(example\),)g(but)h(here)h
+(\014v)o(e)f(lo)q(cal)177 141 y(v)n(ariables)j(are)h(used.)27
+b(Use)17 b(of)f(a)g(pro)q(cedure)i(\(function\))f(w)o(ould)e(result)j(in)e(a)
+g(pro)q(cedure)i(de\014nition)e(lo)q(oking)177 191 y(something)d(lik)o(e:)177
+284 y Fl(void)21 b(frobit\(a,b,c,d,e\))177 334 y(float)g(*a,b;)177
+384 y(int)g(*c,d;)177 434 y(unsigned)f(*e;)177 484 y({*a=b)h(<<)g(8;)h(*c=d)f
+(\045)g(256;)g(*e=*e+1;})177 577 y Fr(and)14 b(a)f(pro)q(cedure)j(call)d
+(something)g(lik)o(e)177 671 y Fl(frobit\(&a,b,&c,d,&)o(e\);)177
+764 y Fr(This)h(migh)o(t)d(b)q(e)j(w)o(ork)n(able)f(in)g(a)g(language)f(that)
+i(allo)o(w)o(ed)e(formal)f(parameters)j(to)f(b)q(e)h(sp)q(eci\014ed)h(to)f(b)
+q(e)g(b)q(ound)177 814 y(only)d(to)h(particular)f(v)n(ariables.)17
+b(Similarl)o(y)m(,)8 b(it)k(migh)o(t)d(b)q(e)k(p)q(ossible)e(to)h(a)o(v)o
+(oid)e(the)j(parameter)e(list)g(in)g(languages)177 864 y(that)17
+b(supp)q(ort)h(lo)q(cal)e(pro)q(cedures)j(that)e(can)g(access)i(non-lo)q(cal)
+d(v)n(ariables)g(\(suc)o(h)i(as)e(P)o(ascal\).)28 b(Ho)o(w)o(ev)o(er,)17
+b(in)177 914 y(our)12 b(example)f(here,)i(in)e(the)i(C)f(programmi)o(ng)d
+(language,)i(these)i(options)f(are)g(not)g(a)o(v)n(ailable,)e(and)i(so)g(w)o
+(e)g(m)o(ust)177 964 y(either)i(create)h(a)d(function)h(with)g(\014v)o(e)g
+(parameters,)g(or)g(use)h(the)f(C)g(macro)f(prepro)q(cessor)k(\(the)e(b)q
+(est)g(solution\).)177 1013 y(F)m(unnelW)m(eb)d(pro)o(vides)g(the)h(same)f
+(macro)f(facilit)o(y)f(for)i(languages)g(that)g(do)g(not)h(ha)o(v)o(e)f(a)g
+(built-in)f(prepro)q(cessor.)177 1082 y(In)j(particularly)g(sp)q(eed-stresse)
+q(d)j(applications,)c(the)i(programmer)d(ma)o(y)g(b)q(e)j(reluctan)o(t)g(to)f
+(remo)o(v)o(e)g(co)q(de)h(to)f(a)177 1131 y(pro)q(cedure)j(b)q(ecause)g(of)d
+(the)h(pro)q(cedure-call)h(o)o(v)o(erhead.)k(F)m(unnelW)m(eb)13
+b(macros)g(can)h(help)g(there)h(to)q(o.)177 1200 y(In)e(summary)m(,)d(there)k
+(sometimes)d(arises)j(in)f(programmi)o(ng)d(situations)j(where)h(the)f(cost)h
+(of)e(de\014ning)h(a)g(pro)q(ce-)177 1249 y(dure)f(is)e(higher)h(than)g(the)h
+(b)q(ene\014ts)g(it)f(will)e(b)q(esto)o(w.)18 b(Commo)o(n)8
+b(reasons)k(for)f(this)f(are)i(the)f(run-time)f(pro)q(cedure)177
+1299 y(o)o(v)o(erhead)j(and)g(the)g(messy)f(binding)g(problems)f(caused)j(b)o
+(y)f(remo)o(ving)d(target)j(co)q(de)h(from)d(its)h(target)i(con)o(text.)177
+1349 y(F)m(unnelW)m(eb)g(can)g(help)g(in)g(these)h(situations)f(b)o(y)g(allo)
+o(wing)e(the)i(programmer)e(to)i(de\014ne)h(a)f(text)h(macro.)i(This)177
+1399 y(a)o(v)o(oids)e(all)g(the)h(problems)f(and)g(pro)o(vides)h(an)g
+(additional)e(incen)o(tiv)o(e)i(for)f(the)i(programmer)c(to)j(describ)q(e)h
+(the)177 1449 y(piece)e(of)e(co)q(de)i(so)f(isolated.)177 1580
+y Fd(2.13.5)55 b(When)19 b(Commen)n(ts)d(are)j(Bad)177 1676
+y Fr(In)d(the)h(\\go)q(o)q(d)f(old)f(da)o(ys")h(of)g(small)e(mac)o(hine)h
+(memories)f(and)i(in)o(terpreted)i(BASIC,)e(programmers)f(w)o(ould)177
+1725 y(eliminate)f(the)i(\\)p Fl(REM)p Fr(")e(statemen)o(ts)h(\(commen)o
+(ts\))f(from)g(their)i(BASIC)g(programs)e(so)h(as)h(to)f(sa)o(v)o(e)h(space)g
+(and)177 1775 y(increase)e(execution)g(sp)q(eed.)19 b(Whilst)13
+b(this)g(w)o(as)g(ob)o(viously)e(an)i(appalling)e(programming)f(practice,)j
+(the)h(small)177 1825 y(memories)e(and)i(slo)o(w)f(micropro)q(cessors)i
+(often)f(made)e(this)i(tempting,)e(if)h(not)h(necessary)m(.)177
+1893 y(Thankfully)m(,)9 b(times)h(ha)o(v)o(e)h(c)o(hanged)h(since)f(then,)h
+(and)f(most)f(co)q(de)i(is)f(no)o(w)f(compiled)g(rather)i(than)f(in)o
+(terpreted.)177 1943 y(Ho)o(w)o(ev)o(er,)19 b(from)e(time)f(to)i(time)f(one)h
+(still)f(runs)i(in)o(to)f(an)f(en)o(vironmen)o(t)g(or)h(situation,)g(or)h(sp)
+q(ecial-purp)q(ose)177 1993 y(language,)i(where)h(commen)o(ts)d(are)i(either)
+g(una)o(v)n(ailable)e(\(no)h(commen)o(t)f(feature\))i(or)g(undesirable.)39
+b(Here)177 2043 y(F)m(unnelW)m(eb)12 b(can)h(b)q(e)g(used)g(to)g(fully)e(do)q
+(cumen)o(t)h(the)h(co)q(de)g(without)f(resulting)h(in)f(an)o(y)g(commen)o(ts)
+e(in)i(the)h(\014nal)177 2092 y(co)q(de)i(at)f(all.)i(F)m(or)e(example:)239
+2186 y Fq(\017)21 b Fr(Commen)o(ts)15 b(in)h(frequen)o(tly)i(used)g
+Fl(.h)e Fr(header)i(\014les)g(in)e(C)h(programs)f(can)h(ha)o(v)o(e)g(a)g
+(signi\014can)o(t)f(impact)281 2236 y(on)f(compilation)d(sp)q(eed.)23
+b(Often)16 b(suc)o(h)f(header)i(\014les)e(are)g(fairly)f(cryptic)i(and)f
+(really)f(ough)o(t)h(to)g(b)q(e)g(w)o(ell)281 2286 y(commen)o(ted,)d(but)i
+(their)g(authors)g(are)h(reluctan)o(t)f(to.)239 2362 y Fq(\017)21
+b Fr(Commen)o(ts)16 b(are)k(undesirable)f(in)f(P)o(ostScript)i(header)g
+(\014les)f(that)g(m)o(ust)f(b)q(e)h(transferred)i(rep)q(eatedly)281
+2412 y(along)13 b(comm)o(unicati)o(ons)e(c)o(hannels)k(\(e.g.)e(the)i(Apple)f
+(Macin)o(tosh)g(LaserW)m(riter)g(header)h(\014le\).)239 2488
+y Fq(\017)21 b Fr(In)o(terpreted)16 b(programs)d(in)g(em)o(b)q(edded)h
+(systems.)239 2565 y Fq(\017)21 b Fr(Hand)14 b(written)g(mac)o(hine)f(co)q
+(de)h(in)g(hex)g(dump)f(form)f(could)i(b)q(e)g(commen)o(ted.)239
+2642 y Fq(\017)21 b Fr(A)16 b(programmer)d(ma)o(y)g(wish)j(to)f(annotate)g(a)
+h(text)g(data)f(\014le)g(con)o(taining)g(lists)g(of)g(n)o(um)o(b)q(ers)g
+(that)h(is)f(to)281 2691 y(b)q(e)e(fed)f(in)o(to)g(a)f(statistical)h(program)
+f(that)h(do)q(es)h(not)f(pro)o(vide)g(an)o(y)g(commen)o(t)e(facilit)o(y)g
+(for)i(its)g(input)g(\014le.)177 2785 y(In)g(all)f(these)i(situations,)e(F)m
+(unnelW)m(eb)h(allo)o(ws)e(full)h(in)o(tegrated)h(do)q(cumen)o(tation)e
+(without)i(an)o(y)f(impact)g(on)g(the)177 2835 y(\014nal)i(co)q(de.)1042
+2940 y(57)p eop
+%%Page: 58 59
+58 58 bop 177 42 a Fd(2.13.6)55 b(Do)r(cumen)n(ts)17 b(That)i(Share)g(T)-5
+b(ext)177 144 y Fr(F)m(unnelW)m(eb)13 b(is)g(v)o(ery)h(useful)g(when)g
+(preparing)f(m)o(ultiple)f(do)q(cumen)o(ts)h(that)h(m)o(ust)e(share)i(large)f
+(slabs)h(of)f(iden-)177 194 y(tical)g(text)i(that)f(are)g(b)q(eing)g(constan)
+o(tly)g(mo)q(di\014ed.)177 270 y(F)m(or)g(example)e(someone)h(preparing)h(t)o
+(w)o(o)g(sligh)o(tly)e(di\013eren)o(t)j(user)g(man)o(uals)d(for)h(t)o(w)o(o)g
+(sligh)o(tly)g(di\013eren)o(t)i(audi-)177 319 y(ences)h(migh)o(t)c(w)o(an)o
+(t)h(the)h(man)o(uals)e(to)i(share)h(large)e(slabs)h(of)f(text,)h(while)g
+(still)f(allo)o(wing)e(di\013erences)16 b(b)q(et)o(w)o(een)177
+369 y(them.)i(The)d(follo)o(wing)c(example)i(sho)o(ws)h(ho)o(w)g(this)g(can)h
+(b)q(e)f(done.)20 b(The)14 b(co)q(de)h(is)f(cluttered,)h(but)g(this)f
+(clutter)177 419 y(w)o(ould)f(not)h(b)q(e)h(a)e(problem)g(if)g(the)h(lumps)f
+(of)g(text)h(w)o(ere)h(mo)q(derately)e(large.)177 537 y Fl
+(@O@<manual1.txt@>=)o(=@{@<)o(M1@>@)o(+@})177 587 y(@O@<manual2.txt@>=)o
+(=@{@<)o(M2@>@)o(+@})177 687 y(@$@<M1@>+=@{@<T1@>)o(@})177
+736 y(@$@<M2@>+=@{@<T1@>)o(@})177 786 y(@$@<T1@>@M==@{Firs)o(t)19
+b(lump)i(of)g(text)g(shared)g(by)g(both)g(documents.@+@})177
+886 y(@$@<M1@>+=@{Text)e(for)i(first)g(document@+@})177 936
+y(@$@<M2@>+=@{Text)e(for)i(second)f(document@+@})177 1035 y
+(@$@<M1@>+=@{@<T2@>)o(@})177 1085 y(@$@<M2@>+=@{@<T2@>)o(@})177
+1135 y(@$@<T2@>@M==@{Seco)o(nd)f(lump)i(of)g(text)g(shared)g(by)g(both)g
+(documents.@+@})177 1253 y Fr(An)16 b(alternativ)o(e)g(approac)o(h,)f(whic)o
+(h)h(migh)o(t)e(w)o(ork)h(b)q(etter)i(in)f(situations)f(where)i(there)g(are)f
+(man)o(y)e(small)g(dif-)177 1303 y(ferences)k(b)q(et)o(w)o(een)f(the)f(t)o(w)
+o(o)f(do)q(cumen)o(ts)h(rather)g(than)g(a)f(few)h(large)f(ones,)i(is)e(to)h
+(de\014ne)g(a)g(macro)e(with)h(t)o(w)o(o)177 1353 y(argumen)o(ts,)c(one)h
+(for)f(eac)o(h)h(pro)q(duct)g(\014le)g(do)q(cumen)o(t.)17 b(W)m(rite)11
+b(the)h(do)q(cumen)o(t)f(from)f(top)h(to)h(b)q(ottom,)e(but)i(place)177
+1403 y(all)h(stretc)o(hes)j(that)e(di\013er)g(b)q(et)o(w)o(een)i(the)e(t)o(w)
+o(o)g(do)q(cumen)o(ts)f(in)h(a)f(macro)g(call.)177 1521 y Fl(@!)22
+b(Set)f(the)g(definition)f(of)h(@#D)g(to)177 1571 y(@!)87 b(@1)21
+b(to)h(create)e(the)h(shareholders)f(report.)177 1621 y(@!)87
+b(@2)21 b(to)h(create)e(the)h(customers)f(report.)177 1670
+y(@$@#D@\(@2@\)@M==@{@)o(1@})177 1770 y(@O@<report.txt@>==)o(@{@-)177
+1820 y(1992)h(ANNUAL)g(REPORT)f(TO)i(@#D@\(Shareholder)o(s@,C)o(ustom)o
+(ers@\))177 1870 y(==================)o(====@)o(#D@\(=)o(=====)o(=====)o
+(=@,=)o(=====)o(===@\))177 1919 y(This)f(has)g(been)g(a)h(very)f(good)g(year)
+g(for)g(The)g(Very)g(Big)g(Corporation)f(of)h(America.)177
+1969 y(With)g(your)g(help,)g(we)g(have)g(been)g(able)g(to)h(successfully)177
+2019 y(@#D@\(@"screw)d(the)j(customers)e(for)h(every)g(cent)f(they)h
+(have@"@,)286 2069 y(@"knock)f(the)i(shareholders)d(into)i(submission)f(to)h
+(bring)g(you)g(lower)g(prices@"@\).)177 2119 y(With)g(gross)g(earnings)f
+(approaching)g(six)h(trillion)f(dollars,)g(we)h(have)g(been)g(able)g(to)177
+2168 y(@#D@\(@"increase)e(dividends@"@,)286 2218 y(@"lower)h(prices@"@\).)177
+2268 y(We)i(expect)e(to)h(have)g(an)h(even)f(better)f(year)h(next)g(year.)177
+2318 y(@})177 2436 y Fr(One)c(application)f(where)h(text)g(sharing)g(can)f(b)
+q(e)i(particularly)d(useful)i(is)f(in)g(the)i(preparation)e(of)g(computer)177
+2486 y(do)q(cumen)o(tation)10 b(con)o(taining)g(examples.)17
+b(F)m(or)11 b(example,)f(a)h(b)q(o)q(ok)g(describing)g(a)g(new)h(programming)
+c(language)177 2536 y(migh)o(t)j(b)q(e)j(full)d(of)i(examples)f(of)g(small)f
+(programs)h(written)h(in)g(the)h(language)e(whic)o(h)h(the)g(user)h(migh)o(t)
+d(w)o(an)o(t)i(to)177 2586 y(try)g(without)g(ha)o(ving)f(to)h(t)o(yp)q(e)g
+(them)f(all)g(in.)17 b(The)d(\\default")e(approac)o(h)h(of)f(k)o(eeping)h(a)g
+(cop)o(y)g(of)f(the)i(examples)177 2635 y(in)f(the)h(text)g(of)e(the)i(b)q(o)
+q(ok)f(and)g(another)h(cop)o(y)f(in)g(separate)h(\014les)g(is)f(cum)o(b)q
+(ersome)f(and)h(error)i(prone,)e(b)q(ecause)177 2685 y(b)q(oth)h(\014les)g
+(ha)o(v)o(e)g(to)g(b)q(e)g(up)q(dated)h(whenev)o(er)g(an)e(example)g(is)h(c)o
+(hanged.)k(A)c(more)f(sophisticated)h(approac)o(h)g(is)177
+2735 y(to)d(store)g(eac)o(h)g(example)e(in)i(a)f(separate)i(\014le,)e(and)h
+(then)g(use)g(the)h(\\include)e(\014le")g(facilit)o(y)f(of)h(the)h(w)o(ord)g
+(pro)q(cessor)177 2785 y(to)k(include)g(eac)o(h)h(example)e(in)h(the)g(text.)
+23 b(This)15 b(is)g(a)g(b)q(etter)h(solution,)e(but)i(su\013ers)h(from)c(a)i
+(few)g(dra)o(wbac)o(ks.)177 2835 y(First,)i(when)f(editing)g(the)h(b)q(o)q
+(ok)f(in)g(a)f(w)o(ord)h(pro)q(cessor,)j(the)d(examples)g(in)f(the)i(b)q(o)q
+(ok)f(will)f(not)h(b)q(e)g(directly)1042 2940 y(58)p eop
+%%Page: 59 60
+59 59 bop 177 42 a Fr(accessible)19 b(or)f(visible.)29 b(T)m(o)17
+b(see)i(an)e(example,)g(the)h(writer)g(w)o(ould)f(ha)o(v)o(e)h(to)f(op)q(en)i
+(the)f(\014le)g(con)o(taining)e(the)177 91 y(example)11 b(in)g(a)h(separate)h
+(windo)o(w.)k(This)12 b(could)f(b)q(ecome)h(tedious)g(if)g(the)g(text)h(con)o
+(tained)f(man)o(y)e(examples,)h(as)177 141 y(man)o(y)h(texts)j(do.)i(F)m
+(urthermore,)c(there)i(is)f(a)f(risk)h(that)f(some)g(example)f(\014les)i
+(will)f(b)q(e)h(included)g(in)f(the)h(wrong)177 191 y(place.)k(Second,)12
+b(b)q(ecause)i(the)e(b)q(o)q(ok)g(is)f(dep)q(enden)o(t)j(on)d(the)i(included)
+e(\014les,)i(the)f(b)q(o)q(ok)f(will)g(end)h(up)g(consisting)177
+241 y(of)h(a)h(directory)h(of)e(a)h(h)o(undred)g(or)g(more)f(\014les)h
+(instead)g(of)g(just)g(a)f(few.)177 316 y(An)g(alternativ)o(e)f(solution)g
+(is)g(to)h(construct)h(a)e(single)h(F)m(unnelW)m(eb)f Fl(.fw)f
+Fr(\014le)i(that,)f(when)h(pro)q(cessed,)i(pro)q(duces)177
+366 y(b)q(oth)h(the)g(b)q(o)q(ok)g(\014le)g(and)f(the)i(example)d(\014les.)24
+b(This)16 b(solution)f(assumes)g(that)h(the)g(b)q(o)q(ok)g(consists)h(of)e(a)
+g(text)177 416 y(\014le)f(con)o(taining)f(commands)e(for)j(a)f(t)o(yp)q
+(esetter)k(suc)o(h)d(as)g(T)1112 425 y(E)1135 416 y(X.)177
+534 y Fl(@O@<Book.tex@>==@{)o(@#B@})177 633 y(@$@#B+=@{@-)177
+683 y(The)21 b(first)g(step)g(to)g(learning)g(the)g(object)f(oriented)g
+(AdaCgol++)g(language)h(is)g(to)g(examine)177 733 y(a)h(hello)f(world)f
+(program.)177 832 y(\\start{verbatim})177 882 y(@<Ex1@>)177
+932 y(\\finish{verbatim})177 982 y(@})177 1081 y(@$@<Ex1@>==@{read)e
+(iopack@+Enter)i(!World~!)g(!Hello~!)g(ex)h(pr)h(flu)f(X[1]@})177
+1131 y(@O@<Ex1.c@>==@{@<E)o(x1@>@)o(})177 1231 y(@$@#B+=@{@-)177
+1281 y(To)h(understand)d(the)i(program,)g(think)f(of)i(the)f(execution)f
+(state)h(as)g(a)h(plate)e(of)i(cheese...)177 1331 y(@})177
+1448 y Fr(Most)12 b(of)f(the)h(\014le)f(will)f(consist)i(of)f(part)h
+(de\014nitions)f(of)g(the)h(additiv)o(e)f(macro)f Fl(@#B)p
+Fr(.)h(The)h(de\014nition)f(is)g(\\brok)o(en")177 1498 y(to)j(allo)o(w)e(a)i
+(macro)e(de\014nition,)h(wherev)o(er)j(an)e(example)e(app)q(ears.)177
+1573 y(The)e(example)f(ab)q(o)o(v)o(e)g(is)g(a)h(little)f(messy)g(b)q(ecause)
+i(F)m(unnelW)m(eb)e(do)q(es)i(not)e(allo)o(w)f(macros)h(connected)i(to)f(pro)
+q(duct)177 1623 y(\014les)18 b(to)f(b)q(e)h(called,)f(and)g(it)g(do)q(es)h
+(not)f(ha)o(v)o(e)g(text)h(expressions)h(that)e(write)g(to)h(an)f(pro)q(duct)
+h(\014le)f(as)g(w)o(ell)g(as)177 1673 y(ev)n(aluating)d(to)h(text.)22
+b(Nev)o(ertheless,)17 b(it)e(presen)o(ts)i(a)e(fairly)f(clean)h(solution)f
+(to)h(the)h(problem)e(of)g(k)o(eeping)h(the)177 1723 y(example)e(programs)f
+(in)i(a)f(computing)g(text)h(up)g(to)g(date.)177 1866 y Fd(2.13.7)55
+b(Generics)177 1968 y Fr(It)13 b(is)g(w)o(ell)f(kno)o(wn)h(that)g(generics)h
+(in)f(programmi)o(ng)d(languages)i(are)i(closely)f(aligned)f(with)g(textual)h
+(substitu-)177 2018 y(tion.)j(In)11 b(fact,)f(a)g(go)q(o)q(d)g(w)o(a)o(y)g
+(to)g(understand)i(the)f(generic)g(facilit)o(y)e(of)g(a)h(new)h(programming)c
+(language)i(is)i(to)f(ask)177 2068 y(oneself)15 b(the)g(question)g(\\In)f
+(what)g(w)o(a)o(y)g(do)q(es)h(this)g(generic)g(facilit)o(y)e(di\013er)i(from)
+d(simple)h(text)i(substitution?")177 2118 y(The)j(di\013erences,)j(if)16
+b(an)o(y)m(,)h(t)o(ypically)g(ha)o(v)o(e)g(to)g(do)h(with)f(the)h
+(di\013erence)i(in)d(scoping)g(b)q(et)o(w)o(een)i(textual)f(and)177
+2168 y(in)o(telligen)o(t)d(substitution)g(and)h(whether)h(the)f(generic)g(co)
+q(de)h(is)e(shared)i(or)e(copied)h(b)o(y)g(the)g(implemen)o(tati)o(on.)177
+2217 y(In)e(most)f(cases)i(the)f(di\013erences)j(are)d(quite)g(minor.)177
+2293 y(Because)h(generic)g(facilities)d(are)h(so)h(closely)f(aligned)f(with)h
+(text)h(substitution,)f(it)g(is)g(p)q(ossible)h(to)f(use)h(F)m(unnel-)177
+2343 y(W)m(eb's)i(parameterized)g(macros)g(to)g(pro)o(vide)g(generics)h(in)f
+(programmi)o(ng)d(languages)j(that)g(do)g(not)g(supp)q(ort)177
+2392 y(generics.)27 b(Simply)14 b(write)j(a)f(F)m(unnelW)m(eb)f(macro)h
+(whose)h(parameters)f(are)h(the)g(parameters)f(of)g(the)h(generic)177
+2442 y(and)d(whose)g(b)q(o)q(dy)g(is)g(the)h(generic)f(ob)r(ject.)177
+2518 y(The)i(follo)o(wing)d(F)m(unnelW)m(eb)j(\014le)f(giv)o(es)h(an)f
+(example)g(of)g(a)g(fully)g(w)o(ork)o(ed)g(V)m(ax)g(P)o(ascal)h(generic)h
+(set)f(pac)o(k)n(age)177 2567 y(implemen)o(ted)d(using)i(F)m(unnelW)m(eb)f
+(parameterized)h(macros.)21 b(The)15 b(pac)o(k)n(age)g(w)o(as)g(written)g(b)o
+(y)g(Barry)h(Dwy)o(er)177 2617 y(of)c(the)i(Computer)d(Science)k(Departmen)o
+(t)d(of)g(the)h(Univ)o(ersit)o(y)g(of)f(Adelaide)g(in)h(1987)e(and)i(w)o(as)f
+(emailed)f(to)i(me)177 2667 y(on)j(11)f(No)o(v)o(em)o(b)q(er)f(1987.)23
+b(The)16 b(generic)g(pac)o(k)n(age)f(pro)o(vides)h(a)f(set)i(abstraction)f
+(implemen)o(ted)d(using)i(link)o(ed)177 2717 y(lists.)j(Note)c(the)h(clev)o
+(er)g(use)f(of)g(the)g(instan)o(tiation)f(parameters)h(in)f(t)o(yp)q(e,)h
+(function,)f(and)h(pro)q(cedure)i(names.)177 2835 y Fl(@$@<Generic)k(Set)h
+(Module@>@\(@2@\)==@)o({@-)1042 2940 y Fr(59)p eop
+%%Page: 60 61
+60 60 bop 177 42 a Fl(@!)22 b(@1)f(is)g(the)g(base)g(type,)g(@2)h(is)f(the)g
+(set)g(type.)177 91 y([inherit)f(\('@1'\),)h(environment)e(\('@2'\)])177
+191 y(module)i(@2;)177 291 y(type)43 b(@2)21 b(=)h(^@2Record;)308
+340 y(@2Record)e(=)i(record)373 390 y(Member:)f(@1;)373 440
+y(Next:)g(@2;)373 490 y(end;)177 589 y(procedure)f(Null@2)h(\(var)g(Result:)f
+(@2\);)177 639 y(begin)h(new)g(\(Result\);)177 689 y(Result^.Member)e(:=)i
+(\(-)h(MaxInt\)::@1;)177 739 y(Result^.Next)d(:=)j(nil)f(end;)177
+839 y(function)f(IsNull@2)g(\(S:)i(@2\):)f(boolean;)177 888
+y(begin)g(IsNull@2)f(:=)h(S^.Member::integer)e(=)i(-)h(MaxInt)e(end;)177
+988 y(procedure)g(ForEach@1)g(\(S:)h(@2;)g(procedure)f(DoIt)h(\(i:)g(@1\)\);)
+177 1038 y(var)65 b(ThisS,)20 b(NextS:)h(@2;)177 1088 y(begin)g(ThisS)g(:=)g
+(S;)177 1137 y(while)g(ThisS^.Member::in)o(teger)d(<>)k(-)f(MaxInt)g(do)243
+1187 y(begin)f(NextS)h(:=)g(ThisS^.Next;)243 1237 y(DoIt)g(\(ThisS^.Member\))
+o(;)243 1287 y(ThisS)f(:=)i(NextS)e(end;)177 1337 y(end;)177
+1436 y(function)g(First@1)h(\(S:)g(@2\):)g(@1;)177 1486 y(begin)g(First@1)f
+(:=)i(S^.Member)e(end;)177 1586 y(function)g(Is@1InSet)g(\(i:)h(@1;)h(S:)f
+(@2\):)g(boolean;)243 1636 y(procedure)e(TestEquals)h(\(j:)h(@1\);)243
+1685 y(begin)f(if)i(Equal@1)e(\(i,)h(j\))h(then)f(Is@1InSet)e(:=)j(true;)f
+(end;)177 1735 y(begin)g(Is@1InSet)f(:=)h(false;)g(ForEach@1)f(\(S,)h
+(TestEquals\);)e(end;)177 1835 y(function)h(Includes@2)g(\(S1,)h(S2:)g(@2\):)
+g(boolean;)177 1885 y(var)g(Result:)g(boolean;)243 1934 y(procedure)e
+(TestIfInS1)h(\(i:)h(@1\);)243 1984 y(begin)f(if)i(Result)e(then)h(if)h(not)f
+(Is@1InSet)f(\(i,)h(S1\))g(then)g(Result)g(:=)g(false;)f(end;)177
+2034 y(begin)h(Result)f(:=)i(true;)177 2084 y(ForEach@1)e(\(S2,)h
+(TestIfInS1\);)177 2134 y(Includes@2)f(:=)h(Result)g(end;)177
+2233 y(function)f(Disjoint@2s)g(\(S1,)h(S2:)g(@2\):)g(boolean;)177
+2283 y(var)g(Result:)g(boolean;)243 2333 y(procedure)e(TestIfInS1)h(\(i:)h
+(@1\);)243 2383 y(begin)f(if)i(Result)e(then)h(if)h(Is@1InSet)e(\(i,)h(S1\))g
+(then)g(Result)f(:=)i(false;)e(end;)177 2433 y(begin)h(Result)f(:=)i(true;)
+177 2482 y(ForEach@1)e(\(S2,)h(TestIfInS1\);)177 2532 y(Disjoint@2s)f(:=)h
+(Result)g(end;)177 2632 y(function)f(Equal@2)h(\(S1,)g(S2:)g(@2\):)g
+(boolean;)177 2682 y(begin)177 2731 y(Equal@2)g(:=)g(Includes@2)f(\(S1,)h
+(S2\))g(and)g(Includes@2)f(\(S2,)h(S1\);)177 2781 y(end;)1042
+2940 y Fr(60)p eop
+%%Page: 61 62
+61 61 bop 177 42 a Fl(procedure)20 b(Insert@1)g(\(i:)h(@1;)h(var)f(S:)g
+(@2\);)177 91 y(var)65 b(This,)21 b(Pred,)f(Succ:)h(@2;)177
+141 y(begin)177 191 y(if)h(not)f(Is@1InSet)f(\(i,)h(S\))g(then)243
+241 y(begin)243 291 y(Pred)g(:=)g(nil;)g(Succ)g(:=)g(S;)243
+340 y(while)f(Succ^.Member::integ)o(er)f(>)i(i::integer)f(do)h(begin)308
+390 y(Pred)g(:=)g(Succ;)g(Succ)g(:=)g(Succ^.Next)f(end;)243
+440 y(if)h(Succ^.Member::int)o(eger)d(<)k(i::integer)e(then)h(begin)308
+490 y(new)g(\(This\);)f(This^.Next)g(:=)i(Succ;)e(This^.Member)g(:=)h(i;)308
+540 y(if)g(Pred)g(<>)h(nil)f(then)g(Pred^.Next)f(:=)h(This)g(else)g(S)g(:=)h
+(This;)308 589 y(end;)243 639 y(end;)177 689 y(end;)177 789
+y(procedure)e(Insert@1s)g(\(S1:)h(@2;)g(var)g(S2:)h(@2\);)177
+839 y(var)65 b(This,)21 b(Pred,)f(Succ:)h(@2;)243 888 y(procedure)e(Add@1)i
+(\(i:)g(@1\);)243 938 y(begin)f(Insert@1)g(\(i,)i(S2\))f(end;)177
+988 y(begin)177 1038 y(ForEach@1)f(\(S1,)h(Add@1\);)177 1088
+y(end;)177 1187 y(procedure)f(Remove@1)g(\(i:)h(@1;)h(var)f(S:)g(@2\);)177
+1237 y(var)65 b(Pred,)21 b(This:)f(@2;)177 1287 y(begin)177
+1337 y(Pred)h(:=)h(nil;)e(This)h(:=)h(S;)177 1386 y(while)f(not)g(Equal@1)f
+(\(This^.Member,)f(i\))j(do)f(begin)243 1436 y(Pred)g(:=)g(This;)g(This)g(:=)
+g(This^.Next)f(end;)177 1486 y(if)i(Pred)f(<>)g(nil)g(then)g(Pred^.Next)f(:=)
+h(This^.Next)f(else)h(S)g(:=)h(This^.Next;)177 1536 y(Dispose)f(\(This\);)177
+1586 y(end;)177 1685 y(procedure)f(Dispose@2)g(\(var)h(S:)g(@2\);)177
+1735 y(var)65 b(Old:)21 b(@2;)177 1785 y(begin)177 1835 y(while)g(S)h(<>)f
+(nil)g(do)g(begin)g(Old)g(:=)h(S;)f(S)h(:=)f(S^.Next;)f(Dispose)h(\(Old\))f
+(end;)177 1885 y(end;)177 1984 y(end.)177 2034 y(@})177 2134
+y(@O@<NaryTreeSet.pa)o(s@>==)o(@{@-)221 2183 y(@<Generic)g(Set)h
+(Module@>@\(@"NaryT)o(ree@")o(@,@")o(NaryT)o(reeSe)o(t@"@\))o(@})177
+2233 y(@O@<NaryTreeSetSet)o(.pas@)o(>==@{)o(@-)221 2283 y(@<Generic)f(Set)h
+(Module@>@\(@"NaryT)o(reeSe)o(t@"@)o(,@"Na)o(ryTre)o(eSetS)o(et@"@)o(\)@})177
+2408 y Fr(A)12 b(great)h(adv)n(an)o(tage)e(of)g(the)i(approac)o(h)f
+(re\015ected)i(in)e(the)g(ab)q(o)o(v)o(e)g(example)f(is)h(that)g(it)g(allo)o
+(ws)e(the)j(programmer)177 2458 y(to)f(construct)i(a)d(generic)i(ob)r(ject)g
+(in)f(a)f(language)h(that)g(do)q(es)g(not)g(supply)g(generics,)h
+Fm(with)g(c)n(omplete)g(typ)n(esafety.)177 2507 y Fr(This)g(con)o(trasts)h
+(to)e(the)i(approac)o(h)e(that)h(migh)o(t)e(b)q(e)i(used)h(in)e(a)h(language)
+f(suc)o(h)h(as)g(C)g(where)h(the)f(programmer)177 2557 y(migh)o(t)e(c)o(ho)q
+(ose)i(to)g(construct)h(a)e(\\generic")h(pac)o(k)n(age)f(b)o(y)h
+(parameterizing)f(a)g(pac)o(k)n(age)g(with)g(p)q(oin)o(ters)i(to)e
+Fl(void)p Fr(.)177 2607 y(The)i(resulting)f(pac)o(k)n(age)g(is)g(p)q(o)o(w)o
+(erful)g(but)g(extremely)g(un)o(t)o(yp)q(esafe.)18 b(Suc)o(h)c(a)f(generic)h
+(list)e(pac)o(k)n(age)h(is)g(used)h(in)177 2657 y(the)f(co)q(de)h(of)e(F)m
+(unnelW)m(eb)g(itself)g(and)h(caused)h(no)e(end)h(of)f(problems,)g(as)g(the)i
+(compiler)d(had)h(no)h(w)o(a)o(y)f(of)g(telling)177 2707 y(if)19
+b(p)q(oin)o(ters)h(to)f(the)h(correctly)h(t)o(yp)q(ed)f(ob)r(ject)g(w)o(ere)h
+(b)q(eing)e(handed)h(to)g(the)g(correct)h(list-ob)r(ject/function)177
+2757 y(com)o(bination.)177 2835 y(The)e(ma)r(jor)f(disadv)n(an)o(tage)g(of)g
+(the)h(text)h(generic)g(approac)o(h)e(is)h(that)g(it)g(causes)h(the)f(co)q
+(de)h(of)e(the)i(generic)1042 2940 y(61)p eop
+%%Page: 62 63
+62 62 bop 177 42 a Fr(ob)r(ject)19 b(to)f(b)q(e)h(duplicated)f(once)h(for)e
+(eac)o(h)i(instan)o(tiation.)29 b(Dep)q(ending)19 b(on)f(the)g(n)o(um)o(b)q
+(er)g(and)g(size)h(of)e(the)177 91 y(instan)o(tiations,)c(this)h(ma)o(y)d(or)
+j(ma)o(y)e(not)i(b)q(e)h(acceptable.)177 166 y(Where)22 b(the)f(duplication)f
+(of)g(co)q(de)h(is)g(unacceptable,)i(a)d(h)o(ybrid)h(approac)o(h)f(ma)o(y)f
+(b)q(e)i(tak)o(en.)39 b(As)21 b(in)f(the)177 216 y(C)c(example,)e(the)i
+(programmer)d(could)i(write)h(a)f(single)g(generic)h(pac)o(k)n(age)f(using)g
+(p)q(oin)o(ters)h(to)g Fl(void)e Fr(or)i(some)177 266 y(other)g(un)o(t)o(yp)q
+(esafe)g(mec)o(hanism.)j(Then)d(the)g(programmer)d(creates)k(a)e(F)m(unnelW)m
+(eb)f(generic)i(pac)o(k)n(age)f(whose)177 315 y(functions)g(do)f(nothing)f
+(more)h(than)g(call)g(the)h(functions)f(of)g(the)h(un)o(t)o(yp)q(esafe)g(pac)
+o(k)n(age,)f(and)g(whose)h(t)o(yp)q(es)g(do)177 365 y(nothing)f(more)g(than)g
+(con)o(tain)g(the)h(t)o(yp)q(es)h(of)d(the)j(un)o(t)o(yp)q(esafe)f(pac)o(k)n
+(age.)k(This)c(solution)e(in)o(v)o(olv)o(es)h(the)h(use)g(of)177
+415 y(un)o(t)o(yp)q(esafe)i(programmi)o(ng,)c(but)j(this)g(is)g(a)g
+(one-o\013)g(and)g(if)f(done)h(carefully)g(and)g(correctly)m(,)g(the)h
+(result)g(can)177 465 y(b)q(e)e(a)e(t)o(yp)q(esafe)i(generic)g(pac)o(k)n(age)
+e(in)o(v)o(olving)f(minim)o(al)e(co)q(de)15 b(duplication.)177
+627 y Fi(2.14)70 b(Summary)177 743 y Fr(This)16 b(c)o(hapter)h(has)f(describ)
+q(ed)i(some)d(of)h(the)g(\014ner)h(asp)q(ects)h(of)d(the)i(use)g(of)e(F)m
+(unnelW)m(eb.)24 b(Throughout,)16 b(the)177 793 y(p)q(o)o(w)o(er)f(and)f
+(danger)g(of)g(F)m(unnelW)m(eb)f(as)h(a)g(general)h(text-rearranging)f
+(prepro)q(cessor)j(has)d(b)q(een)i(emphasised.)177 843 y(F)m(unnelW)m(eb)g
+(can)g(b)q(e)h(used)g(b)q(oth)f(to)g(mak)o(e)e(programs)h(more)g(readable)h
+(or)g(more)f(obscure.)26 b(It)16 b(is)g(up)g(to)g(the)177 892
+y(programmer)c(to)h(ensure)j(that)e(F)m(unnelW)m(eb)f(is)h(used)h(prop)q
+(erly)m(.)1042 2940 y(62)p eop
+%%Page: 63 64
+63 63 bop 177 372 a Fj(Chapter)34 b(3)177 598 y Fp(F)-10 b(unnelW)g(eb)41
+b(De\014nition)177 858 y Fi(3.1)70 b(In)n(tro)r(duction)177
+968 y Fr(This)15 b(purp)q(ose)h(of)e(this)h(c)o(hapter)g(is)g(to)g(pro)o
+(vide)f(a)h(complete)f(and)g(consisten)o(t)i(de\014nition)f(of)f(the)h(F)m
+(unnelW)m(eb)177 1018 y(input)h(language)e(and)i(the)g(b)q(eha)o(viour)f(of)g
+(the)h(F)m(unnelW)m(eb)f(program.)22 b(Usually)m(,)14 b(a)i(c)o(hapter)g(suc)
+o(h)h(as)e(this)h(is)177 1068 y(called)c(a)g(\\reference)i(man)o(ual",)9
+b(but)j(this)g(c)o(hapter)h(is)f(in)o(tended)g(to)g(go)g(further)g(b)o(y)g
+(actually)f(de\014ning)h(the)h(lan-)177 1118 y(guage)f(and)f(program.)16
+b(This)c(c)o(hapter)g(tak)o(es)g(precedence)j(o)o(v)o(er)d(all)e(other)j(c)o
+(hapters)g(and)e(all)g(implemen)o(tatio)o(ns)177 1167 y(of)i(F)m(unnelW)m
+(eb.)18 b(If)13 b(an)h(implemen)o(tation)c(con)o(tradicts)15
+b(this)f(c)o(hapter,)g(then)h(the)g(implem)o(en)o(tation)c(is)j(wrong.)177
+1236 y(This)j(is)g(the)h(c)o(hapter)h(that)e(y)o(ou)g(should)g(turn)g(if)g(y)
+o(ou)g(\014nd)g(y)o(ourself)g(asking)g(a)g(sp)q(eci\014c)h(question)g(ab)q
+(out)f(a)177 1286 y(sp)q(eci\014c)g(asp)q(ect)f(of)f(F)m(unnelW)m(eb.)21
+b(In)15 b(man)o(y)e(cases)k(it)e(will)e(b)q(e)j(con)o(v)o(enien)o(t)g(to)e
+(access)j(this)f(c)o(hapter)g(through)177 1336 y(the)f(index.)177
+1490 y Fi(3.2)70 b(Notation)177 1600 y Fr(A)17 b(particular)g(v)n(arian)o(t)f
+(of)g(EBNF)i(\(Extended)g(Bac)o(h)o(us)g(Naur)f(F)m(orm\))e(will)h(b)q(e)h
+(used)h(to)f(describ)q(e)i(the)e(F)m(un-)177 1649 y(nelW)m(eb)h(syn)o(tax.)32
+b(In)18 b(this)g(v)n(arian)o(t,)g(literal)g(strings)g(are)h(delimited)e(b)o
+(y)h(double)g(quotes)h(\(e.g.)f Fl("string")p Fr(\),)177 1699
+y(optional)d(constructs)j(b)o(y)f(square)g(brac)o(k)o(ets)g(\(e.g.)f
+Fl([optional])p Fr(\),)e(and)j(constructs)h(rep)q(eated)g(zero)f(or)g(more)
+177 1749 y(times)i(b)o(y)g(braces)i(\(e.g.)e Fq(f)p Fl(zeroormore)p
+Fq(g)p Fr(\).)33 b(Constructs)21 b(to)e(b)q(e)h(rep)q(eated)i(a)d(\014xed)h
+(n)o(um)o(b)q(er)f(of)g(times)f(are)177 1799 y(enclosed)g(in)e(braces)h
+(follo)o(w)o(ed)e(b)o(y)i(a)f(decimal)e(n)o(um)o(b)q(er)i(indicating)g(the)h
+(n)o(um)o(b)q(er)e(of)h(times)g(to)g(b)q(e)h(rep)q(eated)177
+1849 y(\(e.g.)d Fq(f)p Fl(sixtimes)p Fq(g)p Fl(6)p Fr(\).)19
+b(Constructs)e(to)e(b)q(e)g(rep)q(eated)i(one)e(or)g(more)f(times)g(are)h
+(enclosed)h(in)f(braces)h(and)f(fol-)177 1899 y(lo)o(w)o(ed)e(b)o(y)h(a)f
+Fl(+)h Fr(\(e.g.)f Fq(f)p Fl(oneormore)p Fq(g)p Fl(+)p Fr(\).)j(The)e
+(traditional)e(BNF)j(\\)p Fl(::=)p Fr(")d(is)i(replaced)h(b)o(y)e(the)i
+(visually)d(simpler)177 1948 y(\\)p Fl(=)p Fr(".)17 b(The)e(traditional)d
+(BNF)j(angle)e(brac)o(k)o(ets)i(are)f(abandoned.)177 2017 y(Although)c(F)m
+(unnelW)m(eb)g(allo)o(ws)f(the)i(sp)q(ecial)g(c)o(haracter)g(to)g(b)q(e)g(c)o
+(hanged)f(using)h(the)g(construct)h(\\)p Fn(<)p Fr(sp)q(ecial)p
+Fn(>)p Fr(=",)177 2067 y(use)19 b(of)f(\\)p Fn(<)p Fr(sp)q(ecial)p
+Fn(>)p Fr(")h(to)f(refer)h(to)g(F)m(unnelW)m(eb's)e(sp)q(ecial)i(c)o
+(haracter)h(is)e(cum)o(b)q(ersome)f(and)h(abstract.)33 b(T)m(o)177
+2117 y(simplify)17 b(the)i(presen)o(tation,)i(the)f(default)f(sp)q(ecial)g(c)
+o(haracter)i(\\)p Fl(@)p Fr(")d(is)h(used)h(throughout)g(this)f(c)o(hapter)h
+(to)177 2167 y(represen)o(t)c(the)f(sp)q(ecial)f(c)o(haracter.)177
+2320 y Fi(3.3)70 b(T)-6 b(erminology)177 2430 y Fr(A)14 b(sp)q(eci\014c)i
+(terminology)c(has)i(arisen)h(for)f(dealing)f(with)h(F)m(unnelW)m(eb.)k(Some)
+13 b(particularly)g(useful)i(examples)177 2480 y(are:)295 2549
+y Fo(Journal)10 b(\014le:)16 b Fr(An)11 b(output)g(\014le)g(con)o(taining)f
+(a)g(cop)o(y)h(of)f(the)i(output)f(sen)o(t)g(to)g(the)h(user's)f(console)295
+2599 y(during)j(an)h(in)o(v)o(o)q(cation)e(of)h(F)m(unnelW)m(eb.)19
+b(In)c(other)g(systems,)f(this)h(\014le)g(is)f(sometimes)f(called)h(a)295
+2649 y(\\log)f(\014le".)295 2718 y Fo(Pro)q(duct)19 b(\014le:)24
+b Fr(An)18 b(output)g(\014le,)g(generated)h(b)o(y)e(the)h(T)m(angle)f(comp)q
+(onen)o(t)g(of)g(F)m(unnelW)m(eb,)295 2767 y(that)d(con)o(tains)g(the)h
+(expansion)e(of)h(the)g(macros)f(in)h(the)g(input)g(\014le.)1368
+2752 y Fg(1)p 177 2796 709 2 v 223 2823 a Ff(1)241 2835 y Fh(Other)d(names)f
+(considered)e(for)j(this)g(w)o(ere:)k(generated)9 b(\014le,)i(expanded)d
+(\014le,)j(result)f(\014le,)h(program)e(\014le,)i(and)f(tangle)g(\014le.)1042
+2940 y Fr(63)p eop
+%%Page: 64 65
+64 64 bop 177 42 a Fr(A)14 b(complete)f(list)g(of)g(all)f(the)j(sp)q(ecial)f
+(F)m(unnelW)m(eb)f(terminology)e(app)q(ears)k(in)e(the)h(glossary)m(.)j(Be)e
+(sure)f(to)g(refer)177 91 y(to)g(it)f(if)g(an)o(y)h(of)f(the)i(terms)e(used)i
+(are)f(unclear.)177 250 y Fi(3.4)70 b(An)23 b(Arc)n(hitectural)d(Ov)n(erview)
+177 363 y Fr(An)e(understanding)f(of)g(the)h(in)o(ternals)f(of)g(F)m(unnelW)m
+(eb)f(assists)j(with)d(understanding)i(its)f(op)q(eration)h(\()p
+Fo(Fig-)177 413 y(ure)d(3)p Fr(\).)177 485 y(During)h(a)h(single)g(run,)g(F)m
+(unnelW)m(eb)g(reads)h(and)e(pro)q(cesses)k(a)d(single)f(input)h(\014le)g
+(called)g(the)g Fo(input)g(\014le)f Fr(or)177 535 y(the)e Fo(F)l(unnelW)l(eb)
+f(\014le)p Fr(.)k(The)d(\014le)g(is)f(pro)q(cessed)j(b)o(y)d(passing)h(it)f
+(through)h(a)f(series)i(of)e(stages)h(called)g Fo(phases)p
+Fr(.)177 585 y(The)19 b(result)f(is)g(that)g(some)g Fo(output)g(\014les)e
+Fr(are)j(generated.)32 b(A)18 b Fo(journal)g(\014le)f Fr(is)h(generated)h
+(con)o(taining)e(a)177 635 y(cop)o(y)h(of)g(the)g(messages)g(that)h(app)q
+(ear)f(on)g(the)h(console)f(during)g(the)g(F)m(unnelW)m(eb)g(run.)31
+b(A)18 b Fo(listing)f(\014le)g Fr(is)177 685 y(created)d(con)o(taining)e(a)h
+(summary)d(of)i(the)i(run,)f(including)e(an)o(y)i(error)g(messages.)18
+b(A)13 b Fo(do)q(cumen)o(tation)c Fr(\014le)k(is)177 734 y(generated)j(con)o
+(taining)d(t)o(yp)q(esetter)j(commands)c(that)j(when)f(fed)h(in)o(to)e(a)h(t)
+o(yp)q(esetter)j(program)12 b(will)h(result)i(in)177 784 y(prin)o(ted)f(do)q
+(cumen)o(tation.)i(Finally)m(,)11 b(one)j(or)f(more)f Fo(pro)q(duct)h
+(\014les)f Fr(are)i(generated)g(con)o(taining)f(the)g(result)h(of)177
+834 y(unscram)o(bling)e(the)j(macro)d(de\014nitions)i(of)g(the)g(input)g
+(\014le.)177 906 y(These)h(\014les)g(need)g(not)f(all)f(b)q(e)h(generated)i
+(on)d(an)o(y)h(particular)g(F)m(unnelW)m(eb)f(run.)19 b(Whether)c(eac)o(h)g
+(output)f(\014le)177 956 y(app)q(ears)h(is)f(con)o(trolled)f(b)o(y)h(command)
+d(line)i(options.)373 1103 y Fl(.fw)21 b(Input)g(File)g(\(FunnelWeb)f(file\))
+635 1153 y(V)526 1202 y(+---------+)390 b(\\)526 1252 y(|)21
+b(Scanner)g(|)392 b(|)526 1302 y(+---------+)e(|)635 1352 y(V)501
+b(|)526 1402 y(+--------+)412 b(|)526 1451 y(|)21 b(Parser)g(|)414
+b(|)526 1501 y(+--------+)e(|)635 1551 y(V)501 b(|)526 1601
+y(+----------+)368 b(>-------+--------)o(----+)526 1651 y(|)21
+b(Analyser)g(|)370 b(|)152 b(|)262 b(|)526 1701 y(+----------+)368
+b(|)152 b(|)262 b(|)635 1750 y(V)501 b(|)152 b(|)262 b(|)373
+1800 y(+-----------+------)o(-----)o(-+)215 b(|)152 b(V)262
+b(V)373 1850 y(V)523 b(V)218 b(|)152 b(|)262 b(|)286 1900 y(+--------+)325
+b(+-------+)129 b(|)152 b(|)262 b(|)286 1950 y(|)22 b(Tangle)e(|)327
+b(|)22 b(Weave)e(|)131 b(|)152 b(|)262 b(|)286 1999 y(+--------+)325
+b(+-------+)129 b(/)152 b(|)262 b(|)373 2049 y(|)523 b(|)392
+b(|)262 b(|)373 2099 y(V)523 b(V)392 b(V)262 b(V)243 2149 y(Product)20
+b(Files)195 b(Documentation)19 b(File)86 b(Listing)21 b(File)43
+b(Journal)20 b(File)343 2290 y Fh(F)m(unnelW)m(eb)9 b(pro)q(cesses)g(eac)o(h)
+g(input)g(\014le)h(in)h(a)f(sequence)e(of)j(phases.)i(If)e(an)f(error)f(o)q
+(ccurs)g(during)g(a)i(phase,)e(no)281 2340 y(subsequen)o(t)g(phases)h(are)h
+(executed.)673 2431 y Fo(Figure)j(3)p Fr(:)k(F)m(unnelW)m(eb's)13
+b(pro)q(cessing)i(phases.)177 2541 y(The)f(phases)h(are)g(brie\015y)f
+(describ)q(ed)i(b)q(elo)o(w.)295 2613 y Fo(The)e(Scanner)c
+Fr(reads)j(the)g(input)f(\014le,)g(expands)h(and)f(reads)h(in)e(include)i
+(\014les,)f(scans)h(the)g(input)295 2663 y(stream,)k(pro)q(cesses)i(pragmas)d
+(and)g(t)o(yp)q(esetter)j(directiv)o(es,)f(and)f(parses)h(all)e(the)h(F)m
+(unnelW)m(eb)295 2713 y(sp)q(ecial)d(sequences.)21 b(The)14
+b(result)h(is)f(a)f(list)h(of)f(tok)o(ens)h(that)g(is)g(handed)g(to)g(the)h
+(parser.)295 2785 y Fo(The)k(P)o(arser)d Fr(reads)i(the)g(scanner's)g(tok)o
+(en)f(list)g(and)g(parses)h(it,)f(constructing)h(a)f(do)q(cumen)o(t)295
+2835 y(list)d(and)f(a)h(macro)f(table.)18 b(whic)o(h)13 b(are)i(passed)g(to)e
+(later)h(phases.)1042 2940 y(64)p eop
+%%Page: 65 66
+65 65 bop 295 42 a Fo(The)20 b(Analyser)c Fr(examines)g(the)i(macro)e(table)i
+(generated)g(b)o(y)f(the)h(parser)h(and)e(p)q(erforms)g(a)295
+91 y(n)o(um)o(b)q(er)12 b(of)f(c)o(hec)o(ks)j(of)d(the)i(macro)e(structures)k
+(that)d(the)h(parser)g(could)f(not)g(mak)o(e)f(on)h(its)g(single)295
+141 y(pass.)17 b(F)m(or)10 b(example,)f(the)h(analyser)g(detects)i(and)e
+(\015ags)g(un)o(used)h(macros)e(and)h(recursiv)o(e)h(macros.)295
+191 y(The)k(analyser)f(forms)e(the)j(\014nal)e(stage)h(of)f(F)m(unnelW)m
+(eb's)h(fron)o(t-end)g(pro)q(cessing.)295 260 y Fo(T)l(angle)g
+Fr(expands)g(certain)h(macros)f(in)g(the)h(macro)e(table)h(to)g(generate)i
+(one)e(or)g(more)g(pro)q(duct)295 309 y(\014les.)295 378 y
+Fo(W)l(ea)o(v)o(e)g Fr(uses)h(the)g(do)q(cumen)o(t)e(list)g(to)h(generate)h
+(a)f(do)q(cumen)o(tation)f(\014le.)177 447 y(A)i(single)g(run)h(through)f
+(these)i(phases)f(constitutes)h(a)e(single)g(in)o(v)o(o)q(cation)e(of)i
+Fo(F)l(unnelW)l(eb)g(prop)q(er)p Fr(.)20 b(Most)177 496 y(in)o(v)o(o)q
+(cations)d(of)h(the)h Fo(F)l(unnelW)l(eb)f(program)e Fr(will)h(consist)i
+(only)e(of)g(a)h(single)g(execution)h(of)e(F)m(unnelW)m(eb)177
+546 y(prop)q(er.)h(Ho)o(w)o(ev)o(er,)12 b(F)m(unnelW)m(eb)f(also)g(pro)o
+(vides)g(a)g(command)e(shell)i(that)g(pro)o(vides)h(man)o(y)d(useful)j
+(commands,)177 596 y(including)j(a)g(command)f(to)h(in)o(v)o(ok)o(e)g(F)m
+(unnelW)m(eb)g(prop)q(er.)25 b(Discussion)16 b(of)f(the)i(command)c(shell)i
+(is)h(deferred)177 646 y(un)o(til)d(Section)h(3.15.)177 799
+y Fi(3.5)70 b(Diagnostics)177 909 y Fr(During)16 b(execution,)h(F)m(unnelW)m
+(eb)f(pro)q(ceeds)j(cautiously)d(with)g(eac)o(h)h(of)f(its)g(phases,)i(only)e
+(pro)q(ceeding)h(with)177 959 y(the)i(next)g(phase)f(if)g(the)g(previous)h
+(phase)g(has)f(b)q(een)h(successful.)33 b(This)18 b(means)f(that,)i(when)f
+(debugging)g(a)177 1009 y(F)m(unnelW)m(eb)d(\014le,)h(y)o(ou)f(ma)o(y)e
+(\014nd)j(that)g(the)g(n)o(um)o(b)q(er)f(of)g(errors)i Fm(incr)n(e)n(ases)e
+Fr(after)h(y)o(ou)f(\014x)g(some)g(of)g(them,)g(as)177 1059
+y(y)o(ou)f(will)e(b)q(e)i(exp)q(osing)g(y)o(ourself)g(to)g(the)g(next)h(F)m
+(unnelW)m(eb)e(phase.)177 1127 y(F)m(unnelW)m(eb)i(emplo)o(ys)g(\014v)o(e)h
+(lev)o(els)g(of)f(diagnostics)h(at)f(di\013eren)o(t)i(lev)o(els)f(of)f(sev)o
+(erit)o(y)m(.)24 b(Sev)o(erit)o(y)17 b(is)e(de\014ned)i(in)177
+1177 y(terms)d(of)f(the)i(lev)o(el)e(of)g(activit)o(y)g(at)h(whic)o(h)g(the)g
+(diagnostic)g(causes)h(F)m(unnelW)m(eb)e(to)h(ab)q(ort.)295
+1246 y Fo(W)l(arning:)i Fr(A)c(w)o(arning)f(do)q(es)h(not)g(cause)h(F)m
+(unnelW)m(eb)e(to)g(terminate)g(or)h(curtail)f(its)h(op)q(eration)295
+1295 y(in)h(an)o(y)f(w)o(a)o(y)m(,)f(but)i(serv)o(es)h(merely)e(to)h(w)o(arn)
+f(the)i(user)g(of)e(particular)g(conditions)h(that)f(migh)o(t)f(b)q(e)295
+1345 y(symptomatic)g(of)j(deep)q(er)h(problems.)295 1414 y
+Fo(Error:)k Fr(An)c(error)h(causes)f(F)m(unnelW)m(eb)f(to)h(terminate)f(pro)q
+(cessing)h(of)f(the)h(curren)o(t)h(input)f(\014le)295 1464
+y(at)d(the)g(end)g(of)f(the)h(curren)o(t)h(phase.)18 b(F)m(or)11
+b(example,)g(if)f(an)i(error)g(o)q(ccurs)h(during)f(scanning,)f(F)m(un-)295
+1514 y(nelW)m(eb)k(will)f(con)o(tin)o(ue)i(scanning)f(\(and)g(p)q(ossibly)g
+(generate)i(further)f(scanning)f(diagnostics\),)295 1563 y(but)f(will)f(not)h
+(in)o(v)o(ok)o(e)f(the)h(parser.)295 1632 y Fo(Sev)o(ere)h(Error:)k
+Fr(A)c(sev)o(ere)h(error)f(\(or)f(\\sev)o(ere")i(for)e(short\))h(is)f(the)h
+(same)e(as)i(an)f(error)h(except)295 1682 y(that)f(F)m(unnelW)m(eb)g
+(terminates)f(the)i(curren)o(t)g(phase)g(imm)o(ediately)m(.)295
+1750 y Fo(F)l(atal)d(Error:)k Fr(A)11 b(fatal)e(error)j(causes)g(F)m(unnelW)m
+(eb)e(not)h(only)f(to)g(terminate)h(the)g(curren)o(t)h(phase)295
+1800 y(and)h(run)g(imm)o(ediately)m(,)c(but)k(also)f(to)g(terminate)g(total)g
+(F)m(unnelW)m(eb)g(pro)q(cessing)i(immediately)l(.)295 1850
+y(A)g(sev)o(ere)i(error)f(will)d(not)i(cause)h(a)e(F)m(unnelW)m(eb)g(script)i
+(to)f(terminate,)f(but)h(a)f(fatal)g(error)i(will.)295 1900
+y(A)f(fatal)f(error)i(causes)g(F)m(unnelW)m(eb)e(to)h(return)h(con)o(trol)f
+(to)g(the)g(op)q(erating)g(system.)295 1969 y Fo(Assertion)e(Error:)17
+b Fr(An)c(assertion)g(error)h(o)q(ccurs)g(if)e(F)m(unnelW)m(eb)g(detects)i
+(an)f(in)o(ternal)f(incon-)295 2018 y(sistency)m(,)h(in)f(whic)o(h)g(case)h
+(F)m(unnelW)m(eb)e(terminates)h(immediately)d(and)j(ungracefully)m(.)k(Suc)o
+(h)d(an)295 2068 y(error)j(can)g(o)q(ccur)g(only)e(if)h(there)h(are)g(bugs)f
+(in)g(F)m(unnelW)m(eb.)22 b(With)14 b(luc)o(k,)h(suc)o(h)h(errors)g(will)e(b)
+q(e)295 2118 y(extremely)g(rare.)177 2187 y(F)m(unnelW)m(eb)c(indicates)g
+(the)h(lev)o(el)e(of)h(sev)o(erit)o(y)h(of)e(eac)o(h)i(diagnostic)e(that)h
+(it)g(issues)h(b)o(y)f(starting)g(eac)o(h)g(diagnostic)177
+2236 y(either)h(with)f(the)h(full)e(name)g(of)h(the)h(sev)o(erit)o(y)f(lev)o
+(el)g(or)h(with)f(just)g(the)h(\014rst)g(letter)g(of)f(the)h(sev)o(erit)o(y)f
+(lev)o(el)g(follo)o(w)o(ed)177 2286 y(b)o(y)k(a)f(colon.)177
+2355 y(F)m(unnelW)m(eb)f(con)o(v)o(eys)h(the)f(presence)j(or)d(absence)i(of)d
+(diagnostics)h(at)g(the)h(op)q(erating)f(system)g(lev)o(el)g(b)o(y)g(return-)
+177 2405 y(ing)g Fl(EXIT)p 336 2405 14 2 v 15 w(SUCCESS)f Fr(status)i(if)f
+(no)g(diagnostics)g(o)q(ccurred)i(during)f(the)g(run)f(and)h
+Fl(EXIT)p 1552 2405 V 15 w(FAILURE)e Fr(status)i(if)f(one)177
+2454 y(or)i(more)f(diagnostics)h(\(including)f(w)o(arnings\))g(o)q(ccurred)j
+(during)d(the)i(run.)1378 2439 y Fg(2)177 2608 y Fi(3.6)70
+b(T)n(yp)r(esetter)21 b(Indep)r(endence)177 2718 y Fr(One)16
+b(of)f(the)g(design)h(goals)e(of)g(F)m(unnelW)m(eb)h(w)o(as)g(to)g(pro)o
+(vide)g(a)g Fm(tar)n(get-language)g Fr(indep)q(enden)o(t)i(literate)e(pro-)
+177 2768 y(gramming)9 b(system.)18 b(This)12 b(goal)g(has)h(b)q(een)h(ac)o
+(hiev)o(ed)f(simply)e(b)o(y)i(treating)f(the)i(text)f(written)h(to)e(the)i
+(pro)q(duct)p 177 2796 709 2 v 223 2823 a Ff(2)241 2835 y Fh(F)m(rom)c(the)h
+(sym)o(b)q(ols)f(of)h(the)g(ANSI)h(standard)d(C)j(library)e
+Fe(stdlib.h)p Fh(.)i(See)f Fb([Kernighan88])p Fh(,)g(p.252.)1042
+2940 y Fr(65)p eop
+%%Page: 66 67
+66 66 bop 177 42 a Fr(\014le)15 b(as)g(homogeneous)f(and)h(t)o(yp)q(esetting)
+h(it)f(in)g Fl(tt)21 b(font)p Fr(.)g(A)15 b(secondary)h(goal)e(w)o(as)h(to)g
+(pro)o(vide)g(a)f Fm(typ)n(esetter)177 91 y Fr(indep)q(enden)o(t)i(literate)f
+(programming)d(system.)21 b(By)15 b(this)g(is)f(mean)o(t)g(that)h(it)f(b)q(e)
+i(p)q(ossible)f(to)g(create)h(F)m(unnel-)177 141 y(W)m(eb)d(input)g(\014les)h
+(that)f(do)g(not)h(con)o(tain)e(t)o(yp)q(esetter-sp)q(e)q(ci\014c)k
+(commands.)g(T)m(o)c(a)h(lesser)i(exten)o(t)f(this)g(goal)e(has)177
+191 y(also)h(b)q(een)i(ac)o(hiev)o(ed.)177 272 y(The)h(di\016cult)o(y)f(with)
+h(pro)o(viding)f(t)o(yp)q(esetter-indep)q(enden)o(t)k(t)o(yp)q(esetting)e(is)
+f(that)f(eac)o(h)i(desired)g(t)o(yp)q(esetting)177 322 y(feature)d(m)o(ust)e
+(b)q(e)h(recreated)j(in)c(a)h(t)o(yp)q(esetter-indep)q(enden)o(t)j(F)m
+(unnelW)m(eb)d(t)o(yp)q(esetting)h(construct)g(that)f(F)m(un-)177
+372 y(nelW)m(eb)f(can)f(translate)i(in)o(to)e(whatev)o(er)h(t)o(yp)q
+(esetting)h(language)d(is)i(b)q(eing)g(targeted)g(b)o(y)g(W)m(ea)o(v)o(e.)k
+(T)m(ak)o(en)c(to)f(the)177 422 y(extreme,)j(this)g(w)o(ould)g(result)h(in)e
+(F)m(unnelW)m(eb)h(pro)o(viding)f(the)i(full)e(syn)o(tactic)i(and)f(seman)o
+(tic)f(p)q(o)o(w)o(er)h(of)g(T)1883 431 y(E)1906 422 y(X,)177
+472 y(but)k(with)e(a)h(more)f(generic,)j(F)m(unnelW)m(eb-sp)q(eci\014c)f(syn)
+o(tax.)27 b(This)17 b(w)o(as)g(unfeasible)g(in)g(the)h(time)d(a)o(v)n
+(ailable,)177 521 y(and)f(undesirable)g(as)g(w)o(ell.)177 603
+y(The)22 b(compromise)e(struc)o(k)i(in)g(the)g(F)m(unnelW)m(eb)f(design)h(is)
+f(to)h(pro)o(vide)f(a)h(set)g(of)f(primitiv)o(e)f(t)o(yp)q(esetter-)177
+653 y(indep)q(enden)o(t)15 b(t)o(yp)q(esetting)f(features)h(that)f(are)g
+(implem)o(en)o(ted)e(b)o(y)h(F)m(unnelW)m(eb.)k(These)e(are)f(the)g
+Fo(t)o(yp)q(esetter)177 702 y(directiv)o(es)p Fr(.)32 b(If)20
+b(the)g(user)h(is)e(prepared)i(to)f(restrict)h(to)e(these)i(directiv)o(es,)h
+(then)e(the)h(user's)f(F)m(unnelW)m(eb)177 752 y(do)q(cumen)o(t)c(will)f(b)q
+(e)h(b)q(oth)h(target-language)e(and)h(t)o(yp)q(esetter)j(indep)q(enden)o(t.)
+26 b(Ho)o(w)o(ev)o(er,)17 b(if)e(the)i(user)g(wishes)177 802
+y(to)f(use)h(the)f(more)f(sophisticated)i(features)g(of)e(the)i(target)f(t)o
+(yp)q(esetting)h(system,)f(the)g(user)h(can)g(sp)q(ecify)f(the)177
+852 y(t)o(yp)q(esetter)g(in)d(a)h(\\)p Fl(typesetter)p Fr(")d(pragma)h(and)h
+(then)i(place)e(t)o(yp)q(esetter)k(commands)11 b(in)i(the)h(free)h(text)f(of)
+f(the)177 902 y(F)m(unnelW)m(eb)i(do)q(cumen)o(t)g(where)i(they)f(will)e(b)q
+(e)i(passed)g(v)o(erbatim)e(to)h(the)h(do)q(cumen)o(tation)f(\014le.)22
+b(The)16 b(c)o(hoice)177 952 y(of)d(the)i(trade-o\013)f(b)q(et)o(w)o(een)i(t)
+o(yp)q(esetter)g(indep)q(endence)g(and)e(t)o(yp)q(esetting)g(p)q(o)o(w)o(er)h
+(is)e(left)h(to)g(the)g(user.)177 1033 y(This)g(said,)f(exp)q(erience)k(with)
+c(F)m(unnelW)m(eb)h(V1)g(o)o(v)o(er)g(a)f(three)j(y)o(ear)e(p)q(erio)q(d,)g
+(indicates)g(that)g(the)h(t)o(yp)q(esetting)177 1083 y(facilities)e(pro)o
+(vided)h(b)o(y)f(F)m(unnelW)m(eb)h(are)g(su\016cien)o(t)g(for)g(most)f(do)q
+(cumen)o(tation.)177 1266 y Fi(3.7)70 b(Command)22 b(Line)g(In)n(terface)177
+1400 y Fd(3.7.1)55 b(In)n(v)n(oking)19 b(F)-5 b(unnelW)g(eb)177
+1511 y Fr(When)14 b(a)f(user)i(in)o(v)o(ok)o(es)e(F)m(unnelW)m(eb)g(at)g(the)
+h(op)q(erating)g(system)f(command)e(lev)o(el,)h(the)j(user)f(m)o(ust)f(pro)o
+(vide)g(a)177 1561 y(command)g(line)j(instructing)g(F)m(unnelW)m(eb)g(what)g
+(to)g(do.)24 b(T)o(ypically)14 b(an)i(op)q(erating)g(system)g(command)d(line)
+177 1610 y(consists)h(of)e(a)h Fm(verb)g Fr(indicating)e(that)i(a)g
+(particular)g(program)e(should)i(b)q(e)g(run,)g(follo)o(w)o(ed)f(b)o(y)g(a)h
+(list)f(of)h(options.)177 1660 y(F)m(or)h(example:)177 1793
+y Fl($)22 b(rename)e(file1)h(file2)177 1926 y Fr(In)f(this)f(case,)j(the)e(v)
+o(erb)g(is)f Fl(rename)f Fr(and)i(the)g(command)c(line)k(options)f(are)h
+Fl(file1)g(file2)p Fr(.)34 b(The)20 b(en)o(tire)177 1976 y(command)11
+b(line)j(b)q(egins)g(with)f(the)i Fl($)f Fr(and)f(ends)i(with)f(the)g
+Fl(2)p Fr(.)177 2057 y(Op)q(erating)d(systems)g(di\013er)g(greatly)f(in)g
+(the)h(depth)g(with)g(whic)o(h)f(they)h(pro)q(cess)h(their)f(command)d
+(lines,)j(ranging)177 2107 y(from)d(systems)i(that)g(simply)d(pass)j(the)h
+(en)o(tire)f(command)d(line)i(string)h(to)f(the)i(in)o(v)o(ok)o(ed)d(program)
+g(\(e.g.)i(MSDOS\))177 2157 y(through)k(to)g(systems)g(that)f(p)q(erform)g
+(complete)h(command)d(line)i(parsing)g(\(e.g.)h(VMS\).)f(Syn)o(tax)h(con)o(v)
+o(en)o(tions)177 2207 y(v)n(ary)g(considerably)m(.)177 2288
+y(So)k(as)g(to)g(ac)o(hiev)o(e)h(maxim)n(um)13 b(p)q(ortabilit)o(y)k(and)h
+(consistency)i(of)d(in)o(v)o(o)q(cation)g(across)i(di\013eren)o(t)g
+(platforms,)177 2338 y(F)m(unnelW)m(eb)g(reads)h(its)f(command)e(line)h(as)i
+(a)f(ra)o(w)g(string)g(and)g(p)q(erforms)g(all)f(its)h(o)o(wn)g(parsing.)34
+b(This)19 b(is)177 2388 y(p)q(ortable)12 b(b)q(ecause,)i(at)d(the)i(v)o(ery)f
+(least,)g(all)f(op)q(erating)g(systems)h(allo)o(w)f(in)o(v)o(ok)o(ed)g
+(programs)f(access)k(to)e(the)g(ra)o(w)177 2438 y(command)f(line.)177
+2519 y(The)j(command)e(v)o(erb)i(used)h(to)e(in)o(v)o(ok)o(e)g(F)m(unnelW)m
+(eb)h(should)g(b)q(e)g(\\)p Fl(fw)p Fr(".)177 2652 y Fl(FunnelWeb_verb)19
+b(=)43 b("fw")177 2785 y Fr(If)14 b(this)g(v)o(erb)h(is)f(not)g(a)o(v)n
+(ailable,)d(some)i(alternativ)o(es)h(are)h(\\)p Fl(funweb)p
+Fr(",)d(\\)p Fl(fun)p Fr(",)g(and)i(\\)p Fl(funnelweb)p Fr(".)i(The)f(v)o
+(erbs)177 2835 y Fl(web)e Fr(or)h Fl(fweb)f Fr(should)h(b)q(e)g(a)o(v)o
+(oided)f(as)h(they)h(are)f(the)h(names)e(of)g(other)h(literate)h(programmi)o
+(ng)c(systems.)1042 2940 y(66)p eop
+%%Page: 67 68
+67 67 bop 177 42 a Fd(3.7.2)55 b(Command)17 b(Line)h(Argumen)n(ts)177
+158 y Fr(F)m(ollo)o(wing)c(the)j(v)o(erb)g(is)g(the)g(b)q(o)q(dy)g(of)f(the)h
+(command)d(line)i(whic)o(h)g(F)m(unnelW)m(eb)g(parses)i(in)o(to)e(zero)h(or)g
+(more)177 208 y Fo(argumen)o(ts)12 b Fr(separated)j(b)o(y)e(runs)i(of)e(one)h
+(or)g(more)f(blanks.)177 350 y Fl(FunnelWeb_command_)o(line)18
+b(=)k(FunnelWeb_verb)d({{")i("}+)g(argument})177 493 y Fr(Because)e(some)c
+(op)q(erating)h(systems)h(con)o(v)o(ert)g(their)g(command)d(line)i(to)g(upp)q
+(er)h(case)h(b)q(efore)f(handing)f(it)g(to)177 543 y(the)h(in)o(v)o(ok)o(ed)f
+(program,)f(F)m(unnelW)m(eb)h(has)h(b)q(een)h(constructed)g(so)f(as)g(to)f(b)
+q(e)h Fm(insensitive)g Fr(to)f(the)h(case)h(of)e(its)177 593
+y(command)9 b(line)i(argumen)o(ts.)16 b(Ho)o(w)o(ev)o(er,)c(when)g(dealing)f
+(in)o(ternally)f(with)i(argumen)o(ts,)e(F)m(unnelW)m(eb)h Fm(pr)n(eserves)177
+642 y Fr(the)k(case)h(of)e(its)h(command)c(line)k(argumen)o(ts)e(so)i(that)g
+(it)f(will)f(b)q(e)i(able)g(to)f(op)q(erate)i(with)e(op)q(erating)h(systems)
+177 692 y(\(suc)o(h)g(as)f(Unix\))g(whose)g(\014le)g(names)f(are)h(case)h
+(dep)q(enden)o(t.)177 777 y(A)d(v)n(alid)d(F)m(unnelW)m(eb)i(argumen)o(t)f
+(consists)j(of)d(a)h Fo(sign)p Fr(,)f(an)h(iden)o(tifying)f
+Fo(letter)p Fr(,)f(and)i(an)g(optional)f Fo(string)f Fr(with)177
+827 y(no)14 b(spaces)h(separating)f(them.)177 970 y Fl(argument)42
+b(=)22 b(sign)f(id_letter)f([non_blank_stri)o(ng])177 1020
+y(sign)130 b(=)22 b("+")f(|)g("-")h(|)f("=")177 1069 y(id_letter)f(=)i("B")f
+(|)g("C")h(|)f("D")g(|)h("F")f(|)h("H")f(|"I")g(|)g("J")h(|)f("K")g(|)439
+1119 y("L")g(|)g("O")h(|)f("Q")g(|)h("S")f(|)h("T")f(|)g("W")h(|)f("X")177
+1262 y Fr(In)14 b(addition)f(there)i(is)f(a)f(sp)q(ecial)h(form)f(of)g
+(argumen)o(t)g(that)h(do)q(es)g(not)g(b)q(egin)g(with)f(a)h(sign.)177
+1404 y Fl(argument)20 b(=)i(non_blank_string_)o(not_b)o(eginn)o(ing_)o(with_)
+o(+_=_o)o(r_-)177 1547 y Fr(This)14 b(form)e(is)i(exactly)g(equiv)n(alen)o(t)
+f(to)h(the)g(same)f(string)h(with)g(\\)p Fl(+F)p Fr(")f(prep)q(ended)j(to)d
+(it.)177 1632 y(The)e(seman)o(tic)f(e\013ect)i(of)e(these)i(argumen)o(ts)d
+(is)i(de\014ned)g(in)f(terms)g(of)g Fo(options)e Fr(whic)o(h)j(are)f(the)h
+(in)o(ternal)g(param-)177 1682 y(eters)17 b(of)e(F)m(unnelW)m(eb)g(and)g
+(whic)o(h)g(corresp)q(ond)i(closely)f(with)f(the)h(set)g(of)f(legal)f
+(command)f(line)i(argumen)o(ts.)177 1732 y(F)m(unnelW)m(eb)g(has)g(a)g
+(prede\014ned)i(set)f(of)e(options)h(eac)o(h)g(iden)o(ti\014ed)g(b)o(y)g(an)g
+(iden)o(tifying)f(letter)i(ha)o(ving)e(t)o(w)o(o)g(at-)177
+1781 y(tributes:)22 b(a)14 b Fm(string)p Fr(,)h(and)g(a)f Fm(b)n(o)n(ole)n
+(an)p Fr(.)23 b(The)15 b(b)q(o)q(olean)g(determines)g(whether)i(an)e(option)f
+(is)h(turned)h Fm(on)g Fr(or)f Fm(o\013)p Fr(.)177 1831 y(The)f(string)g(con)
+o(tains)g(additional)e(information)f(dep)q(ending)k(on)e(the)i(option.)177
+1916 y(When)e(F)m(unnelW)m(eb)f(starts)i(up,)e(its)h(options)g(ha)o(v)o(e)f
+(prede\014ned)j(default)d(v)n(alues.)17 b(F)m(unnelW)m(eb)12
+b(then)i(parses)g(its)177 1966 y(command)g(line)i(sequen)o(tially)g(from)e
+(left)i(to)h(righ)o(t)f(executing)h(the)g(e\013ect)h(of)e(eac)o(h)h(argumen)o
+(t)e(on)h(the)h(argu-)177 2016 y(men)o(t's)d(corresp)q(onding)h(option.)20
+b(The)15 b(sign)f(and)h(the)g(string)f(comp)q(onen)o(ts)h(of)f(the)h(argumen)
+o(t)e(are)i(pro)q(cessed)177 2066 y Fm(indep)n(endently)p Fr(.)31
+b(A)18 b(sign)f(of)h Fl(+)f Fr(turns)i(the)f(option)f(on.)30
+b(A)18 b(sign)f(of)g Fl(-)h Fr(turns)g(the)h(option)e(o\013.)29
+b(A)18 b(sign)g(of)f Fl(=)177 2116 y Fr(lea)o(v)o(es)f(the)h(option's)e(b)q
+(o)q(olean)h(attribute)g(unc)o(hanged.)25 b(The)16 b(argumen)o(t)f(string)h
+(replaces)h(the)g(string)f(of)f(the)177 2166 y(corresp)q(onding)h(option,)e
+(unless)h(the)h(argumen)o(t)d(string)i(is)g(empt)o(y)m(,)e(in)h(whic)o(h)h
+(case)h(the)f(option)f(string)h(is)g(not)177 2215 y(c)o(hanged.)177
+2301 y(Because)20 b(F)m(unnelW)m(eb)d(pro)q(cesses)j(its)e(command)d(line)j
+(argumen)o(ts)f(from)f(left)h(to)h(righ)o(t,)g(a)f(later)h(argumen)o(t)177
+2350 y(can)e(cancel)h(the)g(e\013ect)h(of)d(an)h(earlier)g(one.)25
+b(F)m(or)16 b(example)f Fl(fw)21 b(+t)g(-t)16 b Fr(will)f(result)h(in)g(the)h
+Fl(t)f Fr(option)f(ending)177 2400 y(up)k Fm(o\013)p Fr(.)32
+b(This)18 b(allo)o(ws)f(users)j(to)e(set)h(up)f(their)h(o)o(wn)f(default)g
+(argumen)o(ts)g(b)o(y)g(de\014ning)g(a)g(sym)o(b)q(ol)f(in)g(their)177
+2450 y(op)q(erating)c(system's)g(command)d(language.)17 b(F)m(or)c(example,)e
+(a)i(Unix)f(user)j(who)d(w)o(an)o(ts)h(F)m(unnelW)m(eb)g(to)g(delete)177
+2500 y(all)e(iden)o(tical)h(output)g(\014les)g(and)g(create)i(a)e(do)q(cumen)
+o(tation)f(\014le)h(on)g(eac)o(h)h(run)f(with)g(a)g(default)g
+Fl(.typ)f Fr(extension)177 2550 y(could)j(simply)e(place)i(the)g(follo)o
+(wing)e(de\014nition)h(in)g(their)i(\\)p Fl(.login)p Fr(")d(\014le.)177
+2692 y Fl(alias)21 b(fw)g(fw)h(+d)f(+t.typ)177 2835 y Fr(These)15
+b(default)f(options)f(can)h(then)h(later)f(b)q(e)g(easily)g(o)o(v)o(erridden)
+g(on)g(the)g(command)d(line.)1042 2940 y(67)p eop
+%%Page: 68 69
+68 68 bop 177 42 a Fd(3.7.3)55 b(Options)177 146 y Fr(F)m(unnelW)m(eb's)14
+b(options)h(are)g(in)o(ternal)f(parameters)h(whic)o(h)g(can)g(b)q(e)g(mo)q
+(di\014ed)e(b)o(y)i(corresp)q(onding)h(argumen)o(ts)177 196
+y(on)e(F)m(unnelW)m(eb's)f(command)e(line.)18 b(A)c(description)g(of)g(eac)o
+(h)g(argumen)o(t)f(and)g(option)h(follo)o(ws.)295 273 y Fo(B1)p
+Fn(:)7 b(:)g(:)o Fo(B6:)36 b(T)l(racedumps:)31 b Fr(These)22
+b(six)e(options)h(ha)o(v)o(e)f(b)q(een)i(pro)o(vided)e(to)h(assist)g(in)f
+(the)295 323 y(debugging)e(and)h(testing)g(of)f(F)m(unnelW)m(eb.)32
+b(They)19 b(determine)g(whic)o(h)f(of)g(six)h(p)q(ossible)g(trace)295
+373 y(dumps)g(are)h(to)f(b)q(e)h(written)g(to)f(the)i(listing)d(\014le.)35
+b(Only)19 b(the)h(b)q(o)q(olean)f(attributes)h(of)f(these)295
+423 y(options)14 b(are)g(ev)o(er)h(used.)k(The)14 b(six)g(dumps)f(are)h(iden)
+o(ti\014ed)g(b)o(y)g(the)g(digits)f Fl(1..6)g Fr(as)h(follo)o(ws:)228
+545 y(1.)20 b(Dump)12 b(a)i(hexdump)f(of)g(eac)o(h)i(mapp)q(ed)d(input)i(and)
+g(include)g(\014le.)228 632 y(2.)20 b(Dump)12 b(the)j(global)d(line)h(list)h
+(created)h(b)o(y)f(the)g(scanner.)228 720 y(3.)20 b(Dump)12
+b(the)j(tok)o(en)f(list)f(created)j(b)o(y)d(the)i(scanner.)228
+807 y(4.)20 b(Dump)12 b(the)j(macro)d(table)i(created)i(b)o(y)d(the)i
+(parser.)228 895 y(5.)20 b(Dump)12 b(the)j(do)q(cumen)o(t)e(list)h(created)h
+(b)o(y)f(the)g(parser.)228 983 y(6.)20 b(Dump)12 b(a)i(table)g(summarizing)c
+(CPU)15 b(and)e(real)h(time)f(usage.)295 1105 y(Because)18
+b(these)e(options)f(are)h(so)g(closely)f(related,)h(a)f(hac)o(k)g(has)h(b)q
+(een)h(pulled)e(to)g(enable)g(them)295 1154 y(to)h(all)g(to)g(b)q(e)h(con)o
+(trolled)f(b)o(y)g(the)h Fl(B)f Fr(argumen)o(t.)24 b(The)17
+b(string)f(argumen)o(t)g(to)g(the)h Fl(B)f Fr(argumen)o(t)295
+1204 y(determines)f(whic)o(h)f(of)f(the)i(six)f(options)g(are)g(to)g(b)q(e)h
+(a\013ected)g(b)o(y)f(the)h(sign.)j(Examples:)g Fl(+B134)295
+1254 y Fr(turns)d(on)f(options)f Fl(B1)p Fr(,)g Fl(B3)p Fr(,)g(and)h
+Fl(B4)p Fr(.)j Fl(-B1)d Fr(turns)g(o\013)g(option)f Fl(B1)p
+Fr(.)18 b Fl(Default:)i(-B123456)p Fr(.)295 1331 y Fo(B7:)h(Determini)o(sm:)
+15 b Fr(If)d(the)h Fl(B7)f Fr(option)g(is)g(turned)h(on,)f(F)m(unnelW)m(eb)g
+(suppresses)j(the)e(output)295 1381 y(of)g(an)o(ything)g(non-deterministic,)g
+(or)h(mac)o(hine)e(dep)q(enden)o(t.)20 b(This)14 b(assists)g(in)g(regression)
+h(test-)295 1431 y(ing.)23 b(Only)16 b(the)g(b)q(o)q(olean)f(attribute)h(is)g
+(used)h(in)e(this)h(option.)22 b(This)16 b(option)f(is)g(con)o(trolled)h(b)o
+(y)295 1481 y(the)e Fl(B7)f Fr(argumen)o(t)g(whic)o(h)g(falls)f(under)i(the)g
+(same)f(argumen)o(t)f(syn)o(tax)i(as)f(the)h(other)g Fl(B)f
+Fr(options.)295 1530 y(Examples:)k Fl(+B7)p Fr(,)c Fl(-B7)p
+Fr(.)k Fl(Default:)j(-B7)p Fr(.)295 1607 y Fo(C:)e(Listing)13
+b(File)i(Con)o(text:)k Fr(The)c Fl(C)f Fr(option)g(is)g(alw)o(a)o(ys)g
+(turned)h(on)g(and)f(cannot)h(b)q(e)g(turned)295 1657 y(o\013.)24
+b(Its)16 b(only)f(attribute)h(is)g(a)g(n)o(um)o(b)q(er)f(whic)o(h)g
+(determines)h(the)h(n)o(um)o(b)q(er)e(of)g(lines)h(of)f(con)o(text)295
+1707 y(that)j(the)g(lister)g(will)e(place)h(around)h(lines)f(\015agged)g
+(with)g(diagnostics)g(in)g(the)i(listing)d(\014le)h(\(if)295
+1757 y(a)f(listing)e(\014le)i(is)g(written\).)24 b(A)16 b(v)n(alue)f(of)h
+(100)f(indicates)h(in\014nite)f(con)o(text)i(whic)o(h)f(means)f(that)295
+1807 y(the)j(en)o(tire)f(listing)e(\014le)i(will)e(b)q(e)i(written)h(out)e
+(if)g(a)g(single)g(diagnostic)g(o)q(ccurs.)28 b(The)17 b(v)n(alue)f(of)295
+1856 y(this)g(n)o(um)o(b)q(er)f(can)h(b)q(e)g(sp)q(eci\014ed)i(b)o(y)d(sp)q
+(ecifying)h(it)f(as)h(a)f(string)h(of)f(decimal)f(digits)h(to)h(the)g
+Fl(+C)295 1906 y Fr(argumen)o(t.)h(Examples:)g Fl(+C100)p Fr(,)12
+b Fl(+C10)p Fr(.)18 b Fl(Default:)i(+C2)p Fr(.)295 1983 y Fo(D:)f(Delete)e
+(Iden)o(tical)f(Output)h(Files:)22 b Fr(Only)16 b(the)h(b)q(o)q(olean)g
+(attribute)g(of)e(this)i(option)f(is)295 2033 y(used.)23 b(When)15
+b(turned)h(on,)f(the)h(option)e(causes)i(the)g(suppression)h(\(deletion\))e
+(of)f(pro)q(duct)i(\014les)295 2083 y(and)j(do)q(cumen)o(tation)f(\014les)i
+(\(but)g(not)f(listing)f(or)h(journal)g(\014les\))g(that)h(are)f(iden)o
+(tical)g(to)g(the)295 2133 y(curren)o(tly)14 b(existing)f(\014les)h(of)f(the)
+g(same)g(name.)j(F)m(or)d(example,)f(if)g(F)m(unnelW)m(eb)h(is)g(instructed)i
+(to)295 2182 y(generate)d Fl(stack.h)e Fr(as)h(an)g(pro)q(duct)h(\014le,)f
+(and)f(the)i(text)f(to)g(b)q(e)h(written)f(to)g Fl(stack.h)f
+Fr(is)g(iden)o(tical)295 2232 y(to)i(the)h(curren)o(tly)g(existing)f
+Fl(stack.h)p Fr(,)f(then)i(F)m(unnelW)m(eb)e(will)g(simply)f(not)i(write)h
+(an)o(y)f(pro)q(duct)295 2282 y(\014le,)h(lea)o(ving)e(the)i(curren)o(tly)h
+(existing)e Fl(stack.h)f Fr(as)i(it)f(is)h(\(and)g(in)f(particular)g(lea)o
+(ving)g(the)h(\014le's)295 2332 y(date)e(attribute)g(the)g(same\).)17
+b(This)10 b(prev)o(en)o(ts)i(unnecessary)h Fl(make)c Fr(propagations.)16
+b(F)m(or)10 b(example,)295 2382 y(in)16 b(a)f(C)h(program,)e(if)h
+Fl(stack.fw)f Fr(is)i(a)f(F)m(unnelW)m(eb)h(input)f(\014le)h(that)g
+(generates)i Fl(stack.h)c Fr(and)295 2432 y Fl(stack.c)p Fr(,)9
+b(a)h(mo)q(di\014cation)d(to)j Fl(stack.fw)e Fr(that)i(a\013ects)h
+Fl(stack.c)e Fr(but)h(do)q(es)h(not)e(a\013ect)i Fl(stack.h)295
+2481 y Fr(will)f(not)i(pro)o(v)o(ok)o(e)f(the)i(recompilation)c(of)i(mo)q
+(dules)g(that)h Fl(#include)20 b(stack.h)p Fr(,)10 b(so)i(long)e(as)i(the)295
+2531 y(in)o(terv)o(ening)i(F)m(unnelW)m(eb)f(run)i(has)f Fl(+D)f
+Fr(set.)19 b(Examples:)e Fl(-D)p Fr(,)c Fl(+D)p Fr(.)g Fl(Default:)20
+b(-D)p Fr(.)295 2608 y Fo(F:)f(F)l(unnelW)l(eb)d(Input)h(File:)22
+b Fr(If)16 b(this)g(option)g(is)g(turned)h(on,)f(F)m(unnelW)m(eb)g(pro)q
+(cesses)j(the)295 2658 y(input)h(\014le)h(whose)f(name)f(is)h(sp)q(eci\014ed)
+i(b)o(y)e(the)h(option)f(string.)37 b(Examples:)29 b Fl(+Fsloth.fw)p
+Fr(,)295 2708 y Fl(+Fwalrus)p Fr(,)12 b Fl(-F)p Fr(.)h Fl(Default:)20
+b(-F)p Fr(.)295 2785 y Fo(H:)h(Displa)o(y)c(Help)i(Message:)26
+b Fr(If)17 b(this)g(option)g(is)g(turned)i(on,)e(F)m(unnelW)m(eb)g(displa)o
+(ys)g(the)295 2835 y(message)d(sp)q(eci\014ed)h(b)o(y)e(the)h(argumen)o(t)e
+(string.)18 b(Eac)o(h)c(message)g(has)f(a)g(name.)k(The)d(main)e(help)1042
+2940 y(68)p eop
+%%Page: 69 70
+69 69 bop 295 42 a Fr(message)16 b(is)g(called)f(\\)p Fl(menu)p
+Fr(")g(and)h(con)o(tains)g(a)f(list)h(of)f(the)h(other)h(help)f(messages.)24
+b(Examples:)295 91 y Fl(+Hregistration)p Fr(,)11 b Fl(+Hoptions)p
+Fr(.)16 b Fl(Default:)k(-Hmenu)p Fr(.)295 165 y Fo(I:)c(Include)e(default)g
+(\014le)g(sp)q(eci\014cation:)i Fr(This)e(option)f(is)h(alw)o(a)o(ys)e
+(turned)j(on)f(and)f(cannot)295 215 y(b)q(e)j(turned)g(o\013.)22
+b(Its)16 b(string)f(attribute)h(is)f(used)h(as)f(the)h(default)f(\014le)g(sp)
+q(eci\014cation)h(for)f(include)295 265 y(\014les.)j(Usually)12
+b(this)g(option)g(is)g(used)h(to)f(sp)q(ecify)h(a)f(directory)h(from)e(whic)o
+(h)h(include)g(\014les)h(should)295 315 y(b)q(e)i(obtained.)j(Examples:)e
+Fl(=I/usr/dave/includes)o(/)p Fr(.)f Fl(Default:)20 b(+I)p
+Fr(.)295 388 y Fo(J:)d(Journal)d(File:)19 b Fr(If)14 b(this)g(option)g(is)g
+(turned)i(on,)e(F)m(unnelW)m(eb)g(generates)i(a)e(journal)g(\014le.)20
+b(A)295 438 y(journal)15 b(\014le)h(con)o(tains)g(a)g(log)f(of)g(all)g(the)i
+(console)f(input)g(and)g(output)g(to)g(F)m(unnelW)m(eb)f(during)295
+488 y(a)h(single)g(in)o(v)o(o)q(cation)f(of)h(the)h(F)m(unnelW)m(eb)f
+(program)f(\(Note:)23 b(The)17 b Fl(Q)f Fr(option)f(do)q(es)i(not)g(a\013ect)
+295 538 y(this.\).)23 b(The)16 b(journal)f(\014le)g(is)h(particularly)f
+(useful)g(for)g(examining)f(what)h(happ)q(ened)i(during)e(a)295
+588 y(F)m(unnelW)m(eb)e(shell)h(run.)k(The)d(string)e(attribute)i(is)e(the)i
+(name)d(of)h(the)h(journal)f(\014le.)18 b(Examples:)295 638
+y Fl(+Jjournfile)p Fr(,)11 b Fl(-J)p Fr(.)i Fl(Default:)20
+b(-J)p Fr(.)295 711 y Fo(K:)g(Keyb)q(oard:)k Fr(If)16 b(this)h(option)f(is)g
+(turned)i(on,)e(F)m(unnelW)m(eb)g(en)o(ters)i(an)f(in)o(teractiv)o(e)g(mo)q
+(de)295 761 y(in)i(whic)o(h)g(the)h(user)h(can)e(en)o(ter)h(F)m(unnelW)m(eb)f
+(shell)g(commands)e(in)o(teractiv)o(ely)m(.)34 b(The)20 b(string)295
+811 y(attribute)15 b(is)e(un)o(used.)19 b(Examples:)e Fl(+K)p
+Fr(,)c Fl(-K)p Fr(.)g Fl(Default:)20 b(-K)p Fr(.)295 885 y
+Fo(L:)d(Listing)d(File:)k Fr(If)c(this)h(option)e(is)i(turned)g(on,)f(F)m
+(unnelW)m(eb)g(generates)i(a)f(listing)e(\014le)i(con-)295
+935 y(taining)e(a)g(summary)e(of)i(a)h(run)g(on)f(F)m(unnelW)m(eb)h(prop)q
+(er.)k(The)d(string)e(argumen)o(t)g(is)h(the)g(name)295 985
+y(of)g(the)g(listing)f(\014le)h(to)f(b)q(e)i(created.)k(Examples:)e
+Fl(+L)p Fr(,)c Fl(-L)p Fr(,)g Fl(+Llisting.lis)p Fr(.)j Fl(Default:)k(-L)p
+Fr(.)295 1058 y Fo(O:)e(Pro)q(duct)d(Files:)k Fr(If)c(this)g(option)f(is)h
+(turned)h(on,)e(F)m(unnelW)m(eb)h(generates)h(a)f(pro)q(duct)h(\014le)295
+1108 y(for)e(eac)o(h)h(macro)e(in)g(the)i(input)f(\014le)g(that)g(is)g(b)q
+(ound)g(to)g(an)g(output)h(\014le.)j(The)d(string)f(attribute)295
+1158 y(con)o(tributes)22 b(to)e(the)h(name)e(of)h(the)h(pro)q(duct)g
+(\014les.)38 b(This)20 b(option)g(is)g(con)o(trolled)g(b)o(y)g(the)h
+Fl(O)295 1208 y Fr(argumen)o(t)d(b)q(ecause)j(pro)q(duct)e(\014les)g(used)h
+(to)f(b)q(e)g(called)g(\\)p Fo(O)p Fr(utput)g(\014les"\).)33
+b(Examples:)27 b Fl(-O)p Fr(,)295 1258 y Fl(+O/usr/dave/product)o(/)p
+Fr(.)15 b Fl(Default:)20 b(+O)p Fr(.)295 1332 y Fo(Q:)15 b(Quiet:)h
+Fr(If)c(this)g(option)g(is)g(turned)i(on,)e(F)m(unnelW)m(eb)f(suppresses)16
+b(all)11 b(output)h(to)h(the)g(screen)295 1381 y(\(standard)k(output\))f
+(unless)g(one)g(or)g(more)f(errors)i(o)q(ccur,)g(in)e(whic)o(h)h(case)h(a)e
+(single)h(line)f(sum-)295 1431 y(marizing)d(the)i(errors)h(is)e(sen)o(t)i(to)
+e(standard)h(output)g(at)f(the)i(end)f(of)f(the)h(run.)k(If)13
+b(this)h(option)f(is)295 1481 y(turned)j(o\013,)e(F)m(unnelW)m(eb)g(writes)h
+(to)g(the)g(console)g(in)f(its)g(normal)f(garrulous)h(w)o(a)o(y)m(.)19
+b(The)c(string)295 1531 y(attribute)g(is)e(un)o(used)i(in)f(this)g(option.)j
+(Examples:)g Fl(-Q)p Fr(,)c Fl(+Q)p Fr(.)g Fl(Default:)20 b(-Q)p
+Fr(.)295 1605 y Fo(S:)13 b(Screen:)k Fr(If)11 b(this)h(option)f(is)g(turned)i
+(on,)e(F)m(unnelW)m(eb)h(writes)g(all)e(diagnostics)i(to)f(the)i(screen)295
+1654 y(\(standard)i(output\))g(as)g(w)o(ell)f(as)g(to)h(the)g(listing)f
+(\014le.)20 b(By)14 b(default,)g(they)h(are)g(sen)o(t)h(only)e(to)g(the)295
+1704 y(listing)i(\014le.)28 b(This)17 b(option)g(has)g(a)g(single)f(n)o
+(umerical)g(attribute)i(that)f(can)g(b)q(e)h(sp)q(eci\014ed)h(as)e(a)295
+1754 y(decimal)10 b(string)i(in)g(the)g(string)g(comp)q(onen)o(t)f(of)g(the)h
+Fl(S)g Fr(argumen)o(t.)k(The)c(n)o(um)o(b)q(er)f(is)h(the)g(n)o(um)o(b)q(er)
+295 1804 y(of)g(lines)f(of)h(con)o(text)g(that)g(should)g(surround)g(eac)o(h)
+h(diagnostic)e(sen)o(t)i(to)e(the)i(screen.)19 b(Examples:)295
+1854 y Fl(-S)p Fr(,)13 b Fl(+S6)p Fr(,)g Fl(+S0)p Fr(.)k Fl(Default:)j(-S)p
+Fr(.)295 1928 y Fo(T:)e(Do)q(cumen)o(tation)c(\014le:)20 b
+Fr(If)14 b(this)i(option)1034 1913 y Fg(3)1067 1928 y Fr(is)e(turned)j(on,)d
+(F)m(unnelW)m(eb)h(generates)i(a)d(do)q(c-)295 1977 y(umen)o(tation)f(\014le)
+i(in)g(T)657 1986 y(E)680 1977 y(X)g(format.)k(The)c(string)g(argumen)o(t)f
+(con)o(tributes)i(to)f(the)g(name)f(of)g(the)295 2027 y(do)q(cumen)o(tation)g
+(\014le)h(to)g(b)q(e)g(created.)23 b(By)15 b(default)f(this)h(option)f(is)h
+(turned)h(o\013,)f(as)f(exp)q(erience)295 2077 y(has)h(sho)o(wn)f(that)g
+(most)f(F)m(unnelW)m(eb)h(runs)g(are)h(made)e(during)h(program)e(dev)o
+(elopmen)o(t;)h(do)q(cu-)295 2127 y(men)o(tation)f(runs)j(o)q(ccur)g(far)f
+(more)e(rarely)m(.)18 b(Examples:)f Fl(-T)p Fr(,)c Fl(+Tsloth.tex)p
+Fr(.)j Fl(Default:)k(-T)p Fr(.)295 2201 y Fo(W:)e(Width)e(of)g(Pro)q(duct)g
+(Files:)j Fr(If)c(this)g(option)f(is)h(turned)h(on,)f(a)g(limit)d(is)j
+(placed)g(on)g(the)295 2250 y(length)f(of)g(lines)g(in)g(pro)q(duct)h
+(\014les)g(generated)g(during)f(the)h(run.)20 b(Lines)14 b(that)g(breac)o(h)i
+(the)e(limit)295 2300 y(are)k(\015agged)f(with)g(error)h(messages.)28
+b(This)17 b(option)g(has)g(a)g(single)g(n)o(umerical)f(attribute)i(that)295
+2350 y(can)c(b)q(e)h(sp)q(eci\014ed)h(as)e(a)f(decimal)g(string)h(in)f(the)i
+(string)f(comp)q(onen)o(t)f(of)h(the)g Fl(W)g Fr(argumen)o(t.)j(The)295
+2400 y(n)o(um)o(b)q(er)f(is)h(the)h(sp)q(eci\014ed)g(maxim)n(um)13
+b(width.)26 b(This)17 b(option)f(is)h(one)g(of)f(t)o(w)o(o)h(limits)d(that)j
+(are)295 2450 y(placed)i(on)f(the)h(width)f(of)f(pro)q(duct)i(\014les.)32
+b(The)18 b(other)h(limit)d(is)i(an)g(attribute)g(of)g(the)h(input)295
+2500 y(\014le)c(that)f(defaults)h(to)g(80)f(c)o(haracters,)i(but)e(can)h(b)q
+(e)g(raised)g(or)g(lo)o(w)o(ered)g(using)f(an)g(output)h(line)295
+2549 y(length)f(pragma.)i(The)d(width)h(that)f(is)g(enforced)i(is)e(the)h(lo)
+o(w)o(er)f(of)g(this)g(v)n(alue)g(and)g(the)i(v)n(alue)d(of)295
+2599 y(the)j Fl(W)e Fr(option)h(\(if)f(turned)i(on\).)j(Examples:)e
+Fl(-W)p Fr(,)d Fl(+W100)p Fr(.)k Fl(Default:)j(-W80)p Fr(.)295
+2673 y Fo(X:)f(Execute:)i Fr(If)16 b(this)f(option)g(is)h(turned)g(on,)g(F)m
+(unnelW)m(eb)f(executes)i(the)g(F)m(unnelW)m(eb)e(shell)295
+2723 y(script)g(\014le)f(sp)q(eci\014ed)h(b)o(y)f(the)g(string)g(attribute.)
+19 b(Examples:)e Fl(+Xmaster)p Fr(,)11 b Fl(-X)p Fr(.)i Fl(Default:)21
+b(-X)p Fr(.)p 177 2757 709 2 v 223 2783 a Ff(3)241 2795 y Fh(This)c(option)f
+(is)h(con)o(trolled)d(b)o(y)j(the)f Fe(T)i Fh(command)c(line)i(argumen)o(t)f
+(b)q(ecause)g(do)q(cumen)o(tati)o(on)f(\014les)j(used)f(to)h(b)q(e)g(called)
+177 2835 y(t)o(yp)q(esetter)9 b(\014les.)1042 2940 y Fr(69)p
+eop
+%%Page: 70 71
+70 70 bop 177 42 a Fi(3.8)70 b(File)21 b(Name)h(Inheritance)177
+157 y Fr(During)10 b(a)h(single)f(run)h(of)f(F)m(unnelW)m(eb,)g(F)m(unnelW)m
+(eb)h(can)g(pro)q(duce)g(man)o(y)e(di\013eren)o(t)j(output)f(\014les.)17
+b(As)11 b(it)g(w)o(ould)177 207 y(b)q(e)i(v)o(ery)g(tedious)g(to)f(ha)o(v)o
+(e)g(to)g(sp)q(ecify)h(the)g(name)f(of)f(eac)o(h)i(of)f(these)i(\014les)f
+(explicitly)e(eac)o(h)i(time)e(F)m(unnelW)m(eb)h(is)177 257
+y(run,)g(F)m(unnelW)m(eb)e(pro)o(vides)i(a)f(system)g(of)f(defaults)h(that)g
+(allo)o(ws)f(the)i(user)g(to)f(sp)q(ecify)h(the)g(minim)n(um)7
+b(required)177 306 y(to)15 b(successfully)i(complete)d(the)i(run.)23
+b(T)m(o)14 b(do)h(this)h(F)m(unnelW)m(eb)e(allo)o(ws)g(\014le)i(sp)q
+(eci\014cations)g(to)f(inherit)g(\014elds)177 356 y(from)d(one)i(another.)177
+430 y(F)m(unnelW)m(eb)k(structures)j(\014lenames)d(in)o(to)g(three)i
+(\014elds)f(whic)o(h)f(are)h(inherited)g(indep)q(enden)o(tly)m(.)32
+b(The)19 b(\014elds)177 480 y(are:)f Fo(directory)p Fr(,)11
+b Fo(name)p Fr(,)h(and)h Fo(extension)p Fr(.)i(On)e(systems)g(ha)o(ving)f
+(other)i(\014elds)f(\(e.g.)g Fm(network)g(no)n(de)p Fr(,)h
+Fm(devic)n(e)177 530 y(name)p Fr(\),)d(the)g(extra)g(\014elds)g(are)g
+(considered)g(to)f(b)q(e)h(part)g(of)e(the)i(directory)g(\014eld.)17
+b(V)m(ersion)11 b(n)o(um)o(b)q(ers)f(are)g(ignored.)177 580
+y(A)k(\014eld)g(can)g(inherit)g(a)g(v)n(alue)f(if)g(its)h(curren)o(t)h(v)n
+(alue)e(is)h(the)h(empt)o(y)d(string.)177 654 y(The)i(follo)o(wing)e(table)i
+(giv)o(es)f(the)i(full)d(inheritance)j(sc)o(heme)f(used)h(in)e(F)m(unnelW)m
+(eb.)p 402 733 1323 2 v 401 783 2 50 v 427 768 a(Script)p 579
+783 V 70 w(Input)p 743 783 V 64 w(Include)p 925 783 V 50 w(Journal)p
+1112 783 V 50 w(List)p 1290 783 V 108 w(Do)q(cumen)o(t)p 1526
+783 V 49 w(Pro)q(duct)p 1723 783 V 402 785 1323 2 v 401 834
+2 50 v 579 834 V 743 834 V 769 819 a Fl(@i)p 925 834 V 1112
+834 V 1290 834 V 1526 834 V 739 w(@o)p 1723 834 V 401 884 V
+427 869 a(+x)p 579 884 V 134 w(+f)p 743 884 V 120 w(+i)p 925
+884 V 138 w(+j)p 1112 884 V 143 w(+l)p 1290 884 V 134 w(+t)p
+1526 884 V 192 w(+o)p 1723 884 V 401 934 V 427 919 a Fr(\\)p
+Fl(.fws)p Fr(")p 579 934 V 48 w(\\)p Fl(.fw)p Fr(")p 743 934
+V 56 w(\\)p Fl(.fwi)p Fr(")p 925 934 V 52 w(\\)p Fl(.jrn)p
+Fr(")p 1112 934 V 57 w(\\)p Fl(.lis)p Fr(")p 1290 934 V 48
+w(\\)p Fl(.tex)p Fr(")p 1526 934 V 1723 934 V 401 984 V 579
+984 V 743 984 V 769 969 a Fl(+f)p 925 984 V 138 w(+f)p 1112
+984 V 143 w(+f)p 1290 984 V 134 w(+f)p 1526 984 V 1723 984
+V 401 1034 V 427 1019 a Fr(DefDir)p 579 1034 V 55 w(Defdir)p
+743 1034 V 50 w(Defdir)p 925 1034 V 68 w(Defdir)p 1112 1034
+V 73 w(Defdir)p 1290 1034 V 64 w(Defdir)p 1526 1034 V 122 w(Defdir)p
+1723 1034 V 402 1035 1323 2 v 177 1133 a(The)g(table)g(is)f(arranged)h(with)f
+(items)g(of)g(highest)g(priorit)o(y)g(at)h(the)g(top.)k(The)c(\\)p
+Fl(+<letter>)p Fr(")d(cells)j(refer)h(to)e(the)177 1183 y(\014le)h(sp)q
+(eci\014cation)h(supplied)g(in)e(the)i(giv)o(en)f(command)d(line)j(argumen)o
+(t.)k(\\)p Fl(+F)p Fr(")12 b(is)h(the)h(name)e(of)g(the)i(input)f(\014le.)177
+1233 y(\\Defdir")k(refers)i(to)f(the)g(default)f(directory)i(sp)q
+(eci\014cation)f(pro)o(vided)g(b)o(y)f(the)h(op)q(erating)g(system.)29
+b(Empt)o(y)177 1283 y(cells)14 b(do)g(not)g(con)o(tribute.)177
+1357 y(The)g(follo)o(wing)d(example)i(sho)o(ws)h(ho)o(w)f(the)h(table)g(is)f
+(used.)19 b(Supp)q(ose)c(that)f(the)g(user)h(in)o(v)o(ok)o(ed)e(F)m(unnelW)m
+(eb)g(as)177 1407 y(follo)o(ws:)177 1522 y Fl(fw)22 b(/usr/ross/work/)o
+(sloth)o(.fw)d(+twalrus)177 1636 y Fr(T)m(o)g(w)o(ork)g(out)g(what)h(the)g
+(do)q(cumen)o(tation)e(\014le)i(should)f(b)q(e)h(called,)g(F)m(unnelW)m(eb)f
+(starts)i(with)e(the)h(empt)o(y)177 1686 y(string)d(and)g(then)h(w)o(orks)f
+(do)o(wn)g(the)h(Do)q(cumen)o(t)e(column)f(of)i(the)h(table.)27
+b(The)18 b(top)f(en)o(try)g(is)g(empt)o(y)f(so)i(w)o(e)177
+1736 y(ignore)g(it)f(and)g(pro)q(ceed)j(to)d(the)i(second)f(en)o(try)h(whic)o
+(h)e(consists)i(of)e(\\)p Fl(+T)p Fr(".)f(The)i(user)h(sp)q(eci\014ed)g(the)g
+(string)177 1786 y(\\)p Fl(walrus)p Fr(")d(as)i(the)g(v)n(alue)f(of)g(this)h
+(option,)f(and)h(as)g(our)f(curren)o(t)i(\(empt)o(y\))e(string)h(do)q(es)h
+(not)e(ha)o(v)o(e)h(a)f(name)177 1836 y(\014eld,)d(w)o(e)g(insert)h(the)g
+(string)f(\\)p Fl(walrus)p Fr(")e(in)o(to)i(the)h(name)d(\014eld,)i
+(resulting)g(in)g(the)h(string)f(\\)p Fl(walrus)p Fr(".)j(Mo)o(ving)177
+1886 y(do)o(wn)d(to)g(the)h(next)f(ro)o(w,)g(w)o(e)g(encoun)o(ter)i(the)f
+(constan)o(t)f(string)h(\\)p Fl(.tex)p Fr(".)i(This)d(string)g(consists)h(of)
+f(an)g(empt)o(y)177 1935 y(directory)j(and)e(name)g(\014eld,)h(but)g(a)f(\\)p
+Fl(.tex)p Fr(")g(\014le)h(extension.)24 b(As)16 b(our)g(curren)o(t)h(string)f
+(\\)p Fl(walrus)p Fr(",)e(do)q(es)j(not)177 1985 y(already)f(ha)o(v)o(e)g(a)g
+(\014le)h(extension)g(\(i.e.)e(the)i(\014le)f(extension)h(\014eld)g(of)e(our)
+i(curren)o(t)g(string)g(is)f(empt)o(y\),)f(w)o(e)i(add)177
+2035 y(in)f(\\)p Fl(.tex)p Fr(",)f(resulting)h(in)g(the)h(string)f(\\)p
+Fl(walrus.tex)p Fr(".)22 b(Next)17 b(w)o(e)f(encoun)o(ter)i(the)f(\\)p
+Fl(+F)p Fr(")e(\014eld)h(whic)o(h)g(is)g(the)177 2085 y(input)c(\014lename)f
+(\\)p Fl(/usr/ross/work/slo)o(th.fw)o Fr(")e(consisting)k(of)e(a)h(directory)
+h(\014eld)g(\\)p Fl(/usr/ross/work)o(/)p Fr(",)c(a)177 2135
+y(name)k(\014eld)i(\\)p Fl(sloth)p Fr(",)d(and)j(a)f(\014le)g(extension)h
+(\014eld)g(\\)p Fl(.fw)p Fr(".)j(Our)d(\\)p Fl(walrus.tex)p
+Fr(")d(string)i(already)g(has)h(name)177 2184 y(and)f(\014le)g(extension)h
+(\014elds,)e(but)i(its)f(directory)g(\014eld)g(is)g(empt)o(y)m(,)e(and)i(so)g
+(w)o(e)g(add)g(in)f(the)i(directory)g(\014eld)f(from)177 2234
+y(the)f(input)g(\014le)g(sp)q(eci\014cation,)g(resulting)g(in)f(the)h(string)
+g(\\)p Fl(/usr/ross/work/w)o(alrus)o(.tex)o Fr(".)i(Finally)m(,)10
+b(w)o(e)j(hit)177 2284 y(the)i(default)f(directory)i(sp)q(eci\014cation,)f
+(whic)o(h)f(is)h(\(sa)o(y\))f(\\)p Fl(/usr/ross/play/)p Fr(".)j(Ho)o(w)o(ev)o
+(er,)d(as)h(the)g(directory)177 2334 y(\014eld)f(of)f(our)h(w)o(alrus)g
+(string)g(is)g(already)f(full,)f(it)i(has)g(no)g(e\013ect.)177
+2408 y(In)j(general,)f(there)i(is)f(no)f(need)h(to)g(remem)o(b)q(er)e(the)i
+(exact)g(details)g(of)e(F)m(unnelW)m(eb's)h(\014lename)g(inheritance.)177
+2458 y(The)e(imp)q(ortan)o(t)f(thing)g(is)h(to)g(kno)o(w)f(that)h(it)f
+(exists,)h(and)g(to)g(use)h(it.)177 2620 y Fi(3.9)70 b(F)-6
+b(unnelW)g(eb)22 b(Startup)177 2735 y Fr(F)m(unnelW)m(eb's)c(command)d(line)j
+(options)f(can)i(b)q(e)f(divided)g(in)o(to)f(t)o(w)o(o)h(groups.)31
+b Fo(Action)19 b(options)d Fr(instruct)177 2785 y(F)m(unnelW)m(eb)j(to)g(p)q
+(erforms)g(some)g(sort)h(of)f(indep)q(enden)o(t)i(action)e(suc)o(h)h(as)f
+(pro)q(cessing)i(a)e(\014le.)35 b Fo(Ordinary)177 2835 y(options)11
+b Fr(merely)i(mo)q(dify)f(the)i(w)o(a)o(y)g(in)f(whic)o(h)h(F)m(unnelW)m(eb)f
+(executes)j(the)f(actions.)1042 2940 y(70)p eop
+%%Page: 71 72
+71 71 bop 177 42 a Fr(The)13 b(four)e(action)h(options)g(are:)17
+b Fl(+F)p Fr(,)11 b Fl(+K)p Fr(,)h Fl(+X)p Fr(,)f(and)g Fl(+H)p
+Fr(.)h(F)m(or)f(F)m(unnelW)m(eb)h(to)g(b)q(e)g(successfully)i(in)o(v)o(ok)o
+(ed,)d(at)h(least)177 91 y(one)17 b(action)f(option)g(m)o(ust)g(b)q(e)h(sp)q
+(eci\014ed.)28 b(If)16 b(zero)i(action)e(options)g(are)i(sp)q(eci\014ed,)g(F)
+m(unnelW)m(eb)e(terminates)177 141 y(with)e(failure)f(status.)19
+b(If)14 b(more)f(than)h(one)g(action)g(option)f(is)h(sp)q(eci\014ed,)h(F)m
+(unnelW)m(eb)e(p)q(erforms)h(the)g(sp)q(eci\014ed)177 191 y(actions)g(in)g(a)
+f(prede\014ned)j(order.)177 259 y(Assuming)e(that)h(the)g(user)h(has)f(sp)q
+(eci\014ed)h(at)f(least)g(one)g(action,)f(the)h(order)h(in)e(whic)o(h)h
+(actions)g(are)g(executed)177 309 y(is)f(as)g(follo)o(ws:)295
+377 y Fo(Initializati)o(on)i(script:)24 b Fr(F)m(unnelW)m(eb)17
+b(starts)h(b)o(y)f(lo)q(oking)f(in)h(the)h(curren)o(t)h(directory)f(for)f(a)
+295 427 y(\014le)e(called)g(\\)p Fl(fwinit.fws)p Fr(".)k(If)14
+b(it)h(do)q(esn't)g(\014nd)h(one,)f(it)f(do)q(esn't)i(raise)f(an)o(y)f
+(error.)23 b(If)14 b(it)h(do)q(es)295 477 y(\014nd)e(one,)g(it)f(executes)j
+(it)d(as)h(a)f(F)m(unnelW)m(eb)h(shellscript.)18 b(Initialization)10
+b(scripts)k(are)f(useful)g(for)295 527 y(setting)g(up)e(F)m(unnelW)m(eb)h
+(options)f(\(e.g.)g(using)h(the)g(\\)p Fl(set)p Fr(")f(command)e(without)j
+(ha)o(ving)e(to)i(t)o(yp)q(e)295 577 y(them)h(eac)o(h)i(time\).)295
+645 y Fo(Execute)e(argumen)o(t)e(script:)k Fr(If)c(a)g(shellscript)h(has)g(b)
+q(een)g(sp)q(eci\014ed)h(using)e(the)h(\\)p Fl(+X)p Fr(")f(option,)295
+695 y(F)m(unnelW)m(eb)j(executes)i(it.)295 763 y Fo(Pro)q(cess)k(input)d
+(\014le:)25 b Fr(If)17 b(the)i(user)f(has)g(sp)q(eci\014ed)h(an)f(input)f
+(\014le)h(using)f(the)h(\\)p Fl(+F)p Fr(")f(option,)295 813
+y(then)e(this)f(is)g(pro)q(cessed)i(next)e(\(b)o(y)g(F)m(unnelW)m(eb)f(prop)q
+(er\).)295 881 y Fo(Displa)o(y)k(help)g(message:)24 b Fr(If)16
+b(the)h(user)h(requested,)h(using)d(the)i(\\)p Fl(+H)p Fr(")d(option,)i(that)
+f(a)h(help)295 931 y(message)d(b)q(e)g(displa)o(y)o(ed,)f(the)i(message)e(is)
+h(displa)o(y)o(ed)f(at)h(this)g(time.)295 999 y Fo(In)o(teractiv)o(e)f(mo)q
+(de:)18 b Fr(If)13 b(the)g(user)i(sp)q(eci\014ed)g(the)e(\\)p
+Fl(+K)p Fr(")g(option,)f(F)m(unnelW)m(eb)h(en)o(ters)h(in)o(terac-)295
+1049 y(tiv)o(e)g(\(k)o(eyb)q(oard\))g(mo)q(de.)177 1117 y(F)m(unnelW)m(eb)e
+(pro)q(cesses)j(these)f(actions)e(in)g(the)h(ab)q(o)o(v)o(e)f(order)i
+(regardless)f(of)f(the)h(order)g(in)f(whic)o(h)g(they)h(app)q(ear)177
+1167 y(on)h(the)g(command)d(line.)177 1236 y(It)17 b(ma)o(y)e(b)q(e)i(hard)g
+(to)g(see)g(ho)o(w)g(some)f(of)g(these)i(actions)f(migh)o(t)d(b)q(e)k(com)o
+(bined.)25 b(Nev)o(ertheless,)19 b(F)m(unnelW)m(eb)177 1285
+y(allo)o(ws)e(this.)31 b(F)m(or)18 b(example,)g(a)g(user)h(migh)o(t)d(wish)i
+(to)g(pro)q(cess)i(a)e(batc)o(h)h(of)f(\014les)g(as)g(sp)q(eci\014ed)i(in)e
+(a)g(script)177 1335 y(\(\\)p Fl(+Xscript.fws)p Fr("\),)13
+b(b)q(e)j(reminded)f(of)g(the)h(in)o(teractiv)o(e)f(commands)e(a)o(v)n
+(ailable)h(\(\\)p Fl(+Hcommand)p Fr("\),)f(and)i(then)177 1385
+y(en)o(ter)d(in)o(teractiv)o(e)g(mo)q(de)e(so)h(as)g(to)g(b)q(e)h(able)e(to)h
+(repro)q(cess)j(\014les)d(for)g(whic)o(h)g(F)m(unnelW)m(eb)f(rep)q(orted)j
+(errors)f(\(after)177 1435 y(correcting)j(the)g(errors)g(in)e(a)h(di\013eren)
+o(t)h(w)o(orkstation)e(windo)o(w\).)177 1588 y Fi(3.10)70 b(Scanner)177
+1697 y Fr(The)16 b(scanner)h(reads)f(in)f(the)h(input)f(\014le)g(and)g(pro)q
+(duces)i(a)e(list)g(of)g(tok)o(ens)h(whic)o(h)f(it)g(hands)g(on)o(to)g(the)h
+(parser.)177 1747 y(In)c(addition,)f(some)h(input)g(constructs)i(ma)o(y)d
+(cause)i(the)g(scanner)h(to)e(mo)q(dify)e(some)h(of)h(F)m(unnelW)m(eb's)g
+(options.)177 1879 y Fd(3.10.1)55 b(Basic)19 b(Input)g(File)e(Pro)r(cessing)
+177 1974 y Fr(In)d(order)h(to)f(read)h(in)f(an)g(input)g(\014le)g(or)g
+(include)h(\014le,)f(the)g(scanner)i(calls)e(a)g(submo)q(dule)f(called)h(the)
+h Fo(mapp)q(er)177 2024 y Fr(that)d(reads)g(a)f(\014le)h(in)f(and)g(creates)j
+(a)d(con)o(tiguous)g(cop)o(y)h(of)f(it)g(in)g(memory)m(.)j(The)e(scanner)h
+(then)f(p)q(erforms)f(three)177 2074 y(c)o(hec)o(ks)18 b(on)e(the)h(\014le,)g
+(the)g(\014rst)g(\(\014le)g(termination\))e(of)h(whic)o(h)g(is)g(p)q
+(erformed)g(b)q(efore)i(scanning)e(commences,)177 2124 y(and)e(the)g(other)h
+(t)o(w)o(o)e(of)h(whic)o(h)f(tak)o(e)h(place)g(during)g(scanning)g(b)q(efore)
+g(eac)o(h)h(line)e(is)h(scanned.)295 2192 y Fo(File)c(T)l(ermination)o(:)k
+Fr(The)c(\014rst)g(c)o(hec)o(k)h(the)f(scanner)h(mak)o(es)d(is)h(whether)i
+(the)f(\014le)g(is)f(terminated)295 2242 y(prop)q(erly)m(.)19
+b(A)14 b(\014le)g(is)g(considered)i(to)e(b)q(e)g(prop)q(erly)h(terminated)e
+(if)h(it)f(either)i(con)o(tains)f(no)g(lines,)295 2291 y(or)j(if)f(the)h
+(last)g(line)f(in)g(the)i(\014le)e(is)h(terminated)f(b)o(y)h(an)f
+(end-of-line)g(mark)o(er.)26 b(If)16 b(the)h(scanner)295 2341
+y(detects)i(that)e(an)f(input)g(\014le)h(is)g(not)f(prop)q(erly)h
+(terminated,)f(it)h(adds)f(an)h(end-of-line)f(mark)o(er)295
+2391 y(itself)e(\(to)g(the)g(cop)o(y)g(in)f(memory)f(only\).)295
+2459 y Fo(Unprin)o(tab)o(le)i(Characters:)21 b Fr(The)16 b(second)h(c)o(hec)o
+(k)f(the)g(scanner)h(mak)o(es)d(is)i(for)f(unprin)o(table)295
+2509 y(c)o(haracters)j(\(ASCI)q(I)f(0{31)e(and)h(127{255)f(\(except)j(for)e
+(EOL\(10\)\)\))h(whic)o(h)f(it)g(\015ags)g(as)g(errors)295
+2559 y(and)e(replaces)h(b)o(y)f(question)g(marks.)295 2627
+y Fo(Line)22 b(Lengths:)31 b Fr(The)21 b(third)g(c)o(hec)o(k)g(the)h(scanner)
+g(mak)o(es)d(is)i(input)g(line)f(length.)38 b(When)295 2677
+y(F)m(unnelW)m(eb)18 b(starts)g(up,)h(a)e(default)h(maxim)n(um)c(input)j
+(line)h(length)g(of)f(80)g(is)h(set.)31 b(This)17 b(can)295
+2727 y(b)q(e)22 b(c)o(hanged)f(dynamically)d(during)i(scanning)h(using)f(a)h
+Fl(@p)g(maximum)p 1461 2727 14 2 v 14 w(input)p 1585 2727 V
+15 w(line)p 1688 2727 V 15 w(length)295 2777 y Fr(pragma.)c(If)c(the)i(n)o
+(um)o(b)q(er)e(of)g(c)o(haracters)j(on)e(a)f(line)h(\(not)g(including)f(the)h
+(end)h(of)e(line)g(mark)o(er\))295 2827 y(exceeds)j(this)e(limit,)d(F)m
+(unnelW)m(eb)i(generates)j(an)d(error.)1042 2940 y(71)p eop
+%%Page: 72 73
+72 72 bop 177 42 a Fd(3.10.2)55 b(Sp)r(ecial)18 b(Sequences)177
+144 y Fr(The)11 b(scanner)g(scans)g(the)g(input)e(\014le)h(from)f(top)h(to)g
+(b)q(ottom,)e(left)i(to)g(righ)o(t,)g(treating)g(the)h(input)f(as)g(ordinary)
+f(text)177 194 y(\(to)14 b(b)q(e)g(handed)g(directly)f(to)h(the)g(parser)g
+(as)g(a)f(text)h(tok)o(en\))g(unless)g(it)f(encoun)o(ters)i(the)f
+Fo(sp)q(ecial)g(c)o(haracter)1931 179 y Fg(4)177 244 y Fr(whic)o(h)i(in)o
+(tro)q(duces)h(a)f Fo(sp)q(ecial)h(sequence)p Fr(.)23 b(Th)o(us,)17
+b(the)f(scanner)i(partitions)d(the)i(input)f(\014le)g(in)o(to)f(ordinary)177
+293 y(text)g(and)e(sp)q(ecial)i(sequences.)177 411 y Fl(input_file)20
+b(=)h({ordinary_text)e(|)j(special_sequence})177 529 y Fr(Up)q(on)11
+b(startup,)g(the)g(sp)q(ecial)g(c)o(haracter)h(is)e Fl(@)p
+Fr(,)h(but)g(it)f(can)g(b)q(e)i(c)o(hanged)e(using)h(the)g
+Fn(<)p Fr(sp)q(ecial)p Fn(>)p Fl(=)p Fn(<)p Fr(new)p 1781 529
+13 2 v 16 w(sp)q(ecial)p Fn(>)177 579 y Fr(sp)q(ecial)k(sequence.)22
+b(Rather)15 b(than)g(using)f Fn(<)p Fr(sp)q(ecial)p Fn(>)i
+Fr(whenev)o(er)g(the)f(sp)q(ecial)g(c)o(haracter)h(app)q(ears,)f(this)g(do)q
+(c-)177 629 y(umen)o(t)j(uses)j(the)f(default)e(sp)q(ecial)i(c)o(haracter)g
+(\\)p Fl(@)p Fr(")f(to)g(represen)o(t)i(the)f(curren)o(t)h(sp)q(ecial)e(c)o
+(haracter.)35 b(More)177 679 y(imp)q(ortan)o(tly)m(,)13 b(F)m(unnelW)m(eb's)i
+(error)h(messages)g(all)e(use)i(the)g(default)g(sp)q(ecial)f(c)o(haracter)i
+(in)e(their)h(error)h(mes-)177 728 y(sages)e(ev)o(en)f(if)f(the)i(sp)q(ecial)
+f(c)o(haracter)h(has)f(b)q(een)h(c)o(hanged.)177 804 y(An)i(o)q(ccurrence)i
+(of)c(the)i(sp)q(ecial)g(c)o(haracter)g(in)f(the)h(input)f(\014le)g(in)o(tro)
+q(duces)i(a)e(sp)q(ecial)g(sequence.)28 b(The)16 b(kind)177
+853 y(of)e(sp)q(ecial)g(sequence)i(is)e(determined)g(b)o(y)g(the)h(c)o
+(haracter)h(follo)o(wing)11 b(the)k(sp)q(ecial)f(c)o(haracter.)20
+b(Only)14 b(prin)o(table)177 903 y(c)o(haracters)i(can)e(follo)o(w)e(the)i
+(sp)q(ecial)g(c)o(haracter.)177 979 y(The)j(follo)o(wing)c(list)j(giv)o(es)g
+(all)e(the)j(p)q(ossible)f(c)o(haracters)i(that)e(can)h(follo)o(w)d(the)i(sp)
+q(ecial)h(c)o(haracter,)g(and)f(the)177 1028 y(legalit)o(y)c(of)g(eac)o(h)i
+(sequence.)20 b(The)13 b(\014rst)h(column)e(giv)o(es)g(the)i(ASCI)q(I)f(n)o
+(um)o(b)q(er)g(of)f(eac)o(h)i(ASCI)q(I)f(c)o(haracter.)19 b(The)177
+1078 y(second)12 b(column)e(giv)o(es)g(the)i(sp)q(ecial)f(sequence)i(for)e
+(that)g(c)o(haracter.)19 b(The)11 b(next)h(column)d(con)o(tains)i(one)g(of)f
+(three)177 1128 y(c)o(haracters:)25 b(\\)p Fl(-)p Fr(")16 b(means)g(that)h
+(the)g(sequence)i(is)d(illegal.)24 b(\\)p Fl(S)p Fr(")16 b(indicates)h(that)g
+(the)g(sequence)i(is)d(a)g Fo(simple)177 1178 y(sequence)i
+Fr(\(with)i(no)f(attributes)h(or)g(side)f(e\013ects\))j(that)d(app)q(ears)i
+(exactly)e(as)h(sho)o(wn)f(and)g(is)h(con)o(v)o(erted)177 1228
+y(directly)f(in)o(to)e(a)h(tok)o(en)h(and)f(fed)g(to)g(the)h(parser.)33
+b(Finally)m(,)17 b(\\)p Fl(C)p Fr(")g(indicates)i(that)f(the)h(sp)q(ecial)f
+(sequence)j(is)177 1278 y(complex,)12 b(p)q(ossibly)i(ha)o(ving)f(a)g(follo)o
+(wing)e(syn)o(tax)j(or)g(pro)q(ducing)g(funn)o(y)g(side)g(e\013ects.)177
+1395 y Fl(ASC)43 b(SEQ)g(COMMENT)177 1445 y(-----------------)177
+1495 y(000)152 b(\\)177 1545 y(016)174 b(|)21 b(Unprintable)f(characters)g
+(and)h(hence)g(illegal)f(specials.)177 1595 y(031)152 b(/)177
+1644 y(032)43 b(@)87 b(-)22 b(Illegal)e(\(space\).)177 1694
+y(033)43 b(@!)65 b(C)22 b(Comment.)177 1744 y(034)43 b(@")65
+b(S)22 b(Parameter)e(delimeter.)177 1794 y(035)43 b(@#)65 b(C)22
+b(Short)e(name)h(sequence.)177 1844 y(036)43 b(@$)65 b(S)22
+b(Start)e(of)i(macro)f(definition.)177 1894 y(037)43 b(@\045)65
+b(-)22 b(Illegal.)177 1943 y(038)43 b(@&)65 b(-)22 b(Illegal.)177
+1993 y(039)43 b(@')65 b(-)22 b(Illegal.)177 2043 y(040)43 b(@\()65
+b(S)22 b(Open)f(parameter)f(list.)177 2093 y(041)43 b(@\))65
+b(S)22 b(Close)e(parameter)g(list.)177 2143 y(042)43 b(@*)65
+b(-)22 b(Illegal.)177 2192 y(043)43 b(@+)65 b(C)22 b(Insert)e(newline.)177
+2242 y(044)43 b(@,)65 b(S)22 b(Parameter)e(separator.)177 2292
+y(045)43 b(@-)65 b(C)22 b(Suppress)e(end)h(of)g(line)g(marker.)177
+2342 y(046)43 b(@.)65 b(-)22 b(Illegal.)177 2392 y(047)43 b(@/)65
+b(S)22 b(Open)f(or)g(close)g(emphasised)f(text.)177 2441 y(048)43
+b(@0)65 b(-)22 b(Illegal.)177 2491 y(049)43 b(@1)65 b(S)22
+b(Formal)e(parameter)g(1.)177 2541 y(050)43 b(@2)65 b(S)22
+b(Formal)e(parameter)g(2.)177 2591 y(051)43 b(@3)65 b(S)22
+b(Formal)e(parameter)g(3.)177 2641 y(052)43 b(@4)65 b(S)22
+b(Formal)e(parameter)g(4.)p 177 2678 709 2 v 223 2705 a Ff(4)241
+2716 y Fh(This)10 b(sort)g(of)h(c)o(haracter)d(is)j(often)e(referred)g(to)h
+(as)h(the)f(\\escap)q(e)f(c)o(haracter")e(or)k(the)f(\\con)o(trol)e(c)o
+(haracter")g(in)i(other)g(systems.)177 2756 y(Ho)o(w)o(ev)o(er,)15
+b(as)f(there)g(is)g(great)g(p)q(oten)o(tial)e(to)i(confuse)f(these)g(names)g
+(with)i(the)e(\\escap)q(e")g(c)o(haracter)f(\(ASCI)q(I)i(27\))g(and)g(ASCI)q
+(I)177 2795 y(\\con)o(trol")d(c)o(haracters,)g(the)h(term)g(\\sp)q(ecial")f
+(has)i(b)q(een)f(c)o(hosen)g(instead.)18 b(This)c(results)e(in)g(the)h(terms)
+f Fa(sp)n(e)n(cial)k(char)n(acter)f Fh(and)177 2835 y Fa(sp)n(e)n(cial)f(se)n
+(quenc)n(e)p Fh(.)1042 2940 y Fr(72)p eop
+%%Page: 73 74
+73 73 bop 177 42 a Fl(053)43 b(@5)65 b(S)22 b(Formal)e(parameter)g(5.)177
+91 y(054)43 b(@6)65 b(S)22 b(Formal)e(parameter)g(6.)177 141
+y(055)43 b(@7)65 b(S)22 b(Formal)e(parameter)g(7.)177 191 y(056)43
+b(@8)65 b(S)22 b(Formal)e(parameter)g(8.)177 241 y(057)43 b(@9)65
+b(S)22 b(Formal)e(parameter)g(9.)177 291 y(058)43 b(@:)65 b(-)22
+b(Illegal.)177 340 y(059)43 b(@;)65 b(-)22 b(Illegal.)177 390
+y(060)43 b(@<)65 b(S)22 b(Open)f(macro)f(name.)177 440 y(061)43
+b(@=)65 b(C)22 b(Set)f(special)f(character.)177 490 y(062)43
+b(@>)65 b(S)22 b(Close)e(macro)h(name.)177 540 y(063)43 b(@?)65
+b(-)22 b(Illegal.)e(Reserved)g(for)h(future)g(use.)177 589
+y(064)43 b(@@)65 b(C)22 b(Insert)e(special)h(character)f(into)g(text.)177
+639 y(065)43 b(@A)65 b(S)22 b(New)f(section)f(\(level)h(1\).)177
+689 y(066)43 b(@B)65 b(S)22 b(New)f(section)f(\(level)h(2\).)177
+739 y(067)43 b(@C)65 b(S)22 b(New)f(section)f(\(level)h(3\).)177
+789 y(068)43 b(@D)65 b(S)22 b(New)f(section)f(\(level)h(4\).)177
+839 y(069)43 b(@E)65 b(S)22 b(New)f(section)f(\(level)h(5\).)177
+888 y(070)43 b(@F)65 b(-)22 b(Illegal.)177 938 y(071)43 b(@G)65
+b(-)22 b(Illegal.)177 988 y(072)43 b(@H)65 b(-)22 b(Illegal.)177
+1038 y(073)43 b(@I)65 b(C)22 b(Include)e(file.)177 1088 y(074)43
+b(@J)65 b(-)22 b(Illegal.)177 1137 y(075)43 b(@K)65 b(-)22
+b(Illegal.)177 1187 y(076)43 b(@L)65 b(-)22 b(Illegal.)177
+1237 y(077)43 b(@M)65 b(S)22 b(Tag)f(macro)g(as)g(being)g(allowed)f(to)h(be)h
+(called)e(many)h(times.)177 1287 y(078)43 b(@N)65 b(-)22 b(Illegal.)177
+1337 y(079)43 b(@O)65 b(S)22 b(New)f(macro)g(attached)f(to)h(product)f(file.)
+h(Has)g(to)h(be)f(at)h(start)e(of)i(line.)177 1386 y(080)43
+b(@P)65 b(C)22 b(Pragma.)177 1436 y(081)43 b(@Q)65 b(-)22 b(Illegal.)177
+1486 y(082)43 b(@R)65 b(-)22 b(Illegal.)177 1536 y(083)43 b(@S)65
+b(-)22 b(Illegal.)177 1586 y(084)43 b(@T)65 b(C)22 b(Typesetter)d(directive.)
+177 1636 y(085)43 b(@U)65 b(-)22 b(Illegal.)177 1685 y(086)43
+b(@V)65 b(-)22 b(Illegal.)177 1735 y(087)43 b(@W)65 b(-)22
+b(Illegal.)177 1785 y(088)43 b(@X)65 b(-)22 b(Illegal.)177
+1835 y(089)43 b(@Y)65 b(-)22 b(Illegal.)177 1885 y(090)43 b(@Z)65
+b(S)22 b(Tags)f(macro)f(as)i(being)f(allowed)f(to)h(be)h(called)e(zero)h
+(times.)177 1934 y(091)43 b(@[)65 b(-)22 b(Illegal.)e(Reserved)g(for)h
+(future)g(use.)177 1984 y(092)43 b(@\\)65 b(-)22 b(Illegal.)177
+2034 y(093)43 b(@])65 b(-)22 b(Illegal.)e(Reserved)g(for)h(future)g(use.)177
+2084 y(094)43 b(@^)65 b(C)22 b(Insert)e(control)h(character)f(into)g(text)177
+2134 y(095)43 b(@_)65 b(-)22 b(Illegal.)177 2183 y(096)43 b(@`)65
+b(-)22 b(Illegal.)177 2233 y(097)43 b(@a)65 b(\\)177 2283 y(109)43
+b(@m)87 b(|)21 b(Identical)f(to)i(@A..@Z.)177 2333 y(122)43
+b(@z)65 b(/)177 2383 y(123)43 b(@{)65 b(S)22 b(Open)f(macro)f(body/Open)g
+(literal)h(directive.)177 2433 y(124)43 b(@|)65 b(-)22 b(Illegal.)177
+2482 y(125)43 b(@})65 b(S)22 b(Close)e(macro)h(body/Close)f(literal)g
+(directive.)177 2532 y(126)43 b(@~)65 b(-)22 b(Illegal.)177
+2582 y(127)f(to)h(255)f(are)g(not)g(standard)f(printable)g(ASCII)h
+(characters)f(and)h(are)g(illegal.)177 2685 y Fr(The)11 b(most)e(imp)q(ortan)
+o(t)f(thing)i(to)g(remem)o(b)q(er)g(ab)q(out)g(the)h(scanner)g(is)f(that)h
+Fm(nothing)h(happ)n(ens)h(unless)f(the)f(sp)n(e)n(cial)177
+2735 y(char)n(acter)17 b(is)g(se)n(en.)27 b Fr(There)18 b(are)e(no)h(funn)o
+(y)f(sequences)j(that)e(will)e(cause)i(strange)h(things)e(to)h(happ)q(en.)26
+b(The)177 2785 y(b)q(est)16 b(w)o(a)o(y)e(to)g(view)h(a)f(F)m(unnelW)m(eb)g
+(do)q(cumen)o(t)g(at)h(the)g(scanner)h(lev)o(el)e(is)g(as)h(a)f(b)q(o)q(dy)h
+(of)f(text)h(punctuated)h(b)o(y)177 2835 y(sp)q(ecial)e(sequences)j(that)d
+(serv)o(e)h(to)f(structure)i(the)e(text)h(at)e(a)h(higher)g(lev)o(el.)1042
+2940 y(73)p eop
+%%Page: 74 75
+74 74 bop 177 42 a Fr(The)18 b(remaining)d(description)j(of)f(the)h(scanner)h
+(consists)f(of)f(a)g(detailed)g(description)h(of)f(the)h(e\013ect)h(of)d(eac)
+o(h)177 91 y(complex)d(sp)q(ecial)h(sequence.)177 243 y Fd(3.10.3)55
+b(Setting)18 b(the)g(Sp)r(ecial)g(Character)177 349 y Fr(The)e(sp)q(ecial)f
+(c)o(haracter)h(can)f(b)q(e)h(set)f(using)g(the)h(sequence)h
+Fn(<)p Fr(sp)q(ecial)p Fn(>)p Fl(=)p Fn(<)p Fr(newsp)q(ecialc)o(har)p
+Fn(>)p Fr(.)23 b(F)m(or)15 b(example,)177 399 y Fl(@=#)e Fr(w)o(ould)g(c)o
+(hange)i(the)f(sp)q(ecial)g(c)o(haracter)h(to)f(a)g(hash)g(\()p
+Fl(#)p Fr(\))f(c)o(haracter.)20 b(The)14 b(sp)q(ecial)g(c)o(haracter)h(ma)o
+(y)d(b)q(e)j(set)177 449 y(to)d(an)o(y)f(prin)o(table)g(ASCI)q(I)h(c)o
+(haracter)h(except)g(the)g(blank)e(c)o(haracter)i(\(i.e.)e(an)o(y)g(c)o
+(haracter)i(in)e(the)i(ASCI)q(I)f(range)177 498 y([33)p Fn(;)7
+b Fr(126]\).)15 b(In)d(normal)f(use,)i(it)f(should)g(not)g(b)q(e)h(necessary)
+i(to)d(c)o(hange)h(the)g(sp)q(ecial)f(c)o(haracter)i(of)e(F)m(unnelW)m(eb,)
+177 548 y(and)17 b(it)f(is)h(probably)f(b)q(est)i(to)e(a)o(v)o(oid)g(c)o
+(hanging)g(the)h(sp)q(ecial)g(c)o(haracter)h(so)f(as)g(not)f(to)h(confuse)g
+(F)m(unnelW)m(eb)177 598 y(readers)g(conditioned)f(to)f(the)i
+Fl(@)e Fr(c)o(haracter.)25 b(Ho)o(w)o(ev)o(er,)16 b(the)h(feature)f(is)g(v)o
+(ery)g(useful)f(where)i(the)g(text)f(b)q(eing)177 648 y(prepared)f(con)o
+(tains)f(man)o(y)e Fl(@)i Fr(c)o(haracters)h(\(e.g.)f(a)f(list)h(of)f(in)o
+(ternet)i(electronic)g(mail)c(addresses\).)177 799 y Fd(3.10.4)55
+b(Inserting)18 b(the)g(Sp)r(ecial)g(Character)h(in)n(to)f(the)g(T)-5
+b(ext)177 905 y Fr(The)13 b(sp)q(ecial)f(sequence)j Fn(<)p
+Fr(sp)q(ecial)p Fn(>)p Fl(@)e Fr(inserts)g(the)g(sp)q(ecial)g(c)o(haracter)g
+(in)o(to)f(the)h(text)f(as)h(if)e(it)h(w)o(ere)h(not)g(sp)q(ecial)177
+955 y(at)h(all.)k(The)c Fl(@)g Fr(of)f(this)i(sequence)h(has)e(nothing)g(to)f
+(do)h(with)g(the)h(curren)o(t)g(sp)q(ecial)g(c)o(haracter.)20
+b(If)14 b(the)g(curren)o(t)177 1005 y(sp)q(ecial)e(c)o(haracter)h(is)e
+Fl(P)h Fr(then)g(the)g(sequence)i Fl(P@)d Fr(will)f(insert)j(a)e
+Fl(P)g Fr(in)o(to)g(the)h(text.)18 b(Example:)e Fl(@@#@=#@#@#=@@@)177
+1055 y Fr(translates)f(to)f Fl(@#@#@)p Fr(.)177 1206 y Fd(3.10.5)55
+b(Inserting)18 b(Arbitrary)g(Characters)h(in)n(to)g(the)f(T)-5
+b(ext)177 1313 y Fr(While)13 b(F)m(unnelW)m(eb)h(do)q(es)h(not)f(tolerate)g
+(unprin)o(table)g(c)o(haracters)i(in)d(the)i(input)f(\014le)g(\(except)h(for)
+f(the)h(end)f(of)177 1362 y(line)f(c)o(haracter\),)h(it)e(do)q(es)i(allo)o(w)
+d(the)i(user)h(to)f(sp)q(ecify)h(that)e(unprin)o(table)h(c)o(haracters)i(app)
+q(ear)e(in)f(the)i(pro)q(duct)177 1412 y(\014le.)k(The)c Fl(@^)f
+Fr(sequence)j(inserts)f(a)e(single)g(c)o(haracter)i(of)e(the)i(user's)f(c)o
+(ho)q(osing)g(in)o(to)f(the)h(text.)k(The)c(c)o(haracter)177
+1462 y(can)19 b(b)q(e)g(sp)q(eci\014ed)i(b)o(y)d(giving)f(its)i(ASCI)q(I)g(n)
+o(um)o(b)q(er)f(in)g(one)h(of)f(four)h(bases:)28 b(binary)m(,)19
+b(o)q(ctal,)g(decimal,)f(and)177 1512 y(hexadecimal.)f(Here)e(is)f(the)g(syn)
+o(tax:)177 1636 y Fl(control_sequence)19 b(=)i("@^")g(char_spec)177
+1686 y(char_spec)173 b(=)21 b(binary)g(|)g(octal)g(|)h(decimal)e(|)i
+(hexadecimal)177 1736 y(binary)239 b(=)21 b(\("b")g(|)h("B"\))282
+b("\(")21 b({binary_digit}8)41 b("\)")177 1786 y(octal)261
+b(=)21 b(\("o")g(|)h("O")f(|)h("q")f(|)g("Q"\))g("\(")g({octal_digit}3)63
+b("\)")177 1835 y(decimal)217 b(=)21 b(\("d")g(|)h("D"\))282
+b("\(")21 b({decimal_digit}3)e("\)")177 1885 y(hexadecimal)129
+b(=)21 b(\("h")g(|)h("H")f(|)h("x")f(|)g("X"\))g("\(")g({hex_digit}2)107
+b("\)")177 1935 y(binary_digit)g(=)21 b("0")g(|)h("1")177 1985
+y(octal_digit)129 b(=)21 b(binary_digit)f(|)h("2")g(|)h("3")f(|)h("4")f(|)g
+("5")h(|)f("6")g(|)h("7")177 2035 y(decimal_digit)85 b(=)21
+b(octal_digit)f(|)h("8")h(|)f("9")177 2085 y(hex_digit)173
+b(=)21 b(decimal_digit)e(|)j("A")f(|)h("B")f(|)g("C")h(|)f("D")g(|)h("E")f(|)
+h("F")896 2134 y(|)g("a")f(|)h("b")f(|)g("c")h(|)f("d")g(|)h("e")f(|)h("f")
+177 2259 y Fr(Example:)177 2383 y Fl(@!)g(Unix)f(Make)f(requires)h(that)g
+(productions)e(commence)h(with)h(tab)g(characters.)177 2433
+y(@^D\(009\)prog.o)e(<-)i(prog.c)177 2557 y Fr(Note)16 b(that)g(the)g
+(decimal)e(\\)p Fl(9)p Fr(")h(is)g(expressed)j(with)d(leading)g(zeros)i(as)e
+(\\)p Fl(009)p Fr(".)22 b(F)m(unnelW)m(eb)15 b(requires)i(a)e(\014xed)177
+2607 y(n)o(um)o(b)q(er)e(of)g(digits)g(for)g(eac)o(h)h(base.)19
+b(Eigh)o(t)13 b(digits)g(for)g(base)h(t)o(w)o(o,)f(three)i(digits)e(for)g
+(base)h(ten,)g(three)h(digits)e(for)177 2657 y(base)i(eigh)o(t)e(and)h(t)o(w)
+o(o)f(digits)h(for)f(base)i(sixteen.)177 2735 y(F)m(unnelW)m(eb)h(treats)h
+(the)g(c)o(haracter)g(resulting)f(from)e(a)i Fl(@^)g Fr(sequence)i(as)e
+(ordinary)g(text)g(in)g(ev)o(ery)h(sense.)26 b(If)177 2785
+y(y)o(our)13 b(input)h(\014le)f(con)o(tains)h(man)o(y)d(instances)k(of)e(a)g
+(particular)h(con)o(trol)f(c)o(haracter,)h(y)o(ou)g(can)f(pac)o(k)n(age)g(it)
+h(up)f(in)177 2835 y(a)h(macro)e(lik)o(e)i(an)o(y)f(other)h(text.)19
+b(In)14 b(particular,)f(quic)o(k)h(names)f(can)h(b)q(e)g(used)h(to)f(great)g
+(e\013ect:)1042 2940 y(74)p eop
+%%Page: 75 76
+75 75 bop 177 42 a Fl(@!)22 b(Unix)f("Make")f(requires)g(that)h(productions)f
+(commence)g(with)h(tab)g(characters.)177 91 y(@!)h(So)f(we)g(define)g(a)g
+(macro)g(with)g(a)h(quick)f(name)f(as)i(a)f(tab)h(character.)177
+141 y($@#T@{@^D\(009\)@})177 191 y(@!)g(And)f(use)g(it)g(in)h(our)f
+(productions.)177 241 y(@#Tprog.o)f(<-)h(prog.c)177 291 y(@#Ta.out)f(<-)i
+(prog.o)177 399 y Fr(W)m(arning:)c(If)c(y)o(ou)f(insert)j(a)e(Unix)g(newline)
+g(c)o(haracter)i(\(decimal)c(10\))i(in)o(to)g(the)h(text,)f(F)m(unnelW)m(eb)g
+(will)f(treat)177 448 y(this)i(as)f(an)h(end)g(of)f(line)g(sequence)j
+(regardless)f(of)e(what)g(the)h(c)o(haracter)h(sequence)h(for)d(end)h(of)f
+(line)g(is)h(on)f(the)177 498 y(mac)o(hine)h(up)q(on)i(whic)o(h)f(it)h(is)f
+(running.)26 b(Unix)16 b(EOL)h(is)f(F)m(unnelW)m(eb's)g(in)o(ternal)g
+(represen)o(tation)i(for)e(end)h(of)177 548 y(line.)h(Th)o(us,)13
+b(in)h(the)g(curren)o(t)h(v)o(ersion)f(of)g(F)m(unnelW)m(eb,)e(inserting)i(c)
+o(haracter)i(10)d(in)o(to)g(the)h(text)h(is)e(imp)q(ossible)177
+598 y(unless)h(this)f(also)f(happ)q(ens)i(to)f(b)q(e)h(the)f(c)o(haracter)h
+(used)g(b)o(y)f(the)h(op)q(erating)e(system)h(to)g(mark)e(the)j(end)f(of)g
+(line.)177 736 y Fd(3.10.6)55 b(Commen)n(ts)177 835 y Fr(When)17
+b(F)m(unnelW)m(eb)f(encoun)o(ters)i(the)g Fl(@!)26 b Fr(sequence)18
+b(during)f(its)f(left-to-righ)o(t)g(scan)h(of)f(the)h(line,)f(it)g(thro)o(ws)
+177 885 y(a)o(w)o(a)o(y)c(the)i(rest)h(of)e(the)h(line)f(\(including)f(the)i
+(EOL\))g(without)f(analysing)f(it)h(further.)19 b(Commen)o(ts)11
+b(can)i(app)q(ear)177 934 y(in)h(an)o(y)f(line)g(except)j(\\)p
+Fl(@i)p Fr(",)c(\\)p Fl(@t)p Fr(",)h(and)g(\\)p Fl(@p)p Fr(")g(lines.)177
+1007 y(F)m(unnelW)m(eb)f(commen)o(ts)f(can)i(b)q(e)g(used)h(to)e(insert)i
+(commen)o(ts)d(in)o(to)g(y)o(our)i(input)f(\014le)h(that)g(will)e(neither)i
+(app)q(ear)177 1057 y(in)f(the)h(pro)q(duct)g(\014les)f(nor)g(in)g(the)h(do)q
+(cumen)o(tation)e(\014le,)h(but)g(will)f(b)q(e)i(solely)e(for)h(the)h(b)q
+(ene\014t)g(of)f(those)h(reading)177 1106 y(and)h(editing)f(the)i(input)e
+(\014le)h(directly)m(.)k(Example:)177 1215 y Fl(@!)k(I)f(have)g(used)g(a)h
+(quick)e(macro)h(for)g(this)g(definition)f(as)h(it)h(will)f(be)g(used)g
+(often.)177 1264 y(@$@#C@{--@})177 1372 y Fr(Because)d(commen)o(ts)d(are)i
+(de\014ned)g(to)g(include)f(the)h(end-of-line)f(mark)o(er,)f(care)i(m)o(ust)f
+(b)q(e)h(tak)o(en)f(when)h(they)177 1422 y(are)d(b)q(eing)g(added)h(or)e
+(remo)o(v)o(ed)g(within)h(the)g(text)h(of)e(macro)f(b)q(o)q(dies.)19
+b(F)m(or)13 b(example)g(the)i(text)f(fragmen)o(t)177 1530 y
+Fl(for)21 b(\(i=0;i<MAXVAL;i++\))127 b(@!)22 b(Print)f(out)g(a[0..MAXVAL-1].)
+243 1580 y(printf\("\045u\\n",a)o([i]\);)177 1688 y Fr(will)13
+b(expand)h(to)177 1796 y Fl(for)21 b(\(i=0;i<MAXVAL;i++\))193
+b(printf\("\045u\\n",a[)o(i]\);)177 1904 y Fr(This)19 b(problem)f(really)g
+(has)i(no)e(solution;)j(if)d(F)m(unnelW)m(eb)h(commen)o(ts)e(w)o(ere)j
+(de\014ned)g(to)f(omit)e(the)j(end)f(of)177 1954 y(line)14
+b(mark)o(er,)g(the)h(expanded)h(text)f(w)o(ould)f(con)o(tain)g(trailing)f
+(blanks!)20 b(As)c(it)e(is,)g(F)m(unnelW)m(eb)g(commen)o(ts)f(are)177
+2004 y(designed)18 b(to)f(supp)q(ort)h(single)f(line)g(commen)o(ts)f(whic)o
+(h)h(can)g(b)q(e)h(inserted)h(and)e(remo)o(v)o(ed)f(as)h(a)g(line)g(without)
+177 2054 y(causing)d(trouble.)k(F)m(or)c(example:)177 2162
+y Fl(@!)22 b(Print)e(out)h(a[0..MAXVAL-1].)177 2212 y(for)g
+(\(i=0;i<MAXVAL;i++\))243 2261 y(printf\("\045u\\n",a)o([i]\);)177
+2369 y Fr(If)13 b(y)o(ou)g(w)o(an)o(t)g(a)g(commen)o(t)f(construct)j(that)e
+(do)q(es)h(not)g(enclose)g(the)g(end)g(of)f(line)g(mark)o(er,)f(com)o(bine)g
+(the)i(insert)177 2419 y(end)h(of)e(line)g(construct)j Fl(@+)d
+Fr(with)h(the)g(commen)o(t)e(construct)k Fl(@!)i Fr(as)c(in)177
+2527 y Fl(for)21 b(\(i=0;i<MAXVAL;i++\))127 b(@+@!)21 b(Print)g(out)g
+(a[0..MAXVAL-1].)243 2577 y(printf\("\045u\\n",a)o([i]\);)177
+2685 y Fr(F)m(unnelW)m(eb)d(commen)o(ts)f(should)h(really)g(only)g(b)q(e)h
+(used)g(to)g(commen)o(t)d(the)j(F)m(unnelW)m(eb)f(constructs)j(b)q(eing)177
+2735 y(used)d(in)e(the)h(input)f(\014le.)26 b(Commen)o(ts)14
+b(on)j(the)g(target)g(co)q(de)g(are)g(b)q(est)h(placed)e(in)g(commen)o(ts)f
+(in)h(the)h(target)177 2785 y(language)d(or)h(in)f(the)h(do)q(cumen)o(ting)f
+(text)i(surrounding)f(the)g(macro)e(de\014nitions.)21 b(In)15
+b(the)g(example)f(ab)q(o)o(v)o(e,)g(a)177 2835 y(C)g(commen)o(t)e(w)o(ould)h
+(ha)o(v)o(e)g(b)q(een)j(more)c(appropriate.)1042 2940 y(75)p
+eop
+%%Page: 76 77
+76 76 bop 177 42 a Fd(3.10.7)55 b(Quic)n(k)19 b(Names)177 148
+y Fr(F)m(unnelW)m(eb)13 b(pro)o(vides)g(a)f Fo(quic)o(k)i(name)e
+Fr(syn)o(tax)h(as)g(an)g(alternativ)o(e,)f(for)h(macros)f(whose)h(name)f
+(consists)i(of)e(a)177 198 y(single)f(c)o(haracter,)h(to)e(the)i(angle)e
+(brac)o(k)o(et)h(syn)o(tax)g(usually)f(used)i(\(e.g.)e Fl(@<Sloth@>)p
+Fr(\).)15 b(A)c(quic)o(k)f(name)g(sequence)177 248 y(consists)15
+b(of)e Fl(@#)p Fn(x)g Fr(where)j Fn(x)p Fr(,)d(the)h(name)f(of)g(the)i
+(macro,)d(can)i(b)q(e)g(an)o(y)g(prin)o(table)f(c)o(haracter)j(except)f
+(space.)177 374 y Fl(quick_name)20 b(=)h("@#")g(non_space_printable)177
+499 y Fr(The)14 b(result)g(is)f(iden)o(tical)f(to)h(the)h(equiv)n(alen)o(t)e
+(ordinary)h(name)f(syn)o(tax,)h(but)g(is)g(shorter.)19 b(F)m(or)13
+b(example,)e Fl(@#X)i Fr(is)177 549 y(equiv)n(alen)o(t)i(to)h
+Fl(@<X@>)p Fr(.)22 b(This)16 b(shorter)h(w)o(a)o(y)e(of)g(writing)g(one-c)o
+(haracter)j(macro)c(names)h(is)h(more)e(con)o(v)o(enien)o(t)177
+599 y(where)g(a)f(macro)f(m)o(ust)g(b)q(e)h(used)h(v)o(ery)f(often.)18
+b(F)m(or)12 b(example,)g(the)h(macro)f(calls)h(in)f(the)i(follo)o(wing)c
+(fragmen)o(t)h(of)177 649 y(an)j(Ada)g(program)e(are)i(a)g(little)f(clumsy)m
+(.)177 775 y Fl(@!)22 b(Define)e(@<D@>)h(as)g("")h(to)f(turn)g(on)g(debug)g
+(code)g(and)g("--")g(to)h(turn)f(it)g(off.)177 824 y(@$@<D@>@{--@})177
+874 y(@<D@>assert\(b>3\);)177 924 y(@<D@>if)g(x>7)g(then)g(write\("error"\))e
+(end)i(if)177 1050 y Fr(The)14 b(calls)g(can)g(b)q(e)h(shortened)g(using)f
+(the)g(alternativ)o(e)g(syn)o(tax.)177 1175 y Fl(@!)22 b(Define)e(@#|)h(as)h
+("")f(to)g(turn)g(on)h(debug)f(code)f(and)i("--")f(to)g(turn)g(it)g(off.)177
+1225 y(@$@#|@{--@})177 1275 y(@#|assert\(b>3\);)177 1325 y(@#|if)g(x>7)g
+(then)g(write\("error"\))e(end)i(if)177 1478 y Fd(3.10.8)55
+b(Inserting)18 b(End)h(of)g(Line)e(Mark)n(ers)177 1585 y Fr(An)11
+b(end)g(of)f(line)g(mark)o(er/c)o(haracter)h(can)g(b)q(e)g(inserted)h(in)o
+(to)e(the)h(text)h(using)e(the)h Fl(@+)g Fr(sequence.)19 b(This)10
+b(is)h(exactly)177 1635 y(equiv)n(alen)o(t)k(to)h(a)g(real)g(end)g(of)g(line)
+f(in)h(the)g(text)h(at)e(the)i(p)q(oin)o(t)e(where)j(it)d(o)q(ccurs.)26
+b(While)15 b(this)h(feature)h(ma)o(y)177 1684 y(sound)12 b(rather)h(useless,)
+h(it)d(is)h(v)o(ery)h(useful)f(for)g(la)o(ying)e(out)i(the)g(input)g(\014le.)
+18 b(F)m(or)11 b(example,)g(the)i(follo)o(wing)c(input)177
+1734 y(data)14 b(for)f(a)h(database)g(program)177 1860 y Fl(Animal)21
+b(=)g(Kangaroo)177 1910 y(Size)65 b(=)21 b(Medium)177 1959
+y(Speed)43 b(=)21 b(Fast)177 2059 y(Animal)g(=)g(Sloth)177
+2109 y(Size)65 b(=)21 b(Medium)177 2159 y(Speed)43 b(=)21 b(Slow)177
+2258 y(Animal)g(=)g(Walrus)177 2308 y(Size)65 b(=)21 b(Big)177
+2358 y(Speed)43 b(=)21 b(Medium)177 2484 y Fr(can)14 b(b)q(e)h(con)o(v)o
+(erted)g(in)o(to)177 2609 y Fl(Animal)21 b(=)g(Kangaroo)42
+b(@+Size)21 b(=)g(Medium)43 b(@+Speed)20 b(=)i(Fast)86 b(@+)177
+2659 y(Animal)21 b(=)g(Sloth)108 b(@+Size)21 b(=)g(Medium)43
+b(@+Speed)20 b(=)i(Slow)86 b(@+)177 2709 y(Animal)21 b(=)g(Walrus)86
+b(@+Size)21 b(=)g(Big)109 b(@+Speed)20 b(=)i(Medium)42 b(@+)177
+2835 y Fr(whic)o(h)14 b(is)g(easier)g(to)g(read,)g(and)g(more)f(easily)g
+(allo)o(ws)g(comparisons)f(b)q(et)o(w)o(een)k(records.)1042
+2940 y(76)p eop
+%%Page: 77 78
+77 77 bop 177 42 a Fd(3.10.9)55 b(Suppressing)19 b(End)g(of)g(Line)e(Mark)n
+(ers)177 137 y Fr(End)e(of)g(line)f(mark)o(ers)h(can)g(b)q(e)g(suppressed)j
+(b)o(y)c(the)i Fl(@-)e Fr(sequence.)24 b(A)15 b(single)f(o)q(ccurrence)k(of)c
+(a)h Fl(@-)g Fr(sequence)177 187 y(serv)o(es)20 b(to)e(suppress)i(only)e(the)
+g(end)h(of)f(line)f(mark)o(er)h(follo)o(wing)d(it)j(and)g(m)o(ust)f(app)q
+(ear)i Fm(exactly)f Fr(b)q(efore)h(the)177 237 y(end)e(of)f(line)h(mark)o(er)
+e(to)i(b)q(e)g(suppressed.)29 b(No)17 b(trailing)e(spaces,)j
+Fl(@!)27 b Fr(commen)o(ts,)15 b(or)h(an)o(y)h(other)g(c)o(haracters)177
+287 y(are)e(p)q(ermitted)g(b)q(et)o(w)o(een)h(a)e Fl(@-)g Fr(sequence)j(and)d
+(the)h(end)g(of)f(line)g(that)h(it)f(is)h(supp)q(osed)h(to)e(suppress.)22
+b(The)15 b Fl(@-)177 337 y Fr(sequence)i(is)d(useful)g(for)g(constructing)h
+(long)f(output)g(lines)g(without)g(them)g(ha)o(ving)f(to)h(app)q(ear)h(in)f
+(the)g(input.)177 386 y(It)e(can)h(also)e(b)q(e)i(used)g(in)e(the)i(same)e(w)
+o(a)o(y)h(as)g(the)g Fl(@+)g Fr(w)o(as)g(used)h(in)f(the)g(previous)h
+(section)g(to)f(assist)g(in)g(exp)q(osing)177 436 y(the)17
+b(structure)i(of)c(output)i(text)g(without)e(a\013ecting)i(the)g(output)f
+(text)h(itself.)25 b(Finally)m(,)15 b(it)h(is)g(in)o(v)n(aluable)e(for)177
+486 y(suppressing)h(the)g(EOL)f(after)g(the)h(op)q(ening)e(macro)g(text)i
+Fl(@)p Fq(f)e Fr(construct.)20 b(F)m(or)13 b(example:)177 583
+y Fl(@$@<Walrus@>@{@-)177 633 y(I)22 b(am)f(the)g(walrus!@})177
+729 y Fr(is)14 b(equiv)n(alen)o(t)f(to)177 826 y Fl(@$@<Walrus@>@{I)19
+b(am)i(the)g(walrus!@})177 922 y Fr(The)14 b(commen)o(t)d(construct)k(\()p
+Fl(@!)p Fr(\))j(can)13 b(also)g(b)q(e)g(used)h(to)f(suppress)i(end)f(of)f
+(lines.)k(Ho)o(w)o(ev)o(er,)d(the)f Fl(@-)g Fr(construct)177
+972 y(should)i(b)q(e)g(preferred)i(for)d(this)h(purp)q(ose)h(as)e(it)h(mak)o
+(es)e(explicit)i(the)g(programmer's)d(in)o(ten)o(t)j(to)f(suppress)j(the)177
+1022 y(end)e(of)e(line.)177 1155 y Fd(3.10.10)55 b(Include)18
+b(Files)177 1251 y Fr(F)m(unnelW)m(eb)12 b(pro)o(vides)h(an)g(include)g
+(\014le)f(facilit)o(y)f(with)i(a)f(maxim)o(um)c(depth)13 b(of)f(10.)18
+b(When)13 b(F)m(unnelW)m(eb)f(sees)i(a)177 1301 y(line)g(of)f(the)i(form)d
+Fl(@i)21 b(<filename>)p Fr(,)12 b(it)i(replaces)h(the)g(en)o(tire)f(line)g
+(\(including)f(the)i(EOL\))f(with)g(the)h(con)o(ten)o(ts)177
+1350 y(of)c(the)h(sp)q(eci\014ed)h(include)f(\014le.)17 b(F)m(unnelW)m(eb's)
+11 b(include)g(\014le)h(facilit)o(y)e(is)h(in)o(tended)h(to)g(op)q(erate)g
+(at)f(the)i(line)e(lev)o(el.)177 1400 y(If)k(the)h(last)f(line)g(of)f(the)i
+(include)g(\014le)f(is)g(not)g(terminated)g(b)o(y)g(an)g(EOL,)g(F)m(unnelW)m
+(eb)g(issues)h(a)f(w)o(arning)g(and)177 1450 y(in)o(terts)g(one)f(\(in)f(the)
+i(cop)o(y)f(in)f(memory\).)177 1519 y(The)g Fl(@i)g Fr(construct)h(is)f
+(illegal)e(if)h(it)g(app)q(ears)i(an)o(ywhere)f(except)i(at)d(the)i(start)f
+(of)f(a)h(line.)k(The)c(construct)i(m)o(ust)177 1569 y(b)q(e)e(follo)o(w)o
+(ed)e(b)o(y)h(a)g(single)g(blank.)17 b(The)c(\014le)f(name)f(is)h(de\014ned)i
+(to)e(b)q(e)h(ev)o(erything)g(b)q(et)o(w)o(een)g(the)g(blank)f(and)g(the)177
+1619 y(end)j(of)e(the)h(line)g(\(no)g(commen)o(ts)e(\()p Fl(@!)p
+Fr(\))18 b(please!\).)g(Example:)f(If)c(the)i(input)e(\014le)h(is)177
+1715 y Fl("Uh)21 b(Oh,)h(It's)e(the)i(Fuzz.)e(We're)h(busted!")f(said)h(Baby)
+g(Bear.)177 1765 y(@i)h(mr_plod.txt)177 1815 y("Quick!)f(Flush)f(the)h(stash)
+g(down)g(the)g(dunny)g(and)g(let's)g(split.")f(said)h(Father)g(Bear.)177
+1912 y Fr(and)14 b(there)h(is)f(a)f(\014le)h(called)g Fl(mr)p
+672 1912 14 2 v 15 w(plod.txt)e Fr(con)o(taining)177 2008 y
+Fl("'Ello,)21 b('Ello,)f('Ello!)h(What's)f(all)h(this)g('ere)g(then?")g(Mr)g
+(Plod)g(exclaimed.)177 2105 y Fr(then)15 b(the)f(scanner)h(translates)g(the)g
+(input)e(\014le)h(in)o(to)177 2201 y Fl("Uh)21 b(Oh,)h(It's)e(the)i(Fuzz.)e
+(We're)h(busted!")f(said)h(Baby)g(Bear.)177 2251 y("'Ello,)g('Ello,)f('Ello!)
+h(What's)f(all)h(this)g('ere)g(then?")g(Mr)g(Plod)g(exclaimed.)177
+2301 y("Quick!)g(Flush)f(the)h(stash)g(down)g(the)g(dunny)g(and)g(let's)g
+(split.")f(said)h(Father)g(Bear.)177 2398 y Fr(As)14 b(a)g(p)q(oin)o(t)f(of)g
+(terminology)m(,)d(F)m(unnelW)m(eb)k(calls)f(the)h(original)e(input)i(\014le)
+f(the)i Fo(input)e(\014le)f Fr(and)h(calls)h(include)177 2447
+y(\014les)g(and)g(their)g(included)g(\014les)h Fo(include)e(\014les)p
+Fr(.)177 2516 y(The)g(include)f(\014le)g(construct)i(op)q(erates)g(at)e(a)g
+(v)o(ery)g(lo)o(w)g(lev)o(el.)17 b(An)12 b(include)h(line)e(can)i(app)q(ear)f
+(an)o(ywhere)h(in)f(the)177 2566 y(input)i(\014le)g(regardless)h(of)e(the)i
+(con)o(text)f(of)f(the)i(surrounding)f(lines.)177 2635 y(F)m(unnelW)m(eb)d
+(sets)i(the)g(sp)q(ecial)f(c)o(haracter)h(to)e(the)i(default)e(\()p
+Fl(@)p Fr(\))h(at)g(the)g(start)g(of)f(eac)o(h)i(include)e(\014le)h(and)g
+(restores)177 2685 y(it)h(to)g(its)f(previous)i(v)n(alue)e(at)h(the)g(end)h
+(of)e(the)i(include)f(\014le.)k(This)c(allo)o(ws)f(macro)g(libraries)g(to)h
+(b)q(e)h(constructed)177 2735 y(and)e(included)f(that)h(are)g(indep)q(enden)o
+(t)h(of)e(the)h(prev)n(ailing)e(sp)q(ecial)h(c)o(haracter)i(at)f(the)g(p)q
+(oin)o(t)f(of)g(inclusion.)16 b(The)177 2785 y(same)g(go)q(es)h(for)f(the)h
+(input)f(line)g(length)g(limit)e(whic)o(h)i(is)h(reset)h(to)e(the)h(default)f
+(v)n(alue)g(at)g(the)h(start)g(of)f(eac)o(h)177 2835 y(include)e(\014le)g
+(and)g(restored)h(to)f(its)g(previous)g(v)n(alue)f(afterw)o(ards.)1042
+2940 y(77)p eop
+%%Page: 78 79
+78 78 bop 177 42 a Fd(3.10.11)55 b(Pragmas)177 143 y Fr(Most)19
+b(to)q(ols)g(ha)o(v)o(e)f(to)h(supp)q(ort)g(some)f(essen)o(tial,)i(but)f
+(rather)h(inelegan)o(t)e(features.)33 b(In)19 b(F)m(unnelW)m(eb)f(these)177
+193 y(messy)c(bits)g(ha)o(v)o(e)f(all)g(b)q(een)i(stu\013ed)g(in)o(to)e(the)i
+(scanner's)g Fo(pragma)e Fr(\(for)h Fm(pr)n(agma)p Fr(tic\))g(construct.)177
+268 y(A)h(pragma)e(consists)j(of)e(a)h(single)f(line)g(of)g(input)h
+(\(including)f(the)h(EOL\))h(commencing)c(with)j Fl(@p)p Fr(.)20
+b(This)15 b(m)o(ust)177 318 y(b)q(e)g(follo)o(w)o(ed)e(b)o(y)h(a)g(single)g
+(space,)g(and)g(then)h(the)g(pragma)e(v)o(erb.)19 b(This)14
+b(m)o(ust)g(b)q(e)g(follo)o(w)o(ed)f(b)o(y)h(a)g(sequence)i(of)177
+368 y(zero)f(or)f(more)f(argumen)o(ts)g(separated)i(b)o(y)f(one)g(or)g(more)e
+(spaces.)20 b(F)m(our)13 b(pragmas)g(are)h(a)o(v)n(ailable)177
+485 y Fl(pragma)21 b(=)g(pragma_ident)f(|)h(pragma_mill)f(|)h(pragma_moll)f
+(|)h(pragma_typesetter)177 602 y Fr(The)14 b(follo)o(wing)e(syn)o(tax)i
+(de\014nitions)f(assist)i(in)e(de\014ning)h(the)h(pragmas.)177
+719 y Fl(s)174 b(=)22 b({")f("}+)177 768 y(ps)152 b(=)22 b(\("@p")f(|)g
+("@P"\))g(")h(")177 818 y(number)64 b(=)22 b({)f(decimal_digit)f(}+)177
+868 y(numorinf)g(=)i(number)e(|)i("infinity")177 985 y Fr(The)14
+b(argumen)o(ts)g(to)f(pragmas)g(are)h(case-sensitiv)o(e)h(and)f(m)o(ust)f(b)q
+(e)h(sp)q(eci\014ed)i(in)d(lo)o(w)o(er)h(case.)177 1060 y(Pragmas)f(are)h
+(pro)q(cessed)i(and)d(consumed)h(en)o(tirely)g(b)o(y)f(the)i(scanner.)k(The)
+14 b(parser)h(nev)o(er)g(sees)g(them)e(and)h(so)177 1110 y(they)i(can)f(pla)o
+(y)f(no)h(part)h(in)e(the)i(parser)g(lev)o(el)f(syn)o(tax.)22
+b(As)15 b(a)g(result,)h(pragma)d(lines)i(can)g(app)q(ear)h(an)o(ywhere)177
+1160 y(in)g(the)g(en)o(tire)g(input)g(\014le)g(regardless)h(of)e(the)h
+(surrounding)g(con)o(text)h(\(e.g.)e(ev)o(en)i(in)e(the)h(middle)e(of)h(a)h
+(macro)177 1209 y(de\014nition\).)i(The)c(sole)g(e\013ect)i(of)d(a)h(pragma)e
+(is)h(to)h(mo)q(dify)e(some)h(in)o(ternal)g(parameter)h(of)f(F)m(unnelW)m
+(eb.)177 1284 y(The)h(follo)o(wing)e(sections)j(describ)q(e)g(the)g(four)e(F)
+m(unnelW)m(eb)h(pragmas.)177 1418 y Fo(3.10.11.1)48 b(Inden)o(tation)177
+1520 y Fr(When)18 b(F)m(unnelW)m(eb)g(expands)g(a)g(macro,)f(it)g(can)h(do)g
+(so)g(in)f(t)o(w)o(o)h(w)o(a)o(ys.)29 b(First)18 b(it)g(can)g(treat)h(the)f
+(text)g(it)g(is)177 1570 y(pro)q(cessing)e(as)e(a)g(one-dimensional)e(stream)
+i(of)g(text,)h(and)f(merely)f(insert)i(the)g(b)q(o)q(dy)g(of)f(the)h(macro)e
+(in)h(place)177 1620 y(of)d(the)g(macro)f(call.)17 b(Second,)12
+b(it)e(can)i(treat)g(the)f(text)h(of)f(the)g(macro)f(as)h(a)g(t)o(w)o(o)g
+(dimensional)e(ob)r(ject)j(and)f(inden)o(t)177 1670 y(eac)o(h)k(line)f(of)g
+(the)h(macro)f(b)q(o)q(dy)g(b)o(y)g(the)i(amoun)o(t)c(that)j(the)g(macro)e
+(call)h(itself)g(w)o(as)h(inden)o(ted.)20 b(Consider)15 b(the)177
+1719 y(follo)o(wing)c(macros.)177 1836 y Fl(@$@<Loop)20 b(Structure@>@{@-)177
+1886 y(i=1;)177 1936 y(while)h(\(i<=N\))243 1986 y(@<Loop)f(body@>)177
+2036 y(endwhile)177 2085 y(@})177 2185 y(@$@<Loop)g(body@>@{@-)177
+2235 y(a[i]:=0;)177 2285 y(i:=i+1;@})177 2402 y Fr(Under)15
+b(the)f(regime)f(of)h Fo(no)h(inden)o(tati)o(on)10 b Fr(the)15
+b(lo)q(op)e(structure)j(macro)c(expands)j(to:)177 2518 y Fl(i=1;)177
+2568 y(while)21 b(\(i<=N\))243 2618 y(a[i]:=0;)177 2668 y(i:=i+1;)177
+2718 y(endwhile)177 2835 y Fr(Under)15 b(the)f(regime)f(of)h
+Fo(blank)g(inden)o(tati)o(on)c Fr(the)15 b(lo)q(op)e(structure)j(macro)d
+(expands)h(to:)1042 2940 y(78)p eop
+%%Page: 79 80
+79 79 bop 177 42 a Fl(i=1;)177 91 y(while)21 b(\(i<=N\))243
+141 y(a[i]:=0;)243 191 y(i:=i+1;)177 241 y(endwhile)177 363
+y Fr(The)11 b Fl(indentation)d Fr(pragma)h(determines)h(whic)o(h)h(of)f
+(these)i(t)o(w)o(o)d(regimes)h(will)f(b)q(e)i(used)h(to)e(expand)h(the)g
+(macros)177 413 y(when)k(constructing)f(the)h(pro)q(duct)g(\014les.)j(The)c
+(syn)o(tax)g(of)g(the)g(pragma)e(is:)177 535 y Fl(pragma_ident)19
+b(=)j(ps)f("indentation")f(s)h("=")g(s)h(\("blank")e(|)i("none"\))177
+658 y Fr(Its)15 b(t)o(w)o(o)e(forms)f(lo)q(ok)h(lik)o(e)g(this:)177
+780 y Fl(@p)22 b(indentation)d(=)j(blank)177 830 y(@p)g(indentation)d(=)j
+(none)177 952 y Fr(In)13 b(the)h(curren)o(t)h(v)o(ersion)f(of)e(F)m(unnelW)m
+(eb,)h(the)h(inden)o(tation)e(regime)g(is)i(an)f(attribute)g(that)h(is)f
+(attac)o(hed)h(to)f(an)177 1002 y(en)o(tire)g(run)g(of)e(T)m(angle;)h(it)g
+(is)g(not)g(p)q(ossible)h(to)f(bind)g(it)g(to)g(particular)g(pro)q(duct)h
+(\014les)g(or)f(to)g(particular)g(macros.)177 1052 y(As)h(a)e(result,)i(it)e
+(do)q(esn't)i(matter)e(where)i(inden)o(tation)f(pragmas)e(o)q(ccur)j(in)f
+(the)g(input)g(\014le)g(or)g(ho)o(w)f(man)o(y)f(there)177 1102
+y(are)k(so)g(long)f(as)h(they)h(are)f(all)f(the)h(same.)j(By)d(default)g(F)m
+(unnelW)m(eb)f(uses)i(blank)f(inden)o(tation.)177 1242 y Fo(3.10.11.2)48
+b(Maxim)o(um)15 b(Input)f(Line)g(Length)177 1348 y Fr(F)m(unnelW)m(eb)19
+b(generates)i(an)e(error)h(for)f(eac)o(h)h(input)f(line)g(that)g(exceeds)j(a)
+d(certain)h(maxim)n(um)15 b(n)o(um)o(b)q(er)j(of)177 1397 y(c)o(haracters.)i
+(A)o(t)13 b(the)h(start)g(of)f(the)h(pro)q(cessing)h(of)d(eac)o(h)i(input)f
+(\014le)h(and)f(eac)o(h)h(include)f(\014le,)g(this)h(maxim)n(um)9
+b(is)177 1447 y(set)15 b(to)f(a)g(default)g(v)n(alue)g(of)f(80.)19
+b(Ho)o(w)o(ev)o(er,)14 b(the)h(maxim)n(um)10 b(can)15 b(b)q(e)g(c)o(hanged)f
+(using)g(a)g(maxim)n(um)c(input)k(line)177 1497 y(length)g(pragma.)177
+1619 y Fl(pragma_mill)20 b(=)h(ps)h("maximum_input_l)o(ine_l)o(engt)o(h")d(s)
+i("=")h(s)f(numorinf)177 1742 y Fr(The)15 b(maxim)n(um)10 b(input)k(line)f
+(length)i(can)f(b)q(e)h(v)n(aried)f Fm(dynamic)n(al)r(ly)g
+Fr(throughout)g(the)h(input)f(\014le.)19 b(Eac)o(h)14 b(maxi-)177
+1792 y(m)o(um)7 b(input)i(line)g(length)h(pragma's)e(scop)q(e)i(co)o(v)o(ers)
+h(the)f(line)f(follo)o(wing)e(the)j(pragma)e(through)i(to)f(and)h(including)
+177 1841 y(the)17 b(next)g(maxim)n(um)12 b(input)k(line)g(length)h(pragma,)d
+(but)j(not)f(co)o(v)o(ering)g(an)o(y)g(in)o(terv)o(ening)g(include)h
+(\014les.)26 b(A)o(t)177 1891 y(the)14 b(start)g(of)f(an)g(include)h(\014le,)
+f(F)m(unnelW)m(eb)g(resets)i(the)f(maxim)o(um)9 b(input)k(line)g(length)g(to)
+h(the)g(default)f(v)n(alue.)177 1941 y(It)h(restores)i(it)e(to)f(its)h
+(previous)g(v)n(alue)g(at)f(the)i(end)f(of)g(the)g(include)g(\014le.)177
+2018 y(This)k(pragma)f(is)h(useful)g(for)g(detecting)i(text)f(that)f(has)h
+(stra)o(y)o(ed)g(o\013)f(the)h(righ)o(t)f(side)g(of)g(the)h(screen)h(when)177
+2068 y(editing.)25 b(If)16 b(y)o(ou)f(use)i(F)m(unnelW)m(eb,)f(and)g(set)i
+(the)e(maxim)o(um)c(input)k(line)f(length)i(to)f(b)q(e)h(the)f(width)g(of)g
+(y)o(our)177 2118 y(editing)g(windo)o(w,)g(y)o(ou)g(will)e(nev)o(er)k(b)q(e)f
+(caugh)o(t)f(b)o(y)m(,)g(for)g(example,)f(o\013-screen)j(op)q(ening)e(commen)
+o(t)f(sym)o(b)q(ols.)177 2168 y(Y)m(ou)d(can)g(also)f(b)q(e)i(sure)g(that)f
+(y)o(our)g(source)h(text)f(can)h(b)q(e)f(prin)o(ted)h(ra)o(w,)e(if)g
+(necessary)m(,)j(without)d(lines)h(wrapping)177 2218 y(around.)177
+2358 y Fo(3.10.11.3)48 b(Maxim)o(um)15 b(Output)e(File)h(Line)h(Length)177
+2463 y Fr(As)e(w)o(ell)e(as)i(k)o(eeping)f(an)g(ey)o(e)h(on)f(input)g(line)g
+(lengths,)g(F)m(unnelW)m(eb)g(also)g(k)o(eeps)h(an)f(ey)o(e)h(on)f(the)h
+(line)f(lengths)g(of)177 2513 y(pro)q(duct)f(\014les)f(and)g(\015ags)g(all)f
+(lines)h(longer)g(than)g(a)f(certain)i(limit)c(with)j(error)h(messages.)17
+b(Unlik)o(e)9 b(the)i(maxim)n(um)177 2563 y(input)17 b(line)f(length,)h(whic)
+o(h)g(can)g(v)n(ary)f(dynamically)e(throughout)j(the)g(input)g(\014le,)g(the)
+g(maxim)n(um)c(pro)q(duct)177 2613 y(\014le)18 b(line)e(length)i(remains)e
+(\014xed)i(throughout)f(the)h(generation)g(of)f(all)f(the)i(pro)q(duct)g
+(\014les.)29 b(The)18 b(maxim)n(um)177 2662 y(pro)q(duct)d(\014le)f(line)f
+(length)h(pragma)d(allo)o(ws)i(this)h(v)n(alue)f(to)g(b)q(e)i(set.)k(If)13
+b(there)i(is)f(more)e(than)i(one)g(suc)o(h)h(pragma)177 2712
+y(in)f(an)f(input)h(\014le,)f(the)i(pragmas)d(m)o(ust)h(all)g(sp)q(ecify)h
+(the)h(same)e(v)n(alue.)177 2835 y Fl(pragma_moll)20 b(=)h(ps)h
+("maximum_output_)o(line_)o(leng)o(th")d(s)i("=")g(s)h(numorinf)1042
+2940 y Fr(79)p eop
+%%Page: 80 81
+80 80 bop 177 42 a Fr(The)14 b(default)g(v)n(alue)f(is)h(80)f(c)o(haracters.)
+177 126 y(This)h(pragma)f(is)h(only)f(one)i(of)f(t)o(w)o(o)f(constrain)o(ts)i
+(on)f(the)h(length)f(of)g(the)h(lines)f(of)g(the)h(pro)q(duct)g(\014les.)20
+b(The)14 b Fl(+W)177 176 y Fr(command)e(line)j(option)f(also)g(con)o
+(tributes.)22 b(The)15 b(actual)f(v)n(alue)h(that)f(F)m(unnelW)m(eb)h(uses)h
+(is)e(the)i(minim)n(um)10 b(of)177 226 y(the)15 b(limits)c(sp)q(eci\014ed)16
+b(in)d(the)i(command)c(line)i(and)h(pragmas.)177 310 y(F)m(unnelW)m(eb)i(do)q
+(es)h(not)f(monitor)e(the)j(length)f(of)g(the)h(lines)f(of)f(its)h(other)h
+(output)g(\014les)f(\(journal)g(\014le,)g(listing)177 360 y(\014le,)e(do)q
+(cumen)o(tation)e(\014le\).)177 524 y Fo(3.10.11.4)48 b(T)o(yp)q(esetter)177
+639 y Fr(The)22 b Fl(typesetter)d Fr(pragma)g(allo)o(ws)h(the)i(user)h(to)e
+(sp)q(ecify)h(whether)g(the)g(input)f(\014le)g(is)g(supp)q(osed)i(to)e(b)q(e)
+177 689 y(t)o(yp)q(esetter-indep)q(ende)q(n)o(t,)15 b(or)c(whether)j(it)d
+(con)o(tains)h(commands)d(in)j(a)f(particular)h(t)o(yp)q(esetter)i(language.)
+i(The)177 739 y(pragma)c(has)i(the)h(follo)o(wing)c(syn)o(tax.)177
+879 y Fl(pragma_typesetter)18 b(=)k(ps)f("typesetter")f(s)h("=")g(s)h
+(\("none")e(|)i("tex"\))177 1020 y Fr(The)14 b(t)o(w)o(o)g(forms)e(of)i(the)g
+(pragma)e(lo)q(ok)h(lik)o(e)g(this.)177 1161 y Fl(@)22 b(typesetter)d(=)j
+(none)177 1210 y(@)g(typesetter)d(=)j(tex)177 1351 y Fr(A)17
+b(source)h(\014le)f(can)g(con)o(tain)f(more)g(than)h(one)g(t)o(yp)q(esetter)i
+(pragma,)c(but)i(they)h(m)o(ust)d(all)h(sp)q(ecify)h(the)h(same)177
+1401 y(v)n(alue.)g(The)c(default)f(is)h Fl(none)p Fr(.)j(The)e(t)o(yp)q
+(esetter)h(setting)e(a\013ects)h(t)o(w)o(o)f(things:)295 1485
+y Fo(Handling)k(of)h(free)f(text:)25 b Fr(If)17 b(the)g(t)o(yp)q(esetter)j
+(is)d(not)g Fl(none)p Fr(,)g(W)m(ea)o(v)o(e)f(writes)i(the)g(free)g(text)295
+1535 y Fm(dir)n(e)n(ctly)c Fr(to)i(the)g(do)q(cumen)o(tation)e(\014le)h
+(without)g(c)o(hanging)g(it)f(whatso)q(ev)o(er.)24 b(This)15
+b(means)g(that)295 1585 y(if)d(\(sa)o(y\))g Fl(\\centerline)e
+Fr(app)q(ears)j(in)f(the)h(input)f(\014le,)g(it)g(will)f(copied)i(directly)f
+(to)g(the)h(do)q(cumen-)295 1635 y(tation)k(\014le.)27 b(If)17
+b(the)h(t)o(yp)q(esetter)h(is)e Fl(none)p Fr(,)f(W)m(ea)o(v)o(e)h(in)o
+(tercepts)i(an)o(y)d(c)o(haracters)j(or)e(sequences)295 1685
+y(that)g(migh)o(t)d(ha)o(v)o(e)i(a)g(sp)q(ecial)g(meaning)f(to)h(the)h
+(target)f(t)o(yp)q(esetter)j(and)d(replaces)i(them)d(with)295
+1734 y(t)o(yp)q(esetter)h(commands)11 b(to)i(t)o(yp)q(eset)i(the)f(sequences)
+i(so)d(that)h(they)g(will)e(app)q(ear)i(as)f(they)h(do)f(in)295
+1784 y(the)k(input.)26 b(F)m(or)16 b(example,)f(if)g(the)i(t)o(yp)q(esetter)i
+(is)d Fl(none)g Fr(and)g(the)h(target)g(t)o(yp)q(esetter)i(is)d(T)1765
+1793 y(E)1788 1784 y(X,)295 1834 y(then)h(if)d Fl($)i Fr(\(the)g(T)581
+1843 y(E)604 1834 y(X)g(\\mathematics)d(mo)q(de")h(c)o(haracter\))j(app)q
+(ears)g(in)e(the)h(input)f(\014le,)h(it)f(will)295 1884 y(b)q(e)g(b)q(e)f
+(written)h(to)e(the)i(do)q(cumen)o(tation)e(\014le)g(as)h Fl(\\$)p
+Fr(.)295 1968 y Fo(Restrictions)f(on)j(the)g(target)f(t)o(yp)q(esetter:)i
+Fr(A)o(t)e(a)f(later)g(date,)h(di\013eren)o(t)g(w)o(ea)o(v)o(e)g(mo)q(dules)
+295 2018 y(migh)o(t)d(b)q(e)j(incorp)q(orated)g(in)o(to)f(F)m(unnelW)m(eb)g
+(to)g(cater)h(for)f(a)g(v)n(ariet)o(y)g(of)f(di\013eren)o(t)i(t)o(yp)q
+(esetters.)295 2068 y(If)k(this)f(happ)q(ens,)j(it)d(will)g(b)q(e)h(imp)q
+(ortan)o(t)e(to)i(ensure)h(that)f(t)o(yp)q(esetter-sp)q(eci\014c)j(source)e
+(\014les)295 2118 y(\(i.e.)e Fl(typesetter)e Fq(6)p Fr(=)j
+Fl(none)p Fr(\))e(are)i(not)g(pro)q(cessed)h(with)e(di\013eren)o(t)i(target)f
+(t)o(yp)q(esetters.)34 b(F)m(or)295 2168 y(example,)18 b(a)g(user)h(migh)o(t)
+d(inno)q(cen)o(tly)i(attempt)f(to)h(generate)i(a)e Fl(troff)f
+Fr(do)q(cumen)o(tation)g(\014le)295 2217 y(from)f(a)h(F)m(unnelW)m(eb)g
+(source)i(\014le)e(con)o(taining)f(a)h Fl(typesetter)j(=)i(tex)16
+b Fr(\(and)i(b)o(y)f(implication)295 2267 y(T)318 2276 y(E)341
+2267 y(X)j(con)o(trol)f(sequences\).)36 b(The)20 b(pragma)d(could)i(also)g(b)
+q(e)h(useful)f(for)g(catc)o(hing)g(t)o(yp)q(esetter)295 2317
+y(clashes)12 b(in)f(source)h(and)f(include)g(\014les.)18 b(The)11
+b(setting)h Fl(none)e Fr(is)h(sp)q(ecial)g(b)q(ecause)i(it)d(is)h(guaran)o
+(teed)295 2367 y(to)j(w)o(ork)g(with)f(an)o(y)h(future)g(target)g(t)o(yp)q
+(esetter.)177 2451 y(The)i(aim)d(of)h(all)g(this)h(is)g(to)g(ensure)h(that)g
+(an)o(y)e(t)o(yp)q(esetter)j(dep)q(endency)h(is)d(correctly)h(pro)q(claimed.)
+k(Because)177 2501 y Fl(none)12 b Fr(is)h(the)h(default)f(t)o(yp)q(esetter,)i
+(a)e(user)h(who)f(creates)i(a)e(source)i(\014le)e(without)g(a)f
+Fl(typesetter)20 b(=)i(x)13 b Fr(pragma)177 2551 y(will)d(so)q(on)i(\014nd)g
+(that)g(the)h(con)o(trol)e(sequences)j(they)f(are)f(inserting)g(in)o(to)f
+(the)h(source)h(do)q(cumen)o(t)f(are)g(app)q(earing)177 2601
+y(v)o(erbatim)i(in)h(the)g(prin)o(ted)h(do)q(cumen)o(tation!)21
+b(In)15 b(order)h(to)f(activ)n(ate)g(these)h(sequences,)i(they)e(will)d(b)q
+(e)j(forced)177 2651 y(to)e(add)g(a)f Fl(typesetter)f Fr(pragma,)g(th)o(us)i
+(making)d(the)k(dep)q(endency)h(explicit.)177 2735 y(It)f(ma)o(y)d(seem)j
+(strange)g(to)f(place)h(the)g Fl(typesetter)d Fr(setting)j(facilit)o(y)e
+(within)h(a)g(pragma)f(\()p Fl(@p)p Fr(\))h(when)h(there)h(is)177
+2785 y(a)e(separate)i(t)o(yp)q(esetting)g(construct)g(\()p
+Fl(@t)p Fr(\).)k(This)15 b(has)g(b)q(een)g(done)g(to)g(sustain)g(the)g(rule)g
+(of)f(th)o(um)o(b)f(that)i(sa)o(ys)177 2835 y(that)f(pragmas)e(do)i(not)g
+(participate)g(in)f(the)i(parser-lev)o(el)f(syn)o(tax,)g(but)g(t)o(yp)q
+(esetter)i(directiv)o(es)f(do.)1042 2940 y(80)p eop
+%%Page: 81 82
+81 81 bop 177 42 a Fd(3.10.12)55 b(F)-5 b(reestanding)19 b(T)n(yp)r(esetter)d
+(Directiv)n(es)177 141 y Fr(F)m(unnelW)m(eb)c(pro)o(vides)g(t)o(w)o(o)g
+(kinds)g(of)g(t)o(yp)q(esetter)j(directiv)o(e)e(to)f(assist)h(the)f(user)i
+(to)e(pro)q(duce)h(do)q(cumen)o(tation.)177 191 y(These)j(are)e
+Fo(inline)d Fr(and)j Fo(freestanding)o Fr(.)i(Unlik)o(e)e(pragmas,)e(eac)o(h)
+j(of)f(these)h(categories)g(of)f(directiv)o(e)h(partic-)177
+241 y(ipates)g(in)f(the)h(parser-lev)o(el)h(syn)o(tax)e(and)h(can)g(app)q
+(ear)g(only)e(in)i(certain)g(con)o(texts)g(\(see)h(the)g(parser)f(section\).)
+177 291 y(Inline)f(directiv)o(es)i(are)f(designed)g(to)f(b)q(e)h(used)h
+(within)e(paragraphs)g(to)h(alter)f(the)h(lo)q(ok)f(of)g(the)h(enclosed)h
+(text.)177 341 y(F)m(reestanding)f(t)o(yp)q(esetter)i(directiv)o(es)f(are)f
+(designed)h(to)e(app)q(ear)i(on)e(lines)h(of)f(their)h(o)o(wn)f(and)h(ha)o(v)
+o(e)g(a)f(bigger)177 390 y(t)o(yp)q(ographical)f(impact.)177
+463 y(The)18 b(syn)o(tax)f(of)f(freestanding)i(t)o(yp)q(esetter)i(directiv)o
+(es)e(is)f(almost)e(iden)o(tical)i(to)g(that)g(of)f(pragmas.)27
+b(All)16 b(the)177 513 y(same)11 b(syn)o(tax)i(rules)f(apply)g(\(except)i
+(that)e(the)h(actual)e(k)o(eyw)o(ords)i(are)f(di\013eren)o(t\).)19
+b(The)13 b(follo)o(wing)c(subsections)177 563 y(describ)q(e)16
+b(the)e(four)g(t)o(yp)q(esetter)i(directiv)o(es)f(a)o(v)n(ailable.)177
+673 y Fl(ftd)21 b(=)h(ftd_newpage)d(|)j(ftd_toc)e(|)i(ftd_vskip)e(|)h
+(ftd_title)177 723 y(ts)43 b(=)22 b("@t)f(")177 853 y Fo(3.10.12.1)48
+b(New)17 b(P)o(age)177 953 y Fr(The)d(new)h(page)f(pragma)e(is)h(a)h(t)o(yp)q
+(esetting)h(pragma)d(with)h(the)i(follo)o(wing)c(syn)o(tax.)177
+1063 y Fl(ftd_newpage)20 b(=)h(ts)h("new_page")177 1174 y Fr(It)14
+b(only)f(form)f(lo)q(oks)i(lik)o(e)f(this.)177 1284 y Fl(@t)22
+b(new_page)177 1394 y Fr(Its)15 b(sole)f(e\013ect)i(is)e(to)g(cause)i(a)e
+(\\skip)g(to)g(a)g(new)g(page")g(command)e(to)i(b)q(e)h(inserted)h(in)o(to)d
+(the)i(do)q(cumen)o(tation)177 1444 y(\014le.)21 b(The)15 b(new)h(page)e
+(command)f(is)h(suc)o(h)i(that)f(if)f(the)h(t)o(yp)q(esetter)i(is)e(already)g
+(at)f(the)i(top)e(of)h(a)f(page,)h(it)f(will)177 1494 y(skip)g(to)g(the)g
+(top)g(of)f(the)i(next)f(page.)177 1624 y Fo(3.10.12.2)48 b(T)l(able)15
+b(of)g(Con)o(ten)o(ts)177 1724 y Fr(The)f(new)h(page)f(pragma)e(is)h(a)h(t)o
+(yp)q(esetting)h(pragma)d(with)h(the)i(follo)o(wing)c(syn)o(tax.)177
+1834 y Fl(ftd_toc)21 b(=)g(ts)g("table_of_contents")177 1944
+y Fr(It)14 b(only)f(form)f(lo)q(oks)i(lik)o(e)f(this.)177 2055
+y Fl(@t)22 b(table_of_conten)o(ts)177 2165 y Fr(Its)16 b(sole)f(e\013ect)h
+(is)f(to)g(instruct)h(W)m(ea)o(v)o(e)f(to)f(insert)i(a)f(table)g(of)f(con)o
+(ten)o(ts)i(at)f(this)g(p)q(oin)o(t)g(in)f(the)i(prin)o(ted)g(do)q(cu-)177
+2215 y(men)o(tation.)g(This)e(pragma)e(do)q(es)j(not)f(skip)f(to)h(a)g(top)g
+(of)f(a)g(new)i(page)f(\014rst.)177 2345 y Fo(3.10.12.3)48
+b(V)l(ertical)14 b(Skip)177 2445 y Fr(The)e(v)o(ertical)f(skip)g(pragma)f(is)
+h(a)g(t)o(yp)q(esetting)i(pragma)c(that)j(instructs)g(W)m(ea)o(v)o(e)f(to)g
+(insert)i(a)e(sp)q(eci\014ed)i(amoun)o(t)177 2495 y(of)g(v)o(ertical)h(space)
+h(in)o(to)e(the)i(do)q(cumen)o(tation.)i(The)d(pragma)e(has)i(the)g(follo)o
+(wing)e(syn)o(tax.)177 2605 y Fl(ftd_vskip)20 b(=)i(ts)f("vskip")f(s)i
+(number)f(s)g("mm")177 2715 y Fr(F)m(or)14 b(example:)177 2825
+y Fl(@t)22 b(vskip)e(26)i(mm)1042 2940 y Fr(81)p eop
+%%Page: 82 83
+82 82 bop 177 42 a Fo(3.10.12.4)48 b(Title)177 147 y Fr(The)14
+b(title)g(pragma)e(is)i(a)f(t)o(yp)q(esetting)i(pragma)d(with)i(the)g(follo)o
+(wing)e(syn)o(tax.)177 269 y Fl(ftd_title)20 b(=)i(ts)f("title")f(s)i(font)f
+(s)h(alignment)d(text)177 319 y(font)130 b(=)22 b("normalfont")d(|)j
+("titlefont")d(|)j("smalltitlefont")177 369 y(alignment)e(=)i("left")e(|)i
+("centre")e(|)i("right")177 419 y(text)130 b(=)22 b("""")f({printable_char})d
+("""")177 541 y Fr(It's)f(e\013ect)i(is)d(to)h(instruct)h(W)m(ea)o(v)o(e)e
+(to)h(insert)h(a)e(single)h(line)f(in)o(to)g(the)i(prin)o(ted)f(do)q(cumen)o
+(tation)f(con)o(taining)177 591 y(the)e(sp)q(eci\014ed)i(text)e(set)g(in)f
+(the)i(sp)q(eci\014ed)g(fon)o(t)e(and)g(aligned)g(in)g(the)h(sp)q(eci\014ed)i
+(manner.)h(The)d(double)f(quotes)177 641 y(delimiting)g(the)j(text)g(are)f
+(for)h(sho)o(w)f(only;)g(if)f(y)o(ou)h(w)o(an)o(t)g(to)g(put)h(a)f(double)g
+(quote)h(in)f(the)h(string,)f(y)o(ou)g(don't)177 691 y(need)g(to)f(double)g
+(them.)177 768 y(Here)h(is)f(an)g(example)e(of)i(the)g(pragma.)177
+890 y Fl(@t)22 b(title)e(smalltitlefont)f(centre)i("How)g(to)g(Flip)g(a)h
+(Bit")177 1039 y Fd(3.10.13)55 b(Scanner/P)n(arser)20 b(In)n(terface)177
+1144 y Fr(If)12 b(the)g(scanner)i(terminates)d(without)h(an)o(y)f(errors,)i
+(con)o(trol)f(is)g(passed)h(to)f(the)g(parser.)19 b(The)12
+b(parser)h(parses)g(the)177 1194 y(tok)o(en)h(list)f(generated)i(b)o(y)f(the)
+g(scanner.)19 b(The)c(tok)o(en)e(list)h(consists)g(of)f(text)i(scraps,)f
+(freestanding)g(t)o(yp)q(esetter)177 1244 y(directiv)o(es,)h(and)e(sp)q
+(ecial)h(sequence)i(tok)o(ens.)177 1321 y(The)g(user)g(should)f(b)q(ear)h(in)
+e(mind)f(that)j Fm(the)g(sc)n(anner)g(\014nishes)h(running)f(b)n(efor)n(e)g
+(the)g(p)n(arser)f(starts)g(running.)177 1371 y Fr(This)g(means)g(that)g(the)
+g(scanner)i(cannot)e(b)q(e)h(in\015uenced)g(in)f(an)o(y)g(w)o(a)o(y)f(b)o(y)h
+(higher)g(order)h(structures)i(suc)o(h)e(as)177 1421 y(the)d(parser)g(migh)o
+(t)d(parse.)18 b(F)m(or)12 b(example,)f(it)g(is)h(imp)q(ossible)f(to)h(write)
+g(a)g(F)m(unnelW)m(eb)f(macro)g(to)h(include)g(a)g(\014le,)177
+1471 y(or)i(insert)h(a)e Fl(vskip)g Fr(pragma)f(in)o(to)h(the)i(input)e
+(text.)177 1641 y Fi(3.11)70 b(P)n(arser)177 1760 y Fr(By)19
+b(the)f(time)f(the)i(parser)g(starts,)h(the)f(scanner)h(has)e(completely)f
+(terminated.)30 b(A)o(t)18 b(this)h(p)q(oin)o(t,)f(it)g(is)g(not)177
+1810 y(p)q(ossible)d(for)f(an)o(y)g(more)f(\014les)i(to)f(b)q(e)h(included,)f
+(and)h(sp)q(ecial)f(c)o(haracters)j(are)d(no)h(longer)f(presen)o(t)i(to)e
+(confuse)177 1860 y(things.)29 b(All)17 b(that)h(remains)e(is)i(a)f(list)g
+(of)g Fo(text)j(tok)o(ens)p Fr(,)c Fo(sp)q(ecial)j(tok)o(ens)p
+Fr(,)e(and)g Fo(t)o(yp)q(esetter)h(directiv)o(e)177 1910 y(tok)o(ens)p
+Fr(.)f(T)m(ext)c(tok)o(ens)i(consist)f(en)o(tirely)g(of)f(sequences)j(of)e
+(prin)o(table)f(c)o(haracters)j(and)d(end)h(of)g(line)f(mark)o(ers.)177
+1959 y(Sp)q(ecial)g(tok)o(ens)h(represen)o(t)h(the)f(sp)q(ecial)f(sequences)j
+(that)d(the)h(scanner)g(found)f(in)f(the)i(input)f(\014le.)18
+b(T)o(yp)q(esetter)177 2009 y(directiv)o(e)12 b(tok)o(ens)h(represen)o(t)h
+(the)e(freestanding)g(t)o(yp)q(esetter)i(directiv)o(es)f(that)f(the)g
+(scanner)h(encoun)o(tered.)19 b(The)177 2059 y(parser)13 b(consumes)f(the)g
+(tok)o(en)g(list)g(and)f(builds)h(a)f(macro)g(table)g(that)h(is)g(later)g
+(used)g(to)g(generate)h(pro)q(duct)g(\014les.)177 2109 y(It)h(also)f
+(constructs)j(a)e(do)q(cumen)o(t)f(list)h(that)g(is)f(used)i(to)f(generate)h
+(the)g(do)q(cumen)o(tation)d(\014le.)177 2186 y(The)i(syn)o(tax)g(rules)h
+(app)q(earing)f(in)f(the)h(follo)o(wing)e(sections)j(refer)g(to)e(the)i(tok)o
+(en)f(list.)177 2335 y Fd(3.11.1)55 b(High)19 b(Lev)n(el)e(Structure)177
+2440 y Fr(A)o(t)c(the)g(highest)g(lev)o(el,)f(the)h(F)m(unnelW)m(eb)f(parser)
+i(parses)f(the)h(input)e(\014le)g(\(tok)o(en)h(list\))f(in)o(to)g(a)h
+(sequence)h(of)e(text)177 2490 y(scraps,)j(macro)d(de\014nitions,)i(and)g(t)o
+(yp)q(esetter)i(directiv)o(es.)177 2613 y Fl(input_file)k(=)h({text)g(|)h
+(macro)f(|)g(directive})177 2735 y Fr(All)f(three)i(of)e(these)i(kinds)f(of)f
+(comp)q(onen)o(ts)g(con)o(tribute)h(to)g(the)g(do)q(cumen)o(tation)e(\014le,)
+j(but)f(only)f(macro)177 2785 y(de\014nitions)15 b(con)o(tribute)g(to)f(the)h
+(pro)q(duct)h(\014les.)k(If)14 b(all)g(the)h(free)g(text)g(and)g(directiv)o
+(es)g(w)o(ere)h(remo)o(v)o(ed)d(from)g(a)177 2835 y(F)m(unnelW)m(eb)h(input)f
+(\014le,)h(the)g(pro)q(duct)h(\014les)f(w)o(ould)f(not)h(b)q(e)h(a\013ected.)
+1042 2940 y(82)p eop
+%%Page: 83 84
+83 83 bop 177 42 a Fd(3.11.2)55 b(F)-5 b(ree)19 b(T)-5 b(ext)177
+142 y Fo(F)l(ree)18 b(text)e Fr(is)g(an)o(y)f(text)i(that)g(is)f(not)g(part)g
+(of)g(a)g(macro)f(de\014nition)g(or)i(a)f(directiv)o(e.)25
+b(A)16 b(scrap)i(of)d(free)i(text)177 192 y(consists)j(of)d(a)h(sequence)j
+(of)d(items)f(dra)o(wn)h(from)f(the)i(follo)o(wing)d(list:)26
+b(non-sp)q(ecial)18 b(prin)o(table)g(c)o(haracters,)177 241
+y(insert-eol)f(sp)q(ecial)g(sequences,)j(insert)d(sp)q(ecial)g(c)o(haracter)h
+(sp)q(ecial)f(sequences,)i(insert)f(arbitrary)e(c)o(haracter)177
+291 y(sp)q(ecial)e(sequence.)177 403 y Fl(free_text)129 b(=)22
+b(ordinary_text)177 452 y(ordinary_text)41 b(=)22 b({ordinary_char)d(|)i(eol)
+g(|)h(text_special}+)177 502 y(text_special)63 b(=)22 b("@+")f(|)g("@@")g(|)h
+("@^")f(char_spec)177 552 y(ordinary_char)41 b(=)22 b(")f(".."~"-special)177
+664 y Fr(An)14 b(example)f(of)g(some)g(rather)i(messy)e(free)i(text)g(is)e
+(as)h(follo)o(ws:)177 775 y Fl(This@@)21 b(is)g(a)h(very@+)e(messy)177
+825 y(@^D\(009\)chunk)f(of)j(text)f(indeed.)177 875 y(But)g(FunnelWeb)f
+(still)h(views)g(it)g(as)177 925 y(a)h(single)e(chunk)h(of)g(text.)177
+1036 y Fr(F)m(unnelW)m(eb)16 b(nev)o(er)h(sees)i(t)o(w)o(o)c(text)j(c)o(h)o
+(unks)f(next)g(to)f(eac)o(h)h(other)g(in)f(the)h(input;)g(they)g(are)g(alw)o
+(a)o(ys)e(merged)177 1086 y(in)o(to)e(a)h(single)f(text)i(tok)o(en.)177
+1159 y(The)j(free)f(text)h(in)f(an)g(input)f(\014le)h(do)q(es)h(not)f
+(a\013ect)h(the)g(pro)q(duct)g(\014les.)28 b(Ho)o(w)o(ev)o(er,)17
+b(b)o(y)g(default,)g(it)g(app)q(ears)177 1209 y(in)g(the)g(prin)o(ted)h(do)q
+(cumen)o(tation)e(exactly)h(as)g(it)f(is)h(giv)o(en)g(in)f(the)i(input)f
+(\014le,)g(except)i(that)e(it)f(is)h(\014lled)g(and)177 1259
+y(justi\014ed)d(in)o(to)g(paragraphs.)177 1332 y(An)o(y)20
+b(prin)o(table)f(c)o(haracter)i(or)e(particular)g(sequence)j(of)d(c)o
+(haracters)i(ma)o(y)d(app)q(ear)i(in)f(the)h(free)g(text)g(of)f(a)177
+1382 y(do)q(cumen)o(t.)30 b(F)m(unnelW)m(eb)18 b(ensures)i(that)e(they)g
+(will)f(app)q(ear)h(exactly)h(as)f(giv)o(en)f(in)h(the)g(input)g(\014le,)h
+(ev)o(en)g(if)177 1432 y(they)c(happ)q(en)g(to)f(b)q(e)g(escap)q(e)i(c)o
+(haracters)g(or)e(commands)e(in)i(the)g(target)h(t)o(yp)q(esetter.)21
+b(Ho)o(w)o(ev)o(er,)14 b(F)m(unnelW)m(eb)177 1482 y(also)j(pro)o(vides)h(a)g
+(sp)q(ecial)g(mo)q(de)e(that)i(allo)o(ws)f(this)g(censoring)i(to)e(b)q(e)i(o)
+o(v)o(erridden.)30 b(See)18 b(Section)g(for)g(more)177 1532
+y(information.)177 1671 y Fd(3.11.3)55 b(T)n(yp)r(esetter)17
+b(Directiv)n(es)177 1771 y Fr(F)m(unnelW)m(eb)e(pro)o(vides)h(a)g(v)n(ariet)o
+(y)f(of)g(t)o(yp)q(esetter)j(directiv)o(es)e(to)g(assist)g(the)g(user)h(to)f
+(t)o(yp)q(eset)h(the)f(do)q(cumen)o(t)177 1821 y(in)h(a)g(t)o(yp)q
+(esetter-indep)q(ende)q(n)o(t)j(w)o(a)o(y)m(.)28 b(These)18
+b(are)g(divided)f(in)o(to)g Fo(freestandin)o(g)g(t)o(yp)q(esetter)h(directiv)
+o(es)177 1871 y Fr(\(ftd\))c(and)g Fo(inline)f(t)o(yp)q(esetter)h(directiv)o
+(es)d Fr(\(itd\).)18 b(The)d(in)o(ternal)f(syn)o(tax)g(of)f(the)i
+(freestanding)f(t)o(yp)q(esetter)177 1920 y(directiv)o(es)g(has)g(already)f
+(b)q(een)h(discussed)h(in)e(the)h(scanner)h(section.)j(The)c(follo)o(wing)d
+(syn)o(tax)i(rule)g(de\014nes)i(the)177 1970 y(con)o(text)g(in)e(whic)o(h)h
+(these)h(constructs)h(can)e(app)q(ear.)177 2082 y Fl(directive)20
+b(=)i(ftd)f(|)g(itd)177 2131 y(itd)152 b(=)22 b(section)e(|)i(literal)e(|)i
+(emphasis)177 2243 y Fr(The)14 b(remainder)g(of)f(this)h(section)h(describ)q
+(es)h(the)e(inline)f(t)o(yp)q(esetter)j(directiv)o(es.)177
+2374 y Fo(3.11.3.1)48 b(Section)177 2474 y Fr(The)19 b(section)f(directiv)o
+(e)h(pro)o(vides)f(a)f(w)o(a)o(y)h(for)f(the)i(user)g(to)e(structure)j(the)f
+(program)d(and)i(do)q(cumen)o(tation)177 2524 y(in)o(to)e(a)g(hierarc)o
+(hical)h(tree)h(structure,)g(just)f(as)g(in)f(most)f(large)i(do)q(cumen)o
+(ts.)26 b(A)16 b(section)i(construct)g(consists)177 2574 y(of)f(a)g
+(case-insensitiv)o(e)h(iden)o(tifying)e(letter,)j(whic)o(h)e(determines)h
+(the)g(absolute)f(lev)o(el)g(of)g(the)h(section)g(in)f(the)177
+2623 y(do)q(cumen)o(t,)c(and)h(an)f(optional)g(section)i(name,)d(whic)o(h)i
+(has)g(exactly)g(the)g(same)f(syn)o(tax)h(as)g(a)f(macro)g(name.)177
+2735 y Fl(section)64 b(=)22 b("@")f(levelchar)f([name])177
+2785 y(levelchar)g(=)i("A")f(|)g("B")h(|)f("C")g(|)h("D")f(|)h("E")f(|)439
+2835 y("a")g(|)g("b")h(|)f("c")g(|)h("d")f(|)h("e")1042 2940
+y Fr(83)p eop
+%%Page: 84 85
+84 84 bop 177 42 a Fr(The)15 b(section)f(construct)i(is)e(not)g(quite)g
+(\\inline")f(as)h(it)g(m)o(ust)f(app)q(ear)h(only)f(at)h(the)h(start)g(of)e
+(a)h(line.)k(Ho)o(w)o(ev)o(er,)177 91 y(unlik)o(e)10 b(the)h(\\)p
+Fl(@i)p Fr(",)f(\\)p Fl(@p)p Fr(",)g(and)g(\\)p Fl(@t)p Fr(")g(constructs,)j
+(it)d(do)q(es)h(not)g(consume)f(the)h(remainder)f(of)g(the)h(line)g
+(\(although)177 141 y(it)j(w)o(ould)f(b)q(e)h(silly)f(to)h(place)g(an)o
+(ything)f(on)g(the)i(same)e(line)g(an)o(yw)o(a)o(y\).)177 218
+y(F)m(unnelW)m(eb)d(pro)o(vides)h(\014v)o(e)g(lev)o(els)g(of)f(sections,)i
+(ranging)e(from)f(the)i(highest)g(lev)o(el)f(of)h Fl(A)f Fr(\(lik)o(e)g(a)h
+(L)1691 213 y Fk(a)1710 218 y Fr(T)1733 231 y(E)1756 218 y(X)g(c)o(hapter\))
+177 268 y(to)k(the)h(lo)o(w)o(est)g(lev)o(el)f(of)g Fl(E)g
+Fr(\(lik)o(e)g(a)g(L)752 263 y Fk(a)771 268 y Fr(T)794 281
+y(E)817 268 y(X)h(subsubsubsection\).)25 b(F)m(unnelW)m(eb)14
+b(input)i(\014les)f(need)i(not)e(con)o(tain)177 318 y(an)o(y)e(sections)i(at)
+e(all,)f(but)i(if)f(they)h(do,)f(the)h(\014rst)g(section)h(m)o(ust)d(b)q(e)i
+(at)g(lev)o(el)f Fl(A)p Fr(,)g(and)g(follo)o(wing)e(sections)k(m)o(ust)177
+368 y(not)i(skip)g(hierarc)o(hical)g(lev)o(els)h(\(e.g.)e(an)h
+Fl(@D)g Fr(cannot)g(follo)o(w)f(an)h Fl(@C)p Fr(\).)f(F)m(unnelW)m(eb)h
+(generates)i(an)e(error)h(if)e(a)177 418 y(lev)o(el)e(is)f(skipp)q(ed.)177
+495 y(All)c(section)i Fm(must)f Fr(ha)o(v)o(e)g(names)f(asso)q(ciated)i(with)
+e(them,)h(but)g(for)g(con)o(v)o(enience,)h(the)g(section)g(name)d(is)i
+(optional)177 545 y(if)16 b(the)i(section)g(con)o(tains)f(one)g(or)g(more)g
+(macro)e(de\014nitions)j(\(i.e.)e(at)h(least)g(one)g(macro)f(de\014nition)h
+(app)q(ears)177 594 y(b)q(et)o(w)o(een)i(the)f(section)g(construct)h(in)e
+(question)g(and)h(the)g(next)g(section)g(construct)h(in)e(the)g(input)h
+(\014le.\).)28 b(In)177 644 y(this)19 b(case,)g(the)g(section)g
+Fm(inherits)f Fr(the)h(name)e(of)h(the)h(\014rst)g(macro)e(de\014ned)i(in)f
+(the)h(section.)32 b(This)18 b(feature)177 694 y(streamlines)c(the)g(input)g
+(\014le,)f(a)o(v)o(oiding)f(duplicate)i(name)f(inconsistencies.)177
+771 y(An)o(y)g(sequence)i(of)d(prin)o(table)g(c)o(haracters)j(can)e(b)q(e)g
+(used)h(in)e(the)i(section)f(name,)e(ev)o(en)j(the)f(target)h(t)o(yp)q
+(esetter's)177 821 y(escap)q(e)i(sequence)g(\(e.g.)d(in)g(T)643
+830 y(E)667 821 y(X,)g(\\)p Fl(\\)p Fr("\).)177 898 y(The)h(follo)o(wing)e
+(example)g(demonstrates)j(the)f(section)h(construct.)177 1021
+y Fl(@A@<Life)20 b(Simulation@>)177 1120 y(This)h(is)h(the)f(main)g
+(simulation)e(module)i(for)g(planet)g(earth,)f(simulated)g(down)h(to)g(the)
+177 1170 y(molecular)f(level.)h(This)g(is)g(a)h(REALLY)e(big)h(program.)f(I)i
+(mean)f(really)g(big.)g(I)g(mean,)177 1220 y(if)h(you)f(thought)f(the)h
+(X-Windows)f(source)h(code)g(was)g(big,)g(you're)f(in)i(for)f(a)h(shock...)
+177 1320 y(@B)g(We)f(start)g(by)g(looking)f(at)i(the)f(code)g(for)g(six)g
+(legged)g(stick)g(insects)f(as)h(they)177 1370 y(form)g(a)h(good)f(example)f
+(of)h(a)h(typical)e(object-oriented)f(animal)i(implementation.)177
+1469 y(@$@<Six)g(Legged)f(Stick)h(Insects@>@{@-)177 1519 y(slsi.creep;)f
+(slsi.crawl;)f(slsi.creep;@})177 1641 y Fr(In)c(the)h(ab)q(o)o(v)o(e)f
+(example,)e(the)j(name)e(for)g(the)i(lev)o(el)f(A)g(section)h(is)f(pro)o
+(vided)g(explicitly)m(,)e(while)i(the)g(name)f(for)177 1691
+y(the)h(lev)o(el)e(B)h(section)h(will)d(b)q(e)j(inherited)f(from)e(the)j
+(macro)e(name.)177 1832 y Fo(3.11.3.2)48 b(Literal)13 b(Directiv)o(e)177
+1937 y Fr(Exp)q(erience)j(has)d(sho)o(wn)h(that)g(one)f(of)g(the)h(most)f
+(common)e(t)o(yp)q(esetting)j(requiremen)o(t)g(is)f(that)h(of)f(b)q(eing)g
+(able)177 1987 y(to)j(t)o(yp)q(eset)h(small)d(program)g(fragmen)o(ts)g(in)i
+(the)g(middle)e(of)h(the)i(do)q(cumen)o(ting)d(free)j(text.)24
+b(T)o(ypically)14 b(there)177 2037 y(is)g(a)g(frequen)o(t)h(need)g(to)f
+(refer)h(to)f(program)f(iden)o(ti\014ers,)h(and)g(it)g(assists)h(the)g
+(reader)g(to)f(ha)o(v)o(e)g(suc)o(h)h(iden)o(ti\014ers)177
+2087 y(t)o(yp)q(eset)g(in)d(the)i(same)e(manner)g(as)h(the)h(program)d(text)j
+(in)e(the)i(macro)d(de\014nition.)18 b(F)m(unnelW)m(eb)12 b(V1)h(de\014ned)h
+(a)177 2136 y(T)200 2145 y(E)223 2136 y(X)f(macro)f(for)h(this)g(\(called)g
+Fl(p)p Fr(\))g(that)g(simply)e(t)o(yp)q(eset)j(its)f(argumen)o(t)f(in)h
+Fl(tt)21 b(font)p Fr(.)c(This)c(pro)o(v)o(ed)g(so)g(useful,)177
+2186 y(that)h(the)h(facilit)o(y)d(has)i(b)q(een)h(made)e(t)o(yp)q
+(esetter-indep)q(enden)o(t)k(in)c(F)m(unnelW)m(eb)h(V3.)177
+2263 y(T)m(o)f(sp)q(ecify)h(that)f(some)g(text)h(b)q(e)g(t)o(yp)q(eset)h(in)e
+Fl(tt)21 b(font)p Fr(,)12 b(enclose)j(the)f(text)g(in)f(curly)g(brace)i(sp)q
+(ecial)e(sequences)177 2313 y(as)h(follo)o(ws.)177 2436 y Fl(literal)21
+b(=)g("@{")g(ordinary_text)e("@}")177 2558 y Fr(As)10 b(in)g(macro)e(names,)h
+(section)i(names,)e(and)h(macro)e(b)q(o)q(dies,)j(the)f(text)g(con)o(tained)g
+(within)f(the)h(literal)f(construct)177 2608 y(is)16 b(protected)j(b)o(y)d(F)
+m(unnelW)m(eb)g(from)f(an)o(y)h(non-literal)f(in)o(terpretation)i(b)o(y)f
+(the)h(t)o(yp)q(esetter)i(and)d(the)h(user)h(is)177 2658 y(free)d(to)e
+(enclose)i Fm(any)f Fr(text)g(co)o(v)o(ered)h(b)o(y)e(the)h(de\014nition)f
+Fl(ordinary)p 1252 2658 14 2 v 14 w(text)p Fr(.)k(F)m(unnelW)m(eb)c(guaran)o
+(tees)i(that,)e(no)177 2708 y(matter)f(what)h(the)g(text)g(is,)f(it)g(will)g
+(b)q(e)h(t)o(yp)q(eset)h(in)e Fl(tt)21 b(font)12 b Fr(exactly)h(as)f(it)h
+(app)q(ears.)18 b(Ho)o(w)o(ev)o(er,)13 b(the)g(text)g(will)177
+2757 y(b)q(e)i(\014lled)e(and)h(justi\014ed)g(in)o(to)f(a)h(paragraph)f(as)h
+(usual.)177 2835 y(Here)h(is)f(an)g(example)e(of)i(the)g(use)h(of)e(the)i
+(construct:)1042 2940 y(84)p eop
+%%Page: 85 86
+85 85 bop 177 42 a Fl(@C)22 b(The)f(@{WOMBAT@})e(\(Waste)i(Of)g(Money,)g
+(Brains,)f(And)h(Time\))g(function)177 91 y(calls)g(the)g(@{kangaroo@})e
+(input)i(function)f(which)h(has)g(been)177 141 y(known)g(to)g(cause)g
+(keybounce.)177 191 y(This)g(keybounce)f(can)h(be)h(dampened)e(using)h(the)g
+(@{wet_sloth@})e(subsystem.)177 322 y Fo(3.11.3.3)48 b(Emphasis)14
+b(Directiv)o(e)177 422 y Fr(The)g(emphasis)e(directiv)o(e)i(is)f(v)o(ery)h
+(similar)d(to)i(the)h(literal)e(directiv)o(e)i(except)h(that)e(it)g(causes)i
+(its)e(argumen)o(t)f(to)177 472 y(b)q(e)h(t)o(yp)q(eset)i(in)d(an)g
+(emphasised)h(manner)e(\(e.g.)i(italics\).)k(Lik)o(e)12 b(the)h(literal)f
+(directiv)o(e,)h(the)g(emphasis)f(directiv)o(e)177 522 y(protects)k(its)e
+(text)g(argumen)o(t.)177 633 y Fl(emphasise)20 b(=)i("@/")f(ordinary_text)e
+("@/")177 745 y Fr(Example:)177 857 y Fl(@C)j(What)f(you)g(@/really@/)e
+(need,)i(of)h(course,)e(is)h(a)h(@/great@/,)e(@/big@/,)177
+906 y(network)h(with)f(packets)h(just)g(flying)f(@/everywhere@/.)177
+956 y(This)h(section)f(implements)g(an)i(interface)177 1006
+y(to)g(such)f(a)g(@/humungeous@/)e(network.)177 1145 y Fd(3.11.4)55
+b(Macros)177 1245 y Fr(The)19 b(third)f(category)h(of)e(construct)j(app)q
+(earing)e(at)g(the)h(highest)f(syn)o(tactic)h(lev)o(el)f(in)f(a)h(F)m(unnelW)
+m(eb)g(input)177 1295 y(\014le)e(is)f(the)h(macro)e(de\014nition.)23
+b(A)15 b(macro)f(de\014nition)i(binds)f(a)g(unique)h Fo(macro)h(name)e
+Fr(to)g(a)h Fo(macro)h(b)q(o)q(dy)177 1345 y Fr(con)o(taining)e(an)g
+Fo(expression)e Fr(consisting)j(of)f(text,)h(calls)f(to)h(other)g(macros,)e
+(and)i(formal)d(parameters.)23 b(The)177 1395 y(syn)o(tax)14
+b(for)g(a)f(macro)g(de\014nition)g(is)h(as)g(follo)o(ws:)177
+1507 y Fl(macro)21 b(=)h(\("@O")e(|)i("@$"\))f(name)g([formal_paramet)o
+(er_li)o(st])352 1556 y(["@Z"])f(["@M"])h(["==")f(|)i("+="])f("@{")g
+(expression)e("@}")177 1668 y Fr(The)i(complexit)o(y)d(of)h(the)i(macro)d
+(de\014nition)i(syn)o(tax)g(is)g(mostly)e(to)i(enable)g(the)h(user)g(to)e
+(attac)o(h)h(v)n(arious)177 1718 y(attributes)d(to)f(the)g(macro.)23
+b(If)16 b(the)g(user)h(c)o(ho)q(oses)g Fl(@O)p Fr(,)e(then)i(the)f(macro)f
+(cannot)h(b)q(e)h(called,)f(but)g(is)f(instead)177 1768 y(attac)o(hed)g(to)f
+(a)g(pro)q(duct)h(\014le.)k(If)14 b(the)h(user)h(c)o(ho)q(oses)f
+Fl(@$)p Fr(,)e(then)i(the)g(macro)e(is)h(an)g(ordinary)g(macro)f
+(de\014nition)177 1817 y(that)h(is)g(not)g(attac)o(hed)g(to)g(a)f(\014le.)177
+1891 y(By)g(default,)f(a)g(non-\014le)g(macro)f(m)o(ust)g(b)q(e)i(in)o(v)o
+(ok)o(ed)f(exactly)g(once)h(b)o(y)f(one)h(other)g(macro.)j(Macros)d(that)g
+(aren't)177 1941 y(are)19 b(\015agged)e(with)h(errors)i(b)o(y)d(the)i(F)m
+(unnelW)m(eb)f(analyser.)30 b(Ho)o(w)o(ev)o(er,)19 b(if)e(the)i(user)g(uses)g
+(the)g Fl(@Z)f Fr(sequence)177 1990 y(in)f(the)h(macro)e(de\014nition,)h(the)
+h(macro)e(is)h(then)h(p)q(ermitted)f(to)g(b)q(e)h(in)o(v)o(ok)o(ed)f(zero)h
+(times,)e(as)i(w)o(ell)e(as)i(once.)177 2040 y(Similarly)l(,)13
+b(if)i(the)i(user)g(uses)g(the)g Fl(@M)e Fr(sequence)j(in)e(the)g(macro)f
+(de\014nition,)h(the)g(macro)f(is)h(p)q(ermitted)f(to)h(b)q(e)177
+2090 y(called)f(man)o(y)e(times)h(as)h(w)o(ell)f(as)h(once.)22
+b(If)15 b(b)q(oth)g Fl(@Z)f Fr(and)h Fl(@M)g Fr(are)g(presen)o(t)h(then)g
+(the)g(macro)d(is)i(p)q(ermitted)g(to)177 2140 y(b)q(e)g(in)o(v)o(ok)o(ed)e
+(zero,)h(one,)g(or)f(man)o(y)f(times.)177 2213 y(The)j(purp)q(ose)g(of)e
+(enforcing)h(the)h(default)f(\\exactly)g(one)g(call")f(rule)i(is)f(to)f
+(\015ag)h(pieces)h(of)f(co)q(de)h(that)f(the)h(user)177 2263
+y(ma)o(y)d(ha)o(v)o(e)i(de\014ned)g(in)g(a)f(macro)g(but)h(not)f(ho)q(ok)o
+(ed)h(in)o(to)f(the)h(rest)h(of)e(the)i(program.)h(Exp)q(erience)g(sho)o(ws)e
+(that)177 2313 y(this)k(is)f(a)g(common)e(error.)29 b(Similarly)m(,)14
+b(it)j(can)h(b)q(e)g(dangerous)g(to)f(m)o(ultiply)e(in)o(v)o(ok)o(e)i(a)g
+(macro)f(in)o(tended)i(to)177 2363 y(b)q(e)h(in)o(v)o(ok)o(ed)e(only)h(once.)
+31 b(F)m(or)18 b(example,)g(it)f(ma)o(y)g(b)q(e)h(dangerous)h(to)f(in)o(v)o
+(ok)o(e)f(a)h(scrap)h(of)f(non-idemp)q(oten)o(t)177 2413 y(initialization)12
+b(co)q(de)j(in)e(t)o(w)o(o)h(di\013eren)o(t)h(parts)g(of)f(the)g(main)e
+(function)i(of)g(a)g(program!)j(Ho)o(w)o(ev)o(er,)d(F)m(unnelW)m(eb)177
+2462 y(will)h(not)i(generate)h(an)f(error)g(if)f(a)h(macro)e(without)h
+Fl(@M)h Fr(is)f(called)h(b)o(y)f(another)h(macro)f(that)h(is)f(called)h(more)
+177 2512 y(than)d(once.)177 2586 y(If)f(the)h(text)g(string)g
+Fl(==)f Fr(\(or)h(nothing\))e(follo)o(ws)g(the)i(macro)f(name,)f(the)i
+(expression)g(that)g(follo)o(ws)e(is)h(the)h(en)o(tire)177
+2635 y(text)j(of)e(the)i(macro)e(b)q(o)q(dy)m(.)24 b(If)15
+b(the)i(text)g(string)f Fl(+=)f Fr(follo)o(ws)g(the)h(macro)f(name,)g(then)i
+(more)e(than)h(one)g(suc)o(h)177 2685 y(de\014nition)d(is)f(allo)o(w)o(ed)g
+(\(but)h(not)g(required\))h(in)e(the)i(do)q(cumen)o(t)e(and)h(the)h(b)q(o)q
+(dy)f(of)f(the)h(macro)f(consists)i(of)e(the)177 2735 y(concatenation)17
+b(of)g(all)e(suc)o(h)j(expressions)g(in)e(the)i(order)f(in)g(whic)o(h)f(they)
+i(o)q(ccur)g(in)e(the)h(input)g(\014le.)27 b(Suc)o(h)17 b(a)177
+2785 y(macro)12 b(is)g(said)h(to)f(b)q(e)i(additiv)o(e)d(and)i(is)g
+Fo(additiv)o(el)o(y)f(de\014ned)p Fr(.)j(Th)o(us)e(a)g(macro)e(b)q(o)q(dy)i
+(can)g(either)g(b)q(e)h(de\014ned)177 2835 y(in)g(one)h(place)g(using)f(one)h
+(de\014nition)f(\(using)g Fl(==)p Fr(\))g(or)h(it)f(can)h(b)q(e)g
+Fm(distribute)n(d)f Fr(throughout)g(the)h(input)g(\014le)f(in)g(a)1042
+2940 y(85)p eop
+%%Page: 86 87
+86 86 bop 177 42 a Fr(sequence)15 b(of)c(one)i(or)f(more)f(macro)g
+(de\014nitions)h(\(using)g Fl(+=)p Fr(\).)17 b(If)12 b(neither)h
+Fl(==)f Fr(and)g Fl(+=)g Fr(are)h(presen)o(t,)g(F)m(unnelW)m(eb)177
+91 y(assumes)h(a)g(default)f(of)g Fl(==)p Fr(.)177 169 y(Macros)g(attac)o
+(hed)g(to)f(pro)q(duct)h(\014les)f(cannot)h(b)q(e)f(additiv)o(ely)f
+(de\014ned.)19 b(Additiv)o(ely)11 b(de\014ned)i(macros)f(can)g(ha)o(v)o(e)177
+218 y(parameter)h(lists)g(and)f Fl(@Z)h Fr(and)g Fl(@M)f Fr(attributes,)i
+(but)f(these)h(m)o(ust)e(b)q(e)i(sp)q(eci\014ed)g(only)e(in)h(the)g(\014rst)h
+(de\014nition)e(of)177 268 y(the)j(macro.)h(Ho)o(w)o(ev)o(er,)e
+Fl(+=)g Fr(m)o(ust)f(app)q(ear)h(in)f(eac)o(h)i(de\014nition.)177
+409 y Fo(3.11.4.1)48 b(Names)177 514 y Fr(Names)16 b(are)g(used)i(to)e(iden)o
+(tify)f(macros)g(and)i(sections.)26 b(A)16 b(name)f(consists)j(of)d(a)h
+(sequence)j(of)c(from)g(zero)i(to)177 564 y(80)12 b(prin)o(table)h(c)o
+(haracters,)h(including)e(the)h(blank)f(c)o(haracter.)20 b(End)13
+b(of)f(line)g(c)o(haracters)j(are)e(not)g(p)q(ermitted)f(in)177
+613 y(names.)19 b(Names)13 b(are)i(case)g(sensitiv)o(e;)g(t)o(w)o(o)f
+(di\013eren)o(t)h(macros)e(are)i(p)q(ermitted)f(to)g(ha)o(v)o(e)h(names)e
+(that)h(di\013er)h(in)177 663 y(case)g(only)m(.)h(Lik)o(e)e(free)g(text,)g
+(names)e(are)i(t)o(yp)q(eset)h(b)o(y)f(F)m(unnelW)m(eb)f(and)g(are)h(safe)g
+(from)e(misin)o(terpretation)g(b)o(y)177 713 y(the)17 b(target)f(t)o(yp)q
+(esetter.)27 b(F)m(or)16 b(example,)f(it)h(is)g(quite)g(acceptable)h(to)f
+(use)h(the)g(macro)d(name)h Fl(@<\\medskip@>)177 763 y Fr(ev)o(en)g(if)e(the)
+h(target)h(t)o(yp)q(esetter)h(is)e(T)764 772 y(E)787 763 y(X.)177
+885 y Fl(name)130 b(=)22 b("@<")f(name_text)f("@>")177 935
+y(name_text)g(=)i({ordinary_char)d(|)i(text_special})177 1076
+y Fo(3.11.4.2)48 b(F)l(ormal)15 b(P)o(arameter)f(Lists)177
+1181 y Fr(F)m(unnelW)m(eb)f(allo)o(ws)e(macros)h(to)h(ha)o(v)o(e)g(up)g(to)g
+(nine)g(macro)e(parameters,)i(named)f Fl(@1)p Fr(,)g Fl(@2)p
+Fr(,)g Fn(:)7 b(:)g(:)o Fr(,)13 b Fl(@9)p Fr(.)k(If)12 b(a)h(macro)177
+1230 y(do)q(es)f(not)g(ha)o(v)o(e)f(a)g(formal)e(parameter)i(list,)g(it)g(is)
+h(de\014ned)g(to)f(ha)o(v)o(e)h(no)f(parameters,)g(and)h(an)f(actual)g
+(parameter)177 1280 y(list)k(m)o(ust)g(not)g(app)q(ear)h(at)f(the)h(p)q(oin)o
+(t)f(of)g(call.)22 b(If)15 b(a)h(macro)e(has)i(a)f(formal)e(parameter)i
+(list,)g(it)g(is)g(de\014ned)i(to)177 1330 y(ha)o(v)o(e)g(one)h(or)f(more)f
+(parameters,)h(and)h(a)e(corresp)q(onding)j(actual)d(parameter)h(m)o(ust)f(b)
+q(e)i(supplied)f(for)g(eac)o(h)177 1380 y(formal)12 b(parameter,)h(at)g(the)i
+(p)q(oin)o(t)e(of)h(call.)177 1457 y(Because)19 b(F)m(unnelW)m(eb)c
+(parameters)i(ha)o(v)o(e)f(predictable)h(names,)f(the)h(only)f(information)d
+(that)k(a)f(formal)e(pa-)177 1507 y(rameter)e(list)g(need)i(con)o(v)o(ey)e
+(is)g Fm(how)i(many)f Fr(parameters)f(a)g(macro)f(has.)18 b(F)m(or)12
+b(this)g(reason)h(a)f(formal)e(parameter)177 1557 y(list)19
+b(tak)o(es)g(the)h(form)d(of)i(the)g(highest)h(n)o(um)o(b)q(ered)e(formal)f
+(parameter)i(desired,)i(enclosed)f(in)f(paren)o(theses)177
+1606 y(sequences.)177 1729 y Fl(formal_parameter_l)o(ist)g(=)i("@\(")g
+(formal_parameter)e("@\)".)177 1779 y(formal_parameter)g(=)i("@1")g(|)h("@2")
+f(|)g("@3")g(|)h("@4")f(|)g("@5")g(|)591 1828 y("@6")g(|)h("@7")f(|)g("@8")g
+(|)h("@9")177 1977 y Fd(3.11.5)55 b(Expressions)177 2082 y
+Fr(Expressions)19 b(are)e(F)m(unnelW)m(eb's)f(most)g(p)q(o)o(w)o(erful)h
+(form)e(of)i(expressing)h(a)e(text)i(string.)28 b(Macro)17
+b(b)q(o)q(dies)g(are)177 2132 y(de\014ned)e(as)f(expressions.)20
+b(Actual)14 b(parameters)g(consist)g(of)f(expressions.)177
+2209 y(An)i(expression)h(consists)g(of)e(a)g(sequence)j(of)d(zero)i(or)e
+(more)g(expression)i(elemen)o(ts.)21 b(An)14 b(expression)i(elemen)o(t)177
+2259 y(can)i(b)q(e)g(ordinary)e(text,)j(a)e(macro)f(call,)h(or)g(a)g(formal)e
+(parameter)i(of)f(the)i(macro)e Fm(de\014nition)i Fr(in)f(whic)o(h)g(the)177
+2309 y(formal)12 b(parameter)h(o)q(ccurs.)177 2431 y Fl(expression)20
+b(=)h({ordinary_text)e(|)j(macro_call)e(|)h(formal_parameter})177
+2580 y Fd(3.11.6)55 b(Macro)19 b(Calls)177 2685 y Fr(A)d(macro)e(call)h
+(consists)i(of)e(a)g(name)g(optionally)e(follo)o(w)o(ed)h(b)o(y)i(an)f
+(actual)g(parameter)h(list.)22 b(The)16 b(n)o(um)o(b)q(er)f(of)177
+2735 y(parameters)j(in)f(the)h(actual)g(parameter)f(list)g(m)o(ust)g(b)q(e)h
+(the)h(same)d(as)i(the)g(n)o(um)o(b)q(er)f(of)h(formal)d(parameters)177
+2785 y(sp)q(eci\014ed)j(in)d(the)h(de\014nition)g(of)f(the)i(macro.)22
+b(If)16 b(the)g(macro)f(has)h(no)g(formal)d(parameter)i(list,)h(its)g(call)f
+(m)o(ust)177 2835 y(ha)o(v)o(e)f(no)g(actual)f(parameter)h(list.)1042
+2940 y(86)p eop
+%%Page: 87 88
+87 87 bop 177 42 a Fl(macro_call)260 b(=)21 b(name)g([actual_parameter_)o
+(list])177 91 y(actual_parameter_l)o(ist)e(=)i("@\(")g(actpar)g({)g("@,")g
+(actpar)g(})g("@\)")177 141 y(actpar)348 b(=)21 b(expression)f(|)700
+191 y(\()i(whitespace)e("@""")g(expression)g("@""")h(whitespace)e(\))177
+241 y(whitespace)260 b(=)21 b({")h(")f(|)h(eol})177 335 y Fr(F)m(unnelW)m(eb)
+15 b(allo)o(ws)f(parameters)h(to)h(b)q(e)f(passed)i(directly)m(,)e(or)g
+(delimited)f(b)o(y)h(sp)q(ecial)g(double)h(quotes.)22 b(Eac)o(h)177
+385 y(form)15 b(is)h(useful)g(under)h(di\013eren)o(t)g(circumstances.)26
+b(Direct)17 b(sp)q(eci\014cation)g(is)f(useful)g(where)i(the)f(parameters)177
+435 y(are)d(short)g(and)f(can)h(b)q(e)g(all)f(placed)g(on)h(one)f(line.)18
+b(Double)13 b(quoted)h(parameters)f(allo)o(w)f(whitespace)j(on)e(either)177
+485 y(side)19 b(\(that)g(is)g(not)g(considered)h(part)f(of)f(the)i
+(parameter\))e(and)h(are)g(useful)g(for)g(la)o(ying)e(out)h(rather)i(messy)
+177 535 y(parameters.)e(Here)d(are)g(examples)e(of)g(the)h(t)o(w)o(o)g
+(forms.)177 629 y Fl(@<Generic)20 b(Loop@>@\()243 679 y(@"x:=1;@")41
+b(@,)243 729 y(@"x<=10;@")19 b(@,)243 779 y(@"print)h("x=\045u,)g
+(x^2=\045u",x,x*x;)243 828 y(x:=x+1;@+@")177 878 y(@\))177
+978 y(@<Colours@>@\(red@,)o(green)o(@,blu)o(e@,ye)o(llow@)o(\))177
+1072 y Fr(As)15 b(sho)o(wn,)e(the)h(t)o(w)o(o)g(forms)e(ma)o(y)g(b)q(e)j
+(mixed)d(within)h(the)i(same)e(parameter)g(list.)177 1141 y(Exp)q(erience)j
+(has)e(sho)o(wn)g(that)g(the)g(v)n(ast)g(ma)r(jorit)o(y)e(of)h(macros)g(ha)o
+(v)o(e)h(no)f(parameters.)177 1273 y Fd(3.11.7)55 b(F)-5 b(ormal)18
+b(P)n(arameters)177 1368 y Fr(F)m(ormal)d(parameters)i(can)h(app)q(ear)g(in)f
+(the)h(expressions)h(forming)c(macro)h(b)q(o)q(dies)h(in)g(accordance)i(with)
+e(the)177 1418 y(syn)o(tax)k(rules)g(de\014ned)h(ab)q(o)o(v)o(e.)38
+b(A)21 b(formal)d(parameter)j(expands)g(to)g(the)g(text)h(of)e(the)h
+(expansion)g(of)f(its)177 1468 y(corresp)q(onding)c(actual)f(parameter.)21
+b(There)16 b(is)f(nothing)f(prev)o(en)o(ting)i(a)f(formal)d(parameter)j(b)q
+(eing)g(pro)o(vided)177 1518 y(as)g(part)h(of)e(an)h(expression)h(that)g
+(forms)d(an)i(actual)g(parameter.)21 b(In)16 b(that)f(happ)q(ens,)h(the)f
+(formal)e(parameter)177 1568 y(is)i(b)q(ound)h(to)f(the)h(actual)f(parameter)
+f(of)h(the)h(calling)e(macro,)g(not)h(the)h(called)f(macro.)21
+b(After)16 b(the)f(follo)o(wing)177 1618 y(de\014nitions,)177
+1712 y Fl(@$@<One@>@\(@1@\)=@{)o(A)k(walrus)i(in)g(@1)g(is)h(a)f(walrus)g(in)
+g(vain.@})177 1762 y(@$@<Two@>@\(@1@\)=@{)o(@<One)o(@>@\(S)o(@1n@\))o(@})177
+1856 y Fr(the)15 b(call)177 1951 y Fl(@<Two@>@\(pai@\))177
+2045 y Fr(will)e(result)h(in)g(the)g(expansion)177 2140 y Fl(A)22
+b(walrus)e(in)i(Spain)e(is)i(a)f(walrus)g(in)g(vain.)177 2272
+y Fd(3.11.8)55 b(Macros)19 b(are)g(Static)177 2368 y Fr(In)f(F)m(unnelW)m
+(eb,)g(the)g(actions)g(of)g Fm(macr)n(o)g(de\014nition)h Fr(and)e
+Fm(macr)n(o)i(exp)n(ansion)g Fr(o)q(ccur)g(during)e(t)o(w)o(o)h(separate)177
+2417 y(phases)13 b(\(parser)h(and)e(tangle\))g(and)g(cannot)g(b)q(e)h(in)o
+(terlea)o(v)o(ed.)18 b(As)12 b(a)g(result,)h(the)g(F)m(unnelW)m(eb)e(macro)g
+(facilit)o(y)g(is)177 2467 y(completely)i(static.)18 b(It)c(is)g(not)g(p)q
+(ossible)g(for)f(one)h(macro)f(to)h(de\014ne)h(another)f(while)f(the)i
+(\014rst)f(macro)f(is)h(b)q(eing)177 2517 y(expanded;)k(eac)o(h)f(m)o(ust)e
+(b)q(e)i(de\014ned)h(statically)m(.)24 b(It)17 b(is)f(not)g(p)q(ossible)h(to)
+f(de\014ne)i(a)e(macro)f(to)h(ev)o(en)h(assist)g(in)177 2567
+y(the)g(de\014nition)e(of)g(other)i(macros.)23 b(Because)18
+b(the)e(scanner,)h(parser,)g(analyser,)f(and)g(tangler)g(phases)h(are)f(all)
+177 2617 y(in)o(v)o(ok)o(ed)e(sequen)o(tially)m(,)f(there)i(is)f(no)h(ro)q
+(om)d(for)i(feedbac)o(k)h(of)f(de\014nitions)g(b)q(et)o(w)o(een)i(di\013eren)
+o(t)f(lev)o(els)f(\(e.g.)g(the)177 2666 y(user)h(cannot)f(de\014ne)h(a)f
+(macro)e(for)i(the)g Fl(vskip)f Fr(pragma\).)177 2735 y(This)k(lac)o(k)f(of)g
+(p)q(o)o(w)o(er)h(is)f(fully)f(in)o(ten)o(tional.)25 b(By)17
+b(totally)e(excluding)i(the)g(more)f(incomprehensible)g(w)o(a)o(ys)g(in)177
+2785 y(whic)o(h)d(a)h(general)f(purp)q(ose)i(macro)d(prepro)q(cessor)k(can)d
+(b)q(e)h(used,)g(F)m(unnelW)m(eb)f(pro)o(vides)h(de\014nite)g(guaran)o(tees)
+177 2835 y(to)g(the)g(reader)h(of)f(its)g(input)f(\014les:)1042
+2940 y(87)p eop
+%%Page: 88 89
+88 88 bop 239 42 a Fq(\017)21 b Fr(F)m(unnelW)m(eb)15 b(guaran)o(tees)h(that)
+f(a)g(piece)h(of)e(text)i(do)q(es)g(not)f(con)o(tain)g(a)g(macro)f(call)g
+(unless)i(it)f(con)o(tains)281 91 y(the)f(sp)q(ecial)h(c)o(haracter)g(follo)o
+(w)o(ed)d(b)o(y)i Fn(<)g Fr(or)g Fl(#)p Fr(.)239 177 y Fq(\017)21
+b Fr(F)m(unnelW)m(eb)13 b(allo)o(ws)g(calls)g(to)h(b)q(e)h(made)d(to)i
+(macros)f(that)h(are)g(de\014ned)h(later)f(in)g(the)g(input)g(\014le.)177
+343 y Fi(3.12)70 b(Analyser)177 460 y Fr(The)14 b(e\013ect)g(of)e(the)i
+(parser)g(is)f(to)g(construct)h(a)f(macro)e(table)i(con)o(taining)f(a)h
+(represen)o(tation)h(of)e(all)g(the)i(macros)177 510 y(de\014ned)19
+b(within)e(the)i(do)q(cumen)o(t,)f(and)f(a)h(do)q(cumen)o(t)f(list)h(whic)o
+(h)f(con)o(tains)h(a)g(complete)f(represen)o(tation)i(of)177
+560 y(the)f(en)o(tire)h(do)q(cumen)o(t.)28 b(If)18 b(there)h(are)f(no)f
+(error)i(diagnostics)e(\(or)h(w)o(orse\))g(at)g(the)g(end)g(of)f(the)h
+(parser)h(run,)177 610 y(F)m(unnelW)m(eb)11 b(in)o(v)o(ok)o(es)h(the)g
+(analyser)g(whic)o(h)f(tests)j(for)d(the)h(follo)o(wing)d(conditions)j(and)f
+(\015ags)h(them)f(with)g(errors)177 659 y(if)i(they)i(arise.)239
+778 y Fq(\017)21 b Fr(No)14 b(macros)f(de\014ned)i(in)e(the)i(input)e
+(\014le.)239 864 y Fq(\017)21 b Fr(No)14 b(macros)f(connected)i(to)f(output)g
+(\014les.)239 949 y Fq(\017)21 b Fr(Call)13 b(of)g(an)h(unde\014ned)h(macro.)
+239 1035 y Fq(\017)21 b Fr(Call)13 b(ha)o(ving)f(the)j(wrong)e(n)o(um)o(b)q
+(er)h(of)f(parameters.)239 1120 y Fq(\017)21 b Fr(Call)13 b(of)g(a)g(macro)g
+(that)h(is)g(connected)h(to)f(an)g(output)g(\014le.)239 1205
+y Fq(\017)21 b Fr(No)14 b(calls)f(made)g(to)h(a)f(macro)g(without)g(the)i
+Fl(@Z)e Fr(option.)239 1291 y Fq(\017)21 b Fr(More)14 b(than)g(one)g(call)f
+(made)g(to)h(a)f(macro)g(without)h(the)g Fl(@M)f Fr(option.)239
+1376 y Fq(\017)21 b Fr(Directly)14 b(or)g(indirectly)f(recursiv)o(ely)i
+(de\014ned)g(macros.)239 1461 y Fq(\017)21 b Fr(Unnamed)13
+b(sections)i(that)f(con)o(tain)f(no)h(macro)f(de\014nitions.)177
+1581 y(F)m(unnelW)m(eb)i(p)q(erforms)f(a)h(static)g(analysis)g(to)f(detect)j
+(recursion.)23 b(Unfortunately)m(,)14 b(the)i(recursion)g(detection)177
+1630 y(algorithm)i(\015ags)i(all)f(macros)g(that)h(ha)o(v)o(e)g(an)g
+(in\014nite)g(expansion)g(rather)h(than)g(just)f(all)f(macros)g(with)h(a)177
+1680 y(recursiv)o(e)15 b(de\014nition.)i(If)c(A)g(calls)g(B,)g(and)g(B)g
+(calls)g(C,)g(and)g(C)g(calls)f(B,)h(then)h(F)m(unnelW)m(eb)f(will)e(\015ag)i
+(A)g(as)g(w)o(ell)177 1730 y(as)h(B)g(and)g(C.)f(It)h(is)g(hop)q(ed)h(that)e
+(this)h(problem)f(will)f(b)q(e)j(\014xed)f(in)g(a)f(later)h(v)o(ersion.)177
+1806 y(Because)j(F)m(unnelW)m(eb)d(do)q(es)h(not)f(pro)o(vide)h(an)o(y)f
+(kind)g(of)g(conditional)f(feature,)i(the)g(prev)o(en)o(tion)g(of)f
+(recursion)177 1856 y(do)q(es)h(not)f(represen)o(t)i(a)d(curtailmen)o(t)g(of)
+g(expressiv)o(e)j(p)q(o)o(w)o(er.)177 1932 y(Macros)f(ma)o(y)d(b)q(e)i(in)o
+(v)o(ok)o(ed)f(recursiv)o(ely)m(,)h(but)g(ma)o(y)e(not)i(b)q(e)g(recursiv)o
+(e.)20 b(Th)o(us:)177 2051 y Fl(@<Sloth@>@\(@<Sloth)o(@>@\(W)o(alrus)o
+(@\)@\))106 b(@!)21 b(LEGAL)64 b(recursive)20 b(invocation.)177
+2150 y(@$@<Teapot@>==@{@<)o(Teapo)o(t@>@})193 b(@!)21 b(ILLEGAL)f(recursive)g
+(definition.)177 2316 y Fi(3.13)70 b(T)-6 b(angle)177 2434
+y Fr(If)17 b(the)g(scanner,)i(parser,)f(and)f(analyser)g(ha)o(v)o(e)g
+(successfully)h(\(i.e.)e(with)h(no)f(errors,)j(sev)o(ere)f(errors,)h(or)e
+(fatal)177 2484 y(errors\))j(completed,)f(and)f(the)h(T)m(angle)f(option)g
+(\()p Fl(+O)p Fr(\))g(is)g(turned)i(on)e(\(it)h(is)f(b)o(y)g(default\),)h
+(then)h(the)f(T)m(angle)177 2533 y(comp)q(onen)o(t)12 b(of)h(F)m(unnelW)m(eb)
+f(is)h(in)o(v)o(ok)o(ed)f(to)g(generate)j(the)e(pro)q(duct)h(\014les)f(sp)q
+(eci\014ed)i(in)d(the)h Fl(@O)g Fr(macros)f(of)g(the)177 2583
+y(input)i(\014le.)177 2659 y(The)j(op)q(eration)f(of)f(T)m(angle)g(is)h(v)o
+(ery)h(simple.)23 b(Eac)o(h)16 b Fl(@O)g Fr(macro)f(is)h(expanded)g(and)g
+(written)h(to)f(a)g(\014le)g(of)f(the)177 2709 y(same)f(name.)20
+b(As)15 b(there)i(are)e(a)f(\014nite)h(n)o(um)o(b)q(er)g(of)f(macros,)g(and)g
+(the)i(analyser)f(guaran)o(tees)h(that)f(the)g(macro)177 2759
+y(structure)h(is)e(non-recursiv)o(e,)h(T)m(angle)e(is)g(guaran)o(teed)i(to)e
+(terminate.)177 2835 y(Three)i(remaining)d(p)q(oin)o(ts)i(are)g(w)o(orth)g
+(discussing.)1042 2940 y(88)p eop
+%%Page: 89 90
+89 89 bop 228 42 a Fr(1.)20 b(T)m(angle)12 b(expands)h(macros)g(using)f
+(blank)g(inden)o(tation)h(unless)g(the)h(user)g(has)f(sp)q(eci\014ed)i
+(otherwise)f(in)e(an)281 91 y(inden)o(tation)h(pragma)f(in)i(the)g(input)g
+(\014le)g(\(see)h(Section)f(3.10.11.1\).)228 167 y(2.)20 b(T)m(angle)d(k)o
+(eeps)j(trac)o(k)f(of)e(the)i(length)g(of)f(the)h(lines)f(that)g(it)g(is)h
+(writing)e(and)i(issues)g(an)f(error)i(if)d(an)o(y)281 217
+y(line)d(of)f(an)o(y)h(pro)q(duct)h(\014le)f(that)g(it)g(generates)i(is)d
+(longer)h(than)g(the)h(maxim)n(um)o(.)h(The)e(maxim)n(um)c(is)k(the)281
+266 y(minim)n(um)9 b(of)j(a)h(v)n(alue)g(defaulted)g(or)g(sp)q(eci\014ed)i
+(in)d(the)i(input)f(\014le)g(\(Section)h(3.10.11.3\),)c(and)j(the)g(v)n(alue)
+281 316 y(\(if)g(an)o(y\))h(pro)o(vided)f(b)o(y)h(the)h Fl(+w)e
+Fr(command)e(line)j(argumen)o(t)e(\(Section)j(3.7.3\).)228
+392 y(3.)20 b(It)14 b(is)f(w)o(orth)g(the)i(user)f(obtaining)e(some)h
+(understanding)h(of)f(the)h(resources)i(that)e(F)m(unnelW)m(eb)f(requires)281
+441 y(to)h(p)q(erform)f(its)h(task.)177 531 y(When)c(F)m(unnelW)m(eb's)g
+(scanner)h(executes,)i(it)c(reads)i(eac)o(h)f(\014le)g(in)o(to)g(memory)d
+(where)k(it)f(is)g(k)o(ept)g(for)g(the)g(duration)177 581 y(of)h(the)h(run.)
+18 b(Th)o(us,)12 b(there)g(m)o(ust)f(b)q(e)h(ro)q(om)e(in)h(memory)e(for)i
+(the)h(en)o(tire)h(input)e(\014le,)g(including)g(all)f(include)i(\014les.)177
+631 y(While)k(this)h(approac)o(h)g(ma)o(y)e(seem)i(exp)q(ensiv)o(e)h(in)e
+(memory)m(,)f(it)h(is)h(almost)e(necessary)k(in)e(order)g(to)g(supp)q(ort)177
+680 y(forw)o(ard)c(references.)20 b(T)m(o)12 b(merely)g(scan)h(the)h(input)e
+(\014le,)h(recording)g(the)h(macro)d(names,)h(but)h(lea)o(ving)f(the)h(text)
+177 730 y(on)h(disk,)f(w)o(ould)g(require)i(man)o(y)d(random)g(access)k(disk)
+e(seeks.)177 797 y(In)h(con)o(trast,)h(F)m(unnelW)m(eb)f(nev)o(er)h(builds)e
+(an)h(in)o(ternal)g(represen)o(tation)i(of)d(the)i(pro)q(duct)g(\014le.)22
+b(Instead,)15 b(eac)o(h)177 847 y(piece)e(of)e(output)h(is)f(written)h
+(immediately)c(to)k(the)g(pro)q(duct)h(\014le.)k(This)11 b(means)g(that)h(as)
+g(long)e(as)i(the)g(input)g(\014le)177 897 y(\014ts)j(in)e(memory)m(,)e(the)j
+(pro)q(duct)h(\014le)f(can)g(b)q(e)h(arbitrarily)e(large.)18
+b(It)c(also)f(means)h(that)g(users)h(need)g(not)f(fear)g(to)177
+947 y(de\014ne)g(or)f(call)f(macros)g(that)h(they)g(kno)o(w)f(will)g(expand)h
+(to)f(megab)o(ytes)g(of)h(text.)18 b(Nor)13 b(need)g(they)h(fear)f(placing)
+177 997 y(a)j(call)g(to)g(suc)o(h)h(a)f(macro)f(as)h(part)g(of)g(an)g(actual)
+g(parameter.)25 b(F)m(unnelW)m(eb)15 b(do)q(es)i(not)g(ev)o(er)g(expand)f
+(actual)177 1046 y(parameters)j(in)o(ternally)m(.)31 b(In)18
+b(fact,)i(it)e(do)q(es)h(not)g(expand)g(them)f(un)o(til)f(it)i(hits)f(the)i
+(corresp)q(onding)f(formal)177 1096 y(parameter)13 b(during)g(its)g
+(expansion)g(of)g(the)h(called)e(macro.)17 b(A)o(t)c(that)g(p)q(oin)o(t,)g
+(it)g(lo)q(oks)f(up)i(the)f Fm(expr)n(ession)h Fr(\(not)177
+1146 y(the)h(expansion)e(of)h(the)g(expression\))h(for)f(the)g(corresp)q
+(onding)h(actual)f(parameter,)f(and)h(starts)h(expanding)e(it.)177
+1297 y Fi(3.14)70 b(W)-6 b(ea)n(v)n(e)177 1405 y Fr(If)17 b(the)g(scanner,)i
+(parser,)f(and)f(analyser)g(ha)o(v)o(e)g(successfully)h(\(i.e.)e(with)h(no)f
+(errors,)j(sev)o(ere)f(errors,)h(or)e(fatal)177 1455 y(errors\))g(completed,)
+e(and)g(the)h(W)m(ea)o(v)o(e)f(option)f(\()p Fl(+T)p Fr(\))h(is)h(turned)g
+(on)f(\(it)g(is)g Fm(o\013)h Fr(b)o(y)f(default\),)g(then)h(the)g(W)m(ea)o(v)
+o(e)177 1505 y(comp)q(onen)o(t)c(of)g(F)m(unnelW)m(eb)f(is)i(in)o(v)o(ok)o
+(ed)e(to)h(generate)i(a)e(text)h(\014le)g(in)e(the)i(format)e(of)h(a)g
+(particular)g(t)o(yp)q(esetter.)177 1555 y(The)f(result,)h(when)f(fed)g
+(through)g(the)h(particular)e(t)o(yp)q(esetter)j(and)e(prin)o(ted,)g(is)g(a)f
+(fully)g(t)o(yp)q(eset)i(represen)o(tation)177 1605 y(of)h(the)i(en)o(tire)g
+(input)e(\014le)h(complete)f(with)h(cross)h(referencing)g(information.)177
+1735 y Fd(3.14.1)55 b(T)-5 b(arget)19 b(T)n(yp)r(esetter)177
+1829 y Fr(Curren)o(tly)m(,)14 b(F)m(unnelW)m(eb)g(pro)q(duces)i(do)q(cumen)o
+(tation)d(\014les)i(in)f(the)h(format)d(of)i(only)g(one)g(t)o(yp)q(esetter)j
+(|)d(T)1883 1838 y(E)1906 1829 y(X.)177 1879 y(Ho)o(w)o(ev)o(er,)f(the)h(W)m
+(ea)o(v)o(e)e(pac)o(k)n(age)h(of)f(F)m(unnelW)m(eb)g(is)h(fairly)f(small,)e
+(and)j(it)f(is)h(hop)q(ed)g(that)g(it)g(can)g(b)q(e)h(rewritten)177
+1928 y(so)f(as)f(to)g(pro)o(vide)g(a)g(collection)g(of)g(t)o(yp)q(esetter)i
+(mo)q(dules)d(from)g(whic)o(h)h(the)h(user)g(will)e(b)q(e)i(able)f(to)g(c)o
+(ho)q(ose)h(using)177 1978 y(a)h(command)d(line)i(argumen)o(t.)177
+2108 y Fd(3.14.2)55 b(Cross)20 b(Reference)c(Num)n(b)r(ering)177
+2202 y Fr(When)h(F)m(unnelW)m(eb)g(pro)q(duces)i(its)e(t)o(yp)q(eset)h(do)q
+(cumen)o(tation,)e(it)h Fm(numb)n(ers)g Fr(eac)o(h)h(section)g(and)e(eac)o(h)
+i(macro)177 2252 y(de\014nition)e(and)h(cross)h(references)h(the)f(macro)d
+(de\014nitions.)27 b(The)17 b(exact)g(sc)o(heme)g(used)h(has)e(b)q(een)i
+(carefully)177 2302 y(though)o(t)c(out.)k(Ho)o(w)o(ev)o(er,)c(as)g(it)f(can)h
+(b)q(e)h(a)e(little)g(confusing)h(to)g(the)g(b)q(eginner,)g(it)g(is)g
+(explained)f(here)i(in)f(full.)177 2369 y(The)d(most)f(imp)q(ortan)o(t)f
+(thing)h(is)h(that)g(there)h(is)e Fm(no)j(r)n(elation)d Fr(b)q(et)o(w)o(een)i
+(the)f(macro)f(n)o(um)o(b)q(ering)f(and)i(the)g(section)177
+2419 y(n)o(um)o(b)q(ering.)28 b(In)17 b(Kn)o(uth's)h(W)m(eb)f(there)i(are)f
+(only)f(section)h(n)o(um)o(b)q(ers.)29 b(In)18 b(F)m(unnelW)m(eb,)f(the)h(n)o
+(um)o(b)q(ering)e(of)177 2469 y(sections)f(and)f(macros)f(is)h(separated.)177
+2536 y(In)h(F)m(unnelW)m(eb,)f Fm(se)n(ctions)h Fr(are)h(n)o(um)o(b)q(ered)e
+(hierarc)o(hically)h(in)f(ascending)h(order.)22 b(F)m(or)15
+b(example,)e(the)j(second)177 2586 y(lev)o(el-C)i(section)i(of)e(the)i(third)
+e(lev)o(el-B)h(section)h(of)e(the)h(\014rst)h(lev)o(el-A)e(section)i(is)f(n)o
+(um)o(b)q(ered)f(\\1.3.2".)31 b(In)177 2635 y(con)o(trast,)17
+b Fm(macr)n(o)f(de\014nitions)h Fr(are)f(n)o(um)o(b)q(ered)g(sequen)o(tially)
+f(in)h(ascending)g(order.)24 b(F)m(or)16 b(example,)f(the)h(\014rst)177
+2685 y(macro)c(de\014nition)h(is)g(n)o(um)o(b)q(er)f(1,)g(the)i(second)g(is)f
+(n)o(um)o(b)q(er)g(2,)f(and)h(so)g(on.)18 b(Note)13 b(that)g(it)g(is)g
+Fm(macr)n(o)h(de\014nitions)177 2735 y Fr(that)k(are)g(n)o(um)o(b)q(ered,)g
+(not)f Fm(macr)n(os)p Fr(.)29 b(This)17 b(distinction)h(is)f(necessary)j(b)q
+(ecause)f(additiv)o(e)e(macros)f(\(i.e.)h(the)177 2785 y(ones)f(with)e
+Fl(+=)p Fr(\))g(can)h(b)q(e)h(de\014ned)g(b)o(y)e(a)h(collection)f(of)g
+(partial)g(de\014nitions)h(scattered)i(throughout)e(the)g(input)177
+2835 y(\014le.)j(A)c(single)g(additiv)o(e)f(macro)f(ma)o(y)g(b)q(e)j
+(de\014ned)g(in)e(de\014nitions)h(5,)f(67,)g(128,)g(and)h(153.)1042
+2940 y(89)p eop
+%%Page: 90 91
+90 90 bop 177 42 a Fi(3.15)70 b(F)-6 b(unnelW)g(eb)23 b(Shell)177
+167 y Fd(3.15.1)55 b(In)n(tro)r(duction)177 269 y Fr(One)19
+b(of)f(the)h(goals)e(of)g(F)m(unnelW)m(eb)h(is)g(that)g(it)g(m)o(ust)f(b)q(e)
+i(extremely)f(p)q(ortable.)31 b(Huge)19 b(e\013orts,)h(desp)q(erate)177
+319 y(actions,)e(and)g(great)g(sacri\014ces)h(w)o(ere)f(made)f(in)g(the)h
+(name)f(of)g(p)q(ortabilit)o(y)m(.)27 b(F)m(or)17 b(example,)g(F)m(unnelW)m
+(eb)g(is)177 369 y(written)e(in)e(C.)177 444 y(An)i(equally)e(imp)q(ortan)o
+(t)g(goal)g(w)o(as)i(that)f(of)g(correctness)k(and)c(reliabilit)o(y)m(.)j(T)m
+(o)d(this)h(end,)f(it)g(w)o(as)h(determined)177 494 y(that)d(a)f(large)g
+(automated)f(suite)i(of)f(test)h(programs)e(b)q(e)i(prepared)h(to)e(assist)h
+(in)f(regression)i(testing.)k(Preparing)177 544 y(the)e(test)g(suite)f(w)o
+(as)g(tedious,)g(but)g(ac)o(hiev)n(able.)j(Automating)12 b(it)h(p)q(ortably)h
+(w)o(as)g(more)f(di\016cult.)177 619 y(The)h(di\016cult)o(y)e(faced)i(w)o(as)
+f(that)g(if)f(F)m(unnelW)m(eb)h(w)o(as)g(implemen)o(ted)e(in)i(the)g(form)f
+(of)g(a)h(utilit)o(y)f(that)h(could)g(b)q(e)177 669 y(in)o(v)o(ok)o(ed)h
+(from)g(the)h(op)q(erating)g(system)g(command)e(language,)h(the)h(only)g(w)o
+(a)o(y)f(to)h(set)h(up)f(regression)h(testing)177 719 y(w)o(as)11
+b(in)f(the)h(command)d(language)i(of)g(the)h(op)q(erating)g(system)f(of)g
+(the)h(target)g(mac)o(hine)f(\(shellscripts)i(for)e(UNIX,)177
+769 y(DCL)h(for)h(VMS,)f(batc)o(h)h(\014les)g(for)f(MSDOS,)g(and)g
+Fm(nothing)i Fr(on)e(the)h(Macin)o(tosh\).)18 b(The)12 b(h)o(uge)f(v)n
+(ariation)f(in)h(these)177 819 y(command)i(languages)i(led)g(to)g(the)h
+(conclusion)g(that)f(either)h(the)g(automation)d(of)i(regression)i(testing)f
+(w)o(ould)177 868 y(ha)o(v)o(e)i(to)h(b)q(e)g(rewritten)h(on)e(eac)o(h)h
+(target)g(mac)o(hine,)f(or)g(a)g(small)f(command)e(language)j(w)o(ould)g(ha)o
+(v)o(e)g(to)g(b)q(e)177 918 y(created)g(within)d(F)m(unnelW)m(eb.)24
+b(In)17 b(the)f(end,)h(the)g(t)o(win)e(goals)h(of)f(p)q(ortabilit)o(y)g(and)h
+(regression)h(testing)g(w)o(ere)177 968 y(considered)g(so)f(imp)q(ortan)o(t)e
+(that)i(a)f(small)e(command)g(shell)j(w)o(as)f(constructed)j(inside)e(F)m
+(unnelW)m(eb.)22 b(This)16 b(is)177 1018 y(called)e(the)g Fo(F)l(unnelW)l(eb)
+g(command)h(shell)p Fr(,)c(or)i(just)i(\\the)f(shell")f(for)h(short.)177
+1093 y(By)i(default,)f(when)i(F)m(unnelW)m(eb)e(is)g(in)o(v)o(ok)o(ed,)g(it)h
+(do)q(es)g(not)g(en)o(ter)h(its)e(shell.)24 b(If)15 b(just)h(giv)o(en)f(the)h
+(name)f(of)g(an)177 1143 y(input)c(\014le,)f(it)g(will)f(simple)g(pro)q(cess)
+k(the)e(input)f(\014le)h(in)f(the)h(normal)e(manner)g(and)i(then)g
+(terminate.)16 b(T)m(o)10 b(instruct)177 1193 y(F)m(unnelW)m(eb)g(to)g(in)o
+(v)o(ok)o(e)f(its)h(shell,)g(the)g Fl(+K)g Fr(or)g Fl(+X)g
+Fr(command)d(line)i(option)h(m)o(ust)f(b)q(e)h(sp)q(eci\014ed)i(when)e(F)m
+(unnelW)m(eb)177 1243 y(is)i(in)o(v)o(ok)o(ed)g(from)f(the)i(op)q(erating)f
+(system.)17 b(It)c(is)f(also)g(in)o(v)o(ok)o(ed)g(up)q(on)g(startup)h(if)f
+(the)h(\014le)f Fl(fwinit.fws)f Fr(exists.)177 1318 y(Most)16
+b(F)m(unnelW)m(eb)f(users)i(will)d(nev)o(er)j(need)g(to)e(use)h(the)h(shell)e
+(and)h(need)g(not)g(ev)o(en)g(kno)o(w)f(ab)q(out)h(it.)23 b(There)177
+1368 y(are)14 b(four)g(main)e(uses)j(of)e(the)i(shell:)228
+1486 y(1.)20 b(As)14 b(a)g(to)q(ol)f(to)h(supp)q(ort)g(automated)f
+(regression)i(testing.)228 1570 y(2.)20 b(As)d(a)f(dev)o(elopmen)o(t)f(to)q
+(ol)g(on)h(mac)o(hines)g(that)g(do)g(not)g(ha)o(v)o(e)g(a)g(built)g(in)g
+(shell)g(\(e.g.)f(the)i(Macin)o(tosh\).)281 1620 y(The)d(shell)g(can)g(b)q(e)
+h(used)f(to)g(pro)q(cess)i(whole)e(groups)g(of)f(\014les)h(automatically)m(.)
+228 1705 y(3.)20 b(As)c(a)f(con)o(v)o(enience.)24 b(A)16 b(user)h(w)o(orking)
+d(on)h(a)h(m)o(ulti-tasking,)c(m)o(ulti-windo)o(w)g(w)o(orkstation)j(ma)o(y)f
+(wish)281 1754 y(to)g(k)o(eep)h(an)f(in)o(teractiv)o(e)g(session)h(of)f(F)m
+(unnelW)m(eb)g(going)f(in)g(one)i(windo)o(w)e(rather)i(than)f(ha)o(ving)f(to)
+h(run)281 1804 y(up)g(the)g(utilit)o(y)f(eac)o(h)h(time)f(it)g(is)h
+(required.)228 1889 y(4.)20 b(As)15 b(a)g(con)o(v)o(enien)o(t)g(v)o(ehicle)g
+(for)g(enclosing)g(utilities.)20 b(The)15 b(F)m(unnelW)m(eb)g(shell)g(con)o
+(tains)g(useful)g(general)281 1938 y(purp)q(ose)g(commands)c(suc)o(h)k(as)f
+(the)h(di\013erences)h(command)11 b Fl(diff)p Fr(.)177 2082
+y Fd(3.15.2)55 b(Return)18 b(Statuses)177 2184 y Fr(The)g(hierarc)o(h)o(y)f
+(of)g(diagnostics)g(describ)q(ed)i(in)d(Section)i(3.5)e(is)h(also)g(used)h
+(in)e(the)i(shell)f(commands.)25 b(Eac)o(h)177 2234 y(shell)14
+b(command)d(returns)k(a)f(status)h(whic)o(h)f(can)g(a\013ect)h(further)f(pro)
+q(cessing.)295 2309 y Fo(Success)f Fr(status)i(is)f(the)g(normal)e(command)f
+(return)k(status.)295 2385 y Fo(W)l(arning)f Fr(status)j(is)e(returned)j(if)d
+(some)f(minor)g(problem)h(arose)h(with)f(the)i(execution)f(of)f(the)295
+2435 y(command.)295 2510 y Fo(Error)h Fr(status)h(is)g(returned)h(if)e(a)g
+(signi\014can)o(t)h(problem)e(arises)i(during)f(the)i(execution)f(of)f(the)
+295 2560 y(command.)23 b(Ho)o(w)o(ev)o(er,)17 b(unlik)o(e)f(a)g(sev)o(ere)j
+(error,)e(it)f(do)q(es)h Fm(not)g Fr(cause)h(termination)c(of)i(the)h(en-)295
+2610 y(closing)d(shellscript.)295 2685 y Fo(Sev)o(ere)23 b(error)c
+Fr(status)j(is)f(returned)h(if)e(a)g(problem)g(arises)h(during)g(the)g
+(execution)h(of)e(the)295 2735 y(command)c(that)j(prev)o(en)o(ts)h(the)f
+(command)d(from)h(deliv)o(ering)h(on)g(its)h(\\promise".)30
+b(A)19 b(sev)o(ere)295 2785 y(error)12 b(causes)g(F)m(unnelW)m(eb)e(to)g(ab)q
+(ort)h(the)g(script)g(\(and)g(an)o(y)f(stac)o(k)o(ed)h(scripts\))h(to)e(the)h
+(in)o(teractiv)o(e)295 2835 y(lev)o(el.)18 b(\(Ho)o(w)o(ev)o(er,)c(the)g
+Fl(tolerate)f Fr(command)e(allo)o(ws)h(this)i(to)g(b)q(e)h(temp)q(orarily)d
+(o)o(v)o(erridden\).)1042 2940 y(90)p eop
+%%Page: 91 92
+91 91 bop 295 42 a Fo(F)l(atal)15 b(error)c Fr(status)j(is)f(returned)i(if)d
+(a)h(problem)f(arises)h(that)g(is)g(so)h(serious)f(that)g(execution)h(of)295
+91 y(F)m(unnelW)m(eb)c(cannot)g(con)o(tin)o(ue.)17 b(A)10 b(fatal)f(error)i
+(causes)g(F)m(unnelW)m(eb)e(to)h(ab)q(ort)g(to)g(the)h(op)q(erating)295
+141 y(system)j(lev)o(el.)295 219 y Fo(Assertion)i(error)e Fr(status)j(is)f
+(nev)o(er)g(returned.)26 b(If)15 b(an)h(assertion)g(error)h(o)q(ccurs,)g(F)m
+(unnelW)m(eb)295 269 y(b)q(om)o(bs)d(out)g(ungracefully)g(to)g(the)h(op)q
+(erating)g(system.)k(Assertion)d(errors)f(should)g(nev)o(er)g(hap-)295
+319 y(p)q(en.)k(If)13 b(they)i(do,)e(then)i(there)g(is)f(a)f(bug)h(in)f(F)m
+(unnelW)m(eb.)177 397 y(T)m(o)k(b)q(e)i(precise,)h(the)f(status)f(returned)i
+(b)o(y)e(eac)o(h)g(command)e(is)h(a)h(v)o(ector)h(of)e(n)o(um)o(b)q(ers)h(b)q
+(eing)g(the)g(n)o(um)o(b)q(er)177 447 y(of)d(eac)o(h)h(of)f(the)h(di\013eren)
+o(t)g(kinds)f(of)g(diagnostic)g(generated)i(b)o(y)e(the)h(command.)k(Usually)
+14 b(only)h(one)g(kind)g(of)177 497 y(diagnostic)d(is)g(generated.)19
+b(Ho)o(w)o(ev)o(er,)13 b(the)g Fl(fw)f Fr(command)e(and)i(a)g(few)h(of)f(the)
+h(other)g(commands)d(can)i(generate)177 546 y(more)k(than)h(one)g(kind)f(of)h
+(diagnostic.)26 b(These)18 b(status)g(v)o(ectors)g(are)f(summed)e(in)o
+(ternally)h(where)i(they)g(ma)o(y)177 596 y(later)13 b(b)q(e)h(accessed)h
+(using)e(the)g Fl(status)f Fr(command.)j(Ho)o(w)o(ev)o(er,)e(the)h(curren)o
+(t)g(diagnostic)e(state)i(ev)n(ap)q(orates)g(as)177 646 y(so)q(on)g(as)g(the)
+h(next)f(command)d(is)j(encoun)o(tered.)177 798 y Fd(3.15.3)55
+b(Command)17 b(Line)h(Length)177 904 y Fr(The)c(maxim)o(um)9
+b(length)14 b(of)f(a)h(shell)g(command)d(line)i(is)h(guaran)o(teed)g(to)g(b)q
+(e)h(at)e(least)h(300)g(c)o(haracters.)177 1056 y Fd(3.15.4)55
+b(String)19 b(Substitution)177 1162 y Fr(Most)f(command)c(shells)k(pro)o
+(vide)f(some)g(form)f(of)g(string)i(substitution)g(so)f(as)h(to)f(pro)o(vide)
+g(some)g(degree)h(of)177 1212 y(parameterization.)j(The)16
+b(F)m(unnelW)m(eb)f(shell)g(pro)o(vides)h(36)e(di\013eren)o(t)j(string)e(v)n
+(ariables)g(named)f Fl($0..$9)g Fr(and)177 1262 y Fl($A..$Z)i
+Fr(\(case)i(insensitiv)o(e\).)28 b(Eac)o(h)17 b(v)n(ariable)f(can)i(hold)e(a)
+h(string)g(con)o(taining)f(an)o(y)g(sequence)k(of)c(prin)o(table)177
+1312 y(c)o(haracters)g(and)e(can)g(b)q(e)g(as)g(long)f(as)h(a)g(command)d
+(line.)177 1390 y(The)k Fl(define)e Fr(command)e(allo)o(ws)i(the)h(user)i(to)
+e(assign)f(a)h(v)n(alue)g(to)g(these)h(v)n(ariables.)j(The)d
+Fl(define)e Fr(command)177 1439 y(tak)o(es)i(t)o(w)o(o)e(argumen)o(ts.)18
+b(The)c(\014rst)h(is)f(the)h(digit)e(or)h(letter)h(of)e(the)i(v)n(ariable)e
+(to)g(b)q(e)i(de\014ned.)20 b(The)14 b(second)h(is)f(a)177
+1489 y(double)f(quote)h(delimited)e(string)h(b)q(eing)g(the)h(string)g(v)n
+(alue)e(to)i(b)q(e)g(assigned)f(to)g(the)h(v)n(ariable.)j(If)c(y)o(ou)g(w)o
+(an)o(t)g(to)177 1539 y(include)h(a)g(double)f(quote)i(c)o(haracter)g(within)
+e(the)i(string,)e(y)o(ou)g(don't)h(need)h(to)e(double)h(it.)177
+1617 y(Examples:)177 1742 y Fl(define)21 b(3)g("/root/usr/usrs/use)o(rs/us)o
+(ers5/)o(this)o(user/)o(workd)o(ir/fw)o(dir/t)o(estdi)o(r")177
+1792 y(define)g(M)g("/user/local/rubbis)o(h/bin)o(/fw")177
+1841 y(define)g(Q)g("You)g(don't)g(need)g(to)g(double")g(double)f(quotes")177
+1966 y Fr(Only)13 b(the)h(iden)o(tifying)d(c)o(haracter)k(of)d(the)i(v)n
+(ariable)e(b)q(eing)h(assigned)g(is)g(used)h(in)f(the)g(de\014nition.)18
+b(This)13 b(syn)o(tax)177 2016 y(is)18 b(a)g(simple)f(w)o(a)o(y)g(of)h(prev)o
+(en)o(ting)g(the)h(v)n(ariable)e(from)f(b)q(eing)j(substituted)g(b)q(efore)g
+(it)f(has)g(a)g(c)o(hance)h(to)f(b)q(e)177 2066 y(de\014ned!)177
+2144 y(The)c(follo)o(wing)e(p)q(oin)o(ts)i(clean)g(up)g(the)g(remaining)e
+(seman)o(tic)h(details:)239 2268 y Fq(\017)21 b Fr(There)16
+b(is)f(only)g(one)g(set)h(of)f(v)n(ariables)f(and)h(they)h(are)f(global)f(to)
+h(all)f(shellscripts.)23 b(There)16 b(are)g Fm(no)g(lo)n(c)n(al)281
+2318 y(variables)p Fr(.)239 2408 y Fq(\017)21 b Fr(When)f(a)h(shellscript)g
+(is)f(in)o(v)o(ok)o(ed)f(using)h(the)h Fl(execute)e Fr(command,)g(the)i
+(substitution)f(v)n(ariables)g Fl(0)281 2458 y Fr(through)14
+b Fl(9)g Fr(are)g(a\013ected.)19 b(See)c(Section)f(3.15.7.9)e(for)h(more)g
+(details.)239 2547 y Fq(\017)21 b Fr(If)13 b(y)o(ou)h(w)o(an)o(t)f(to)h
+(include)g(a)g(dollar)e(sign)i(c)o(haracter)h(in)f(a)f(command)e(use)k(\\)p
+Fl($$)p Fr(".)239 2637 y Fq(\017)21 b Fr(F)m(unnelW)m(eb)14
+b(also)g(de\014nes)h(\\)p Fl($/)p Fr(")f(whic)o(h)g(translates)h(to)g(the)g
+(c)o(haracter)g(that)g(separates)h(directory)f(and)281 2687
+y(\014le)21 b(name)g(\014elds)g(in)g(\014le)h(names)f(on)g(the)h(host)g(mac)o
+(hine.)39 b(F)m(or)21 b(example:)32 b(Sun=\\)p Fl(/)p Fr(",)22
+b(V)m(ax=\\)p Fl(])p Fr(",)281 2737 y(Mac=\\)p Fl(:)p Fr(",)13
+b(PC=\\)p Fl(\\)p Fr(".)239 2827 y Fq(\017)21 b Fr(Substitution)14
+b(is)f(not)h(p)q(erformed)g(recursiv)o(ely)m(.)1042 2940 y(91)p
+eop
+%%Page: 92 93
+92 92 bop 177 42 a Fd(3.15.5)55 b(Ho)n(w)20 b(a)f(Command)e(Line)g(is)i(Pro)r
+(cessed)177 158 y Fr(When)13 b(F)m(unnelW)m(eb)f(reads)i(in)e(a)h(command)d
+(line)i(\(from)f(the)j(console)f(or)g(a)f(script)i(\014le\),)f(it)f(pro)q
+(cesses)j(it)e(in)f(the)177 208 y(follo)o(wing)f(sequence:)228
+350 y(1.)20 b(The)14 b(command)c(line)j(is)h(c)o(hec)o(k)o(ed)g(for)f
+(non-prin)o(table)g(c)o(haracters.)20 b(If)13 b(there)h(are)g(an)o(y)m(,)e
+(they)i(are)g(\015agged)281 400 y(with)f(a)h(sev)o(ere)i(error.)228
+504 y(2.)k(All)11 b(dollar)f(string)i(substitution)g(v)n(ariables)f(in)g(the)
+i(command)c(line)i(are)h(replaced)h(b)o(y)e(their)h(corresp)q(ond-)281
+554 y(ing)j(string.)25 b(The)17 b(command)c(line)j(is)f(pro)q(cessed)k(from)
+14 b(left)i(to)g(righ)o(t.)24 b(Substitutions)17 b(are)f(p)q(erformed)281
+604 y(non)e(recursiv)o(ely)m(.)228 708 y(3.)20 b(A)o(t)9 b(this)h(p)q(oin)o
+(t,)f(if)g(the)h(line)f(is)g(empt)o(y)m(,)g(or)g(consists)i(en)o(tirely)e(of)
+g(blanks,)h(it)f(is)g(ignored)h(and)f(the)h(in)o(terpreter)281
+757 y(mo)o(v)o(es)j(to)g(the)i(next)f(line.)228 861 y(4.)20
+b(A)14 b(sev)o(ere)h(error)g(is)f(generated)h(if)e(the)i(line)e(at)h(this)g
+(stage)g(b)q(egins)g(with)g(a)g(blank.)228 965 y(5.)20 b(If)13
+b(the)i(\014rst)g(c)o(haracter)g(of)e(the)i(line)e(is)h(\\)p
+Fl(!)p Fr(",)e(the)j(line)e(is)h(a)g(commen)o(t)d(line)j(and)g(is)f(ignored.)
+228 1069 y(6.)20 b(The)e(run)g(of)g(non-blanks)f(commencing)e(at)j(the)h
+(start)f(of)f(the)i(line)e(is)h(compared)f(case-insensitiv)o(ely)281
+1119 y(to)e(eac)o(h)h(of)f(the)i(legal)d(command)f(v)o(erbs.)24
+b(If)15 b(the)h(command)d(is)j(illegal,)d(a)j(sev)o(ere)h(error)f(is)g
+(generated,)281 1169 y(otherwise)f(the)f(command)d(is)j(pro)q(cessed.)177
+1343 y Fd(3.15.6)55 b(Options)177 1459 y Fr(The)14 b(F)m(unnelW)m(eb)g(shell)
+g(main)o(tains)d(three)k(sets)g(of)f(command)d(line)i(options.)228
+1602 y(1.)20 b(The)10 b(set)g(of)f(options)g(resulting)g(from)f(applying)g
+(the)i(op)q(erating)f(system)g(lev)o(el)g(command)e(line)i(argumen)o(ts)281
+1652 y(to)14 b(the)g(default)g(option)f(settings.)228 1756
+y(2.)20 b(A)14 b(set)h(of)e(shell)h(options)f(that)h(prev)n(ail)f(during)h
+(the)g(shell)g(in)o(v)o(o)q(cation.)228 1860 y(3.)20 b(The)14
+b(set)h(of)e(option)g(v)n(alues)h(activ)o(e)g(during)g(a)f(particular)h(in)o
+(v)o(o)q(cation)e(of)i(F)m(unnelW)m(eb)f(prop)q(er.)177 2002
+y(When)i(F)m(unnelW)m(eb)f(is)g(in)o(v)o(ok)o(ed)f(from)g(the)i(op)q(erating)
+f(system)g(with)g(just)h Fl(+F)p Fr(,)e(only)h(the)h(\014rst)g(of)f(these)h
+(three)177 2052 y(sets)k(comes)e(in)o(to)g(existence.)30 b(If)18
+b(the)g(user)g(in)o(v)o(ok)o(es)f(the)h(F)m(unnelW)m(eb)f(shell,)h(the)g
+(shell)g(options)f(come)f(in)o(to)177 2102 y(existence)j(and)e(are)h
+(initialized)d(with)i(the)h(v)n(alue)e(of)h(the)h(\014rst)f(set.)29
+b(These)19 b(shell)e(options)f(are)i(used)g(as)f(the)177 2151
+y(default)d(for)g(all)f(subsequen)o(t)j Fl(fw)d Fr(commands.)k(Ho)o(w)o(ev)o
+(er,)d(they)h(can)f(b)q(e)h(altered)g(using)f(the)h(script)g(command)177
+2201 y Fl(set)p Fr(.)i(If)11 b(a)h Fl(fw)f Fr(command)e(executed)14
+b(in)d(a)g(shell)h(con)o(tains)g(additional)e(command)f(line)i(options,)g
+(these)i(o)o(v)o(erride)177 2251 y(the)i(shell)e(options)h(for)f(that)h(run,)
+g(but)g(do)g(not)g(c)o(hange)g(the)g(shell)g(options.)k(An)c(example)f(follo)
+o(ws:)177 2393 y Fl($)22 b(fw)f(+k)h(+t)261 b(!)21 b(Original)f(invocation)g
+(of)h(FunnelWeb)f(from)h(OS.)657 2443 y(!)g(Shell)g(options)f(are)h(now)h
+(default)e(with)h("+t".)177 2493 y(FunnelWeb>fw)e(sloth)87
+b(!)21 b(Equivalent)f(to)h(fw)h(sloth)e(+t.)177 2543 y(FunnelWeb>set)f(-l)131
+b(!)21 b(Change)g(the)g(l)h(shell)e(option.)177 2593 y(FunnelWeb>fw)f(sloth)i
+(+q)h(!)f(Equivalent)f(to)h(fw)h(sloth)e(+t)i(-l)f(+q.)177
+2642 y(FunnelWeb>fw)e(sloth)87 b(!)21 b(Equivalent)f(to)h(fw)h(sloth)e(+t)i
+(-l.)177 2785 y Fr(The)14 b(existence)h(of)d(the)i(shell)f(option)f(set)i
+(means)e(that)h(the)h(user)g(can)f(set)h(up)f(a)g(set)h(of)f(defaults)g(to)g
+(b)q(e)g(applied)177 2835 y(to)h(all)f Fl(fw)g Fr(commands)e(issued)k(within)
+e(the)i(shell.)1042 2940 y(92)p eop
+%%Page: 93 94
+93 93 bop 177 42 a Fd(3.15.7)55 b(Shell)18 b(Commands)177 136
+y Fr(This)c(section)h(describ)q(es)h(eac)o(h)e(of)f(the)i(F)m(unnelW)m(eb)e
+(shell)h(commands.)h(The)g(syn)o(tax)f(is:)177 226 y Fl(shell_command)19
+b(=)j(absent)64 b(|)22 b(codify)e(|)i(compare)e(|)i(define)e(|)i(diff)86
+b(|)22 b(diffsummary)d(|)526 276 y(diffzero)h(|)i(eneo)64 b(|)22
+b(execute)e(|)i(exists)e(|)i(fixeols)e(|)i(help)173 b(|)526
+326 y(here)108 b(|)22 b(quit)64 b(|)22 b(set)108 b(|)22 b(show)64
+b(|)22 b(skipto)42 b(|)22 b(status)129 b(|)526 376 y(tolerate)20
+b(|)i(trace)42 b(|)22 b(write)64 b(|)22 b(writeu)177 425 y(s)g(=)f({")h("}+)
+177 516 y Fr(As)d(a)e(rule,)i(F)m(unnelW)m(eb)f(shell)g(commands)d(return)20
+b(sev)o(ere)f(status)g(if)e(their)i(argumen)o(ts)e(are)h(syn)o(tactically)177
+566 y(incorrect)d(or)f(if)f(they)i(are)f(unable)g(to)f(successfully)j(op)q
+(erate)e(on)g(argumen)o(t)f(\014les.)177 688 y Fo(3.15.7.1)48
+b(Absen)o(t)177 782 y Fr(The)19 b Fl(absent)d Fr(command)g(p)q(erforms)h(no)h
+(action)g(except)i(to)d(return)j(a)e(status.)31 b(If)18 b(the)g(\014le)h(sp)q
+(eci\014ed)g(in)f(its)177 832 y(argumen)o(t)13 b(do)q(esn't)h(exist)h(it)e
+(returns)i(success)i(status,)d(otherwise)h(it)e(returns)j(sev)o(ere)f
+(status.)177 922 y Fl(Syntax)21 b(:)g(absent)g(=)g("absent")g(s)g(filename)
+177 972 y(Example:)f(absent)h(result.out)177 1062 y Fr(This)16
+b(command)d(is)i(useful)h(in)f(regression)i(testing)f(for)f(making)e(sure)k
+(that)f(F)m(unnelW)m(eb)f Fm(hasn)l('t)g Fr(pro)q(duced)i(a)177
+1112 y(particular)d(output)g(\014le.)177 1234 y Fo(3.15.7.2)48
+b(Co)q(dify)177 1329 y Fr(The)14 b Fl(codify)f Fr(command)e(tak)o(es)j(t)o(w)
+o(o)f(argumen)o(ts:)k(an)d(input)g(\014le)f(and)h(an)f(output)h(\014le.)k(It)
+c(reads)h(eac)o(h)f(line)f(of)177 1378 y(the)g(input)g(\014le)g(and)f(writes)
+h(a)g(corresp)q(onding)g(line)g(to)f(the)h(output)g(\014le.)18
+b(The)13 b(corresp)q(onding)h(line)e(consists)h(of)177 1428
+y(a)e(C)g(macro)f(call)g(con)o(taining)g(a)g(string)h(con)o(taining)f(the)i
+(input)f(line.)16 b(The)c(command)c(con)o(v)o(erts)k(all)e(bac)o(kslashes)177
+1478 y(in)j(input)h(lines)f(to)g(double)h(bac)o(kslashes)g(so)g(as)f(to)g(a)o
+(v)o(oid)g(un)o(w)o(an)o(ted)g(in)o(terpretations)h(b)o(y)g(the)g(C)f
+(compiler.)k(It)177 1528 y(also)c(con)o(v)o(erts)i(double)f(quotes)h(in)e
+(the)i(line)e(to)h(bac)o(kslashed)g(double)g(quotes.)177 1618
+y Fl(Syntax)21 b(:)g(codify)g(=)g("codify")g(s)g(filename)f(s)i(filename)177
+1668 y(Example:)e(codify)h(header.tex)f(header.c)177 1758 y
+Fr(The)14 b(follo)o(wing)e(example)g(demonstrates)j(the)f(transformation.)177
+1849 y Fl(Input)43 b(Line:)20 b(\\def\\par{\\leavevmode)o(\\endg)o(raf})o
+(\045)f(A)j("jolly)e(good)h(hack".)177 1899 y(Output)g(Line:)f
+(WX\("\\\\def\\\\par{\\\\lea)o(vevmo)o(de\\\\)o(endgr)o(af}\045)e(A)k
+(\\"jolly)e(good)h(hack\\"."\);)177 1989 y Fr(The)c Fl(codify)e
+Fr(command)f(w)o(as)i(in)o(tro)q(duced)h(to)g(assist)f(in)g(the)h(dev)o
+(elopmen)o(t)f(of)g(F)m(unnelW)m(eb.)25 b(It)16 b(is)h(used)g(to)177
+2039 y(con)o(v)o(ert)f(longish)e(text)i(\014les)f(in)o(to)f(C)h(co)q(de)h(to)
+f(write)h(them)e(out.)21 b(The)16 b(C)f(co)q(de)h(is)f(then)h(included)f
+(within)f(the)177 2089 y(F)m(unnelW)m(eb)h(C)g(program.)20
+b(F)m(or)14 b(example,)g(the)h(set)h(of)f(T)1088 2098 y(E)1111
+2089 y(X)g(de\014nitions)g(that)g(app)q(ears)h(at)f(the)h(top)f(of)f(ev)o
+(ery)177 2139 y(do)q(cumen)o(tation)e(\014le)i(w)o(as)f Fl(codif)p
+Fr(ied)f(and)i(inserted)g(in)o(to)f(the)h(F)m(unnelW)m(eb)f(co)q(de)h(so)f
+(that)h(F)m(unnelW)m(eb)f(w)o(ould)177 2188 y(not)h(ha)o(v)o(e)g(to)f(lo)q
+(ok)g(for)h(a)f(\014le)h(con)o(taining)f(the)i(de\014nitions)f(at)f(run)h
+(time.)177 2311 y Fo(3.15.7.3)48 b(Compare)177 2405 y Fr(The)17
+b Fl(compare)f Fr(command)d(tak)o(es)18 b(t)o(w)o(o)e(\014lename)f(argumen)o
+(ts)h(and)h(p)q(erforms)f(a)h(binary)f(comparison)f(of)h(the)177
+2455 y(t)o(w)o(o)e(\014les.)19 b(If)14 b(the)h(\014les)f(are)h(iden)o(tical,)
+e(success)k(status)e(is)f(returned.)20 b(If)14 b(they)h(are)f(di\013eren)o
+(t,)h(sev)o(ere)h(status)f(is)177 2504 y(returned.)20 b(No)14
+b(information)d(ab)q(out)i(the)i(manner)e(in)g(whic)o(h)h(the)h(\014les)f
+(di\013er)g(is)g(con)o(v)o(ey)o(ed.)177 2595 y Fl(Syntax)21
+b(:)g(compare)g(=)g("compare")f(s)i(filename)e(s)h(filename)177
+2645 y(Example:)f(compare)h(result.txt)e(answer.txt)177 2735
+y Fr(The)14 b Fl(compare)e Fr(command)f(w)o(as)i(created)j(as)d(the)h(main)e
+(c)o(hec)o(king)i(mec)o(hanism)d(for)i(regression)i(testing.)j(Ho)o(w-)177
+2785 y(ev)o(er,)12 b(its)e(binary)g(output)h(w)o(as)f(so)q(on)g(found)g(to)h
+(b)q(e)g(un)o(w)o(ork)n(able)e(and)i(the)g(more)e(sophisticated)i
+Fl(diff)f Fr(command)177 2835 y(w)o(as)k(added)g(so)g(that)g(the)h(actual)e
+(di\013erences)j(b)q(et)o(w)o(een)g(the)e(\014les)g(could)g(b)q(e)g
+(examined.)1042 2940 y(93)p eop
+%%Page: 94 95
+94 94 bop 177 42 a Fo(3.15.7.4)48 b(De\014ne)177 141 y Fr(The)12
+b Fl(define)e Fr(command)e(assigns)k(a)f(v)n(alue)g(to)g(a)g(shell)g(string)g
+(substitution)h(v)n(ariable.)k(The)c Fl(define)e Fr(command)177
+191 y(tak)o(es)15 b(t)o(w)o(o)e(argumen)o(ts.)18 b(The)c(\014rst)h(is)f(the)h
+(digit)e(or)h(letter)h(of)e(the)i(v)n(ariable)e(to)g(b)q(e)i(de\014ned.)20
+b(The)14 b(second)h(is)f(a)177 241 y(double)f(quote)h(delimited)e(string)h(b)
+q(eing)g(the)h(string)g(v)n(alue)e(to)i(b)q(e)g(assigned)f(to)g(the)h(v)n
+(ariable.)j(If)c(y)o(ou)g(w)o(an)o(t)g(to)177 291 y(include)h(a)g(double)f
+(quote)i(c)o(haracter)g(within)e(the)i(string,)e(y)o(ou)g(don't)h(need)h(to)e
+(double)h(it.)177 401 y Fl(Syntax)43 b(:)21 b(define)g(=)g("define")f(s)i
+(letter)f(s)g("""")g(text)g("""")177 450 y(Examples:)f(define)h(3)g
+("/usr/usrs/thisuser)o(/wor)o(kdir/)o(fwdir)o(/test)o(dir")395
+500 y(define)g(M)g("/user/local/rubbis)o(h/bi)o(n/fw")395 550
+y(define)g(Q)g("You)g(don't)g(need)g(to)g(double")g(double)f(quotes")177
+660 y Fr(The)f(command)d(in)o(terpreter)21 b(expands)e(the)g(command)d(line)i
+(b)q(efore)h(it)g(executes)h(the)g Fl(define)d Fr(command.)177
+710 y(This)h(means)f(that)g(y)o(ou)h(can)f(de\014ne)i(string)f(substitution)g
+(v)n(ariables)f(in)g(terms)g(of)h(eac)o(h)g(other)g(with)f(static)177
+760 y(binding.)177 833 y(The)d Fl(define)f Fr(command)e(w)o(as)i(in)o(tro)q
+(duced)i(to)e(allo)o(w)f(the)j(parameterization)d(of)i(the)g(directories)h
+(in)o(v)o(olv)o(ed)d(in)177 882 y(regression)j(testing.)177
+955 y(See)g(Section)f(3.15.4)e(for)i(more)f(details.)177 1086
+y Fo(3.15.7.5)48 b(Di\013)177 1185 y Fr(The)16 b Fl(diff)f
+Fr(command)e(reads)k(in)e(t)o(w)o(o)g(text)i(\014les)f(and)f
+Fm(app)n(ends)i Fr(a)f(rep)q(ort)g(to)g(a)g(log)e(\014le)i(con)o(taining)f(a)
+g(list)g(of)177 1235 y(the)h(di\013erences)h(b)q(et)o(w)o(een)f(the)f(t)o(w)o
+(o)g(input)f(\014les.)21 b(If)15 b(the)g(log)f(\014le)h(do)q(es)g(not)g
+(already)g(exist,)g(an)f(empt)o(y)g(one)h(is)177 1285 y(created)h(\014rst.)
+177 1395 y Fl(Syntax)43 b(:)21 b(diff)g(=)h("diff")e(s)i(filename)e(s)i
+(filename)e(s)h(filename)f(s)i(["ABORT"])177 1445 y(Examples:)e(diff)h
+(result.tex)f(answer.tex)g(diff.log)395 1494 y(diff)h($Otest23.out)e
+($Atest23.out)h($Ldiff.log)f(ABORT)177 1604 y Fr(The)i Fl(diff)f
+Fr(command)e(p)q(erforms)i(a)g(full)f(line-based)i(di\013erences)i(op)q
+(eration.)37 b(It)21 b(will)e(iden)o(tify)h(di\013eren)o(t)177
+1654 y(sections)15 b(in)f(a)f(\014le,)h(ev)o(en)g(if)f(they)i(are)f(of)f
+(di\013ering)h(length.)177 1727 y(The)19 b(implem)o(en)o(tation)c(of)j(the)g
+Fl(diff)f Fr(command)f(is)i(quite)g(complicated.)29 b(T)m(o)17
+b(b)q(e)i(sure)g(that)f(it)g(is)g(at)g(least)177 1777 y(getting)e(its)h
+(same/di\013eren)o(t)f(pro)q(clamation)e(righ)o(t,)i(the)h
+Fl(diff)f Fr(command)d(p)q(erforms)j(a)g(binary)g(comparison)177
+1827 y(as)e(an)g(extra)g(c)o(hec)o(k.)177 1900 y(The)g(follo)o(wing)e(p)q
+(oin)o(ts)i(describ)q(e)h(the)g(rules)f(for)g(determining)e(the)j(result)g
+(status.)228 2010 y(1.)20 b Fl(diff)13 b Fr(ab)q(orts)h(with)g(a)f(sev)o(ere)
+j(error)f(if)e(the)h(log)f(\014le)h(cannot)g(b)q(e)h(op)q(ened)g(or)e
+(created)j(for)d(app)q(ending.)228 2091 y(2.)20 b(An)14 b(ordinary)f(error)i
+(is)f(generated)h(if)e(either)i(or)f(b)q(oth)g(of)f(the)i(input)e(\014les)i
+(cannot)f(b)q(e)g(op)q(ened.)228 2172 y(3.)20 b(If,)15 b(at)h(the)g(end)h(of)
+e(the)h(run,)g(the)h(t)o(w)o(o)e(input)g(\014les)i(ha)o(v)o(e)e(not)h(b)q
+(een)h(pro)o(v)o(en)f(to)f(b)q(e)i(iden)o(tical,)e(and)g(the)281
+2222 y Fl(ABORT)e Fr(k)o(eyw)o(ord)h(is)f(presen)o(t,)i Fl(diff)e
+Fr(returns)j(sev)o(ere)f(status.)228 2303 y(4.)20 b Fl(diff)10
+b Fr(returns)j(success)h(status)e(if)f(none)g(of)g(the)h(ab)q(o)o(v)o(e)f
+(conditions)g(\(or)h(similar)c(conditions\))k(o)q(ccur,)g(ev)o(en)281
+2353 y(if)h(the)h(t)o(w)o(o)g(\014les)g(are)g(di\013eren)o(t.)177
+2463 y(The)k Fl(diff)f Fr(command)d Fm(app)n(ends)19 b Fr(its)f
+(di\013erences)h(rep)q(ort)g(rather)f(than)g(merely)e(writing)h(it.)28
+b(This)18 b(allo)o(ws)e(a)177 2513 y(regression)f(test)g(script)g(to)f(p)q
+(erform)f(a)g(series)j(of)d(regression)i(tests)g(and)f(pro)q(duce)h(a)f(rep)q
+(ort)h(for)e(the)i(user.)177 2586 y(The)e Fl(diff)e Fr(command)f(w)o(as)i
+(added)h(to)f(the)h(shell)f(after)g(it)g(had)g(b)q(ecome)g(apparen)o(t)h
+(that)f(the)h(simpler)e Fl(compare)177 2635 y Fr(command)h(w)o(as)i(not)h
+(yielding)e(enough)i(information.)i(Whereas)f(early)e(on,)g(regression)i
+(testing)f(w)o(as)g(treated)177 2685 y(mainly)8 b(as)i(a)f(to)q(ol)h(to)g
+(ensure)h(that)f(F)m(unnelW)m(eb)g(w)o(as)g(b)q(eing)g(p)q(orted)g(to)g
+(other)h(mac)o(hines)e(correctly)m(,)i(it)f(b)q(egan)g(to)177
+2735 y(place)j(an)f(increasing)h(role)g(during)f(dev)o(elopmen)o(t)g(in)g
+(iden)o(tifying)f(the)i(e\013ects)i(of)d(c)o(hanges)h(made)f(to)g(the)h(co)q
+(de.)177 2785 y(The)j Fl(diff)e Fr(command)f(supp)q(orts)j(this)f
+(application)f(of)h(regression)h(testing)g(b)o(y)f(pinp)q(oin)o(ting)f(the)i
+(di\013erences)177 2835 y(b)q(et)o(w)o(een)f(nearly-iden)o(tical)e(text)i
+(\014les.)1042 2940 y(94)p eop
+%%Page: 95 96
+95 95 bop 177 42 a Fo(3.15.7.6)48 b(Di\013summary)177 160 y
+Fr(The)16 b Fl(diffsummary)d Fr(command)g(writes)j(a)g(short)g(rep)q(ort)g
+(to)g(the)g(console)g(giving)e(the)i(n)o(um)o(b)q(er)f(of)g(di\013erence)177
+209 y(op)q(erations)20 b(that)f(ha)o(v)o(e)h(tak)o(en)f(place)h(and)f(ho)o(w)
+g(man)o(y)f(of)h(the)h(pairs)f(of)g(\014les)h(compared)f(w)o(ere)h(iden)o
+(tical.)177 259 y(Coun)o(ting)14 b(starts)h(at)f(the)h(most)e(recen)o(t)j
+(execution)f(of)f(a)g Fl(diffzero)e Fr(command,)g(or)i(if)f(there)j(has)f(b)q
+(een)g(none,)177 309 y(when)g(F)m(unnelW)m(eb)e(started)i(up.)177
+454 y Fl(Syntax)43 b(:)21 b(diffsummary)f(=)h("diffsummary")177
+504 y(Examples:)f(diffsummary)177 649 y Fr(The)15 b Fl(diffsummary)d
+Fr(command)g(w)o(as)i(added)h(so)f(as)g(to)h(allo)o(w)d(regression)k(testing)
+f(scripts)g(to)f(displa)o(y)g(a)g(sum-)177 699 y(mary)f(of)i(the)g(results)h
+(of)e(the)i(test.)22 b(If)14 b(the)i(summary)c(indicates)j(that)g(no)g(pair)f
+(of)g(\014les)h(di\013ered,)h(then)f(there)177 749 y(is)f(no)g(need)g(to)g
+(lo)q(ok)f(in)h(the)g Fl(diff)f Fr(log)g(\014le.)177 918 y
+Fo(3.15.7.7)48 b(Di\013zero)177 1036 y Fr(The)13 b Fl(diffzero)d
+Fr(command)g(zeros)j(the)g(di\013eren)o(t)g(summary)d(coun)o(ters)j(used)g(b)
+o(y)f(the)h Fl(diff)e Fr(and)h Fl(diffsummary)177 1086 y Fr(commands.)177
+1231 y Fl(Syntax)43 b(:)21 b(diffzero)f(=)i("diffzero")177
+1281 y(Examples:)e(diffzero)177 1426 y Fr(The)g Fl(diffzero)e
+Fr(command)f(w)o(as)j(added)g(so)g(as)g(to)f(allo)o(w)f(regression)j(testing)
+f(shellscripts)h(to)f(zero)g(their)177 1476 y(di\013erences)c(coun)o(ters)e
+(at)f(the)h(start)g(of)e(a)h(run.)18 b(This)13 b(allo)o(ws)f(testers)k(to)d
+(in)o(v)o(ok)o(e)f(the)i(same)e(regression)i(testing)177 1526
+y(script)h(t)o(wice)f(in)f(one)i(in)o(teractiv)o(e)f(session)h(without)e
+(receiving)h(an)g(in\015ated)g(di\013erences)i(summary)m(.)177
+1695 y Fo(3.15.7.8)48 b(Eneo)177 1814 y Fr(The)15 b Fl(eneo)e
+Fr(command)f(tak)o(es)j(one)f(\014lename)g(argumen)o(t.)k(If)c(the)h(\014le)f
+(do)q(es)h(not)g(exist,)f(no)g(action)g(is)h(tak)o(en.)k(If)177
+1863 y(the)14 b(\014le)f(do)q(es)h(exist,)f(it)g(is)f(deleted.)19
+b(In)13 b(b)q(oth)h(cases)g(success)i(status)d(is)g(returned.)20
+b(Ho)o(w)o(ev)o(er,)13 b(if)f(the)i(\014le)f(exists)177 1913
+y(and)h(cannot)g(b)q(e)g(deleted,)h Fl(eneo)e Fr(returns)i(sev)o(ere)h
+(status.)177 2058 y Fl(Syntax)43 b(:)21 b(eneo)g(=)h("eneo")e(s)i(filename)
+177 2108 y(Examples:)e(eneo)h(result.out)177 2253 y Fr(The)e
+Fl(eneo)e Fr(command)e(w)o(as)j(added)h(so)f(as)g(to)g(allo)o(w)f(regression)
+i(testing)g(scripts)g(to)f(ensure)i(that)e(existing)177 2303
+y(output)h(\014les)g(w)o(ere)h(not)f(presen)o(t)h(b)q(efore)g(pro)q(ceeding)g
+(with)e(a)h(test)h(run.)33 b(If)19 b(F)m(unnelW)m(eb)f(w)o(ere)i(to)f(fail)e
+(to)177 2353 y(generate)e(an)f(output)g(\014le,)f(it)h(w)o(ould)f(b)q(e)i
+(extremely)e(undesirable)h(for)g(the)h(old)e(v)o(ersion)h(to)f(b)q(e)i(used.)
+177 2439 y(ENEO)h(stands)h(for)e Fo(E)p Fr(stablish)g(the)h
+Fo(N)p Fr(on)g Fo(E)p Fr(xistence)h Fo(O)p Fr(f.)22 b(Most)16
+b(op)q(erating)f(systems)h(pro)o(vide)f(a)h(command)177 2489
+y(to)f(delete)h(\014les.)23 b(T)o(ypically)13 b(these)k(commands)c(are)i(v)o
+(erbs)h(suc)o(h)g(as)f(\\delete",)h(\\remo)o(v)o(e",)e(and)h(\\kill".)k(As)d
+(a)177 2539 y(consequence,)h(the)f(designers)g(of)e(delete)i(commands)d
+(usually)h(consider)i(the)f(command)e(to)h(ha)o(v)o(e)h(failed)f(if)g(it)177
+2589 y(fails)e(to)h(\014nd)g(the)g(\014le)g(to)g(b)q(e)g(deleted.)19
+b(Ho)o(w)o(ev)o(er,)13 b(in)g(m)o(y)e(exp)q(erience,)k(the)e(most)f(common)e
+(use)k(for)e(the)i(delete)177 2639 y(command)f(is)j(to)f Fm(establish)i(the)f
+(non-existenc)n(e)i(of)e Fr(one)g(or)g(more)e(\014les.)24 b(T)o(ypically)m(,)
+14 b(a)i(script)g(is)g(starting)g(up)177 2688 y(and)f(needs)i(to)e(clear)g
+(the)h(air)f(b)q(efore)h(getting)f(started.)23 b(If)15 b(the)h(\014les)f(are)
+h(there,)g(they)g(should)f(b)q(e)h(deleted;)h(if)177 2738 y(they)e(are)f
+(not,)f(then)i(that's)f(OK)g(to)q(o.)787 2723 y Fg(5)p 177
+2796 709 2 v 223 2823 a Ff(5)241 2835 y Fh(As)e(far)f(as)g(I)h(kno)o(w,)e
+(the)h Fe(eneo)g Fh(command)d(is)k(original.)1042 2940 y Fr(95)p
+eop
+%%Page: 96 97
+96 96 bop 177 42 a Fo(3.15.7.9)48 b(Execute)177 138 y Fr(The)20
+b Fl(execute)d Fr(command)f(causes)21 b(a)e(sp)q(eci\014ed)h(text)g(\014le)f
+(to)g(b)q(e)g(executed)i(as)e(a)g(F)m(unnelW)m(eb)g(shellscript.)177
+188 y(The)e(\014rst)h(argumen)o(t)d(is)i(the)g(name)f(of)g(the)h(script)g
+(\014le.)27 b(The)17 b(remaining)e(argumen)o(ts)h(are)h(assigned)g(to)f(the)
+177 237 y(substitution)i(v)n(ariables)f Fl($1)p Fr(,)g Fl($2)p
+Fr(,)g Fn(:)7 b(:)g(:)o Fr(,)18 b Fl($9)p Fr(.)28 b(Substitution)17
+b(v)n(ariables)g(in)g(the)h(range)g Fl($1)f Fr(to)g Fl($9)g
+Fr(that)h(do)f(not)177 287 y(corresp)q(ond)d(to)e(an)g(argumen)o(t)f(are)i
+(set)g(to)f(the)h(empt)o(y)e(string)h Fl("")p Fr(.)17 b Fl($0)12
+b Fr(is)g(set)h(to)f(the)h(empt)o(y)e(string)h(regardless.)177
+337 y(The)k(execute)h(command)12 b(can)k(b)q(e)f(used)h(recursiv)o(ely)m(,)g
+(allo)o(wing)d(shell)i(scripts)h(to)f(in)o(v)o(ok)o(e)f(eac)o(h)i(other.)23
+b(A)15 b(\014le)177 387 y(extension)g(default)e(of)h(\\)p Fl(.fws)p
+Fr(")e(\(F)m(unnelW)m(eb)i(Script\))g(applies)g(to)f(script)i(\014les.)177
+485 y Fl(Syntax)43 b(:)21 b(execute)f(=)i("execute")e(s)i(filename)e
+({argument_string)o(})177 534 y(Examples:)g(execute)g(megatest.fws)g
+(/usr/users/ross/)o(fwtes)o(t)f(!)395 584 y(execute)h(sloth)177
+682 y Fr(The)14 b(\014rst)h(example)e(ab)q(o)o(v)o(e)g(will)g(result)h(in)g
+(the)g(follo)o(wing)e(substitution)i(v)n(ariable)e(assignmen)o(ts.)177
+780 y Fl($0)22 b(=)f("")177 829 y($1)h(=)f("/usr/users/ross/f)o(wtest)o(")177
+879 y($2)h(=)f("!")177 929 y($3)h(=)f("")177 979 y(...)177
+1029 y($9)h(=)f("")177 1126 y Fr(It)16 b(should)f(b)q(e)g(stressed)j(that)d
+(there)i(are)f(no)f(lo)q(cal)f(v)n(ariables)h(in)g(the)g(F)m(unnelW)m(eb)g
+(command)e(language;)h(the)177 1176 y(v)n(ariables)f(ab)q(o)o(v)o(e)h(are)g
+(globally)e(mo)q(di\014ed.)177 1246 y(The)j Fl(execute)f Fr(command)e(w)o(as)
+i(added)h(to)g(allo)o(w)e(the)i(creation)h(of)e(sub-scripts)i(to)f(test)g(F)m
+(unnelW)m(eb)g(in)f(par-)177 1296 y(ticular)g(w)o(a)o(ys.)177
+1421 y Fo(3.15.7.10)48 b(Exists)177 1517 y Fr(The)19 b Fl(exists)d
+Fr(command)g(p)q(erforms)h(no)h(action)g(except)i(to)d(return)j(a)e(status.)
+31 b(If)18 b(the)g(\014le)h(sp)q(eci\014ed)g(in)f(its)177 1567
+y(argumen)o(t)13 b(exists)i(it)e(returns)i(success)i(status,)d(otherwise)h
+(it)e(returns)j(sev)o(ere)f(status.)177 1665 y Fl(Syntax)21
+b(:)g(exists)g(=)g("exists")g(s)g(filename)177 1714 y(Example:)f(exists)h
+(test6.fw)177 1812 y Fr(This)10 b(command)d(is)j(useful)g(in)g(regression)h
+(testing)f(for)g(ensuring)g(that)g(F)m(unnelW)m(eb)g(has)g(pro)q(duced)h(a)f
+(particular)177 1862 y(output)k(\014le.)177 1987 y Fo(3.15.7.11)48
+b(Fixeols)177 2083 y Fr(The)13 b Fl(fixeols)f Fr(command)e(tak)o(es)j(t)o(w)o
+(o)f(\014lename)g(argumen)o(ts:)k(an)d(input)f(\014le)h(and)g(an)f(output)h
+(\014le.)18 b(It)13 b(reads)g(in)177 2133 y(the)f(input)f(\014le)g(and)g
+(writes)h(it)e(to)h(the)h(output)f(\014le)g(c)o(hanging)g(all)e(the)j(end)g
+(of)e(line)h(con)o(trol)g(c)o(haracter)h(sequences)177 2183
+y(to)k(the)g(lo)q(cal)f(format.)22 b(It)15 b(can)h(also)f(tak)o(e)h(one)g
+(\014lename)f(argumen)o(t,)f(in)h(whic)o(h)h(case)h(it)e(replaces)i(the)f
+(target)177 2233 y(\014le)e(with)g(its)f(transformation.)177
+2331 y Fl(Syntax)43 b(:)21 b(fixeols)f(=)i("fixeols")e(s)i(filename)e([s)h
+(filename])177 2380 y(Examples:)f(fixeols)g(imported.hak)g(result.kln)395
+2430 y(fixeols)g(sloth.dat)177 2528 y Fr(The)12 b Fl(fixeols)e
+Fr(command)e(w)o(orks)k(b)o(y)f(parsing)g(the)h(input)f(\014le)g(in)o(to)g
+(alternating)f(runs)i(of)f(prin)o(table)g(c)o(haracters)177
+2578 y(\(ASCI)q(I)i(20)f(to)g(ASCI)q(I)h(126\))e(and)i(runs)g(of)e(non-prin)o
+(table)h(c)o(haracters)i(\(all)e(the)h(others\).)18 b(It)13
+b(then)g(parses)g(eac)o(h)177 2628 y(run)g(of)f(non-prin)o(table)f(c)o
+(haracters)j(from)d(left)h(to)g(righ)o(t)g(in)o(to)f(subruns)j(of)e(non-prin)
+o(tables)g(not)g(con)o(taining)f(the)177 2677 y(same)j(c)o(haracter)i(t)o
+(wice.)22 b(It)15 b(then)g(replaces)h(eac)o(h)g(subrun)g(with)e(a)h(nativ)o
+(e)f(EOL.)1479 2662 y Fg(6)1513 2677 y Fr(F)m(or)g(example,)f(if)i(a)f(nativ)
+o(e)177 2727 y(EOL)g(is)g Fl(X)p Fr(,)f(and)h Fl(ABCD)f Fr(are)h(non-prin)o
+(table)g(c)o(haracters,)h(and)f(the)g(\014le)g(to)g(b)q(e)g(con)o(v)o(erted)h
+(is)p 177 2757 709 2 v 223 2783 a Ff(6)241 2795 y Fh(Note:)j(A)13
+b(nativ)o(e)f(EOL)h(can)g(b)q(e)f(inserted)f(in)o(to)h(a)h(text)f(\014le)g
+(in)h(a)g(p)q(ortable)e(manner)f(simply)i(b)o(y)g(writing)g(\\)p
+Fe(\\n)p Fh(")g(to)h(the)f(text)177 2835 y(output)e(stream.)1042
+2940 y Fr(96)p eop
+%%Page: 97 98
+97 97 bop 177 42 a Fl(thisABisABCDanABAB)o(examp)o(leABC)o(CCof)18
+b(the)k(conversion.)177 173 y Fr(then)15 b Fl(fixeols)d Fr(w)o(ould)h(pro)q
+(duce)177 304 y Fl(thisXisXanXXexampl)o(eXXXo)o(f)19 b(the)i(conversion.)177
+435 y Fr(The)c Fl(fixeols)e Fr(command)f(w)o(as)j(devised)g(to)g(solv)o(e)f
+(the)i(problem)d(created)j(sometimes)d(when)i(text)g(\014les)g(are)177
+485 y(mo)o(v)o(ed)c(from)f(one)i(mac)o(hine)f(to)h(another)h(\(e.g.)e(with)h
+(the)h(k)o(ermit)e(program\))f(using)i(a)g(binary)g(transfer)h(mo)q(de)177
+534 y(rather)j(than)f(a)g(text)h(transfer)g(mo)q(de.)27 b(If)17
+b(suc)o(h)h(a)f(transfer)h(is)f(made,)f(and)h(the)h(text)g(\014le)f(line)g
+(termination)177 584 y(con)o(v)o(en)o(tions)f(di\013er)f(on)g(the)h(t)o(w)o
+(o)f(mac)o(hines,)f(one)i(can)f(wind)g(up)h(with)f(a)g(set)h(of)f(text)h
+(\014les)f(with)g(improp)q(erly)177 634 y(terminated)10 b(lines.)16
+b(This)10 b(can)g(cause)i(problems)d(on)h(a)f(n)o(um)o(b)q(er)h(of)f(fron)o
+(ts,)h(but)h(in)e(particular)h(a\013ects)i(regression)177 684
+y(testing)h(whic)o(h)f(relies)h(hea)o(vily)e(on)h(exact)h(comparisons)e(b)q
+(et)o(w)o(een)j(\014les.)k(The)12 b Fl(fixeols)f Fr(command)f(pro)o(vides)i
+(a)177 734 y(solution)g(to)h(this)g(problem)f(b)o(y)h(pro)o(viding)f(a)h(p)q
+(ortable)g(w)o(a)o(y)f(to)h(\\purify")f(text)i(\014les)f(whose)h(end)g(of)e
+(lines)h(ha)o(v)o(e)177 783 y(b)q(ecome)h(incorrect.)20 b(The)14
+b(regression)i(testing)e(scripts)h(all)e(apply)h Fl(fixeols)e
+Fr(to)i(their)g(input)g(and)g(output)g(\014les)177 833 y(b)q(efore)h(eac)o(h)
+f(test.)177 985 y Fo(3.15.7.12)48 b(Fw)177 1095 y Fr(The)12
+b Fl(fw)g Fr(command)d(allo)o(ws)h(F)m(unnelW)m(eb)i(prop)q(er)g(to)g(b)q(e)h
+(in)o(v)o(ok)o(ed)e(from)f(a)h(shell)h(script.)18 b(The)12
+b(syn)o(tax)g(is)g(almost)177 1145 y(iden)o(tical)h(to)h(the)h(syn)o(tax)e
+(with)h(whic)o(h)g(F)m(unnelW)m(eb)f(is)h(in)o(v)o(ok)o(ed)f(from)f(the)j(op)
+q(erating)e(system.)177 1276 y Fl(Syntax)43 b(:)21 b(fw)g(=)h("fw")f(s)h
+(ordinary_funnelw)o(eb_c)o(omman)o(d_lin)o(e)177 1325 y(Examples:)e(fw)h
+(sloth)g(+t)h(+d)395 1375 y(fw)f(-l)h(walrus)177 1506 y Fr(Some)13
+b(imp)q(ortan)o(t)f(p)q(oin)o(ts)i(ab)q(out)g(this)f Fl(fw)h
+Fr(command)d(are:)239 1637 y Fq(\017)21 b Fr(Options)14 b(are)g(inherited)h
+(from)d(the)i(default)g(shell)g(options.)239 1732 y Fq(\017)21
+b Fr(The)14 b Fl(F)g Fr(\(input)g(\014le)g(option\))f(m)o(ust)g(b)q(e)h
+(turned)h(on.)239 1827 y Fq(\017)21 b Fr(The)14 b Fl(K)p Fr(,)f
+Fl(H)p Fr(,)h(and)f Fl(X)h Fr(options)f(m)o(ust)g(b)q(e)i(turned)g(o\013.)239
+1922 y Fq(\017)21 b Fr(The)14 b Fl(J)g Fr(option)f(m)o(ust)g(b)q(e)h(turned)h
+(o\013.)239 2017 y Fq(\017)21 b Fr(The)14 b(options)g(sp)q(eci\014ed)h(in)f
+(a)f Fl(fw)h Fr(command)d(do)i(not)h(a\013ect)h(the)g(default)e(shell)h
+(options.)239 2112 y Fq(\017)21 b Fr(This)14 b(command)d(p)q(erforms)i(no)h
+(action)f(in)h(the)g(V)-5 b(AX)15 b(VMS)f(v)o(ersion)g(of)f(F)m(unnelW)m(eb.)
+177 2263 y Fo(3.15.7.13)48 b(Help)177 2373 y Fr(The)16 b Fl(help)f
+Fr(command)d(pro)o(vides)k(online)f(help)g(from)f(within)g(the)i(F)m(unnelW)m
+(eb)f(shell.)23 b(It)15 b(pro)o(vides)h(access)h(to)177 2423
+y(all)c(of)g(the)i(same)e(messages)h(that)f(the)i Fl(+H)e Fr(command)f(line)h
+(option)g(do)q(es.)177 2554 y Fl(Syntax)43 b(:)21 b(help)g(=)h("help")e([s)i
+(help_message_na)o(me])177 2604 y(Examples:)e(help)395 2654
+y(help)h(commands)177 2785 y Fr(If)14 b(no)h(message)f(name)g(is)g(giv)o(en,)
+g(the)h(default)g(message)f(is)h(displa)o(y)o(ed.)k(It)c(con)o(tains)g(a)f
+(list)g(of)g(the)h(other)h(help)177 2835 y(messages)e(and)g(their)g(names.)j
+(The)e(actual)e(messages)h(themselv)o(es)g(are)g(not)g(listed)g(here.)1042
+2940 y(97)p eop
+%%Page: 98 99
+98 98 bop 177 42 a Fo(3.15.7.14)48 b(Here)177 147 y Fr(The)19
+b Fl(here)e Fr(command)e(acts)j(as)g(a)g(target)g(for)g(the)g
+Fl(skipto)f Fr(command.)27 b(When)18 b(the)h(shell)f(in)o(terpreter)h(en-)177
+197 y(coun)o(ters)h(a)e Fl(skipto)g Fr(command,)e(it)i(ignores)h(all)e(the)i
+(follo)o(wing)d(commands)g(un)o(til)i(it)g(encoun)o(ters)i(a)f
+Fl(here)177 247 y Fr(command.)177 371 y Fl(Syntax)i(:)g(here)g(=)h("here")177
+421 y(Example:)e(here)177 545 y Fr(The)14 b Fl(skipto)p Fr(/)p
+Fl(here)c Fr(mec)o(hanism)h(w)o(as)i(created)i(to)e(allo)o(w)e(groups)i(of)g
+(regression)h(tests)h(to)e(b)q(e)g(skipp)q(ed)h(during)177
+595 y(debugging)f(without)h(ha)o(ving)f(to)h(commen)o(t)d(them)i(out.)18
+b(F)m(or)c(more)f(information,)d(see)15 b(Section)g(3.15.7.18.)177
+737 y Fo(3.15.7.15)48 b(Quit)177 843 y Fr(The)14 b Fl(quit)f
+Fr(command)e(terminates)i(F)m(unnelW)m(eb)g(immediately)d(and)k(returns)h
+(con)o(trol)e(to)h(the)g(op)q(erating)f(sys-)177 893 y(tem.)k(This)d(applies)
+g(regardless)h(of)e(the)i(depth)f(of)f(the)i(script)g(b)q(eing)e(executed.)
+177 1017 y Fl(Syntax)21 b(:)g(quit)g(=)h("quit")177 1067 y(Example:)e(quit)
+177 1209 y Fo(3.15.7.16)48 b(Set)177 1315 y Fr(The)15 b Fl(set)e
+Fr(command)f(mo)q(di\014es)h(the)i(default)f(shell)g(options.)k(F)m(or)c
+(example,)f Fl(set)21 b(+t)14 b Fr(sets)h(the)g Fl(+t)f Fr(option)f(for)177
+1365 y(all)g(subsequen)o(t)i(F)m(unnelW)m(eb)f(runs)g(within)g(the)g(shell)g
+(un)o(til)f(another)h(set)h(command)c(sets)k Fl(-t)p Fr(.)177
+1489 y Fl(Syntax)43 b(:)21 b(set)g(=)h("set")f(s)g(ordinary_funnelweb)o
+(_comm)o(and_l)o(ine)177 1539 y(Examples:)f(set)h(sloth)g(+t)g(+d)395
+1589 y(set)g(-lwalrus)177 1713 y Fr(The)c(restrictions)g(on)f(the)h
+Fl(set)e Fr(command)e(are)k(iden)o(tical)e(to)h(those)h(on)f(the)h
+Fl(fw)e Fr(command)e(except)18 b(that,)e(in)177 1763 y(addition,)c(the)j
+Fl(+F)e Fr(option)g(cannot)i(b)q(e)f(turned)h(on)f(in)f(the)i
+Fl(set)e Fr(command.)177 1840 y(The)f(set)h(command)c(is)j(useful)g(for)f
+(setting)i(option)e(defaults)h(b)q(efore)g(a)g(long)f(run)h(of)f(regression)i
+(tests.)19 b(It)12 b(could)177 1890 y(also)h(b)q(e)g(useful)h(to)f(set)h
+(default)f(options)f(in)h(a)g(F)m(unnelW)m(eb)f(shell)h(k)o(ept)h(b)o(y)f(a)g
+(user)h(in)f(a)f(w)o(orkstation)h(windo)o(w.)177 2033 y Fo(3.15.7.17)48
+b(Sho)o(w)177 2139 y Fr(The)14 b Fl(show)f Fr(command)e(displa)o(ys)j(the)g
+(curren)o(t)h(default)f(shell)f(options.)18 b(These)d(options)f(are)g(the)g
+(options)g(that)177 2189 y(subsequen)o(t)i Fl(fw)d Fr(commands)f(will)g
+(inherit.)177 2313 y Fl(Syntax)21 b(:)g(show)g(=)h("show")177
+2362 y(Example:)e(show)177 2505 y Fo(3.15.7.18)48 b(Skipto)177
+2611 y Fr(The)14 b Fl(skipto)f Fr(command)e(causes)k(the)g(shell)e(to)h
+(ignore)g(all)e(subsequen)o(t)k(commands)11 b(un)o(til)i(a)h
+Fl(here)f Fr(command)177 2661 y(is)h(encoun)o(tered.)177 2785
+y Fl(Syntax)43 b(:)21 b(skipto)g(=)g("skipto")177 2835 y(Examples:)f(skipto)
+1042 2940 y Fr(98)p eop
+%%Page: 99 100
+99 99 bop 177 42 a Fr(The)14 b Fl(skipto)p Fr(/)p Fl(here)c
+Fr(mec)o(hanism)h(w)o(as)i(created)i(to)e(allo)o(w)e(groups)i(of)g
+(regression)h(tests)h(to)e(b)q(e)g(skipp)q(ed)h(during)177
+91 y(debugging)c(without)f(ha)o(ving)g(to)h(commen)o(t)e(them)h(out.)17
+b(It)10 b(is)g(lik)o(e)f(a)h(cut)g(price)h Fl(goto)p Fr(.)16
+b(F)m(or)10 b(example,)f(supp)q(osing)177 141 y(that)15 b(there)h(w)o(ere)f
+(eigh)o(t)g(tests)h(and)e(that)h(y)o(ou)f(had)h(debugged)g(the)g(\014rst)h
+(\014v)o(e.)k(Y)m(ou)14 b(migh)o(t)f(w)o(an)o(t)h(to)h(skip)f(the)177
+191 y(\014rst)i(\014v)o(e)f(tests)h(so)g(that)f(y)o(ou)f(can)h(concen)o
+(trate)i(on)e(the)g(next)h(three.)22 b(The)16 b(follo)o(wing)c(co)q(de)k(sho)
+o(ws)f(ho)o(w)g(this)177 241 y(can)f(b)q(e)h(done.)177 359
+y Fl(skipto)177 409 y(execute)21 b(test)f(infile1)177 459 y(execute)h(test)f
+(infile2)177 509 y(execute)h(test)f(infile3)177 559 y(execute)h(test)f
+(infile4)177 608 y(execute)h(test)f(infile5)177 658 y(here)177
+708 y(execute)h(test)f(infile6)177 758 y(execute)h(test)f(infile7)177
+808 y(execute)h(test)f(infile8)177 926 y Fr(It)15 b(should)f(b)q(e)h
+(stressed)i(that)d(F)m(unnelW)m(eb)g(p)q(erforms)g(full)f(command)f(line)i
+(pro)q(cessing)h(including)f(the)h(dollar)177 976 y(substitutions)i(b)q
+(efore)g(testing)f(the)h(line)f(to)g(see)h(if)f(it)g(is)g Fl(here)p
+Fr(.)24 b(This)16 b(can)g(lead)g(to)g(non-ob)o(vious)f(problems.)177
+1026 y(F)m(or)f(example.)177 1144 y Fl(skipto)177 1194 y(!)22
+b(Test)f(the)g(Parser)177 1244 y(!)h(---------------)177 1294
+y(define)f(X)g("execute)f(parsertest.fws")177 1344 y($X)i(infile1)177
+1393 y($X)g(infile2)177 1443 y($X)g(infile3)177 1493 y($X)g(infile4)177
+1543 y($X)g(infile5)177 1593 y(here)177 1711 y Fr(The)14 b(ab)q(o)o(v)o(e)e
+(lo)q(oks)h(correct,)h(but,)f(b)q(ecause)i(the)e Fl(define)f
+Fr(command)e(isn't)j(executed)h(\(and)f Fl($X)g Fr(is)g(not)g(de\014ned\))177
+1761 y(the)h(subsequen)o(t)g Fl($X)f Fr(lines)g(result)g(in)g(a)f(leading)g
+(blanks)h(error.)18 b(The)c(problem)d(can)j(b)q(e)f(corrected)i(b)o(y)e
+(de\014ning)177 1811 y Fl($X)h Fr(b)q(efore)g(the)h Fl(skipto)d
+Fr(command.)177 1947 y Fo(3.15.7.19)48 b(Status)177 2050 y
+Fr(The)20 b Fl(status)e Fr(command)f(tak)o(es)i(t)o(w)o(o)g(forms.)33
+b(In)20 b(its)f(\014rst)h(form)e(in)h(whic)o(h)g(no)g(argumen)o(ts)g(are)g
+(giv)o(en,)h(it)177 2099 y(writes)13 b(out)f(the)h(n)o(um)o(b)q(er)e(of)h(w)o
+(arnings,)g(errors)h(and)f(sev)o(ere)i(errors)g(that)e(1\))g(w)o(ere)h
+(generated)h(b)o(y)e(the)g(previous)177 2149 y(command)j(and)j(2\))g(ha)o(v)o
+(e)f(b)q(een)i(generated)g(during)f(the)g(en)o(tire)h(shell)f(in)o(v)o(o)q
+(cation.)28 b(In)18 b(its)g(second)h(form)d(it)177 2199 y(tak)o(es)d(from)d
+(one)j(to)f(three)h(argumen)o(ts)f(eac)o(h)g(of)g(whic)o(h)g(sp)q(eci\014es)i
+(a)e(diagnostic)g(sev)o(erit)o(y)h(and)f(a)g(n)o(um)o(b)q(er.)k(The)177
+2249 y Fl(status)e Fr(command)e(compares)j(eac)o(h)g(of)g(these)h(n)o(um)o(b)
+q(ers)f(with)g(the)g(n)o(um)o(b)q(er)g(of)f(that)h(diagnostic)f(generated)177
+2299 y(b)o(y)g(the)g(previous)h(command)c(and)i(generates)j(a)d(sev)o(ere)j
+(error)f(if)e(they)h(di\013er.)177 2417 y Fl(Syntax)43 b(:)21
+b(status)g(=)g("status")f({s)i(\("w"|"e"|"s"\))d(num}0..3)177
+2467 y(Examples:)h(status)395 2517 y(status)h(w1)g(e5)g(s1)395
+2567 y(status)g(w4)395 2616 y(status)g(s1)g(e2)177 2735 y Fr(The)15
+b Fl(status)d Fr(command)g(w)o(as)h(in)o(tro)q(duced)i(to)f(test)h(the)g
+(status)f(results)i(of)d(commands)f(during)h(their)i(debug-)177
+2785 y(ging.)i(It)c(is)g(also)f(useful)h(for)g(c)o(hec)o(king)h(to)e(see)j
+(that)e(the)g(righ)o(t)g(n)o(um)o(b)q(er)f(of)h(diagnostics)f(ha)o(v)o(e)h(b)
+q(een)h(generated)177 2835 y(at)g(particular)g(p)q(oin)o(ts)f(in)h(test)h
+(scripts.)1042 2940 y(99)p eop
+%%Page: 100 101
+100 100 bop 177 42 a Fo(3.15.7.20)48 b(T)l(olerate)177 141
+y Fr(The)15 b Fl(tolerate)e Fr(command)f(instructs)k(the)f(shell)f(not)g(to)h
+(ab)q(ort)f(pro)q(cessing)i(of)e(the)h(script)g(if)f(the)h(next)g(com-)177
+191 y(mand)c(generates)k(one)e(or)g(more)f(w)o(arnings,)g(errors,)i(or)f(sev)
+o(ere)h(errors.)19 b(F)m(or)13 b(the)g(purp)q(oses)i(of)d(this)h(command,)177
+241 y(a)g(blank)f(line)h(coun)o(ts)g(as)h(a)e(command,)e(so)j(b)q(e)h(sure)g
+(to)f(place)g(the)h Fl(tolerate)d Fr(command)g(imm)o(ediately)f(ab)q(o)o(v)o
+(e)177 291 y(the)15 b(command)c(ab)q(out)j(whic)o(h)f(y)o(ou)h(wish)f(to)h(b)
+q(e)h(toleran)o(t.)177 401 y Fl(Syntax)21 b(:)g(tolerate)f(=)i("tolerate")177
+451 y(Example:)e(tolerate)177 561 y Fr(The)15 b(tolerate)f(command)d(w)o(as)j
+(in)o(tro)q(duced)h(to)e(allo)o(w)g(F)m(unnelW)m(eb)g(\(i.e.)g(the)i
+Fl(fw)e Fr(command\))e(to)j(b)q(e)h(tested)g(in)177 611 y(a)f(script)g(under)
+h(conditions)f(whic)o(h)f(w)o(ould)h(normally)d(cause)k(it)e(to)h(ab)q(ort)g
+(the)g(script.)177 741 y Fo(3.15.7.21)48 b(T)l(race)177 841
+y Fr(The)13 b Fl(trace)e Fr(command)e(turns)k(on)f(or)g(o\013)g(command)d
+(tracing)j(during)g(script)h(execution.)18 b(By)12 b(default,)g(tracing)177
+891 y(is)i(turned)h(o\013.)177 1001 y Fl(Syntax)43 b(:)21 b(trace)g(=)g
+("trace")g([s)g(\("on")g(|)h("off"\)])177 1051 y(Examples:)e(trace)h(on)395
+1101 y(trace)g(off)177 1211 y Fr(The)14 b Fl(trace)f Fr(command)e(w)o(as)j
+(in)o(tro)q(duced)h(to)f(assist)g(in)f(the)i(debugging)e(of)h(regression)h
+(test)g(scripts.)177 1342 y Fo(3.15.7.22)48 b(W)l(rite)177
+1441 y Fr(The)15 b Fl(write)e Fr(command)f(accepts)k(a)e(double-quoted)h
+(argumen)o(t)e(and)h(writes)i(it)e(follo)o(w)o(ed)f(b)o(y)h(an)g(EOL)h(to)f
+(the)177 1491 y(console)k(\(standard)g(output\).)29 b(There)19
+b(is)e(no)g(need)h(to)g(double)f(an)o(y)g(double)g(quotes)h(o)q(ccurring)g
+(within)f(the)177 1541 y(string.)177 1651 y Fl(Syntax)43 b(:)21
+b(write)g(=)g("write")g(s)g(string)177 1701 y(Examples:)f(write)h("Now)g
+(about)g(to)g(start)g(the)g(next)g(test.")395 1751 y(write)g("You)g(don't)g
+(need)g(to)g(")h(double)e(enclosed)g(double)h(quotes.")177
+1861 y Fr(The)13 b Fl(write)f Fr(command)d(w)o(as)k(added)f(so)h(as)g(to)f
+(allo)o(w)f(regression)j(testing)e(scripts)i(to)e(inform)f(the)i(user)g(of)f
+(their)177 1911 y(progress.)177 2041 y Fo(3.15.7.23)48 b(W)l(riteu)177
+2141 y Fr(The)14 b Fl(writeu)e Fr(command)e(is)j(iden)o(tical)g(to)g(the)h
+Fl(write)e Fr(command)e(except)15 b(that)e(it)g(underlines)h(the)g(text)g(on)
+f(an)177 2191 y(additional)f(follo)o(wing)f(output)k(line.)177
+2301 y Fl(Syntax)43 b(:)21 b(writeu)g(=)g("writeu")f(s)i(string)177
+2351 y(Examples:)e(writeu)h("Test)f(6")177 2511 y Fi(3.16)70
+b(Concluding)22 b(Remarks)177 2625 y Fr(This)d(c)o(hapter)i(de\014nes)f(the)g
+(seman)o(tics)f(of)f(the)i(F)m(unnelW)m(eb)f(program.)32 b(As)20
+b(stated)g(at)f(the)h(start)g(of)f(this)177 2675 y(c)o(hapter,)g(this)f(do)q
+(cumen)o(t)f(tak)o(es)h(precedence)i(o)o(v)o(er)e(the)g(F)m(unnelW)m(eb)f
+(program.)27 b(While)17 b(the)h(de\014nition)f(of)177 2725
+y(F)m(unnelW)m(eb)12 b(in)h(this)g(c)o(hapter)g(is)g(reasonably)g(solid,)e
+(it)i(is)f(far)h(from)e(w)o(atertigh)o(t,)h(and)h(it)f(is)h(hop)q(ed)g(that)g
+(it)g(can)177 2774 y(b)q(e)g(tigh)o(tened)g(further)g(in)f(future)h(v)o
+(ersions.)18 b(All)12 b(constructiv)o(e)i(criticism)d(will)g(b)q(e)i
+(gratefully)e(receiv)o(ed)j(b)o(y)e(the)177 2824 y(author)i(Ross)g(William)o
+(s)d(\()p Fl(ross@spam.adelaide.)o(edu.a)o(u)p Fr(\).)1032
+2940 y(100)p eop
+%%Page: 101 102
+101 101 bop 177 376 a Fj(Chapter)34 b(4)177 607 y Fp(F)-10
+b(unnelW)g(eb)41 b(Installation)177 846 y Fr(This)14 b(c)o(hapter)h(describ)q
+(es)h(ho)o(w)d(to)h(obtain,)f(compile,)e(and)j(install)f(F)m(unnelW)m(eb.)k
+(Y)m(ou)d(will)e(need:)239 955 y Fq(\017)21 b Fr(FTP)14 b(access)i(to)e(the)g
+(in)o(ternet)h Fm(or)e Fr(a)h(F)m(unnelW)m(eb)f(distribution)h(kit)f(on)h
+(disk.)239 1037 y Fq(\017)21 b Fr(A)d(Sun,)h(VMS)g(V)-5 b(AX,)18
+b(Macin)o(tosh,)h(or)f(PC)h Fm(or)f Fr(lots)g(of)f(extra)i(time)e(to)h(p)q
+(ort)h(F)m(unnelW)m(eb)e(to)h(a)g(new)281 1086 y(platform.)239
+1168 y Fq(\017)j Fr(Ab)q(out)15 b(four)f(megab)o(ytes)g(of)g(free)h(disk)f
+(space.)21 b(Y)m(ou)14 b(migh)o(t)e(b)q(e)j(able)g(to)f(install)f(it)h(with)h
+(less,)f(but)h(four)281 1217 y(megab)o(ytes)f(is)h(safe.)21
+b(The)15 b(distribution)f(kit)h(itself)f(is)h(ab)q(out)f(t)o(w)o(o)h(and)f(a)
+h(half)f(megab)o(ytes.)20 b(If)14 b(y)o(ou)g(are)281 1267 y(short)d(on)g
+(space,)h(y)o(ou)f(can)g(thro)o(w)g(a)o(w)o(a)o(y)f(ev)o(erything)h(after)g
+(installation)e(except)k(the)e(binary)g(executable)281 1317
+y(whic)o(h)j(will)e(consume)i(ab)q(out)f(half)g(a)h(megab)o(yte.)239
+1398 y Fq(\017)21 b Fr(A)14 b(C)g(compiler.)239 1479 y Fq(\017)21
+b Fr(An)16 b(acquain)o(tance)h(with)f(the)h(C)f(programming)d(language)j(and)
+g(the)h(abilit)o(y)d(to)j(compile)d(and)i(link)g(C)281 1529
+y(programs)d(on)g(y)o(our)h(mac)o(hine.)239 1610 y Fq(\017)21
+b Fr(Elemen)o(tary)13 b(systems)h(programming)c(kno)o(wledege)k(for)g(y)o
+(our)g(mac)o(hine.)239 1692 y Fq(\017)21 b Fr(Ab)q(out)14 b(an)g(hour.)177
+1802 y(Y)m(ou)f(will)f Fm(not)i Fr(need)g(an)o(y)f(sort)h(of)f(system)g
+(privileges)h(to)f(install)f(F)m(unnelW)m(eb,)h(unless)h(y)o(ou)f(w)o(an)o(t)
+g(the)h(F)m(unnel-)177 1851 y(W)m(eb)g(command)d Fl(fw)i Fr(to)h(b)q(e)g
+(automatically)d(a)o(v)n(ailable)h(to)i(ev)o(ery)o(one)g(on)g(y)o(our)g(mac)o
+(hine)e(as)i(w)o(ell)f(as)h(y)o(ourself.)177 2011 y Fi(4.1)70
+b(Obtaining)22 b(a)h(Cop)n(y)g(of)h(F)-6 b(unnelW)g(eb)177
+2125 y Fr(The)14 b(simplest)f(w)o(a)o(y)h(to)f(obtain)g(a)h(cop)o(y)g(of)f(F)
+m(unnelW)m(eb)h(is)f(b)o(y)h(anon)o(ymous)e(FTP)i(from:)243
+2235 y Fl(Machine)63 b(:)22 b(sirius.itd.adelaid)o(e.edu)o(.au)c
+([IP=129.127.40.3].)243 2285 y(Directory)h(:)j(~pub/funnelweb/)62
+b(\(or)22 b(a)f(directory)f(of)h(similar)g(name\).)177 2395
+y Fr(It)d(is)f(not)g(clear)h(at)f(the)h(time)e(of)h(writing)g(whether)h(F)m
+(unnelW)m(eb)f(will)f(b)q(e)i(presen)o(ted)h(as)f(a)f(\\)p
+Fl(.tar)p Fr(")f(\014le,)i(or)177 2444 y(as)e(a)g(directory)h(tree,)g(or)f(b)
+q(oth.)25 b(Just)17 b(sni\013)f(around)g(and)g(use)g(y)o(our)g(common)d
+(sense.)27 b(Tw)o(o)15 b(p)q(oin)o(ts)h(deserv)o(e)177 2494
+y(atten)o(tion)e(ho)o(w)o(ev)o(er:)228 2604 y(1.)20 b(Be)15
+b(sure)g(to)f(use)h(the)f Fm(text)g Fr(transfer)h(mo)q(de)e(whenev)o(er)j(y)o
+(ou)d(transfer)i(ra)o(w)f(F)m(unnelW)m(eb)g(\014les.)19 b(Ho)o(w)o(ev)o(er,)
+281 2654 y(y)o(ou)13 b(should)h(use)h Fm(binary)f Fr(mo)q(de)e(for)i(T)m(AR)f
+(\014les)h(and)g(other)h(conglomerate)d(represen)o(tations.)228
+2735 y(2.)20 b(If)13 b(y)o(ou)g(ha)o(v)o(e)g(to)g(transfer)i(the)f(\014les)f
+(individually)m(,)d(don't)j(lump)f(all)g(the)i(F)m(unnelW)m(eb)f(\014les)g
+(in)o(to)g(a)g(single)281 2785 y(directory)m(.)20 b(Refer)14
+b(to)h(the)g(sections)g(that)f(follo)o(w)f(for)h(information)d(on)j(the)h
+(directory)g(tree)h(y)o(ou)e(should)281 2835 y(create)h(to)f(receiv)o(e)h
+(the)g(F)m(unnelW)m(eb)e(\014les.)1032 2940 y(101)p eop
+%%Page: 102 103
+102 102 bop 177 42 a Fr(If)13 b(anon)o(ymous)f(FTP)h(is)g(not)h(a)o(v)n
+(ailable)d(to)i(y)o(ou,)f(con)o(tact)i(the)g(author)f(for)g(up-to-date)h
+(information)c(on)j(other)177 91 y(c)o(hannels)i(of)e(distribution.)243
+207 y Fl(Name:)42 b(Dr)21 b(Ross)g(N.)h(Williams)243 257 y(Email:)e
+(ross@spam.adelaide)o(.edu.)o(au)243 307 y(Snail:)g(16)h(Lerwick)g(Avenue,)f
+(Hazelwood)g(Park)h(5066,)g(Australia.)177 468 y Fi(4.2)70
+b(Establishing)21 b(The)i(Directory)f(T)-6 b(ree)177 584 y
+Fr(A)o(t)15 b(this)g(stage,)f(w)o(e)h(will)e(assume)h(that)h(y)o(ou)f(ha)o(v)
+o(e)h(someho)o(w)e(obtained)h(a)h(set)g(of)f(\014les)h(that)g(are)g(supp)q
+(osed)h(to)177 634 y(b)q(e)f(F)m(unnelW)m(eb,)f(and)h(that)f(they)i(are)f
+(sitting)f(on)g(a)h(disk)f(on)h(the)g(mac)o(hine)e(on)i(whic)o(h)f(y)o(ou)g
+(wish)h(to)f(compile)177 684 y(and)g(install)f(F)m(unnelW)m(eb.)177
+758 y(The)f(\014rst)g(thing)f(y)o(ou)f(ha)o(v)o(e)h(to)g(do)g(is)h(to)f(mak)o
+(e)e(sure)k(that)e(the)h(F)m(unnelW)m(eb)e(directory)i(tree)h(has)e(b)q(een)i
+(correctly)177 808 y(unpac)o(k)o(ed.)19 b(The)14 b(directory)h(tree)g(should)
+e(lo)q(ok)g(lik)o(e)g(this.)243 924 y Fl(fwdir)151 b(-)22 b(Root)f(FunnelWeb)
+f(directory.)308 973 y(admin)86 b(-)22 b(Administrative)d(files.)308
+1023 y(answers)42 b(-)22 b(Answers)e(to)h(test)g(suite.)308
+1073 y(hackman)42 b(-)22 b(FunnelWeb)e(Hacker's)g(Manual.)308
+1123 y(results)42 b(-)22 b(For)f(test)g(results.)308 1173 y(scripts)42
+b(-)22 b(Test)f(scripts.)308 1222 y(sources)42 b(-)22 b(Source)e(code.)308
+1272 y(tests)86 b(-)22 b(Test)f(suite.)308 1322 y(userman)42
+b(-)22 b(FunnelWeb)e(User's)g(Manual.)177 1438 y Fr(The)e(follo)o(wing)d
+(sections)j(describ)q(e)i(the)e(con)o(ten)o(ts)g(of)f(eac)o(h)h(directory)g
+(in)f(alphab)q(etical)g(order.)29 b(Chec)o(k)18 b(the)177 1488
+y(con)o(ten)o(ts)g(to)f(mak)o(e)e(sure)j(that)f(y)o(ou)g(ha)o(v)o(e)f(ev)o
+(erything.)28 b(Do)16 b(not)h(b)q(ecome)g(fussed)h(if)e(y)o(our)g
+(con\014guration)h(is)177 1537 y(not)d(quite)f(as)h(sp)q(eci\014ed)h(as)e(it)
+g(is)h(v)o(ery)g(easy)g(for)f(installation)e(guides)j(suc)o(h)g(as)g(this)f
+(one)h(to)g(go)f(out)g(of)g(date)h(as)177 1587 y(minor)g(last)h(min)o(ute)f
+(c)o(hanges)i(and)g(up)q(dates)g(are)g(made)f(to)g(the)h(distribution)f(kit.)
+22 b(Chec)o(k)17 b(the)f(source)h(from)177 1637 y(whic)o(h)d(y)o(ou)f
+(obtained)h(the)g(kit,)f(and)h(if)f(it)h(is)f(di\013eren)o(t)i(to)q(o,)e(pro)
+q(ceed.)177 1778 y Fd(4.2.1)55 b(Admin)18 b(Directory)177 1879
+y Fr(The)c Fl(admin)e Fr(directory)i(con)o(tains)f(administrativ)o(e)e
+(\014les)j(to)f(do)g(with)g(licensing)g(and)g(suc)o(h.)18 b(It)c(is)f(also)f
+(a)h(catc)o(h-)177 1929 y(all)e(directory)i(for)e(\014les)i(that)f(don't)f(b)
+q(elong)h(an)o(ywhere)g(else.)18 b(A)o(t)12 b(the)h(time)e(of)g(writing,)g
+(it)h(is)f(not)h(clear)h(exactly)177 1979 y(what)h(will)e(b)q(e)j(in)e(the)i
+Fl(admin)e Fr(directory)m(.)18 b(Wh)o(y)13 b(not)h(tak)o(e)g(a)g(lo)q(ok?)177
+2120 y Fd(4.2.2)55 b(Answ)n(ers)20 b(Directory)177 2221 y Fr(The)13
+b Fl(answers)f Fr(directory)h(con)o(tains)g(the)g(\\correct)h(answ)o(ers")g
+(to)f(all)e(the)j(regression)g(testing)f(input)f(\014les.)18
+b(The)177 2271 y(regression)d(test)g(scripts)g(compare)e(these)j(\014les)e
+(to)g(the)g(\014les)g(generated)i(in)d(the)i Fl(results)d Fr(directory)m(.)
+177 2386 y Fl(an01.lis)20 b(...)h(an04.lis)177 2436 y(ex01.lis)f(...)h
+(ex16.lis)177 2486 y(ex01.out)f(...)h(ex10.out)177 2536 y(ex11.tex)f(...)h
+(ex16.tex)177 2586 y(generate.lis)177 2635 y(hi01.lis)f(...)h(hi10.lis)177
+2685 y(hi01.out)f(...)h(hi05.out)177 2735 y(hi06a.out)177 2785
+y(hi06b.out)177 2835 y(hi07a.out)1032 2940 y Fr(102)p eop
+%%Page: 103 104
+103 103 bop 177 42 a Fl(hi07b.out)177 91 y(hi08.out)20 b(...)h(hi10.out)177
+141 y(pr01.lis)f(...)h(pr10.lis)177 191 y(sc01.lis)f(...)h(sc29.lis)177
+241 y(tg01.lis)f(...)h(tg09.lis)177 291 y(tg01.out)f(...)h(tg09.out)177
+340 y(wv01.lis)f(...)h(wv06.lis)177 390 y(wv01.tex)f(...)h(wv06.tex)177
+532 y Fd(4.2.3)55 b(Hac)n(kman)18 b(Directory)177 634 y Fr(The)c
+Fl(hackman)f Fr(directory)i(con)o(tains)e(the)i Fl(.tex)e Fr(\014les)h(that)g
+(mak)o(e)e(up)i(the)h Fm(F)m(unnelWeb)h(Hacker's)e(Manual)p
+Fr(.)177 750 y Fl(h_ch0.tex)107 b(-)22 b(Preface,)e(etc.)177
+800 y(h_ch1.tex)107 b(-)22 b(Design.)177 850 y(h_ch2.tex)107
+b(-)22 b(Implementation.)177 900 y(h_ch3.tex)107 b(-)22 b(Modification.)177
+949 y(h_ch4.tex)107 b(-)22 b(Future.)177 999 y(h_cha.tex)107
+b(-)22 b(Appendices.)177 1049 y(h_manual.tex)41 b(-)22 b(Main)f(TeX)g(file.)
+177 1166 y Fr(See)15 b(the)f(commen)o(t)e(at)h(the)i(top)e(of)h
+Fl(h)p 769 1166 14 2 v 15 w(manual.tex)e Fr(\014le)h(for)h(instructions)g(on)
+g(ho)o(w)f(to)h(t)o(yp)q(eset)h(and)f(prin)o(t)f(the)177 1216
+y Fm(F)m(unnelWeb)j(Hacker's)f(Manual)p Fr(.)177 1290 y(There)j(is)e(no)h
+(need)g(to)g(read)g(or)g(prin)o(t)f(the)h Fm(F)m(unnelWeb)i(Hacker's)e
+(Manual)g Fr(unless)h(y)o(ou)e(in)o(tend)h(to)f(mo)q(dify)177
+1340 y(F)m(unnelW)m(eb.)177 1482 y Fd(4.2.4)55 b(Results)18
+b(Directory)177 1584 y Fr(The)f Fl(results)f Fr(directory)h(exists)g(as)g(a)g
+(target)g(directory)g(for)g(the)g(output)g(\014les)g(generated)h(b)o(y)e(F)m
+(unnelW)m(eb)177 1633 y(during)d(regression)i(testing.)j(This)13
+b(directory)h(is)g(distributed)f(empt)o(y)g(and)g(should)g(b)q(e)h(empt)o(y)e
+(at)h(the)h(start)g(of)177 1683 y(regression)i(testing.)22
+b(Ho)o(w)o(ev)o(er,)15 b(it)f(is)h(p)q(ermissible)f(for)h(the)g
+Fl(results)e Fr(directory)j(to)f(con)o(tain)f(\014les)h(generated)177
+1733 y(during)i(a)f(previous)h(test)h(run,)g(as)f(the)g(regression)h(testing)
+g(scripts)g(delete)g(sp)q(eci\014c)g(un)o(w)o(an)o(ted)f(\014les)g(b)q(efore)
+177 1783 y(eac)o(h)e(test)g(an)o(yw)o(a)o(y)m(.)177 1925 y
+Fd(4.2.5)55 b(Scripts)19 b(Directory)177 2026 y Fr(The)h Fl(scripts)e
+Fr(directory)i(stores)h(the)f(F)m(unnelW)m(eb)f(command)e(shell)i(scripts)i
+(that)e(are)h(used)g(to)g(p)q(erform)177 2076 y(regression)15
+b(testing.)177 2193 y Fl(master.fws)85 b(-)22 b(The)f(master)g(test)g
+(script.)f(This)h(is)g(the)g(one)h(you)f(run.)177 2243 y(test_gen.fws)41
+b(-)22 b(Script)e(to)i(generate)e(certain)g(tricky)h(input)g(files.)177
+2292 y(test_l.fws)85 b(-)22 b(Test)f(FunnelWeb)f(with)h(+L.)177
+2342 y(test_ld.fws)63 b(-)22 b(Test)f(FunnelWeb)f(with)h(+L)g(+B...)177
+2392 y(test_lo.fws)63 b(-)22 b(Test)f(FunnelWeb)f(with)h(+L)g(+O.)177
+2442 y(test_lo2.fws)41 b(-)22 b(Test)f(FunnelWeb)f(with)h(+L)g(+O)g(\(two)g
+(output)g(files\).)177 2492 y(test_lot.fws)41 b(-)22 b(Test)f(FunnelWeb)f
+(with)h(+L)g(+O)g(+T.)177 2541 y(test_lt.fws)63 b(-)22 b(Test)f(FunnelWeb)f
+(with)h(+L)g(+T.)177 2683 y Fd(4.2.6)55 b(Sources)19 b(Directory)177
+2785 y Fr(The)g Fl(sources)d Fr(directory)j(con)o(tains)f Fm(al)r(l)f
+Fr(of)g(the)i(C)f(source)h(\014les)f(required)h(to)f(build)f(a)h(F)m(unnelW)m
+(eb)f(binary)177 2835 y(executable.)i(In)14 b(the)h(follo)o(wing)c(list,)i
+(\014les)h(giv)o(en)g(without)f(an)h(extension)g(represen)o(t)j(b)q(oth)d
+Fl(.c)f Fr(and)h Fl(.h)f Fr(\014les.)1032 2940 y(103)p eop
+%%Page: 104 105
+104 104 bop 177 42 a Fl(analyse)151 b(-)22 b(The)f(analyser.)177
+91 y(as)261 b(-)22 b(Assertions.)177 141 y(clock)195 b(-)22
+b(A)f(clock)g(abstraction.)177 191 y(command)151 b(-)22 b(The)f(shell)g
+(command)f(interpreter.)177 241 y(data)217 b(-)22 b(Shared)e(data)h
+(structures)f(and)h(global)g(variables.)177 291 y(dump)217
+b(-)22 b(Functions)e(to)h(dump)g(internal)f(data)h(structures.)177
+340 y(environ.h)107 b(-)22 b(Lightweight)d(machine-dependent,)f
+(program-independent)g(header.)177 390 y(help)217 b(-)22 b(Module)e(to)i
+(write)f(out)g(help)g(messages.)177 440 y(help_gnu)129 b(-)22
+b(Function)e(to)h(write)g(out)g(the)g(GNU)h(license.)177 490
+y(help_gnu.txt)41 b(-)22 b(The)f(GNU)g(license)g(in)g(text)g(form.)177
+540 y(help_gnu.ctx)41 b(-)22 b(The)f(GNU)g(license)g(in)g(C)h(code)e(form.)
+177 589 y(list)217 b(-)22 b(A)f(list)g(abstraction.)177 639
+y(lister)173 b(-)22 b(Module)e(to)i(manage)e(the)i(listing)e(file.)177
+689 y(machin)173 b(-)22 b(Module)e(to)i(hold)f(machine-dependen)o(t,)e
+(program-dependent)f(stuff.)177 739 y(main.c)173 b(-)22 b(The)f(main\(\))g
+(program.)177 789 y(mapper)173 b(-)22 b(Module)e(to)i(read)f(files)g(into)f
+(memory.)177 839 y(memory)173 b(-)22 b(Memory)e(management.)177
+888 y(misc)217 b(-)22 b(Miscellaneous)d(functions.)177 938
+y(option)173 b(-)22 b(Command)e(line)h(option)g(processing.)177
+988 y(parser)173 b(-)22 b(The)f(parser.)177 1038 y(scanner)151
+b(-)22 b(The)f(scanner.)177 1088 y(section)151 b(-)22 b(A)f(section)g(number)
+f(abstraction.)177 1137 y(style.h)151 b(-)22 b(A)f(machine-independent,)d
+(program-independen)o(t)h(header)i(file.)177 1187 y(table)195
+b(-)22 b(A)f(table)g(abstraction.)177 1237 y(tangle)173 b(-)22
+b(The)f(tangler.)177 1287 y(texhead)151 b(-)22 b(Module)e(to)i(write)f(out)g
+(TeX)g(header)f(in)i(documentation)d(files.)177 1337 y(texhead.ctx)63
+b(-)22 b(The)f(TeX)g(header)g(in)g(C)h(code)f(form.)177 1386
+y(texhead.tex)63 b(-)22 b(The)f(TeX)g(header)g(in)g(TeX)g(form.)177
+1436 y(weave)195 b(-)22 b(The)f(weaver.)177 1486 y(writfile)129
+b(-)22 b(Output)e(abstraction.)177 1594 y Fr(The)13 b(\\)p
+Fl(.txt)p Fr(",)f(and)g(\\)p Fl(.tex)p Fr(")g(\014les)h(do)f(not)h
+(participate)g(in)f(the)i(compilation,)c(but)j(are)g(considered)h(part)f(of)f
+(the)177 1644 y(source)17 b(co)q(de)g(as)f(they)g(w)o(ere)h(used)f(to)g
+(generate)h(the)f(\\)p Fl(.ctx)p Fr(")f(\014les.)24 b(The)16
+b(\\)p Fl(.ctx)p Fr(")e(\014les)j(are)f(included)g(b)o(y)f
+Fl(.c)177 1693 y Fr(\014les)f(of)g(the)g(same)f(name.)k(They)d(do)g(not)g
+(need)h(to)e(b)q(e)i(compiled)d(themselv)o(es.)177 1831 y Fd(4.2.7)55
+b(T)-5 b(ests)19 b(Directory)177 1930 y Fr(The)13 b Fl(tests)f
+Fr(directory)h(stores)h(all)d(the)i(input)f(\014les)h(of)f(the)h(regression)h
+(test)g(suite.)k(These)c(come)d(in)h(t)o(w)o(o)g(kinds:)177
+1980 y(F)m(unnelW)m(eb)k(input)g(\014les)h(with)f(extensions)i(of)e(\\)p
+Fl(.fw)p Fr(",)f(and)h(F)m(unnelW)m(eb)g(include)h(\014les)g(with)f
+(extensions)h(of)177 2030 y(\\)p Fl(.fwi)p Fr(".)177 2137 y
+Fl(FunnelWeb)j(Input)h(Files:)243 2187 y(an01.fw)f(...)h(an04.fw)86
+b(-)21 b(Analyser)g(tests.)243 2237 y(ex01.fw)f(...)h(ex16.fw)86
+b(-)21 b(Examples)g(from)f(the)i(tutorial)e(in)h(user)g(manual.)243
+2287 y(generate.fw)259 b(-)21 b(Generates)f(a)i(few)f(other)g(tricky)f(input)
+h(files.)243 2337 y(hi01.fw)f(...)h(hi10.fw)86 b(-)21 b(Examples)g(from)f
+(the)i(hints)e(chapter)h(in)g(user)g(manual.)243 2386 y(pr01.fw)f(...)h
+(pr10.fw)86 b(-)21 b(Parser)g(tests.)243 2436 y(sc01_note.fw)237
+b(-)21 b(A)h(note)f(explaining)f(absence)g(of)h(sc01.fw)243
+2486 y(sc02.fw)f(...)h(sc29.fw)86 b(-)21 b(Scanner)g(tests.)243
+2536 y(tg01.fw)f(...)h(tg09.fw)86 b(-)21 b(Tangler)g(tests.)243
+2586 y(wv01.fw)f(...)h(wv06.fw)86 b(-)21 b(Weaver)g(tests.)177
+2685 y(FunnelWeb)f(Include)g(Files:)243 2735 y(ex09a.fwi)243
+2785 y(sc13a.fwi)f(...)j(sc13f.fwi)243 2835 y(sc15a.fwi)1032
+2940 y Fr(104)p eop
+%%Page: 105 106
+105 105 bop 243 42 a Fl(tg08a.fwi)177 180 y Fd(4.2.8)55 b(Userman)18
+b(Directory)177 279 y Fr(The)c Fl(userman)f Fr(directory)i(con)o(tains)e(the)
+i Fl(.tex)e Fr(\014les)h(that)g(mak)o(e)e(up)i(the)h Fm(F)m(unnelWeb)h
+(User's)e(Manual)p Fr(.)177 388 y Fl(u_ch0.tex)107 b(-)22 b(Preface,)e(etc.)
+177 438 y(u_ch1.tex)107 b(-)22 b(Tutorial.)177 488 y(u_ch2.tex)107
+b(-)22 b(Hints.)177 538 y(u_ch3.tex)107 b(-)22 b(Definition.)177
+588 y(u_ch4.tex)107 b(-)22 b(Installation.)177 637 y(u_ch5.tex)107
+b(-)22 b(Administration.)177 687 y(u_cha.tex)107 b(-)22 b(Appendices.)177
+737 y(u_manual.tex)41 b(-)22 b(Main)f(TeX)g(file.)177 846 y
+Fr(See)15 b(the)f(commen)o(t)e(at)h(the)i(top)e(of)h Fl(u)p
+769 846 14 2 v 15 w(manual.tex)e Fr(\014le)h(for)h(instructions)g(on)g(ho)o
+(w)f(to)h(t)o(yp)q(eset)h(and)f(prin)o(t)f(the)177 896 y Fm(F)m(unnelWeb)j
+(User's)e(Manual)p Fr(.)177 1055 y Fi(4.3)70 b(Compiling)20
+b(F)-6 b(unnelW)g(eb)177 1169 y Fr(The)17 b(F)m(unnelW)m(eb)g(source)h(co)q
+(de)f(is)g(en)o(tirely)g(con)o(tained)g(within)f(the)h Fl(sources)e
+Fr(directory)m(.)27 b(Ho)o(w)o(ev)o(er,)18 b(some)177 1219
+y(simple)13 b(script)h(\014les)g(and)g(mak)o(e\014les)f(can)h(b)q(e)h(found)e
+(in)g(the)i Fl(admin)e Fr(directory)m(.)177 1292 y(F)m(unnelW)m(eb)j(con)o
+(tains)h(some)f(mac)o(hine-dep)q(enden)o(t)h(comp)q(onen)o(ts,)f(so)h(b)q
+(efore)g(compiling)d(F)m(unnelW)m(eb,)i(y)o(ou)177 1341 y(need)e(to)e(sp)q
+(ecify)h(y)o(our)g(mac)o(hine)e(in)h(the)i(source)g(\014le)e
+Fl(environ.h)p Fr(.)k(T)m(o)c(do)g(this,)h(edit)f(the)i Fl(environ.h)c
+Fr(\014le)j(and)177 1391 y(set)i(exactly)f(one)g(of)f(the)i(mac)o(hine)d
+(name)h Fl(#define)p Fr(s)g(to)h Fl(1)p Fr(.)j(F)m(or)d(example,)e(on)i(the)g
+(Sun)g(y)o(ou)g(should)f(set:)177 1500 y Fl(#define)21 b(MAC)g(0)177
+1550 y(#define)g(SUN)g(1)177 1600 y(#define)g(VMS)g(0)177 1650
+y(#define)g(PC)43 b(0)177 1759 y Fr(There)17 b(should)e(b)q(e)h(little)f
+(di\016cult)o(y)f(compiling)f(F)m(unnelW)m(eb)i(for)g(an)o(y)g(of)g(these)i
+(platforms.)k(If)15 b(the)h(mac)o(hine)177 1809 y(on)g(whic)o(h)g(y)o(ou)g
+(are)g(compiling)d(F)m(unnelW)m(eb)j(is)g(not)g(one)g(of)g(the)h(ones)f
+(listed)g(in)g(the)h Fl(environ.h)d Fr(\014le,)i(then)177 1859
+y(c)o(ho)q(ose)g(the)h(closest)f(one)g(y)o(ou)f(can.)23 b(T)m(ry)15
+b(the)h Fl(SUN)f Fr(if)g(y)o(ou)g(are)h(running)f(a)g(non-Sun)h(Unix.)22
+b(If)16 b(y)o(ou)f(run)g(in)o(to)177 1908 y(serious)g(di\016culties,)f(y)o
+(ou)f(will)g(ha)o(v)o(e)h(to)g(customize)g Fl(machin.h)e Fr(and)i
+Fl(machin.c)f Fr(for)h(y)o(our)g(mac)o(hine.)j(See)e(the)177
+1958 y(commen)o(ts)d(in)i(these)h(\014les)f(for)g(instructions)g(on)g(ho)o(w)
+g(to)f(do)h(this.)177 2031 y(Once)h(y)o(ou)f(ha)o(v)o(e)f(sp)q(eci\014ed)j(a)
+e(target)g(mac)o(hine,)e(compile)g(F)m(unnelW)m(eb)i(b)o(y)f(p)q(oin)o(ting)g
+(y)o(our)h(C)g(compiler)e(at)i(all)177 2081 y(the)j(\\)p Fl(.c)p
+Fr(")f(\014les)h(in)f(the)h Fl(sources)e Fr(directory)m(.)27
+b(The)17 b(\\)p Fl(.txt)p Fr(",)e(and)h(\\)p Fl(.tex)p Fr(")g(\014les)h(do)f
+(not)g(participate)h(in)f(the)177 2131 y(compilation,)11 b(but)j(app)q(ear)h
+(in)e(the)i Fl(sources)e Fr(directory)i(b)q(ecause)g(they)g(w)o(ere)g(used)g
+(to)f(generate)h(the)g(\\)p Fl(.ctx)p Fr(")177 2180 y(\014les.)21
+b(The)15 b(\\)p Fl(.ctx)p Fr(")e(\014les)i(are)g(included)g(b)o(y)g
+Fl(.c)f Fr(\014les)h(of)f(the)h(same)f(name)f(and)i(do)f(not)h(need)h(to)e(b)
+q(e)h(compiled)177 2230 y(separately)m(.)j(Link)c(the)g(results.)177
+2303 y(The)g(result)g(of)f(all)f(this)h(should)g(b)q(e)h(a)f(binary)g
+(executable)h(called)f Fl(fw)p Fr(,)g(or)g Fl(fw.exe)p Fr(,)f(or)h
+Fl(fw.xxx)f Fr(where)i Fl(.xxx)f Fr(is)177 2353 y(whatev)o(er)j(\014le)e
+(extension)h(is)g(appropriate)g(on)f(the)h(target)g(mac)o(hine.)k(Clean)c(up)
+f(the)h Fl(sources)f Fr(directory)h(b)o(y)177 2403 y(deleting)f(all)f(the)h
+(listing)f(and)h(ob)r(ject)g(\014les.)177 2562 y Fi(4.4)70
+b(T)-6 b(esting)22 b(F)-6 b(unnelW)g(eb)177 2676 y Fr(Once)13
+b(y)o(ou)d(ha)o(v)o(e)h(obtained)g(a)g(binary)g(executable,)h(y)o(ou)f
+(should)g(test)h(F)m(unnelW)m(eb)f(b)q(efore)h(making)c(it)j(a)o(v)n(ailable)
+177 2725 y(to)j(users.)19 b(T)m(o)14 b(do)f(this:)228 2835
+y(1.)20 b(Set)14 b(the)h(default)e(directory)i(to)f(b)q(e)g(the)h
+Fl(scripts)d Fr(directory)m(.)1032 2940 y(105)p eop
+%%Page: 106 107
+106 106 bop 228 42 a Fr(2.)20 b(Cop)o(y)14 b(the)i(F)m(unnelW)m(eb)e
+(executable)i(in)o(to)e(the)i(scripts)g(directory)g(\(or)f(b)q(e)g(able)g(to)
+g(in)o(v)o(ok)o(e)f(it)g(from)f(the)281 91 y(scripts)i(directory\).)228
+174 y(3.)20 b(Edit)d(the)h(script)g Fl(master.fws)p Fr(.)27
+b(Lo)q(cate)18 b(the)g(section)g(called)f(\\De\014ne)h(Sym)o(b)q(ol)d(F)m(or)
+i(the)h(Ro)q(ot)e(T)m(est)281 224 y(Directory")g(and)g(de\014ne)i(the)e
+Fl(R)g Fr(sym)o(b)q(ol)f(to)h(p)q(oin)o(t)g(to)g(the)g(F)m(unnelW)m(eb)g(ro)q
+(ot)g(directory)h Fl(fwdir)p Fr(.)24 b(The)281 274 y(examples)13
+b(in)g(the)i(commen)o(ts)d(in)h(the)i(script)f(should)g(mak)o(e)f(it)g(clear)
+h(what)g(is)g(required.)228 356 y(4.)20 b(In)o(v)o(ok)o(e)13
+b(F)m(unnelW)m(eb)h(to)f(execute)j(the)f(master)e(test)i(script)g(with)e(the)
+i(command)c(line)i Fl(fw)22 b(+xmaster)177 472 y Fr(The)16
+b Fl(master.fws)e Fr(script)j(should)e(run)h(for)g(a)f(few)h(min)o(utes.)23
+b(If)15 b(all)g(go)q(es)h(w)o(ell,)f(y)o(ou)h(will)e(\014nd)i(a)g
+(di\013erences)177 521 y(rep)q(ort)g(on)f(y)o(our)g(screen)i(rep)q(orting)f
+(zero)g(di\013erences.)24 b(If)14 b(this)h(happ)q(ens,)h(then)g(F)m(unnelW)m
+(eb)f(has)g(b)q(een)h(fully)177 571 y(tested)h(and)e(is)h(ready)g(to)f(b)q(e)
+h(made)e(a)o(v)n(ailable)f(to)j(users.)24 b(Y)m(ou)15 b(should)g(delete)h
+(all)e(the)i(\014les)g(in)f(the)h Fl(results)177 621 y Fr(directory)f(and)f
+(pro)q(ceed)h(to)f(the)g(next)h(section)f(on)g(installing)e(F)m(unnelW)m(eb)h
+(for)h(users.)177 695 y(If)e(there)i(w)o(ere)f(one)g(or)g(more)e
+(di\013erences,)k(y)o(ou)d(can)g(either)i(giv)o(e)e(up)g(and)g(con)o(tact)h
+(the)g(author,)g(or)f(attempt)g(to)177 745 y(\014x)j(the)g(co)q(de)h(y)o
+(ourself.)21 b(If)14 b(y)o(ou)g(decide)i(to)f(\014x)f(the)i(co)q(de)g(y)o
+(ourself,)e(start)h(with)g(the)g(di\013erences)i(log)d(\014le)h(and)177
+795 y(follo)o(w)d(y)o(our)i(nose.)k(Go)q(o)q(d)c(luc)o(k!)177
+957 y Fi(4.5)70 b(Installing)21 b(F)-6 b(unnelW)g(eb)177 1072
+y Fr(A)o(t)15 b(this)g(stage)g(y)o(ou)f(should)h(ha)o(v)o(e)g(a)f
+Fl(fwdir)g Fr(directory)h(tree)h(somewhere)f(in)g(y)o(our)f(\014le)h(system.)
+20 b(Its)c(con)o(ten)o(ts)177 1122 y(should)g(b)q(e)g(almost)d(iden)o(tical)i
+(to)h(the)g(directory)g(con)o(ten)o(ts)h(sp)q(eci\014ed)g(earlier)f(in)f
+(this)h(c)o(hapter)g(except)h(there)177 1172 y(should)d(no)o(w)f(b)q(e)i(an)e
+(additional)g(binary)g(executable)i(\014le)f(sitting)f(in)h(the)g
+Fl(scripts)f Fr(directory)m(.)177 1246 y(T)m(o)g(mak)o(e)g(F)m(unnelW)m(eb)g
+(a)o(v)n(ailable)f(to)h(users,)i(y)o(ou)f(should:)228 1361
+y(1.)20 b(Mak)o(e)14 b(the)g(en)o(tire)h(directory)g(tree)g(readable)f(to)g
+(all)e(users.)228 1444 y(2.)20 b(Mo)o(v)o(e)15 b(the)h(binary)f(executable)i
+(from)d(the)i(scripts)g(directory)g(to)g(the)g Fl(admin)e Fr(directory)i
+Fm(or)f Fr(cop)o(y)h(it)f(to)281 1494 y(somewhere)f(con)o(v)o(enien)o(t)g
+(suc)o(h)h(as)f(a)g Fl(/bin)f Fr(directory)m(.)228 1577 y(3.)20
+b(Set)d(up)f(a)g(sym)o(b)q(ol,)f(path,)i(or)f(command)e(of)h(some)h(kind)g(b)
+o(y)g(the)h(name)e(of)h Fl(fw)g Fr(that)g(\\p)q(oin)o(ts")g(to)g(the)281
+1626 y(binary)h(executable.)30 b(If)18 b(p)q(ossible,)g(set)g(this)g(up)g(so)
+f(that)h(the)g Fl(fw)f Fr(sym)o(b)q(ol)f(is)i(a)o(v)n(ailable)d(to)i(all)g
+(users.)281 1676 y(Alternativ)o(ely)m(,)j(y)o(ou)f(can)h(inform)d(in)o
+(terested)22 b(users)f(of)e(ho)o(w)g(they)h(can)g(add)g(a)f(command)e(to)i
+(their)281 1726 y Fl(login)13 b Fr(command)e(\014le)j(to)f(mak)o(e)g(the)h
+(command)d(a)o(v)n(ailable)h(to)i(them.)177 1841 y(If)i(y)o(ou)g(are)h(short)
+f(of)g(disk)g(space)h(or)g(ha)o(v)o(e)f(a)g(system)g(that)g(is)g(stressed)j
+(in)d(some)f(other)i(w)o(a)o(y)m(,)e(it)h(ma)o(y)e(b)q(e)j(of)177
+1891 y(assistance)g(to)f(y)o(ou)f(to)g(kno)o(w)g(that)h(F)m(unnelW)m(eb)f
+(has)h(b)q(een)h(constructed)h(so)d(that)h(its)g(binary)f(executable)i(is)177
+1941 y Fm(total)r(ly)d(self)g(c)n(ontaine)n(d)p Fr(.)19 b(The)14
+b(binary)e(executable)j(do)q(es)f(not)g(rely)f(on)g(an)o(y)g(other)i(\014les)
+e(to)h(op)q(erate.)k(Nor)c(do)q(es)177 1991 y(it)f(care)h(ab)q(out)f(its)g(p)
+q(osition)g(in)g(the)g(\014le)h(system.)j(In)c(fact,)g(all)f(that)h(is)g
+(really)g(required)h(to)f(use)h(F)m(unnelW)m(eb)f(is)177 2040
+y(the)g(binary)e(executable)i(and)f(the)h Fm(F)m(unnelWeb)h(User's)e(Manual)p
+Fr(.)19 b(Th)o(us,)12 b(if)f(y)o(ou)g(are)i(short)f(of)g(disk)f(space,)i(y)o
+(ou)177 2090 y(can)j(mo)o(v)o(e)f(the)i(binary)e(executable)j(to)d(y)o(our)h
+(\\)p Fl(/bin)p Fr(")f(directory)i(and)f(delete)h(the)g(en)o(tire)f(F)m
+(unnelW)m(eb)g(tree.)177 2140 y(Ho)o(w)o(ev)o(er,)e(making)d(the)k(tree)g(a)o
+(v)n(ailable)d(to)h(users)j(is)e(encouraged)g(b)q(ecause:)239
+2255 y Fq(\017)21 b Fr(It)14 b(allo)o(ws)f(users)i(to)f(cop)o(y)f(the)i(tree)
+g(and)f(install)f(it)g(on)h(another)g(mac)o(hine)f(without)g(b)q(othering)h
+(y)o(ou.)239 2338 y Fq(\017)21 b Fr(It)12 b(allo)o(ws)g(users)h(access)i(to)d
+(the)h(T)813 2347 y(E)836 2338 y(X)g(co)q(de)g(for)f(the)h
+Fm(F)m(unnelWeb)h(User's)f(Manual)g Fr(and)g(the)g Fm(F)m(unnelWeb)281
+2388 y(Hacker's)h(Manual)p Fr(.)239 2470 y Fq(\017)21 b Fr(It)13
+b(allo)o(ws)e(users)j(access)g(to)e(the)h(regression)h(test)g(suite.)k(This)
+12 b(ma)o(y)f(not)h(seem)h(imp)q(ortan)o(t,)d(but)j(it)f(could)281
+2520 y(b)q(e)k(v)o(ery)f(con)o(v)o(enien)o(t)h(for)f(the)h(user)g(as)f(the)h
+Fl(ex*)f Fr(and)g Fl(hi*)g Fr(\014les)g(of)g(the)h(regression)g(test)g(suite)
+g(con)o(tain)281 2570 y(most)f(of)h(the)g(examples)g(from)e(the)j
+Fm(F)m(unnelWeb)h(User's)e(Manual)p Fr(.)26 b(By)16 b(making)e(them)h(a)o(v)n
+(ailable)f(y)o(ou)281 2620 y(will)e(sa)o(v)o(e)i(users)i(the)e(trouble)g(of)g
+(t)o(yping)f(them)g(in.)177 2735 y(Finally)m(,)i(y)o(ou)h(should)h(\014ll)f
+(in)g(and)h(send)g(o\013)g(a)g(F)m(unnelW)m(eb)f(registration)h(form.)24
+b(This)17 b(allo)o(ws)f(me)f(to)i(get)g(a)177 2785 y(handle)g(on)g(the)g
+(size)h(and)f(needs)h(of)f(the)g(user)h(base,)g(and)f(y)o(ou)f(to)h(b)q(e)h
+(k)o(ept)f(informed)f(of)g(new)h(F)m(unnelW)m(eb)177 2835 y(releases)f
+(\(optional\).)h(See)d(Section)h(5.4)d(for)i(more)f(information.)1032
+2940 y(106)p eop
+%%Page: 107 108
+107 107 bop 177 42 a Fi(4.6)70 b(Prin)n(ting)22 b(Man)n(uals)177
+157 y Fr(F)m(unnelW)m(eb)d(comes)g(with)g(t)o(w)o(o)g(man)o(uals,)f(a)h
+Fm(F)m(unnelWeb)i(User's)e(Manual)h Fr(and)f(a)g Fm(F)m(unnelWeb)i(Hacker's)
+177 207 y(Manual)p Fr(.)k(Instructions)17 b(for)f(ho)o(w)f(to)h(t)o(yp)q
+(eset)h(and)f(prin)o(t)g(these)h(man)o(uals)d(app)q(ear)i(at)g(the)g(top)g
+(of)f(the)i(main)177 257 y(T)200 266 y(E)223 257 y(X)d(\014les)h(for)e(these)
+i(man)o(uals)d Fl(u)p 709 257 14 2 v 16 w(manual.tex)f Fr(and)j
+Fl(h)p 1059 257 V 16 w(manual.tex)p Fr(.)177 332 y(There)e(is)f(no)g(need)h
+(to)f(prin)o(t)g(the)h Fm(F)m(unnelWeb)h(Hacker's)f(Manual)g
+Fr(unless)f(y)o(ou)g(in)o(tend)g(to)g(mo)q(dify)e(F)m(unnelW)m(eb.)177
+381 y(Ho)o(w)o(ev)o(er,)k(y)o(ou)g(should)g(mak)o(e)f(a)h(few)g(copies)h(of)f
+(the)h Fm(F)m(unnelWeb)h(User's)e(Manual)h Fr(a)o(v)n(ailable)d(for)i(users,)
+i(or)e(at)177 431 y(least)i(let)f(them)f(kno)o(w)h(where)h(the)g(T)765
+440 y(E)788 431 y(X)f(source)i(for)e(the)h Fm(F)m(unnelWeb)h(User's)e(Manual)
+h Fr(is)f(k)o(ept)h(so)f(that)g(they)177 481 y(can)g(t)o(yp)q(eset)i(and)d
+(prin)o(t)h(it)g(themselv)o(es.)177 643 y Fi(4.7)70 b(Installation)21
+b(Problems?)177 759 y Fr(If)e(y)o(ou)g(run)g(in)o(to)g(an)o(y)g(problems)f
+(installing)f(F)m(unnelW)m(eb,)j(please)g(write)f(a)g(short)h(rep)q(ort)g
+(describing)g(the)177 809 y(problem)14 b(and)i(mail)d(it)i(to)g(the)h(author)
+g(Ross)f(Williams)e(\()p Fl(ross@spam.adelai)o(de.ed)o(u.au)o
+Fr(\).)21 b(I)15 b(ma)o(y)f(not)h(b)q(e)177 859 y(able)g(to)g(help)g(y)o(ou)f
+(with)h(it)f(immediately)l(,)e(but)j(I)g(certainly)g(w)o(an)o(t)g(to)f(kno)o
+(w)h(that)g(a)f(problem)g(exists)i(so)f(that)177 909 y(it)f(can)g(b)q(e)g
+(corrected)i(in)e(future)g(releases)i(of)d(F)m(unnelW)m(eb.)1032
+2940 y(107)p eop
+%%Page: 108 109
+108 108 bop 1032 2940 a Fr(108)p eop
+%%Page: 109 110
+109 109 bop 177 379 a Fj(Chapter)34 b(5)177 613 y Fp(F)-10
+b(unnelW)g(eb)41 b(Administration)177 881 y Fi(5.1)70 b(In)n(tro)r(duction)
+177 999 y Fr(Whether)21 b(a)e(computer)g(program)f(is)h(useful)h(dep)q(ends)h
+(not)f(just)f(on)g(the)i(functionalit)o(y)d(pro)o(vided)h(b)o(y)g(the)177
+1049 y(program,)13 b(but)i(also)g(on)g(the)g(totalit)o(y)f(of)g(the)i
+(culture)g(and)e(services)j(surrounding)e(it)g(suc)o(h)g(as)g(license)h
+(costs,)177 1098 y(the)j(qualit)o(y)e(of)h(do)q(cumen)o(tation,)f(presence)k
+(of)d(a)g(standard)h(and)f(so)g(on.)31 b(This)19 b(c)o(hapter)g(addresses)h
+(these)177 1148 y(issues)15 b(from)d(a)i(user)h(p)q(ersp)q(ectiv)o(e.)177
+1315 y Fi(5.2)70 b(The)22 b(User's)h(Commitme)o(n)n(t)d(T)-6
+b(o)24 b(F)-6 b(unnelW)g(eb)177 1434 y Fr(One)20 b(of)f(the)i(problems)d
+(that)i(migh)o(t)d(prev)o(en)o(t)k(p)q(oten)o(tial)e(users)i(from)c(using)j
+(F)m(unnelW)m(eb)f(is)g(the)h(lev)o(el)f(of)177 1483 y(commitm)o(en)o(t)14
+b(that)j(it)f(requires.)27 b(As)17 b(so)q(on)g(as)g(the)g(user)h(starts)f
+(creating)g(F)m(unnelW)m(eb)f Fl(.fw)g Fr(\014les,)h(the)h(user)177
+1533 y(b)q(ecomes)c(dep)q(enden)o(t)h(on)e(the)h(F)m(unnelW)m(eb)f(program,)f
+(as)h(the)h(\014les)g(so)f(created)i(will)d(b)q(ecome)i(unmanageable)177
+1583 y(if)i(the)h(F)m(unnelW)m(eb)f(program)f(w)o(ere)i(to)g(b)q(ecome)f(una)
+o(v)n(ailable)e(for)j(some)e(reason.)27 b(There)17 b(are)g(a)g(n)o(um)o(b)q
+(er)e(of)177 1633 y(w)o(a)o(ys)f(in)g(whic)o(h)h(computer)f(programs)f(can)i
+(b)q(ecome)f(una)o(v)n(ailable,)e(including)i(op)q(erating)g(system)h
+(upgrades,)177 1683 y(cop)o(yrigh)o(t)d(problems,)f(inabilit)o(y)f(to)h
+(\014x)h(bugs,)g(or)g(just)h(the)f(inabilit)o(y)e(of)h(the)i(program)d(to)i
+(b)q(e)h(p)q(orted)g(to)f(a)f(new)177 1732 y(target)k(platform.)177
+1809 y(The)j(fact)f(is)g(that)h(F)m(unnelW)m(eb)e(de\014nes)j(an)e(input)g
+(language)g(and)g(that)g(curren)o(tly)h(there)h(is)e(only)f(one)i(im-)177
+1859 y(plemen)o(tation)f(of)h(the)i(language.)32 b(Users)20
+b(will)d(only)h(write)i(programs)d(using)i(that)g(language)e(if)h(they)i
+(feel)177 1908 y(comfortable)12 b(ab)q(out)i(the)h(a)o(v)n(ailabili)o(t)o(y)c
+(of)i(its)h(implemen)o(tatio)o(n.)177 1985 y(I)i(ha)o(v)o(e)g(b)q(een)i
+(critically)d(a)o(w)o(are)h(of)g(these)i(issues)f(throughout)f(the)h(dev)o
+(elopmen)o(t)e(of)h(F)m(unnelW)m(eb)g(and)g(ha)o(v)o(e)177
+2034 y(tak)o(en)i(ev)o(ery)g(p)q(ossible)g(step)h(to)f(mak)o(e)e(F)m(unnelW)m
+(eb)h(a)h(solid)e(base)j(on)o(to)e(whic)o(h)h(to)f(build)g(programs.)28
+b(The)177 2084 y(follo)o(wing)11 b(p)q(oin)o(ts)j(describ)q(e)i(the)e
+(actions)g(I)g(ha)o(v)o(e)g(tak)o(en.)295 2161 y Fo(GNU)19
+b(license:)i Fr(F)m(unnelW)m(eb's)16 b(C)g(source)i(co)q(de)f(has)g(b)q(een)g
+(released)h(under)f(GNU)g(General)295 2210 y(Public)c(License)h(V)m(ersion)f
+(2.)18 b(This)13 b(means)f(that)h(the)h(source)g(co)q(de)g(to)f(F)m(unnelW)m
+(eb)f(will)g(alw)o(a)o(ys)295 2260 y(b)q(e)18 b(a)o(v)n(ailable)c(to)j(an)o
+(y)o(one)f(who)h(w)o(an)o(ts)g(it.)26 b(The)17 b(F)m(unnelW)m(eb)f(program)f
+(can)i(nev)o(er)h(b)q(e)g(tak)o(en)295 2310 y(a)o(w)o(a)o(y)13
+b(from)f(y)o(ou.)295 2386 y Fo(P)o(ortabili)o(t)n(y:)22 b Fr(F)m(unnelW)m(eb)
+17 b(has)g(b)q(een)h(designed)f(and)g(written)g(to)g(b)q(e)g(extremely)g(p)q
+(ortable.)295 2436 y(First,)g(all)e(F)m(unnelW)m(eb)h(really)g(do)q(es)h(is)f
+(read)h(and)g(write)f(text)h(\014les.)26 b(This)17 b(mak)o(es)e(it)h(easy)h
+(to)295 2486 y(mak)o(e)9 b(p)q(ortable.)17 b(Second,)11 b(F)m(unnelW)m(eb)f
+(is)g(written)g(in)g(the)h(C)f(programmi)o(ng)d(language)p
+Fo([ANSI])295 2536 y Fr(with)15 b(p)q(ortabilit)o(y)e(as)i(a)f(ma)r(jor)g
+(design)g(goal.)20 b(Third,)14 b(F)m(unnelW)m(eb)h(has)f(already)h(b)q(een)h
+(p)q(orted)295 2586 y(to)d(four)h(p)q(opular)e(platforms:)k(SunOS,)e(V)-5
+b(AX)14 b(VMS,)f(PC,)g(and)g(Macin)o(tosh)g(and)h(it)f(should)g(not)295
+2635 y(pro)o(v)o(e)j(hard)g(to)f(mo)o(v)o(e)f(it)h(to)h(others.)24
+b(F)m(ourth,)15 b(F)m(unnelW)m(eb)g(comes)h(with)f(a)g(h)o(uge)h(automated)
+295 2685 y(regression)g(test)f(suite.)20 b(This)14 b(mak)o(es)f(it)h(easy)h
+(to)f(pinp)q(oin)o(t)f(problems)g(when)i(it)f(is)g(mo)o(v)o(ed)f(to)h(a)295
+2735 y(new)f(platform.)j(P)o(ortabilit)o(y)11 b(is)h(imp)q(ortan)o(t)f(b)q
+(ecause,)k(ev)o(en)e(if)f Fm(you)h Fr(are)g(not)g(using)f(F)m(unnelW)m(eb)295
+2785 y(on)17 b(some)e(funn)o(y)h(platform,)f(y)o(ou)h(ma)o(y)e(w)o(an)o(t)j
+(to)f(send)h(a)g(computer)f(program)f(written)i(using)295 2835
+y(F)m(unnelW)m(eb)d(to)f(someone)h(who)f(do)q(es.)1032 2940
+y(109)p eop
+%%Page: 110 111
+110 110 bop 295 42 a Fo(Qualit)o(y:)27 b Fr(The)20 b(F)m(unnelW)m(eb)e
+(source)j(co)q(de)f(is)f(high)f(qualit)o(y)g(co)q(de.)35 b(Although)19
+b(it)f(has)i(not)295 91 y(b)q(een)13 b(formally)c(dev)o(elop)q(ed)j(under)g
+(an)o(y)f(particular)h(co)q(ding)f(standard,)h(it)f(is)h(w)o(ell)f(designed)h
+(and)295 141 y(do)q(cumen)o(ted.)18 b(Design)c(decisions)g(ha)o(v)o(e)g(not)g
+(b)q(een)h(tak)o(en)f(ligh)o(tly)m(.)295 216 y Fo(Do)q(cumen)o(tation:)20
+b Fr(F)m(unnelW)m(eb)c(is)g(w)o(ell)f(do)q(cumen)o(ted)h(b)o(y)g(this)h(man)o
+(ual)d(and)i(b)o(y)g(the)g Fm(F)m(un-)295 266 y(nelWeb)j(Hacker's)f(Manual)p
+Fr(.)29 b(This)17 b(is)g(imp)q(ortan)o(t)f(b)q(ecause)j(it)e(means)f(that)i
+(if)e(y)o(ou)h(w)o(an)o(t)g(to)295 316 y(send)c(someone)e(a)g(program)f
+(written)i(using)g(F)m(unnelW)m(eb,)f(y)o(ou)g(can)h(simply)d(p)q(oin)o(t)i
+(them)g(to)h(this)295 366 y(man)o(ual)c(rather)k(than)f(ha)o(ving)e(to)h
+(explain)g(it)h(all)e(y)o(ourself.)17 b(It)10 b(is)h(also)f(comforting)e(for)
+j(managers)295 415 y(who)j(are)h(con)o(trolling)e(source)i(co)q(de)g(to)f
+(kno)o(w)g(that)g(the)h(format)d(in)i(whic)o(h)g(the)g(source)i(co)q(de)f(is)
+295 465 y(written)g(is)e(w)o(ell-do)q(cumen)o(ted.)295 540
+y Fo(Standardizatio)o(n:)i Fr(Users)g(who)e(create)h(source)h(\014les)e
+(using)g(F)m(unnelW)m(eb)g(are)h(not)f(only)f(com-)295 590
+y(mitting)j(to)j(the)g(F)m(unnelW)m(eb)e(program;)h(they)h(are)g(also)f(in)o
+(v)o(esting)g(in)g(the)h(F)m(unnelW)m(eb)f(lan-)295 640 y(guage.)22
+b(If)14 b(F)m(unnelW)m(eb's)h(language)f(c)o(hanges)i(radically)d(for)i(some)
+f(reason,)i(then)g(this)f(in)o(v)o(est-)295 690 y(men)o(t)f(b)o(y)h(users)h
+(will)d(b)q(e)j(undermined.)k(T)m(o)14 b(protect)i(this)f(in)o(v)o(estmen)o
+(t,)f(I)h(in)o(tend)g(to)f(main)o(tain)295 740 y(an)g(\\o\016cial")e(v)o
+(ersion)j(of)e(F)m(unnelW)m(eb)h(whose)g(language)f(will)g(not)h(c)o(hange)h
+(radically)m(,)d(at)h(least)295 789 y(not)h(in)g(a)f(non)h(bac)o(kw)o(ard)g
+(compatible)e(manner.)177 864 y(It)17 b(is)f(m)o(y)f(hop)q(e)h(that)h(the)g
+(com)o(bination)d(of)i(these)h(factors)g(will)e(alleviate)g(an)o(y)h(fears)h
+(that)g(users)h(ma)o(y)c(ha)o(v)o(e)177 914 y(ab)q(out)g(committing)c(their)
+15 b(source)g(\014les)f(to)g(F)m(unnelW)m(eb.)177 1077 y Fi(5.3)70
+b(Do)r(cumen)n(tation)177 1194 y Fr(The)14 b(follo)o(wing)e(F)m(unnelW)m(eb)h
+(do)q(cumen)o(tation)g(is)h(a)o(v)n(ailable:)264 1311 y Fl("FunnelWeb)20
+b(User's)64 b(Manual":)20 b(Tutorial,)g(Hints,)h(Reference)f(Manual.)264
+1360 y("FunnelWeb)g(Hacker's)g(Manual":)g(Notes)h(on)g(Design)g(and)g
+(Implementation.)177 1477 y Fr(Ev)o(ery)o(one)14 b(in)o(v)o(olv)o(ed)e(with)h
+(F)m(unnelW)m(eb)f(should)h(read)h(the)g Fm(F)m(unnelWeb)h(User's)e(Manual)p
+Fr(.)19 b(It)13 b(con)o(tains)g(ev)o(ery-)177 1527 y(thing)h(y)o(ou)f(need)i
+(to)f(kno)o(w)f(ab)q(out)h(ho)o(w)f(to)h(use)h(F)m(unnelW)m(eb.)i(In)d(fact,)
+f(y)o(ou)h(are)g(reading)g(it)f(no)o(w!)177 1602 y(The)18 b
+Fm(F)m(unnelWeb)h(Hacker's)f(Manual)g Fr(is)f(for)g(those)h(who)f(w)o(an)o(t)
+g(to)g(install,)g(mo)q(dify)m(,)e(\014x,)i(\014ddle)h(with,)f(and)177
+1652 y(generally)d(hac)o(k)g(the)g(F)m(unnelW)m(eb)f(C)h(source)h(co)q(de.)
+177 1727 y(Both)h(of)e(these)j(man)o(uals)c(are)j(shipp)q(ed)g(with)e(the)i
+(F)m(unnelW)m(eb)f(distribution)g(kit,)f(and)h(should)g(b)q(e)h(a)o(v)n
+(ailable)177 1777 y(on)g(y)o(our)f(mac)o(hine)f(in)i(the)g(form)e(of)h(LaT)m
+(eX)g(text)i(\014les.)23 b(If)16 b(y)o(ou)f(cannot)h(\014nd)g(them,)f(y)o(ou)
+g(can)h(obtain)f(them)177 1827 y(from)d(the)j(F)m(unnelW)m(eb)e(FTP)h(arc)o
+(hiv)o(e)g(\(see)i(Section)e(5.11\).)177 1990 y Fi(5.4)70 b(Registration)177
+2106 y Fr(If)13 b(y)o(ou)g(install)g(or)g(use)i(F)m(unnelW)m(eb,)d(please)i
+(register)h(b)o(y)e(\014lling)f(in)h(and)h(returning)g(the)g(registration)f
+(form)f(in)177 2156 y Fo(Figure)i(4)p Fr(.)k(F)m(eel)c(free)h(to)e(expand)i
+(the)f(form)e(if)h(there)i(is)f(not)g(enough)g(ro)q(om.)177
+2231 y(Email)h(the)j(form)e(to)h Fl(ross@spam.adelaide)o(.edu.)o(au)p
+Fr(,)e(or)i(snail)g(mail)e(it)i(to)g(Ross)g(William)o(s,)f(16)g(Lerwic)o(k)
+177 2281 y(Av)o(en)o(ue,)c(Hazelw)o(o)q(o)q(d)f(P)o(ark)g(5066,)f(Australia.)
+17 b(Y)m(ou)11 b(ma)o(y)e(wish)i(to)g(mak)o(e)e(a)i(con)o(tribution)g(when)g
+(y)o(ou)g(register.)177 2331 y(See)k(Section)f(5.5)f(for)h(more)f
+(information.)177 2494 y Fi(5.5)70 b(Supp)r(ort)177 2610 y
+Fr(F)m(unnelW)m(eb)13 b(is)h(released)h(\\as)f(is")f(under)i(a)e(GNU)h
+(license,)g(and)g(no)f(formal)f(supp)q(ort)i(is)g(a)o(v)n(ailable.)i(Y)m(ou)d
+(ha)o(v)o(e)177 2660 y(the)20 b(righ)o(t)e(to)h(mak)o(e)e(c)o(hanges)j(to)f
+(F)m(unnelW)m(eb)f(and)h(to)g(use)h(the)f(mo)q(di\014ed)f(v)o(ersions)h
+(created)i(b)o(y)d(random)177 2710 y(programmers.)e(Ho)o(w)o(ev)o(er,)e(this)
+g(is)g(discouraged)g(\(see)h(Section)g(5.9\).)177 2785 y(In)h(fact)g(the)h
+(supp)q(ort)g(that)f(is)g(most)f(needed)i(is)f(y)o(our)g(\014nancial)f(supp)q
+(ort)i(for)f(the)g(F)m(unnelW)m(eb)g(dev)o(elop)q(ers!)177
+2835 y(It)h(has)g(tak)o(en)h Fm(months)f Fr(of)g(full-tim)o(e)e
+Fm(unp)n(aid)j Fr(w)o(ork)e(to)h(bring)g(F)m(unnelW)m(eb)g(to)f(y)o(ou)h(in)g
+(its)g(curren)o(t)h(form.)26 b(I)1032 2940 y(110)p eop
+%%Page: 111 112
+111 111 bop 264 602 a Fl(+------------------)o(----F)o(unnel)o(Web)19
+b(Registration)g(Form-------------)o(----)o(-----)o(+)264 652
+y(|)j(1.)f(Date:)1350 b(|)264 702 y(|)1547 b(|)264 751 y(|)22
+b(2.)f(Title)g(and)g(name:)1132 b(|)264 801 y(|)1547 b(|)264
+851 y(|)22 b(3.)f(Internet)f(email)h(address:)957 b(|)264 901
+y(|)1547 b(|)264 951 y(|)22 b(4.)f(Snail)g(mail)g(address:)1044
+b(|)264 1000 y(|)1547 b(|)264 1050 y(|)22 b(5.)f(Work)g(phone)g(number)g
+(\(country,area,n)o(umber)o(\):)585 b(|)264 1100 y(|)1547 b(|)264
+1150 y(|)22 b(6.)f(Which)g(category)f(of)i(FunnelWeb)e(user)g(best)h
+(describes)f(you?)326 b(|)264 1200 y(|)153 b(Latent)86 b(-)21
+b(Installed)f(FunnelWeb,)g(but)h(don't)g(intend)f(to)i(use)f(it.)86
+b(|)264 1250 y(|)153 b(Beginner)42 b(-)21 b(Haven't)g(used)g(FunnelWeb)e
+(much)i(yet;)g(have)g(an)h(open)f(mind.)f(|)264 1299 y(|)153
+b(Casual)86 b(-)21 b(Use)g(FunnelWeb)f(occasionally.)542 b(|)264
+1349 y(|)153 b(Convert)64 b(-)21 b(Use)g(FunnelWeb)f(to)i(do)f(most)g
+(programming.)324 b(|)264 1399 y(|)153 b(Fanatic)64 b(-)21
+b(FunnelWeb)f(has)h(become)g(a)g(way)h(of)f(life.)369 b(|)264
+1449 y(|)1547 b(|)264 1499 y(|)22 b(7.)f(What)g(changes)g(or)g(new)g
+(features)f(would)h(you)g(like)g(to)h(see)f(in)g(FunnelWeb?)63
+b(|)264 1548 y(|)1547 b(|)264 1598 y(|)g(|)264 1648 y(|)g(|)264
+1698 y(|)g(|)264 1748 y(|)g(|)264 1797 y(|)g(|)264 1847 y(|)22
+b(8.)f(Do)h(you)f(want)g(to)g(be)h(kept)f(informed)f(of)h(new)g(FunnelWeb)f
+(developments?)106 b(|)264 1897 y(|)1547 b(|)264 1947 y(+------------------)o
+(-----)o(-----)o(-----)o(----)o(-----)o(-----)o(-----)o(-----)o(-----)o(----)
+o(-----)o(+)343 2038 y Fh(T)m(o)433 b(register)e(as)h(a)281
+2088 y(F)m(unnelW)m(eb)13 b(user,)i(please)f(\014ll)g(in)h(this)f(form)g(and)
+g(email)f(it)i(to)g Fe(ross@spam.)o(ad)o(ela)o(ide)o(.ed)o(u.a)o(u)p
+Fh(,)e(or)h(snail)g(mail)281 2138 y(it)f(to)f(Ross)h(Williams,)e(16)i(Lerwic)
+o(k)f(Av)o(en)o(ue,)g(Hazelw)o(o)q(o)q(d)f(P)o(ark)h(5066,)g(Australia.)18
+b(Y)m(ou)13 b(ma)o(y)f(wish)g(to)h(mak)o(e)e(a)281 2188 y(con)o(tribution)d
+(when)j(y)o(ou)g(register.)i(See)e(Section)e(5.5)i(for)g(more)f(information.)
+650 2279 y Fo(Figure)k(4)p Fr(:)k(The)d(F)m(unnelW)m(eb)e(registration)h
+(form.)1032 2940 y(111)p eop
+%%Page: 112 113
+112 112 bop 177 42 a Fr(don't)15 b(w)o(an)o(t)f(to)h(incon)o(v)o(enience)g
+(users)i(who)d(install)g(F)m(unnelW)m(eb,)g(pla)o(y)g(with)g(it,)h(and)f
+(then)i(hardly)e(ev)o(er)i(use)177 91 y(it.)i(If)c(y)o(ou)g(are)g(in)g(this)g
+(category)m(,)f(please)i(register,)g(but)f(don't)g(b)q(other)h(con)o
+(tributing.)j(Ho)o(w)o(ev)o(er,)c(if)f(y)o(ou)h(\014nd)177
+141 y(that)h(F)m(unnelW)m(eb)f(has)h(b)q(ecome)g(a)f(useful)h(programming)c
+(to)q(ol,)j(a)g(con)o(tribution)h(of)f(some)g(p)q(ositiv)o(e)g(m)o(ultiple)
+177 191 y(of)f(US$50)h(w)o(ould)f(b)q(e)h(appreciated.)177
+266 y(T)m(o)f(mak)o(e)g(a)g(con)o(tribution,)g(send)i(pa)o(ymen)o(t)e(with)g
+(a)h(completed)f(registration)h(form)e(\(see)j(Section)g(5.4\))e(to:)243
+382 y Fl(Renaissance)19 b(Software)h(Pty)h(Ltd)243 432 y(Email:)f
+(ross@spam.adelaide)o(.edu.)o(au)243 482 y(Snail:)g(16)h(Lerwick)g(Avenue,)f
+(Hazelwood)g(Park)h(5066,)g(Australia.)177 598 y Fr(P)o(a)o(ymen)o(t)14
+b(can)h(b)q(e)g(b)o(y)g(p)q(ersonal)g(or)g(bank)g(c)o(heque)h(to)e(an)o(y)h
+(bank)g(in)f(the)h(w)o(orld)g(or)g(b)o(y)f(Visa)h(or)g(Mastercard.)177
+648 y(Please)j(giv)o(e)e(the)h(card)g(name,)f(n)o(um)o(b)q(er,)g(expiry)h
+(date,)g(and)g(the)g(amoun)o(t)e(to)h(b)q(e)i(paid)e(in)g(US)h(dollars.)26
+b(All)177 698 y(con)o(tributions)16 b(will)f(b)q(e)i(appreciated)g(and)f
+(will)f(encourage)i(further)g(F)m(unnelW)m(eb)f(dev)o(elopmen)o(t.)24
+b(Ho)o(w)o(ev)o(er,)177 748 y(no)14 b(undertaking)g(is)f(made)g(whatso)q(ev)o
+(er)i(ab)q(out)f(ho)o(w)f(the)i(money)d(will)h(b)q(e)h(used.)177
+910 y Fi(5.6)70 b(Cop)n(yrigh)n(t)177 1026 y Fr(The)14 b(F)m(unnelW)m(eb)g
+(program)e(is)i(Cop)o(yrigh)o(t)894 1025 y(c)883 1026 y Fq(\015)f
+Fr(1992)g(Ross)h(William)o(s.)177 1101 y(Ho)o(w)o(ev)o(er,)28
+b(F)m(unnelW)m(eb)d(has)g(b)q(een)i(released)f(b)o(y)f(the)h(author)g(and)f
+(cop)o(yrigh)o(t)f(o)o(wner)i(Ross)f(William)o(s)177 1151 y(\()p
+Fl(ross@spam.adelaide.)o(edu.a)o(u)p Fr(\))16 b(under)k(V)m(ersion)f(2)f(of)g
+(the)i(GNU)e(General)h(Public)g(License)h(published)177 1201
+y(b)o(y)14 b(the)g(F)m(ree)h(Soft)o(w)o(are)f(F)m(oundation.)i(Here)f(are)g
+(some)e(w)o(a)o(ys)g(that)h(y)o(ou)g(can)g(obtain)f(a)h(cop)o(y)f(of)h(this)g
+(license.)239 1317 y Fq(\017)21 b Fr(The)14 b(license)h(app)q(ears)g(as)f(an)
+f(app)q(endix)h(in)g(the)g Fm(F)m(unnelWeb)i(Hacker's)f(Manual)p
+Fr(.)239 1401 y Fq(\017)21 b Fr(If)13 b(y)o(ou)h(ha)o(v)o(e)g(a)f(w)o(orking)
+g(v)o(ersion)h(of)f(F)m(unnelW)m(eb,)g(in)o(v)o(ok)o(e)g(it)h(with)f
+Fl(fw)22 b(+hlicense)e(+jlicense.txt)p Fr(.)239 1484 y Fq(\017)h
+Fr(Lo)q(ok)13 b(in)h(the)g Fl(help)f Fr(mo)q(dule)g(of)g(the)h(F)m(unnelW)m
+(eb)g(source)h(co)q(de.)239 1567 y Fq(\017)21 b Fr(FTP)14 b(the)h(license)f
+(from)e Fl(prep.ai.mit.edu)f Fr(in)j Fl(/pub/gnu/COPYIN)o(G-2)p
+Fr(.)239 1650 y Fq(\017)21 b Fr(W)m(rite)13 b(to)h(the)h(F)m(ree)f(Soft)o(w)o
+(are)g(F)m(oundation,)e(Inc.,)h(675)h(Mass)g(Av)o(e,)g(Cam)o(bridge,)d(MA)j
+(02139,)e(USA.)177 1767 y(The)i(license)h(allo)o(ws)d(y)o(ou)i(to)f
+(redistribute)i(F)m(unnelW)m(eb)f(and/or)f(mo)q(dify)e(it)j(under)g(certain)h
+(conditions.)i(The)177 1817 y(license)e(do)q(es)g(not)f(co)o(v)o(er)h(the)g
+Fm(F)m(unnelWeb)h(User's)f(Manual)g Fr(and)f Fm(F)m(unnelWeb)i(Hacker's)f
+(Manual)g Fr(whic)o(h)f(are)177 1867 y(distributed)h(under)f(a)g(simpler)f
+(license)h(that)g(prohibits)g(c)o(hanges.)177 1941 y(Note:)23
+b(F)m(unnelW)m(eb)15 b(is)h(distributed)g(WITHOUT)g(ANY)g(W)-5
+b(ARRANTY;)15 b(without)h(ev)o(en)g(the)h(implied)c(w)o(ar-)177
+1991 y(ran)o(t)o(y)h(of)f(MER)o(CHANT)m(ABILITY)h(or)g(FITNESS)g(F)o(OR)g(A)g
+(P)m(AR)m(TICULAR)f(PURPOSE.)177 2154 y Fi(5.7)70 b(No)n(w)n(arran)n(t)n(y)
+177 2270 y Fr(Users)15 b(of)e(F)m(unnelW)m(eb)g(should)g(b)q(e)h(a)o(w)o(are)
+f(that)h(F)m(unnelW)m(eb)e(comes)h(with)g(no)h(w)o(arran)o(t)o(y)m(.)j(Here)d
+(is)g(an)f(extract)177 2320 y(from)e(the)i(GNU)f(General)g(Public)g(License)i
+(V)m(ersion)e(2,)g(under)h(whic)o(h)g(F)m(unnelW)m(eb)e(is)i(distributed.)18
+b(F)m(or)12 b(more)177 2369 y(information)f(see)k(Section)g(5.6.)308
+2486 y Fl(11.)21 b(BECAUSE)f(THE)i(PROGRAM)e(IS)h(LICENSED)f(FREE)h(OF)h
+(CHARGE,)e(THERE)h(IS)g(NO)h(WARRANTY)264 2536 y(FOR)g(THE)f(PROGRAM,)f(TO)h
+(THE)g(EXTENT)g(PERMITTED)f(BY)h(APPLICABLE)f(LAW.)43 b(EXCEPT)20
+b(WHEN)264 2586 y(OTHERWISE)g(STATED)h(IN)g(WRITING)g(THE)g(COPYRIGHT)f
+(HOLDERS)g(AND/OR)h(OTHER)f(PARTIES)264 2635 y(PROVIDE)h(THE)g(PROGRAM)f("AS)
+h(IS")h(WITHOUT)e(WARRANTY)g(OF)h(ANY)h(KIND,)e(EITHER)h(EXPRESSED)264
+2685 y(OR)h(IMPLIED,)e(INCLUDING,)g(BUT)h(NOT)g(LIMITED)f(TO,)h(THE)h
+(IMPLIED)e(WARRANTIES)g(OF)264 2735 y(MERCHANTABILITY)f(AND)i(FITNESS)g(FOR)g
+(A)g(PARTICULAR)f(PURPOSE.)42 b(THE)21 b(ENTIRE)g(RISK)g(AS)264
+2785 y(TO)h(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)264 2835 y(PROGRAM)h(PROVE)f(DEFECTIVE,)g
+(YOU)h(ASSUME)g(THE)g(COST)g(OF)g(ALL)h(NECESSARY)e(SERVICING,)1032
+2940 y Fr(112)p eop
+%%Page: 113 114
+113 113 bop 264 42 a Fl(REPAIR)21 b(OR)g(CORRECTION.)308 141
+y(12.)g(IN)g(NO)h(EVENT)f(UNLESS)f(REQUIRED)g(BY)i(APPLICABLE)d(LAW)j(OR)f
+(AGREED)g(TO)g(IN)g(WRITING)264 191 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)264 241
+y(REDISTRIBUTE)f(THE)h(PROGRAM)f(AS)i(PERMITTED)d(ABOVE,)i(BE)g(LIABLE)g(TO)g
+(YOU)h(FOR)f(DAMAGES,)264 291 y(INCLUDING)f(ANY)h(GENERAL,)g(SPECIAL,)f
+(INCIDENTAL)f(OR)j(CONSEQUENTIAL)d(DAMAGES)h(ARISING)264 340
+y(OUT)i(OF)f(THE)g(USE)g(OR)h(INABILITY)e(TO)h(USE)g(THE)g(PROGRAM)g
+(\(INCLUDING)e(BUT)j(NOT)f(LIMITED)264 390 y(TO)h(LOSS)f(OF)g(DATA)g(OR)g
+(DATA)g(BEING)g(RENDERED)f(INACCURATE)g(OR)h(LOSSES)g(SUSTAINED)f(BY)264
+440 y(YOU)i(OR)f(THIRD)g(PARTIES)f(OR)h(A)h(FAILURE)e(OF)i(THE)f(PROGRAM)f
+(TO)i(OPERATE)e(WITH)h(ANY)g(OTHER)264 490 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)264
+540 y(POSSIBILITY)e(OF)h(SUCH)g(DAMAGES.)177 726 y Fi(5.8)70
+b(Distribution)177 853 y Fr(Users)15 b(of)d(F)m(unnelW)m(eb)h(should)f(b)q(e)
+i(a)o(w)o(are)f(that)g(they)h(can)f(distribute)g(the)h(program)e(freely)m(.)
+17 b(The)d(follo)o(wing)c(is)177 903 y(an)h(extract)h(from)e(the)i(GNU)f
+(General)g(Public)g(License)h(V)m(ersion)g(2,)f(under)h(whic)o(h)f(F)m
+(unnelW)m(eb)g(is)g(distributed.)308 1038 y Fl(1.)21 b(You)g(may)h(copy)f
+(and)g(distribute)f(verbatim)g(copies)g(of)i(the)f(Program's)264
+1088 y(source)g(code)g(as)g(you)g(receive)g(it,)g(in)g(any)g(medium,)g
+(provided)f(that)h(you)264 1138 y(conspicuously)e(and)j(appropriately)d
+(publish)h(on)h(each)g(copy)g(an)h(appropriate)264 1187 y(copyright)e(notice)
+h(and)g(disclaimer)f(of)h(warranty;)f(keep)h(intact)g(all)g(the)264
+1237 y(notices)g(that)g(refer)f(to)i(this)f(License)f(and)h(to)h(the)f
+(absence)f(of)i(any)f(warranty;)264 1287 y(and)h(give)e(any)i(other)e
+(recipients)g(of)i(the)f(Program)f(a)i(copy)f(of)g(this)g(License)264
+1337 y(along)g(with)g(the)g(Program.)264 1436 y(You)h(may)f(charge)f(a)i(fee)
+f(for)g(the)g(physical)f(act)i(of)f(transferring)e(a)j(copy,)f(and)264
+1486 y(you)h(may)f(at)g(your)g(option)g(offer)f(warranty)g(protection)g(in)i
+(exchange)e(for)h(a)g(fee.)177 1622 y Fr(The)14 b(license)h(also)e(allo)o(ws)
+g(y)o(ou)g(other)i(freedoms.)j(F)m(or)13 b(more)g(information)e(see)k
+(Section)f(5.6.)177 1808 y Fi(5.9)70 b(Mo)r(di\014cation)177
+1935 y Fr(F)m(unnelW)m(eb)16 b(is)g(distributed)g(under)h(a)f(GNU)g(license,)
+h(and)f(y)o(ou)g(are)g(free)h(to)f(mo)q(dify)e(the)j(source)g(co)q(de)g(and)
+177 1985 y(distribute)12 b(mo)q(di\014ed)e(copies)i(\(see)h(Section)f(5.6\).)
+k(Ho)o(w)o(ev)o(er,)c(there)h(are)e(go)q(o)q(d)g(reasons)i(wh)o(y)e(y)o(ou)g
+(should)g(a)o(v)o(oid)177 2034 y(doing)i(this.)228 2170 y(1.)20
+b(If)13 b(y)o(ou)g(distribute)h(mo)q(di\014ed)d(v)o(ersions)j(of)f(F)m
+(unnelW)m(eb,)f(y)o(ou)h(run)h(the)g(risk)f(of)g(creating)g(a)g(v)o(ersion)h
+(that)281 2220 y(will)e(div)o(erge)i(from)f(the)h(\\o\016cial")e(v)o(ersion)i
+(of)f(F)m(unnelW)m(eb)h(that)g(I)f(in)o(tend)h(to)g(main)o(tain.)228
+2318 y(2.)20 b(If)13 b(y)o(ou)f(release)i(a)f(v)o(ersion)g(of)g(F)m(unnelW)m
+(eb)f(with)h(a)f(c)o(hanged)i(input)f(language,)e(users)k(of)d(y)o(our)h(mo)q
+(di\014ed)281 2368 y(v)o(ersion)g(will)f(create)i(source)g(\014les)g(that)f
+(will)e(no)i(longer)g(w)o(ork)g(on)g(other)g(v)o(ersions)h(of)e(F)m(unnelW)m
+(eb.)17 b(The)281 2418 y(result)e(w)o(ould)e(b)q(e)h(c)o(haos.)177
+2553 y(F)m(or)d(these)i(reasons)g(I)e(request)j(that)d(y)o(ou)g(do)h(not)f
+(distribute)h(mo)q(di\014ed)e(v)o(ersions)j(of)e(F)m(unnelW)m(eb,)g
+(particularly)177 2603 y(v)o(ersions)19 b(with)g(a)f(mo)q(di\014ed)g
+(language.)31 b(Ho)o(w)o(ev)o(er,)20 b(if)e(y)o(ou)g(m)o(ust)g(distribute)h
+(a)f(v)o(ersion)h(with)g(a)f(mo)q(di\014ed)177 2653 y(language,)13
+b Fm(ple)n(ase)j(change)g(its)f(name)g Fr(\(i.e.)e(from)g(\\F)m(unnelW)m(eb")
+h(to)g(something)f(else\).)20 b(Please)c(also)d(allo)q(cate)177
+2702 y(a)19 b(new)h(\014le)f(extension)i(to)e(replace)h(\\)p
+Fl(.fw)p Fr(")e(as)i(the)g(extension)g(for)f(source)i(\014les)e(written)h(in)
+f(the)h(mo)q(di\014ed)177 2752 y(language.)177 2835 y(F)m(or)14
+b(more)f(information,)d(refer)15 b(to)f(the)g Fm(F)m(unnelWeb)i(Hacker's)f
+(Manual)p Fr(.)1032 2940 y(113)p eop
+%%Page: 114 115
+114 114 bop 177 42 a Fi(5.10)70 b(V)-6 b(ersions)177 157 y
+Fr(F)m(unnelW)m(eb)1502 b(w)o(as)177 207 y(created)19 b(in)f(1986)f(and)g(w)o
+(as)h(used)g(extensiv)o(ely)h(b)o(y)e(Ross)h(William)o(s)d(\()p
+Fl(ross@spam.adelaide.)o(edu.a)o(u)p Fr(\))g(for)177 257 y(three)k(y)o(ears.)
+29 b(Ho)o(w)o(ev)o(er,)18 b(V)m(ersion)g(1.0)e(w)o(as)h(written)h(in)f(Ada)h
+(and)f(w)o(as)g(not)g(v)o(ery)h(p)q(ortable)g(\(it)f(w)o(as)g(fairly)177
+307 y(V)-5 b(AX/VMS)16 b(sp)q(eci\014c\).)24 b(Da)o(vid)14
+b(Hulse)i(\()p Fl(dave@cs.adelaide.e)o(du.au)o Fr(\))d(to)q(ok)i(the)h
+(\014rst)g(step)g(to)o(w)o(ards)f(a)g(re-)177 357 y(lease)j(b)o(y)e
+(translating)g(the)i(Ada)e(co)q(de)i(in)o(to)e(C.)h(Ross)f(Williams)e(then)j
+(extensiv)o(ely)h(rew)o(ork)o(ed)f(the)h(C)e(co)q(de,)177 406
+y(making)c(it)h(robust)i(and)e(p)q(ortable,)h(adding)f(new)h(features,)h(and)
+f(p)q(olishing)e(it)i(to)f(its)h(curren)o(t)i(form.)199 523
+y Fl(Vers)43 b(Lang)f(Created)h(Released)63 b(Author)217 b(Copyright)129
+b(Licensing)199 572 y(----)43 b(----)f(-------)h(--------)63
+b(--------------)41 b(-------------)g(---------)199 622 y(V1.0)i(Ada)64
+b(1986)109 b(Never)129 b(Ross)43 b(Williams)f(Ross)21 b(Williams)199
+672 y(V2.0)43 b(C)108 b(1989)h(Never)129 b(David)21 b(Hulse)108
+b(Public)21 b(domain)42 b(No)21 b(restriction.)199 722 y(V3.0)43
+b(C)108 b(1992)h(May-1992)63 b(Ross)43 b(Williams)f(Ross)21
+b(Williams)42 b(GNU)21 b(release.)177 838 y Fr(This)14 b(man)o(ual)d(w)o(as)j
+(released)h(for:)286 954 y Fl(*)22 b(FunnelWeb)150 b(V3.0.)286
+1004 y(*)22 b(User's)e(Manual)64 b(V1.0.)286 1054 y(*)22 b(Hacker's)e(Manual)
+g(V1.0.)286 1104 y(*)i(TeX)f(Definitions)e(V1.0.)177 1266 y
+Fi(5.11)70 b(FTP)23 b(Arc)n(hiv)n(e)f(and)i(Author)177 1382
+y Fr(The)14 b(F)m(unnelW)m(eb)g(FTP)g(arc)o(hiv)o(e)g(is:)243
+1498 y Fl(Machine)63 b(:)22 b(sirius.itd.adelaid)o(e.edu)o(.au)c
+([IP=129.127.40.3].)243 1548 y(Directory)h(:)j(~pub/funnelweb/)62
+b(\(or)22 b(a)f(directory)f(of)h(similar)g(name\).)177 1664
+y Fr(The)14 b(author)g(of)g(F)m(unnelW)m(eb)f(and)h(this)g(man)o(ual)d(is:)
+243 1780 y Fl(Name:)42 b(Dr)21 b(Ross)g(N.)h(Williams)243 1830
+y(Email:)e(ross@spam.adelaide)o(.edu.)o(au)243 1880 y(Snail:)g(16)h(Lerwick)g
+(Avenue,)f(Hazelwood)g(Park)h(5066,)g(Australia.)177 1996 y
+Fr(I)11 b(in)o(tend)g(to)g(main)o(tain)d(an)i(\\o\016cial")f(v)o(ersion)i(of)
+f(F)m(unnelW)m(eb)h(whic)o(h)f(I)h(will)f(release)i(under)f(GNU)g(license)h
+(from)177 2046 y(time)d(to)h(time.)15 b(I)10 b(am)e(happ)o(y)i(to)g(receiv)o
+(e)h(constructiv)o(e)g(criticism)e(ab)q(out)h(F)m(unnelW)m(eb)g(and)f(its)h
+(do)q(cumen)o(tation.)177 2121 y(I)k(will)e(alw)o(a)o(ys)g(b)q(e)i(happ)o(y)f
+(to)h(receiv)o(e)h(mail)10 b(ab)q(out)k(F)m(unnelW)m(eb,)e(but)i(cannot)g
+(guaran)o(tee)g(that)f(I)h(will)e(b)q(e)i(able)177 2171 y(to)g(reply)g(to)g
+(it)f(immediately)l(.)1032 2940 y(114)p eop
+%%Page: 115 116
+115 115 bop 177 379 a Fj(App)s(endix)34 b(A)177 612 y Fp(Glossary)177
+854 y Fo(Analyser:)20 b Fr(A)15 b(comp)q(onen)o(t)f(of)h(the)g(F)m(unnelW)m
+(eb)g(program)e(that)i(c)o(hec)o(ks)i(the)e(macro)f(table)h(created)h(b)o(y)f
+(the)177 903 y(parser)g(for)f(errors.)19 b(F)m(or)14 b(example,)e(the)i
+(analyser)g(c)o(hec)o(ks)h(to)f(see)h(if)e(an)o(y)h(macro)e(without)i(a)f
+Fl(@Z)h Fr(has)g(not)g(b)q(een)177 953 y(called.)177 1029 y
+Fo(Argumen)o(t:)h Fr(A)d(string)f(delimited)f(b)o(y)h(blanks)g(app)q(earing)h
+(on)f(the)h(F)m(unnelW)m(eb)f(command)d(line.)17 b(Argumen)o(ts)177
+1079 y(are)d(used)h(to)f(con)o(trol)g(options.)177 1154 y Fo(Directiv)o(e:)j
+Fr(A)e(F)m(unnelW)m(eb)e(sp)q(ecial)i(sequence)i(or)d(co)q(op)q(erating)h
+(group)f(of)g(sp)q(ecial)g(sequences)j(that)e(do)f(not)177
+1204 y(form)e(part)i(of)g(a)f(macro)g(de\014nition.)18 b(A)13
+b(directiv)o(e)i(can)f(tak)o(e)g(the)g(form)f(of)g(a)g(pragma.)177
+1280 y Fo(Do)q(cumen)o(tation:)i Fr(Descriptiv)o(e)g(text.)177
+1355 y Fo(Do)q(cumen)o(tation)i(\014le:)25 b Fr(An)18 b(output)g(\014le,)h
+(pro)q(duced)g(b)o(y)f(the)g(W)m(ea)o(v)o(e)f(comp)q(onen)o(t)h(of)f(F)m
+(unnelW)m(eb,)h(that)177 1405 y(con)o(tains)c(t)o(yp)q(esetter)i(commands.)g
+(When)e(fed)g(in)o(to)f(the)i(appropriate)f(t)o(yp)q(esetter)i(program,)c
+(the)j(result)f(is)g(a)177 1455 y(t)o(yp)q(eset)i(image)11
+b(of)j(the)g(input)g(\014le.)177 1531 y Fo(F)l(ree)19 b(text:)24
+b Fr(The)17 b(text)h(in)e(an)h(input)g(\014le)g(that)g(remains)f(if)g(one)h
+(w)o(ere)h(to)e(remo)o(v)o(e)g(macro)g(de\014nitions)h(and)177
+1580 y(directiv)o(es.)177 1656 y Fo(F)l(unnelW)l(eb:)27 b Fr(This)19
+b(w)o(ord)f(has)i(a)e(n)o(um)o(b)q(er)g(of)h(di\013eren)o(t)h(meanings)d(all)
+h(p)q(ertaining)h(to)g(the)g(F)m(unnelW)m(eb)177 1706 y(system)g(of)g
+(programming.)32 b(1\))19 b(The)h(en)o(tire)g(system)g(of)f(programmi)o(ng)d
+(as)k(in)f(\\Ma)o(yb)q(e)h(F)m(unnelW)m(eb)f(can)177 1756 y(help.")k(2\))15
+b(The)h(computer)f(program)f(that)i(implem)o(en)o(ts)e(the)i(system)f(as)h
+(in)f(\\Run)g(it)g(through)g(F)m(unnelW)m(eb)177 1805 y(and)d(see)h(what)f
+(comes)f(out.")17 b(3\))12 b(The)g(language)f(implemen)o(ted)f(b)o(y)h(the)i
+(F)m(unnelW)m(eb)e(program)f(as)i(in)g(\\I)f(wrote)177 1855
+y(the)k(program)d(in)h(F)m(unnelW)m(eb.")18 b(or)13 b(\\I)h(wrote)g(the)h
+(program)d(in)i(Ada)f(using)h(F)m(unnelW)m(eb.".)177 1931 y
+Fo(F)l(unnelW)l(eb)g(\014le:)j Fr(A)d(\014le)g(whose)g(con)o(ten)o(ts)h(are)g
+(written)f(in)f(the)i(F)m(unnelW)m(eb)e(language.)177 2006
+y Fo(F)l(unnelW)l(eb)h(language:)j Fr(The)d(language)f(in)g(whic)o(h)h(F)m
+(unnelW)m(eb)f(input)h(\014les)g(are)h(written.)177 2082 y
+Fo(F)l(unnelW)l(eb)i(prop)q(er:)24 b Fr(Usually)m(,)16 b(when)h(F)m(unnelW)m
+(eb)g(is)g(in)o(v)o(ok)o(ed,)f(it)h(pro)q(cesses)j(a)c(single)h(input)g
+(\014le)g(and)177 2132 y(then)e(terminates.)i(Ho)o(w)o(ev)o(er,)d(it)f(also)g
+(has)h(a)g(command)d(language)i(mo)q(de)f(in)i(whic)o(h)f(it)h(is)f(p)q
+(ossible)h(to)g(in)o(v)o(ok)o(e)177 2182 y(\\F)m(unnelW)m(eb")g(man)o(y)e
+(times.)19 b(This)14 b(leads)h(to)f(confusion)g(b)q(et)o(w)o(een)i(\\F)m
+(unnelW)m(eb")d(the)i(outer)g(program)e(and)177 2232 y(\\F)m(unnelW)m(eb")19
+b(the)h(inner)g(program.)34 b(T)m(o)18 b(a)o(v)o(oid)h(this)g(confusion,)i
+(the)f(inner)g(F)m(unnelW)m(eb)f(is)h(sometimes)177 2281 y(referred)c(to)e
+(as)g(\\F)m(unnelW)m(eb)f(prop)q(er".)177 2357 y Fo(FW:)i Fr(An)f
+(abbreviation)f(for)g(\\F)m(unnelW)m(eb")g(that)h(is)g(used)h(wherev)o(er)g
+(appropriate.)177 2433 y Fo(Include)f(\014le:)j Fr(A)d(\014le)g(read)h(in)e
+(b)o(y)h(F)m(unnelW)m(eb)f(as)h(the)h(result)f(of)g(an)f(include)h(pragma)e
+(\()p Fl(@i)22 b(filename)p Fr(\).)177 2508 y Fo(Input)16 b(\014le:)k
+Fr(An)o(y)c(\014le)f(read)h(in)f(b)o(y)g(F)m(unnelW)m(eb.)22
+b(The)16 b(phrase)g(\\the)g(input)f(\014le")g(refers)i(to)f(the)g(ro)q(ot)f
+(input)177 2558 y(\014le)f(\(sp)q(eci\014ed)i(using)d(the)i
+Fl(+F)e Fr(option\).)177 2634 y Fo(Journal)h(\014le:)k Fr(An)c(output)g
+(\014le)g(con)o(taining)f(a)h(cop)o(y)f(of)h(the)g(output)h(sen)o(t)g(to)e
+(the)i(user's)g(console)f(during)g(an)177 2683 y(in)o(v)o(o)q(cation)f(of)g
+(F)m(unnelW)m(eb.)18 b(In)13 b(other)i(systems,)f(this)g(\014le)f(is)h
+(sometimes)e(called)i(a)f(\\log)g(\014le".)177 2759 y Fo(Listing)g(\014le:)k
+Fr(An)d(output)h(\014le)e(summarizing)e(the)k(result)f(of)g(pro)q(cessing)h
+(an)e(input)h(\014le.)177 2835 y Fo(Macro:)19 b Fr(A)14 b(binding)f(of)g(a)h
+(name)f(to)g(a)h(string.)1032 2940 y(115)p eop
+%%Page: 116 117
+116 116 bop 177 42 a Fo(Macro)14 b(de\014nition)o(:)h Fr(A)d(construct)i(app)
+q(earing)e(in)g(a)g(F)m(unnelW)m(eb)f(\014le)h(that)h(binds)f(a)g(name)f(to)h
+(a)f(text)i(string.)177 91 y(A)h(F)m(unnelW)m(eb)f(\014le)h(consists)h(of)f
+(a)f(series)i(of)f(macro)e(de\014nitions)i(surrounded)h(b)o(y)f(do)q(cumen)o
+(tary)f(text.)177 166 y Fo(Mapp)q(er:)18 b Fr(A)13 b(comp)q(onen)o(t)f(of)g
+(the)h(F)m(unnelW)m(eb)f(program)g(that)g(reads)i(in)e(the)i(input)e(\014le)h
+(and)g(creates)h(a)f(cop)o(y)177 216 y(of)g(it)h(in)f(memory)m(.)177
+291 y Fo(Option:)j Fr(An)e(parameter)f(in)o(ternal)f(to)i(the)f(F)m(unnelW)m
+(eb)g(program)f(whic)o(h)h(can)h(b)q(e)f(con)o(trolled)g(b)o(y)h(command)177
+340 y(line)g(argumen)o(ts)f(or)h(pragmas.)177 415 y Fo(Output)h(\014le:)21
+b Fr(An)o(y)15 b(\014le)g(written)h(b)o(y)f(F)m(unnelW)m(eb.)22
+b(This)16 b(includes)g(listing,)e(journal,)g(pro)q(duct,)i(and)g(do)q(cu-)177
+465 y(men)o(tation)e(\014les.)21 b(\(W)m(arning:)f(During)14
+b(most)g(of)g(F)m(unnelW)m(eb's)h(dev)o(elopmen)o(t)f(the)i(term)e(\\output)h
+(\014le")g(w)o(as)177 515 y(also)10 b(used)i(to)f(refer)h(to)f(what)g(are)g
+(no)o(w)f(called)h(\\pro)q(duct)h(\014les".)17 b(This)11 b(turned)g(out)g(to)
+g(b)q(e)h(extremely)e(confusing)177 565 y(and)j(so)h(the)f(term)g(\\pro)q
+(duct)h(\014le")f(w)o(as)g(in)o(v)o(en)o(ted)g(to)h(distinguish)e(the)i
+(generic)g(from)e(the)i(sp)q(eci\014c.)19 b(Ho)o(w)o(ev)o(er,)177
+614 y(as)14 b(this)g(w)o(as)g(a)f(late)h(mo)q(di\014cation,)d(y)o(ou)j(ma)o
+(y)e(\014nd)i(some)f(o)q(ccurrences)k(of)c(the)i(old)e(use)h(of)g(\\output)g
+(\014le".\).)177 689 y Fo(P)o(arser:)20 b Fr(A)15 b(comp)q(onen)o(t)f(of)h
+(the)h(F)m(unnelW)m(eb)e(program)g(that)h(pro)q(cesses)i(the)f(tok)o(en)f
+(list)g(generated)h(b)o(y)f(the)177 739 y(scanner)i(and)f(pro)q(duces)h(a)f
+(macro)e(table)i(and)f(a)h(do)q(cumen)o(t)f(list.)23 b(The)17
+b(parser)g(mainly)c(analyses)j(the)g(input)177 789 y(\014le)e(at)g(the)g(syn)
+o(tactic)h(lev)o(el,)e(but)h(also)f(do)q(es)i(some)e(ligh)o(t)o(w)o(eigh)o(t)
+f(seman)o(tic)h(c)o(hec)o(king)h(to)q(o.)177 863 y Fo(Pragma:)j
+Fr(Single-line)11 b(directiv)o(es)j(that)e(app)q(ears)h(in)f(F)m(unnelW)m(eb)
+f(\014les.)18 b(Pragmas)11 b(con)o(trol)h(ev)o(erything)h(from)177
+913 y(maxim)n(um)d(input)k(line)f(length)h(to)g(t)o(yp)q(esetter)i(dep)q
+(endence.)k(A)14 b(pragma)e(line)i(starts)h(with)e(\\)p Fl(@p)p
+Fr(".)177 988 y Fo(Prin)o(ted)18 b(do)q(cumen)o(tation:)25
+b Fr(Sheets)c(of)d(pap)q(er)i(resulting)e(from)g(actually)g(t)o(yp)q
+(esetting)h(and)g(prin)o(ting)f(a)177 1038 y(do)q(cumen)o(tation)13
+b(\014le.)177 1112 y Fo(Pro)q(duct)e(\014le:)k Fr(An)c(output)g(\014le,)g
+(generated)h(b)o(y)e(the)i(T)m(angle)d(comp)q(onen)o(t)h(of)g(F)m(unnelW)m
+(eb,)h(that)g(con)o(tains)f(the)177 1162 y(expansion)k(of)g(the)h(macros)e
+(in)h(the)h(input)f(\014le.)19 b(Note:)g(Other)d(names)d(considered)j(for)d
+(this)i(w)o(ere:)k(generated)177 1212 y(\014le,)14 b(expanded)g(\014le,)g
+(result)g(\014le,)g(program)e(\014le,)h(and)h(tangle)g(\014le.)177
+1287 y Fo(Scanner:)j Fr(A)d(comp)q(onen)o(t)e(of)h(the)h(F)m(unnelW)m(eb)f
+(program)f(that)i(scans)g(a)f(cop)o(y)h(of)e(the)j(input)e(\014le)g(in)g
+(memory)177 1337 y(and)h(generates)i(a)e(line)g(list)f(and)h(a)g(tok)o(en)g
+(list)g(to)g(b)q(e)h(fed)f(to)g(the)h(parser.)20 b(The)15 b(scanner)g(pro)q
+(cesses)i(the)e(input)177 1386 y(at)f(the)g(lexical)f(lev)o(el.)177
+1461 y Fo(Script:)k Fr(A)d(\014le)f(con)o(taining)g(F)m(unnelW)m(eb)h(shell)f
+(commands.)177 1536 y Fo(Shell:)i Fr(A)c(command)d(language)i(in)o(terpreter)
+j(built)d(in)o(to)g(the)i(F)m(unnelW)m(eb)e(program.)16 b(The)11
+b(in)o(terpreter)i(allo)o(ws)177 1586 y(the)19 b(user)f(to)g(in)o(v)o(ok)o(e)
+f(F)m(unnelW)m(eb)g(prop)q(er)i(man)o(y)d(times)h(during)g(a)h(single)f(in)o
+(v)o(o)q(cation)g(of)g(the)h(F)m(unnelW)m(eb)177 1636 y(program.)177
+1710 y Fo(Sp)q(ecial)12 b(c)o(haracter:)17 b Fr(A)c(distinguished)f(c)o
+(haracter)i(in)d(a)h(F)m(unnelW)m(eb)g(input)g(\014le)h(that)f(in)o(tro)q
+(duces)h(a)g(sp)q(ecial)177 1760 y(sequence.)32 b(By)19 b(default)e(the)i(sp)
+q(ecial)f(c)o(haracter)h(is)f(\\)p Fl(@)p Fr(".)29 b(Ho)o(w)o(ev)o(er,)19
+b(it)f(can)g(b)q(e)g(c)o(hanged)h(using)e(the)i(\\)p Fl(@=)p
+Fr(")177 1810 y(sp)q(ecial)14 b(sequence.)177 1885 y Fo(Sp)q(ecial)f
+(sequence:)k Fr(A)12 b(sp)q(ecial)h(sequence)i(is)e(a)f(construct)i(in)o(tro)
+q(duced)f(b)o(y)g(the)g(sp)q(ecial)g(c)o(haracter.)19 b(Sp)q(ecial)177
+1934 y(sequences)e(are)e(used)g(to)g(de\014ne)g(a)f(structure)j(in)d(a)g(F)m
+(unnelW)m(eb)g(input)g(\014le)g(that)h(exists)g(at)f(a)g(higher)h(lev)o(el)f
+(to)177 1984 y(the)k(surrounding)g(text.)29 b(A)17 b(F)m(unnelW)m(eb)g(input)
+g(\014le)g(ma)o(y)f(b)q(e)i(considered)h(to)e(b)q(e)h(a)f(sequence)i(of)e
+(text)h(and)177 2034 y(sp)q(ecial)c(sequences.)177 2109 y Fo(T)l(angle:)21
+b Fr(This)16 b(is)f(the)h(name)e(for)i(the)g(comp)q(onen)o(t)e(of)h(F)m
+(unnelW)m(eb)g(that)h(generates)h(one)f(or)f(more)g(pro)q(duct)177
+2159 y(\014les)f(con)o(taining)f(the)i(expansion)e(of)h(macros)f(in)g(the)i
+(input)e(\014le.)177 2233 y Fo(T)o(yp)q(esetting)h(directiv)o(e:)j
+Fr(A)e(F)m(unnelW)m(eb)f(directiv)o(e)h(whose)h(sole)e(e\013ect)i(is)f(to)f
+(mo)q(dify)f(the)i(w)o(a)o(y)f(in)g(whic)o(h)177 2283 y(the)h(input)e(\014le)
+h(is)g(represen)o(ted)j(in)c(the)i(do)q(cumen)o(tation)d(\014le.)177
+2358 y Fo(W)l(ea)o(v)o(e:)23 b Fr(This)16 b(is)f(the)i(name)e(for)g(the)i
+(comp)q(onen)o(t)e(of)g(F)m(unnelW)m(eb)h(that)g(generates)h(a)f(do)q(cumen)o
+(tation)f(\014le)177 2408 y(con)o(taining)e(t)o(yp)q(esetting)i(commands)c
+(represen)o(ting)16 b(the)e(input)g(\014le.)1032 2940 y(116)p
+eop
+%%Page: 117 118
+117 117 bop 177 378 a Fj(App)s(endix)34 b(B)177 610 y Fp(References)177
+851 y Fo([ANSI])21 b Fr(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 Fo([ANZE])k
+Fr(\\Australia,)f(New)g(Zealand)g(Encyclop)q(edia",)g(En)o(try:)22
+b(\\F)m(unnel-w)o(eb)15 b(spiders",)i(V)m(ol)e(7,)g(pp.)h(564{)177
+1075 y(565,)d(Ba)o(y)h(Bo)q(oks,)f(Sydney)m(,)h(\(ISBN:)g(85835{127{7\),)d
+(1975.)177 1150 y Fo([BSI82])f Fr(British)h(Standards)g(Institute,)g(\\Sp)q
+(eci\014cation)g(for)f(Computer)g(Programmi)o(ng)e(Language)i(P)o(ascal",)177
+1200 y(Publication)15 b(BS6192:1982,)e(British)j(Standards)g(Institute,)h(P)m
+(.O.)e(Bo)o(x)g(372,)g(Milton)f(Keynes,)j(MK146LO,)177 1249
+y(1982.)177 1324 y Fo([Gries81])8 b Fr(Gries)i(D.,)f(\\The)h(Science)h(of)e
+(Programming)o(",)e(Springer-V)m(erlag,)j(\(ISBN:)g(0-387-90641-X\),)c(1981.)
+177 1399 y Fo([Humphries91])13 b Fr(Humphries)i(B,)g(\\Neglected)h(P)o(o)q
+(ems)f(and)g(Other)h(Creatures",)h(Angus)f(and)f(Rob)q(ertson,)177
+1449 y(Sydney)m(,)f(\(ISBN:)g(0-207-17212-9\),)c(1991.)177
+1523 y Fo([Kernighan88])15 b Fr(Kernighan)i(B.W.,)g(Ritc)o(hie)f(D.M.,)g
+(\\The)h(C)g(Programming)c(Language",)k(\(second)h(edi-)177
+1573 y(tion,\\ANSI)13 b(C"\),)g(Pren)o(tice)j(Hall,)c(\(ISBN:)i
+(0-13-110362-8\),)d(1988.)177 1648 y Fo([Kn)o(uth83])j Fr(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 1698 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 1773
+y Fo([Kn)o(uth84])f Fr(Kn)o(uth)j(D.E.,)d(\\The)i(T)767 1781
+y(E)790 1773 y(Xb)q(o)q(ok",)f(Addison-W)m(esley)m(,)g(\(ISBN:)h
+(0-201-13448-9\),)d(1984.)177 1847 y Fo([Kn)o(uth84])h Fr(Kn)o(uth)i(D.E.,)e
+(\\Literate)i(Programmi)o(ng",)c Fm(The)k(Computer)h(Journal)p
+Fr(,)e(V)m(ol.)e(27,)i(No.)g(2,)f(pp.)h(97-)177 1897 y(111,)g(1984.)k(Note:)h
+(The)d(author)e(of)h(this)g(man)o(ual)d(has)j(not)g(y)o(et)g(obtained)g(this)
+g(pap)q(er.)177 1972 y Fo([Lamp)q(ort86])h Fr(Lamp)q(ort)h(L.,)g(\\L)723
+1967 y Fk(a)742 1972 y Fr(T)765 1984 y(E)788 1972 y(X:)g(A)g(Do)q(cumen)o(t)g
+(Preparation)h(System",)f(Addison-W)m(esley)m(,)g(\(ISBN:)177
+2022 y(0-201-15790-X\),)11 b(1986.)177 2096 y Fo([Roso)o(vsky90])16
+b Fr(Roso)o(vsky)f(H.,)h(\\The)g(Univ)o(ersit)o(y:)23 b(An)16
+b(Owner's)h(Man)o(ual",)e(W.W.Norton)f(&)j(Compan)o(y)m(,)177
+2146 y(Inc.,)d(\(ISBN:)g(0-393-02782-1\),)c(1990.)177 2221
+y Fo([Smith91])16 b Fr(Smith)h(L.M.C.,)g(\\An)i(Annotated)f(Bibliograph)o(y)f
+(of)h(Literate)h(Programming)o(",)d(A)o(CM)i(SIG-)177 2271
+y(PLAN)c(Notices,)h(V)m(ol.)d(26,)h(No.)g(1,)g(Jan)o(uary)h(1991.)177
+2345 y Fo([Strunk79])d Fr(Strunk)i(W.,)f(White)g(E.B.,)h(\\The)g(Elemen)o(ts)
+f(of)g(St)o(yle",)g(Third)h(Edition,)f(MacMillan)f(Publish-)177
+2395 y(ing)i(Compan)o(y)m(,)e(New)k(Y)m(ork,)e(\(ISBN:)h(0-02-418200-1\),)c
+(1979.)177 2470 y Fo([USDOD83])17 b Fr(\\The)i(Programming)c(Language)j(Ada)g
+(Reference)i(Man)o(ual",)e(American)g(National)f(Stan-)177
+2520 y(dards)e(Institute)f(Inc,)g(ANSI/MIL-STD-1815A-1983,)d(1983.)1032
+2940 y(117)p eop
+%%Page: 118 119
+118 118 bop 177 279 a Fp(Index)177 487 y Fr(+=)15 b(tutorial)e(26)177
+537 y(+=)i(85)177 587 y(2167A)e(51)177 637 y(==)i(tutorial)e(26)177
+687 y(==)i(85)177 737 y(@!)f(37)177 787 y(@!)g(75)177 837 y(@")g(29)177
+886 y(@\()g(29)177 936 y(@\))g(29)177 986 y(@+)h(20)177 1036
+y(@+)g(76)177 1086 y(@,)f(29)177 1136 y(@-)g(23)177 1186 y(@-)g(77)177
+1236 y(@1...)f(28)177 1286 y(@1...)g(86)177 1336 y(@<)h(20)177
+1386 y(@=)h(20)177 1436 y(@>)f(20)177 1486 y(@A...)f(34)177
+1536 y(@braces)j(20)177 1586 y(@braces)g(37)177 1636 y(@circum\015ex)e(74)177
+1686 y(@dollar)f(22)177 1736 y(@hash)i(76)177 1786 y(@i)f(30)177
+1836 y(@i)g(77)177 1886 y(@M)g(tutorial)f(24)177 1935 y(@M)h(85)177
+1985 y(@O)h(20)177 2035 y(@O)g(22)177 2085 y(@slash)f(37)177
+2135 y(@Z)h(tutorial)e(24)177 2185 y(@Z)i(85)177 2235 y(absen)o(t)g(command)c
+(93)177 2285 y(abstract)k(data)e(t)o(yp)q(e)i(55)177 2335 y(abstraction)f(co)
+q(de)h(56)177 2385 y(abstraction)f(data)g(26)177 2435 y(abstraction)g(set)h
+(59)177 2485 y(abuse)g(commen)o(ts)d(57)177 2535 y(access)k(random)c(50)177
+2585 y(ac)o(kno)o(wledgemen)o(ts)h(11)177 2635 y(action)h(execution)g(order)h
+(71)177 2685 y(Action)f(options)g(70)177 2735 y(actual)g(parameters)g(29)177
+2785 y(Ada)g(11)177 2835 y(Ada)g(44)1136 487 y(Ada)f(49)1136
+537 y(Ada)g(51)1136 587 y(Ada)g(55)1136 637 y(additiv)o(e)g(macros)g(26)1136
+687 y(additiv)o(e)g(macro)f(26)1136 737 y(additiv)o(ely)g(de\014ned)j(85)1136
+787 y(Adelaide)e(Univ)o(ersit)o(y)h(59)1136 837 y(admin)d(directory)k(102)
+1136 886 y(administration)c(F)m(unnelW)m(eb)i(109)1136 936
+y(ADT)g(55)1136 986 y(alias)f(49)1136 1036 y(Analyser)i(115)1136
+1086 y(analyser)g(65)1136 1136 y(analyser)g(88)1136 1186 y(analysis)f(static)
+h(88)1136 1236 y(Andrew)g(T)m(rev)o(orro)o(w)g(13)1136 1286
+y(animal)d(p)q(o)q(em)i(30)1136 1336 y(ann)o(ual)g(rep)q(ort)h(58)1136
+1386 y(anon)o(ymous)e(ftp)h(101)1136 1436 y(ANSI)h(109)1136
+1486 y(ANSI)g(117)1136 1536 y(answ)o(ers)h(correct)g(102)1136
+1586 y(answ)o(ers)g(directory)f(102)1136 1636 y(ANZE)g(117)1136
+1686 y(ANZE)g(19)1136 1736 y(applications)e(F)m(unnelW)m(eb)i(53)1136
+1786 y(arbitrary)f(c)o(haracters)j(inserting)e(in)o(to)f(text)i(74)1136
+1836 y(arc)o(hitecture)g(seman)o(tic)e(64)1136 1886 y(arc)o(hiv)o(e)h(ftp)f
+(114)1136 1935 y(arc)o(hiv)o(e)h(F)m(unnelW)m(eb)f(114)1136
+1985 y(argumen)o(t)f(command)g(line)h(67)1136 2035 y(argumen)o(ts)g(67)1136
+2085 y(Argumen)o(t)g(115)1136 2135 y(assertion)h(sev)o(erit)o(y)h(65)1136
+2185 y(assertion)f(status)h(90)1136 2235 y(A)o(trax)f(robustus)g(19)1136
+2285 y(attributes)g(macro)f(85)1136 2335 y(author)h(con)o(tacting)f(114)1136
+2385 y(B)h(option)f(68)1136 2435 y(Barry)h(Dwy)o(er)g(11)1136
+2485 y(Barry)g(Dwy)o(er)g(59)1136 2535 y(Barry)g(Humphries)f(19)1136
+2585 y(BASIC)h(57)1136 2635 y(Begg)g(Jerem)o(y)g(11)1136 2685
+y(binding)f(problems)f(57)1136 2735 y(bindings)h(macro)g(22)1136
+2785 y(blank)g(inden)o(tation)g(78)1136 2835 y(blank)g(inden)o(tation)g(78)
+1032 2940 y(118)p eop
+%%Page: 119 120
+119 119 bop 177 42 a Fr(blanks)14 b(trailing)e(42)177 91 y(b)q(oring)i
+(organization)e(50)177 141 y(Brissenden)k(Roger)e(11)177 191
+y(BSI82)g(117)177 241 y(BSI82)g(15)177 291 y(BSI82)g(18)177
+341 y(C)g(header)h(57)177 391 y(C)f(option)f(68)177 441 y(C)h(prepro)q
+(cessor)i(20)177 490 y(C)e(prepro)q(cessor)i(57)177 540 y(calls)e(macro)e(86)
+177 590 y(calls)i(n)o(um)o(b)q(er)f(23)177 640 y(camera)g(p)q(o)q(em)g(30)177
+690 y(case)i(dep)q(endence)i(67)177 740 y(c)o(hanging)c(sp)q(ecial)h(c)o
+(haracter)i(31)177 790 y(c)o(haracters)g(con)o(trol)d(42)177
+840 y(c)o(haracters)j(non-prin)o(table)d(96)177 889 y(c)o(haracters)j(unprin)
+o(table)d(71)177 939 y(c)o(hec)o(ks)i(macro)e(88)177 989 y(c)o(heer)j(hac)o
+(k)o(er's)e(35)177 1039 y(c)o(heer)i(programmer's)11 b(35)177
+1089 y(co)q(de)k(abstraction)f(56)177 1139 y(co)q(de)h(explaining)d(17)177
+1189 y(co)q(de)j(gardening)e(53)177 1239 y(co)q(de)i(vs)f(do)q(cumen)o
+(tation)f(32)177 1288 y(co)q(dify)h(command)d(93)177 1338 y(command)g(absen)o
+(t)k(93)177 1388 y(command)c(co)q(dify)j(93)177 1438 y(command)d(compare)i
+(93)177 1488 y(command)e(de\014ne)k(91)177 1538 y(command)c(de\014ne)k(94)177
+1588 y(command)c(di\013summary)g(95)177 1638 y(command)g(di\013zero)k(95)177
+1687 y(command)c(di\013)j(94)177 1737 y(command)d(eneo)k(95)177
+1787 y(command)c(execute)16 b(96)177 1837 y(command)11 b(exists)k(96)177
+1887 y(command)c(\014xeols)j(96)177 1937 y(command)d(fw)j(97)177
+1987 y(command)d(help)j(97)177 2037 y(command)d(here)k(98)177
+2086 y(command)c(in)o(terpreter)16 b(47)177 2136 y(command)11
+b(length)j(91)177 2186 y(command)d(line)j(argumen)o(t)e(67)177
+2236 y(command)f(line)j(in)o(terface)g(66)177 2286 y(command)d(line)j
+(options)f(syn)o(tax)h(67)177 2336 y(command)d(line)j(parsing)f(66)177
+2386 y(command)e(line)j(pro)q(cessing)h(66)177 2436 y(command)c(line)j(pro)q
+(cessing)h(92)177 2486 y(command)c(line)j(syn)o(tax)g(67)177
+2535 y(command)d(options)j(92)177 2585 y(command)d(quit)j(98)177
+2635 y(command)d(set)k(48)177 2685 y(command)c(set)k(98)177
+2735 y(command)c(shell)j(F)m(unnelW)m(eb)f(90)177 2785 y(command)e(sho)o(w)j
+(48)177 2835 y(command)d(sho)o(w)j(98)1136 42 y(command)d(skipto)i(98)1136
+91 y(command)e(status)j(99)1136 141 y(command)d(tolerate)j(100)1136
+191 y(command)d(trace)k(on)e(48)1136 241 y(command)e(trace)k(100)1136
+291 y(command)c(v)o(erb)j(fw)g(66)1136 341 y(command)d(writeu)j(100)1136
+391 y(command)d(write)j(100)1136 441 y(commands)d(F)m(unnelW)m(eb)i(90)1136
+490 y(commands)e(shell)j(93)1136 540 y(commands)d(useful)j(47)1136
+590 y(commen)o(ts)e(abuse)i(57)1136 640 y(commen)o(ts)e(eliminating)f(57)1136
+690 y(commen)o(ts)h(F)m(unnelW)m(eb)h(75)1136 740 y(commen)o(ts)f(37)1136
+790 y(commitm)n(en)o(t)g(F)m(unnelW)m(eb)h(109)1136 840 y(compare)g(command)e
+(93)1136 889 y(compilers)h(F)m(ortran)i(42)1136 939 y(compiling)d(F)m(unnelW)
+m(eb)i(105)1136 989 y(complete)g(example)f(38)1136 1039 y(conditionals)g
+(fudging)h(44)1136 1089 y(console)h(output)g(suppress)i(69)1136
+1139 y(constructs)g(section)e(83)1136 1189 y(con)o(tacting)f(author)h(114)
+1136 1239 y(con)o(ten)o(ts)h(table)e(of)h(81)1136 1288 y(con)o(text)g
+(in\014nite)g(68)1136 1338 y(con)o(text)g(listing)f(\014le)h(68)1136
+1388 y(con)o(text)g(69)1136 1438 y(con)o(trol)f(c)o(haracters)j(inserting)e
+(in)o(to)f(text)i(74)1136 1488 y(con)o(trol)e(c)o(haracters)j(42)1136
+1538 y(con)o(trollabilit)o(y)11 b(18)1136 1588 y(cop)o(yrigh)o(t)i(F)m
+(unnelW)m(eb)g(112)1136 1638 y(cop)o(yrigh)o(t)g(notice)h(1)1136
+1687 y(correct)h(answ)o(ers)g(102)1136 1737 y(cross)g(reference)h(n)o(um)o(b)
+q(ering)d(89)1136 1787 y(cross)i(referencing)g(17)1136 1837
+y(cross)g(referencing)g(89)1136 1887 y(cryptic)f(text)h(\014les)f(55)1136
+1937 y(D)f(option)g(49)1136 1987 y(D)g(option)g(68)1136 2037
+y(dangers)h(F)m(unnelW)m(eb)g(50)1136 2086 y(data)f(abstraction)h(26)1136
+2136 y(Da)o(vid)e(Hulse)j(11)1136 2186 y(debugger)f(53)1136
+2236 y(debugging)f(wholistic)g(53)1136 2286 y(default)g(options)h(49)1136
+2336 y(default)f(options)h(92)1136 2386 y(default)f(sp)q(ecial)h(c)o
+(haracter)i(72)1136 2436 y(de\014ne)f(command)c(91)1136 2486
+y(de\014ne)k(command)c(94)1136 2535 y(de\014nition)i(F)m(unnelW)m(eb)g(63)
+1136 2585 y(de\014nition)g(macro)g(85)1136 2635 y(de\014nition)g(macro)g(87)
+1136 2685 y(delete)i(output)f(\014les)g(49)1136 2735 y(delete)h(output)f
+(option)f(68)1136 2785 y(delimiting)e(macro)h(parameter)i(87)1136
+2835 y(dep)q(endence)i(case)f(67)1032 2940 y(119)p eop
+%%Page: 120 121
+120 120 bop 177 42 a Fr(dep)q(endencies)17 b(\014le)c(49)177
+91 y(dev)o(elopmen)o(t)g(time)g(17)177 141 y(diagnostics)h(lev)o(els)g(of)f
+(65)177 191 y(diagnostics)h(65)177 241 y(dictionary)f(hac)o(k)o(er's)i(35)177
+291 y(di\013)f(command)d(94)177 341 y(di\013erences)16 b(\014le)e(94)177
+391 y(di\013summary)d(command)g(95)177 441 y(di\013zero)k(command)c(95)177
+490 y(directiv)o(e)k(emphasis)e(85)177 540 y(directiv)o(e)i(literal)e(84)177
+590 y(directiv)o(e)i(newpage)f(37)177 640 y(directiv)o(e)h(table)e(of)h(con)o
+(ten)o(ts)h(37)177 690 y(directiv)o(e)g(title)e(37)177 740
+y(directiv)o(e)i(vskip)e(37)177 790 y(directiv)o(es)i(t)o(yp)q(esetter)h(81)
+177 840 y(directiv)o(es)f(32)177 889 y(directiv)o(es)g(83)177
+939 y(Directiv)o(e)f(115)177 989 y(directory)h(admin)d(102)177
+1039 y(directory)j(answ)o(ers)g(102)177 1089 y(directory)g(hac)o(kman)d(103)
+177 1139 y(directory)j(results)g(103)177 1189 y(directory)g(scripts)g(103)177
+1239 y(directory)g(sources)g(103)177 1288 y(directory)g(tests)g(104)177
+1338 y(directory)g(tree)g(102)177 1388 y(directory)g(userman)e(105)177
+1438 y(directory)i(70)177 1488 y(Distribution)e(F)m(unnelW)m(eb)h(113)177
+1538 y(do)q(cumen)o(t)g(list)f(dump)g(68)177 1588 y(do)q(cumen)o(t)h(list)f
+(64)177 1638 y(do)q(cumen)o(tation)g(duplicate)h(51)177 1687
+y(do)q(cumen)o(tation)f(examples)g(58)177 1737 y(Do)q(cumen)o(tation)f
+(\014le)i(115)177 1787 y(do)q(cumen)o(tation)f(\014le)h(18)177
+1837 y(do)q(cumen)o(tation)f(F)m(unnelW)m(eb)g(110)177 1887
+y(do)q(cumen)o(tation)g(in)o(terdep)q(enden)o(t)j(50)177 1937
+y(do)q(cumen)o(tation)d(o)o(v)o(er)h(51)177 1987 y(do)q(cumen)o(tation)f(pa)o
+(vlo)o(v)f(51)177 2037 y(do)q(cumen)o(tation)h(vs)h(co)q(de)h(32)177
+2086 y(Do)q(cumen)o(tation)d(115)177 2136 y(do)q(cumen)o(tation)h(64)177
+2186 y(DOD83)g(55)177 2236 y(Donald)g(Kn)o(uth)h(11)177 2286
+y(Donald)f(Kn)o(uth)h(50)177 2336 y(Donald)f(Kn)o(uth)h(9)177
+2386 y(dump)f(do)q(cumen)o(t)g(list)h(68)177 2436 y(dump)f(global)f(line)h
+(list)h(68)177 2486 y(dump)f(macro)f(table)i(68)177 2535 y(dump)f(mapp)q(ed)g
+(\014le)h(68)177 2585 y(dump)f(option)g(68)177 2635 y(dump)g(times)g(68)177
+2685 y(dump)g(tok)o(en)h(list)f(68)177 2735 y(duplicate)h(do)q(cumen)o
+(tation)f(51)177 2785 y(Dwy)o(er)h(Barry)h(11)177 2835 y(Dwy)o(er)f(Barry)h
+(59)1136 42 y(EBNF)f(syn)o(tax)g(63)1136 91 y(editors)g(text)h(42)1136
+141 y(Edna)f(Ev)o(erage)g(19)1136 191 y(e\016ciency)g(F)m(unnelW)m(eb)g(47)
+1136 241 y(e\016ciency)g(notes)h(47)1136 291 y(eliminating)10
+b(commen)o(ts)j(57)1136 341 y(emphasis)g(construct)i(37)1136
+391 y(emphasis)e(directiv)o(e)h(85)1136 441 y(empt)o(y)e(name)h(42)1136
+490 y(end-of-line)g(\014ddling)g(with)g(43)1136 540 y(eneo)h(command)d(95)
+1136 590 y(EOL)j(\014ddling)f(with)g(43)1136 640 y(EOL)h(mark)o(ers)f
+(inserting)h(76)1136 690 y(EOL)g(mark)o(ers)f(suppressing)i(77)1136
+740 y(EOL)f(suppression)h(23)1136 790 y(error)f(sev)o(erit)o(y)h(65)1136
+840 y(error)f(status)h(90)1136 889 y(errors)g(shell)f(90)1136
+939 y(Ev)o(erage)g(Edna)g(19)1136 989 y(example)e(applications)h(F)m(unnelW)m
+(eb)g(53)1136 1039 y(example)f(complete)h(38)1136 1089 y(example)f
+(\014lename)h(inheritance)i(70)1136 1139 y(Example)d(F)m(unnelW)m(eb)h(38)
+1136 1189 y(examples)g(do)q(cumen)o(tation)f(58)1136 1239 y(executable)j(F)m
+(unnelW)m(eb)e(106)1136 1288 y(execute)i(command)c(96)1136
+1338 y(execute)k(script)g(option)e(69)1136 1388 y(execution)h(phases)h(64)
+1136 1438 y(exists)f(command)d(96)1136 1488 y(expansion)i(macro)g(30)1136
+1538 y(expansion)g(macro)g(47)1136 1588 y(expansion)g(macro)g(87)1136
+1638 y(explaining)f(co)q(de)j(17)1136 1687 y(expressions)g(macro)e(86)1136
+1737 y(expression)i(85)1136 1787 y(extension)f(70)1136 1837
+y(F)g(option)f(68)1136 1887 y(fatal)f(sev)o(erit)o(y)j(65)1136
+1937 y(fatal)d(status)j(90)1136 1987 y(\014ddling)e(with)g(end-of-line)g(43)
+1136 2037 y(\014ddling)g(with)g(EOL)h(43)1136 2086 y(\014elds)g(\014lename)f
+(70)1136 2136 y(\014le)h(dep)q(endencies)i(49)1136 2186 y(\014le)e
+(di\013erences)i(94)1136 2236 y(\014le)e(include)f(69)1136
+2286 y(\014le)h(journal)e(69)1136 2336 y(\014le)i(listing)e(69)1136
+2386 y(\014le)i(suppression)h(49)1136 2436 y(\014le)f(termination)e(71)1136
+2486 y(\014le)i(t)o(yp)q(eset)h(69)1136 2535 y(\014lename)d(\014elds)j(70)
+1136 2585 y(\014lename)d(inheritance)j(example)e(70)1136 2635
+y(\014lename)f(inheritance)j(70)1136 2685 y(\014les)f(header)h(57)1136
+2735 y(\014les)f(include)g(30)1136 2785 y(\014les)g(include)g(77)1136
+2835 y(\014les)g(input)g(47)1032 2940 y(120)p eop
+%%Page: 121 122
+121 121 bop 177 42 a Fr(\014xeols)14 b(command)d(96)177 91
+y(fon)o(t)i(size)i(46)177 141 y(formal)d(parameter)h(lists)h(86)177
+191 y(formal)e(parameters)i(28)177 241 y(formal)e(parameters)i(28)177
+291 y(formal)e(parameters)i(87)177 341 y(F)m(ortran)g(compilers)f(42)177
+391 y(F)m(ree)i(text)f(115)177 441 y(free)h(text)f(32)177 490
+y(F)m(ree)h(text)f(83)177 540 y(free)h(text)f(83)177 590 y(freestanding)h(t)o
+(yp)q(esetter)h(directiv)o(es)f(83)177 640 y(freestanding)g(81)177
+690 y(ftp)f(anon)o(ymous)e(101)177 740 y(ftp)i(arc)o(hiv)o(e)g(114)177
+790 y(fudging)f(conditionals)g(44)177 840 y(fudging)g(generics)i(59)177
+889 y(functions)f(small)e(56)177 939 y(F)m(unnel-w)o(eb)i(spider)h(19)177
+989 y(F)m(unnelW)m(eb)f(administration)d(109)177 1039 y(F)m(unnelW)m(eb)j
+(applications)e(53)177 1089 y(F)m(unnelW)m(eb)i(arc)o(hiv)o(e)f(114)177
+1139 y(F)m(unnelW)m(eb)h(command)d(shell)i(90)177 1189 y(F)m(unnelW)m(eb)h
+(command)d(shell)i(90)177 1239 y(F)m(unnelW)m(eb)h(commands)d(90)177
+1288 y(F)m(unnelW)m(eb)j(commen)o(ts)e(75)177 1338 y(F)m(unnelW)m(eb)i(commi)
+o(tm)o(en)o(t)e(109)177 1388 y(F)m(unnelW)m(eb)i(compiling)d(105)177
+1438 y(F)m(unnelW)m(eb)j(cop)o(yrigh)o(t)f(112)177 1488 y(F)m(unnelW)m(eb)h
+(dangers)g(50)177 1538 y(F)m(unnelW)m(eb)g(de\014nition)f(63)177
+1588 y(F)m(unnelW)m(eb)h(Distribution)f(113)177 1638 y(F)m(unnelW)m(eb)h(do)q
+(cumen)o(tation)e(110)177 1687 y(F)m(unnelW)m(eb)i(e\016ciency)g(47)177
+1737 y(F)m(unnelW)m(eb)g(example)e(applications)h(53)177 1787
+y(F)m(unnelW)m(eb)h(Example)e(38)177 1837 y(F)m(unnelW)m(eb)i(executable)h
+(106)177 1887 y(F)m(unnelW)m(eb)f(\014le)f(115)177 1937 y(F)m(unnelW)m(eb)h
+(\014le)f(64)177 1987 y(F)m(unnelW)m(eb)h(hin)o(ts)f(41)177
+2037 y(F)m(unnelW)m(eb)h(initialization)d(70)177 2086 y(F)m(unnelW)m(eb)j
+(installation)e(101)177 2136 y(F)m(unnelW)m(eb)i(installing)e(106)177
+2186 y(F)m(unnelW)m(eb)i(in)o(v)o(oking)e(66)177 2236 y(F)m(unnelW)m(eb)i
+(language)e(115)177 2286 y(F)m(unnelW)m(eb)i(license)g(112)177
+2336 y(F)m(unnelW)m(eb)g(martinet)e(42)177 2386 y(F)m(unnelW)m(eb)i(name)e
+(19)177 2436 y(F)m(unnelW)m(eb)i(obtaining)e(101)177 2486 y(F)m(unnelW)m(eb)i
+(o)o(v)o(erview)f(18)177 2535 y(F)m(unnelW)m(eb)h(o)o(v)o(erview)f(64)177
+2585 y(F)m(unnelW)m(eb)h(pitfalls)e(50)177 2635 y(F)m(unnelW)m(eb)i(program)e
+(65)177 2685 y(F)m(unnelW)m(eb)i(prop)q(er)g(115)177 2735 y(F)m(unnelW)m(eb)g
+(prop)q(er)g(48)177 2785 y(F)m(unnelW)m(eb)g(prop)q(er)g(65)177
+2835 y(F)m(unnelW)m(eb)g(registration)f(110)1136 42 y(F)m(unnelW)m(eb)g
+(rules)i(42)1136 91 y(F)m(unnelW)m(eb)e(running)h(66)1136 141
+y(F)m(unnelW)m(eb)f(shell)h(90)1136 191 y(F)m(unnelW)m(eb)f(startup)i(70)1136
+241 y(F)m(unnelW)m(eb)e(supp)q(ort)i(110)1136 291 y(F)m(unnelW)m(eb)e
+(testing)h(105)1136 341 y(F)m(unnelW)m(eb)f(t)o(w)o(o)g(main)f(asp)q(ects)k
+(21)1136 391 y(F)m(unnelW)m(eb)d(v)o(ersions)h(114)1136 441
+y(F)m(unnelW)m(eb)f(115)1136 490 y(fw)g(command)e(v)o(erb)k(66)1136
+540 y(fw)e(command)e(97)1136 590 y(fwinit.fws)h(49)1136 640
+y(fwinit.fws)g(71)1136 690 y(FW)h(115)1136 740 y(gardening)g(co)q(de)i(53)
+1136 790 y(generics)g(fudging)e(59)1136 840 y(generics)i(t)o(yp)q(esafe)f(61)
+1136 889 y(global)e(line)h(list)h(dump)e(68)1136 939 y(glossary)h(115)1136
+989 y(GNU)g(license)i(112)1136 1039 y(GNU)e(license)i(18)1136
+1089 y(GNU)e(license)i(9)1136 1139 y(go)q(o)q(d)e(old)g(da)o(ys)h(57)1136
+1189 y(Gries81)f(117)1136 1239 y(Gries81)g(51)1136 1288 y(H)h(option)f(68)
+1136 1338 y(hac)o(k)o(er's)h(c)o(heer)h(35)1136 1388 y(hac)o(k)o(er's)f
+(dictionary)f(35)1136 1438 y(Hac)o(k)o(ett)h(Simon)e(11)1136
+1488 y(hac)o(kman)g(directory)j(103)1136 1538 y(header)g(C)e(57)1136
+1588 y(header)i(\014le)e(p)q(ostscript)j(54)1136 1638 y(header)f(\014les)f
+(57)1136 1687 y(header)h(page)e(37)1136 1737 y(headings)h(section)g(34)1136
+1787 y(headings)g(strength)h(46)1136 1837 y(Hello)e(Northern)i(Hemisphere)f
+(Program)e(21)1136 1887 y(hello)h(w)o(orld)g(do)q(cumen)o(t)g(20)1136
+1937 y(help)h(command)d(97)1136 1987 y(help)j(option)f(68)1136
+2037 y(here)i(command)c(98)1136 2086 y(hierarc)o(hical)i(structure)j(34)1136
+2136 y(high)d(lev)o(el)g(syn)o(tax)h(82)1136 2186 y(hin)o(ts)f(F)m(unnelW)m
+(eb)h(41)1136 2236 y(Hulse)g(Da)o(vid)f(11)1136 2286 y(Humphries)g(Barry)h
+(19)1136 2336 y(Humphries91)f(117)1136 2386 y(Humphries91)g(19)1136
+2436 y(h)o(yp)q(ertext)i(15)1136 2486 y(I)e(option)h(69)1136
+2535 y(iden)o(ti\014ers)g(macro)f(41)1136 2585 y(include)h(\014le)f(option)h
+(69)1136 2635 y(include)g(\014les)g(recursiv)o(e)h(31)1136
+2685 y(include)f(\014les)g(30)1136 2735 y(include)g(\014les)g(77)1136
+2785 y(include)g(\014les)g(77)1136 2835 y(Include)g(\014le)g(115)1032
+2940 y(121)p eop
+%%Page: 122 123
+122 122 bop 177 42 a Fr(include)14 b(\014le)g(69)177 91 y(inden)o(tation)f
+(blank)h(78)177 141 y(inden)o(tation)f(macro)g(calls)h(25)177
+191 y(inden)o(tation)f(macro)g(expansion)h(78)177 241 y(inden)o(tation)f
+(none)i(78)177 291 y(indep)q(endence)h(language)d(18)177 341
+y(indep)q(endence)j(t)o(yp)q(esetter)h(18)177 391 y(indep)q(endence)f(t)o(yp)
+q(esetter)h(34)177 441 y(indep)q(endence)f(t)o(yp)q(esetter)h(65)177
+490 y(indep)q(endence)f(t)o(yp)q(esetter)h(80)177 540 y(in\014nite)d(con)o
+(text)g(68)177 590 y(inheritance)h(\014lename)d(70)177 640
+y(inheritance)j(section)f(name)f(35)177 690 y(initialization)e(F)m(unnelW)m
+(eb)j(70)177 740 y(initialization)d(script)k(49)177 790 y(initialization)c
+(script)k(71)177 840 y(inline)e(t)o(yp)q(esetter)j(directiv)o(es)f(83)177
+889 y(inline)e(81)177 939 y(input)h(\014le)g(option)f(68)177
+989 y(input)h(\014les)g(47)177 1039 y(Input)g(\014le)g(115)177
+1089 y(input)g(\014le)g(18)177 1139 y(input)g(\014le)g(64)177
+1189 y(input)g(\014le)g(77)177 1239 y(input)g(line)f(length)h(maxim)n(um)c
+(79)177 1288 y(input)k(line)f(length)h(pragma)e(79)177 1338
+y(input)i(line)f(length)h(42)177 1388 y(input)g(line)f(length)h(79)177
+1438 y(inserting)g(EOL)g(mark)o(ers)g(76)177 1488 y(inserting)g(in)o(to)f
+(text)i(arbitrary)f(c)o(haracters)h(74)177 1538 y(inserting)f(in)o(to)f(text)
+i(con)o(trol)e(c)o(haracters)j(74)177 1588 y(inserting)e(in)o(to)f(text)i(sp)
+q(ecial)f(c)o(haracter)h(74)177 1638 y(installation)d(F)m(unnelW)m(eb)i(101)
+177 1687 y(installation)e(problems)h(107)177 1737 y(installing)f(F)m(unnelW)m
+(eb)i(106)177 1787 y(in)o(teractiv)o(e)g(mo)q(de)f(47)177 1837
+y(in)o(teractiv)o(e)h(option)g(69)177 1887 y(in)o(terdep)q(enden)o(t)i(do)q
+(cumen)o(tation)d(50)177 1937 y(in)o(terface)i(command)c(line)i(66)177
+1987 y(in)o(terpreter)j(command)11 b(47)177 2037 y(in)o(tro)q(duction)j
+(tutorial)f(19)177 2086 y(in)o(visible)g(pragmas)f(78)177 2136
+y(in)o(v)o(o)q(cation)h(n)o(um)o(b)q(er)g(23)177 2186 y(in)o(v)o(o)q(cations)
+g(n)o(um)o(b)q(er)g(42)177 2236 y(in)o(v)o(oking)f(F)m(unnelW)m(eb)i(20)177
+2286 y(in)o(v)o(oking)e(F)m(unnelW)m(eb)i(66)177 2336 y(J)g(option)f(69)177
+2386 y(Jerem)o(y)h(Begg)g(11)177 2436 y(journal)f(\014le)h(option)f(69)177
+2486 y(Journal)h(\014le)g(115)177 2535 y(journal)f(\014le)h(64)177
+2585 y(journal)f(\014le)h(69)177 2635 y(K)g(option)f(69)177
+2685 y(Kernighan88)h(117)177 2735 y(Kernighan88)g(65)177 2785
+y(k)o(eyb)q(oard)g(mo)q(de)f(47)177 2835 y(k)o(eyb)q(oard)h(option)f(69)1136
+42 y(Kn)o(uth)h(Donald)f(11)1136 91 y(Kn)o(uth)h(Donald)f(50)1136
+141 y(Kn)o(uth)h(Donald)f(9)1136 191 y(Kn)o(uth83)g(117)1136
+241 y(Kn)o(uth83)g(17)1136 291 y(Kn)o(uth83)g(25)1136 341 y(Kn)o(uth83)g(25)
+1136 391 y(Kn)o(uth83)g(9)1136 441 y(Kn)o(uth84)g(117)1136
+490 y(Kn)o(uth84)g(117)1136 540 y(Kn)o(uth84)g(13)1136 590
+y(Kn)o(uth84)g(17)1136 640 y(Kn)o(uth84)g(18)1136 690 y(L)g(option)h(69)1136
+740 y(Lamp)q(ort86)e(117)1136 790 y(Lamp)q(ort86)g(13)1136
+840 y(language)h(indep)q(endence)j(18)1136 889 y(languages)d(m)o(ultiple)f
+(55)1136 939 y(laser)i(prin)o(ter)g(55)1136 989 y(LaT)m(eX)f(13)1136
+1039 y(LaT)m(eX)g(84)1136 1089 y(la)o(y)o(out)f(program)h(22)1136
+1139 y(la)o(y)o(out)f(program)h(28)1136 1189 y(length)g(command)f(91)1136
+1239 y(length)h(input)h(line)g(42)1136 1288 y(length)f(line)h(71)1136
+1338 y(length)f(output)i(line)e(42)1136 1388 y(letter)h(67)1136
+1438 y(lev)o(els)g(of)f(diagnostics)g(65)1136 1488 y(libraries)g(macro)g(31)
+1136 1538 y(license)h(F)m(unnelW)m(eb)g(112)1136 1588 y(license)g(GNU)g(112)
+1136 1638 y(license)g(GNU)g(18)1136 1688 y(license)g(GNU)g(9)1136
+1737 y(line)f(length)h(input)g(79)1136 1787 y(line)f(length)h(71)1136
+1837 y(line)f(termination)f(71)1136 1887 y(list)h(do)q(cumen)o(t)g(64)1136
+1937 y(list)g(options)h(68)1136 1987 y(list)f(shell)h(commands)d(93)1136
+2037 y(listing)h(\014le)i(con)o(text)h(68)1136 2087 y(listing)d(\014le)i
+(option)f(69)1136 2136 y(Listing)g(\014le)h(115)1136 2186 y(listing)e(\014le)
+i(64)1136 2236 y(listing)e(\014le)i(69)1136 2286 y(literal)f(construct)i(37)
+1136 2336 y(literal)e(directiv)o(e)h(84)1136 2386 y(literate)g(programmi)o
+(ng)d(to)q(ols)i(15)1136 2436 y(literate)h(programmi)o(ng,)c(facilities)j(15)
+1136 2486 y(literate)i(programming)o(,)d(most)i(signi\014can)o(t)h(b)q(ene-)
+1302 2535 y(\014t)f(17)1136 2585 y(literate)g(programmi)o(ng)d(15)1136
+2635 y(literate)j(programmi)o(ng)d(15)1136 2685 y(literate)j(programmi)o(ng)d
+(50)1136 2735 y(MacDra)o(w)i(54)1136 2785 y(Macin)o(tosh)h(13)1136
+2835 y(Macin)o(tosh)g(54)1032 2940 y(122)p eop
+%%Page: 123 124
+123 123 bop 177 42 a Fr(macro)13 b(attributes)i(85)177 91 y(macro)e(bindings)
+g(22)177 141 y(macro)g(b)q(o)q(dy)h(85)177 191 y(macro)f(calls)g(inden)o
+(tation)h(25)177 241 y(macro)f(calls)g(86)177 291 y(macro)g(c)o(hec)o(ks)i
+(88)177 341 y(macro)e(de\014nitions)h(32)177 391 y(Macro)g(de\014nition)g
+(116)177 441 y(macro)f(de\014nition)g(85)177 490 y(macro)g(de\014nition)g(87)
+177 540 y(macro)g(expansion)h(inden)o(tation)f(78)177 590 y(macro)g
+(expansion)h(30)177 640 y(macro)f(expansion)h(47)177 690 y(macro)f(expansion)
+h(87)177 740 y(macro)f(expressions)i(86)177 790 y(macro)e(facilities)g
+(tutorial)g(22)177 840 y(macro)g(iden)o(ti\014ers)h(41)177
+889 y(macro)f(libraries)g(31)177 939 y(macro)g(names)g(41)177
+989 y(macro)g(names)g(86)177 1039 y(macro)g(name)g(85)177 1089
+y(macro)g(parameter)g(delimiting)e(87)177 1139 y(macro)i(recursion)i(43)177
+1189 y(macro)e(recursion)i(88)177 1239 y(macro)e(table)h(dump)e(68)177
+1288 y(macro)h(table)h(64)177 1338 y(macros)f(additiv)o(e)g(26)177
+1388 y(macros)g(parameterized)h(28)177 1438 y(macros)f(simple)g(tutorial)g
+(22)177 1488 y(macros)g(static)h(87)177 1538 y(Macro)g(115)177
+1588 y(magic)e(tric)o(k)i(15)177 1638 y(main)o(tenance)f(programmer)f(50)177
+1687 y(mak)o(e)h(utilit)o(y)f(49)177 1737 y(man)o(uals)g(prin)o(ting)h(107)
+177 1787 y(mapp)q(ed)g(\014le)h(dump)f(68)177 1837 y(Mapp)q(er)i(116)177
+1887 y(mapp)q(er)e(71)177 1937 y(martinet)g(F)m(unnelW)m(eb)g(42)177
+1987 y(maxim)n(um)d(input)k(line)f(length)h(79)177 2037 y(maxim)n(um)c
+(output)k(\014le)g(line)f(length)h(pragma)e(79)177 2086 y(maxim)n(um)e
+(output)k(\014le)g(line)f(length)h(79)177 2136 y(maxim)n(um)c(pro)q(duct)15
+b(\014le)f(line)f(length)h(pragma)e(79)177 2186 y(maxim)n(um)e(pro)q(duct)15
+b(\014le)f(line)f(length)h(79)177 2236 y(medicine)f(wholistic)g(53)177
+2286 y(memory)f(use)i(of)g(30)177 2336 y(memory)e(47)177 2386
+y(MIL-STD-2167A)h(51)177 2436 y(monster)h(\014le)g(p)q(ostscript)h(54)177
+2486 y(m)o(ultiple)d(languages)h(55)177 2535 y(name)g(empt)o(y)g(42)177
+2585 y(name)g(F)m(unnelW)m(eb)g(19)177 2635 y(name)g(section)h(34)177
+2685 y(name)f(section)h(84)177 2735 y(names)f(macro)g(41)177
+2785 y(names)g(macro)g(86)177 2835 y(names)g(quic)o(k)h(42)1136
+42 y(names)f(quic)o(k)g(76)1136 91 y(names)g(section)h(86)1136
+141 y(names)f(86)1136 191 y(name)f(70)1136 241 y(new)i(page)g(pragma)e(81)
+1136 291 y(new)i(page)g(81)1136 341 y(newpage)g(directiv)o(e)g(37)1136
+391 y(no)f(inden)o(tation)h(78)1136 441 y(non-determinism)d(68)1136
+490 y(non-prin)o(table)i(c)o(haracters)j(96)1136 540 y(none)e(inden)o(tation)
+f(78)1136 590 y(notation)g(63)1136 640 y(notes)h(e\016ciency)h(47)1136
+690 y(notice)f(cop)o(yrigh)o(t)f(1)1136 740 y(no)o(v)o(els)g(50)1136
+790 y(n)o(um)o(b)q(er)g(calls)g(23)1136 840 y(n)o(um)o(b)q(er)g(in)o(v)o(o)q
+(cations)g(42)1136 889 y(n)o(um)o(b)q(er)g(in)o(v)o(o)q(cation)f(23)1136
+939 y(n)o(um)o(b)q(er)h(of)g(times)g(called)h(23)1136 989 y(n)o(um)o(b)q
+(ering)e(cross)j(reference)i(89)1136 1039 y(n)o(um)o(b)q(ering)12
+b(section)j(89)1136 1089 y(ob)r(ject)f(co)q(de)h(26)1136 1139
+y(obtaining)d(F)m(unnelW)m(eb)h(101)1136 1189 y(op)q(en)h(systems)g(55)1136
+1239 y(option)f(B)h(68)1136 1288 y(option)f(C)h(68)1136 1338
+y(option)f(delete)i(output)f(68)1136 1388 y(option)f(dump)f(68)1136
+1438 y(option)h(D)g(49)1136 1488 y(option)g(D)g(68)1136 1538
+y(option)g(execute)j(script)e(69)1136 1588 y(option)f(F)h(68)1136
+1638 y(option)f(help)h(68)1136 1687 y(option)f(H)h(68)1136
+1737 y(option)f(include)h(\014le)g(69)1136 1787 y(option)f(input)g(\014le)h
+(68)1136 1837 y(option)f(in)o(teractiv)o(e)h(69)1136 1887 y(option)f(I)h(69)
+1136 1937 y(option)f(journal)g(\014le)h(69)1136 1987 y(option)f(J)h(69)1136
+2037 y(option)f(k)o(eyb)q(oard)h(69)1136 2086 y(option)f(K)h(69)1136
+2136 y(option)f(listing)g(\014le)g(69)1136 2186 y(option)g(L)h(69)1136
+2236 y(option)f(quiet)h(69)1136 2286 y(option)f(Q)h(69)1136
+2336 y(option)f(screen)j(69)1136 2386 y(option)d(S)h(69)1136
+2436 y(option)f(t)o(yp)q(eset)i(69)1136 2486 y(option)e(T)h(69)1136
+2535 y(option)f(width)g(69)1136 2585 y(option)g(W)g(69)1136
+2635 y(option)g(X)h(69)1136 2685 y(options)f(command)e(92)1136
+2735 y(options)i(default)h(49)1136 2785 y(options)f(default)h(92)1136
+2835 y(options)f(list)h(68)1032 2940 y(123)p eop
+%%Page: 124 125
+124 124 bop 177 42 a Fr(options)14 b(setting)g(defaults)g(49)177
+91 y(options)g(syn)o(tax)g(67)177 141 y(options)g(tracedump)f(68)177
+191 y(options)h(67)177 241 y(options)g(68)177 291 y(Option)g(116)177
+341 y(order)h(action)e(execution)i(71)177 391 y(order)g(program)d(22)177
+441 y(ordering)i(program)e(15)177 490 y(Ordinary)i(options)g(70)177
+540 y(organization)f(b)q(oring)g(50)177 590 y(organization)g(spaghetti)h(50)
+177 640 y(output)g(\014le)g(line)g(length)f(maxim)o(um)c(79)177
+690 y(output)14 b(\014les)g(delete)h(49)177 740 y(output)f(\014les)g(18)177
+790 y(output)g(\014les)g(64)177 840 y(Output)h(\014le)f(116)177
+889 y(output)g(line)g(length)f(42)177 939 y(output)h(WEB)g(25)177
+989 y(o)o(v)o(er)g(do)q(cumen)o(tation)f(51)177 1039 y(o)o(v)o(erhead)h(pro)q
+(cedure)i(call)d(57)177 1089 y(o)o(v)o(erview)h(F)m(unnelW)m(eb)f(18)177
+1139 y(o)o(v)o(erview)h(F)m(unnelW)m(eb)f(64)177 1189 y(o)o(v)o(erview)h(t)o
+(yp)q(esetting)h(32)177 1239 y(OzT)m(eX)g(13)177 1288 y(pac)o(k)n(age)f(55)
+177 1338 y(parameter)g(list,)f(absen)o(t)h(29)177 1388 y(parameter)g(lists)g
+(formal)d(86)177 1438 y(parameterized)j(macros)f(28)177 1488
+y(parameters)h(actual)g(29)177 1538 y(parameters)g(formal)e(28)177
+1588 y(parameters)i(formal)e(28)177 1638 y(parameters)i(formal)e(87)177
+1687 y(P)o(arser)j(116)177 1737 y(parser)g(64)177 1787 y(parser)g(82)177
+1837 y(parsing)f(command)d(line)i(66)177 1887 y(P)o(ascal)h(15)177
+1937 y(P)o(ascal)g(25)177 1987 y(P)o(ascal)g(26)177 2037 y(P)o(ascal)g(57)177
+2086 y(P)o(ascal)g(59)177 2136 y(P)o(at)g(Scannel)g(29)177
+2186 y(pa)o(vlo)o(v)f(do)q(cumen)o(tation)f(51)177 2236 y(phases)j(execution)
+g(64)177 2286 y(phases)g(64)177 2336 y(PhD)f(thesis)h(54)177
+2386 y(pitfalls)e(F)m(unnelW)m(eb)g(50)177 2436 y(p)q(o)q(em)g(animal)e(30)
+177 2486 y(p)q(o)q(em)i(camera)g(30)177 2535 y(p)q(ortabilit)o(y)g(18)177
+2585 y(p)q(ostscript)i(header)g(\014le)f(54)177 2635 y(p)q(ostscript)h
+(monster)f(\014le)g(54)177 2685 y(P)o(ostScript)h(54)177 2735
+y(p)q(ostscript)g(57)177 2785 y(pragma)d(input)i(line)f(length)h(79)177
+2835 y(pragma)e(maxim)n(um)e(output)k(\014le)g(line)f(length)h(79)1136
+42 y(pragma)e(maxim)n(um)d(pro)q(duct)15 b(\014le)f(line)f(length)h(79)1136
+91 y(pragma)e(new)i(page)g(81)1136 141 y(pragma)e(table)h(of)h(con)o(ten)o
+(ts)h(81)1136 191 y(pragma)d(title)h(82)1136 241 y(pragma)f(t)o(yp)q(esetter)
+k(80)1136 291 y(pragma)c(vskip)h(81)1136 341 y(pragmas)f(in)o(visible)h(78)
+1136 391 y(pragmas)f(visible)h(78)1136 441 y(pragmas)f(78)1136
+490 y(Pragma)g(116)1136 540 y(pragma)g(25)1136 590 y(pragma)g(78)1136
+640 y(preface)j(9)1136 690 y(prepro)q(cessor)h(C)e(20)1136
+740 y(prepro)q(cessor)i(C)e(57)1136 790 y(presen)o(tation)g(notes)h(13)1136
+840 y(Prin)o(ted)f(do)q(cumen)o(tation)f(116)1136 889 y(prin)o(ter)h(laser)g
+(55)1136 939 y(prin)o(ting)f(man)o(uals)f(107)1136 989 y(prin)o(ting)h
+(system)g(55)1136 1039 y(problems)g(binding)f(57)1136 1089
+y(problems)h(installation)f(107)1136 1139 y(pro)q(cedure)j(call)f(o)o(v)o
+(erhead)g(57)1136 1189 y(pro)q(cessing)h(command)c(line)i(66)1136
+1239 y(pro)q(cessing)i(command)c(line)i(92)1136 1288 y(pro)q(duct)h(\014le)g
+(line)g(length)g(maxim)n(um)9 b(79)1136 1338 y(pro)q(duct)14
+b(\014le)g(width)g(69)1136 1388 y(pro)q(duct)g(\014les)h(18)1136
+1438 y(pro)q(duct)f(\014les)h(64)1136 1488 y(Pro)q(duct)g(\014le)e(116)1136
+1538 y(pro)q(duction)h(to)q(ol)f(19)1136 1588 y(program)f(la)o(y)o(out)h(22)
+1136 1638 y(program)f(la)o(y)o(out)h(28)1136 1687 y(program)f(ordering)i(15)
+1136 1737 y(program)e(order)j(22)1136 1787 y(programmer)c(main)o(tenance)i
+(50)1136 1837 y(programmer's)e(c)o(heer)k(35)1136 1887 y(programmi)o(ng)c
+(literate)j(50)1136 1937 y(Q)g(option)f(69)1136 1987 y(quic)o(k)g(names)g(42)
+1136 2037 y(quic)o(k)g(names)g(76)1136 2086 y(quic)o(k)g(name)g(42)1136
+2136 y(quic)o(k)g(name)g(76)1136 2186 y(quiet)h(option)f(69)1136
+2236 y(quit)g(command)e(98)1136 2286 y(random)h(access)k(50)1136
+2336 y(rec.h)o(umor.funn)o(y)c(29)1136 2386 y(recursion)j(macro)d(43)1136
+2436 y(recursion)j(macro)d(88)1136 2486 y(recursiv)o(e)j(include)f(\014les)g
+(31)1136 2535 y(references)i(117)1136 2585 y(referencing)f(cross)g(89)1136
+2635 y(registration)e(F)m(unnelW)m(eb)h(110)1136 2685 y(regression)h(testing)
+f(103)1136 2735 y(regression)h(testing)f(47)1136 2785 y(reliabilit)o(y)e(18)
+1136 2835 y(REM)h(statemen)o(t)h(57)1032 2940 y(124)p eop
+%%Page: 125 126
+125 125 bop 177 42 a Fr(rep)q(ort)15 b(ann)o(ual)e(58)177 91
+y(results)i(directory)g(103)177 141 y(return)g(status)g(65)177
+191 y(Roger)f(Brissenden)i(11)177 241 y(Roso)o(vsky90)d(117)177
+291 y(Roso)o(vsky90)g(17)177 341 y(Ross)h(William)o(s)d(1)177
+391 y(rule)j(simple)f(20)177 441 y(rules)i(F)m(unnelW)m(eb)e(42)177
+490 y(running)h(F)m(unnelW)m(eb)f(66)177 540 y(S)h(option)f(69)177
+590 y(Scannel)h(P)o(at)g(29)177 640 y(Scanner)h(116)177 690
+y(scanner)g(64)177 740 y(scanner)g(71)177 790 y(screen)h(option)d(69)177
+840 y(script)i(initialization)c(49)177 889 y(script)k(initialization)c(71)177
+939 y(script)k(startup)f(49)177 989 y(scripts)h(directory)g(103)177
+1039 y(Script)g(116)177 1089 y(section)g(constructs)h(83)177
+1139 y(section)f(headings)f(34)177 1189 y(section)h(name)d(inheritance)j(35)
+177 1239 y(section)g(names)e(86)177 1288 y(section)i(name)d(34)177
+1338 y(section)j(name)d(84)177 1388 y(section)j(n)o(um)o(b)q(ering)d(89)177
+1438 y(section)j(strength)g(46)177 1488 y(seman)o(tic)e(arc)o(hitecture)j(64)
+177 1538 y(sequences)h(sp)q(ecial)d(72)177 1588 y(set)h(abstraction)f(59)177
+1638 y(set)h(command)c(48)177 1687 y(set)k(command)c(98)177
+1737 y(setting)j(defaults)g(options)g(49)177 1787 y(setting)g(sp)q(ecial)h(c)
+o(haracter)g(74)177 1837 y(sev)o(ere)h(sev)o(erit)o(y)e(65)177
+1887 y(sev)o(ere)i(status)e(90)177 1937 y(sev)o(erit)o(y)h(assertion)f(65)177
+1987 y(sev)o(erit)o(y)h(error)g(65)177 2037 y(sev)o(erit)o(y)g(fatal)d(65)177
+2086 y(sev)o(erit)o(y)j(sev)o(ere)g(65)177 2136 y(sev)o(erit)o(y)g(w)o
+(arning)e(65)177 2186 y(sev)o(erit)o(y)i(65)177 2236 y(sharing)f(information)
+d(56)177 2286 y(sharing)j(text)g(58)177 2336 y(shark)g(white)g(p)q(oin)o(ter)
+g(19)177 2386 y(shell)g(commands)d(list)j(93)177 2436 y(shell)g(commands)d
+(93)177 2486 y(shell)j(errors)h(90)177 2535 y(shell)f(F)m(unnelW)m(eb)f(90)
+177 2585 y(shell)h(uses)h(90)177 2635 y(Shell)f(116)177 2685
+y(sho)q(oting)g(31)177 2735 y(sho)o(w)g(command)d(48)177 2785
+y(sho)o(w)j(command)d(98)177 2835 y(sign)j(67)1136 42 y(Simon)d(Hac)o(k)o
+(ett)k(11)1136 91 y(simple)d(macros)h(tutorial)g(22)1136 141
+y(simple)f(rule)i(20)1136 191 y(simple)e(sequence)k(72)1136
+241 y(simplicit)o(y)11 b(18)1136 291 y(size)j(fon)o(t)g(46)1136
+341 y(skip)f(v)o(ertical)h(81)1136 391 y(skipto)f(command)e(98)1136
+441 y(small)g(functions)j(56)1136 490 y(Smith91)d(117)1136
+540 y(Smith91)g(17)1136 590 y(snak)o(e)j(tiger)g(19)1136 640
+y(song)f(29)1136 690 y(sources)i(directory)g(103)1136 740 y(spacing)e(43)1136
+790 y(spaghetti)h(organization)e(50)1136 840 y(sp)q(ecial)i(c)o(haracter)h(c)
+o(hanging)e(31)1136 889 y(sp)q(ecial)h(c)o(haracter)h(default)f(72)1136
+939 y(sp)q(ecial)g(c)o(haracter)h(inserting)f(in)o(to)f(text)i(74)1136
+989 y(sp)q(ecial)f(c)o(haracter)h(setting)f(74)1136 1039 y(Sp)q(ecial)f(c)o
+(haracter)j(116)1136 1089 y(sp)q(ecial)e(c)o(haracter)h(20)1136
+1139 y(sp)q(ecial)f(c)o(haracter)h(72)1136 1189 y(sp)q(ecial)f(sequences)i
+(72)1136 1239 y(Sp)q(ecial)d(sequence)k(116)1136 1288 y(sp)q(ecial)d
+(sequence)i(20)1136 1338 y(sp)q(ecial)e(sequence)i(72)1136
+1388 y(sp)q(ecial)e(tok)o(ens)g(82)1136 1438 y(sp)q(eed)h(47)1136
+1488 y(spider)f(F)m(unnel-w)o(eb)g(19)1136 1538 y(startup)g(F)m(unnelW)m(eb)g
+(70)1136 1588 y(startup)g(script)h(49)1136 1638 y(statemen)o(t)e(REM)h(57)
+1136 1687 y(static)g(analysis)f(88)1136 1737 y(static)h(macros)f(87)1136
+1787 y(status)h(assertion)h(90)1136 1837 y(status)f(command)d(99)1136
+1887 y(status)j(error)h(90)1136 1937 y(status)f(fatal)f(90)1136
+1987 y(status)h(return)h(65)1136 2037 y(status)f(sev)o(ere)i(90)1136
+2086 y(status)e(success)j(90)1136 2136 y(status)d(w)o(arning)f(90)1136
+2186 y(stream)g(of)g(consciousness)j(50)1136 2236 y(strength)f(headings)f(46)
+1136 2286 y(strength)h(section)f(46)1136 2336 y(strength)h(t)o(yp)q(esetting)
+g(46)1136 2386 y(string)f(substitution)g(91)1136 2436 y(string)g
+(substitution)g(94)1136 2486 y(string)g(67)1136 2535 y(structure)i(hierarc)o
+(hical)d(34)1136 2585 y(structure)j(tree)f(83)1136 2635 y(Strunk79)e(117)1136
+2685 y(Strunk79)g(51)1136 2735 y(substitution)h(string)g(91)1136
+2785 y(substitution)g(string)g(94)1136 2835 y(success)i(status)f(90)1032
+2940 y(125)p eop
+%%Page: 126 127
+126 126 bop 177 42 a Fr(supp)q(ort)15 b(F)m(unnelW)m(eb)e(110)177
+91 y(suppress)j(console)e(output)g(69)177 141 y(suppressing)h(EOL)g(mark)o
+(ers)e(77)177 191 y(suppression)i(EOL)g(23)177 241 y(suppression)g(\014le)f
+(49)177 291 y(Sydney)g(19)177 341 y(syn)o(tax)g(command)d(line)j(options)f
+(67)177 391 y(syn)o(tax)h(command)d(line)j(67)177 441 y(syn)o(tax)g(EBNF)h
+(63)177 490 y(syn)o(tax)f(high)f(lev)o(el)h(82)177 540 y(syn)o(tax)g(options)
+g(67)177 590 y(system)g(prin)o(ting)f(55)177 640 y(T)h(option)f(69)177
+690 y(table)h(macro)f(64)177 740 y(table)h(of)f(con)o(ten)o(ts)i(directiv)o
+(e)g(37)177 790 y(table)f(of)f(con)o(ten)o(ts)i(pragma)d(81)177
+840 y(table)i(of)f(con)o(ten)o(ts)i(81)177 889 y(tabs)f(42)177
+939 y(T)m(angle)f(116)177 989 y(tangle)h(65)177 1039 y(tangle)g(88)177
+1089 y(T)m(angling)e(21)177 1139 y(target)j(t)o(yp)q(esetter)h(89)177
+1189 y(termination)c(\014le)i(71)177 1239 y(termination)e(line)i(71)177
+1288 y(terminology)e(63)177 1338 y(testing)i(F)m(unnelW)m(eb)g(105)177
+1388 y(testing)g(regression)i(103)177 1438 y(testing)e(regression)i(47)177
+1488 y(tests)f(directory)g(104)177 1538 y(text)g(editors)f(42)177
+1588 y(text)h(\014les)f(cryptic)h(55)177 1638 y(text)g(free)f(83)177
+1687 y(text)h(sharing)e(58)177 1737 y(text)i(tok)o(ens)f(82)177
+1787 y(T)m(eX)g(13)177 1837 y(T)m(eX)g(18)177 1887 y(T)m(eX)g(22)177
+1937 y(T)m(eX)g(54)177 1987 y(thesis)h(PhD)f(54)177 2037 y(tiger)g(snak)o(e)g
+(19)177 2086 y(time)f(dev)o(elopmen)o(t)g(17)177 2136 y(times)g(dump)g(68)177
+2186 y(title)h(directiv)o(e)g(37)177 2236 y(title)g(pragma)e(82)177
+2286 y(title)i(82)177 2336 y(tok)o(en)g(list)g(dump)e(68)177
+2386 y(tolerate)i(command)e(100)177 2436 y(to)q(ols)i(literate)g(programmi)o
+(ng)d(15)177 2486 y(trace)k(command)c(100)177 2535 y(trace)k(on)f(command)d
+(48)177 2585 y(tracedump)j(options)f(68)177 2635 y(trailing)g(blanks)g(42)177
+2685 y(tree)i(directory)g(102)177 2735 y(tree)g(structure)h(83)177
+2785 y(T)m(rev)o(orro)o(w)e(Andrew)h(13)177 2835 y(tutorial)e(+=)i(26)1136
+42 y(tutorial)e(==)h(26)1136 91 y(tutorial)f(@M)h(24)1136 141
+y(tutorial)f(@Z)h(24)1136 191 y(tutorial)f(in)o(tro)q(duction)g(19)1136
+241 y(tutorial)g(macro)f(facilities)h(22)1136 291 y(tutorial)g(macros)g
+(simple)f(22)1136 341 y(tutorial)h(simple)f(macros)h(22)1136
+391 y(tutorial)g(t)o(yp)q(esetting)i(32)1136 441 y(tutorial)e(15)1136
+490 y(tutorial)g(19)1136 540 y(t)o(w)o(elv)o(e)g(bugs)i(of)e(c)o(hristmas)g
+(29)1136 590 y(t)o(w)o(o)g(main)f(asp)q(ects)j(F)m(unnelW)m(eb)f(21)1136
+640 y(t)o(yp)q(esafe)g(generics)h(61)1136 690 y(t)o(yp)q(eset)g(\014le)f(69)
+1136 740 y(t)o(yp)q(eset)h(option)e(69)1136 790 y(t)o(yp)q(esetter)j
+(directiv)o(e)e(tok)o(ens)h(82)1136 840 y(t)o(yp)q(esetter)h(directiv)o(es)f
+(66)1136 889 y(t)o(yp)q(esetter)h(directiv)o(es)f(81)1136 939
+y(t)o(yp)q(esetter)h(indep)q(endence)g(18)1136 989 y(t)o(yp)q(esetter)g
+(indep)q(endence)g(34)1136 1039 y(t)o(yp)q(esetter)g(indep)q(endence)g(65)
+1136 1089 y(t)o(yp)q(esetter)g(indep)q(endence)g(80)1136 1139
+y(t)o(yp)q(esetter)g(indep)q(enden)o(t)f(34)1136 1189 y(t)o(yp)q(esetter)h
+(pragma)c(80)1136 1239 y(t)o(yp)q(esetter)k(target)e(89)1136
+1288 y(T)o(yp)q(esetting)g(directiv)o(e)h(116)1136 1338 y(t)o(yp)q(esetting)f
+(o)o(v)o(erview)g(32)1136 1388 y(t)o(yp)q(esetting)g(strength)i(46)1136
+1438 y(t)o(yp)q(esetting)e(tutorial)g(32)1136 1488 y(t)o(yp)q(esetting)g(13)
+1136 1538 y(t)o(yp)q(esetting)g(89)1136 1588 y(univ)o(ersities)g(17)1136
+1638 y(Univ)o(ersit)o(y)f(Adelaide)h(59)1136 1687 y(Unix)f(newline)h(75)1136
+1737 y(Unix)f(67)1136 1787 y(unprin)o(table)g(c)o(haracters)j(71)1136
+1837 y(USDOD83)d(117)1136 1887 y(use)h(of)g(memory)d(30)1136
+1937 y(useful)j(commands)d(47)1136 1987 y(userman)i(directory)i(105)1136
+2037 y(uses)g(shell)f(90)1136 2086 y(v)o(ersions)g(F)m(unnelW)m(eb)f(114)1136
+2136 y(v)o(ertical)g(skip)h(81)1136 2186 y(visible)f(pragmas)f(78)1136
+2236 y(vskip)h(directiv)o(e)i(37)1136 2286 y(vskip)e(pragma)f(81)1136
+2336 y(W)h(option)g(69)1136 2386 y(w)o(arning)g(sev)o(erit)o(y)h(65)1136
+2436 y(w)o(arning)f(status)h(90)1136 2486 y(w)o(arran)o(t)o(y)f(112)1136
+2535 y(W)m(ea)o(v)o(e)g(116)1136 2585 y(w)o(ea)o(v)o(e)h(65)1136
+2635 y(w)o(ea)o(v)o(e)g(89)1136 2685 y(W)m(ea)o(ving)e(21)1136
+2735 y(WEB)i(output)g(25)1136 2785 y(WEB)g(21)1136 2835 y(WEB)g(25)1032
+2940 y(126)p eop
+%%Page: 127 128
+127 127 bop 177 42 a Fr(W)m(eb)14 b(9)177 91 y(white)g(p)q(oin)o(ter)g(shark)
+g(19)177 141 y(wholistic)f(debugging)h(53)177 191 y(wholistic)f(debugging)h
+(53)177 241 y(wholistic)f(medicine)g(53)177 291 y(width)h(option)f(69)177
+340 y(width)h(pro)q(duct)h(\014le)e(69)177 390 y(William)o(s)f(Ross)h(1)177
+440 y(w)o(orkstations)h(48)177 490 y(w)o(orkstation)g(90)177
+540 y(write)g(command)d(100)177 589 y(writeu)j(command)e(100)177
+639 y(X)i(option)f(69)1032 2940 y(127)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF