\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
\def\texinfoversion{2003-02-03.16}
\message{Loading texinfo [version \texinfoversion]:}
\everyjob{\message{[Texinfo version \texinfoversion]} \catcode`+=\active \catcode`\_=\active}
\message{Basics,}
\chardef\other=12
\let\+ = \relax
\let\ptexb=\b
\let\ptexbullet=\bullet
\let\ptexc=\c
\let\ptexcomma=\,
\let\ptexdot=\.
\let\ptexdots=\dots
\let\ptexend=\end
\let\ptexequiv=\equiv
\let\ptexexclam=\!
\let\ptexgtr=>
\let\ptexhat=^
\let\ptexi=\i
\let\ptexlbrace=\{
\let\ptexless=<
\let\ptexplus=+
\let\ptexrbrace=\}
\let\ptexstar=\*
\let\ptext=\t
\newlinechar = `^^J
\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
\ifx\putwordin\undefined \gdef\putwordin{in}\fi
\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
\ifx\putwordof\undefined \gdef\putwordof{of}\fi
\ifx\putwordon\undefined \gdef\putwordon{on}\fi
\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dotChar = `\.
\chardef\equalChar = `\=
\chardef\exclamChar= `\!
\chardef\questChar = `\?
\chardef\semiChar = `\;
\chardef\spaceChar = `\ \chardef\underChar = `\_
\def\gobble#1{}
\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}
\hyphenation{ap-pen-dix}
\hyphenation{mini-buf-fer mini-buf-fers}
\hyphenation{eshell}
\hyphenation{white-space}
\newdimen\bindingoffset
\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}\def\loggingall{ \tracingstats2
\tracingpages1
\tracinglostchars2 \tracingparagraphs1
\tracingoutput1
\tracingmacros2
\tracingrestores1
\showboxbreadth\maxdimen \showboxdepth\maxdimen
\ifx\eTeXversion\undefined\else \tracingscantokens1
\tracingifs1
\tracinggroups1
\tracingnesting2
\tracingassigns1
\fi
\tracingcommands3 \errorcontextlines\maxdimen
}
\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
\removelastskip\penalty-50\smallskip\fi\fi}
\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
\removelastskip\penalty-100\medskip\fi\fi}
\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
\removelastskip\penalty-200\bigskip\fi\fi}
\newif\ifcropmarks
\let\cropmarks = \cropmarkstrue
\newdimen\outerhsize \newdimen\outervsize \newdimen\cornerlong \cornerlong=1pc
\newdimen\cornerthick \cornerthick=.3pt
\newdimen\topandbottommargin \topandbottommargin=.75in
\chardef\PAGE = 255
\output = {\onepageout{\pagecontents\PAGE}}
\newbox\headlinebox
\newbox\footlinebox
\def\onepageout#1{ \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
\setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline} \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline} { \escapechar = `\\ \indexdummies \normalturnoffactive \shipout\vbox{ \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
\ifcropmarks \vbox to \outervsize\bgroup
\hsize = \outerhsize
\vskip-\topandbottommargin
\vtop to0pt{ \line{\ewtop\hfil\ewtop} \nointerlineskip
\line{ \vbox{\moveleft\cornerthick\nstop} \hfill
\vbox{\moveright\cornerthick\nstop} } \vss} \vskip\topandbottommargin
\line\bgroup
\hfil \ifodd\pageno\hskip\bindingoffset\fi
\vbox\bgroup
\fi
\unvbox\headlinebox
\pagebody{#1} \ifdim\ht\footlinebox > 0pt
\vskip 2\baselineskip
\unvbox\footlinebox
\fi
\ifcropmarks
\egroup \hfil\egroup \vskip\topandbottommargin plus1fill minus1fill
\boxmaxdepth = \cornerthick
\vbox to0pt{\vss
\line{ \vbox{\moveleft\cornerthick\nsbot} \hfill
\vbox{\moveright\cornerthick\nsbot} } \nointerlineskip
\line{\ewbot\hfil\ewbot} } \egroup \fi
} } \advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi
}
\newinsert\margin \dimen\margin=\maxdimen
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
{\catcode`\@ =11
\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
\ifvoid\margin\else \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
\dimen@=\dp#1 \unvbox#1
\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
}
\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
\def\nstop{\vbox
{\hrule height\cornerthick depth\cornerlong width\cornerthick}}
\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
\def\nsbot{\vbox
{\hrule height\cornerlong depth\cornerthick width\cornerthick}}
\def\parsearg#1{ \let\next = #1 \begingroup
\obeylines
\futurelet\temp\parseargx
}
\def\parseargx{ \ifx\obeyedspace\temp
\expandafter\parseargdiscardspace
\else
\expandafter\parseargline
\fi
}
{\obeyspaces \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
{\obeylines \gdef\parseargline#1^^M{ \endgroup \argremovec #1\c\relax \expandafter\argremovecomment \the\toks0 \comment\relax \expandafter\next\expandafter{\the\toks0} }}
\def\argremovec#1\c#2\relax{\toks0 = {#1}}
\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
\def\removeactivespaces#1{ \begingroup
\ignoreactivespaces
\edef\temp{#1} \global\toks0 = \expandafter{\temp} \endgroup
}
\begingroup
\obeyspaces
\gdef\ignoreactivespaces{\obeyspaces\let =\empty}
\endgroup
\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
\def\ENVcheck{\ifENV\errmessage{Still within an environment; press RETURN to continue}
\endgroup\fi}
\newhelp\EMsimple{Press RETURN to continue.}
\outer\def\begin{\parsearg\beginxxx}
\def\beginxxx #1{\expandafter\ifx\csname #1\endcsname\relax
{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
\csname #1\endcsname\fi}
\def\end{\parsearg\endxxx}
\def\endxxx #1{ \removeactivespaces{#1} \edef\endthing{\the\toks0} \expandafter\ifx\csname E\endthing\endcsname\relax
\expandafter\ifx\csname \endthing\endcsname\relax
\errhelp = \EMsimple
\errmessage{Undefined command `@end \endthing'} \else
\unmatchedenderror\endthing
\fi
\else
\csname E\endthing\endcsname
\fi
}
\def\unmatchedenderror#1{ \errhelp = \EMsimple
\errmessage{This `@end #1' doesn't have a matching `@#1'}}
\def\defineunmatchedend#1{ \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}}
\def\@{{\tt\char64}}
\def\mylbrace {{\tt\char123}}
\def\myrbrace {{\tt\char125}}
\let\{=\mylbrace
\let\}=\myrbrace
\begingroup
\catcode`\{ = \other \catcode`\} = \other
\catcode`\[ = 1 \catcode`\] = 2
\catcode`\! = 0 \catcode`\\ = \other
!gdef!lbracecmd[\{] !gdef!rbracecmd[\}] !gdef!lbraceatcmd[@{] !gdef!rbraceatcmd[@}]!endgroup
\let\, = \c
\let\dotaccent = \.
\def\ringaccent#1{{\accent23 #1}}
\let\tieaccent = \t
\let\ubaraccent = \b
\let\udotaccent = \d
\def\questiondown{?`}
\def\exclamdown{!`}
\def\imacro{i}
\def\jmacro{j}
\def\dotless#1{ \def\temp{#1} \ifx\temp\imacro \ptexi
\else\ifx\temp\jmacro \j
\else \errmessage{@dotless can be used only with i or j} \fi\fi
}
{\catcode`@ = 11
\global\let\tiepenalty = \@M
\gdef\tie{\leavevmode\penalty\tiepenalty\ }
}
\def\:{\spacefactor=1000 }
\def\*{\hfil\break\hbox{}\ignorespaces}
\def\.{.\spacefactor=3000 }
\def\!{!\spacefactor=3000 }
\def\?{?\spacefactor=3000 }
\def\w#1{\leavevmode\hbox{#1}}
\newbox\groupbox
\def\vfilllimit{0.7}
\def\group{\begingroup
\ifnum\catcode13=\active \else
\errhelp = \groupinvalidhelp
\errmessage{@group invalid in context where filling is enabled} \fi
\def\Egroup{ \egroup \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
\dimen2 = \pageheight \advance\dimen2 by -\pagetotal
\ifdim \dimen0 > \dimen2
\ifdim \pagetotal < \vfilllimit\pageheight
\page
\fi
\fi
\copy\groupbox
\endgroup } \setbox\groupbox = \vtop\bgroup
\everypar = {\strut} \offinterlineskip
\ifx\par\lisppar
\edef\par{\leavevmode \par} \obeylines
\fi
\comment
}
\newhelp\groupinvalidhelp{group can only be used in environments such as @example,^^Jwhere each line of input produces a line of output.}
\newdimen\mil \mil=0.001in
\def\need{\parsearg\needx}
\def\needx#1{ \par
\dimen0 = #1\mil
\dimen2 = \ht\strutbox
\advance\dimen2 by \dp\strutbox
\ifdim\dimen0 > \dimen2
\vtop to #1\mil{\strut\vfil} \penalty9999
\kern -#1\mil
\nobreak
\fi
}
\let\br = \par
\def\dots{ \leavevmode
\hbox to 1.5em{ \hskip 0pt plus 0.25fil minus 0.25fil
.\hss.\hss. \hskip 0pt plus 0.5fil minus 0.5fil
}}
\def\enddots{ \leavevmode
\hbox to 2em{ \hskip 0pt plus 0.25fil minus 0.25fil
.\hss.\hss.\hss. \hskip 0pt plus 0.5fil minus 0.5fil
} \spacefactor=3000
}
\def\page{\par\vfill\supereject}
\newskip\exdentamount
\def\exdent{\parsearg\exdentyyy}
\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
\def\nofillexdent{\parsearg\nofillexdentyyy}
\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
\leftline{\hskip\leftskip{\rm#1}}}}
\newskip\inmarginspacing \inmarginspacing=1cm
\def\strutdepth{\dp\strutbox}
\def\doinmargin#1#2{\strut\vadjust{ \nobreak
\kern-\strutdepth
\vtop to \strutdepth{ \baselineskip=\strutdepth
\vss
\ifx#1l \llap{\ignorespaces #2\hskip\inmarginspacing} \else
\rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2} \fi
\null
}}}
\def\inleftmargin{\doinmargin l}
\def\inrightmargin{\doinmargin r}
\def\inmargin#1{\parseinmargin #1,,\finish}
\def\parseinmargin#1,#2,#3\finish{ \setbox0 = \hbox{\ignorespaces #2} \ifdim\wd0 > 0pt
\def\lefttext{#1} \def\righttext{#2} \else
\def\lefttext{#1} \def\righttext{#1} \fi
\ifodd\pageno
\def\temp{\inrightmargin\righttext} \else
\def\temp{\inleftmargin\lefttext} \fi
\temp
}
\def\include{\begingroup
\catcode`\\=\other
\catcode`~=\other
\catcode`^=\other
\catcode`_=\other
\catcode`|=\other
\catcode`<=\other
\catcode`>=\other
\catcode`+=\other
\parsearg\includezzz}
\def\includezzz#1{\endgroup\begingroup
\def\thisfile{#1} \let\value=\expandablevalue
\input\thisfile
\endgroup}
\def\thisfile{}
\def\center{\parsearg\docenter}
\def\docenter#1{{ \ifhmode \hfil\break \fi
\advance\hsize by -\leftskip
\advance\hsize by -\rightskip
\line{\hfil \ignorespaces#1\unskip \hfil} \ifhmode \break \fi
}}
\def\sp{\parsearg\spxxx}
\def\spxxx #1{\vskip #1\baselineskip}
\def\comment{\begingroup \catcode`\^^M=\other\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other\commentxxx}
{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
\let\c=\comment
\def\asisword{asis} \def\noneword{none}
\def\paragraphindent{\parsearg\doparagraphindent}
\def\doparagraphindent#1{ \def\temp{#1} \ifx\temp\asisword
\else
\ifx\temp\noneword
\defaultparindent = 0pt
\else
\defaultparindent = #1em
\fi
\fi
\parindent = \defaultparindent
}
\def\exampleindent{\parsearg\doexampleindent}
\def\doexampleindent#1{ \def\temp{#1} \ifx\temp\asisword
\else
\ifx\temp\noneword
\lispnarrowing = 0pt
\else
\lispnarrowing = #1em
\fi
\fi
}
\def\asis#1{#1}
\let\implicitmath = $%$ font-lock fix
{\catcode\underChar = \active
\gdef\mathunderscore{ \catcode\underChar=\active
\def_{\ifnum\fam=\slfam \_\else\sb\fi}}}
\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
\def\math{ \tex
\mathcode`\_="8000 \mathunderscore
\let\\ = \mathbackslash
\mathactive
\implicitmath\finishmath}
\def\finishmath#1{#1\implicitmath\Etex}
{
\catcode`^ = \active
\catcode`< = \active
\catcode`> = \active
\catcode`+ = \active
\gdef\mathactive{ \let^ = \ptexhat
\let< = \ptexless
\let> = \ptexgtr
\let+ = \ptexplus
}
}
\def\bullet{\implicitmath\ptexbullet\implicitmath}
\def\minus{\implicitmath-\implicitmath}
\let\refill=\relax
\newif\iflinks \linkstrue \let\novalidate = \linksfalse
\def\setfilename{ \iflinks
\readauxfile
\fi \openindices
\fixbackslash \global\let\setfilename=\comment \openin 1 texinfo.cnf
\ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
\closein1
\temp
\comment }
\def\openindices{ \newindex{cp} \newcodeindex{fn} \newcodeindex{vr} \newcodeindex{tp} \newcodeindex{ky} \newcodeindex{pg}}
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
\message{pdf,}
\newcount\tempnum
\newcount\lnkcount
\newtoks\filename
\newcount\filenamelength
\newcount\pgn
\newtoks\toksA
\newtoks\toksB
\newtoks\toksC
\newtoks\toksD
\newbox\boxA
\newcount\countA
\newif\ifpdf
\newif\ifpdfmakepagedest
\ifx\pdfoutput\undefined
\pdffalse
\let\pdfmkdest = \gobble
\let\pdfurl = \gobble
\let\endlink = \relax
\let\linkcolor = \relax
\let\pdfmakeoutlines = \relax
\else
\pdftrue
\pdfoutput = 1
\input pdfcolor
\def\dopdfimage#1#2#3{ \def\imagewidth{#2} \def\imageheight{#3} \ifnum\pdftexversion < 14
\immediate\pdfimage
\else
\immediate\pdfximage
\fi
\ifx\empty\imagewidth\else width \imagewidth \fi
\ifx\empty\imageheight\else height \imageheight \fi
\ifnum\pdftexversion<13
#1.pdf \else
{#1.pdf} \fi
\ifnum\pdftexversion < 14 \else
\pdfrefximage \pdflastximage
\fi}
\def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}}
\def\pdfmkpgn#1{#1}
\let\linkcolor = \Blue \def\endlink{\Black\pdfendlink}
\def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0 \else \csname#1\endcsname \fi}
\def\advancenumber#1{\tempnum=\expnumber{#1}\relax
\advance\tempnum by1
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
\def\pdfmakeoutlines{{ \openin 1 \jobname.toc
\ifeof 1\else\begingroup
\closein 1
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
\def\chapentry ##1##2##3{}
\def\secentry ##1##2##3##4{\advancenumber{chap##2}}
\def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
\def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
\let\appendixentry = \chapentry
\let\unnumbchapentry = \chapentry
\let\unnumbsecentry = \secentry
\let\unnumbsubsecentry = \subsecentry
\let\unnumbsubsubsecentry = \subsubsecentry
\input \jobname.toc
\def\chapentry ##1##2##3{ \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
\def\secentry ##1##2##3##4{ \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
\def\subsecentry ##1##2##3##4##5{ \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
\def\subsubsecentry ##1##2##3##4##5##6{ \pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
\let\appendixentry = \chapentry
\let\unnumbchapentry = \chapentry
\let\unnumbsecentry = \secentry
\let\unnumbsubsecentry = \subsecentry
\let\unnumbsubsubsecentry = \subsubsecentry
\indexnofonts
\let\tt=\relax
\turnoffactive
\input \jobname.toc
\endgroup\fi
}}
\def\makelinks #1,{ \def\params{#1}\def\E{END} \ifx\params\E
\let\nextmakelinks=\relax
\else
\let\nextmakelinks=\makelinks
\ifnum\lnkcount>0,\fi
\picknum{#1} \startlink attr{/Border [0 0 0]}
goto name{\pdfmkpgn{\the\pgn}} \linkcolor #1 \advance\lnkcount by 1 \endlink
\fi
\nextmakelinks
}
\def\picknum#1{\expandafter\pn#1}
\def\pn#1{ \def\p{#1} \ifx\p\lbrace
\let\nextpn=\ppn
\else
\let\nextpn=\ppnn
\def\first{#1}
\fi
\nextpn
}
\def\ppn#1{\pgn=#1\gobble}
\def\ppnn{\pgn=\first}
\def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\skipspaces#1{\def\PP{#1}\def\D{|} \ifx\PP\D\let\nextsp\relax
\else\let\nextsp\skipspaces
\ifx\p\space\else\addtokens{\filename}{\PP} \advance\filenamelength by 1
\fi
\fi
\nextsp}
\def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
\ifnum\pdftexversion < 14
\let \startlink \pdfannotlink
\else
\let \startlink \pdfstartlink
\fi
\def\pdfurl#1{ \begingroup
\normalturnoffactive\def\@{@} \let\value=\expandablevalue
\leavevmode\Red
\startlink attr{/Border [0 0 0]} user{/Subtype /Link /A << /S /URI /URI (#1) >>} \endgroup}
\def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
\def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
\def\maketoks{ \expandafter\poptoks\the\toksA|ENDTOKS|
\ifx\first0\adn0
\else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
\else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
\else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
\else
\ifnum0=\countA\else\makelink\fi
\ifx\first.\let\next=\done\else
\let\next=\maketoks
\addtokens{\toksB}{\the\toksD}
\ifx\first,\addtokens{\toksB}{\space}\fi
\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\next}
\def\makelink{\addtokens{\toksB} {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
\def\pdflink#1{ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
\linkcolor #1\endlink}
\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
\fi
\message{fonts,}
\newfam\sffam
\def\sf{\fam=\sffam \tensf}
\let\li = \sf
\def\ttsl{\tenttsl}
\newdimen\textleading \textleading = 13.2pt
\def\lineskipfactor{.08333}
\def\strutheightpercent{.70833}
\def\strutdepthpercent {.29167}
\def\setleading#1{ \normalbaselineskip = #1\relax
\normallineskip = \lineskipfactor\normalbaselineskip
\normalbaselines
\setbox\strutbox =\hbox{ \vrule width0pt height\strutheightpercent\baselineskip
depth \strutdepthpercent \baselineskip
}}
\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
\ifx\fontprefix\undefined
\def\fontprefix{cm}
\fi
\def\rmshape{r}
\def\rmbshape{bx} \def\bfshape{b}
\def\bxshape{bx}
\def\ttshape{tt}
\def\ttbshape{tt}
\def\ttslshape{sltt}
\def\itshape{ti}
\def\itbshape{bxti}
\def\slshape{sl}
\def\slbshape{bxsl}
\def\sfshape{ss}
\def\sfbshape{ss}
\def\scshape{csc}
\def\scbshape{csc}
\newcount\mainmagstep
\ifx\bigger\relax
\mainmagstep=\magstep1
\setfont\textrm\rmshape{12}{1000}
\setfont\texttt\ttshape{12}{1000}
\else
\mainmagstep=\magstephalf
\setfont\textrm\rmshape{10}{\mainmagstep}
\setfont\texttt\ttshape{10}{\mainmagstep}
\fi
\setfont\textbf\bfshape{10}{\mainmagstep}
\setfont\textit\itshape{10}{\mainmagstep}
\setfont\textsl\slshape{10}{\mainmagstep}
\setfont\textsf\sfshape{10}{\mainmagstep}
\setfont\textsc\scshape{10}{\mainmagstep}
\setfont\textttsl\ttslshape{10}{\mainmagstep}
\font\texti=cmmi10 scaled \mainmagstep
\font\textsy=cmsy10 scaled \mainmagstep
\setfont\defbf\bxshape{10}{\magstep1} \setfont\deftt\ttshape{10}{\magstep1}
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
\setfont\smallrm\rmshape{9}{1000}
\setfont\smalltt\ttshape{9}{1000}
\setfont\smallbf\bfshape{10}{900}
\setfont\smallit\itshape{9}{1000}
\setfont\smallsl\slshape{9}{1000}
\setfont\smallsf\sfshape{9}{1000}
\setfont\smallsc\scshape{10}{900}
\setfont\smallttsl\ttslshape{10}{900}
\font\smalli=cmmi9
\font\smallsy=cmsy9
\setfont\smallerrm\rmshape{8}{1000}
\setfont\smallertt\ttshape{8}{1000}
\setfont\smallerbf\bfshape{10}{800}
\setfont\smallerit\itshape{8}{1000}
\setfont\smallersl\slshape{8}{1000}
\setfont\smallersf\sfshape{8}{1000}
\setfont\smallersc\scshape{10}{800}
\setfont\smallerttsl\ttslshape{10}{800}
\font\smalleri=cmmi8
\font\smallersy=cmsy8
\setfont\titlerm\rmbshape{12}{\magstep3}
\setfont\titleit\itbshape{10}{\magstep4}
\setfont\titlesl\slbshape{10}{\magstep4}
\setfont\titlett\ttbshape{12}{\magstep3}
\setfont\titlettsl\ttslshape{10}{\magstep4}
\setfont\titlesf\sfbshape{17}{\magstep1}
\let\titlebf=\titlerm
\setfont\titlesc\scbshape{10}{\magstep4}
\font\titlei=cmmi12 scaled \magstep3
\font\titlesy=cmsy10 scaled \magstep4
\def\authorrm{\secrm}
\def\authortt{\sectt}
\setfont\chaprm\rmbshape{12}{\magstep2}
\setfont\chapit\itbshape{10}{\magstep3}
\setfont\chapsl\slbshape{10}{\magstep3}
\setfont\chaptt\ttbshape{12}{\magstep2}
\setfont\chapttsl\ttslshape{10}{\magstep3}
\setfont\chapsf\sfbshape{17}{1000}
\let\chapbf=\chaprm
\setfont\chapsc\scbshape{10}{\magstep3}
\font\chapi=cmmi12 scaled \magstep2
\font\chapsy=cmsy10 scaled \magstep3
\setfont\secrm\rmbshape{12}{\magstep1}
\setfont\secit\itbshape{10}{\magstep2}
\setfont\secsl\slbshape{10}{\magstep2}
\setfont\sectt\ttbshape{12}{\magstep1}
\setfont\secttsl\ttslshape{10}{\magstep2}
\setfont\secsf\sfbshape{12}{\magstep1}
\let\secbf\secrm
\setfont\secsc\scbshape{10}{\magstep2}
\font\seci=cmmi12 scaled \magstep1
\font\secsy=cmsy10 scaled \magstep2
\setfont\ssecrm\rmbshape{12}{\magstephalf}
\setfont\ssecit\itbshape{10}{1315}
\setfont\ssecsl\slbshape{10}{1315}
\setfont\ssectt\ttbshape{12}{\magstephalf}
\setfont\ssecttsl\ttslshape{10}{1315}
\setfont\ssecsf\sfbshape{12}{\magstephalf}
\let\ssecbf\ssecrm
\setfont\ssecsc\scbshape{10}{\magstep1}
\font\sseci=cmmi12 scaled \magstephalf
\font\ssecsy=cmsy10 scaled 1315
\def\resetmathfonts{ \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
\textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
\textfont\ttfam=\tentt \textfont\sffam=\tensf
}
\def\textfonts{ \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
\let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
\let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
\resetmathfonts \setleading{\textleading}}
\def\titlefonts{ \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
\let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
\let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
\let\tenttsl=\titlettsl
\resetmathfonts \setleading{25pt}}
\def\titlefont#1{{\titlefonts\rm #1}}
\def\chapfonts{ \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
\let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
\resetmathfonts \setleading{19pt}}
\def\secfonts{ \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
\let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
\let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
\resetmathfonts \setleading{16pt}}
\def\subsecfonts{ \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
\let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
\resetmathfonts \setleading{15pt}}
\let\subsubsecfonts = \subsecfonts \def\smallfonts{ \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
\let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
\let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
\let\tenttsl=\smallttsl
\resetmathfonts \setleading{10.5pt}}
\def\smallerfonts{ \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
\let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
\let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
\let\tenttsl=\smallerttsl
\resetmathfonts \setleading{9.5pt}}
\let\smallexamplefonts = \smallfonts
\textfonts
\def\angleleft{$\langle$}
\def\angleright{$\rangle$}
\newcount\fontdepth \fontdepth=0
\setfont\shortcontrm\rmshape{12}{1000}
\setfont\shortcontbf\bxshape{12}{1000}
\setfont\shortcontsl\slshape{12}{1000}
\setfont\shortconttt\ttshape{12}{1000}
\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
\let\i=\smartitalic
\let\var=\smartslanted
\let\dfn=\smartslanted
\let\emph=\smartitalic
\let\cite=\smartslanted
\def\b#1{{\bf #1}}
\let\strong=\b
\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
\def\restorehyphenation{\hyphenchar\font = `- }
\catcode`@=11
\def\frenchspacing{ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
\sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
}
\catcode`@=\other
\def\t#1{ {\tt \rawbackslash \frenchspacing #1} \null
}
\let\ttfont=\t
\def\samp#1{`\tclose{#1}'\null}
\setfont\keyrm\rmshape{8}{1000}
\font\keysy=cmsy9
\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{ \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{ \vbox{\hrule\kern-0.4pt
\hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}} \kern-0.4pt\hrule} \kern-.06em\raise0.4pt\hbox{\angleright}}}}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
\let\file=\samp
\let\option=\samp
\def\tclose#1{ { \spaceskip = \fontdimen2\font
\tt
\def\ {{\spaceskip = 0pt{} }} \nohyphenation
\rawbackslash
\frenchspacing
#1 } \null
}
{
\catcode`\-=\active
\catcode`\_=\active
\global\def\code{\begingroup
\catcode`\-=\active \let-\codedash
\catcode`\_=\active \let_\codeunder
\codex
}
\global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
}
\def\realdash{-}
\def\codedash{-\discretionary{}{}{}}
\def\codeunder{ \ifusingtt{\ifmmode
\mathchar"075F \else\normalunderscore \fi
\discretionary{}{}{}} {\_}}
\def\codex #1{\tclose{#1}\endgroup}
\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
\def\kbdinputstylexxx#1{ \def\arg{#1} \ifx\arg\worddistinct
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} \else\ifx\arg\wordexample
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt} \else\ifx\arg\wordcode
\gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt} \else
\errhelp = \EMsimple
\errmessage{Unknown @kbdinputstyle `\arg'} \fi\fi\fi
}
\def\worddistinct{distinct}
\def\wordexample{example}
\def\wordcode{code}
\kbdinputstyle distinct
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}\ifx\one\xkey\ifx\threex\three \key{#2}\else{\tclose{\kbdfont\look}}\fi
\else{\tclose{\kbdfont\look}}\fi}
\let\url=\code
\let\env=\code
\let\command=\code
\def\uref#1{\douref #1,,,\finish}
\def\douref#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1} \setbox0 = \hbox{\ignorespaces #3} \ifdim\wd0 > 0pt
\unhbox0 \else
\setbox0 = \hbox{\ignorespaces #2} \ifdim\wd0 > 0pt
\ifpdf
\unhbox0 \else
\unhbox0\ (\code{#1}) \fi
\else
\code{#1} \fi
\fi
\endlink
\endgroup}
\ifpdf
\def\email#1{\doemail#1,,\finish}
\def\doemail#1,#2,#3\finish{\begingroup
\unsepspaces
\pdfurl{mailto:#1} \setbox0 = \hbox{\ignorespaces #2} \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
\endlink
\endgroup}
\else
\let\email=\uref
\fi
\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
\def\dmn#1{\thinspace #1}
\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
\def\r#1{{\rm #1}} \def\sc#1{{\smallcaps#1}} \def\ii#1{{\it #1}}
\def\acronym#1{{\smallcaps \lowercase{#1}}}
\def\pounds{{\it\$}}
\message{page headings,}
\newskip\titlepagetopglue \titlepagetopglue = 1.5in
\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
\newif\ifseenauthor
\newif\iffinishedtitlepage
\newif\ifsetcontentsaftertitlepage
\let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
\newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
\def\shorttitlepage{\parsearg\shorttitlepagezzz}
\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1} \endgroup\page\hbox{}\page}
\def\titlepage{\begingroup \parindent=0pt \textfonts
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
\let\tt=\authortt} \vglue\titlepagetopglue
\def\title{\parsearg\titlezzz} \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
\finishedtitlepagefalse
\vskip4pt \hrule height 4pt width \hsize \vskip4pt} \finishedtitlepagetrue
\def\subtitle{\parsearg\subtitlezzz} \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}} \def\author{\parsearg\authorzzz} \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
{\authorfont \leftline{##1}}} \let\oldpage = \page
\def\page{ \iffinishedtitlepage\else
\finishtitlepage
\fi
\oldpage
\let\page = \oldpage
\hbox{}}}
\def\Etitlepage{ \iffinishedtitlepage\else
\finishtitlepage
\fi
\oldpage
\endgroup
\HEADINGSon
\ifsetshortcontentsaftertitlepage
\shortcontents
\contents
\global\let\shortcontents = \relax
\global\let\contents = \relax
\fi
\ifsetcontentsaftertitlepage
\contents
\global\let\contents = \relax
\global\let\shortcontents = \relax
\fi
}
\def\finishtitlepage{ \vskip4pt \hrule height 2pt width \hsize
\vskip\titlepagebottomglue
\finishedtitlepagetrue
}
\let\thispage=\folio
\newtoks\evenheadline \newtoks\oddheadline \newtoks\evenfootline \newtoks\oddfootline
\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
\else \the\evenheadline \fi}}
\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
\else \the\evenfootline \fi}\HEADINGShook}
\let\HEADINGShook=\relax
\def\evenheading{\parsearg\evenheadingxxx}
\def\oddheading{\parsearg\oddheadingxxx}
\def\everyheading{\parsearg\everyheadingxxx}
\def\evenfooting{\parsearg\evenfootingxxx}
\def\oddfooting{\parsearg\oddfootingxxx}
\def\everyfooting{\parsearg\everyfootingxxx}
{\catcode`\@=0
\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}
\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{ \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}} \global\advance\pageheight by -\baselineskip
\global\advance\vsize by -\baselineskip
}
\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
}
\def\headings #1 {\csname HEADINGS#1\endcsname}
\def\HEADINGSoff{
\global\evenheadline={\hfil} \global\evenfootline={\hfil}
\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
\HEADINGSoff
\def\HEADINGSdouble{
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
\global\let\contentsalignmacro = \chapoddpage
}
\let\contentsalignmacro = \chappager
\def\HEADINGSsingle{
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
\global\let\contentsalignmacro = \chappager
}
\def\HEADINGSon{\HEADINGSdouble}
\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
\let\HEADINGSdoubleafter=\HEADINGSafter
\def\HEADINGSdoublex{\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
\global\let\contentsalignmacro = \chapoddpage
}
\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
\def\HEADINGSsinglex{\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
\global\let\contentsalignmacro = \chappager
}
\ifx\today\undefined
\def\today{ \number\day\space
\ifcase\month
\or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
\or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
\or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
\fi
\space\number\year}
\fi
\def\thistitle{\putwordNoTitle}
\def\settitle{\parsearg\settitlezzz}
\def\settitlezzz #1{\gdef\thistitle{#1}}
\message{tables,}
\newdimen\tableindent \tableindent=.8in
\newdimen\itemindent \itemindent=.3in
\newdimen\itemmargin \itemmargin=.1in
\newdimen\itemmax
\newif\ifitemxneedsnegativevskip
\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
\def\internalBitem{\smallbreak \parsearg\itemzzz}
\def\internalBitemx{\itemxpar \parsearg\itemzzz}
\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}} \itemzzz {#1}}
\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}} \itemzzz {#1}}
\def\itemzzz #1{\begingroup \advance\hsize by -\rightskip
\advance\hsize by -\tableindent
\setbox0=\hbox{\itemfont{#1}} \itemindex{#1} \nobreak \ifdim \wd0>\itemmax
\begingroup
\advance\leftskip by-\tableindent
\advance\hsize by\tableindent
\advance\rightskip by0pt plus1fil
\leavevmode\unhbox0\par
\endgroup
\nobreak \vskip-\parskip
\penalty 10001
\endgroup
\itemxneedsnegativevskipfalse
\else
\noindent
\nobreak\kern-\tableindent
\dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
\unhbox0
\nobreak\kern\dimen0
\endgroup
\itemxneedsnegativevskiptrue
\fi
}
\def\item{\errmessage{@item while not in a table}}
\def\itemx{\errmessage{@itemx while not in a table}}
\def\kitem{\errmessage{@kitem while not in a table}}
\def\kitemx{\errmessage{@kitemx while not in a table}}
\def\xitem{\errmessage{@xitem while not in a table}}
\def\xitemx{\errmessage{@xitemx while not in a table}}
\def\description{\tablez{\dontindex}{1}{}{}{}{}}
\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
{\obeylines\obeyspaces\gdef\tablex #1^^M{\tabley\dontindex#1 \endtabley}}
\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
{\obeylines\obeyspaces\gdef\ftablex #1^^M{\tabley\fnitemindex#1 \endtabley
\def\Eftable{\endgraf\afterenvbreak\endgroup}\let\Etable=\relax}}
\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
{\obeylines\obeyspaces\gdef\vtablex #1^^M{\tabley\vritemindex#1 \endtabley
\def\Evtable{\endgraf\afterenvbreak\endgroup}\let\Etable=\relax}}
\def\dontindex #1{}
\def\fnitemindex #1{\doind {fn}{\code{#1}}}\def\vritemindex #1{\doind {vr}{\code{#1}}}
{\obeyspaces \gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
\def\tablez #1#2#3#4#5#6{\aboveenvbreak \begingroup \def\Edescription{\Etable}\let\itemindex=#1\ifnum 0#3>0 \advance \leftskip by #3\mil \fi \ifnum 0#4>0 \tableindent=#4\mil \fi \ifnum 0#5>0 \advance \rightskip by #5\mil \fi \def\itemfont{#2}\itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent
\parindent = 0pt
\parskip = \smallskipamount
\ifdim \parskip=0pt \parskip=2pt \fi\def\Etable{\endgraf\afterenvbreak\endgroup}\let\item = \internalBitem \let\itemx = \internalBitemx \let\kitem = \internalBkitem \let\kitemx = \internalBkitemx \let\xitem = \internalBxitem \let\xitemx = \internalBxitemx }
\newcount \itemno
\def\itemize{\parsearg\itemizezzz}
\def\itemizezzz #1{ \begingroup \itemizey {#1}{\Eitemize}
}
\def\itemizey #1#2{\aboveenvbreak \itemmax=\itemindent \advance \itemmax by -\itemmargin \advance \leftskip by \itemindent \exdentamount=\itemindent
\parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi\def#2{\endgraf\afterenvbreak\endgroup}\def\itemcontents{#1}\let\item=\itemizeitem}
\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}
\def\enumerate{\parsearg\enumeratezzz}
\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
\def\enumeratey #1 #2\endenumeratey{ \begingroup \def\thearg{#1} \ifx\thearg\empty \def\thearg{1}\fi
\expandafter\splitoff\thearg\endmark
\ifx\rest\empty
\ifnum\lccode\expandafter`\thearg=0\relax
\numericenumerate \else
\ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
\lowercaseenumerate \else
\uppercaseenumerate \fi
\fi
\else
\numericenumerate
\fi
}
\def\numericenumerate{ \itemno = \thearg
\startenumeration{\the\itemno}}
\def\lowercaseenumerate{ \itemno = \expandafter`\thearg
\startenumeration{ \ifnum\itemno=0
\errmessage{No more lowercase letters in @enumerate; get a bigger
alphabet} \fi
\char\lccode\itemno
}}
\def\uppercaseenumerate{ \itemno = \expandafter`\thearg
\startenumeration{ \ifnum\itemno=0
\errmessage{No more uppercase letters in @enumerate; get a bigger
alphabet}
\fi
\char\uccode\itemno
}}
\def\startenumeration#1{ \advance\itemno by -1
\itemizey{#1.}\Eenumerate\flushcr
}
\def\alphaenumerate{\enumerate{a}}
\def\capsenumerate{\enumerate{A}}
\def\Ealphaenumerate{\Eenumerate}
\def\Ecapsenumerate{\Eenumerate}
\def\itemizeitem{\advance\itemno by 1
{\let\par=\endgraf \smallbreak}\ifhmode \errmessage{In hmode at itemizeitem}\fi
{\parskip=0in \hskip 0pt
\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}\vadjust{\penalty 1200}}\flushcr}
\newskip\multitableparskip
\newskip\multitableparindent
\newdimen\multitablecolspace
\newskip\multitablelinespace
\multitableparskip=0pt
\multitableparindent=6pt
\multitablecolspace=12pt
\multitablelinespace=0pt
\let\endsetuptable\relax
\def\xendsetuptable{\endsetuptable}
\let\columnfractions\relax
\def\xcolumnfractions{\columnfractions}
\newif\ifsetpercent
\def\pickupwholefraction#1.#2 { \global\advance\colcount by 1
\expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize} \setuptable
}
\newcount\colcount
\def\setuptable#1{ \def\firstarg{#1} \ifx\firstarg\xendsetuptable
\let\go = \relax
\else
\ifx\firstarg\xcolumnfractions
\global\setpercenttrue
\else
\ifsetpercent
\let\go\pickupwholefraction
\else
\global\advance\colcount by 1
\setbox0=\hbox{#1\unskip\space} \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0} \fi
\fi
\ifx\go\pickupwholefraction
\def\go{\pickupwholefraction#1} \else
\let\go = \setuptable
\fi \fi
\go
}
\def\multitable{\parsearg\dotable}
\def\dotable#1{\bgroup
\vskip\parskip
\let\item=\crcrwithfootnotes
\let\tab=& \let\startfootins=\startsavedfootnote
\tolerance=9500
\hbadness=9500
\setmultitablespacing
\parskip=\multitableparskip
\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0
\def\Emultitable{ \global\setpercentfalse
\crcrwithfootnotes\crcr
\egroup\egroup
} \setuptable#1 \endsetuptable
\everycr{\noalign{ \global\colcount=0\relax}} \halign\bgroup&\global\advance\colcount by 1\relax
\multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
\rightskip=0pt
\ifnum\colcount=1
\advance\hsize by\leftskip
\else
\ifsetpercent \else
\advance\hsize by \multitablecolspace
\fi
\leftskip=\multitablecolspace
\fi
\noindent\ignorespaces##\unskip\multistrut}\cr
}
\def\setmultitablespacing{\ifdim\multitablelinespace=0pt
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
\let\multistrut = \strut
\else
\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
width0pt\relax} \fi
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
\global\advance\multitableparskip-7pt \fi\ifdim\multitableparskip=0pt
\global\multitableparskip=\multitablelinespace
\global\advance\multitableparskip-7pt \fi}
\newbox\savedfootnotes
\def\startsavedfootnote{ \global\setbox\savedfootnotes = \vbox\bgroup
\unvbox\savedfootnotes
}
\def\crcrwithfootnotes{ \crcr
\ifvoid\savedfootnotes \else
\noalign{\insert\footins{\box\savedfootnotes}} \fi
}
\message{conditionals,}
\def\ignoresections{ \let\chapter=\relax
\let\unnumbered=\relax
\let\top=\relax
\let\unnumberedsec=\relax
\let\unnumberedsection=\relax
\let\unnumberedsubsec=\relax
\let\unnumberedsubsection=\relax
\let\unnumberedsubsubsec=\relax
\let\unnumberedsubsubsection=\relax
\let\section=\relax
\let\subsec=\relax
\let\subsubsec=\relax
\let\subsection=\relax
\let\subsubsection=\relax
\let\appendix=\relax
\let\appendixsec=\relax
\let\appendixsection=\relax
\let\appendixsubsec=\relax
\let\appendixsubsection=\relax
\let\appendixsubsubsec=\relax
\let\appendixsubsubsection=\relax
\let\contents=\relax
\let\smallbook=\relax
\let\titlepage=\relax
}
\def\ignoremorecommands{ \let\defcodeindex = \relax
\let\defcv = \empty
\let\defcvx = \empty
\let\Edefcv = \empty
\let\deffn = \empty
\let\deffnx = \empty
\let\Edeffn = \empty
\let\defindex = \relax
\let\defivar = \empty
\let\defivarx = \empty
\let\Edefivar = \empty
\let\defmac = \empty
\let\defmacx = \empty
\let\Edefmac = \empty
\let\defmethod = \empty
\let\defmethodx = \empty
\let\Edefmethod = \empty
\let\defop = \empty
\let\defopx = \empty
\let\Edefop = \empty
\let\defopt = \empty
\let\defoptx = \empty
\let\Edefopt = \empty
\let\defspec = \empty
\let\defspecx = \empty
\let\Edefspec = \empty
\let\deftp = \empty
\let\deftpx = \empty
\let\Edeftp = \empty
\let\deftypefn = \empty
\let\deftypefnx = \empty
\let\Edeftypefn = \empty
\let\deftypefun = \empty
\let\deftypefunx = \empty
\let\Edeftypefun = \empty
\let\deftypeivar = \empty
\let\deftypeivarx = \empty
\let\Edeftypeivar = \empty
\let\deftypemethod = \empty
\let\deftypemethodx = \empty
\let\Edeftypemethod = \empty
\let\deftypeop = \empty
\let\deftypeopx = \empty
\let\Edeftypeop = \empty
\let\deftypevar = \empty
\let\deftypevarx = \empty
\let\Edeftypevar = \empty
\let\deftypevr = \empty
\let\deftypevrx = \empty
\let\Edeftypevr = \empty
\let\defun = \empty
\let\defunx = \empty
\let\Edefun = \empty
\let\defvar = \empty
\let\defvarx = \empty
\let\Edefvar = \empty
\let\defvr = \empty
\let\defvrx = \empty
\let\Edefvr = \empty
\let\clear = \relax
\let\down = \relax
\let\evenfooting = \relax
\let\evenheading = \relax
\let\everyfooting = \relax
\let\everyheading = \relax
\let\headings = \relax
\let\include = \relax
\let\item = \relax
\let\lowersections = \relax
\let\oddfooting = \relax
\let\oddheading = \relax
\let\printindex = \relax
\let\pxref = \relax
\let\raisesections = \relax
\let\ref = \relax
\let\set = \relax
\let\setchapternewpage = \relax
\let\setchapterstyle = \relax
\let\settitle = \relax
\let\up = \relax
\let\verbatiminclude = \relax
\let\xref = \relax
}
\def\direntry{\doignore{direntry}}
\def\documentdescriptionword{documentdescription}
\def\documentdescription{\doignore{documentdescription}}
\def\html{\doignore{html}}
\def\ifhtml{\doignore{ifhtml}}
\def\ifinfo{\doignore{ifinfo}}
\def\ifnottex{\doignore{ifnottex}}
\def\ifplaintext{\doignore{ifplaintext}}
\def\ifxml{\doignore{ifxml}}
\def\ignore{\doignore{ignore}}
\def\menu{\doignore{menu}}
\def\xml{\doignore{xml}}
\let\dircategory = \comment
\def\doignore#1{\begingroup
\ignoresections
\long\def\doignoretext##1@end #1{\enddoignore} \catcode\spaceChar = 10
\catcode`\{ = 9
\catcode`\} = 9
\catcode`\@ = 12
\def\ignoreword{#1} \ifx\ignoreword\documentdescriptionword
\else
\catcode`\c = 14
\fi
\doignoretext
}
\def\enddoignore{\endgroup\ignorespaces}
\newif\ifwarnedobs\warnedobsfalse
\def\obstexwarn{ \ifwarnedobs\relax\else
\immediate\write16{}
\immediate\write16{WARNING: for users of Unix TeX 3.0!}
\immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
\immediate\write16{If you are running another version of TeX, relax.}
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
\immediate\write16{ Then upgrade your TeX installation if you can.}
\immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)}
\immediate\write16{If you are stuck with version 3.0, run the}
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
\immediate\write16{ to use a workaround.}
\immediate\write16{}
\global\warnedobstrue
\fi
}
\def\nestedignore#1{ \obstexwarn
\setbox0 = \vbox\bgroup
\ignoresections
\expandafter\def\csname E#1\endcsname{\egroup\ignorespaces} \ignoremorecommands
\nullfont
\let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
\let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
\let\tensf=\nullfont
\let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
\let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
\let\smallsf=\nullfont
\let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont
\let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont
\let\smallersf=\nullfont
\tracinglostchars = 0
\frenchspacing
\hbadness = 10000
\pretolerance = 10000
\def\tex{\doignore{tex}} \def\macro{\doignore{ma}}}
\def\set{\begingroup\catcode` =10
\catcode`\-=12 \catcode`\_=12 \parsearg\setxxx}
\def\setxxx#1{\setyyy#1 \endsetyyy}
\def\setyyy#1 #2\endsetyyy{ \def\temp{#2} \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
\else \setzzz{#1}#2\endsetzzz \fi
\endgroup
}
\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
\def\clear{\parsearg\clearxxx}
\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
{
\catcode`\_ = \active
\gdef\value{\begingroup
\catcode`\-=\other \catcode`\_=\other
\indexbreaks \let_\normalunderscore
\valuexxx}
}
\def\valuexxx#1{\expandablevalue{#1}\endgroup}
\def\expandablevalue#1{ \expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']} \message{Variable `#1', used in @value, is not set.} \else
\csname SET#1\endcsname
\fi
}
\def\ifset{\parsearg\doifset}
\def\doifset#1{ \expandafter\ifx\csname SET#1\endcsname\relax
\let\next=\ifsetfail
\else
\let\next=\ifsetsucceed
\fi
\next
}
\def\ifsetsucceed{\conditionalsucceed{ifset}}
\def\ifsetfail{\nestedignore{ifset}}
\defineunmatchedend{ifset}
\def\ifclear{\parsearg\doifclear}
\def\doifclear#1{ \expandafter\ifx\csname SET#1\endcsname\relax
\let\next=\ifclearsucceed
\else
\let\next=\ifclearfail
\fi
\next
}
\def\ifclearsucceed{\conditionalsucceed{ifclear}}
\def\ifclearfail{\nestedignore{ifclear}}
\defineunmatchedend{ifclear}
\def\iftex{\conditionalsucceed{iftex}}
\def\ifnothtml{\conditionalsucceed{ifnothtml}}
\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}}
\defineunmatchedend{iftex}
\defineunmatchedend{ifnothtml}
\defineunmatchedend{ifnotinfo}
\defineunmatchedend{ifnotplaintext}
\def\conditionalsucceed#1{\begingroup
\expandafter\def\csname E#1\endcsname{\endgroup}}
\let\definfoenclose=\comment
\message{indexing,}
{\catcode`\@=11
\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
\def\newindex#1{ \iflinks
\expandafter\newwrite \csname#1indfile\endcsname
\openout \csname#1indfile\endcsname \jobname.#1 \fi
\expandafter\xdef\csname#1index\endcsname{ \noexpand\doindex{#1}}
}
\def\defindex{\parsearg\newindex}
\def\defcodeindex{\parsearg\newcodeindex}
\def\newcodeindex#1{ \iflinks
\expandafter\newwrite \csname#1indfile\endcsname
\openout \csname#1indfile\endcsname \jobname.#1
\fi
\expandafter\xdef\csname#1index\endcsname{ \noexpand\docodeindex{#1}}}
\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
\def\dosynindex#1#2#3{ \expandafter \ifx\csname donesynindex#2\endcsname \undefined
\expandafter\closeout\csname#2indfile\endcsname
\expandafter\let\csname\donesynindex#2\endcsname = 1
\fi
\expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
\expandafter\let\csname#2indfile\endcsname=\temp
\expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}}
\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
\def\singleindexer #1{\doind{\indexname}{#1}}
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
\def\indexdummies{ \def\@{@} \def\ {\realbackslash\space } \let\{ = \mylbrace
\let\} = \myrbrace
\def\definedummyword##1{ \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space} } \def\definedummyletter##1{ \expandafter\def\csname ##1\endcsname{\realbackslash ##1} } \commondummies
}
\def\atdummies{ \def\@{@@} \def\ {@ } \let\{ = \lbraceatcmd
\let\} = \rbraceatcmd
\def\definedummyword##1{ \expandafter\def\csname ##1\endcsname{@##1\space} } \def\definedummyletter##1{ \expandafter\def\csname ##1\endcsname{@##1} } \commondummies
}
\def\commondummies{ \normalturnoffactive
\definedummyletter{_} \definedummyletter{,} \definedummyletter{"} \definedummyletter{`} \definedummyletter{'} \definedummyletter{^} \definedummyletter{~} \definedummyletter{=} \definedummyword{u} \definedummyword{v} \definedummyword{H} \definedummyword{dotaccent} \definedummyword{ringaccent} \definedummyword{tieaccent} \definedummyword{ubaraccent} \definedummyword{udotaccent} \definedummyword{dotless} \definedummyword{AA} \definedummyword{AE} \definedummyword{L} \definedummyword{OE} \definedummyword{O} \definedummyword{aa} \definedummyword{ae} \definedummyword{l} \definedummyword{oe} \definedummyword{o} \definedummyword{ss} \definedummyword{bf} \definedummyword{gtr} \definedummyword{hat} \definedummyword{less} \definedummyword{sf} \definedummyword{sl} \definedummyword{tclose} \definedummyword{tt} \definedummyword{b} \definedummyword{i} \definedummyword{r} \definedummyword{sc} \definedummyword{t} \definedummyword{TeX} \definedummyword{acronym} \definedummyword{cite} \definedummyword{code} \definedummyword{command} \definedummyword{dfn} \definedummyword{dots} \definedummyword{emph} \definedummyword{env} \definedummyword{file} \definedummyword{kbd} \definedummyword{key} \definedummyword{math} \definedummyword{option} \definedummyword{samp} \definedummyword{strong} \definedummyword{uref} \definedummyword{url} \definedummyword{var} \definedummyword{w} \definedummyword{bullet} \definedummyword{copyright} \definedummyword{dots} \definedummyword{enddots} \definedummyword{equiv} \definedummyword{error} \definedummyword{expansion} \definedummyword{minus} \definedummyword{pounds} \definedummyword{point} \definedummyword{print} \definedummyword{result} \let\value = \expandablevalue
\unsepspaces
\turnoffmacros
}
{\obeyspaces
\gdef\unsepspaces{\obeyspaces\let =\space}}
\def\indexdummytex{TeX}
\def\indexdummydots{...}
\def\indexnofonts{ \def\ { } \def\@{@} \def\_{\normalunderscore} \let\,=\asis
\let\"=\asis
\let\`=\asis
\let\'=\asis
\let\^=\asis
\let\~=\asis
\let\==\asis
\let\u=\asis
\let\v=\asis
\let\H=\asis
\let\dotaccent=\asis
\let\ringaccent=\asis
\let\tieaccent=\asis
\let\ubaraccent=\asis
\let\udotaccent=\asis
\let\dotless=\asis
\def\AA{AA} \def\AE{AE} \def\L{L} \def\OE{OE} \def\O{O} \def\aa{aa} \def\ae{ae} \def\l{l} \def\oe{oe} \def\o{o} \def\ss{ss} \def\exclamdown{!} \def\questiondown{?} \let\b=\asis
\let\i=\asis
\let\r=\asis
\let\sc=\asis
\let\t=\asis
\let\TeX=\indexdummytex
\let\acronym=\asis
\let\cite=\asis
\let\code=\asis
\let\command=\asis
\let\dfn=\asis
\let\dots=\indexdummydots
\let\emph=\asis
\let\env=\asis
\let\file=\asis
\let\kbd=\asis
\let\key=\asis
\let\math=\asis
\let\option=\asis
\let\samp=\asis
\let\strong=\asis
\let\uref=\asis
\let\url=\asis
\let\var=\asis
\let\w=\asis
}
\let\indexbackslash=0 \let\SETmarginindex=\relax
\def\emptymacro{\empty}
\def\doind#1#2{\dosubind{#1}{#2}\empty}
\def\dosubind#1#2#3{ \ifx\SETmarginindex\relax\else
\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}} \fi
{ \count255=\lastpenalty
{ \indexdummies \escapechar=`\\
{ \let\folio = 0 \def\rawbackslashxx{\indexbackslash} \toks0 = {#2} \def\thirdarg{#3} \ifx\thirdarg\emptymacro \else
\toks0 = \expandafter{\the\toks0 \space #3} \fi
{\indexnofonts
\edef\temp{\the\toks0} \xdef\indexsorttmp{\temp} } \edef\temp{ \write\csname#1indfile\endcsname{ \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}} } \iflinks
\ifvmode
\skip0 = \lastskip
\ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi
\fi
\temp \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
\fi
} } \penalty\count255
}}
\def\findex {\fnindex}
\def\kindex {\kyindex}
\def\cindex {\cpindex}
\def\vindex {\vrindex}
\def\tindex {\tpindex}
\def\pindex {\pgindex}
\def\cindexsub {\begingroup\obeylines\cindexsub}
{\obeylines \gdef\cindexsub "#1" #2^^M{\endgroup \dosubind{cp}{#2}{#1}}}
\def\printindex{\parsearg\doprintindex}
\def\doprintindex#1{\begingroup
\dobreak \chapheadingskip{10000} \smallfonts \rm
\tolerance = 9500
\indexbreaks
\catcode`\@ = 11
\openin 1 \jobname.#1s
\ifeof 1
\putwordIndexNonexistent
\else
\read 1 to \temp
\ifeof 1
\putwordIndexIsEmpty
\else
\def\indexbackslash{\rawbackslashxx} \catcode`\\ = 0
\escapechar = `\\
\begindoublecolumns
\input \jobname.#1s
\enddoublecolumns
\fi
\fi
\closein 1
\endgroup}
\def\initial#1{{ \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
\removelastskip
\penalty -300
\vskip 1.67\baselineskip plus .5\baselineskip
\leftline{\secbf #1} \vskip .33\baselineskip plus .1\baselineskip
\nobreak
}}
\def\entry#1#2{\begingroup
\par
\parfillskip = 0in
\parskip = 0in
\finalhyphendemerits = 0
\hangindent = 2em
\rightskip = 0pt plus1fil
\vskip 0pt plus1pt
\noindent
#1 \def\tempa{{\rm }} \def\tempb{#2} \edef\tempc{\tempa} \edef\tempd{\tempb} \ifx\tempc\tempd\ \else \hfil\penalty50
\null\nobreak\indexdotfill \ifpdf
\pdfgettoks#2.\ \the\toksA \else
\ #2 \fi
\fi \par
\endgroup}
\def\indexdotfill{\cleaders
\hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
\def\primary #1{\line{#1\hfil}}
\newskip\secondaryindent \secondaryindent=0.5cm
\def\secondary#1#2{{ \parfillskip=0in
\parskip=0in
\hangindent=1in
\hangafter=1
\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
\ifpdf
\pdfgettoks#2.\ \the\toksA \else
#2
\fi
\par
}}
\catcode`\@=11
\newbox\partialpage
\newdimen\doublecolumnhsize
\def\begindoublecolumns{\begingroup \output = { \ifvoid\partialpage \else
\onepageout{\pagecontents\partialpage} \fi
\global\setbox\partialpage = \vbox{ \unvbox\PAGE
\kern-\topskip \kern\baselineskip
} } \eject \output = {\doublecolumnout} \doublecolumnhsize = \hsize
\advance\doublecolumnhsize by -.04154\hsize
\divide\doublecolumnhsize by 2
\hsize = \doublecolumnhsize
\vsize = 2\vsize
}
\def\doublecolumnout{ \splittopskip=\topskip \splitmaxdepth=\maxdepth
\dimen@ = \vsize
\divide\dimen@ by 2
\advance\dimen@ by -\ht\partialpage
\setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
\onepageout\pagesofar
\unvbox255
\penalty\outputpenalty
}
\def\pagesofar{ \unvbox\partialpage
\hsize = \doublecolumnhsize
\wd0=\hsize \wd2=\hsize
\hbox to\pagewidth{\box0\hfil\box2}}
\def\enddoublecolumns{ \output = { \balancecolumns
\global\output = {\onepageout{\pagecontents\PAGE}} } \eject
\endgroup \pagegoal = \vsize
}
\def\balancecolumns{ \setbox0 = \vbox{\unvbox255} \dimen@ = \ht0
\advance\dimen@ by \topskip
\advance\dimen@ by-\baselineskip
\divide\dimen@ by 2 \splittopskip = \topskip
{ \vbadness = 10000
\loop
\global\setbox3 = \copy0
\global\setbox1 = \vsplit3 to \dimen@
\ifdim\ht3>\dimen@
\global\advance\dimen@ by 1pt
\repeat
} \setbox0=\vbox to\dimen@{\unvbox1} \setbox2=\vbox to\dimen@{\unvbox3} \pagesofar
}
\catcode`\@ = \other
\message{sectioning,}
\newcount\chapno
\newcount\secno \secno=0
\newcount\subsecno \subsecno=0
\newcount\subsubsecno \subsubsecno=0
\newcount\appendixno \appendixno = `\@
\def\appendixletter{ \ifnum\appendixno=`A A \else\ifnum\appendixno=`B B \else\ifnum\appendixno=`C C \else\ifnum\appendixno=`D D \else\ifnum\appendixno=`E E \else\ifnum\appendixno=`F F \else\ifnum\appendixno=`G G \else\ifnum\appendixno=`H H \else\ifnum\appendixno=`I I \else\ifnum\appendixno=`J J \else\ifnum\appendixno=`K K \else\ifnum\appendixno=`L L \else\ifnum\appendixno=`M M \else\ifnum\appendixno=`N N \else\ifnum\appendixno=`O O \else\ifnum\appendixno=`P P \else\ifnum\appendixno=`Q Q \else\ifnum\appendixno=`R R \else\ifnum\appendixno=`S S \else\ifnum\appendixno=`T T \else\ifnum\appendixno=`U U \else\ifnum\appendixno=`V V \else\ifnum\appendixno=`W W \else\ifnum\appendixno=`X X \else\ifnum\appendixno=`Y Y \else\ifnum\appendixno=`Z Z \else\char\the\appendixno
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\thischapter{}
\def\thissection{}
\newcount\absseclevel \newcount\secbase\secbase=0
\def\raisesections{\global\advance\secbase by -1}
\let\up=\raisesections
\def\lowersections{\global\advance\secbase by 1}
\let\down=\lowersections
\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
\ifcase\absseclevel
\chapterzzz{#2}
\or
\seczzz{#2}
\or
\numberedsubseczzz{#2}
\or
\numberedsubsubseczzz{#2}
\else
\ifnum \absseclevel<0
\chapterzzz{#2}
\else
\numberedsubsubseczzz{#2}
\fi
\fi
}
\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
\ifcase\absseclevel
\appendixzzz{#2}
\or
\appendixsectionzzz{#2}
\or
\appendixsubseczzz{#2}
\or
\appendixsubsubseczzz{#2}
\else
\ifnum \absseclevel<0
\appendixzzz{#2}
\else
\appendixsubsubseczzz{#2}
\fi
\fi
}
\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
\ifcase\absseclevel
\unnumberedzzz{#2}
\or
\unnumberedseczzz{#2}
\or
\unnumberedsubseczzz{#2}
\or
\unnumberedsubsubseczzz{#2}
\else
\ifnum \absseclevel<0
\unnumberedzzz{#2}
\else
\unnumberedsubsubseczzz{#2}
\fi
\fi
}
\def\thischaptername{No Chapter Title}
\outer\def\chapter{\parsearg\chapteryyy}
\def\chapteryyy #1{\numhead0{#1}} \def\chapterzzz #1{ \secno=0 \subsecno=0 \subsubsecno=0
\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno} \chapmacro {#1}{\the\chapno} \gdef\thissection{#1} \gdef\thischaptername{#1} \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername} \writetocentry{chap}{#1}{{\the\chapno}}
\donoderef
\global\let\section = \numberedsec
\global\let\subsection = \numberedsubsec
\global\let\subsubsection = \numberedsubsubsec
}
\def\appendixbox#1{ \setbox0 = \hbox{\putwordAppendix{} \the\chapno} \hbox to \wd0{#1\hss}}
\outer\def\appendix{\parsearg\appendixyyy}
\def\appendixyyy #1{\apphead0{#1}} \def\appendixzzz #1{ \secno=0 \subsecno=0 \subsubsecno=0
\global\advance \appendixno by 1
\message{\putwordAppendix\space \appendixletter} \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}} \gdef\thissection{#1} \gdef\thischaptername{#1} \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername} \writetocentry{appendix}{#1}{{\appendixletter}}
\appendixnoderef
\global\let\section = \appendixsec
\global\let\subsection = \appendixsubsec
\global\let\subsubsection = \appendixsubsubsec
}
\outer\def\centerchap{\parsearg\centerchapyyy}
\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
\outer\def\top{\parsearg\unnumberedyyy}
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} \def\unnumberedzzz #1{ \secno=0 \subsecno=0 \subsubsecno=0
\toks0 = {#1}\message{(\the\toks0)} \unnumbchapmacro {#1} \gdef\thischapter{#1}\gdef\thissection{#1} \writetocentry{unnumbchap}{#1}{{\the\chapno}}
\unnumbnoderef
\global\let\section = \unnumberedsec
\global\let\subsection = \unnumberedsubsec
\global\let\subsubsection = \unnumberedsubsubsec
}
\outer\def\numberedsec{\parsearg\secyyy}
\def\secyyy #1{\numhead1{#1}} \def\seczzz #1{ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno} \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}}
\donoderef
\nobreak
}
\outer\def\appendixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} \def\appendixsectionzzz #1{ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno} \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}}
\appendixnoderef
\nobreak
}
\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
\def\unnumberedsecyyy #1{\unnmhead1{#1}} \def\unnumberedseczzz #1{ \plainsecheading {#1}\gdef\thissection{#1} \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}}
\unnumbnoderef
\nobreak
}
\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
\def\numberedsubsecyyy #1{\numhead2{#1}} \def\numberedsubseczzz #1{ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno} \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
\donoderef
\nobreak
}
\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
\def\appendixsubsecyyy #1{\apphead2{#1}} \def\appendixsubseczzz #1{ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno} \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}}
\appendixnoderef
\nobreak
}
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} \def\unnumberedsubseczzz #1{ \plainsubsecheading {#1}\gdef\thissection{#1} \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
\unnumbnoderef
\nobreak
}
\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
\def\numberedsubsubsecyyy #1{\numhead3{#1}} \def\numberedsubsubseczzz #1{ \gdef\thissection{#1}\global\advance \subsubsecno by 1 \subsubsecheading {#1}
{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
\donoderef
\nobreak
}
\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
\def\appendixsubsubsecyyy #1{\apphead3{#1}} \def\appendixsubsubseczzz #1{ \gdef\thissection{#1}\global\advance \subsubsecno by 1 \subsubsecheading {#1}
{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno} \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
\appendixnoderef
\nobreak
}
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} \def\unnumberedsubsubseczzz #1{ \plainsubsubsecheading {#1}\gdef\thissection{#1} \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
\unnumbnoderef
\nobreak
}
\def\infotop{\parsearg\unnumberedzzz}
\def\infounnumbered{\parsearg\unnumberedzzz}
\def\infounnumberedsec{\parsearg\unnumberedseczzz}
\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
\def\infoappendix{\parsearg\appendixzzz}
\def\infoappendixsec{\parsearg\appendixseczzz}
\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
\def\infochapter{\parsearg\chapterzzz}
\def\infosection{\parsearg\sectionzzz}
\def\infosubsection{\parsearg\subsectionzzz}
\def\infosubsubsection{\parsearg\subsubsectionzzz}
\global\let\section = \numberedsec
\global\let\subsection = \numberedsubsec
\global\let\subsubsection = \numberedsubsubsec
\def\majorheading{\parsearg\majorheadingzzz}
\def\majorheadingzzz #1{ {\advance\chapheadingskip by 10pt \chapbreak } {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 200}
\def\chapheading{\parsearg\chapheadingzzz}
\def\chapheadingzzz #1{\chapbreak {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 200}
\def\heading{\parsearg\plainsecheading}
\def\subheading{\parsearg\plainsubsecheading}
\def\subsubheading{\parsearg\plainsubsubsecheading}
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
\newskip\chapheadingskip
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
\def\CHAPPAGoff{\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
\def\CHAPPAGon{\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
\def\CHAPPAGodd{
\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
\global\let\pagealignmacro=\chapoddpage
\global\def\HEADINGSon{\HEADINGSdouble}}
\CHAPPAGon
\def\CHAPFplain{
\global\let\chapmacro=\chfplain
\global\let\unnumbchapmacro=\unnchfplain
\global\let\centerchapmacro=\centerchfplain}
\def\chfplain#1#2{ \pchapsepmacro
{ \chapfonts \rm
\def\chapnum{#2} \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi} \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
\hangindent = \wd0 \centerparametersmaybe
\unhbox0 #1\par} } \nobreak\bigskip \nobreak
}
\def\unnchfplain#1{\chfplain{#1}{}}
\let\centerparametersmaybe = \relax
\def\centerchfplain#1{{ \def\centerparametersmaybe{ \advance\rightskip by 3\rightskip
\leftskip = \rightskip
\parfillskip = 0pt
} \chfplain{#1}{}}}
\CHAPFplain
\def\unnchfopen #1{\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\nobreak
}
\def\chfopen #1#2{\chapoddpage {\chapfonts
\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}\par\penalty 5000 }
\def\centerchfopen #1{\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt
\hfill {\rm #1}\hfill}}\bigskip \par\nobreak
}
\def\CHAPFopen{
\global\let\chapmacro=\chfopen
\global\let\unnumbchapmacro=\unnchfopen
\global\let\centerchapmacro=\centerchfopen}
\newskip\secheadingskip
\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
\newskip \subsecheadingskip
\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
\let\subsubsecheadingskip = \subsecheadingskip
\let\subsubsecheadingbreak = \subsecheadingbreak
\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
\def\sectionheading#1#2#3{ { \expandafter\advance\csname #1headingskip\endcsname by \parskip
\csname #1headingbreak\endcsname
} { \csname #1fonts\endcsname \rm
\def\secnum{#2} \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi} \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
\hangindent = \wd0 \unhbox0 #3} } \nobreak
\ifdim\parskip>\normalbaselineskip
\kern\parskip
\else
\kern\normalbaselineskip
\fi
\nobreak
}
\message{toc,}
\newwrite\tocfile
\newif\iftocfileopened
\def\writetocentry#1#2#3{ \iftocfileopened\else
\immediate\openout\tocfile = \jobname.toc
\global\tocfileopenedtrue
\fi
\iflinks
\toks0 = {#2} \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}} \temp
\fi
\ifpdf \pdfmakepagedesttrue \fi
}
\newskip\contentsrightmargin \contentsrightmargin=1in
\newcount\savepageno
\newcount\lastnegativepageno \lastnegativepageno = -1
\def\startcontents#1{ \contentsalignmacro
\immediate\closeout\tocfile
\unnumbchapmacro{#1}\def\thischapter{} \savepageno = \pageno
\begingroup \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
\raggedbottom \advance\hsize by -\contentsrightmargin \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
}
\def\contents{ \startcontents{\putwordTOC} \openin 1 \jobname.toc
\ifeof 1 \else
\closein 1
\input \jobname.toc
\fi
\vfill \eject
\contentsalignmacro \pdfmakeoutlines
\endgroup
\lastnegativepageno = \pageno
\global\pageno = \savepageno
}
\def\summarycontents{ \startcontents{\putwordShortTOC} \let\chapentry = \shortchapentry
\let\appendixentry = \shortappendixentry
\let\unnumbchapentry = \shortunnumberedentry
\secfonts
\let\rm=\shortcontrm \let\bf=\shortcontbf
\let\sl=\shortcontsl \let\tt=\shortconttt
\rm
\hyphenpenalty = 10000
\advance\baselineskip by 1pt \def\secentry ##1##2##3##4{}
\def\subsecentry ##1##2##3##4##5{}
\def\subsubsecentry ##1##2##3##4##5##6{}
\let\unnumbsecentry = \secentry
\let\unnumbsubsecentry = \subsecentry
\let\unnumbsubsubsecentry = \subsubsecentry
\openin 1 \jobname.toc
\ifeof 1 \else
\closein 1
\input \jobname.toc
\fi
\vfill \eject
\contentsalignmacro \endgroup
\lastnegativepageno = \pageno
\global\pageno = \savepageno
}
\let\shortcontents = \summarycontents
\ifpdf
\pdfcatalog{/PageMode /UseOutlines}\fi
\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
\def\shortchapentry#1#2#3{ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}}
\def\appendixentry#1#2#3{ \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}}
\let\shortappendixentry = \shortchapentry
\newdimen\shortappendixwidth
\def\shortchaplabel#1{ \dimen0 = 1em
\hbox to \dimen0{#1\hss}}
\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}}
\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}}
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}}
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}}
\def\subsubsecentry#1#2#3#4#5#6{ \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}}
\newdimen\tocindent \tocindent = 3pc
\def\dochapentry#1#2{ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
\begingroup
\chapentryfonts
\tocentry{#1}{\dopageno\bgroup#2\egroup} \endgroup
\nobreak\vskip .25\baselineskip plus.1\baselineskip
}
\def\dosecentry#1#2{\begingroup
\secentryfonts \leftskip=\tocindent
\tocentry{#1}{\dopageno\bgroup#2\egroup}\endgroup}
\def\dosubsecentry#1#2{\begingroup
\subsecentryfonts \leftskip=2\tocindent
\tocentry{#1}{\dopageno\bgroup#2\egroup}\endgroup}
\def\dosubsubsecentry#1#2{\begingroup
\subsubsecentryfonts \leftskip=3\tocindent
\tocentry{#1}{\dopageno\bgroup#2\egroup}\endgroup}
\def\tocentry#1#2{\begingroup
\vskip 0pt plus1pt \entry{#1}{#2}\endgroup}
\def\labelspace{\hskip1em \relax}
\def\dopageno#1{{\rm #1}}
\def\doshortpageno#1{{\rm #1}}
\def\chapentryfonts{\secfonts \rm}
\def\secentryfonts{\textfonts}
\let\subsecentryfonts = \textfonts
\let\subsubsecentryfonts = \textfonts
\message{environments,}
\def\point{$\star$}
\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
\newbox\errorbox
{\tentt \global\dimen0 = 3em}\dimen2 = .55pt \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
\global\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt \advance\hsize by -2\dimen2 \vbox{
\hrule height\dimen2
\hbox{\vrule width\dimen2 \kern3pt \vtop{\kern2.4pt \box0 \kern2.4pt} \kern3pt\vrule width\dimen2} \hrule height\dimen2}
\hfil}
\def\error{\leavevmode\lower.7ex\copy\errorbox}
\def\tex{\begingroup
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
\catcode `\%=14
\catcode `\+=\other
\catcode `\"=\other
\catcode `\==\other
\catcode `\|=\other
\catcode `\<=\other
\catcode `\>=\other
\escapechar=`\\
\let\b=\ptexb
\let\bullet=\ptexbullet
\let\c=\ptexc
\let\,=\ptexcomma
\let\.=\ptexdot
\let\dots=\ptexdots
\let\equiv=\ptexequiv
\let\!=\ptexexclam
\let\i=\ptexi
\let\{=\ptexlbrace
\let\+=\tabalign
\let\}=\ptexrbrace
\let\*=\ptexstar
\let\t=\ptext
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}} \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi} \def\@{@}\let\Etex=\endgroup}
\newskip\lispnarrowing \lispnarrowing=0.4in
\def\lisppar{\null\endgraf}
{\obeyspaces \gdef\sepspaces{\obeyspaces\let =\tie}}
{\sepspaces\global\let\obeyedspace= }
\newskip\envskipamount \envskipamount = 0pt
\def\aboveenvbreak{{ \ifnum \lastpenalty=10000 \else
\advance\envskipamount by \parskip
\endgraf
\ifdim\lastskip<\envskipamount
\removelastskip
\ifnum\lastpenalty>10000 \else \penalty-50 \fi
\vskip\envskipamount
\fi
\fi
}}
\let\afterenvbreak = \aboveenvbreak
\let\nonarrowing=\relax
\font\circle=lcircle10
\newdimen\circthick
\newdimen\cartouter\newdimen\cartinner
\newskip\normbskip\newskip\normpskip\newskip\normlskip
\circthick=\fontdimen8\circle
\def\ctl{{\circle\char'013\hskip -6pt}}\def\ctr{{\hskip 6pt\circle\char'010}}
\def\cbl{{\circle\char'012\hskip -6pt}}
\def\cbr{{\hskip 6pt\circle\char'011}}
\def\carttop{\hbox to \cartouter{\hskip\lskip
\ctl\leaders\hrule height\circthick\hfil\ctr
\hskip\rskip}}
\def\cartbot{\hbox to \cartouter{\hskip\lskip
\cbl\leaders\hrule height\circthick\hfil\cbr
\hskip\rskip}}
\newskip\lskip\newskip\rskip
\def\cartouche{\par \begingroup
\lskip=\leftskip \rskip=\rightskip
\leftskip=0pt\rightskip=0pt \cartinner=\hsize \advance\cartinner by-\lskip
\advance\cartinner by-\rskip
\cartouter=\hsize
\advance\cartouter by 18.4pt \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
\let\nonarrowing=\comment
\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
\hbox\bgroup
\hskip\lskip
\vrule\kern3pt
\vbox\bgroup
\hsize=\cartinner
\kern3pt
\begingroup
\baselineskip=\normbskip
\lineskip=\normlskip
\parskip=\normpskip
\vskip -\parskip
\def\Ecartouche{ \endgroup
\kern3pt
\egroup
\kern3pt\vrule
\hskip\rskip
\egroup
\cartbot
\egroup
\endgroup
}}
\def\nonfillstart{ \aboveenvbreak
\inENV \hfuzz = 12pt \sepspaces \let\par = \lisppar \obeylines \parskip = 0pt
\parindent = 0pt
\emergencystretch = 0pt \ifx\nonarrowing\relax
\advance \leftskip by \lispnarrowing
\exdentamount=\lispnarrowing
\let\exdent=\nofillexdent
\let\nonarrowing=\relax
\fi
}
\def\nonfillfinish{\afterenvbreak\endgroup}
\def\lisp{\begingroup
\nonfillstart
\let\Elisp = \nonfillfinish
\tt
\let\kbdfont = \kbdexamplefont \gobble }
\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
\def\smalllisp{\begingroup
\def\Esmalllisp{\nonfillfinish\endgroup} \def\Esmallexample{\nonfillfinish\endgroup} \smallexamplefonts
\lisp
}
\let\smallexample = \smalllisp
\def\display{\begingroup
\nonfillstart
\let\Edisplay = \nonfillfinish
\gobble
}
\def\smalldisplay{\begingroup
\def\Esmalldisplay{\nonfillfinish\endgroup} \smallexamplefonts \rm
\display
}
\def\format{\begingroup
\let\nonarrowing = t
\nonfillstart
\let\Eformat = \nonfillfinish
\gobble
}
\def\smallformat{\begingroup
\def\Esmallformat{\nonfillfinish\endgroup} \smallexamplefonts \rm
\format
}
\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
\def\flushright{\begingroup
\let\nonarrowing = t
\nonfillstart
\let\Eflushright = \nonfillfinish
\advance\leftskip by 0pt plus 1fill
\gobble
}
\def\quotation{ \begingroup\inENV {\parskip=0pt \aboveenvbreak} \parindent=0pt
\def\Equotation{\parskip = 0pt \nonfillfinish} \ifx\nonarrowing\relax
\advance\leftskip by \lispnarrowing
\advance\rightskip by \lispnarrowing
\exdentamount = \lispnarrowing
\let\nonarrowing = \relax
\fi
}
\def\dospecials{ \do\ \do\\\do\{\do\}\do\$\do\& \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~ \do\<\do\>\do\|\do\@\do+\do\"}
\def\uncatcodespecials{ \def\do##1{\catcode`##1=12}\dospecials}
\begingroup
\catcode`\`=\active\gdef`{\relax\lq}
\endgroup
\begingroup
\catcode`\^^I=\active
\gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
\endgroup
\def\setupverb{ \tt \def\par{\leavevmode\endgraf} \catcode`\`=\active
\tabeightspaces
\obeylines \uncatcodespecials \sepspaces
}
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 \def\starttabbox{\setbox0=\hbox\bgroup}
\begingroup
\catcode`\^^I=\active
\gdef\tabexpand{ \catcode`\^^I=\active
\def^^I{\leavevmode\egroup
\dimen0=\wd0 \divide\dimen0 by\tabw
\multiply\dimen0 by\tabw \advance\dimen0 by\tabw \wd0=\dimen0 \box0 \starttabbox
} }
\endgroup
\def\setupverbatim{ \tt
\def\par{\leavevmode\egroup\box0\endgraf} \catcode`\`=\active
\tabexpand
\obeylines \uncatcodespecials \sepspaces
\everypar{\starttabbox}}
\begingroup
\catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12
\gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
\endgroup
\def\verb{\begingroup\setupverb\doverb}
\begingroup
\catcode`\ =\active
\obeylines \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}\endgroup
\def\verbatim{ \def\Everbatim{\nonfillfinish\endgroup} \begingroup
\nonfillstart
\advance\leftskip by -\defbodyindent
\begingroup\setupverbatim\doverbatim
}
\def\verbatiminclude{ \begingroup
\catcode`\\=\other
\catcode`~=\other
\catcode`^=\other
\catcode`_=\other
\catcode`|=\other
\catcode`<=\other
\catcode`>=\other
\catcode`+=\other
\parsearg\doverbatiminclude
}
\def\setupverbatiminclude{ \begingroup
\nonfillstart
\advance\leftskip by -\defbodyindent
\begingroup\setupverbatim
}
\def\doverbatiminclude#1{ \endgroup
\begingroup
\let\value=\expandablevalue
\def\thisfile{#1} \expandafter\expandafter\setupverbatiminclude\input\thisfile
\endgroup
\nonfillfinish
\endgroup
}
\def\copying{\begingroup
\long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying} \catcode`\^^M = \active
\docopying
}
\def\enddocopying{\endgroup\ignorespaces}
{\catcode`\^^M=\active \gdef\insertcopying{\begingroup \parindent = 0pt \def^^M{ \ifnum \lastpenalty=1 \par \else \space \penalty 1 \fi } \def\c##1^^M{\ignorespaces} \let\comment = \c \long\def\ignore##1\end ignore{\ignorespaces} \copyingtext \endgroup}}
\message{defuns,}
\def\setdeffont#1 {\csname DEF#1\endcsname}
\newskip\defbodyindent \defbodyindent=.4in
\newskip\defargsindent \defargsindent=50pt
\newskip\deflastargmargin \deflastargmargin=18pt
\newcount\parencount
\def\activeparens{ \catcode`\(=\active \catcode`\)=\active
\catcode`\&=\active
\catcode`\[=\active \catcode`\]=\active
}
\let\lparen = ( \let\rparen = )
{\activeparens
\global\let(=\lparen \global\let)=\rparen
\global\let[=\lbrack \global\let]=\rbrack
\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
\global\advance\parencount by 1
}
\gdef\opnested{\char`\(\global\advance\parencount by 1 }
\gdef\clrm{ \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
\global\advance \parencount by -1 }
\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ }
\gdef\normalparens{\boldbrax\let&=\ampnr}
} \def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
\let\ampnr = \&
\def\lbrb{{\bf\char`\[}}
\def\rbrb{{\bf\char`\]}}
{
\catcode`& = \active
\global\let& = \ampnr
}
\def\defname#1#2{ \ifempty{#2} \def\defnametype{} \else
\def\defnametype{[\rm #2]} \fi
\dimen2=\leftskip
\advance\dimen2 by -\defbodyindent
\setbox0=\hbox{\hskip \deflastargmargin{\defnametype}} \dimen0=\hsize \advance \dimen0 by -\wd0 \dimen1=\hsize \advance \dimen1 by -\defargsindent \parshape 2 0in \dimen0 \defargsindent \dimen1
\noindent
{ \advance \hsize by -\dimen2
\dimen3 = 0pt \rlap{\rightline{\defnametype\kern\dimen3}} } \tolerance=10000 \hbadness=10000
\advance\leftskip by -\defbodyindent
\exdentamount=\defbodyindent
{\df #1}\enskip }
\def\parsebodycommon#1#2#3{ \begingroup\inENV
\ifnum\lastpenalty=10002 \penalty0 \fi
\medbreak
\def#1{\endgraf\endgroup\medbreak} \parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
}
\def\defxbodycommon{ \ifnum\lastpenalty=10000 \penalty1000 \fi
\begingroup\obeylines
}
\def\defparsebody#1#2#3{ \parsebodycommon{#1}{#2}{#3} \def#2{\defxbodycommon \activeparens \spacesplit#3} \catcode\equalChar=\active
\begingroup\obeylines\activeparens
\spacesplit#3}
\def\defmethparsebody#1#2#3#4 { \parsebodycommon{#1}{#2}{#3} \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}} \begingroup\obeylines\activeparens
\spacesplit{#3{#4}}\empty
}
\def\deftypemethparsebody#1#2#3#4 #5 { \parsebodycommon{#1}{#2}{#3} \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}} \begingroup\obeylines\activeparens
\spacesplit{#3{#4}{#5}}}
\def\deftypeopparsebody#1#2#3#4#5 #6 { \parsebodycommon{#1}{#2}{#3} \def#2##1 ##2 ##3 {\def#4{##1} \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}} \begingroup\obeylines\activeparens
\spacesplit{#3{#5}{#6}}}
\def\defopparsebody #1#2#3#4#5 { \parsebodycommon{#1}{#2}{#3} \def#2##1 ##2 {\def#4{##1} \defxbodycommon \activeparens \spacesplit{#3{##2}}} \begingroup\obeylines\activeparens
\spacesplit{#3{#5}}}
\def\defvarparsebody #1#2#3{ \parsebodycommon{#1}{#2}{#3} \def#2{\defxbodycommon \spacesplit#3} \catcode\equalChar=\active
\begingroup\obeylines
\spacesplit#3}
\def\defopvarparsebody #1#2#3#4#5 { \parsebodycommon{#1}{#2}{#3} \def#2##1 ##2 {\def#4{##1} \defxbodycommon \spacesplit{#3{##2}}} \begingroup\obeylines
\spacesplit{#3{#5}}}
\def\defvrparsebody#1#2#3#4 { \parsebodycommon{#1}{#2}{#3} \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}} \begingroup\obeylines
\spacesplit{#3{#4}}}
\def\deftpparsebody #1#2#3#4 { \parsebodycommon{#1}{#2}{#3} \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}} \begingroup\obeylines
\spacesplit{\parsetpheaderline{#3{#4}}}\empty
}
\def\removeemptybraces\empty#1\relax{#1}
\def\parsetpheaderline#1#2#3{ #1{\removeemptybraces#2\relax}{#3}}
{\obeylines \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx} \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{ \ifx\relax #3 #1{#2}{} \else #1{#2}{#3#4} \fi}}
\def\defargscommonending{ \interlinepenalty = 10000
\advance\rightskip by 0pt plus 1fil
\endgraf
\nobreak\vskip -\parskip
\penalty 10002 }
\def\defunargs#1{\functionparens \sl
{\tensl\hyphenchar\font=0}#1{\tensl\hyphenchar\font=45}\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi \defargscommonending
}
\def\deftypefunargs #1{\boldbraxnoamp
\tclose{#1} \defargscommonending
}
\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup \catcode\equalChar=\other }
\def\defun{\defparsebody\Edefun\defunx\defunheader}
\def\defunheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{\putwordDeffunc}\defunargs {#2}\endgroup \catcode\equalChar=\other }
\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
\def\deftypefunheaderx #1#2 #3\relax{\doind {fn}{\code{#2}}\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}\deftypefunargs {#3}\endgroup \catcode\equalChar=\other }
\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi}
\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
\def\deftypefnheaderx #1#2#3 #4\relax{\doind {fn}{\code{#3}}\begingroup
\normalparens \defname {\defheaderxcond#2\relax$.$#3}{#1}\deftypefunargs {#4}\endgroup \catcode\equalChar=\other }
\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
\def\defmacheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{\putwordDefmac}\defunargs {#2}\endgroup \catcode\equalChar=\other }
\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
\def\defspecheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{\putwordDefspec}\defunargs {#2}\endgroup \catcode\equalChar=\other }
\def\defop #1 {\def\defoptype{#1}\defopparsebody\Edefop\defopx\defopheader\defoptype}
\def\defopheader#1#2#3{ \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}} \begingroup
\defname{#2}{\defoptype\ \putwordon\ #1} \defunargs{#3} \endgroup
}
\def\deftypeop #1 {\def\deftypeopcategory{#1} \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
\deftypeopcategory}
\def\deftypeopheader#1#2#3#4{ \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}} \begingroup
\defname{\defheaderxcond#2\relax$.$#3}
{\deftypeopcategory\ \putwordon\ \code{#1}} \deftypefunargs{#4} \endgroup
}
\def\deftypemethod{ \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
\def\deftypemethodheader#1#2#3#4{ \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}} \begingroup
\defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}} \deftypefunargs{#4} \endgroup
}
\def\deftypeivar{ \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader}
\def\deftypeivarheader#1#2#3{ \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}} \begingroup
\defname{\defheaderxcond#2\relax$.$#3}
{\putwordInstanceVariableof\ \code{#1}} \defvarargs{#3} \endgroup
}
\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
\def\defmethodheader#1#2#3{ \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}} \begingroup
\defname{#2}{\putwordMethodon\ \code{#1}} \defunargs{#3} \endgroup
}
\def\defcv #1 {\def\defcvtype{#1}\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
\def\defcvarheader #1#2#3{ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}} \begingroup
\defname{#2}{\defcvtype\ \putwordof\ #1} \defvarargs{#3} \endgroup
}
\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
\def\defivarheader#1#2#3{ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}} \begingroup
\defname{#2}{\putwordInstanceVariableof\ #1} \defvarargs{#3} \endgroup
}
\def\defvarargs #1{\normalparens #1 \defargscommonending
}
\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
\def\defvarheader #1#2{\doind {vr}{\code{#1}}\begingroup\defname {#1}{\putwordDefvar}\defvarargs {#2}\endgroup }
\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
\def\defoptheader #1#2{\doind {vr}{\code{#1}}\begingroup\defname {#1}{\putwordDefopt}\defvarargs {#2}\endgroup }
\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
\def\deftypevarheader #1#2{\dovarind#2 \relax\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar} \defargscommonending
\endgroup}
\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
\def\deftypevrheader #1#2#3{\dovarind#3 \relax\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
\defargscommonending
\endgroup}
\def\deftpargs #1{\bf \defvarargs{#1}}
\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
\def\defcvx#1 {\errmessage{@defcvx in invalid context}}
\def\deffnx#1 {\errmessage{@deffnx in invalid context}}
\def\defivarx#1 {\errmessage{@defivarx in invalid context}}
\def\defmacx#1 {\errmessage{@defmacx in invalid context}}
\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}}
\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
\def\defopx#1 {\errmessage{@defopx in invalid context}}
\def\defspecx#1 {\errmessage{@defspecx in invalid context}}
\def\deftpx#1 {\errmessage{@deftpx in invalid context}}
\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}}
\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}}
\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}}
\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}}
\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}}
\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}}
\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}}
\def\defunx#1 {\errmessage{@defunx in invalid context}}
\def\defvarx#1 {\errmessage{@defvarx in invalid context}}
\def\defvrx#1 {\errmessage{@defvrx in invalid context}}
\message{macros,}
\ifx\eTeXversion\undefined
\newwrite\macscribble
\def\scanmacro#1{ \begingroup \newlinechar`\^^M
\catcode`\@=0 \catcode`\\=\other \escapechar=`\@
\toks0={#1\endinput} \immediate\openout\macscribble=\jobname.tmp
\immediate\write\macscribble{\the\toks0} \immediate\closeout\macscribble
\let\xeatspaces\eatspaces
\input \jobname.tmp
\endgroup
}
\else
\def\scanmacro#1{\begingroup \newlinechar`\^^M
\catcode`\@=0 \catcode`\\=\other \escapechar=`\@
\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
\fi
\newcount\paramno \newtoks\macname \newif\ifrecursive \def\macrolist{}
\def\cslet#1#2{\expandafter\expandafter
\expandafter\let
\expandafter\expandafter
\csname#1\endcsname
\csname#2\endcsname}
{\catcode`\@=11
\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
\def\unbrace#1{#1}
\unbrace{\gdef\trim@@@ #1 } #2@{#1}
}
{\catcode`\^^M=\other \catcode`\Q=3\gdef\eatcr #1{\eatcra #1Q^^MQ}\gdef\eatcra#1^^MQ{\eatcrb#1Q}\gdef\eatcrb#1Q#2Q{#1}}
\def\macrobodyctxt{ \catcode`\~=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
\catcode`\<=\other
\catcode`\>=\other
\catcode`\+=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\@=\other
\catcode`\^^M=\other
\usembodybackslash}
\def\macroargctxt{ \catcode`\~=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
\catcode`\<=\other
\catcode`\>=\other
\catcode`\+=\other
\catcode`\@=\other
\catcode`\\=\other}
{\catcode`@=0 @catcode`@\=@active
@gdef@usembodybackslash{@let\=@mbodybackslash}
@gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
}
\expandafter\def\csname macarg.\endcsname{\realbackslash}
\def\macro{\recursivefalse\parsearg\macroxxx}
\def\rmacro{\recursivetrue\parsearg\macroxxx}
\def\macroxxx#1{ \getargs{#1} \ifx\argl\empty \paramno=0 \else
\expandafter\parsemargdef \argl; \fi
\if1\csname ismacro.\the\macname\endcsname
\message{Warning: redefining \the\macname} \else
\expandafter\ifx\csname \the\macname\endcsname \relax
\else \errmessage{Macro name \the\macname\space already defined}\fi
\global\cslet{macsave.\the\macname}{\the\macname} \global\expandafter\let\csname ismacro.\the\macname\endcsname=1 \toks0 = \expandafter{\macrolist\do} \xdef\macrolist{\the\toks0
\expandafter\noexpand\csname\the\macname\endcsname} \fi
\begingroup \macrobodyctxt
\ifrecursive \expandafter\parsermacbody
\else \expandafter\parsemacbody
\fi}
\def\unmacro{\parsearg\dounmacro}
\def\dounmacro#1{ \if1\csname ismacro.#1\endcsname
\global\cslet{#1}{macsave.#1} \global\expandafter\let \csname ismacro.#1\endcsname=0 \begingroup
\expandafter\let\csname#1\endcsname \relax
\let\do\unmacrodo
\xdef\macrolist{\macrolist} \endgroup
\else
\errmessage{Macro #1 not defined} \fi
}
\def\unmacrodo#1{ \ifx#1\relax
\else
\noexpand\do \noexpand #1 \fi
}
\def\getargs#1{\getargsxxx#1{}}
\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
\def\getmacname #1 #2\relax{\macname={#1}}
\def\getmacargs#1{\def\argl{#1}}
\def\parsemargdef#1;{\paramno=0\def\paramlist{} \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
\def\parsemargdefxxx#1,{ \if#1;\let\next=\relax
\else \let\next=\parsemargdefxxx
\advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
{\xeatspaces{\hash\the\paramno}} \edef\paramlist{\paramlist\hash\the\paramno,} \fi\next}
\long\def\parsemacbody#1@end macro{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}\long\def\parsermacbody#1@end rmacro{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}
\def\defmacro{ \let\hash=## \ifrecursive
\ifcase\paramno
\expandafter\xdef\csname\the\macname\endcsname{ \noexpand\scanmacro{\temp}} \or \expandafter\xdef\csname\the\macname\endcsname{ \bgroup\noexpand\macroargctxt
\noexpand\braceorline
\expandafter\noexpand\csname\the\macname xxx\endcsname} \expandafter\xdef\csname\the\macname xxx\endcsname##1{ \egroup\noexpand\scanmacro{\temp}} \else \expandafter\xdef\csname\the\macname\endcsname{ \bgroup\noexpand\macroargctxt
\noexpand\csname\the\macname xx\endcsname} \expandafter\xdef\csname\the\macname xx\endcsname##1{ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,} \expandafter\expandafter
\expandafter\xdef
\expandafter\expandafter
\csname\the\macname xxx\endcsname
\paramlist{\egroup\noexpand\scanmacro{\temp}} \fi
\else
\ifcase\paramno
\expandafter\xdef\csname\the\macname\endcsname{ \noexpand\norecurse{\the\macname} \noexpand\scanmacro{\temp}\egroup} \or \expandafter\xdef\csname\the\macname\endcsname{ \bgroup\noexpand\macroargctxt
\noexpand\braceorline
\expandafter\noexpand\csname\the\macname xxx\endcsname} \expandafter\xdef\csname\the\macname xxx\endcsname##1{ \egroup
\noexpand\norecurse{\the\macname} \noexpand\scanmacro{\temp}\egroup} \else \expandafter\xdef\csname\the\macname\endcsname{ \bgroup\noexpand\macroargctxt
\expandafter\noexpand\csname\the\macname xx\endcsname} \expandafter\xdef\csname\the\macname xx\endcsname##1{ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,} \expandafter\expandafter
\expandafter\xdef
\expandafter\expandafter
\csname\the\macname xxx\endcsname
\paramlist{ \egroup
\noexpand\norecurse{\the\macname} \noexpand\scanmacro{\temp}\egroup} \fi
\fi}
\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
\def\braceorlinexxx{ \ifx\nchar\bgroup\else
\expandafter\parsearg
\fi \next}
\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax} \edef\next{\macrolist}\expandafter\endgroup\next}
\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
\def\aliasxxx #1{\aliasyyy#1\relax}
\def\aliasyyy #1=#2\relax{\ignoreactivespaces
\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname= \expandafter\noexpand\csname#2\endcsname}\expandafter\endgroup\next}
\message{cross references,}
\newwrite\auxfile
\newif\ifhavexrefs \newif\ifwarnedxrefs
\def\inforef #1{\inforefzzz #1,,,,**}
\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
\def\node{\ENVcheck\parsearg\nodezzz}
\def\nodezzz#1{\nodexxx [#1,]}
\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
\let\nwnode=\node
\let\lastnode=\relax
\def\donoderef{ \ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\setref{\lastnode} {Ysectionnumberandtype} \global\let\lastnode=\relax
\fi
}
\def\unnumbnoderef{ \ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing} \global\let\lastnode=\relax
\fi
}
\def\appendixnoderef{ \ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\setref{\lastnode} {Yappendixletterandtype} \global\let\lastnode=\relax
\fi
}
\newcount\savesfregister
\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
\def\setref#1#2{{ \atdummies
\pdfmkdest{#1} \turnoffactive
\dosetq{#1-title}{Ytitle} \dosetq{#1-pg}{Ypagenumber} \dosetq{#1-snt}{#2}}}
\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
\def\ref#1{\xrefX[#1,,,,,,,]}
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
\def\printedmanual{\ignorespaces #5} \def\printednodename{\ignorespaces #3} \setbox1=\hbox{\printedmanual} \setbox0=\hbox{\printednodename} \ifdim \wd0 = 0pt
\expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
\def\printednodename{\ignorespaces #1} \else
\ifdim \wd1 > 0pt
\def\printednodename{\ignorespaces #1} \else
\ifhavexrefs
\def\printednodename{\refx{#1-title}{}} \else
\def\printednodename{\ignorespaces #1} \fi \fi
\fi
\fi
\ifpdf
\leavevmode
\getfilename{#4} {\turnoffactive \otherbackslash
\ifnum\filenamelength>0
\startlink attr{/Border [0 0 0]} goto file{\the\filename.pdf} name{#1} \else
\startlink attr{/Border [0 0 0]} goto name{#1} \fi
} \linkcolor
\fi
\ifdim \wd1 > 0pt
\putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual} \else
{\turnoffactive \otherbackslash
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}} \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
} [\printednodename],\space
\turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{} \fi
\endlink
\endgroup}
\def\dosetq#1#2{ {\let\folio=0 \edef\next{\write\auxfile{\internalsetq{#1}{#2}}} \iflinks \next \fi
}}
\def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}}
\def\Ypagenumber{\folio}
\def\Ytitle{\thissection}
\def\Ynothing{}
\def\Ysectionnumberandtype{ \ifnum\secno=0
\putwordChapter@tie \the\chapno
\else \ifnum\subsecno=0
\putwordSection@tie \the\chapno.\the\secno
\else \ifnum\subsubsecno=0
\putwordSection@tie \the\chapno.\the\secno.\the\subsecno
\else
\putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
\fi\fi\fi
}
\def\Yappendixletterandtype{ \ifnum\secno=0
\putwordAppendix@tie @char\the\appendixno{} \else \ifnum\subsecno=0
\putwordSection@tie @char\the\appendixno.\the\secno
\else \ifnum\subsubsecno=0
\putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
\else
\putwordSection@tie
@char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
\fi\fi\fi
}
\ifx\inputlineno\thisisundefined
\let\linenumber = \empty \else
\def\linenumber{\the\inputlineno:\space}
\fi
\def\refx#1#2{ { \indexnofonts
\otherbackslash
\expandafter\global\expandafter\let\expandafter\thisrefX
\csname X#1\endcsname
} \ifx\thisrefX\relax
\angleleft un\-de\-fined\angleright
\iflinks
\ifhavexrefs
\message{\linenumber Undefined cross reference `#1'.} \else
\ifwarnedxrefs\else
\global\warnedxrefstrue
\message{Cross reference values unknown; you must run TeX again.} \fi
\fi
\fi
\else
\thisrefX
\fi
#2}
\def\xrdef#1{\expandafter\gdef\csname X#1\endcsname}
\def\readauxfile{\begingroup
\catcode`\^^@=\other
\catcode`\^^A=\other
\catcode`\^^B=\other
\catcode`\^^C=\other
\catcode`\^^D=\other
\catcode`\^^E=\other
\catcode`\^^F=\other
\catcode`\^^G=\other
\catcode`\^^H=\other
\catcode`\^^K=\other
\catcode`\^^L=\other
\catcode`\^^N=\other
\catcode`\^^P=\other
\catcode`\^^Q=\other
\catcode`\^^R=\other
\catcode`\^^S=\other
\catcode`\^^T=\other
\catcode`\^^U=\other
\catcode`\^^V=\other
\catcode`\^^W=\other
\catcode`\^^X=\other
\catcode`\^^Z=\other
\catcode`\^^[=\other
\catcode`\^^\=\other
\catcode`\^^]=\other
\catcode`\^^^=\other
\catcode`\^^_=\other
\catcode`\^=\other
\catcode`\~=\other
\catcode`\[=\other
\catcode`\]=\other
\catcode`\"=\other
\catcode`\_=\other
\catcode`\|=\other
\catcode`\<=\other
\catcode`\>=\other
\catcode`\$=\other
\catcode`\#=\other
\catcode`\&=\other
\catcode`\%=\other
\catcode`+=\other { \count 1=128
\def\loop{ \catcode\count 1=\other
\advance\count 1 by 1
\ifnum \count 1<256 \loop \fi
} } \catcode`\\=\other
\catcode`\{=1
\catcode`\}=2
\catcode`\@=0
\openin 1 \jobname.aux
\ifeof 1 \else
\closein 1
\input \jobname.aux
\global\havexrefstrue
\global\warnedobstrue
\fi
\openout\auxfile=\jobname.aux
\endgroup}
\newcount \footnoteno
\def\supereject{\par\penalty -20000\footnoteno =0 }
\let\footnotestyle=\comment
\let\ptexfootnote=\footnote
{\catcode `\@=11
\gdef\footnote{ \global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$} \let\@sf\empty
\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
\unskip
\thisfootno\@sf
\dofootnote
}
\gdef\startfootins{\insert\footins\bgroup}
\gdef\dofootnote{ \startfootins
\hsize=\pagewidth
\interlinepenalty\interfootnotelinepenalty
\splittopskip\ht\strutbox \splitmaxdepth\dp\strutbox
\floatingpenalty\@MM
\leftskip\z@skip
\rightskip\z@skip
\spaceskip\z@skip
\xspaceskip\z@skip
\parindent\defaultparindent
\smallfonts \rm
\let\noindent = \relax
\everypar = {\hang} \textindent{\thisfootno} \footstrut
\futurelet\next\fo@t
}
}
\def\|{ \leavevmode
\vadjust{ \vskip-\baselineskip
\llap{ \vrule height\baselineskip width1pt
\hskip 12pt
} }}
\def\finalout{\overfullrule=0pt}
\openin 1 = epsf.tex
\ifeof 1 \else
\closein 1
\def\epsfannounce{\toks0 = } \input epsf.tex
\fi
\newif\ifwarnednoepsf
\newhelp\noepsfhelp{epsf.tex must be installed for images to
work. It is also included in the Texinfo distribution, or you can get
it from ftp://tug.org/tex/epsf.tex.}
\def\image#1{ \ifx\epsfbox\undefined
\ifwarnednoepsf \else
\errhelp = \noepsfhelp
\errmessage{epsf.tex not found, images will be ignored} \global\warnednoepsftrue
\fi
\else
\imagexxx #1,,,,,\finish
\fi
}
\newif\ifimagevmode
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
\catcode`\^^M = 5 \normalturnoffactive \ifvmode
\imagevmodetrue
\nobreak\bigskip
\nobreak\vskip\parskip
\nobreak
\line\bgroup\hss
\fi
\ifpdf
\dopdfimage{#1}{#2}{#3} \else
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
\epsfbox{#1.eps} \fi
\ifimagevmode \hss \egroup \bigbreak \fi \endgroup}
\message{localization,}
\def\documentlanguage{\parsearg\dodocumentlanguage}
\def\dodocumentlanguage#1{ \tex \openin 1 txi-#1.tex
\ifeof1
\errhelp = \nolanghelp
\errmessage{Cannot read language file txi-#1.tex} \let\temp = \relax
\else
\def\temp{\input txi-#1.tex } \fi
\temp
\endgroup
}
\newhelp\nolanghelp{The given language definition file cannot be found or
is empty. Maybe you need to install it? In the current directory
should work if nowhere else does.}
\let\documentencoding = \comment
\newdimen\defaultparindent \defaultparindent = 15pt
\chapheadingskip = 15pt plus 4pt minus 2pt
\secheadingskip = 12pt plus 3pt minus 2pt
\subsecheadingskip = 9pt plus 2pt minus 2pt
\vbadness = 10000
\hbadness = 2000
\widowpenalty=10000
\clubpenalty=10000
\def\setemergencystretch{ \ifx\emergencystretch\thisisundefined
\def\emergencystretch{\dimen0} \else
\emergencystretch = .15\hsize
\fi
}
\def\internalpagesizes#1#2#3#4#5#6#7#8{ \voffset = #3\relax
\topskip = #6\relax
\splittopskip = \topskip
\vsize = #1\relax
\advance\vsize by \topskip
\outervsize = \vsize
\advance\outervsize by 2\topandbottommargin
\pageheight = \vsize
\hsize = #2\relax
\outerhsize = \hsize
\advance\outerhsize by 0.5in
\pagewidth = \hsize
\normaloffset = #4\relax
\bindingoffset = #5\relax
\ifpdf
\pdfpageheight #7\relax
\pdfpagewidth #8\relax
\fi
\setleading{\textleading}
\parindent = \defaultparindent
\setemergencystretch
}
\def\letterpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
\textleading = 13.2pt
\internalpagesizes{46\baselineskip}{6in} {\voffset}{.25in} {\bindingoffset}{36pt} {11in}{8.5in}}}
\def\smallbook{{\globaldefs = 1
\parskip = 2pt plus 1pt
\textleading = 12pt
\internalpagesizes{7.5in}{5in} {\voffset}{.25in} {\bindingoffset}{16pt} {9.25in}{7in} \lispnarrowing = 0.3in
\tolerance = 700
\hfuzz = 1pt
\contentsrightmargin = 0pt
\defbodyindent = .5cm
}}
\def\afourpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
\textleading = 13.2pt
\internalpagesizes{51\baselineskip}{160mm}
{\voffset}{\hoffset} {\bindingoffset}{44pt} {297mm}{210mm} \tolerance = 700
\hfuzz = 1pt
\contentsrightmargin = 0pt
\defbodyindent = 5mm
}}
\def\afivepaper{{\globaldefs = 1
\parskip = 2pt plus 1pt minus 0.1pt
\textleading = 12.5pt
\internalpagesizes{160mm}{120mm} {\voffset}{\hoffset} {\bindingoffset}{8pt} {210mm}{148mm} \lispnarrowing = 0.2in
\tolerance = 800
\hfuzz = 1.2pt
\contentsrightmargin = 0pt
\defbodyindent = 2mm
\tableindent = 12mm
}}
\def\afourlatex{{\globaldefs = 1
\afourpaper
\internalpagesizes{237mm}{150mm} {\voffset}{4.6mm} {\bindingoffset}{7mm} {297mm}{210mm} \globaldefs = 0
}}
\def\afourwide{{\globaldefs = 1
\afourpaper
\internalpagesizes{241mm}{165mm} {\voffset}{-2.95mm} {\bindingoffset}{7mm} {297mm}{210mm} \globaldefs = 0
}}
\def\pagesizes{\parsearg\pagesizesxxx}
\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
\def\pagesizesyyy#1,#2,#3\finish{{ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
\setleading{\textleading} \dimen0 = #1
\advance\dimen0 by \voffset
\dimen2 = \hsize
\advance\dimen2 by \normaloffset
\internalpagesizes{#1}{\hsize} {\voffset}{\normaloffset} {\bindingoffset}{44pt} {\dimen0}{\dimen2}}}
\letterpaper
\message{and turning on texinfo input format.}
\catcode`\"=\other
\catcode`\~=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
\catcode`\<=\other
\catcode`\>=\other
\catcode`\+=\other
\catcode`\$=\other
\def\normaldoublequote{"}
\def\normaltilde{~}
\def\normalcaret{^}
\def\normalunderscore{_}
\def\normalverticalbar{|}
\def\normalless{<}
\def\normalgreater{>}
\def\normalplus{+}
\def\normaldollar{$}%$ font-lock fix
\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
\catcode`\"=\active
\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
\catcode`\~=\active
\def~{{\tt\char126}}
\chardef\hat=`\^
\catcode`\^=\active
\def^{{\tt \hat}}
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
\catcode`\|=\active
\def|{{\tt\char124}}
\chardef \less=`\<
\catcode`\<=\active
\def<{{\tt \less}}
\chardef \gtr=`\>
\catcode`\>=\active
\def>{{\tt \gtr}}
\catcode`\+=\active
\def+{{\tt \char 43}}
\catcode`\$=\active
\def${\ifusingit{{\sl\$}}\normaldollar}
{\catcode`\==\active
\global\def={{\tt \char 61}}}
\catcode`+=\active
\catcode`\_=\active
\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
\catcode`\@=0
\global\chardef\rawbackslashxx=`\\
{\catcode`\\=\active
@gdef@rawbackslash{@let\=@rawbackslashxx}
@gdef@otherbackslash{@let\=@realbackslash}
}
{\catcode`\\=\other @gdef@realbackslash{\}}
\def\normalbackslash{{\tt\rawbackslashxx}}
\catcode`\\=\active
@def@turnoffactive{ @let"=@normaldoublequote
@let\=@realbackslash
@let~=@normaltilde
@let^=@normalcaret
@let_=@normalunderscore
@let|=@normalverticalbar
@let<=@normalless
@let>=@normalgreater
@let+=@normalplus
@let$=@normaldollar %$ font-lock fix
}
@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
@otherifyactive
@gdef@eatinput input texinfo{@fixbackslash}
@global@let\ = @eatinput
@gdef@fixbackslash{ @ifx\@eatinput @let\ = @normalbackslash @fi
@catcode`+=@active
@catcode`@_=@active
}
@escapechar = `@@
@catcode`@& = @other
@catcode`@# = @other
@catcode`@
@c Set initial fonts.
@textfonts
@rm
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "@c time-stamp-end: "}"
@c End: