\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
\deftexinfoversion$Revision: 2.146 $
\message{Loading texinfo package [Version \texinfoversion]:}
\everyjob{\message{[Texinfo version \texinfoversion]}\message{}
\catcode`+=\active \catcode`\_=\active}
\let\ptextilde=\~
\let\ptexlbrace=\{
\let\ptexrbrace=\}
\let\ptexdots=\dots
\let\ptexdot=\.
\let\ptexstar=\*
\let\ptexend=\end
\let\ptexbullet=\bullet
\let\ptexb=\b
\let\ptexc=\c
\let\ptexi=\i
\let\ptext=\t
\let\ptexl=\l
\let\ptexL=\L
{\catcode`@ = 11
\gdef\tie{\leavevmode\penalty\@M\ }
}
\let\~ = \tie
\message{Basics,}
\chardef\other=12
\newlinechar = `^^J
\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi\def\putwordInfo{Info}\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi
\def\gobble#1{}
\hyphenation{ap-pen-dix}
\hyphenation{mini-buf-fer mini-buf-fers}
\hyphenation{eshell}
\newdimen \bindingoffset \bindingoffset=0pt
\newdimen \normaloffset \normaloffset=\hoffset
\newdimen\pagewidth \newdimen\pageheight
\pagewidth=\hsize \pageheight=\vsize
\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}\def\loggingall{\tracingcommands2 \tracingstats2
\tracingpages1 \tracingoutput1 \tracinglostchars1
\tracingmacros2 \tracingparagraphs1 \tracingrestores1
\showboxbreadth\maxdimen\showboxdepth\maxdimen
}
\newdimen\cornerlong \newdimen\cornerthick
\newdimen \topandbottommargin
\newdimen \outerhsize \newdimen \outervsize
\cornerlong=1pc\cornerthick=.3pt \outerhsize=7in
\outervsize=9.25in
\topandbottommargin=.75in
\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}}
\def\onepageout#1{\hoffset=\normaloffset
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
{\escapechar=`\\\relax \shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}{\let\hsize=\pagewidth \makefootline}}}\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
\def\croppageout#1{\hoffset=0pt {\escapechar=`\\\relax \shipout
\vbox to \outervsize{\hsize=\outerhsize
\vbox{\line{\ewtop\hfill\ewtop}}
\nointerlineskip
\line{\vbox{\moveleft\cornerthick\nstop}
\hfill
\vbox{\moveright\cornerthick\nstop}}
\vskip \topandbottommargin
\centerline{\ifodd\pageno\hskip\bindingoffset\fi
\vbox{
{\let\hsize=\pagewidth \makeheadline}
\pagebody{#1}
{\let\hsize=\pagewidth \makefootline}}
\ifodd\pageno\else\hskip\bindingoffset\fi}
\vskip \topandbottommargin plus1fill minus1fill
\boxmaxdepth\cornerthick
\line{\vbox{\moveleft\cornerthick\nsbot}
\hfill
\vbox{\moveright\cornerthick\nsbot}}
\nointerlineskip
\vbox{\line{\ewbot\hfill\ewbot}}
}}
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi}
\def\cropmarks{\let\onepageout=\croppageout }
\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. Type Return to continue.}
\endgroup\fi}
\newhelp\EMsimple{Type <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}}}
\newskip\singlespaceskip \singlespaceskip = 12.5pt
\def\singlespace{ \setleading \singlespaceskip
}
\def\@{{\tt \char '100}}
\def\mylbrace {{\tt \char '173}}
\def\myrbrace {{\tt \char '175}}
\let\{=\mylbrace
\let\}=\myrbrace
\def\:{\spacefactor=1000 }
\def\*{\hfil\break\hbox{}\ignorespaces}
\def\.{.\spacefactor=3000 }
\gdef\enddots{$\mathinner{\ldotp\ldotp\ldotp\ldotp}$\spacefactor=3000}
\gdef\!{!\spacefactor=3000 }
\gdef\?{?\spacefactor=3000 }
\def\w#1{\leavevmode\hbox{#1}}
\def\group{\begingroup
\ifnum\catcode13=\active \else
\errhelp = \groupinvalidhelp
\errmessage{@group invalid in context where filling is enabled} \fi
\def\Egroup{ \egroup \endgroup } \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
\allowbreak
\nointerlineskip
\vtop to #1\mil{\vfil} \penalty9999
\kern -#1\mil
\nobreak
}
\let\br = \par
\def\dots{$\ldots$}
\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}}}}
\def\include{\parsearg\includezzz}
\def\includezzz #1{\begingroup
\def\thisfile{#1}\input\thisfile
\endgroup}
\def\thisfile{}
\def\center{\parsearg\centerzzz}
\def\centerzzz #1{{\advance\hsize by -\leftskip
\advance\hsize by -\rightskip
\centerline{#1}}}
\def\sp{\parsearg\spxxx}
\def\spxxx #1{\par \vskip #1\baselineskip}
\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other\parsearg \commentxxx}
\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 }
\let\c=\comment
\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\defcv = \relax
\let\deffn = \relax
\let\deffnx = \relax
\let\defindex = \relax
\let\defivar = \relax
\let\defmac = \relax
\let\defmethod = \relax
\let\defop = \relax
\let\defopt = \relax
\let\defspec = \relax
\let\deftp = \relax
\let\deftypefn = \relax
\let\deftypefun = \relax
\let\deftypevar = \relax
\let\deftypevr = \relax
\let\defun = \relax
\let\defvar = \relax
\let\defvr = \relax
\let\ref = \relax
\let\xref = \relax
\let\printindex = \relax
\let\pxref = \relax
\let\settitle = \relax
\let\include = \relax
\let\lowersections = \relax
\let\down = \relax
\let\raisesections = \relax
\let\up = \relax
\let\set = \relax
\let\clear = \relax
\let\item = \relax
\let\message = \relax
}
\def\ignore{\doignore{ignore}}
\def\ifinfo{\doignore{ifinfo}}
\def\ifhtml{\doignore{ifhtml}}
\def\html{\doignore{html}}
\def\menu{\doignore{menu}}
\def\direntry{\doignore{direntry}}
\def\doignore#1{\begingroup
\ignoresections
\long\def\doignoretext##1\end #1{\enddoignore} \catcode32 = 10
\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{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{}
\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\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont
\let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont
\let\indsf = \nullfont
\tracinglostchars = 0
\frenchspacing
\hbadness = 10000
\pretolerance = 10000
\def\tex{\doignore{tex}}
}
\def\set{\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
}
\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}
\def\value#1{\expandafter
\ifx\csname SET#1\endcsname\relax
{\{No value for ``#1''\}}
\else \csname SET#1\endcsname \fi}
\def\ifset{\parsearg\ifsetxxx}
\def\ifsetxxx #1{ \expandafter\ifx\csname SET#1\endcsname\relax
\expandafter\ifsetfail
\else
\expandafter\ifsetsucceed
\fi
}
\def\ifsetsucceed{\conditionalsucceed{ifset}}
\def\ifsetfail{\nestedignore{ifset}}
\defineunmatchedend{ifset}
\def\ifclear{\parsearg\ifclearxxx}
\def\ifclearxxx #1{ \expandafter\ifx\csname SET#1\endcsname\relax
\expandafter\ifclearsucceed
\else
\expandafter\ifclearfail
\fi
}
\def\ifclearsucceed{\conditionalsucceed{ifclear}}
\def\ifclearfail{\nestedignore{ifclear}}
\defineunmatchedend{ifclear}
\def\iftex{\conditionalsucceed{iftex}}
\defineunmatchedend{iftex}
\def\conditionalsucceed#1{ \edef\temp{ \let\nece{prevE#1} = \nece{E#1} \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}} } \temp
}
\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
\def\asis#1{#1}
\let\implicitmath = $
\def\math#1{\implicitmath #1\implicitmath}
\def\bullet{\implicitmath\ptexbullet\implicitmath}
\def\minus{\implicitmath-\implicitmath}
\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}\fi
\global\let\lastnode=\relax}
\def\unnumbnoderef{\ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
\global\let\lastnode=\relax}
\def\appendixnoderef{\ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
\global\let\lastnode=\relax}
\let\refill=\relax
\def\setfilename{ \readauxfile
\opencontents
\openindices
\fixbackslash \global\let\setfilename=\comment \comment }
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
\def\inforef #1{\inforefzzz #1,,,,**}
\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
\message{fonts,}
\newfam\sffam
\def\sf{\fam=\sffam \tensf}
\let\li = \sf
\let\mainmagstep=\magstephalf
\def\setfont#1#2{\font#1=\fontprefix#2}
\ifx\fontprefix\undefined
\def\fontprefix{cm}
\fi
\ifx\bigger\relax
\let\mainmagstep=\magstep1
\setfont\textrm{r12}
\setfont\texttt{tt12}
\else
\setfont\textrm{r10 scaled \mainmagstep}
\setfont\texttt{tt10 scaled \mainmagstep}
\fi
\setfont\textbf{b10 scaled \mainmagstep}
\setfont\textit{ti10 scaled \mainmagstep}
\setfont\textsl{sl10 scaled \mainmagstep}
\setfont\textsf{ss10 scaled \mainmagstep}
\setfont\textsc{csc10 scaled \mainmagstep}
\font\texti=cmmi10 scaled \mainmagstep
\font\textsy=cmsy10 scaled \mainmagstep
\setfont\defbf{bx10 scaled \magstep1} \setfont\deftt{tt10 scaled \magstep1}
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
\setfont\ninett{tt9}
\setfont\indrm{r9}
\setfont\indit{sl9}
\let\indsl=\indit
\let\indtt=\ninett
\let\indsf=\indrm
\let\indbf=\indrm
\setfont\indsc{csc10 at 9pt}
\font\indi=cmmi9
\font\indsy=cmsy9
\setfont\chaprm{bx12 scaled \magstep2}
\setfont\chapit{ti12 scaled \magstep2}
\setfont\chapsl{sl12 scaled \magstep2}
\setfont\chaptt{tt12 scaled \magstep2}
\setfont\chapsf{ss12 scaled \magstep2}
\let\chapbf=\chaprm
\setfont\chapsc{csc10 scaled\magstep3}
\font\chapi=cmmi12 scaled \magstep2
\font\chapsy=cmsy10 scaled \magstep3
\setfont\secrm{bx12 scaled \magstep1}
\setfont\secit{ti12 scaled \magstep1}
\setfont\secsl{sl12 scaled \magstep1}
\setfont\sectt{tt12 scaled \magstep1}
\setfont\secsf{ss12 scaled \magstep1}
\setfont\secbf{bx12 scaled \magstep1}
\setfont\secsc{csc10 scaled\magstep2}
\font\seci=cmmi12 scaled \magstep1
\font\secsy=cmsy10 scaled \magstep2
\setfont\ssecrm{bx12 scaled \magstephalf}
\setfont\ssecit{ti12 scaled \magstephalf}
\setfont\ssecsl{sl12 scaled \magstephalf}
\setfont\ssectt{tt12 scaled \magstephalf}
\setfont\ssecsf{ss12 scaled \magstephalf}
\setfont\ssecbf{bx12 scaled \magstephalf}
\setfont\ssecsc{csc10 scaled \magstep1}
\font\sseci=cmmi12 scaled \magstephalf
\font\ssecsy=cmsy10 scaled \magstep1
\setfont\titlerm{bx12 scaled \magstep3}
\let\authorrm = \secrm
\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
\resetmathfonts}
\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
\resetmathfonts}
\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
\resetmathfonts}
\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
\resetmathfonts}
\def\indexfonts{ \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
\let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
\let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy
\resetmathfonts}
\textfonts
\newcount\fontdepth \fontdepth=0
\setfont\shortcontrm{r12}
\setfont\shortcontbf{bx12}
\setfont\shortcontsl{sl12}
\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx}
\let\i=\smartitalic
\let\var=\smartitalic
\let\dfn=\smartitalic
\let\emph=\smartitalic
\let\cite=\smartitalic
\def\b#1{{\bf #1}}
\let\strong=\b
\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
\def\restorehyphenation{\hyphenchar\font = `- }
\def\t#1{ {\tt \rawbackslash \frenchspacing #1} \null
}
\let\ttfont=\t
\def\samp #1{`\tclose{#1}'\null}
\def\key #1{{\tt \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
\let\file=\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 \catcode`\_=\active \let_\realunder}
}
\def\realdash{-}
\def\realunder{_}
\def\codedash{-\discretionary{}{}{}}
\def\codeunder{\normalunderscore\discretionary{}{}{}}
\def\codex #1{\tclose{#1}\endgroup}
\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{\look}\fi
\else\tclose{\look}\fi}
\def\dmn#1{\thinspace #1}
\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
\def\l#1{{\li #1}\null}
\def\r#1{{\rm #1}} \def\sc#1{{\smallcaps#1}} \def\ii#1{{\it #1}}
\message{page headings,}
\newskip\titlepagetopglue \titlepagetopglue = 1.5in
\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
\def\titlefont#1{{\titlerm #1}}
\newif\ifseenauthor
\newif\iffinishedtitlepage
\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} \vglue\titlepagetopglue
\def\title{\parsearg\titlezzz} \def\titlezzz##1{\leftline{\titlefont{##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
}
\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{\everyheadingyyy #1@|@|@|@|\finish}
\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
\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}}}
\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish}
\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
}
\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}}
}
\def\HEADINGSsingle{
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
}
\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}}
}
\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}}
}
\def\today{\number\day\space
\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\year}
\def\thistitle{No Title}
\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\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
\nobreak
\endgroup
\itemxneedsnegativevskipfalse
\else
\noindent
\rlap{\hskip -\tableindent\box0}\ignorespaces \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\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
\sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
\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}
\newdimen\intableparskip
\newdimen\intableparindent
\newdimen\spacebetweencols
\newdimen\spacebetweenlines
\intableparskip=0pt
\intableparindent=6pt
\spacebetweencols=12pt
\spacebetweenlines=12pt
\let\endsetuptable\relax
\def\xendsetuptable{\endsetuptable}
\let\percentofhsize\relax
\def\xpercentofhsize{\percentofhsize}
\newif\ifsetpercent
\newcount\colcount
\def\setuptable#1{\def\firstarg{#1}\ifx\firstarg\xendsetuptable\let\go\relax\else
\ifx\firstarg\xpercentofhsize\global\setpercenttrue \else
\ifsetpercent
\if#1.\else \global\advance\colcount by1 \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize} \fi
\else
\global\advance\colcount by1
\setbox0=\hbox{#1} \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0} \fi \fi \let\go\setuptable\fi\go}
\def\tab{&}
\def\multitable#1\item{\bgroup
\let\item\cr
\tolerance=9500
\hbadness=9500
\parskip=\intableparskip
\parindent=\intableparindent
\overfullrule=0pt
\global\colcount=0\relax\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup} \def\one{#1}\expandafter\setuptable\one\endsetuptable
\global\colcount=0\relax \halign\bgroup&\global\advance\colcount by 1\relax\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
\ifnum\colcount=1
\else
\ifsetpercent
\else
\advance\hsize by \spacebetweencols
\fi
\leftskip=\spacebetweencols
\fi
\noindent##}\cr \global\everycr{\noalign{\nointerlineskip\vskip\spacebetweenlines
\filbreak\global\colcount=0\relax}}}
\message{indexing,}
{\catcode`\@=11
\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
\def\newindex #1{
\expandafter\newwrite \csname#1indfile\endcsname\openout \csname#1indfile\endcsname \jobname.#1 \expandafter\xdef\csname#1index\endcsname{\noexpand\doindex {#1}}
}
\def\defindex{\parsearg\newindex}
\def\newcodeindex #1{
\expandafter\newwrite \csname#1indfile\endcsname\openout \csname#1indfile\endcsname \jobname.#1 \expandafter\xdef\csname#1index\endcsname{\noexpand\docodeindex {#1}}
}
\def\defcodeindex{\parsearg\newcodeindex}
\def\synindex #1 #2 {\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
\expandafter\xdef\csname#1index\endcsname{\noexpand\doindex {#2}}}
\def\syncodeindex #1 #2 {\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
\expandafter\xdef\csname#1index\endcsname{\noexpand\docodeindex {#2}}}
\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\"{\realbackslash "}\def\`{\realbackslash `}\def\'{\realbackslash '}\def\^{\realbackslash ^}\def\~{\realbackslash ~}\def\={\realbackslash =}\def\b{\realbackslash b}\def\c{\realbackslash c}\def\d{\realbackslash d}\def\u{\realbackslash u}\def\v{\realbackslash v}\def\H{\realbackslash H}\def\oe{\realbackslash oe}\def\ae{\realbackslash ae}\def\aa{\realbackslash aa}\def\OE{\realbackslash OE}\def\AE{\realbackslash AE}\def\AA{\realbackslash AA}\def\o{\realbackslash o}\def\O{\realbackslash O}\def\l{\realbackslash l}\def\L{\realbackslash L}\def\ss{\realbackslash ss}\def\_{{\realbackslash _}}\def\w{\realbackslash w }\def\bf{\realbackslash bf }\def\rm{\realbackslash rm }\def\sl{\realbackslash sl }\def\sf{\realbackslash sf}\def\tt{\realbackslash tt}\def\gtr{\realbackslash gtr}\def\less{\realbackslash less}\def\hat{\realbackslash hat}\def\char{\realbackslash char}\def\TeX{\realbackslash TeX}\def\dots{\realbackslash dots }\def\copyright{\realbackslash copyright }\def\tclose##1{\realbackslash tclose {##1}}\def\code##1{\realbackslash code {##1}}\def\samp##1{\realbackslash samp {##1}}\def\t##1{\realbackslash r {##1}}\def\r##1{\realbackslash r {##1}}\def\i##1{\realbackslash i {##1}}\def\b##1{\realbackslash b {##1}}\def\cite##1{\realbackslash cite {##1}}\def\key##1{\realbackslash key {##1}}\def\file##1{\realbackslash file {##1}}\def\var##1{\realbackslash var {##1}}\def\kbd##1{\realbackslash kbd {##1}}\def\dfn##1{\realbackslash dfn {##1}}\def\emph##1{\realbackslash emph {##1}}}
\def\indexdummyfont#1{#1}
\def\indexdummytex{TeX}
\def\indexdummydots{...}
\def\indexnofonts{\let\"=\indexdummyfont
\let\`=\indexdummyfont
\let\'=\indexdummyfont
\let\^=\indexdummyfont
\let\~=\indexdummyfont
\let\==\indexdummyfont
\let\b=\indexdummyfont
\let\c=\indexdummyfont
\let\d=\indexdummyfont
\let\u=\indexdummyfont
\let\v=\indexdummyfont
\let\H=\indexdummyfont
\def\oe{oe}\def\ae{ae}\def\aa{aa}\def\OE{OE}\def\AE{AE}\def\AA{AA}\def\o{o}\def\O{O}\def\l{l}\def\L{L}\def\ss{ss}\let\w=\indexdummyfont
\let\t=\indexdummyfont
\let\r=\indexdummyfont
\let\i=\indexdummyfont
\let\b=\indexdummyfont
\let\emph=\indexdummyfont
\let\strong=\indexdummyfont
\let\cite=\indexdummyfont
\let\sc=\indexdummyfont
\let\tclose=\indexdummyfont
\let\code=\indexdummyfont
\let\file=\indexdummyfont
\let\samp=\indexdummyfont
\let\kbd=\indexdummyfont
\let\key=\indexdummyfont
\let\var=\indexdummyfont
\let\TeX=\indexdummytex
\let\dots=\indexdummydots
}
{\catcode`\@=0 \catcode`\\=\other
@gdef@realbackslash{\}}
\let\indexbackslash=0
\let\SETmarginindex=\relax \def\doind #1#2{\ifx\SETmarginindex\relax\else\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}\fi{\count10=\lastpenalty {\indexdummies \escapechar=`\\{\let\folio=0\def\rawbackslashxx{\indexbackslash}{\indexnofonts
\xdef\temp1{#2}}\edef\temp{\write \csname#1indfile\endcsname{\realbackslash entry {\temp1}{\folio}{#2}}}\temp }}\penalty\count10}}
\def\dosubind #1#2#3{{\count10=\lastpenalty {\indexdummies \escapechar=`\\{\let\folio=0\def\rawbackslashxx{\indexbackslash}{\indexnofonts
\xdef\temp1{#2 #3}}\edef\temp{\write \csname#1indfile\endcsname{\realbackslash entry {\temp1}{\folio}{#2}{#3}}}\temp }}\penalty\count10}}
\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{ \tex
\dobreak \chapheadingskip {10000}
\catcode`\%=\other\catcode`\&=\other\catcode`\#=\other
\catcode`\$=\other
\catcode`\~=\other
\indexbreaks
\def\indexbackslash{\rawbackslashxx}
\indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt
\begindoublecolumns
\openin 1 \jobname.#1s
\ifeof 1
(Index is nonexistent)
\else
\read 1 to \temp
\ifeof 1
(Index is empty)
\else
\input \jobname.#1s
\fi
\fi
\closein 1
\enddoublecolumns
\Etex
}
\newskip\initialskipamount \initialskipamount 12pt plus4pt
\def\initial #1{{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
\ifdim\lastskip<\initialskipamount
\removelastskip \penalty-200 \vskip \initialskipamount\fi
\line{\secbf#1\hfill}\kern 2pt\penalty10000}}
\def\entry #1#2{\begingroup
\par
\parfillskip = 0in
\parskip = 0in
\finalhyphendemerits = 0
\hangindent=2em
\rightskip = 0pt plus1fil
\noindent
#1 \def\tempa{{\rm }} \def\tempb{#2} \edef\tempc{\tempa} \edef\tempd{\tempb} \ifx\tempc\tempd\ \else \hfil\penalty50
\null\nobreak\indexdotfill \ #2 \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 #2\par
}}
\catcode `\@=11
\newbox\partialpage
\newdimen\doublecolumnhsize
\def\begindoublecolumns{\begingroup
\output = {\global\setbox\partialpage
=\vbox{\unvbox255\kern -\topskip \kern \baselineskip}} \eject
\output={\doublecolumnout} \doublecolumnhsize = \hsize
\advance\doublecolumnhsize by -.04154\hsize
\divide\doublecolumnhsize by 2
\hsize = \doublecolumnhsize
\vsize = 2\vsize
\doublecolumnpagegoal
}
\def\enddoublecolumns{\eject \endgroup \pagegoal=\vsize \unvbox\partialpage}
\def\doublecolumnsplit{\splittopskip=\topskip \splitmaxdepth=\maxdepth
\global\dimen@=\pageheight \global\advance\dimen@ by-\ht\partialpage
\global\setbox1=\vsplit255 to\dimen@ \global\setbox0=\vbox{\unvbox1}
\global\setbox3=\vsplit255 to\dimen@ \global\setbox2=\vbox{\unvbox3}
\ifdim\ht0>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
\ifdim\ht2>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
}
\def\doublecolumnpagegoal{ \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@
}
\def\pagesofar{\unvbox\partialpage \hsize=\doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
\def\doublecolumnout{ \setbox5=\copy255
{\vbadness=10000 \doublecolumnsplit}
\ifvbox255
\setbox0=\vtop to\dimen@{\unvbox0}
\setbox2=\vtop to\dimen@{\unvbox2}
\onepageout\pagesofar \unvbox255 \penalty\outputpenalty
\else
\setbox0=\vbox{\unvbox5}
\ifvbox0
\dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
\divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth
{\vbadness=10000
\loop \global\setbox5=\copy0
\setbox1=\vsplit5 to\dimen@
\setbox3=\vsplit5 to\dimen@
\ifvbox5 \global\advance\dimen@ by1pt \repeat
\setbox0=\vbox to\dimen@{\unvbox1}
\setbox2=\vbox to\dimen@{\unvbox3}
\global\setbox\partialpage=\vbox{\pagesofar}
\doublecolumnpagegoal
}
\fi
\fi
}
\catcode `\@=\other
\message{sectioning,}
\newcount \chapno
\newcount \secno \secno=0
\newcount \subsecno \subsecno=0
\newcount \subsubsecno \subsubsecno=0
\newcount \appendixno \appendixno = `\@
\def\appendixletter{\char\the\appendixno}
\newwrite \contentsfile
\def\opencontents{\openout \contentsfile = \jobname.toc}
\def\thischapter{} \def\thissection{}
\def\seccheck#1{\if \pageno<0 \errmessage{@#1 not allowed after generating table of contents}\fi
}
\def\chapternofonts{\let\rawbackslash=\relax\let\frenchspacing=\relax\def\result{\realbackslash result}
\def\equiv{\realbackslash equiv}
\def\expansion{\realbackslash expansion}
\def\print{\realbackslash print}
\def\TeX{\realbackslash TeX}
\def\dots{\realbackslash dots}
\def\copyright{\realbackslash copyright}
\def\tt{\realbackslash tt}
\def\bf{\realbackslash bf }
\def\w{\realbackslash w}
\def\less{\realbackslash less}
\def\gtr{\realbackslash gtr}
\def\hat{\realbackslash hat}
\def\char{\realbackslash char}
\def\tclose##1{\realbackslash tclose {##1}}
\def\code##1{\realbackslash code {##1}}
\def\samp##1{\realbackslash samp {##1}}
\def\r##1{\realbackslash r {##1}}
\def\b##1{\realbackslash b {##1}}
\def\key##1{\realbackslash key {##1}}
\def\file##1{\realbackslash file {##1}}
\def\kbd##1{\realbackslash kbd {##1}}
\def\i##1{\realbackslash i {##1}}
\def\cite##1{\realbackslash cite {##1}}
\def\var##1{\realbackslash var {##1}}
\def\emph##1{\realbackslash emph {##1}}
\def\dfn##1{\realbackslash dfn {##1}}
}
\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{\seccheck{chapter}\secno=0 \subsecno=0 \subsubsecno=0
\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}\chapmacro {#1}{\the\chapno}\gdef\thissection{#1}\gdef\thischaptername{#1}\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}{\chapternofonts\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \donoderef \global\let\section = \numberedsec
\global\let\subsection = \numberedsubsec
\global\let\subsubsection = \numberedsubsubsec
}}
\outer\def\appendix{\parsearg\appendixyyy}
\def\appendixyyy #1{\apphead0{#1}} \def\appendixzzz #1{\seccheck{appendix}\secno=0 \subsecno=0 \subsubsecno=0
\global\advance \appendixno by 1 \message{Appendix \appendixletter}\chapmacro {#1}{\putwordAppendix{} \appendixletter}\gdef\thissection{#1}\gdef\thischaptername{#1}\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}{\chapternofonts\edef\temp{{\realbackslash chapentry
{#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \appendixnoderef \global\let\section = \appendixsec
\global\let\subsection = \appendixsubsec
\global\let\subsubsection = \appendixsubsubsec
}}
\outer\def\top{\parsearg\unnumberedyyy}
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} \def\unnumberedzzz #1{\seccheck{unnumbered}\secno=0 \subsecno=0 \subsubsecno=0
\toks0 = {#1}\message{(\the\toks0)}\unnumbchapmacro {#1}\gdef\thischapter{#1}\gdef\thissection{#1}{\chapternofonts\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \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{\seccheck{section}\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}{\chapternofonts\edef\temp{{\realbackslash secentry {#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \donoderef \penalty 10000 }}
\outer\def\appenixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} \def\appendixsectionzzz #1{\seccheck{appendixsection}\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}{\chapternofonts\edef\temp{{\realbackslash secentry {#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \appendixnoderef \penalty 10000 }}
\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
\def\unnumberedsecyyy #1{\unnmhead1{#1}} \def\unnumberedseczzz #1{\seccheck{unnumberedsec}\plainsecheading {#1}\gdef\thissection{#1}{\chapternofonts\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \unnumbnoderef \penalty 10000 }}
\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
\def\numberedsubsecyyy #1{\numhead2{#1}} \def\numberedsubseczzz #1{\seccheck{subsection}\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}{\chapternofonts\edef\temp{{\realbackslash subsecentry {#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \donoderef \penalty 10000 }}
\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
\def\appendixsubsecyyy #1{\apphead2{#1}} \def\appendixsubseczzz #1{\seccheck{appendixsubsec}\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}{\chapternofonts\edef\temp{{\realbackslash subsecentry {#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \appendixnoderef \penalty 10000 }}
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}\plainsecheading {#1}\gdef\thissection{#1}{\chapternofonts\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \unnumbnoderef \penalty 10000 }}
\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
\def\numberedsubsubsecyyy #1{\numhead3{#1}} \def\numberedsubsubseczzz #1{\seccheck{subsubsection}\gdef\thissection{#1}\global\advance \subsubsecno by 1 \subsubsecheading {#1}
{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\chapternofonts\edef\temp{{\realbackslash subsubsecentry {#1}
{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}
{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \donoderef \penalty 10000 }}
\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
\def\appendixsubsubsecyyy #1{\apphead3{#1}} \def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}\gdef\thissection{#1}\global\advance \subsubsecno by 1 \subsubsecheading {#1}
{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\chapternofonts\edef\temp{{\realbackslash subsubsecentry{#1} {\appendixletter}
{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \appendixnoderef \penalty 10000 }}
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}\plainsecheading {#1}\gdef\thissection{#1}{\chapternofonts\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}\escapechar=`\\\write \contentsfile \temp \unnumbnoderef \penalty 10000 }}
\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\secheadingi}
\def\subheading{\parsearg\subsecheadingi}
\def\subsubheading{\parsearg\subsubsecheadingi}
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt
\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\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
\def\CHAPPAGon{
\global\let\pchapsepmacro=\chappager
\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
\def\CHAPPAGodd{
\global\let\pchapsepmacro=\chapoddpage
\global\let\pagealignmacro=\chapoddpage
\global\def\HEADINGSon{\HEADINGSdouble}}
\CHAPPAGon
\def\CHAPFplain{
\global\let\chapmacro=\chfplain
\global\let\unnumbchapmacro=\unnchfplain}
\def\chfplain #1#2{ \pchapsepmacro
{ \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #2\enspace #1} } \bigskip
\penalty5000
}
\def\unnchfplain #1{\pchapsepmacro {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 10000 }
\CHAPFplain
\def\unnchfopen #1{\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 10000 }
\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\CHAPFopen{
\global\let\chapmacro=\chfopen
\global\let\unnumbchapmacro=\unnchfopen}
\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt
\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt
\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
\let\paragraphindent=\comment
\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}}
\def\plainsecheading #1{\secheadingi {#1}}
\def\secheadingi #1{{\advance \secheadingskip by \parskip \secheadingbreak}{\secfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
\def\subsecheading #1#2#3#4{\subsecheadingi {#2.#3.#4\enspace #1}}
\def\subsecheadingi #1{{\advance \subsecheadingskip by \parskip \subsecheadingbreak}{\subsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
\def\subsubsecfonts{\subsecfonts} \def\subsubsecheading #1#2#3#4#5{\subsubsecheadingi {#2.#3.#4.#5\enspace #1}}
\def\subsubsecheadingi #1{{\advance \subsecheadingskip by \parskip \subsecheadingbreak}{\subsubsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000}
\message{toc printing,}
\newskip\contentsrightmargin \contentsrightmargin=1in
\def\startcontents#1{ \pagealignmacro
\immediate\closeout \contentsfile
\ifnum \pageno>0
\pageno = -1 \fi
\unnumbchapmacro{#1}\def\thischapter{} \begingroup \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
\catcode`\^=7 \raggedbottom \advance\hsize by -\contentsrightmargin }
\outer\def\contents{ \startcontents{\putwordTableofContents} \input \jobname.toc
\endgroup
\vfill \eject
}
\outer\def\summarycontents{ \startcontents{\putwordShortContents} \let\chapentry = \shortchapentry
\let\unnumbchapentry = \shortunnumberedentry
\secfonts
\let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
\rm
\advance\baselineskip by 1pt \def\secentry ##1##2##3##4{}
\def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{}
\def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{}
\def\unnumbsubsubsecentry ##1##2{}
\input \jobname.toc
\endgroup
\vfill \eject
}
\let\shortcontents = \summarycontents
\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
\def\shortchapentry#1#2#3{ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}}
\setbox0 = \hbox{\shortcontrm \putwordAppendix }
\newdimen\shortappendixwidth \shortappendixwidth = \wd0
\def\shortchaplabel#1{ \setbox0 = \hbox{#1} \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
\advance\dimen0 by 1.1em
\hbox to \dimen0{#1\hfil}}
\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
\def\subsubsecentry#1#2#3#4#5#6{ \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
\newdimen\tocindent \tocindent = 3pc
\def\dochapentry#1#2{ \penalty-300 \vskip\baselineskip
\begingroup
\chapentryfonts
\tocentry{#1}{\dopageno{#2}} \endgroup
\nobreak\vskip .25\baselineskip
}
\def\dosecentry#1#2{\begingroup
\secentryfonts \leftskip=\tocindent
\tocentry{#1}{\dopageno{#2}}\endgroup}
\def\dosubsecentry#1#2{\begingroup
\subsecentryfonts \leftskip=2\tocindent
\tocentry{#1}{\dopageno{#2}}\endgroup}
\def\dosubsubsecentry#1#2{\begingroup
\subsubsecentryfonts \leftskip=3\tocindent
\tocentry{#1}{\dopageno{#2}}\endgroup}
\def\tocentry#1#2{\begingroup
\hyphenpenalty = 10000
\entry{\turnoffactive #1}{\turnoffactive #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,}
\newbox\dblarrowbox \newbox\longdblarrowbox
\newbox\pushcharbox \newbox\bullbox
\newbox\equivbox \newbox\errorbox
\let\ptexequiv = \equiv
\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}}
{\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 `\~=13 \let~=\tie
\catcode `\%=14
\catcode 43=12
\catcode`\"=12
\catcode`\==12
\catcode`\|=12
\catcode`\<=12
\catcode`\>=12
\escapechar=`\\
\let\~=\ptextilde
\let\{=\ptexlbrace
\let\}=\ptexrbrace
\let\.=\ptexdot
\let\*=\ptexstar
\let\dots=\ptexdots
\def\@{@}\let\bullet=\ptexbullet
\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl
\let\L=\ptexL
\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{{\advance\envskipamount by \parskip
\endgraf \ifdim\lastskip<\envskipamount
\removelastskip \penalty-50 \vskip\envskipamount \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
\long\def\cartouche{\begingroup
\lskip=\leftskip \rskip=\rightskip
\leftskip=0pt\rightskip=0pt \cartinner=\hsize \advance\cartinner by-\lskip
\advance\cartinner by-\rskip
\cartouter=\hsize
\advance\cartouter by 18pt \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 \singlespace
\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
\rawbackslash \gobble
}
\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp}
\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
\def\smalllispx{\begingroup
\nonfillstart
\let\Esmalllisp = \nonfillfinish
\let\Esmallexample = \nonfillfinish
\setleading{10pt} \indexfonts \tt
\rawbackslash \gobble
}
\def\display{\begingroup
\nonfillstart
\let\Edisplay = \nonfillfinish
\gobble
}
\def\format{\begingroup
\let\nonarrowing = t
\nonfillstart
\let\Eformat = \nonfillfinish
\gobble
}
\def\flushleft{\begingroup
\let\nonarrowing = t
\nonfillstart
\let\Eflushleft = \nonfillfinish
\gobble
}
\def\flushright{\begingroup
\let\nonarrowing = t
\nonfillstart
\let\Eflushright = \nonfillfinish
\advance\leftskip by 0pt plus 1fill
\gobble}
\def\quotation{ \begingroup\inENV {\parskip=0pt \aboveenvbreak} \singlespace
\parindent=0pt
\def\Equotation{\parskip = 0pt \nonfillfinish} \ifx\nonarrowing\relax
\advance\leftskip by \lispnarrowing
\advance\rightskip by \lispnarrowing
\exdentamount = \lispnarrowing
\let\nonarrowing = \relax
\fi
}
\message{defuns,}
\def\setdeffont #1 {\csname DEF#1\endcsname}
\newskip\defbodyindent \defbodyindent=.4in
\newskip\defargsindent \defargsindent=50pt
\newskip\deftypemargin \deftypemargin=12pt
\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`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&}
\def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}}
\def\defname #1#2{\dimen2=\leftskip
\advance\dimen2 by -\defbodyindent
\dimen3=\rightskip
\advance\dimen3 by -\defbodyindent
\noindent \setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}\dimen0=\hsize \advance \dimen0 by -\wd0 \dimen1=\hsize \advance \dimen1 by -\defargsindent \parshape 2 0in \dimen0 \defargsindent \dimen1 {\advance \hsize by -\dimen2 \advance \hsize by -\dimen3
\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}\tolerance=10000 \hbadness=10000
\advance\leftskip by -\defbodyindent
\exdentamount=\defbodyindent
{\df #1}\enskip }
\def\defparsebody #1#2#3{\begingroup\inENV\medbreak \def#1{\endgraf\endgroup\medbreak}\def#2{\begingroup\obeylines\activeparens\spacesplit#3}\parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup \catcode 61=\active \obeylines\activeparens\spacesplit#3}
\def\defmethparsebody #1#2#3#4 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}\parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}\def#2##1 ##2 {\def#4{##1}\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}\parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
\def\defvarparsebody #1#2#3{\begingroup\inENV\medbreak \def#1{\endgraf\endgroup\medbreak}\def#2{\begingroup\obeylines\spacesplit#3}\parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup \catcode 61=\active \obeylines\spacesplit#3}
\def\parsebodycommon#1#2#3{ \begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak} \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}} \parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines
}
\def\defvrparsebody#1#2#3#4 { \parsebodycommon{#1}{#2}{#3} \spacesplit{#3{#4}}}
\def\deftpparsebody #1#2#3#4 { \parsebodycommon{#1}{#2}{#3} \spacesplit{\parsetpheaderline{#3{#4}}}\empty
}
\def\removeemptybraces\empty#1\relax{\def\tptemp{#1}}
\def\parsetpheaderline#1#2#3{ \removeemptybraces#2\relax
#1{\tptemp}{#3}}
\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}\def#2##1 ##2 {\def#4{##1}\begingroup\obeylines\spacesplit{#3{##2}}}\parindent=0in
\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\spacesplit{#3{#5}}}
{\obeylines
\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{\ifx\relax #3#1{#2}{}\else #1{#2}{#3#4}\fi}}
\def\defunargs #1{\functionparens \sl
\hyphenchar\tensl=0
#1\hyphenchar\tensl=45
\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi\interlinepenalty=10000
\advance\rightskip by 0pt plus 1fil
\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
\def\deftypefunargs #1{\boldbraxnoamp
\tclose{#1}\interlinepenalty=10000
\advance\rightskip by 0pt plus 1fil
\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup \catcode 61=\other }
\def\defun{\defparsebody\Edefun\defunx\defunheader}
\def\defunheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{Function}\defunargs {#2}\endgroup \catcode 61=\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}{Function}\deftypefunargs {#3}\endgroup \catcode 61=\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 61=\other }
\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
\def\defmacheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{Macro}\defunargs {#2}\endgroup \catcode 61=\other }
\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
\def\defspecheader #1#2{\doind {fn}{\code{#1}}\begingroup\defname {#1}{Special Form}\defunargs {#2}\endgroup \catcode 61=\other }
\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
\def\defunx #1 {\errmessage{@defunx in invalid context}}
\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}}
\def\defop #1 {\def\defoptype{#1}\defopparsebody\Edefop\defopx\defopheader\defoptype}
\def\defopheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}\begingroup\defname {#2}{\defoptype{} on #1}\defunargs {#3}\endgroup }
\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
\def\defmethodheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}\begingroup\defname {#2}{Method on #1}\defunargs {#3}\endgroup }
\def\defcv #1 {\def\defcvtype{#1}\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
\def\defcvarheader #1#2#3{\dosubind {vr}{\code{#2}}{of #1}\begingroup\defname {#2}{\defcvtype{} of #1}\defvarargs {#3}\endgroup }
\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
\def\defivarheader #1#2#3{\dosubind {vr}{\code{#2}}{of #1}\begingroup\defname {#2}{Instance Variable of #1}\defvarargs {#3}\endgroup }
\def\defopx #1 {\errmessage{@defopx in invalid context}}
\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
\def\defvarargs #1{\normalparens #1\interlinepenalty=10000
\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
\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}{Variable}\defvarargs {#2}\endgroup }
\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
\def\defoptheader #1#2{\doind {vr}{\code{#1}}\begingroup\defname {#1}{User Option}\defvarargs {#2}\endgroup }
\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
\def\deftypevarheader #1#2{\doind {vr}{\code{#2}}\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}\interlinepenalty=10000
\endgraf\penalty 10000\vskip -\parskip\penalty 10000
\endgroup}
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
\def\deftypevrheader #1#2#3{\doind {vr}{\code{#3}}\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
\interlinepenalty=10000
\endgraf\penalty 10000\vskip -\parskip\penalty 10000
\endgroup}
\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
\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\deftpx #1 {\errmessage{@deftpx in invalid context}}
\message{cross reference,}
\newwrite \auxfile
\newif\ifhavexrefs \newif\ifwarnedxrefs
\def\setref#1{\dosetq{#1-title}{Ytitle}\dosetq{#1-pg}{Ypagenumber}\dosetq{#1-snt}{Ysectionnumberandtype}}
\def\unnumbsetref#1{\dosetq{#1-title}{Ytitle}\dosetq{#1-pg}{Ypagenumber}\dosetq{#1-snt}{Ynothing}}
\def\appendixsetref#1{\dosetq{#1-title}{Ytitle}\dosetq{#1-pg}{Ypagenumber}\dosetq{#1-snt}{Yappendixletterandtype}}
\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
\def\printedmanual{\ignorespaces #5} \def\printednodename{\ignorespaces #3} \setbox1=\hbox{\printedmanual} \setbox0=\hbox{\printednodename} \ifdim \wd0 = 0pt
\ifx\SETxref-automatic-section-title\relax \ifdim \wd1>0pt \def\printednodename{\ignorespaces #1} \else
\ifhavexrefs
\def\printednodename{\refx{#1-title}} \else
\def\printednodename{\ignorespaces #1} \fi \fi
\def\printednodename{#1-title} \else
\def\printednodename{\ignorespaces #1} \fi
\fi
\ifdim \wd1 > 0pt
\putwordsection{} ``\printednodename'' in \cite{\printedmanual} \else
{\turnoffactive \refx{#1-snt}{}} \space [\printednodename],\space
\turnoffactive \putwordpage\tie\refx{#1-pg}{} \fi
\endgroup}
\def\dosetq #1#2{{\let\folio=0 \turnoffactive \auxhat\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}\next}}
\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
\def\Ypagenumber{\folio}
\def\Ytitle{\thissection}
\def\Ynothing{}
\def\Ysectionnumberandtype{\ifnum\secno=0 \putwordChapter\xreftie\the\chapno \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno \else \ifnum \subsubsecno=0 \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno \else \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi \fi \fi }
\def\Yappendixletterandtype{\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno \else \ifnum \subsubsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi \fi \fi }
\gdef\xreftie{'tie}
\ifx\inputlineno\thisisundefined
\let\linenumber = \empty \else
\def\linenumber{\the\inputlineno:\space}
\fi
\def\refx#1#2{ \expandafter\ifx\csname X#1\endcsname\relax
$\langle$un\-de\-fined$\rangle$ \ifhavexrefs
\message{\linenumber Undefined cross reference `#1'.} \else
\ifwarnedxrefs\else
\global\warnedxrefstrue
\message{Cross reference values unknown; you must run TeX again.} \fi
\fi
\else
\csname X#1\endcsname
\fi
#2}
\def\xrdef #1#2{
{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}}
\def\readauxfile{\begingroup
\catcode `\^^@=\other
\catcode `\=\other
\catcode `\=\other
\catcode `\^^C=\other
\catcode `\^^D=\other
\catcode `\^^E=\other
\catcode `\^^F=\other
\catcode `\^^G=\other
\catcode `\^^H=\other
\catcode `\=\other
\catcode `\^^L=\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 26=\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 43=\other
{ \count 1=128
\def\loop{ \catcode\count 1=\other
\advance\count 1 by 1
\ifnum \count 1<256 \loop \fi
}}\catcode `\{=1 \catcode `\}=2
\catcode `\%=\other
\catcode `\'=0
\catcode`\^=7 \catcode `\\=\other
\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
\footnotezzz
}
\long\gdef\footnotezzz#1{\insert\footins{ \interlinepenalty\interfootnotelinepenalty
\splittopskip\ht\strutbox \splitmaxdepth\dp\strutbox
\floatingpenalty\@MM
\leftskip\z@skip
\rightskip\z@skip
\spaceskip\z@skip
\xspaceskip\z@skip
\parindent\defaultparindent
\hang
\textindent{\thisfootno} \footstrut
#1\strut}}
}
\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\|{ \leavevmode
\vadjust{ \vskip-\baselineskip
\llap{ \vrule height\baselineskip width1pt
\hskip 12pt
} }}
\def\finalout{\overfullrule=0pt}
\message{and turning on texinfo input format.}
\def\openindices{ \newindex{cp} \newcodeindex{fn} \newcodeindex{vr} \newcodeindex{tp} \newcodeindex{ky} \newcodeindex{pg}}
\newdimen\defaultparindent \defaultparindent = 15pt
\parindent = \defaultparindent
\parskip 18pt plus 1pt
\setleading{15pt}
\advance\topskip by 1.2cm
\vbadness=10000
\widowpenalty=10000
\clubpenalty=10000
\ifx\emergencystretch\thisisundefined
\def\emergencystretch{\dimen0}\else
\emergencystretch = \hsize
\divide\emergencystretch by 45
\fi
\def\smallbook{
\global\secheadingskip = 17pt plus 6pt minus 3pt
\global\subsecheadingskip = 14pt plus 6pt minus 3pt
\global\lispnarrowing = 0.3in
\setleading{12pt}
\advance\topskip by -1cm
\global\parskip 3pt plus 1pt
\global\hsize = 5in
\global\vsize=7.5in
\global\tolerance=700
\global\hfuzz=1pt
\global\contentsrightmargin=0pt
\global\deftypemargin=0pt
\global\defbodyindent=.5cm
\global\pagewidth=\hsize
\global\pageheight=\vsize
\global\let\smalllisp=\smalllispx
\global\let\smallexample=\smalllispx
\global\def\Esmallexample{\Esmalllisp}
}
\def\afourpaper{
\global\tolerance=700
\global\hfuzz=1pt
\setleading{12pt}
\global\parskip 15pt plus 1pt
\global\vsize= 53\baselineskip
\advance\vsize by \topskip
\global\hsize= 6.5in
\global\outerhsize=\hsize
\global\advance\outerhsize by 0.5in
\global\outervsize=\vsize
\global\advance\outervsize by 0.6in
\global\pagewidth=\hsize
\global\pageheight=\vsize
}
\def\changepagesizes#1#2#3#4#5{
\global\vsize= #1
\advance\vsize by \topskip
\global\voffset= #3
\global\hsize= #2
\global\outerhsize=\hsize
\global\advance\outerhsize by 0.5in
\global\outervsize=\vsize
\global\advance\outervsize by 0.6in
\global\pagewidth=\hsize
\global\pageheight=\vsize
\global\normaloffset= #4
\global\bindingoffset= #5}
\def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}}
\def\afourwide{\afourpaper
\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}}
\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\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
\catcode`\"=\active
\def\activedoublequote{{\tt \char '042}}
\let"=\activedoublequote
\catcode`\~=\active
\def~{{\tt \char '176}}
\chardef\hat=`\^
\catcode`\^=\active
\def\auxhat{\def^{'hat}}
\def^{{\tt \hat}}
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}}
\def\lvvmode{\vbox to 0pt{}}
\catcode`\|=\active
\def|{{\tt \char '174}}
\chardef \less=`\<
\catcode`\<=\active
\def<{{\tt \less}}
\chardef \gtr=`\>
\catcode`\>=\active
\def>{{\tt \gtr}}
\catcode`\+=\active
\def+{{\tt \char 43}}
{\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 }}
\def\normalbackslash{{\tt\rawbackslashxx}}
\escapechar=`\@
\catcode`\\=\active
@def@turnoffactive{@let"=@normaldoublequote
@let\=@realbackslash
@let~=@normaltilde
@let^=@normalcaret
@let_=@normalunderscore
@let|=@normalverticalbar
@let<=@normalless
@let>=@normalgreater
@let+=@normalplus}
@def@normalturnoffactive{@let"=@normaldoublequote
@let\=@normalbackslash
@let~=@normaltilde
@let^=@normalcaret
@let_=@normalunderscore
@let|=@normalverticalbar
@let<=@normalless
@let>=@normalgreater
@let+=@normalplus}
@otherifyactive
@gdef@eatinput input texinfo{@fixbackslash}
@global@let\ = @eatinput
@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
@catcode`+=@active @catcode`@_=@active}
@catcode`@$=@other @catcode`@
@textfonts
@rm
@c Local variables:
@c page-delimiter: "^\\\\message"
@c End: