%% 
%% This is file `latex2e.ltx', generated 
%% on <1994/1/30> with the docstrip utility (2.2c).
%% 
%% The original source files were:
%% 
%% dircheck.dtx  (with options: `initex,2ekernel,dircheck')
%% lplain.dtx 
%% latex.dtx  (with options: `code')
%% docclass.dtx 
%% lhyphen.dtx  (with options: `2ekernel')
%% dump.dtx  (with options: `code')
%% 
%% Copyright (C) 1993 by LaTeX3 project. All rights reserved. 
%% For additional copyright information see further down in this file. 
%% 
%% This file is part of the LaTeX2e system. 
%% ---------------------------------------- 
%% 
%% This system is distributed in the hope that it will be useful, 
%% but WITHOUT ANY WARRANTY; without even the implied warranty of 
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
%% 
%% 
%% IMPORTANT NOTICE: 
%% 
%% For error reports in case of UNCHANGED versions see readme files. 
%% 
%% Please do not request updates from us directly. Distribution is 
%% done through Mail-Servers and TeX organizations. 
%% 
%% You are not allowed to change this file. 
%% 
%% You are allowed to distribute this file under the condition that 
%% it is distributed together with all files mentioned in 00readme.l2e. 
%% 
%% If you receive only some of these files from someone, complain! 
%% 
%% You are NOT ALLOWED to distribute this file alone. You are NOT 
%% ALLOWED to take money for the distribution or use of either this 
%% file or a changed version, except for a nominal charge for copying 
%% etc. 
%%% ====================================================================
%%%  @LaTeX-file{
%%%     author_1        = "David Carlisle",
%%%     version         = "0.2c",
%%%     date            = "20 December 1993,
%%%     time            = "17:51:47 GMT,
%%%     filename        = "dircheck.dtx",
%%%     address_1       = "Computer Science Department
%%%                        Manchester University
%%%                        Oxford Road
%%%                        Manchester
%%%                        England
%%%                        M13 9PL",
%%%     checksum        = "46381 2485 8605 79037",
%%%     email_1         = "carlisle@cs.man.ac.uk (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "LaTeX,initialisation
%%%     supported       = "yes",
%%%     docstring       = "
%%%     System dependent initialisations for LaTeX2e
%%%     This file controls the definitions of the macros
%%%     \@currdir \input@path and \filename@parse",
%%%  }
%%% ====================================================================
\catcode`\{=1
\catcode`\}=2
\catcode`\#=6
\catcode`\^=7
\chardef\active=13
\catcode`\@=11
\countdef\count@=255
\let\bgroup={ \let\egroup=}
\let\@@input\input
\let\@@end\end
\chardef\@inputcheck0
\chardef\sixt@@n=16
\newlinechar`\^^J
\def\typeout{\immediate\write17}
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  \do\#\do\^\do\_\do\%\do\~}
\def\@makeother#1{\catcode`#1=12\relax}
\def\space{ }
\def\@tempswafalse{\let\if@tempswa\iffalse}
\def\@tempswatrue{\let\if@tempswa\iftrue}
\let\if@tempswa\iffalse
\def\loop#1\repeat{\def\body{#1}\iterate}
\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
\let\repeat\fi
\def\fileversion{0.2c}
\def\filedate{1993/12/17}
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
\def\@empty{}
\catcode`\%=12
\def\@percentchar{%}
\catcode`\%=14
\let\@currdir\@undefined
\let\input@path\@undefined
\let\filename@parse\@undefined
\def\strip@meaning#1>{}
\typeout{^^J***^^J%
Inputting the system configuration file texsys.cfg.^^J%
If TeX now produces the line : ! I can't find file `texsys.cfg'.^^J%
Then somethong is wrong with your installation.^^J%
texsys.cfg should have been produced by the first `docstrip' phase,^^J%
and possibly later edited by you to match the current system.^^J%
***}
\input texsys.cfg
\typeout{***^^Jtexsys.cfg loaded.}
\begingroup
\catcode`\^^M=\active%
\gdef\@copytexsys{{%
\global\let\@copytexsys\@undefined%
\immediate\closeout15 %
\immediate\openout15=texsys.new %
\endlinechar`\^^M%
  \def\peek{\ifx\@tempa\peek\else\expandafter\writeline\fi}%
  \let\do\@makeother\dospecials%
  \catcode`\^^M=\active%
  \def\writeline##1^^M{%
    \immediate\write15{##1}\futurelet\@tempa\peek}%
  \expandafter\writeline\@@input texsys.cfg %
  \peek}}%
\endgroup
\begingroup
\count@\time
\divide\count@ 60
\count2=-\count@
\multiply\count2 60
\advance\count2 \time
\edef\stamp{%
  \the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
    \two@digits{\the\count@}:\two@digits{\the\count2}}
\immediate\openout15=texsys.new
\immediate\write15{\stamp^^J}
\immediate\closeout15 %
\def\test#1#2#3{%
  \openin\@inputcheck#1 %
  \ifeof\@inputcheck
    \typeout{^^J#1 not found}%
     #3\relax
  \else
    \read\@inputcheck to \@tempa
    \ifx\@tempa\stamp
      \typeout{^^J#1 found}#2\relax
    \else
      \typeout{BAD: old file \@tempa (should be \stamp)}%
      #3\relax
    \fi
  \fi
  \closein\@inputcheck}
\bgroup
\endlinechar=-1
\ifx\@currdir\@undefined
  \test{./texsys.new}{\gdef\@currdir{./}}{}
  \test{[]texsys.new}{\gdef\@currdir{[]}}{}
  \test{:texsys.new}{\gdef\@currdir{:}}{}
  \ifx\@currdir\@undefined
    \global\let\@currdir\@empty
    \typeout{^^J***^^J%
      No syntax for the current directory could be found^^J%
      ***}%
  \fi
  \@copytexsys
  \immediate\write15{%
   ^^J\@percentchar\@percentchar\space\string\@currdir\space%
   <\stamp>^^J%
   \string\def\string\@currdir%
     {\expandafter\strip@meaning\meaning\@currdir}}%
\else
  \expandafter\test\expandafter{\@currdir texsys.new }{}{%
    \edef\@tempa{\errhelp{%
      texsys.cfg specifies the current directory syntax to be^^J%
      \meaning\@currdir^^J%
      but this does not work on this system.^^J%
      Remove texsys.cfg and restart.}}\@tempa
    \errmessage{Bad texsys.cfg file: \noexpand\@currdir}\@@end}
  \@copytexsys
\fi
\egroup
\typeout{^^J***^^J%
         \noexpand\@currdir set to:
           \expandafter\strip@meaning\meaning\@currdir.^^J%
         ***}
\ifx\input@path\@undefined
  \typeout{^^J***^^J%
    Assuming \noexpand\openin and \noexpand\input^^J%
    have the same search path.^^J%
    ***^^J}
\else
  \typeout{^^J***^^J%
    Assuming \noexpand\openin and \noexpand\input^^J%
    have different  search paths.^^J%
    LaTeX will use the path specified by \noexpand\input@path:^^J%
    ***}
  \def\@tempc{\relax}
  \def\@tempd{
    \errhelp{%
      texsys.cfg specifies \input@path^^J%
      but {} does not appear as an entry in the path.^^J%
      Edit texsys.cfg and restart.}%
    \errmessage{Bad texsys.cfg file: \noexpand\input@path}\@@end
  \let\@tempd\relax}
  \def\@tempa#1{%
   \def\@tempb{#1}\ifx\@tempb\@tempc\else
   \ifx\@tempb\@empty\let\@tempd\relax\fi
   \typeout{{\expandafter\strip@meaning\meaning\@tempb}}%
   \expandafter\@tempa
  \fi}
  \expandafter\@tempa\input@path\relax
  \typeout{***^^J}
  \@tempd
\fi
\endgroup
\ifx\filename@parse\@undefined
  \def\@tempa{./}\ifx\@currdir\@tempa
    \typeout{^^J***^^JDefining UNIX/DOS style filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \let\filename@base\@empty
      \let\filename@ext\relax
      \expandafter\filename@path#1/\\}
    \def\filename@path#1/#2\\{%
      \ifx\\#2\\%
         \def\@tempa{\filename@simple#1.\\}%
      \else
         \edef\filename@area{\filename@area#1/}%
         \def\@tempa{\filename@path#2\\}%
      \fi
      \@tempa}
  \else\def\@tempa{[]}\ifx\@currdir\@tempa
    \typeout{^^J***^^JDefining VMS style filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \let\filename@base\@empty
      \let\filename@ext\relax
      \expandafter\filename@path#1]\\}
    \def\filename@path#1]#2\\{%
      \ifx\\#2\\%
         \def\@tempa{\filename@simple#1.\\}%
      \else
         \edef\filename@area{\filename@area#1]}%
         \def\@tempa{\filename@path#2\\}%
      \fi
      \@tempa}
  \else
    \typeout{^^J***^^JDefining generic filename parser.^^J***}
    \def\filename@parse#1{%
      \let\filename@area\@empty
      \let\filename@base\@empty
      \let\filename@ext\relax
      \expandafter\filename@simple#1.\\}
  \fi\fi
  \def\filename@simple#1.#2\\{%
    \ifx\\#2\\%
    \else
       \edef\filename@ext{\filename@dot#2\\}%
    \fi
    \edef\filename@base{#1}}
  \def\filename@dot#1.\\{#1}
\else
  \typeout{^^J***^^J%
    \noexpand\filename@parse was defined in texsys.cfg:^^J%
    \expandafter\strip@meaning\meaning\filename@parse.^^J%
    ***}
\fi

%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
\catcode`\{=1 % left brace is begin-group character
\catcode`\}=2 % right brace is end-group character
\catcode`\$=3 % dollar sign is math shift
\catcode`\&=4 % ampersand is alignment tab
\catcode`\#=6 % hash mark is macro parameter character
\catcode`\^=7 % circumflex and uparrow are for superscripts
\catcode`\_=8 % underline and downarrow are for subscripts
\catcode`\^^I=10 % ascii tab is a blank space
\chardef\active=13 \catcode`\~=\active % tilde is active
\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par"
\message{Preloading the plain format: codes,}
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  \do\#\do\^\do\_\do\%\do\~}
\catcode`@=11
\mathcode`\ ="8000 % \space
\mathcode`\!="5021
\mathcode`\'="8000 % ^\prime
\mathcode`\(="4028
\mathcode`\)="5029
\mathcode`\*="2203 % \ast
\mathcode`\+="202B
\mathcode`\,="613B
\mathcode`\-="2200
\mathcode`\.="013A
\mathcode`\/="013D
\mathcode`\:="303A
\mathcode`\;="603B
\mathcode`\<="313C
\mathcode`\=="303D
\mathcode`\>="313E
\mathcode`\?="503F
\mathcode`\[="405B
\mathcode`\\="026E % \backslash
\mathcode`\]="505D
\mathcode`\_="8000 % \_
\mathcode`\{="4266
\mathcode`\|="026A
\mathcode`\}="5267
\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
\delcode`\(="028300
\delcode`\)="029301
\delcode`\[="05B302
\delcode`\]="05D303
\delcode`\<="26830A
\delcode`\>="26930B
\delcode`\/="02F30E
\delcode`\|="26A30C
\delcode`\\="26E30F
\chardef\@ne=1
\chardef\tw@=2
\chardef\thr@@=3
\chardef\sixt@@n=16
\chardef\@cclv=255
\mathchardef\@cclvi=256
\mathchardef\@m=1000
\mathchardef\@M=10000
\mathchardef\@MM=20000
\message{registers,}
\count10=22 % allocates \count registers 23, 24, ...
\count11=9 % allocates \dimen registers 10, 11, ...
\count12=9 % allocates \skip registers 10, 11, ...
\count13=9 % allocates \muskip registers 10, 11, ...
\count14=9 % allocates \box registers 10, 11, ...
\count15=9 % allocates \toks registers 10, 11, ...
\count16=-1 % allocates input streams 0, 1, ...
\count17=-1 % allocates output streams 0, 1, ...
\count18=3 % allocates math families 4, 5, ...
\count19=0 % allocates \language codes 1, 2, ...
\count20=255 % allocates insertions 254, 253, ...
\countdef\insc@unt=20 % the insertion counter
\countdef\allocationnumber=21 % the most recent allocation
\countdef\m@ne=22 \m@ne=-1 % a handy constant
\def\wlog{\immediate\write\m@ne} % write on log file (only)
\countdef\count@=255
\dimendef\dimen@=0
\dimendef\dimen@i=1 % global only
\dimendef\dimen@ii=2
\skipdef\skip@=0
\toksdef\toks@=0
\def\newcount{\alloc@0\count\countdef\insc@unt}
\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt}
\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
\outer\def\newbox{\alloc@4\box\chardef\insc@unt}
\let\newtoks=\relax % we do this to allow plain.tex to be read in twice
\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n}
\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi}
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  \ch@ck#1#4#2% make sure there's still room
  \allocationnumber=\count1#1%
  \global#3#5=\allocationnumber
  \wlog{\string#5=\string#2\the\allocationnumber}}
\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne
  \ch@ck0\insc@unt\count
  \ch@ck1\insc@unt\dimen
  \ch@ck2\insc@unt\skip
  \ch@ck4\insc@unt\box
  \allocationnumber=\insc@unt
  \global\chardef#1=\allocationnumber
  \wlog{\string#1=\string\insert\the\allocationnumber}}
\def\ch@ck#1#2#3{\ifnum\count1#1<#2%
  \else\errmessage{No room for a new #3}\fi}
\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
\newskip\@centering \@centering=0pt plus 1000pt minus 1000pt
\newdimen\p@ \p@=1pt % this saves macro space and time
\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
\newskip\z@skip \z@skip=0pt plus0pt minus0pt
\newbox\voidb@x % permanently void box register
\outer\def\newif#1{\count@\escapechar \escapechar\m@ne
  \expandafter\expandafter\expandafter
   \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
  \expandafter\expandafter\expandafter
   \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
  \@if#1{false}\escapechar\count@} % the condition starts out false
\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}
{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
\message{compatibility for TeX 2, }
\ifx\undefined\inputlineno
  \newcount\inputlineno
  \inputlineno-1               % this could be used to detect that
                               % an old TeX is in force
  \ifx\undefined\language      % extra test for MLTeX 2, RmS 91/11/07
    \newcount\language
  \fi
  \newcount\lefthyphenmin
  \newcount\righthyphenmin
  \newcount\errorcontextlines
  \newcount\holdinginserts
  \newdimen\emergencystretch
  \newcount\badness
  \let\noboundary\relax
  \newcount\setlanguage
\fi
\message{parameters,}
\pretolerance=100
\tolerance=200 % INITEX sets this to 10000
\hbadness=1000
\vbadness=1000
\linepenalty=10
\hyphenpenalty=50
\exhyphenpenalty=50
\binoppenalty=700
\relpenalty=500
\clubpenalty=150
\widowpenalty=150
\displaywidowpenalty=50
\brokenpenalty=100
\predisplaypenalty=10000
\doublehyphendemerits=10000
\finalhyphendemerits=5000
\adjdemerits=10000
\tracinglostchars=1
\uchyph=1
\defaulthyphenchar=`\-
\defaultskewchar=-1
\newlinechar=-1
\delimiterfactor=901
\showboxbreadth=5
\showboxdepth=3
\errorcontextlines=5
\hfuzz=0.1pt
\vfuzz=0.1pt
\overfullrule=5pt
\hsize=6.5in
\vsize=8.9in
\maxdepth=4pt
\splitmaxdepth=\maxdimen
\boxmaxdepth=\maxdimen
\delimitershortfall=5pt
\nulldelimiterspace=1.2pt
\scriptspace=0.5pt
\parindent=20pt
\parskip=0pt plus 1pt
\abovedisplayskip=12pt plus 3pt minus 9pt
\abovedisplayshortskip=0pt plus 3pt
\belowdisplayskip=12pt plus 3pt minus 9pt
\belowdisplayshortskip=7pt plus 3pt minus 4pt
\topskip=10pt
\splittopskip=10pt
\parfillskip=0pt plus 1fil
\thinmuskip=3mu
\medmuskip=4mu plus 2mu minus 4mu
\thickmuskip=5mu plus 5mu
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt
\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt
\newskip\normalbaselineskip \normalbaselineskip=12pt
\newskip\normallineskip \normallineskip=1pt
\newdimen\normallineskiplimit \normallineskiplimit=0pt
\newdimen\jot \jot=3pt
\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
\def\magstephalf{1095 }
\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}
%% Additional \preloaded fonts can be specified here.
%% (And those that were \preloaded above can be eliminated.)
\message{macros,}
\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
  \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
  \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
\def\normalbaselines{\lineskip\normallineskip
  \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
\def\^^M{\ } % control <return> = control <space>
\def\^^I{\ } % same for <tab>
\def\lq{`} \def\rq{'}
\def\lbrack{[} \def\rbrack{]}
\let\endgraf=\par \let\endline=\cr
\def\space{ }
\def\empty{}
\def\null{\hbox{}}
\let\bgroup={ \let\egroup=}
{\catcode`\^^M=\active % these lines must end with %
  \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
  \global\let^^M\par} % this is in case ^^M appears in a \write
\def\obeyspaces{\catcode`\ \active}
{\obeyspaces\global\let =\space}
\def\loop#1\repeat{\def\body{#1}\iterate}
\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
\let\repeat=\fi % this makes \loop...\if...\repeat skippable
\def\thinspace{\kern .16667em }
\def\negthinspace{\kern-.16667em }
\def\enspace{\kern.5em }
\def\enskip{\hskip.5em\relax}
\def\quad{\hskip1em\relax}
\def\qquad{\hskip2em\relax}
\def\smallskip{\vskip\smallskipamount}
\def\medskip{\vskip\medskipamount}
\def\bigskip{\vskip\bigskipamount}
\def\nointerlineskip{\prevdepth-1000\p@}
\def\offinterlineskip{\baselineskip-1000\p@
  \lineskip\z@ \lineskiplimit\maxdimen}
\def\vglue{\afterassignment\vgl@\skip@=}
\def\vgl@{\par \dimen@\prevdepth \hrule height\z@
  \nobreak\vskip\skip@ \prevdepth\dimen@}
\def\hglue{\afterassignment\hgl@\skip@=}
\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@
  \nobreak\hskip\skip@ \spacefactor\count@}
\def~{\penalty\@M \ } % tie
\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
\def\break{\penalty-\@M}
\def\nobreak{\penalty \@M}
\def\allowbreak{\penalty \z@}
\def\filbreak{\par\vfil\penalty-200\vfilneg}
\def\goodbreak{\par\penalty-500 }
\def\eject{\par\break}
\def\supereject{\par\penalty-\@MM}
\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
  \removelastskip\penalty-50\smallskip\fi}
\def\medbreak{\par\ifdim\lastskip<\medskipamount
  \removelastskip\penalty-100\medskip\fi}
\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
  \removelastskip\penalty-200\bigskip\fi}
\def\@@line{\hbox to\hsize}
\def\leftline#1{\@@line{#1\hss}}
\def\rightline#1{\@@line{\hss#1}}
\def\centerline#1{\@@line{\hss#1\hss}}
\def\rlap#1{\hbox to\z@{#1\hss}}
\def\llap#1{\hbox to\z@{\hss#1}}
\def\m@th{\mathsurround=\z@}
\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
  \m@th \underline{\box\z@}$}
\newbox\strutbox
\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}
\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out
\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
\newcount\mscount
\def\multispan#1{\omit \mscount#1\relax
  \loop\ifnum\mscount>\@ne \sp@n\repeat}
\def\sp@n{\span\omit\advance\mscount\m@ne}
\def\hang{\hangindent\parindent}
\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
\def\item{\par\hang\textindent}
%% RmS 91/11/04: Removed \itemitem since never needed/useful on LaTeX.
\def\narrower{\advance\leftskip\parindent
  \advance\rightskip\parindent}
\outer\def\proclaim #1. #2\par{\medbreak
  \noindent{\bf#1.\enspace}{\sl#2\par}%
  \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only
\chardef\%=`\%
\chardef\&=`\&
\chardef\#=`\#
\chardef\$=`\$
\chardef\ss="19
\chardef\ae="1A
\chardef\oe="1B
\chardef\o="1C
\chardef\AE="1D
\chardef\OE="1E
\chardef\O="1F
\chardef\i="10 \chardef\j="11 % dotless letters
\def\aa{\accent23a}
\def\l{\char32l}
\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex%
  \rlap{\raise.67\dimen@\hbox{\char'27}}A}
\def\mathhexbox#1#2#3{\leavevmode
  \hbox{$\m@th \mathchar"#1#2#3$}}
\def\dag{\mathhexbox279}
\def\ddag{\mathhexbox27A}
\def\S{\mathhexbox278}
\def\P{\mathhexbox27B}
\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
  \ialign{##\crcr#1\crcr}}} % put characters over each other
\def\ooalign{\lineskiplimit-\maxdimen \oalign}
\def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
  \kern-.0156\dimen\z@} % compensate for slant in lowered accents
\def\pd#1{\oalign{#1\crcr\hidewidth\sh@ft{08}.\hidewidth}}
\def\d{\protect\pd}
\def\pb#1{\oalign{#1\crcr\hidewidth\sh@ft{29}%
    \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
\def\b{\protect\pb}
\def\pc#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
  \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi}
\def\c{\protect\pc}
\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}}
\def\dots{\ldots}
\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
\def\`#1{{\accent18 #1}}
\def\'#1{{\accent19 #1}}
\def\v#1{{\accent20 #1}}
\def\u#1{{\accent21 #1}}
\def\=#1{{\accent22 #1}}
\def\^#1{{\accent94 #1}}
\def\.#1{{\accent95 #1}}
\def\H#1{{\accent125 #1}}
\def\~#1{{\accent126 #1}}
\def\"#1{{\accent127 #1}}
\def\pt#1{{\edef\next{\the\font}\the\textfont1\accent127\next#1}}
\def\t{\protect\pt}
\def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
\def\dotfill{\leavevmode\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@}
\def\rightarrowfill{$\m@th\mathord-\mkern-6mu%
  \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord\rightarrow$}
\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
  \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord-$}
\mathchardef\braceld="37A \mathchardef\bracerd="37B
\mathchardef\bracelu="37C \mathchardef\braceru="37D
\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru
  \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$}
\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd
  \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$}
\message{math definitions,}
\let\sp=^ \let\sb=_
\def\,{\mskip\thinmuskip}
\def\>{\mskip\medmuskip}
\def\;{\mskip\thickmuskip}
\def\!{\mskip-\thinmuskip}
\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
\def\prim@s{\prime\futurelet\next\pr@m@s}
\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t
  \else\let\nxt\egroup\fi\fi \nxt}
\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
\mathchardef\alpha="010B
\mathchardef\beta="010C
\mathchardef\gamma="010D
\mathchardef\delta="010E
\mathchardef\epsilon="010F
\mathchardef\zeta="0110
\mathchardef\eta="0111
\mathchardef\theta="0112
\mathchardef\iota="0113
\mathchardef\kappa="0114
\mathchardef\lambda="0115
\mathchardef\mu="0116
\mathchardef\nu="0117
\mathchardef\xi="0118
\mathchardef\pi="0119
\mathchardef\rho="011A
\mathchardef\sigma="011B
\mathchardef\tau="011C
\mathchardef\upsilon="011D
\mathchardef\phi="011E
\mathchardef\chi="011F
\mathchardef\psi="0120
\mathchardef\omega="0121
\mathchardef\varepsilon="0122
\mathchardef\vartheta="0123
\mathchardef\varpi="0124
\mathchardef\varrho="0125
\mathchardef\varsigma="0126
\mathchardef\varphi="0127
\mathchardef\Gamma="7000
\mathchardef\Delta="7001
\mathchardef\Theta="7002
\mathchardef\Lambda="7003
\mathchardef\Xi="7004
\mathchardef\Pi="7005
\mathchardef\Sigma="7006
\mathchardef\Upsilon="7007
\mathchardef\Phi="7008
\mathchardef\Psi="7009
\mathchardef\Omega="700A
\mathchardef\aleph="0240
\def\hbar{{\mathchar'26\mkern-9muh}}
\mathchardef\imath="017B
\mathchardef\jmath="017C
\mathchardef\ell="0160
\mathchardef\wp="017D
\mathchardef\Re="023C
\mathchardef\Im="023D
\mathchardef\partial="0140
\mathchardef\infty="0231
\mathchardef\prime="0230
\mathchardef\emptyset="023B
\mathchardef\nabla="0272
\def\surd{{\mathchar"1270}}
\mathchardef\top="023E
\mathchardef\bot="023F
\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
      \not\mathrel{\mkern14mu}\crcr
      \noalign{\nointerlineskip}
      \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
\mathchardef\triangle="0234
\mathchardef\forall="0238
\mathchardef\exists="0239
\mathchardef\neg="023A \let\lnot=\neg
\mathchardef\flat="015B
\mathchardef\natural="015C
\mathchardef\sharp="015D
\mathchardef\clubsuit="027C
\mathchardef\diamondsuit="027D
\mathchardef\heartsuit="027E
\mathchardef\spadesuit="027F
\mathchardef\coprod="1360
\mathchardef\bigvee="1357
\mathchardef\bigwedge="1356
\mathchardef\biguplus="1355
\mathchardef\bigcap="1354
\mathchardef\bigcup="1353
\mathchardef\intop="1352 \def\int{\intop\nolimits}
\mathchardef\prod="1351
\mathchardef\sum="1350
\mathchardef\bigotimes="134E
\mathchardef\bigoplus="134C
\mathchardef\bigodot="134A
\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
\mathchardef\bigsqcup="1346
\mathchardef\smallint="1273
\mathchardef\triangleleft="212F
\mathchardef\triangleright="212E
\mathchardef\bigtriangleup="2234
\mathchardef\bigtriangledown="2235
\mathchardef\wedge="225E \let\land=\wedge
\mathchardef\vee="225F \let\lor=\vee
\mathchardef\cap="225C
\mathchardef\cup="225B
\mathchardef\ddagger="227A
\mathchardef\dagger="2279
\mathchardef\sqcap="2275
\mathchardef\sqcup="2274
\mathchardef\uplus="225D
\mathchardef\amalg="2271
\mathchardef\diamond="2205
\mathchardef\bullet="220F
\mathchardef\wr="226F
\mathchardef\div="2204
\mathchardef\odot="220C
\mathchardef\oslash="220B
\mathchardef\otimes="220A
\mathchardef\ominus="2209
\mathchardef\oplus="2208
\mathchardef\mp="2207
\mathchardef\pm="2206
\mathchardef\circ="220E
\mathchardef\bigcirc="220D
\mathchardef\setminus="226E % for set difference A\setminus B
\mathchardef\cdot="2201
\mathchardef\ast="2203
\mathchardef\times="2202
\mathchardef\star="213F
\mathchardef\propto="322F
\mathchardef\sqsubseteq="3276
\mathchardef\sqsupseteq="3277
\mathchardef\parallel="326B
\mathchardef\mid="326A
\mathchardef\dashv="3261
\mathchardef\vdash="3260
\mathchardef\nearrow="3225
\mathchardef\searrow="3226
\mathchardef\nwarrow="322D
\mathchardef\swarrow="322E
\mathchardef\Leftrightarrow="322C
\mathchardef\Leftarrow="3228
\mathchardef\Rightarrow="3229
\def\neq{\not=} \let\ne=\neq
\mathchardef\leq="3214 \let\le=\leq
\mathchardef\geq="3215 \let\ge=\geq
\mathchardef\succ="321F
\mathchardef\prec="321E
\mathchardef\approx="3219
\mathchardef\succeq="3217
\mathchardef\preceq="3216
\mathchardef\supset="321B
\mathchardef\subset="321A
\mathchardef\supseteq="3213
\mathchardef\subseteq="3212
\mathchardef\in="3232
\mathchardef\ni="3233 \let\owns=\ni
\mathchardef\gg="321D
\mathchardef\ll="321C
\mathchardef\not="3236
\mathchardef\leftrightarrow="3224
\mathchardef\leftarrow="3220 \let\gets=\leftarrow
\mathchardef\rightarrow="3221 \let\to=\rightarrow
\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
\mathchardef\sim="3218
\mathchardef\simeq="3227
\mathchardef\perp="323F
\mathchardef\equiv="3211
\mathchardef\asymp="3210
\mathchardef\smile="315E
\mathchardef\frown="315F
\mathchardef\leftharpoonup="3128
\mathchardef\leftharpoondown="3129
\mathchardef\rightharpoonup="312A
\mathchardef\rightharpoondown="312B
\def\joinrel{\mathrel{\mkern-3mu}}
\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as +
\def\Relbar{\mathrel=}
\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
\def\models{\mathrel|\joinrel=}
\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
\def\longrightarrow{\protect\@lra}
  \def\@lra{\relbar\joinrel\rightarrow}
\def\longleftarrow{\protect\@lla}
   \def\@lla{\leftarrow\joinrel\relbar}
\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
\def\longmapsto{\mapstochar\longrightarrow}
\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
\def\iff{\;\Longleftrightarrow\;}
\mathchardef\ldotp="613A % ldot as a punctuation mark
\mathchardef\cdotp="6201 % cdot as a punctuation mark
\mathchardef\colon="603A % colon as a punctuation mark
\def\@ldots{\mathinner{\ldotp\ldotp\ldotp}}
\def\ldots{\protect\pldots}
\def\pldots{\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi}
\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
    \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
    \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
\def\acute{\mathaccent"7013 }
\def\grave{\mathaccent"7012 }
\def\ddot{\mathaccent"707F }
\def\tilde{\mathaccent"707E }
\def\bar{\mathaccent"7016 }
\def\breve{\mathaccent"7015 }
\def\check{\mathaccent"7014 }
\def\hat{\mathaccent"705E }
\def\vec{\mathaccent"017E }
\def\dot{\mathaccent"705F }
\def\widetilde{\mathaccent"0365 }
\def\widehat{\mathaccent"0362 }
\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
      \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
      \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}
      \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
      $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
      \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}}
\def\lmoustache{\delimiter"437A340 } % top from (, bottom from )
\def\rmoustache{\delimiter"537B341 } % top from ), bottom from (
\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips
\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips
\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads
\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads
\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces
\def\Vert{\delimiter"26B30D } \let\|=\Vert
\def\vert{\delimiter"26A30C }
\def\uparrow{\delimiter"3222378 }
\def\downarrow{\delimiter"3223379 }
\def\updownarrow{\delimiter"326C33F }
\def\Uparrow{\delimiter"322A37E }
\def\Downarrow{\delimiter"322B37F }
\def\Updownarrow{\delimiter"326D377 }
\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
\def\rangle{\delimiter"526930B }
\def\langle{\delimiter"426830A }
\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
\def\rceil{\delimiter"5265307 }
\def\lceil{\delimiter"4264306 }
\def\rfloor{\delimiter"5263305 }
\def\lfloor{\delimiter"4262304 }
\def\bigl{\mathopen\big}
\def\bigm{\mathrel\big}
\def\bigr{\mathclose\big}
\def\Bigl{\mathopen\Big}
\def\Bigm{\mathrel\Big}
\def\Bigr{\mathclose\Big}
\def\biggl{\mathopen\bigg}
\def\biggm{\mathrel\bigg}
\def\biggr{\mathclose\bigg}
\def\Biggl{\mathopen\Bigg}
\def\Biggm{\mathrel\Bigg}
\def\Biggr{\mathclose\Bigg}
\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
\def\n@space{\nulldelimiterspace\z@ \m@th}
\def\choose{\atopwithdelims()}
\def\brack{\atopwithdelims[]}
\def\brace{\atopwithdelims\{\}}
\def\sqrt{\radical"270370 }
\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
  {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
\newbox\rootbox
\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}
  \mathpalette\r@@t}
\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
  \dimen@\ht\z@ \advance\dimen@-\dp\z@
  \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}
\newif\ifv@ \newif\ifh@
\def\vphantom{\v@true\h@false\ph@nt}
\def\hphantom{\v@false\h@true\ph@nt}
\def\phantom{\v@true\h@true\ph@nt}
\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
  \else\let\next\makeph@nt\fi\next}
\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt}
\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
\def\finph@nt{\setbox\tw@\null
  \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
  \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
\def\mathstrut{\vphantom(}
\def\smash{\relax % \relax, in case this comes first in \halign
  \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
  \fi\next}
\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh}
\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
\def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
\def\notin{\mathrel{\m@th\mathpalette\c@ncel\in}}
\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt
          \hbox{$#1\rightharpoonup$}\crcr
        $#1\leftharpoondown$}}}}
\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
\def\doteq{\buildrel\textstyle.\over=}
\def\log{\mathop{\rm log}\nolimits}
\def\lg{\mathop{\rm lg}\nolimits}
\def\ln{\mathop{\rm ln}\nolimits}
\def\lim{\mathop{\rm lim}}
\def\limsup{\mathop{\rm lim\,sup}}
\def\liminf{\mathop{\rm lim\,inf}}
\def\sin{\mathop{\rm sin}\nolimits}
\def\arcsin{\mathop{\rm arcsin}\nolimits}
\def\sinh{\mathop{\rm sinh}\nolimits}
\def\cos{\mathop{\rm cos}\nolimits}
\def\arccos{\mathop{\rm arccos}\nolimits}
\def\cosh{\mathop{\rm cosh}\nolimits}
\def\tan{\mathop{\rm tan}\nolimits}
\def\arctan{\mathop{\rm arctan}\nolimits}
\def\tanh{\mathop{\rm tanh}\nolimits}
\def\cot{\mathop{\rm cot}\nolimits}
\def\coth{\mathop{\rm coth}\nolimits}
\def\sec{\mathop{\rm sec}\nolimits}
\def\csc{\mathop{\rm csc}\nolimits}
\def\max{\mathop{\rm max}}
\def\min{\mathop{\rm min}}
\def\sup{\mathop{\rm sup}}
\def\inf{\mathop{\rm inf}}
\def\arg{\mathop{\rm arg}\nolimits}
\def\ker{\mathop{\rm ker}\nolimits}
\def\dim{\mathop{\rm dim}\nolimits}
\def\hom{\mathop{\rm hom}\nolimits}
\def\det{\mathop{\rm det}}
\def\exp{\mathop{\rm exp}\nolimits}
\def\Pr{\mathop{\rm Pr}}
\def\gcd{\mathop{\rm gcd}}
\def\deg{\mathop{\rm deg}\nolimits}
\def\bmod{\mskip-\medmuskip\mkern5mu
  \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip}
\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
%% RmS 91/08/14 inserted extra braces around entry for NFSS
\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
    \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
    \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
      \mathstrut\crcr\noalign{\kern-\baselineskip}
      #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
\def\pmatrix#1{\left(\matrix{#1}\right)}
\newdimen\p@renwd
\def\bordermatrix#1{\begingroup \m@th
  \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
    \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
      &&\quad\hfil$##$\hfil\crcr
      \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
      #1\crcr\omit\strut\cr}}%
  \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
  \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
  \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne
    \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
    \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
  \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
\def\openup{\afterassignment\@penup\dimen@=}
\def\@penup{\advance\lineskip\dimen@
  \advance\baselineskip\dimen@
  \advance\lineskiplimit\dimen@}
\newif\ifdt@p
\def\displ@y{\global\dt@ptrue\openup\jot\m@th
  \everycr{\noalign{\ifdt@p \global\dt@pfalse
      \vskip-\lineskiplimit \vskip\normallineskiplimit
      \else \penalty\interdisplaylinepenalty \fi}}}
\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
\def\displaylines#1{\displ@y
  \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
    #1\crcr}}
\newinsert\footins
\skip\footins=\bigskipamount % space added when footnote is present
\count\footins=1000 % footnote magnification factor (1 to 1)
\dimen\footins=8in % maximum footnotes per page
\def\footnoterule{\kern-3\p@
  \hrule width 2in \kern 2.6\p@} % the \hrule is .4pt high
%% FMi & RmS 91/08/26: added \errorcontextlines=\maxdimen,
%%  suggested by J. Schrod
\def\tracingall{\tracingcommands\tw@\tracingstats\tw@
  \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
  \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
  \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode
  \errorcontextlines\maxdimen\tracingonline\@ne}
\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm
  \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}}
%% Initialize \reset@font for use with Old font selection
\nonfrenchspacing % punctuation affects the spacing
\def\fileversion{v0.9n}
\def\filedate{1993/12/20}
\def\fmtname{LaTeX2e}
\edef\fmtversion{1993/12/24}
\everyjob{\typeout{LaTeX2e <\fmtversion> PRELIMINARY TEST RELEASE}}
\immediate\write16{LaTeX2e <\fmtversion> PRELIMINARY TEST RELEASE}
\catcode`\~=13 \def~{\penalty\@M \ }
\newread\@inputcheck
\newwrite\@unused
\newwrite\@mainaux
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\def\typeout#1{\begingroup\let\protect\string
    \immediate\write\@unused{#1}\endgroup}
\newlinechar`\^^J
\def\p@LaTeX{{\reset@font\rmfamily L\kern-.36em%
    \raise.3ex\hbox{\scshape a}\kern-.15em%
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\def\p@LaTeX{L\kern-.36em
        {\setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.15em
        \TeX\@}%
\def\p@SLiTeX{{\reset@font\rmfamily S\kern-.06em{\scshape l%
    \kern-.035emi}\kern-.06emT\kern
   -.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\def\LaTeX{\protect\p@LaTeX}
\def\SLiTeX{\protect\p@SLiTeX}
\def\LaTeXe{\protect\pLaTeXe}
\def\pLaTeXe{\mbox{%
  \if b\expandafter\@car\f@series\@nil\boldmath\fi
  \LaTeX\kern.15em$2_{\textstyle\varepsilon}$}}
\let\@@par=\par
\let\@@hyph=\-        % Original defin
\def\-{\discretionary{-}{}{}}
\def\@height{height}
\def\@depth{depth}
\def\@width{width}
\def\@minus{minus}
\def\@plus{plus}
\def\{{\protect\@lb}
\def\@lb{\relax\ifmmode\lbrace\else$\m@th\lbrace$\fi}
\def\}{\protect\@rb}
\def\@rb{\relax\ifmmode\rbrace\else$\m@th\rbrace$\fi}
\message{counters,}
\chardef\@xxxii=32
\mathchardef\@Mi=10001
\mathchardef\@Mii=10002
\mathchardef\@Miii=10003
\mathchardef\@Miv=10004
\def\newcount{\alloc@0\count\countdef\insc@unt}
\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
\def\newskip{\alloc@2\skip\skipdef\insc@unt}
\def\newbox{\alloc@4\box\chardef\insc@unt}
\def\newwrite{\alloc@7\write\chardef\sixt@@n}
\newcount\@tempcnta
\newcount\@tempcntb
\newif\if@tempswa\@tempswatrue
\newdimen\@tempdima
\newdimen\@tempdimb
\newbox\@tempboxa
\newskip\@flushglue \@flushglue = 0pt plus 1fil
\newskip\@tempskipa
\newskip\@tempskipb
\newtoks\@temptokena
\message{hacks,}
\def\typein{\let\@typein\relax\@ifnextchar[{\@xtypein}{\@xtypein[\@typein]}}
\def\@xtypein[#1]#2{\typeout{#2}\read\@inputcheck
   to#1\ifx #1\@defpar \def#1{}\else
   \@iden{\expandafter\@strip\expandafter
   #1#1\@gobble\@gobble} \@gobble\fi\@typein}
\def\@strip#1#2 \@gobble{\def #1{#2}}
\def\@defpar{\par}
\def\@iden#1{#1}
\ifx\inputlineno\undefined
  \let\on@line\empty
\else
  \ifnum\inputlineno=\m@ne
    \let\on@line\empty
  \else
    \def\on@line{ on input line \the\inputlineno}
  \fi
\fi
\def\@@warning#1{\typeout{LaTeX Warning: #1.}}
\def\@warning#1{\@@warning{#1\on@line}}
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
\def\@nameuse#1{\csname #1\endcsname}
\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
\def\@car#1#2\@nil{#1}
\def\@cdr#1#2\@nil{#2}
\def\@carcube#1#2#3#4\@nil{#1#2#3}
\long\def\@renewenv#1[#2]#3#4{\expandafter\renewcommand
     \csname #1\endcsname[#2]{#3}\long
     \expandafter\def\csname end#1\endcsname{#4}}
\def\newcommand#1{%
  \@ifnextchar [{\@newcommand#1}{\@newcommand#1[0]}}
\def\@newcommand#1[#2]{%
  \@ifnextchar [{\@xargdef#1[#2]}%
                {\@argdef#1[#2]}}
\long\def\@argdef#1[#2]#3{%
   \@ifdefinable #1{\XXX@reargdef#1\@ne{#2}{#3}}}
\long\def\@xargdef#1[#2][#3]#4{%
  \@ifdefinable#1{%
     \expandafter\def\expandafter#1\expandafter{%
          \expandafter
          \@ifnextchar
          \expandafter
             [%
          \csname\string#1\expandafter\endcsname
          \expandafter
          {\csname\string#1\endcsname[#3]}}%
       \expandafter\XXX@reargdef
          \csname\string#1\endcsname
           \tw@
           {#2}%
           {#4}}}

\long\def\XXX@reargdef#1#2#3{%
  \@tempcnta#3\relax
  \advance \@tempcnta \@ne
  \let#1\relax
  \edef\@tempa{\ifx#2\tw@ [#11]\fi}%
  \@tempcntb #2%
  \@whilenum\@tempcntb <\@tempcnta
     \do{%
         \edef\@tempa{\@tempa#1\the\@tempcntb}%
         \advance\@tempcntb \@ne}%
  \let#1##%
  \long\expandafter\def\expandafter#1\@tempa}
\long\def\XXX@reargdef#1#2#3{%
  \@tempcnta#3\relax
  \advance \@tempcnta \@ne
  \let\@hash@\relax
  \edef\@tempa{\ifx#2\tw@ [\@hash@1]\fi}%
  \@tempcntb #2%
  \@whilenum\@tempcntb <\@tempcnta
     \do{%
         \edef\@tempa{\@tempa\@hash@\the\@tempcntb}%
         \advance\@tempcntb \@ne}%
  \let\@hash@##%
  \long\expandafter\def\expandafter#1\@tempa}
\catcode`\?=11\relax
\long\def\@reargdef#1[#2]#3{\@tempcnta#2\relax\let#1\relax
\edef\@tempa{\long\def#1}\@tempcntb \@ne
\let\@?@?\relax\@whilenum\@tempcnta>\z@
\do{\edef\@tempa{\@tempa\@?@?\the\@tempcntb}\advance\@tempcntb \@ne \advance
\@tempcnta \m@ne}\let\@?@?##\@tempa{#3}}
\catcode`\?=12\relax
\def\renewcommand#1{%
  {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  \expandafter\@ifundefined\@gtempa
     {\@latexerr{\string#1\space undefined}\@ehc}%
     {}%
  \let\@ifdefinable\@rc@ifdefinable
  \newcommand#1}
\long\def\@ifdefinable #1#2{%
      \edef\@tempa{\expandafter\@cdr\string #1\@nil}%
     \@ifundefined{\@tempa}%
         {\edef\@tempb{\expandafter\@carcube \@tempa xxxx\@nil}%
          \ifx \@tempb\@qend \@notdefinable\else
          \ifx \@tempa\@qrelax \@notdefinable\else  #2\fi\fi}%
         {\@notdefinable}}
\let\@@ifdefinable\@ifdefinable
\long\def\@rc@ifdefinable#1#2{%
  \let\@ifdefinable\@@ifdefinable
  #2}
\def\newenvironment#1#2#{%
  \@newenv{#1}{#2}}
\def\renewenvironment#1{%
  \@ifundefined{#1}%
     {\@latexerr{Environment #1\space undefined}\@ehc
     }{}%
  \expandafter\let\csname#1\endcsname\relax
  \newenvironment{#1}}
\long\def\@newenv#1#2#3#4{%
  \expandafter\newcommand
     \csname #1\endcsname#2{#3}\long
     \long\expandafter\def\csname end#1\endcsname{#4}}
\def\providecommand#1{%
  {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  \expandafter\@ifundefined\@gtempa
    {\def\@tempa{\newcommand#1}}%
    {\def\@tempa{\renewcommand\@tempa}}%
   \@tempa}%
\def\@checkcommand#1#2#{\@check@c#1{#2}}
\def\@check@c#1#2#3{%
  \expandafter\let\csname\string\@tempa\endcsname\relax
  \renewcommand\@tempa#2{#3}%
  \@ifundefined{\string\@tempa}%
   {\@check@eq#1\@tempa}%
   {\expandafter\@check@eq
           \csname\string#1\expandafter\endcsname
           \csname\string\@tempa\endcsname}}
\def\@check@eq#1#2{%
  \ifx#1#2\else
     \@@warning{Command \protect#1 has changed.^^J%
                Check if current package is valid}%
  \fi}
\long\def\@firstofone#1{#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
\def\@expandtwoargs#1#2#3{%
\edef\@tempa{\noexpand#1{#2}{#3}}\@tempa}
\def\@ifundefined#1{%
  \expandafter\ifx\csname#1\endcsname\relax
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi}
\def\@preamblecmds{}
\def\@onlypreamble#1{%
  \expandafter\gdef\expandafter\@preamblecmds\expandafter{%
       \@preamblecmds\do#1}}
\@onlypreamble\@onlypreamble
\edef\@qend{\expandafter\@cdr\string\end\@nil}
\edef\@qrelax{\expandafter\@cdr\string\relax\@nil}
\def\@ifnextchar#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet
    \@tempc\@ifnch}
\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch
      \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi
      \fi \@tempd}
\def\:{\let\@sptoken= } \:  % this makes \@sptoken a space token
\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
\def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
\long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
\long\def\@xdblarg#1#2{#1[{#2}]{#2}}
\def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
\@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~}

\message{control,}
\def\@whilenoop#1{}
\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
     #2\relax}\fi}
\def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum
         \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
\def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim
        \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
\long\def\@whileswnoop#1\fi{}
\long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi}
\long\def\@iwhilesw#1\fi{#1\let\@nextwhile\@iwhilesw
         \else\let\@nextwhile\@whileswnoop\fi\@nextwhile{#1}\fi}
\def\@nnil{\@nil}
\def\@empty{}
\def\@fornoop#1\@@#2#3{}
\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else
    \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
       \let\@nextwhile\@fornoop \else
      #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}}
\def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\@empty \else
    \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
       \let\@nextwhile\@fornoop \else
      #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}}
\def\@removeelement#1#2#3{%
  \def\@tempa##1,#1,##2\@tempa{##1,##2\@tempb}%
  \def\@tempb##1,\@tempb##2\@tempb{\ifx,##1\@empty\else##1\fi}%
  \edef#3{\expandafter\@tempb\@tempa,#2,\@tempb,#1,\@tempa}}
\let\protect=\relax
\def\@setprotect{%
  \let\@@protect\protect
  \def\protect{\noexpand\protect\noexpand}}
\def\@resetprotect{\let\protect\@@protect}
\ifx\input@path\@undefined

 \def\IfFileExists#1{%
    \openin\@inputcheck#1 %
    \ifeof\@inputcheck
      \expandafter\@secondoftwo
    \else
      \closein\@inputcheck
      \expandafter\@firstoftwo
    \fi
    }
 \def\InputIfFileExists#1#2{%
    \IfFileExists{#1}%
      {#2\xdef\@filelist{\@filelist,#1}\@@input#1 }}
\else
  \def\IfFileExists#1{%
    \let\@tempa\@secondoftwo
    \expandafter\@tfor\expandafter\@tempb\expandafter
                          :\expandafter=\input@path\do{%
      \openin\@inputcheck\@tempb#1 %
      \ifeof\@inputcheck\else
        \ifx\@tempa\@secondoftwo
          \edef\@filef@und{\@tempb#1 }%
          \let\@tempa\@firstoftwo
        \fi
      \fi
      \closein\@inputcheck}%
    \@tempa}
 \def\InputIfFileExists#1#2{%
    \IfFileExists{#1}%
      {#2\xdef\@filelist{\@filelist,#1}\@@input\@filef@und}}
\fi
\def\input{\@ifnextchar\bgroup\@iinput\@@input}
\def\@iinput#1{%
  \InputIfFileExists{#1}{}%
  {\filename@parse{#1}%
   \edef\@tempa{\noexpand\@missingfileerror
     {\filename@area\filename@base}%
     {\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
   \@tempa}}
\ifx\input@path\@undefined
  \def\@input#1{%
    \IfFileExists{#1}{\@@input#1 }{\typeout{No file #1.}}}
\else
  \def\@input#1{%
    \IfFileExists{#1}{\@@input\@filef@und}{\typeout{No file #1.}}}
\fi
\def\@obsoletefile#1#2{%
   \@warning{inputting `#1' instead of obsolete `#2'}%
}
\input nfsscode.ltx
\message{errors,}
\let\c@errorcontextlines\errorcontextlines
\c@errorcontextlines=-1
\def\@latexerr#1#2{%
   \edef\@tempc{#2}\errhelp\expandafter{\@tempc}%
   \typeout{LaTeX error. \space See LaTeX manual for explanation.^^J
   \space\@spaces\@spaces\@spaces Type \space H <return> \space for
   immediate help.}%
   \begingroup
     \c@errorcontextlines\m@ne
     \errmessage{#1}%
   \endgroup
}
\def\@spaces{\space\space\space\space}
\def\@eha{Your command was ignored.
^^JType \space I <command> <return> \space to replace it
  with another command,^^Jor \space <return> \space to continue without it.}
\def\@ehb{You've lost some text. \space \@ehc}
\def\@ehc{Try typing \space <return>
  \space to proceed.^^JIf that doesn't work, type \space X <return> \space to
  quit.}
\def\@ehd{You're in trouble here.  \space\@ehc}
\def\@notdefinable{\@latexerr{Command name '\@tempa' already used}\@eha}
\def\@nolnerr{\@latexerr{There's no line here to end}\@eha}
\def\@nocnterr{\@latexerr{No such counter}\@eha}
\def\@ctrerr{\@latexerr{Counter too large}\@ehb}
\def\@nodocument{\@latexerr{Missing \string\begin{document}}\@ehd}
\def\@badend#1{\@latexerr{\string\begin{\@currenvir}\@currenvline\space
               ended by \string\end{#1}}\@eha}
\def\@badmath{\@latexerr{Bad math environment delimiter}\@eha}
\def\@toodeep{\@latexerr{Too deeply nested}\@ehd}
\def\@badpoptabs{\@latexerr{\string\pushtabs \space and \string\poptabs
    \space don't match}\@ehd}
\def\@badtab{\@latexerr{Undefined tab position}\@ehd}
\def\@preamerr#1{\@latexerr{\ifcase #1 Illegal character\or
     Missing @-exp\or Missing p-arg\fi\space
     in array arg}\@ehd}
\def\@badlinearg{\@latexerr{Bad \string\line\space or \string\vector
   \space argument}\@ehb}
\def\@parmoderr{\@latexerr{Not in outer par mode}\@ehb}
\def\@fltovf{\@latexerr{Too many unprocessed floats}\@ehb}
\def\@latexbug{\@latexerr{This may be a LaTeX bug}{Call for help}}
\def\@badcrerr {\@latexerr{Bad use of \string\\}\@ehc}
\def\@noitemerr{\@latexerr{Something's wrong--perhaps a missing
\string\item}\@ehc}
\def\@notprerr {\@latexerr{Can be used only in preamble}\@eha}
\def\@invalidchar{\@latexerr{Invalid character in input}\@ehc}
\message{par,}
\def\@par{\let\par\@@par\par}
\def\@setpar#1{\def\par{#1}\def\@par{#1}}
\def\@restorepar{\def\par{\@par}}
\message{spacing,}
\def\nopagebreak{\@ifnextchar[{\@nopgbk}{\@nopgbk[4]}}
\def\@nopgbk[#1]{\ifvmode \penalty \@getpen{#1}\else
\@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi}
\def\pagebreak{\@ifnextchar[{\@pgbk}{\@pgbk[4]}}
\def\@pgbk[#1]{\ifvmode \penalty -\@getpen{#1}\else
\@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi}
\def\nolinebreak{\@ifnextchar[{\@nolnbk}{\@nolnbk[4]}}
\def\@nolnbk[#1]{\ifvmode \@nolnerr\else \@tempskipa\lastskip
     \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@
     \hskip\@tempskipa\ignorespaces\fi\fi}
\def\linebreak{\@ifnextchar[{\@lnbk}{\@lnbk[4]}}
\def\@lnbk[#1]{\ifvmode \@nolnerr\else
     \unskip\penalty -\@getpen{#1}\fi}
\def\samepage{\interlinepenalty\@M
   \postdisplaypenalty\@M
   \interdisplaylinepenalty\@M
   \@beginparpenalty\@M
   \@endparpenalty\@M
   \@itempenalty\@M
   \@secpenalty\@M
   \interfootnotelinepenalty\@M}
\def\newline{\ifvmode \@nolnerr \else \unskip\nobreak\hfil
  \penalty -\@M\fi}
\def\@normalcr{\@ifstar{\vadjust{\penalty\@M}\@xnewline}{\@xnewline}}
\def\@xnewline{\@ifnextchar[{\@newline}{\newline}}
\def\@newline[#1]{\ifhmode\unskip\fi\vspace{#1}\newline}
\let\\=\@normalcr
\def\@getpen#1{\ifcase #1 0 \or \@lowpenalty\or
         \@medpenalty \or \@highpenalty
         \else \@M \fi}
\newif\if@nobreak \@nobreakfalse
\newdimen\@savsk
\newcount\@savsf
\def\@Esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf
     \ifdim \@savsk >\z@ \global\@ignoretrue \ignorespaces
  \fi \fi\fi}
\def \@bsphack{%
  \relax \ifvmode
    \@savsk \lastskip
    \ifdim \lastskip=\z@
    \else
      \vskip -\lastskip
    \fi
  \else
    \ifhmode
      \@savsk \lastskip
      \@savsf \spacefactor
    \fi
  \fi
}
\def \@esphack{%
   \relax \ifvmode
     \nobreak
     \ifdim \@savsk=\z@
     \else
       \vskip\@savsk
     \fi
   \else
     \ifhmode
       \spacefactor \@savsf
       \ifdim \@savsk>\z@
         \ignorespaces
       \fi
     \fi
   \fi
}
\def \@bsphack{%
   \relax \ifhmode
     \@savsk \lastskip
     \@savsf \spacefactor
   \fi
}
\def \@esphack{%
     \relax \ifhmode
       \spacefactor \@savsf
       \ifdim \@savsk>\z@
         \ignorespaces
       \fi
     \fi
}
\def \@Esphack{%
     \relax \ifhmode
       \spacefactor \@savsf
       \ifdim \@savsk>\z@
         \global\@ignoretrue
         \ignorespaces
       \fi
     \fi
}
\def \@vbsphack{ %
   \relax \ifvmode
     \leavevmode
     \@savsk 1sp
     \@savsf \spacefactor
   \else
     \ifhmode
       \@savsk \lastskip
       \@savsf \spacefactor
     \fi
   \fi
}
\def\addvspace#1{\ifvmode
     \if@minipage\else
          \ifdim \lastskip =\z@ \vskip #1\relax
             \else \@tempskipb#1\relax\@xaddvskip
     \fi\fi
  \else\@noitemerr\fi}
\def\@xaddvskip{\ifdim \lastskip <\@tempskipb\vskip-\lastskip\vskip
             \@tempskipb
        \else  \ifdim \@tempskipb<\z@
                 \ifdim \lastskip <\z@
                    \else \advance\@tempskipb\lastskip
                           \vskip -\lastskip \vskip \@tempskipb
      \fi\fi\fi}
\def\addpenalty#1{\ifvmode
   \if@minipage\else\if@nobreak\else
      \ifdim\lastskip=\z@ \penalty#1\relax
         \else \@tempskipb\lastskip
               \vskip -\lastskip \penalty#1\vskip\@tempskipb
      \fi\fi\fi
   \else\@noitemerr\fi}
\def\vspace{\@ifstar{\@vspacer}{\@vspace}}
\def\@vspace#1{\ifvmode
    \dimen@\prevdepth \vskip #1\vskip\z@skip \prevdepth\dimen@
       \else
        \@bsphack\vadjust{\dimen@\prevdepth
            \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi}
\def\@vspacer#1{\ifvmode \dimen@\prevdepth
         \hrule \@height\z@ \nobreak \vskip #1\vskip\z@skip
           \prevdepth\dimen@
        \else
         \@bsphack\vadjust{\dimen@\prevdepth \hrule \@height\z@ \nobreak
            \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi}
\def\smallskip{\vspace\smallskipamount}
\def\medskip{\vspace\medskipamount}
\def\bigskip{\vspace\bigskipamount}
\def\endtrivlist{\if@newlist\@noitemerr\fi
   \if@inlabel\indent\fi
   \ifhmode\unskip \par\fi
   \if@noparlist \else
      \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip
         \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
         \vskip\@tempskipa
   \fi\@endparenv\fi}
\def\@endparenv{\addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue}
\def\@doendpe{\@endpetrue
     \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
               {\setbox\z@\lastbox\everypar{}\@endpefalse}}
\newif\if@endpe
\@endpefalse
\def\,{\protect\pcomma}
\def\pcomma{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
\def\@{\spacefactor\@m}
\def\hspace{\protect\phspace}
\def\phspace{\@ifstar{\@hspacer}{\@hspace}}
\def\@hspace#1{\hskip #1\relax}
\def\@hspacer#1{\vrule \@width\z@\nobreak
                \hskip #1\hskip \z@skip}
                      % extra \hskip 0pt added 12/17/85 to guard
                      % against a following \unskip
                      % \relax added 13 Oct 88 for usual TeX lossage
                      % replaced both changes by \hskip\z@skip 27 Nov 91
\newskip\fill \fill = 0pt plus 1fill
\def\stretch#1{\z@ \@plus #1fill\relax}
{\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\\}\@gobblecr}%
\gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING
\message{files,}
\newif\if@filesw \@fileswtrue
\newif\if@partsw \@partswfalse
\newwrite\@mainaux
\newwrite\@partaux
\newcount\@clubpenalty
\def\document{\endgroup
  \ifx\@unusedoptionlist\@empty\else
    \@@warning{Unused global option(s):^^J^^J%
            \@spaces[\@unusedoptionlist]^^J}%
  \fi
  \@colht\textheight
  \@colroom\textheight \vsize\textheight
  \columnwidth\textwidth
  \@clubpenalty\clubpenalty
  \if@twocolumn
    \advance\columnwidth -\columnsep
    \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
  \fi
  \hsize\columnwidth \linewidth\hsize
  \begingroup\@floatplacement\@dblfloatplacement
   \makeatletter\let\@writefile\@gobbletwo
   \global\@multiplelabelsfalse
   \@input{\jobname.aux}%
  \endgroup
  \if@filesw
    \immediate\openout\@mainaux\jobname.aux
    \immediate\write\@mainaux{\relax}%
  \fi
  \process@table
  \let\glb@currsize\@empty  %% Force \baselineskip initialisation.
  \def\do##1{\let ##1\@notprerr}%
  \@preamblecmds
  \let\do\noexpand
  \@normalsize\everypar{}\@noskipsecfalse\G@refundefinedfalse
  \@begindocumenthook
  \let\@begindocumenthook\@undefined
}
\def\@gobbletwo#1#2{}
\def\nofiles{\@fileswfalse \typeout
   {No auxiliary output files.}\typeout{}}
\@onlypreamble\nofiles
\let\@auxout=\@mainaux
\def\includeonly#1{\@partswtrue\edef\@partlist{#1}}
\def\include#1{\relax
  \ifnum\@auxout=\@partaux
    \@latexerr{\string\include\space cannot be nested}\@eha
  \else \@include#1 \fi}
\def\@include#1 {\clearpage
\if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi
\@tempswatrue\if@partsw \@tempswafalse\edef\@tempb{#1}\@for
\@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}\fi
\if@tempswa \let\@auxout\@partaux \if@filesw
\immediate\openout\@partaux #1.aux
\immediate\write\@partaux{\relax}\fi\@input{#1.tex}\clearpage
\@writeckpt{#1}\if@filesw \immediate\closeout\@partaux \fi
\else\@nameuse{cp@#1}\fi\let\@auxout\@mainaux}
\def\@writeckpt#1{\if@filesw
\immediate\write\@partaux{\string\@setckpt{#1}\@charlb}%
{\let\@elt\@wckptelt \cl@@ckpt}\immediate\write\@partaux{\@charrb}\fi}
\def\@wckptelt#1{\immediate\write\@partaux
{\string\setcounter{#1}{\the\@nameuse{c@#1}}}}
\def\@setckpt#1{\global\@namedef{cp@#1}}
{\catcode`[=1 \catcode`]=2
\catcode`{=11 \catcode`}=11
\gdef\@charlb[{]
\gdef\@charrb[}]
]% }brace matching
\message{env. counters,}
\def\setcounter#1#2{\@ifundefined{c@#1}{\@nocnterr}%
{\global\csname c@#1\endcsname#2\relax}}
\def\addtocounter#1#2{\@ifundefined{c@#1}{\@nocnterr}%
{\global\advance\csname c@#1\endcsname #2\relax}}
\def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname
    {\@definecounter{#1}}\@ifnextchar[{\@newctr{#1}}{}}
\def\value#1{\csname c@#1\endcsname}
\def\@newctr#1[#2]{\@ifundefined{c@#2}{\@nocnterr}{\@addtoreset{#1}{#2}}}
\def\stepcounter#1{\global\advance\csname c@#1\endcsname \@ne
    \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup}
\def\@stpelt#1{\global\csname c@#1\endcsname \z@}
\def\cl@@ckpt{\@elt{page}}
\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
     \setcounter{#1}0 \expandafter\gdef\csname cl@#1\endcsname{}\@addtoreset
     {#1}{@ckpt}\expandafter\gdef\csname p@#1\endcsname{}\expandafter
     \gdef\csname the#1\endcsname{\arabic{#1}}}
\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
\def\arabic#1{\@arabic{\@nameuse{c@#1}}}
\def\roman#1{\@roman{\@nameuse{c@#1}}}
\def\Roman#1{\@Roman{\@nameuse{c@#1}}}
\def\alph#1{\@alph{\@nameuse{c@#1}}}
\def\Alph#1{\@Alph{\@nameuse{c@#1}}}
\def\fnsymbol#1{\@fnsymbol{\@nameuse{c@#1}}}
\def\@arabic#1{\number #1}  %% changed 29 Apr 86
\def\@roman#1{\romannumeral #1}
\def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
   k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
   z\else\@ctrerr\fi}
\def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
\def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or
   K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or
   Z\else\@ctrerr\fi}
\def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or
   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
   \or \ddagger\ddagger \else\@ctrerr\fi\relax}
\message{page nos.,}
\countdef\c@page=0 \c@page=1
\def\cl@page{}
\def\pagenumbering#1{\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
   \c@page}}
\message{x-ref,}
\newif\ifG@refundefined
\def\G@refundefinedtrue{\global\let\ifG@refundefined\iftrue}
\def\G@refundefinedfalse{\global\let\ifG@refundefined\iffalse}
\def\@setref#1#2#3{%
  \ifx#1\relax
   \protect\G@refundefinedtrue
   \nfss@text{\reset@font\bfseries ??}%
   \@warning{Reference `#3' on page \thepage \space
             undefined}%
  \else
   \expandafter#2#1\null
  \fi}
\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
                                   \@secondoftwo{#1}}
\newif\if@multiplelabels
\def\newlabel#1#2{\@ifundefined{r@#1}{}{\global\@multiplelabelstrue
   \@warning{Label `#1' multiply defined}}\global\@namedef{r@#1}{#2}}
\def\label#1{\@bsphack\if@filesw {\let\thepage\relax
   \def\protect{\noexpand\noexpand\noexpand}%
   \edef\@tempa{\write\@auxout{\string
      \newlabel{#1}{{\@currentlabel}{\thepage}}}}%
   \expandafter}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
\def\refstepcounter#1{\stepcounter{#1}\let\@tempa\protect
\def\protect{\noexpand\protect\noexpand}%
\edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}%
\let\protect\@tempa}
\def\@currentlabel{} % For \label commands that come before any environment
\message{environments,}
\def\@currenvir{document}
\@onlypreamble\document
\@onlypreamble\documentstyle
\@onlypreamble\@documentstyle

\@onlypreamble\@options
\@onlypreamble\@preamblecmds
\@onlypreamble\@optionlist
\@onlypreamble\@optionfiles

\@onlypreamble\nofiles
\@onlypreamble\includeonly
\@onlypreamble\makeindex
\@onlypreamble\makeglossary
\newif\if@ignore
\def\enddocument{%
   \@checkend{document}%
   \@enddocumenthook
   \clearpage
   \begingroup
     \if@filesw
       \immediate\closeout\@mainaux
       \ifG@refundefined\@@warning{There are unresolved references}\fi
       \if@multiplelabels
         \@@warning{One or more label(s) multiply defined}%
       \else
         \def\@setckpt##1##2{}%
         \def\newlabel{\@testdef r}%
         \def\bibcite{\@testdef b}%
         \@tempswafalse
         \makeatletter \input\jobname.aux
         \if@tempswa
           \@@warning{Label(s) may have changed.  Rerun to get
                      cross-references right}%
         \fi
       \fi
     \fi
  \endgroup\deadcycles\z@\@@end}
\def\@testdef #1#2#3{\def\@tempa{#3}\expandafter \ifx \csname #1@#2\endcsname
 \@tempa  \else \@tempswatrue \fi}
\long\def\@writefile#1#2{\@ifundefined{tf@#1}{}{%
   \immediate\write\csname tf@#1\endcsname{#2}}}
 % \long added 8 Feb 90, as suggested by Chris Rowley
\def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end}
\everypar{\@nodocument} %% To get an error if text appears before the
\nullfont               %% \begin{document}
\def\begin#1{\@ifundefined{#1}{\def\@tempa{\@latexerr{Environment #1
  undefined}\@eha}}{\def\@tempa{\def\@currenvir{#1}%
  \edef\@currenvline{\on@line}%
  \csname #1\endcsname}}\global\@ignorefalse %% \global... added 2 May 90
     \begingroup\@endpefalse\@tempa}
\def\end#1{\csname end#1\endcsname\@checkend{#1}%
  \expandafter\endgroup \if@endpe \@doendpe \fi
  \if@ignore \global\@ignorefalse \ignorespaces\fi}
\def\@checkend#1{\def\@tempa{#1}\ifx
      \@tempa\@currenvir \else\@badend{#1}\fi}
\let\@currenvline\space
\message{math,}
\def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
\fi}
\def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
\fi\else \@badmath\fi}
\def\[{\relax\ifmmode\@badmath\else
    \ifvmode \nointerlineskip \makebox[.6\linewidth]\fi$$%%$$ BRACE MATCH HACK
\fi}
\def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE MATCH HACK
        \else \@badmath \fi\ignorespaces}
\let\math=\(
\let\endmath=\)
\def\displaymath{\[}
\def\enddisplaymath{\]\global\@ignoretrue}
\@definecounter{equation}
\def\equation{$$ % $$ BRACE MATCHING HACK
\refstepcounter{equation}}
\def\endequation{\eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK
$$\global\@ignoretrue}
\def\@eqnnum{{\reset@font\rmfamily (\theequation)}}
\def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}}
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
\let\@@sqrt=\sqrt
\def\sqrt{\@ifnextchar[{\@sqrt}{\@@sqrt}}
\def\@sqrt[#1]{\root #1\of}
\let\:=\>
\newcount\@eqcnt
\newcount\@eqpen
\newif\if@eqnsw\@eqnswtrue

\@centering = 0pt plus 1000pt % Changed 11/4/85 to produce warning message
                              % if line extends into margin.  Doesn't warn
                              % about formula overprinting equation number.
\def\eqnarray{\refstepcounter{equation}%
\global\@eqnswtrue\m@th
\global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
$$\everycr{}\halign to\displaywidth\bgroup\hskip\@centering
  $\displaystyle\tabskip\z@skip{##}$\@eqnsel&\global\@eqcnt\@ne
  \hskip \tw@\arraycolsep \hfil${##}$\hfil
  &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
  $\displaystyle{##}$\hfil
   \tabskip\@centering&\global\@eqcnt\thr@@
       \hbox to\z@\bgroup\hss##\egroup\tabskip\z@skip\cr}

\def\endeqnarray{\@@eqncr\egroup
      \global\advance\c@equation\m@ne$$\global\@ignoretrue}

\let\@eqnsel=\relax
\def\nonumber{\global\@eqnswfalse}
\def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M
    \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}}
\def\@yeqncr{\@ifnextchar [{\@xeqncr}{\@xeqncr[\z@skip]}}
\def\@xeqncr[#1]{\ifnum0=`{\fi}\@@eqncr
   \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}
\def\@@eqncr{\let\@tempa\relax
    \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}%
     \or \def\@tempa{&}\else
       \let\@tempa\@empty
       \@latexerr{Too many columns in eqnarray environment}\@ehc\fi
     \@tempa \if@eqnsw\@eqnnum\refstepcounter{equation}\fi
     \global\@eqnswtrue\global\@eqcnt\z@\cr}
\let\@seqncr=\@eqncr
\@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray}
\@namedef{endeqnarray*}{\nonumber\endeqnarray}
\def\lefteqn#1{\hbox to\z@{$\displaystyle #1$\hss}}
\def\ensuremath{\protect\p@ensuremath}
\def\p@ensuremath#1{\ifmmode#1\else$#1$\fi}
\message{center,}
\def\@centercr{\ifhmode \unskip\else \@badcrerr\fi
       \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}}
\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
    [{\@icentercr}{\ignorespaces}}
\def\@icentercr[#1]{\vskip #1\ignorespaces}
\def\center{\trivlist \centering\item\relax}
\def\centering{\let\\\@centercr\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
\let\endcenter=\endtrivlist
\newskip\@rightskip \@rightskip \z@skip
\def\flushleft{\trivlist \raggedright\item\relax}
\def\raggedright{\let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip
  \leftskip\z@skip
  \parindent\z@}
\let\endflushleft=\endtrivlist
\def\flushright{\trivlist \raggedleft\item\relax}
\def\raggedleft{\let\\\@centercr\rightskip\z@skip\leftskip\@flushglue
  \parindent\z@\parfillskip\z@skip}
\let\endflushright=\endtrivlist
\message{verbatim,}
{\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar
{\@gobble}{\ignorespaces}}}
{\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
\def\@xobeysp{\leavevmode\penalty10000\ }
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
|endgroup
\def\@gobble#1{}
\def\@verbatim{\trivlist \item\relax
  \if@minipage\else\vskip\parskip\fi
  \leftskip\@totalleftmargin\rightskip\z@skip
  \parindent\z@\parfillskip\@flushglue\parskip\z@skip
\@@par
\@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
\penalty\interlinepenalty}%
\obeylines \verbatim@font \@noligs
\let\do\@makeother \dospecials}
\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist}
\begingroup
 \catcode`\`=\active
 \gdef\verbatim@font{\normalfont\ttfamily \catcode96\active
   \def`{\leavevmode\kern\z@\char96 }}
\endgroup
\@namedef{verbatim*}{\@verbatim\@sxverbatim}
\expandafter\let\csname endverbatim*\endcsname =\endverbatim
\def\@makeother#1{\catcode`#1=12\relax}
\let\verb@balance@group\@empty

\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}

\begingroup
  \obeylines%
  \gdef\verb@eol@error{\obeylines%
    \def^^M{\verb@egroup\@latexerr{%
           Text for \noexpand\verb command ended by end of line}\@ehc}}%
\endgroup
\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
  \bgroup \@noligs
    \verbatim@font \verb@eol@error \let\do\@makeother \dospecials
    \@ifstar{\@sverb}{\@verb}}
\def\@sverb#1{%
  \catcode`#1\active
  \lccode`\~`#1%
  \gdef\verb@balance@group{\verb@egroup
     \@latexerr{Illegal use of \noexpand\verb command}\@ehc}%
  \aftergroup\verb@balance@group
  \lowercase{\let~\verb@egroup}}%
\def\@verb{\@vobeyspaces \frenchspacing \@sverb}
\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
\def\do@noligs#1{%
  \catcode`#1\active
  \begingroup
     \lccode`\~=`#1\relax
     \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
\def\@noligs{\let\do\do@noligs \verbatim@nolig@list}
\def\literal#1{{#1\kern\z@}}
\message{list,}
\newskip\topsep
\newskip\partopsep
\newskip\itemsep
\newskip\parsep
\newskip\@topsep
\newskip\@topsepadd
\newskip\@outerparskip
\newdimen\leftmargin
\newdimen\rightmargin
\newdimen\listparindent
\newdimen\itemindent
\newdimen\labelwidth
\newdimen\labelsep
\newdimen\linewidth
\newdimen\@totalleftmargin \@totalleftmargin=\z@
\newdimen\leftmargini
\newdimen\leftmarginii
\newdimen\leftmarginiii
\newdimen\leftmarginiv
\newdimen\leftmarginv
\newdimen\leftmarginvi
\newcount\@listdepth \@listdepth=0
\newcount\@itempenalty
\newcount\@beginparpenalty
\newcount\@endparpenalty
\newbox\@labels
\newif\if@inlabel \@inlabelfalse
\newif\if@newlist   \@newlistfalse
\newif\if@noparitem \@noparitemfalse
\newif\if@noparlist \@noparlistfalse
\newif\if@noitemarg \@noitemargfalse
\newif\if@nmbrlist  \@nmbrlistfalse
\def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep
     \else \global\advance\@listdepth\@ne \fi
  \rightmargin \z@ \listparindent\z@ \itemindent\z@
  \csname @list\romannumeral\the\@listdepth\endcsname
  \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax
  \@trivlist
  \parskip\parsep \parindent\listparindent
  \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth
  \ignorespaces}
\newcount\par@deathcycles

\def\@trivlist{\@topsepadd\topsep
  \if@noskipsec \leavevmode \fi
  \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi
  \if@inlabel \@noparitemtrue \@noparlisttrue
    \else \@noparlistfalse \@topsep\@topsepadd \fi
    \advance\@topsep \parskip
  \leftskip\z@skip\rightskip\@rightskip \parfillskip\@flushglue
  \par@deathcycles\z@
  \@setpar{\if@newlist
             \advance\par@deathcycles\@ne
             \ifnum\par@deathcycles>\@m
               \@noitemerr{\@@par}\fi
           \else{\@@par}\fi}%
  \global\@newlisttrue \@outerparskip\parskip}
\def\trivlist{\parsep\parskip\@nmbrlistfalse
  \@trivlist \labelwidth\z@ \leftmargin\z@
  \itemindent\z@
  \let\@itemlabel\@empty
  \def\makelabel##1{##1}}
\def\endlist{\global\advance\@listdepth\m@ne
    \endtrivlist}
\def\@mklab#1{\hfil #1}
\def\@ltxnomath#1{\relax\ifmmode
                  \@warning{\string#1\space in math mode}\fi}
\def\item{\@ltxnomath\item
  \@ifnextchar [{\@item}{\@noitemargtrue \@item[\@itemlabel]}}
\def\@donoparitem{\@noparitemfalse
   \global\setbox\@labels\hbox{\hskip -\leftmargin
                               \unhbox\@labels
                                \hskip \leftmargin}\if@minipage\else
  \@tempskipa\lastskip
  \vskip -\lastskip \advance\@tempskipa\@outerparskip
  \advance\@tempskipa -\parskip \vskip\@tempskipa\fi}
\def\@item[#1]{\if@noparitem \@donoparitem
  \else \if@inlabel \indent \par \fi
         \ifhmode \unskip\unskip \par \fi
         \if@newlist \if@nobreak \@nbitem \else
                        \addpenalty\@beginparpenalty
                        \addvspace\@topsep \addvspace{-\parskip}\fi
           \else \addpenalty\@itempenalty \addvspace\itemsep
          \fi
    \global\@inlabeltrue
\fi
\everypar{\global\@minipagefalse\global\@newlistfalse
          \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels
             \penalty\z@ \fi
          \everypar{}}\global\@nobreakfalse
\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi
\sbox\@tempboxa{\makelabel{#1}}%
\global\setbox\@labels
 \hbox{\unhbox\@labels \hskip \itemindent
       \hskip -\labelwidth \hskip -\labelsep
       \ifdim \wd\@tempboxa >\labelwidth
                \box\@tempboxa
          \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi
       \hskip \labelsep}\ignorespaces}
\def\makelabel#1{\@latexerr{Lonely \string\item--perhaps a missing
        list environment}\@ehc}
\def\@nbitem{\@tempskipa\@outerparskip \advance\@tempskipa -\parskip
              \addvspace{\@tempskipa}}
\def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@}
\message{itemize,}
\newcount\@enumdepth \@enumdepth = 0
\@definecounter{enumi}
\@definecounter{enumii}
\@definecounter{enumiii}
\@definecounter{enumiv}
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
      {\csname label\@enumctr\endcsname}{\usecounter
        {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi}
\let\endenumerate =\endlist
\newcount\@itemdepth \@itemdepth = 0
\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
\list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi}
\let\enditemize =\endlist
\input ltboxes.ltx
\message{tabbing,}
\expandafter \let \csname a`\endcsname = \`
\expandafter \let \csname a'\endcsname = \'
\expandafter \let \csname a=\endcsname = \=
\def\a#1{\csname a#1\endcsname}
\newif\if@rjfield
\newcount\@firsttab
\newcount\@maxtab
\newdimen\@gtempa \@firsttab=\allocationnumber
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa \@maxtab=\allocationnumber
\dimen\@firsttab=0pt
\newcount\@nxttabmar
\newcount\@curtabmar
\newcount\@curtab
\newcount\@hightab
\newcount\@tabpush
\newbox\@curline
\newbox\@curfield
\newbox\@tabfbox
\def\@startline{\global\@curtabmar\@nxttabmar
   \global\@curtab\@curtabmar\global\setbox\@curline\hbox % missing \global
    {}\@startfield\strut}                                 % added 17 Jun 86
\def\@stopline{\unskip\@stopfield\if@rjfield \global\@rjfieldfalse
   \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
\hbox to\@tempdima{\@itemfudge\hskip\dimen\@curtabmar
   \box\@curline\hfil\box\@curfield}\else\@addfield
   \hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}\fi}
\def\@startfield{\global\setbox\@curfield\hbox\bgroup}%{ BRACE MATCH HACK
\let\@stopfield=}
\def\@contfield{\global\setbox\@curfield\hbox\bgroup\unhbox\@curfield}
\def\@addfield{\global\setbox\@curline\hbox{\unhbox
     \@curline\unhbox\@curfield}}
\def\@ifatmargin{\ifdim \wd\@curline =\z@}
\def\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}{\@xtabcr}}
\def\@xtabcr{\@ifnextchar[{\@itabcr}{\@startline\ignorespaces}}
\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
\def\kill{\@stopfield\@startline\ignorespaces}
\def\+{\tabalign}
\def\tabbing{\lineskip \z@skip\let\>\@rtab\let\<\@ltab\let\=\@settab
     \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
     \let\\=\@tabcr
     \global\@hightab\@firsttab
     \global\@nxttabmar\@firsttab
     \dimen\@firsttab\@totalleftmargin
     \global\@tabpush\z@ \global\@rjfieldfalse
     \trivlist \item\relax
     \if@minipage\else\vskip\parskip\fi
     \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
       \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces}
\def\endtabbing{\@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
\def\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab
      \global\advance\@curtab \@ne \else\@badtab\fi
      \@tempdima\dimen\@curtab
      \advance\@tempdima -\dimen\@curtabmar
      \advance\@tempdima -\wd\@curline
      \global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}%
      \@startfield\ignorespaces}
\def\@settab{\@stopfield\@addfield\ifnum \@curtab <\@maxtab
      \global\advance\@curtab \@ne \else\@latexerr{Tab overflow}\@ehd\fi
      \ifnum\@curtab >\@hightab
      \@hightab\@curtab\fi
      \dimen\@curtab\dimen\@curtabmar
      \advance\dimen\@curtab \wd\@curline\@startfield\ignorespaces}
\def\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab
      \global\advance\@curtab \m@ne \global\advance\@curtabmar \m@ne \else
      \@badtab\fi\else
      \@latexerr{\string\<\space in mid line}\@ehd\fi\ignorespaces}
\def\@tabplus {\ifnum \@nxttabmar <\@hightab
      \global\advance\@nxttabmar \@ne \else
      \@badtab\fi\ignorespaces}
\def\@tabminus{\ifnum\@nxttabmar >\@firsttab
      \global\advance\@nxttabmar \m@ne \else
      \@badtab\fi\ignorespaces}
\def\@tabrj{\@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces}
\def\@tablab{\@stopfield\global\setbox\@curline\hbox{\box\@curline
     \hskip -\wd\@curfield \hskip -\tabbingsep \box\@curfield
      \hskip \tabbingsep}\@startfield\ignorespaces}
\def\pushtabs{\@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
       \@contfield}
\def\poptabs{\@stopfield\@addfield\ifnum\@tabpush >\z@ \endgroup
     \global\advance\@tabpush \m@ne \else
     \@badpoptabs\fi\@contfield}
\newdimen\tabbingsep
\message{array,}
\def\extracolsep#1{\tabskip #1\relax}
\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
 \let\@classiv\@arrayclassiv \let\\\@arraycr\let\@halignto\@empty\@tabarray}
\def\endarray{\crcr\egroup\egroup}
\def\endtabular{\crcr\egroup\egroup $\egroup}
\expandafter \let \csname endtabular*\endcsname = \endtabular
\def\tabular{\let\@halignto\@empty\@tabular}
\@namedef{tabular*}#1{\def\@halignto{to#1}\@tabular}
\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
   \let\@classz\@tabclassz
   \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray}
\def\@tabarray{\m@th\@ifnextchar[{\@array}{\@array[c]}}
\def\@array[#1]#2{\setbox\@arstrutbox\hbox{\vrule
     \@height\arraystretch \ht\strutbox
     \@depth\arraystretch \dp\strutbox
     \@width\z@}\@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
      \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
      \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
      \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
      \bgroup \let\par\@empty
       \let\@sharp##\let\protect\relax
       \lineskip\z@skip\baselineskip\z@skip\@preamble}
\def\@arraycr{${\ifnum0=`}\fi\@ifstar{\@xarraycr}{\@xarraycr}}
\def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{\fi}${}\cr}}
\def\@argarraycr[#1]{\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else
   \@yargarraycr{#1}\fi}
\def\@tabularcr{{\ifnum0=`}\fi\@ifstar{\@xtabularcr}{\@xtabularcr}}
\def\@xtabularcr{\@ifnextchar[{\@argtabularcr}{\ifnum0=`{\fi}\cr}}
\def\@argtabularcr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
   \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
\def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox
   \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr}
\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
\def\multicolumn#1#2#3{\multispan{#1}\begingroup
\@mkpream{#2}%
\def\@sharp{#3}\let\protect\relax
  \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
  \@arstrut \@preamble\hbox{}\endgroup\ignorespaces}
\def\@xexnoop #1\@@{}
\def\@expast#1{\@xexpast #1*0x\@@}
\def\@xexpast#1*#2#3#4\@@{\edef\@tempa{#1}\@tempcnta#2\relax
    \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do
       {\edef\@tempa{\@tempa#3}\advance\@tempcnta \m@ne}\let\@tempb\@xexpast
      \else \let\@tempb\@xexnoop\fi
    \expandafter\@tempb \@tempa #4\@@}
\newif\if@firstamp
\def\@addamp{\if@firstamp \@firstampfalse \else
    \edef\@preamble{\@preamble &}\fi}
\def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}}
\def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}}
\def\@ampacol{\@addamp \@acol}
\def\@acolampacol{\@acol\@addamp\@acol}
\def\@mkpream#1{\@firstamptrue\@lastchclass6
\let\@preamble\@empty\def\protect{\noexpand\protect\noexpand}\let\@sharp\relax
\let\@startpbox\relax\let\@endpbox\relax
\@expast{#1}\expandafter\@tfor \expandafter
  \@nextchar \expandafter:\expandafter=\@tempa\do{\@testpach\@nextchar
  \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
    \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
\ifcase \@lastchclass \@acol
    \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi}
\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
   \or \or \@addamp \or
   \@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble
  \ifcase \@chnum
     \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
    \or \hfil$\relax\@sharp$\fi}}
\def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
   \or \or \@addamp \or
   \@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble{%
  \ifcase \@chnum
     \hfil\ignorespaces\@sharp\unskip\hfil
     \or \ignorespaces\@sharp\unskip\hfil
     \or \hfil\hskip\z@skip \ignorespaces\@sharp\unskip\fi}}}
\def\@classi{\ifcase \@lastchclass \@acol \@arrayrule \or
   \@addtopreamble{\hskip \doublerulesep}\@arrayrule\or
   \or \or \@arrayrule \or
   \@acol \@arrayrule \or \@arrayrule \fi}
\def\@classii{\ifcase \@lastchclass \or
   \@addtopreamble{\hskip .5\arrayrulewidth}\fi}
\def\@classiii{\ifcase \@lastchclass \@acolampacol \or
   \@addamp\@acol \or
   \or \or \@addamp \or
   \@acolampacol \or \@ampacol \fi}
\def\@tabclassiv{\@addtopreamble\@nextchar}
\def\@arrayclassiv{\@addtopreamble{$\@nextchar$}}
\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
\@sharp\@endpbox}}
\def\@addtopreamble#1{\edef\@preamble{\@preamble #1}}
\newcount\@chclass
\newcount\@lastchclass
\newcount\@chnum
\newdimen\arraycolsep
\newdimen\tabcolsep
\newdimen\arrayrulewidth
\newdimen\doublerulesep
\def\arraystretch{1}    % Default value.
\newbox\@arstrutbox
\def\@arstrut{\relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi}
\def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
   \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}}
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
    \ifnum \@lastchclass=3 5 \else
     \z@ \if #1c\@chnum \z@ \else
                              \if #1l\@chnum \@ne \else
                              \if #1r\@chnum \tw@ \else
          \@chclass \if #1|\@ne \else
                    \if #1@\tw@ \else
                    \if #1p3 \else \z@ \@preamerr 0\fi
  \fi  \fi  \fi  \fi  \fi  \fi
\fi}
\def\hline{\noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
   \@tempa\@xhline}
\def\@xhline{\ifx\@tempa\hline
               \vskip\doublerulesep
               \vskip-\arrayrulewidth
             \fi
      \ifnum0=`{\fi}}
\def\vline{\vrule \@width \arrayrulewidth}
\newcount\@cla
\newcount\@clb
\def\cline#1{\@cline[#1]}
\def\@cline[#1-#2]{\noalign{\global\@cla#1\relax
\global\advance\@cla\m@ne
\ifnum\@cla>\z@\global\let\@gtempa\@clinea\else
  \global\let\@gtempa\@clineb\fi
\global\@clb#2\relax
\global\advance\@clb-\@cla}\@gtempa
\noalign{\vskip-\arrayrulewidth}}
\def\@clinea{\multispan\@cla&\multispan\@clb
\unskip\leaders\hrule \@height \arrayrulewidth \hfill
\cr}
\def\@clineb{\multispan\@clb
\unskip\leaders\hrule \@height \arrayrulewidth \hfill
\cr}
\def\@startpbox#1{\vtop\bgroup \hsize #1\@arrayparboxrestore}
\def\@endpbox{\unskip\strut\par\egroup\hfil}
\let\@@startpbox=\@startpbox
\let\@@endpbox=\@endpbox
\message{picture,}
\newdimen\@wholewidth
\newdimen\@halfwidth
\newdimen\unitlength \unitlength =1pt
\newbox\@picbox
\newdimen\@picht
\def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}}
\def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength
\setbox\@picbox\hbox to#1\unitlength\bgroup
\hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup\ignorespaces}
\def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht
\dp\@picbox\z@\mbox{\box\@picbox}}
\long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to\z@{\kern
#1\unitlength #3\hss}\ignorespaces}
\long\def\multiput(#1,#2)(#3,#4)#5#6{\@killglue\@multicnt #5\relax
\@xdim #1\unitlength
\@ydim #2\unitlength
\@whilenum \@multicnt >\z@\do
{\raise\@ydim\hbox to\z@{\kern
\@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim
#3\unitlength\advance\@ydim #4\unitlength}\ignorespaces}
\def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
\def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
  \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
\def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
  \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
\def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
\def\shortstack{\@ifnextchar[{\@shortstack}{\@shortstack[c]}}
\def\@shortstack[#1]{\leavevmode
\vbox\bgroup\baselineskip-\p@\lineskip 3\p@\let\mb@l\hss
\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
\let\\\@stackcr\@ishortstack}
\def\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
\def\@stackcr{\@ifstar{\@ixstackcr}{\@ixstackcr}}
\def\@ixstackcr{\@ifnextchar[{\@istackcr}{\cr\ignorespaces}}
\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
\newif\if@negarg
\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
\@linelen #3\unitlength
\ifdim\@linelen<\z@\@badlinearg\else
  \ifnum\@xarg =\z@ \@vline
    \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
  \fi
\fi}
\def\@sline{\ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
  \else \@negargfalse \@yyarg \@yarg \fi
\ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
\ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
\ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
\ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
   \else\let\@upordown\lower \@clnht \ht\@linechar\fi
\@clnwd \wd\@linechar
\if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else
     \let\@tempa\relax \fi
\@whiledim \@clnwd <\@linelen \do
  {\@upordown\@clnht\copy\@linechar
   \@tempa
   \advance\@clnht \ht\@linechar
   \advance\@clnwd \wd\@linechar}%
\advance\@clnht -\ht\@linechar
\advance\@clnwd -\wd\@linechar
\@tempdima\@linelen\advance\@tempdima -\@clnwd
\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
\multiply\@tempdima \@m
\@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
\divide\@tempdima \@m
\advance\@clnht \@tempdima
\ifdim \@linelen <\wd\@linechar
   \hskip \wd\@linechar
  \else\@upordown\@clnht\copy\@linechar\fi}
\def\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
\ifnum \@xarg <\z@ \hskip -\@linelen \fi}
 \def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
\advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
\char\@tempcnta}
\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
\@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
\ifnum\@tempcnta<5\relax
\@linelen #3\unitlength
\ifdim\@linelen<\z@\@badlinearg\else
  \ifnum\@xarg =\z@ \@vvector
    \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
  \fi
\fi
\else\@badlinearg\fi}
\def\@hvector{\@hline\hbox to\z@{\@linefnt
\ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
    \hss\@getrarrow(1,0)\fi}}
\def\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
\def\@svector{\@sline
\@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
\ifnum\@tempcnta <5%
  \hskip -\wd\@linechar
  \@upordown\@clnht \hbox{\@linefnt  \if@negarg
  \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
\else\@badlinearg\fi}
\def\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else
\@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
-9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
\ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
\fi\fi\char\@tempcnta}
\def\@getrarrow(#1,#2){\@tempcntb #2\relax
\ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
\ifcase \@tempcntb\relax \@tempcnta'55 \or
\ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
\else\@tempcnta 58 \fi\fi\or
\ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
\@tempcnta #1\relax\multiply\@tempcnta
\sixt@@n \advance\@tempcnta -\tw@ \else
\@tempcnta #1\relax\multiply\@tempcnta
\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
\char\@tempcnta}
\def\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
\def\@upline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
   \@height \@linelen \@depth \z@\hss}}
\def\@downline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
   \@height \z@ \@depth \@linelen \hss}}
\def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
     \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
\def\@downvector{\@downline\lower \@linelen
      \hbox to \z@{\@linefnt\char'77\hss}}
\def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip
\lineskip \z@skip
\@dashdim #2\unitlength
\@dashcnt \@dashdim \advance\@dashcnt 200
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
\ifodd\@dashcnt\@dashdim \z@
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
\advance\@dashcnt \m@ne
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
\@width \@dashdim}\put(0,0){\copy\@dashbox}%
\put(0,#3){\copy\@dashbox}%
\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
\multiply\@dashdim \thr@@
\fi
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
\@dashdim #3\unitlength
\@dashcnt \@dashdim \advance\@dashcnt 200
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
\ifodd\@dashcnt \@dashdim \z@
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
\else
\divide\@dashdim \tw@ \divide\@dashcnt \tw@
\advance\@dashcnt \m@ne
\setbox\@dashbox\hbox{\hskip -\@halfwidth
\vrule \@width \@wholewidth
\@height \@dashdim}\put(0,0){\copy\@dashbox}%
\put(#2,0){\copy\@dashbox}%
\put(0,#3){\lower\@dashdim\copy\@dashbox}%
\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
\multiply\@dashdim \thr@@
\fi
\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
\@height #1\unitlength}\@tempcnta\z@
\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
\vskip\@dashdim}}\@tempcnta\z@
\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
\vskip\@dashdim}}}\@makepicbox(#2,#3)}
\newif\if@ovt
\newif\if@ovb
\newif\if@ovl
\newif\if@ovr
\newdimen\@ovxx
\newdimen\@ovyy
\newdimen\@ovdx
\newdimen\@ovdy
\newdimen\@ovro
\newdimen\@ovri
\def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@
  \@tempcnta\@tempdima
  \@tempdima 4\p@ \divide\@tempcnta\@tempdima
  \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi
  \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
    \else \@warning{Oval too small}\fi
  \multiply\@tempcnta 4\relax
  \setbox \@tempboxa \hbox{\@circlefnt
  \char \@tempcnta}\@tempdima \wd \@tempboxa}
\def\@put#1#2#3{\raise #2\hbox to\z@{\hskip #1#3\hss}}
\def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
  \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
  \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
  #1\unitlength \@ovyy #2\unitlength
  \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
  \advance \@tempdimb -2\p@
  \@getcirc \@tempdimb
  \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
  \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
  \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
  \@circlefnt \setbox\@tempboxa
  \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
  \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
  \if@ovt \@ovhorz \kern -\@ovxx \fi
  \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
  \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
  \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
  \endgroup}
\def\@ovvert#1#2{\vbox to\@ovyy{%
    \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
      \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
    \else \kern \@ovri \kern \@ovdy \fi
    \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
    \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
      \hbox{\char \@tempcntb}%
    \else \kern \@ovdy \kern \@ovro \fi}}
\def\@ovhorz{\hbox to \@ovxx{\kern \@ovro
    \if@ovr \else \kern \@ovdx \fi
    \leaders \hrule \@height \@wholewidth \hfil
    \if@ovl \else \kern \@ovdx \fi
    \kern \@ovri}}
\def\circle{\@ltxnomath\circle\@ifstar{\@dot}{\@circle}}
\def\@circle#1{\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
   \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
      \@ovro\ht\@tempboxa
     \setbox\@tempboxa\hbox{\@circlefnt
      \advance\@tempcnta\tw@ \char \@tempcnta
      \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
      \advance\@tempcnta\tw@
      \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
        \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
      \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
   \else  \@circ\@tempdimb{96}\fi\endgroup}
\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
\def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@
   \@tempcnta\@tempdima \@tempdima \p@
   \divide\@tempcnta\@tempdima
   \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi
   \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
   \advance\@tempcnta #2\relax
   \@circlefnt \char\@tempcnta}
\thinlines
\newcount\@xarg
\newcount\@yarg
\newcount\@yyarg
\newcount\@multicnt
\newdimen\@xdim
\newdimen\@ydim
\newbox\@linechar
\newdimen\@linelen
\newdimen\@clnwd
\newdimen\@clnht
\newdimen\@dashdim
\newbox\@dashbox
\newcount\@dashcnt
\message{theorem,}
\def\newtheorem#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}
\def\@nthm#1#2{%
\@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
\def\@xnthm#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}\@newctr{#1}[#3]%
\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
\global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
\def\@ynthm#1#2{\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}%
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
\global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
\def\@othm#1[#2]#3{%
  \@ifundefined{c@#2}{\@latexerr{No counter `#2' defined}\@eha}%
  {\expandafter\@ifdefinable\csname #1\endcsname
  {\global\@namedef{the#1}{\@nameuse{the#2}}%
\global\@namedef{#1}{\@thm{#2}{#3}}%
\global\@namedef{end#1}{\@endtheorem}}}}

\def\@thm#1#2{\refstepcounter
    {#1}\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
\def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname
       the#1\endcsname}{#3}\ignorespaces}
\def\@thmcounter#1{\noexpand\arabic{#1}}
\def\@thmcountersep{.}
\def\@begintheorem#1#2{\trivlist
   \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
\def\@endtheorem{\endtrivlist}
\message{lengths,}
\def\newlength#1{\@ifdefinable#1{\newskip#1}}
\def\setlength#1#2{#1#2\relax}
\def\addtolength#1#2{\advance#1 #2\relax}
   %% \relax added 24 Mar 86
\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{#3}#2#1\@tempboxa
       \setbox\@tempboxa\box\voidb@x}
\def\settoheight{\@settodim\ht}
\def\settodepth {\@settodim\dp}
\def\settowidth {\@settodim\wd}
\def\@settopoint#1{\divide#1\p@\multiply#1\p@}
\message{title,}
\def\title#1{\gdef\@title{#1}}
\def\@title{\@latexerr{No \noexpand\title given}\@ehc}
\def\author#1{\gdef\@author{#1}}
\def\@author{\@@warning{No \noexpand\author given}}
\def\date#1{\gdef\@date{#1}}
\gdef\@date{\today}
\def\thanks#1{\footnotemark\begingroup
\def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks
  \protect\footnotetext[\the\c@footnote]{#1}}\endgroup}
\def\@thanks{}
\def\and{%%                             % \begin{tabular}
\end{tabular}\hskip 1em \@plus.17fil\begin{tabular}[t]{c}%% \end{tabular}
}
\message{sectioning,}
\newcount\@secpenalty
\@secpenalty = -300
\newif\if@noskipsec \@noskipsectrue
\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
   \par \@tempskipa #4\relax
   \@afterindenttrue
   \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
   \if@nobreak \everypar{}\else
     \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
     \let\@svsec\@empty\else
     \refstepcounter{#1}%
     \let\@@protect\protect
     \def\protect{\noexpand\protect\noexpand}%
     \edef\@svsec{\@seccntformat{#1}}%
     \let\protect\@@protect\fi
     \@tempskipa #5\relax
      \ifdim \@tempskipa>\z@
        \begingroup #6\relax
          \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}%
        \endgroup
       \csname #1mark\endcsname{#7}\addcontentsline
         {toc}{#1}{\ifnum #2>\c@secnumdepth \else
                      \protect\numberline{\csname the#1\endcsname}\fi
                    #7}\else
        \def\@svsechd{#6\hskip #3\relax  %% \relax added 2 May 90
                   \@svsec #8\csname #1mark\endcsname
                      {#7}\addcontentsline
                           {toc}{#1}{\ifnum #2>\c@secnumdepth \else
                             \protect\numberline{\csname the#1\endcsname}\fi
                       #7}}\fi
     \@xsect{#5}}
\def\@seccntformat#1{\csname the#1\endcsname\hskip 1em}
\def\@xsect#1{\@tempskipa #1\relax
      \ifdim \@tempskipa>\z@
       \par \nobreak
       \vskip \@tempskipa
       \@afterheading
    \else \global\@nobreakfalse \global\@noskipsectrue
       \everypar{\if@noskipsec \global\@noskipsecfalse
                   \clubpenalty\@M \hskip -\parindent
                   \begingroup \@svsechd \endgroup \unskip
                   \@tempskipa #1\relax
                   \hskip -\@tempskipa
                  \else \clubpenalty \@clubpenalty
                    \everypar{}\fi}\fi\ignorespaces}
\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
   \ifdim \@tempskipa>\z@
     \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup
   \else \def\@svsechd{#4\hskip #1\relax #5}\fi
    \@xsect{#3}}
\newif\if@afterindent \@afterindenttrue
\def\@afterheading{\global\@nobreaktrue
      \everypar{\if@nobreak
                   \global\@nobreakfalse
                   \clubpenalty \@M
                   \if@afterindent \else {\setbox\z@\lastbox}\fi
                 \else \clubpenalty \@clubpenalty
                    \everypar{}\fi}}
\def\@hangfrom#1{\setbox\@tempboxa\hbox{#1}%
      \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
\newcount\c@secnumdepth
\newcount\c@tocdepth
\def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}
\def\sectionmark#1{}
\def\subsectionmark#1{}
\def\subsubsectionmark#1{}
\def\paragraphmark#1{}
\def\subparagraphmark#1{}
\message{contents,}
\def\@starttoc#1{\begingroup
  \makeatletter
  \@input{\jobname.#1}\if@filesw
  \expandafter\newwrite\csname tf@#1\endcsname
             \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
  \fi \global\@nobreakfalse \endgroup}
\def\addcontentsline#1#2#3{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\def\protect##1{\string\string\string##1\string\space
   \space}\@temptokena{\thepage}%
\edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect
     \contentsline{#2}{#3}{\the\@temptokena}}}}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
\long\def\addtocontents#1#2{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\def\protect##1{\string\string\string##1\string\space\space}%
\edef\@tempa{\write \@auxout {\string\@writefile{#1}{#2}}}\@tempa
  \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
\def\contentsline#1{\csname l@#1\endcsname}
\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
  \vskip \z@ \@plus.2\p@
  {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode
   \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
    #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
       mu$}\hfill \nobreak
           \hbox to\@pnumwidth{\hfil\reset@font\rmfamily #5}\par}\fi}
\def\numberline#1{\hbox to\@tempdima{#1\hfil}}
\message{index,}
\def\makeindex{\if@filesw \newwrite\@indexfile
  \immediate\openout\@indexfile=\jobname.idx
  \def\index{\@bsphack\begingroup
             \def\protect####1{\string####1\space}\@sanitize
             \@wrindex}\typeout
  {Writing index file \jobname.idx }\fi}
\def\@wrindex#1{\let\thepage\relax
   \edef\@tempa{\write\@indexfile{\string
      \indexentry{#1}{\thepage}}}\expandafter\endgroup\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\index{\@bsphack\begingroup \@sanitize\@index}
\def\@index#1{\endgroup\@esphack}
\def\makeglossary{\if@filesw \newwrite\@glossaryfile
  \immediate\openout\@glossaryfile=\jobname.glo
  \def\glossary{\@bsphack\begingroup
                \def\protect####1{\string####1\space}\@sanitize
                \@wrglossary}\typeout
  {Writing glossary file \jobname.glo }\fi}
\def\@wrglossary#1{\let\thepage\relax
   \edef\@tempa{\write\@glossaryfile{\string
      \glossaryentry{#1}{\thepage}}}\expandafter\endgroup\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\glossary{\@bsphack\begingroup\@sanitize\@index}
\message{bibliography,}
\def\bibitem{\@ifnextchar[{\@lbibitem}{\@bibitem}}
\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
      {\def\protect##1{\string ##1\space}\immediate
       \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
       {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
\def\bibcite#1#2{\global\@namedef{b@#1}{#2}}
\let\citation\@gobble
\def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
\def\@citex[#1]#2{%
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@iden\@citeb}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{{\reset@font\bfseries ?}\@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
\let\bibdata=\@gobble
\let\bibstyle=\@gobble
\def\bibliography#1{\if@filesw
  \immediate\write\@auxout{\string\bibdata{#1}}\fi
  \@input{\jobname.bbl}}
\def\bibliographystyle#1{\if@filesw\immediate\write\@auxout
    {\string\bibstyle{#1}}\fi}
\def\nocite#1{\@bsphack
  \@for\@citeb:=#1\do{%
    \edef\@citeb{\expandafter\@iden\@citeb}%
    \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi}%
  \@esphack}
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
\def\@biblabel#1{[#1]}
\message{floats,}
\newcount\@floatpenalty
\def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}}
\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  ext@#1\endcsname}{#1}{\protect\numberline{\csname
  the#1\endcsname}{\ignorespaces #2}}\begingroup
    \@parboxrestore
    \normalsize
    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  \endgroup}
\def\@float#1{\@ifnextchar[{\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat
    {#1}[\csname fps@#1\endcsname]}\@tempa}}
\def\@xfloat#1[#2]{%
   \def \@captype {#1}%
   \def \@fps {#2}%
   \def \@tempb {!}%
   \ifx \@tempb \@fps
     \@fpsadddefault
   \else
     \ifx \@fps \@empty
       \@fpsadddefault
     \fi
   \fi
   \ifhmode
     \@bsphack
     \@floatpenalty -\@Mii
   \else
     \@floatpenalty-\@Miii
   \fi
   \ifinner
     \@parmoderr\@floatpenalty\z@
   \else
     \@next\@currbox\@freelist
       {\@tempcnta \sixt@@n
        \expandafter \@tfor \expandafter \@tempa
          \expandafter :\expandafter =\@fps\do
           {\if \@tempa h%
              \ifodd \@tempcnta
              \else
                \advance \@tempcnta \@ne
              \fi
            \fi
            \if \@tempa t%
              \@setfpsbit \tw@
            \fi
            \if \@tempa b%
              \@setfpsbit 4
            \fi
            \if \@tempa p%
              \@setfpsbit 8
            \fi
            \if \@tempa !%
              \ifnum \@tempcnta>15
                \advance\@tempcnta -\sixt@@n\relax
              \fi
            \fi
            }%
        \@tempcntb \csname ftype@\@captype \endcsname
        \multiply \@tempcntb \@xxxii
        \advance \@tempcnta \@tempcntb
        \global \count\@currbox \@tempcnta
        }%
     \@fltovf
   \fi
   \global\setbox\@currbox\vbox\bgroup
   \hsize\columnwidth \@parboxrestore
}
\def\end@float{\par\vskip\z@skip\egroup %% \par\vskip\z@ added 15 Dec 87
   \ifnum\@floatpenalty <\z@
     \@cons\@currlist\@currbox
     \ifdim \ht\@currbox >\textheight
        \@warning{Float larger than \string\textheight}%
        \ht\@currbox\textheight \fi
     \ifnum\@floatpenalty <-\@Mii
        \penalty -\@Miv
        \@tempdima\prevdepth    %% saving and restoring \prevdepth added
        \vbox{}%                %% 26 May 87 to prevent extra vertical
        \prevdepth \@tempdima   %% space when used in vertical mode
        \penalty\@floatpenalty
      \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
     \fi\fi}
\def\@dblfloat{\if@twocolumn\let\@tempa\@dbflt\else\let\@tempa\@float\fi
  \@tempa}
\def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}}
\def\@xdblfloat#1[#2]{\@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth}
\def\end@dblfloat{\if@twocolumn
     \par\vskip\z@skip\egroup %% \par\vskip\z@ added 15 Dec 87\egroup
     \ifnum\@floatpenalty <\z@
       \ifdim\ht\@currbox >\textheight
         \@warning{Float larger than \string\textheight}%
         \ht\@currbox\textheight \fi
        \@cons\@dbldeferlist\@currbox\fi
      \ifnum \@floatpenalty =-\@Mii \@Esphack\fi\else\end@float\fi}
\def\@floatplacement{\global\@topnum\c@topnumber
    % Textpage bit, global:
   \global\@toproom \topfraction\@colht
   \global\@botnum  \c@bottomnumber
   \global\@botroom \bottomfraction\@colht
   \global\@colnum  \c@totalnumber
    % Floatpage bit, local:
   \@fpmin   \floatpagefraction\@colht}
\def \@dblfloatplacement {%
  \global \@dbltopnum \c@dbltopnumber
  \global \@dbltoproom \dbltopfraction\@colht
  \@textmin \@colht
  \advance \@textmin -\@dbltoproom
  \@fpmin \dblfloatpagefraction\textheight
  \@fptop \@dblfptop
  \@fpsep \@dblfpsep
  \@fpbot \@dblfpbot
}
\def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global
      \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf\def\@currbox{\@tempboxa
           }\def\@marbox{\@tempboxa}}\fi
     \@ifnextchar [{\@xmpar}{\@ympar}}
\long\def\@xmpar[#1]#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox
   {#2}\@xympar}
\long\def\@ympar#1{\@savemarbox\@marbox{#1}\global\setbox\@currbox
     \copy\@marbox\@xympar}
\long\def\@savemarbox#1#2{\global\setbox#1\vtop{\hsize\marginparwidth
   \@parboxrestore #2}}
\def\@xympar{\ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
     \setbox\@tempboxa\vbox   %% added 3 Jan 88
     \bgroup\end@float\global\@ignorefalse\@esphack}
\def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue}
\def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse}
\message{footnotes,}
\@definecounter{footnote}
\def\thefootnote{\arabic{footnote}}
\@definecounter{mpfootnote}
\def\thempfootnote{\alph{mpfootnote}}
\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
\newdimen\footnotesep
\def\footnote{\@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}%
     \begingroup%\let\protect\noexpand
         \def\protect{\noexpand\protect\noexpand}%
       \xdef\@thefnmark{\thempfn}\endgroup
     \@footnotemark\@footnotetext}}
\def\@xfootnote[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thempfn}\endgroup
   \@footnotemark\@footnotetext}
\long\def\@footnotetext#1{\insert\footins{\reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
    \let\@tempa\protect
    \def\protect{\noexpand\protect\noexpand}%
    \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
    \let\protect\@tempa
    \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}}
\def\footnotemark{\@ifnextchar[{\@xfootnotemark}{\stepcounter{footnote}%
     \begingroup\def\protect{\noexpand\protect\noexpand}%
       \xdef\@thefnmark{\thefootnote}\endgroup
     \@footnotemark}}
\def\@xfootnotemark[#1]{\begingroup \c@footnote #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}
\def\@footnotemark{\leavevmode\ifhmode
  \edef\@x@sf{\the\spacefactor}\fi \@makefnmark
   \ifhmode\spacefactor\@x@sf\fi\relax}
\def\footnotetext{\@ifnextchar [{\@xfootnotenext}%
   {\begingroup\def\protect{\noexpand\protect\noexpand}%
      \xdef\@thefnmark{\thempfn}\endgroup
    \@footnotetext}}
\def\@xfootnotenext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax
   \def\protect{\noexpand\protect\noexpand}%
   \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}
\def\@mpfn{footnote}
\def\thempfn{\thefootnote}
\message{initial,}
\def\documentstyle{\@ifnextchar[{\@documentstyle}{\@documentstyle[]}}
\def\@documentstyle[#1]#2{\makeatletter
   \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sty\relax
   \let\@elt\input \@optionfiles \let\@elt\relax \makeatother}
\def\@options{\let\@elt\relax
    \@for\@tempa:=\@optionlist\do
        {\@ifundefined{ds@\@tempa}{\xdef\@optionfiles{\@optionfiles
             \@elt \@tempa.sty\relax}}{\csname ds@\@tempa\endcsname}}}
\def\pagestyle#1{\@nameuse{ps@#1}}
\def\thispagestyle#1{\global\@specialpagetrue\gdef\@specialstyle{#1}}
\def\ps@empty{\let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty
\let\@evenhead\@empty\let\@evenfoot\@empty}
\def\ps@plain{\let\@mkboth\@gobbletwo
     \let\@oddhead\@empty\def\@oddfoot{\reset@font\rmfamily\hfil\thepage
     \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
\def\@leftmark#1#2{#1}
\def\@rightmark#1#2{#2}
\def\markboth#1#2{\gdef\@themark{{#1}{#2}}{\let\protect\noexpand
     \let\label\relax \let\index\relax \let\glossary\relax
     \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
\def\markright#1{{\let\protect\noexpand
     \let\label\relax \let\index\relax \let\glossary\relax
     \expandafter\@markright\@themark
     {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
\def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}}
\def\leftmark{\expandafter\@leftmark\botmark{}{}}
\def\rightmark{\expandafter\@rightmark\firstmark{}{}}
\def\@themark{{}{}}
\def\raggedbottom{\def\@textbottom{\vskip \z@ \@plus.0001fil}\let\@texttop\relax}
\def\flushbottom{\let\@textbottom\relax \let\@texttop\relax}
\def\sloppy{\tolerance 9999
            \emergencystretch 3em
            \hfuzz .5\p@ \vfuzz .5\p@}
\def\sloppypar{\par\sloppy}
\def\endsloppypar{\par}
\def\fussy{\tolerance 200 \hfuzz .1\p@ \vfuzz .1\p@}
\overfullrule 0pt
\input ltoutput.ltx
\message{debugging,}
\def\showoverfull{\tracingonline=1}
\tracingstats1   % SHOWS HOW MUCH STUFF TeX HAS USED
\def\showoutput{\tracingonline1\tracingoutput1
    \showboxbreadth99999\showboxdepth99999\errorstopmode}
\def\makeatletter{\catcode`\@=11\relax}
\def\makeatother{\catcode`\@=12\relax}
\newcount\@lowpenalty
\newcount\@medpenalty
\newcount\@highpenalty
\unitlength = 1pt
\fboxsep = 3pt
\fboxrule = .4pt
\@maxdepth       = \maxdepth
\vsize = 1000pt
\@colroom = \vsize
\@colht = \vsize
\catcode`\^^@=\active \let^^@=\@invalidchar
\catcode`\^^A=\active \let^^A=\@invalidchar
\catcode`\^^B=\active \let^^B=\@invalidchar
\catcode`\^^C=\active \let^^C=\@invalidchar
\catcode`\^^D=\active \let^^D=\@invalidchar
\catcode`\^^E=\active \let^^E=\@invalidchar
\catcode`\^^F=\active \let^^F=\@invalidchar
\catcode`\^^G=\active \let^^G=\@invalidchar
\catcode`\^^H=\active \let^^H=\@invalidchar
\catcode`\^^K=\active \let^^K=\@invalidchar
\catcode`\^^N=\active \let^^N=\@invalidchar
\catcode`\^^O=\active \let^^O=\@invalidchar
\catcode`\^^P=\active \let^^P=\@invalidchar
\catcode`\^^Q=\active \let^^Q=\@invalidchar
\catcode`\^^R=\active \let^^R=\@invalidchar
\catcode`\^^S=\active \let^^S=\@invalidchar
\catcode`\^^T=\active \let^^T=\@invalidchar
\catcode`\^^U=\active \let^^U=\@invalidchar
\catcode`\^^V=\active \let^^V=\@invalidchar
\catcode`\^^W=\active \let^^W=\@invalidchar
\catcode`\^^X=\active \let^^X=\@invalidchar
\catcode`\^^Y=\active \let^^Y=\@invalidchar
\catcode`\^^Z=\active \let^^Z=\@invalidchar
\catcode`\^^[=\active \let^^[=\@invalidchar
\catcode`\^^\=\active \let^^\=\@invalidchar
\catcode`\^^]=\active \let^^]=\@invalidchar
\catcode`\^^^=\active \let^^^=\@invalidchar
\catcode`\^^_=\active \let^^_=\@invalidchar
\catcode`\^^?=\active \let^^?=\@invalidchar

\iffalse
\fi

\def\fileversion{v0.2r}
\def\filedate{1993/12/19}

\makeatletter
\newif\if@compatibility
\let\@compatibility\relax
\let\@declaredoptions\@empty
\let\@classoptionslist\relax
\let\@unusedoptionlist\@empty
\let\CurrentOption\@empty
\let\@currname\@empty
\global\let\@currext=\@empty

\def\@clsextension{cls}
\def\@pkgextension{sty}
\def\@pushfilename{%
  \xdef\@currnamestack{%
    {\@currname}%
    {\@currext}%
    {\the\catcode`\@}%
    \@currnamestack}}
\@onlypreamble\@pushfilename
\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
\@onlypreamble\@popfilename
\def\@p@pfilename#1#2#3#4\@nil{%
  \gdef\@currname{#1}%
  \gdef\@currext{#2}%
  \catcode`\@#3\relax
  \gdef\@currnamestack{#4}}
\gdef\@currnamestack{}
\def\@ptionlist#1{%
  \@ifundefined{opt@#1}\@empty{\csname opt@#1\endcsname}}
\def\@ifpackageloaded{\@ifl@aded\@pkgetension}
\def\@ifclassloaded{\@ifl@aded\@clsextension}
\def\@ifl@aded#1#2{%
  \expandafter\ifx\csname ver@#2.#1\endcsname\relax
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
\def\@ifpackagelater{\@ifl@ter\@pkgextension}
\def\@ifclasslater{\@ifl@ter\@clsextension}
\def\@ifl@ter#1#2{%
  \expandafter\@ifl@t@r
    \csname ver@#2.#1\endcsname}
\def\@ifl@t@r#1#2{%
  \ifnum\expandafter\@parse@version#1//00\@nil<%
        \expandafter\@parse@version#2//00\@nil
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi}
\def\@parse@version#1/#2/#3#4#5\@nil{#1#2#3#4 }
\def\@ifpackagewith{\@if@ptions\@pkgextension}
\def\@ifclasswith{\@if@ptions\@clsextension}
\def\@if@ptions#1#2{%
  \@expandtwoargs\@if@pti@ns{\@ptionlist{#2.#1}}}
\def\@if@pti@ns#1#2{%
  \let\@tempa\@firstoftwo
  \@for\@tempb:=#2\do{%
    \expandafter\in@\expandafter{\@tempb}{#1}%
    \ifin@\else\let\@tempa\@secondoftwo\fi}%
  \@tempa}
\def\ProvidesPackage#1{%
  \edef\@tempa{#1}%
  \ifx\@tempa\@currname\else
    \@@warning{You have requested \@cls@pkg\space`\@currname',^^J%
      \@spaces but the \@cls@pkg\space provides `#1'}%
  \fi
  \@ifnextchar[{\@pr@videpackage}{}}%]
\@onlypreamble\ProvidesPackage
\def\@pr@videpackage[#1]{%
  \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}}
\let\ProvidesClass\ProvidesPackage
\@onlypreamble\ProvidesClass
\def\ProvidesFile#1{%
  \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
\def\@providesfile#1[#2]{%
  \expandafter\xdef\csname ver@#1\endcsname{#2}}
\def\@pass@ptions#1#2#3{%
  \expandafter\xdef\csname opt@#3.#1\endcsname{%
    \@ifundefined{opt@#3.#1}\@empty
      {\csname opt@#3.#1\endcsname,}%
    \zap@space#2 \@empty}}
\def\PassOptionsToPackage{\@pass@ptions\@pkgextension}
\def\PassOptionsToClass{\@pass@ptions\@clsextension}
\@onlypreamble\PassOptionsToPackage
\@onlypreamble\PassOptionsToClass
\def\DeclareOption{%
  \let\@fileswith@pti@ns\@badrequireerror
  \@ifstar{\@defdefault@ds}\@declareoption}
\def\@declareoption#1#2{%
   \xdef\@declaredoptions{\@declaredoptions,#1}%
   \@namedef{ds@#1}{#2}}
\def\@defdefault@ds#1{\def\default@ds{#1}}
\@onlypreamble\DeclareOption
\def\OptionNotUsed{%
  \ifx\@currext\@clsextension
    \xdef\@unusedoptionlist{%
      \ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
      \CurrentOption}%
  \fi}
\@onlypreamble\OptionNotUsed
\def\ProcessOptions{%
  \let\ds@\@empty
  \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
  \@ifstar\@xprocess@ptions\@process@ptions}
\@onlypreamble\@process@ptions
\@onlypreamble\@xprocess@ptions
\@onlypreamble\@process@pti@ns
\def\@process@ptions{%
  \@for\CurrentOption:=\@declaredoptions\do{%
    \ifx\CurrentOption\@empty\else
      \@expandtwoargs\in@\CurrentOption{%
         \ifx\@currext\@clsextension\else\@classoptionslist,\fi
         \@curroptions}%
      \ifin@
        \@use@ption
        \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
      \fi
    \fi}%
  \@process@pti@ns}
\def\@xprocess@ptions{%
  \ifx\@currext\@clsextension\else
    \@for\CurrentOption:=\@classoptionslist\do{%
      \ifx\CurrentOption\@empty\else
        \@expandtwoargs\in@\CurrentOption\@declaredoptions
        \ifin@
          \@use@ption
          \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
        \fi
      \fi}%
  \fi
  \@process@pti@ns}
\def\@process@pti@ns{%
  \@for\CurrentOption:=\@curroptions\do{%
    \@ifundefined{ds@\CurrentOption}%
      {\@use@ption
       \default@ds}%
      \@use@ption}%
  \@for\CurrentOption:=\@declaredoptions\do{%
    \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
  \let\@fileswith@pti@ns\@@fileswith@pti@ns}
\def\@options{\ProcessOptions*}
\def\@use@ption{%
  \csname ds@\CurrentOption\endcsname
  \@expandtwoargs\@removeelement\CurrentOption
  \@unusedoptionlist\@unusedoptionlist}
\def\ExecuteOptions#1{%
  \def\@tempa##1\@nil{%
    \@for\CurrentOption:=#1\do{\csname ds@\CurrentOption\endcsname}%
    \edef\CurrentOption{##1}}%
  \expandafter\@tempa\CurrentOption\@nil}
\def\documentclass{%
  \let\documentclass\@twoclasseserror
  \let\usepackage\RequirePackage
  \@fileswithoptions\@clsextension}
\@onlypreamble\documentclass
\def\documentstyle{%
  \makeatletter\input{latex209.cmp}\makeatother
  \documentclass}
\@onlypreamble\documentstyle
\def\RequirePackage{%
  \@fileswithoptions\@pkgextension}
\@onlypreamble\RequirePackage
\def\LoadClass{%
  \ifx\@currext\@pkgextension
     \@latexerr
      {\noexpand\LoadClass in package file.}%
      {You may only use \noexpand\LoadClass in a class file}%
  \fi
  \@fileswithoptions\@clsextension}
\@onlypreamble\LoadClass
\def\usepackage{%
  \@latexerr
    {\noexpand \usepackage before \noexpand\documentclass}
    {\noexpand \usepackage may only appear in the document preamble.}}
\@onlypreamble\usepackage
\def\NeedsTeXFormat#1{%
  \def\@tempa{#1}%
  \ifx\@tempa\fmtname
    \expandafter\@needsformat
  \else
     \@latexerr{This file needs format^^J%
     \@spaces \@tempa\space but this is \fmtname}\@ehd
    \expandafter\@@end
  \fi}
\@onlypreamble\NeedsTeXFormat
\def\@needsformat{%
  \@ifnextchar[%]
    \@needsf@rmat
    {}}
\def\@needsf@rmat[#1]{%
    \@ifl@t@r\fmtversion{#1}{}%
    {\@@warning{You have requested version^^J%
     \@spaces `#1' of \fmtname,^^J%
     \@spaces but only version `\fmtversion'^^J%
     \@spaces is available}}}
\def\zap@space#1 #2{%
  #1%
  \ifx#2\@empty\else\expandafter\zap@space\fi
  #2}
\def\@fileswithoptions#1{%
  \@ifnextchar[%]
    {\@fileswith@ptions#1}%
    {\@fileswith@ptions#1[]}}
\@onlypreamble\@fileswithoptions
\def\@fileswith@ptions#1[#2]#3{%
  \@ifnextchar[%]
  {\@fileswith@pti@ns#1[#2]#3}%
  {\@fileswith@pti@ns#1[#2]#3[]}}
\@onlypreamble\@fileswith@ptions
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
  \ifx#1\@clsextension
    \@ifundefined{@classoptionslist}%
      {\xdef\@classoptionslist{\zap@space#2 \@empty}}%
      {}%
    \@onefilewithoptions#3[#2][#4]#1%
    \@compatibility
  \else
    \edef\@tempa{\zap@space#3 \@empty}%
    \@for\@currpkg:=\@tempa\do{%
      \expandafter\@onefilewithoptions\@currpkg[#2][#4]#1}%
  \fi}
\@onlypreamble\@fileswith@pti@ns
\def\@onefilewithoptions#1[#2][#3]#4{%
  \@pushfilename
  \xdef\@currname{#1}%
  \global\let\@currext#4%
  \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
  \let\CurrentOption\@empty
  \@reset@ptions
  \makeatletter
  \@ifl@aded\@currext{#1}%
    {\@if@ptions\@currext{#1}{#2}{}
      {\@latexerr
          {Option clash for \@cls@pkg\space #1}%
          {The package #1 has already been loaded with the options:^^J%
           [\@ptionlist{#1.\@currext}]^^J%
           There has now been an attempt to load it with the options^^J%
           [#2]^^J%
           Adding the line:^^J%
           \string\usepackage[\@ptionlist{#1.\@currext},#2]{#1}^^J%
           to your document may fix this.^^J%
           Try typing \space <return> \space to proceed.}}}%
    {\@pass@ptions\@currext{#2}{#1}%
     \@pr@videpackage[]%
     \InputIfFileExists
       {\@currname.\@currext}%
       {}%
       {\@missingfileerror\@currname\@currext}}%
  \@ifl@ter\@currext{#1}{#3}{}
    {\@warning{You have requested version^^J%
       \@spaces `#3' of \@cls@pkg\space #1,^^J%
       \@spaces but only version
         \csname ver@#1.\@currext\endcsname^^J%
       \@spaces is available.^^J}}%
  \csname\@currname.\@currext-h@@k\endcsname
  \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@undefined
  \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
  \@popfilename
  \@reset@ptions}
\@onlypreamble\@onefilewithoptions
\let\@@fileswith@pti@ns\@fileswith@pti@ns
\def\@reset@ptions{%
  \global\ifx\@currext\@clsextension
    \let\default@ds\OptionNotUsed
   \else
    \let\default@ds\@unknownoptionerror
  \fi
  \global\let\ds@\@empty
  \global\let\@declaredoptions\@empty}
\@onlypreamble\@reset@ptions
\let\@begindocumenthook\@empty
\let\@enddocumenthook\@empty
\def\g@addto@macro#1#2{%
  \expandafter\gdef\expandafter#1\expandafter{#1#2}}
\def\AtEndOfPackage{%
  \expandafter\g@addto@macro\csname\@currname.\@currext-h@@k\endcsname}
\let\AtEndOfClass\AtEndOfPackage
\def\AtBeginDocument{\g@addto@macro\@begindocumenthook}
\def\AtEndDocument{\g@addto@macro\@enddocumenthook}
\@onlypreamble\AtBeginDocument
\def\@cls@pkg{%
  \ifx\@currext\@clsextension
    document class%
  \else
    package%
  \fi}
\def\@unknownoptionerror{%
  \@latexerr
    {Unknown option `\CurrentOption' for \@cls@pkg\space`\@currname'}%
    {The option `\CurrentOption' was not declared in
     \@cls@pkg\space`\@currname'.^^J%
     Try typing \space <return>
     \space to proceed.}}
\def\@badrequireerror#1[#2]#3[#4]{%
  \@latexerr
    {\noexpand\RequirePackage or \noexpand\LoadClass in Options Section}%
    {\@cls@pkg\space \@currname\space is defective.^^J%
     It attempts to load #3 in
    the options section.}}
\@onlypreamble\@badrequireerror
\def\@twoloadclasserror{%
  \@latexerr
    {Two \noexpand\LoadClass commands.}%
    {You may only use one \noexpand\LoadClass in a class file}}
\@onlypreamble\@twoloadclasserror
\def\@twoclasseserror#1#{%
  \@latexerr
    {Two \noexpand\documentclass or \noexpand\documentstyle commands.}%
    {The document may only declare one class.}\@gobble}
\@onlypreamble\@twoclasseserror
\def\@missingfileerror#1#2{%
     \typeout{File `#1.#2' not found.^^J%
      New name (default extension: #2) or <RETURN>?}%
     \message{Enter file name: }%
      {\endlinechar\m@ne
       \global\read\m@ne to\@gtempa}%
    \ifx\@gtempa\@empty
    \else
      \filename@parse\@gtempa
      \edef\filename@ext{\ifx\filename@ext\relax#2\else\filename@ext\fi}%
     \edef\@tempa{%
       \noexpand\InputIfFileExists
         {\filename@area\filename@base.\filename@ext}%
         {}%
         {\noexpand\@missingfileerror
            {\filename@area\filename@base}{\filename@ext}}}%
      \@tempa
    \fi}
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\begingroup%
\catcode`\^^M\active%
\gdef\filecontents#1{%
  \openin\@inputcheck#1 %
  \ifeof\@inputcheck%
    \typeout{^^JWriting \@currdir#1^^J}%
    \chardef\verbatim@out15 %
    \ch@ck7\verbatim@out\write%
  \else%
    \typeout{^^JFile `#1' already exists on the system.}%
    \typeout{^^JNot generating it from this source.^^J}%
    \def\immediate##1\relax{}%
  \fi%
  \immediate\openout\verbatim@out=#1\relax%
  \immediate\write\verbatim@out{%
  \@percentchar\@percentchar\space LaTeX2e file `#1'^^J%
  \@percentchar\@percentchar\space  generated by the %
         `filecontents' environment^^J%
  \@percentchar\@percentchar\space from source `\jobname' on %
         \number\year/\two@digits\month/\two@digits\day.^^J%
      \@percentchar\@percentchar}\relax%
  \let\do\@makeother\dospecials%
  \@vwrend%
  \catcode`\^^M\active%
  \def^^M##1^^M%
    {\def\@tempb{##1}%
     \ifx\@tempb\@tempa\expandafter\end\expandafter{\@currenvir}%
     \else\immediate\write\verbatim@out{##1}\relax\expandafter^^M\fi}}%
\endgroup%
\begingroup
\catcode`/=0
\catcode`<=\catcode`{
\catcode`>=\catcode`}
\catcode`|=\catcode`\%
/catcode`/\=12
/catcode`/{=12
/catcode`/}=12
/catcode`/%=12
/gdef/@percentchar<%>
/gdef/@vwrend</edef/@tempa<\end{/@currenvir}>>
/gdef/endfilecontents<|
  /immediate/write/verbatim@out<\endinput>/relax|
  /immediate/closeout/verbatim@out/relax>
/endgroup
\@onlypreamble\filecontents
\@onlypreamble\endfilecontents
\let\@filelist\@gobble
\def\listfiles{%
  \AtEndDocument{%
     \typeout{^^J^^J***File List***}%
     \@for\@tempa:=\@filelist\do{%
       \expandafter\let\expandafter\@tempb\csname ver@\@tempa\endcsname
       \typeout{\@tempa\ifx\@tempb\relax\else\@spaces\@tempb\fi}}
     \typeout{***********^^J}}}
\def\fileversion{1.0b}
\def\filedate{93/12/19}
\def\docdate{93/12/13}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\message{hyphenation}
\IfFileExists{lhyphen.cfg}
           {\typeout{********************************************^^J%
                     *^^J%
                     * Local configuration file lhyphen.cfg used^^J%
                     *^^J%
                     ********************************************}%
            \@@input lhyphen.cfg }
           {\@@input lhyphen.ltx }
\makeatother
\dump
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%% 
%% End of file `latex2e.ltx'.
