%%
%% This is file `startex.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% startex.dtx  (with options: `code')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from startex.tex.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file startex.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\def \CodeVersion {1.04}
\def \CodeDate    {11th March 1999}
%% \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         \~}
\let \State = x
\def \Command #1>{\ifDefining
    \def \Next {\lowercase{\DefineCmd{#1}}}%
  \else
    \lowercase{\expandafter\ifx \csname >#1\endcsname}\relax
      \Error{Unknown command <#1> ignored.}{}%
      \let \Next = \relax
    \else
      \def \Next {\lowercase{\csname >#1\endcsname}}%
    \fi
  \fi \Next }
{\catcode `\< = \active  \global\let < = \Command }
\def \Cdef #1#2{\expandafter\gdef \csname >#1\endcsname{#2}}
\def \Ccall #1{\csname >#1\endcsname}
\newif \ifDefining
\Cdef {define}{\Definingtrue}
\def \DefineCmd #1{\Definingfalse
  \ifnum \CallLevel>0
    \Error{Nested definitions are not allowed;}%
      {the definition of <#1> is ignored.}\let \Next = \relax
  \else
    \expandafter\ifx \csname>#1\endcsname\relax
      \def \Next {\begingroup \catcode`\^^M = 12 \FetchDef{#1}}%
    \else
      \Error{Command <#1> already defined;}{this definition ignored.}%
      \def \Next {\begingroup \catcode`\^^M = 12 \IgnoreDef{#1}}%
    \fi
  \fi \Next }
\begingroup \catcode`\^^M = 12
  \gdef \FetchDef #1#2^^M{\expandafter%
    \gdef\csname>#1\endcsname {\Call #2\Return }\endgroup }%
  \gdef \IgnoreDef #1#2^^M{\endgroup }%
\endgroup
\newcount \CallLevel
\def \Call   {\global\advance \CallLevel by  1 }
\def \Return {\global\advance \CallLevel by -1 }
\def \SpecialCatCodes {%
  \catcode `\\ = 12  \catcode `\{ = 12  \catcode `\} = 12
  \catcode `\$ = 12  \catcode `\& = 12  \catcode `\# = 12
  \catcode `\^ = 12  \catcode `\_ = 12  \catcode `\~ = 12
  \catcode `\% = 12  \catcode `\< = \active }
\def \StandardCatCodes {%
  \catcode `\\ = 0  \catcode `\{ = 1  \catcode `\} = 2
  \catcode `\$ = 3  \catcode `\& = 4  \catcode `\# = 6
  \catcode `\^ = 7  \catcode `\_ = 8  \catcode `\~ = \active
  \catcode `\% = 14 \catcode `\< = 12 }
\def \NewEnvir #1#2#3{#2\relax
  \let \PrevEnv = \CurEnv  \PrevEnvLine = \CurEnvLine
  \def \CurEnv {#1}\def \CurEnvExit {#3}\CurEnvLine = \inputlineno }
\def \CurEnv {}\def \CurEnvExit {\relax}
\newcount \CurEnvLine  \newcount \PrevEnvLine
\def \EndEnvir #1{%
  \ifTextEqual{#1}{\CurEnv}\let \Next = \CurEnvExit
  \else \EnvirError{#1}\fi
  \Next }
\def \EnvirError #1{\ifTextEqual{#1}{\PrevEnv}%
    \Error{<\CurEnv> on line \the\CurEnvLine\space terminated by
      </#1>.}{An extra </\CurEnv> has been inserted.}%
    \def \Next {\CurEnvExit \CurEnvExit }%
  \else
    \Error{<\CurEnv> on line \the\CurEnvLine\space terminated by
      </#1>.}{The </#1> will be ignored.}%
    \let \Next = \relax
  \fi }
\Cdef {style}{\IfNextChar{[}{\ReadStyle}%
  {\Error{No style name given;}{the syntax is: <style>[style name].}}}
\def \ReadStyle [#1]{\IfFileExists{#1.stx}%
    {\edef \StyleLine {\the\inputlineno}%
     \Cdef {style}{\Error{Command <style> already used on line
                     \StyleLine;}{this use of <style> is ignored.}}%
     \StandardCatCodes \input #1.stx
     \SpecialCatCodes }%
    {\Error{Style file `#1.stx' could not be found;}%
           {style definition ignored.}}}
\def \FontDef #1#2#3#4#5#6{%
  \expandafter\def \csname F-#1S#2#3#4\endcsname {#5}%
  \expandafter\def \csname F-#1A#2#3#4\endcsname {#6}}
\def \MathFontDef #1#2#3#4#5{%
  \expandafter\def \csname M-#1N#2\endcsname {#3}%
  \expandafter\def \csname M-#1S#2\endcsname {#4}%
  \expandafter\def \csname M-#1X#2\endcsname {#5}}
\def \XIpt { at 10.95pt}
\FontDef{R}{M}{U}{N}{ecrm1095}{tcrm1095}
\FontDef{R}{M}{I}{N}{ecti1095}{tcti1095}
\FontDef{R}{B}{U}{N}{ecbx1095}{tcbx1095}
\FontDef{R}{B}{I}{N}{ecbi1095}{tcbi1095}
\FontDef{T}{M}{U}{N}{ectt1095}{tctt1095}
\FontDef{T}{M}{I}{N}{ecit1095}{tcit1095}
\FontDef{T}{B}{U}{N}{ectt1095}{tctt1095}
\FontDef{T}{B}{I}{N}{ecit1095}{tcit1095}
\MathFontDef{N}{0}{cmr10\XIpt}{cmr8}{cmr6}
\MathFontDef{N}{1}{cmmi10\XIpt}{cmmi8}{cmmi6}
\MathFontDef{N}{2}{cmsy10\XIpt}{cmsy8}{cmsy6}
\MathFontDef{N}{3}{cmex10\XIpt}{cmex10\XIpt}{cmex10\XIpt}
\MathFontDef{N}{4}{cmbx10\XIpt}{cmbx8}{cmbx6}
\MathFontDef{N}{5}{ecti1095}{ecti0800}{ecti0600}
\MathFontDef{N}{6}{msbm10\XIpt}{msbm8}{msbm6}
\def \LineSkipN {12pt}  \def \CodeSkipN {11pt plus 0.0pt minus 0.1pt}
\def \XIVpt { at 14.4pt}
\FontDef{R}{M}{U}{L}{ecrm1440}{tcrm1440}
\FontDef{R}{M}{I}{L}{ecti1440}{tcti1440}
\FontDef{R}{B}{U}{L}{ecbx1440}{tcbx1440}
\FontDef{R}{B}{I}{L}{ecbi1440}{tcbi1440}
\FontDef{T}{M}{U}{L}{ectt1440}{tctt1440}
\FontDef{T}{M}{I}{L}{ecit1440}{tcit1440}
\FontDef{T}{B}{U}{L}{ectt1440}{tctt1440}
\FontDef{T}{B}{I}{L}{ecit1440}{tcit1440}
\MathFontDef{L}{0}{cmr12\XIVpt}{cmr10}{cmr8}
\MathFontDef{L}{1}{cmmi12\XIVpt}{cmmi10}{cmmi8}
\MathFontDef{L}{2}{cmsy10\XIVpt}{cmsy10}{cmsy8}
\MathFontDef{L}{3}{cmex10\XIVpt}{cmex10\XIVpt}{cmex10\XIVpt}
\MathFontDef{L}{4}{cmbx12\XIVpt}{cmbx10}{cmbx8}
\MathFontDef{L}{5}{ecti1440}{ecti1000}{ecti0800}
\MathFontDef{L}{6}{msbm10\XIVpt}{msbm10}{msbm8}
\def \LineSkipL {15pt}
\def \XVIIpt { at 17.28pt}
\FontDef{R}{M}{U}{X}{ecrm1728}{tcrm1728}
\FontDef{R}{M}{I}{X}{ecti1728}{tcti1728}
\FontDef{R}{B}{U}{X}{ecbx1728}{tcbx1728}
\FontDef{R}{B}{I}{X}{ecbi1728}{tcbi1728}
\FontDef{T}{M}{U}{X}{ectt1728}{tctt1728}
\FontDef{T}{M}{I}{X}{ecit1728}{tcit1728}
\FontDef{T}{B}{U}{X}{ectt1728}{tctt1728}
\FontDef{T}{B}{I}{X}{ecit1728}{tcit1728}
\MathFontDef{X}{0}{cmr17}{cmr12\XIVpt}{cmr9}
\MathFontDef{X}{1}{cmmi12\XVIIpt}{cmmi12}{cmmi9}
\MathFontDef{X}{2}{cmsy10\XVIIpt}{cmsy10 at 12pt}{cmsy9}
\MathFontDef{X}{3}{cmex10\XVIIpt}{cmex10\XVIIpt}{cmex10\XVIIpt}
\MathFontDef{X}{4}{cmbx12\XVIIpt}{cmbx12}{cmbx9}
\MathFontDef{X}{5}{ecti1728}{ecti1200}{ecti0900}
\MathFontDef{X}{6}{msbm10\XVIIpt}{msbm10 at 12pt}{msbm9}
\def \LineSkipX {17pt}
\FontDef{R}{M}{U}{S}{ecrm1000}{tcrm1000}
\FontDef{R}{M}{I}{S}{ecti1000}{tcti1000}
\FontDef{R}{B}{U}{S}{ecbx1000}{tcbx1000}
\FontDef{R}{B}{I}{S}{ecbi1000}{tcbi1000}
\FontDef{T}{M}{U}{S}{ectt1000}{tctt1000}
\FontDef{T}{M}{I}{S}{ecit1000}{tcit1000}
\FontDef{T}{B}{U}{S}{ectt1000}{tctt1000}
\FontDef{T}{B}{I}{S}{ecit1000}{tcit1000}
\MathFontDef{S}{0}{cmr10}{cmr7}{cmr5}
\MathFontDef{S}{1}{cmmi10}{cmmi7}{cmmi5}
\MathFontDef{S}{2}{cmsy10}{cmsy7}{cmsy5}
\MathFontDef{S}{3}{cmex10}{cmex10}{cmex10}
\MathFontDef{S}{4}{cmbx10}{cmbx7}{cmbx5}
\MathFontDef{S}{5}{ecti1000}{ecti0700}{ecti0500}
\MathFontDef{S}{6}{msbm10}{msbm7}{msbm5}
\def \LineSkipS {11pt}
\def \SelectFont {%
  \edef \ThisFont {F-\FontKind\FontAlt\FontBold\FontItal\FontSize}%
  \font \CurFont = \csname\ThisFont\endcsname \CurFont }
\def \ResetFont {%
  \def \FontKind{R}\def \FontAlt{S}\def \FontBold{M}%
  \def \FontItal{U}\def \FontSize{N}}
\def \CheckItCorr {%
  \IfNextCharTwo{.}{,}{}{\/}}
\def \SetSize #1{\def \FontSize{#1}\SelectFont
  \baselineskip = \csname LineSkip#1\endcsname
  \ParIndent = \StdParIndent }
\Cdef {b}{\NewEnvir{b}{\begingroup}{\endgroup}%
  \def\FontBold{B}\SelectFont}
\Cdef {/b}{\EndEnvir{b}}
\Cdef {i}{\NewEnvir{i}{\begingroup}{\endgroup\CheckItCorr}%
  \def\FontItal{I}\SelectFont}
\Cdef {/i}{\EndEnvir{i}}
\Cdef {tt}{\NewEnvir{tt}{\begingroup}{\endgroup}%
  \def\FontKind{T}\SelectFont}
\Cdef {/tt}{\EndEnvir{tt}}

\Cdef {body}{\NewEnvir{body}{\begingroup}{\endgroup}%
  \message{^^JThis is StarTeX, version \CodeVersion^^J}%
  \global\everypar = {\NewPar }%
  \xdef \BodyLine {\the\inputlineno}%
  \Cdef {body}{\Error{Command <body> already used on line \BodyLine;}%
    {this use of <body> was ignored.}}}
\def \BodyError {\message{^^JThis is StarTeX, version \CodeVersion^^J}%
  \Error{A <body>...</body> environment should surround
    the whole document.}{A missing <body> was inserted.}%
  \global\everypar = {\NewPar }}
\Cdef {/body}{\EndEnvir{body}\endgraf\vfill\supereject
  \let \Next = \CheckAux
  \ifRerun \let \Next = \relax \fi
  \ifAuxRead \else \let \Next = \relax \fi
  \ifAuxOpen \else \let \Next = \relax \fi
  \Next
  \ifRerun \Warning{Cross-references are not correct;}%
    {please run StarTeX again.}\fi
  \end}
\Cdef {p}{\endgraf}
\def \par {}
\pretolerance = 2500 \tolerance = 9999  \hbadness = 10000
\emergencystretch = 3cm
\parindent = 0pt \everypar = {\BodyError }
\def \NewPar {\ifIndent \kern \ParIndent \fi  \Indenttrue
  \global\parskip = \CurParSkip }
\newskip \ParIndent  \def \StdParIndent {1em}
\newif \ifIndent
\newskip \CurParSkip
\def \AddVspace #1{\ifvmode \else \endgraf \fi
  \skip1 = #1\relax
  \ifdim \lastskip < \skip1 \relax
    \ifdim \lastskip > 0pt \vskip -\lastskip \fi
    \vskip \skip1
  \fi \parskip = 0pt \relax }
\Cdef {title}{\AddVspace{30pt plus 10pt}
  \NewEnvir{title}{\begingroup}{\endgraf\endgroup}
  \leftskip = 2cm plus 1fill  \rightskip = \leftskip
  \ParIndent = 0pt  \CurParSkip = 0pt
  \ResetFont \SetSize{X}}
\Cdef {/title}{\EndEnvir{title}%
  \AddVspace{20pt plus 4pt}}
\Cdef {author}{\AddVspace{10pt plus 3pt}
  \NewEnvir{author}{\begingroup}{\endgraf\endgroup}
  \leftskip = 2cm plus 1fill  \rightskip = \leftskip
  \ParIndent = 0pt  \CurParSkip = 0pt
  \ResetFont \SetSize{L}}
\Cdef {/author}{\EndEnvir{author}%
  \AddVspace{20pt plus 4pt}}
\Cdef {info}{\AddVspace{10pt plus 3pt}
  \NewEnvir{info}{\begingroup}{\endgraf\endgroup}
  \leftskip = 2cm plus 1fill  \rightskip = \leftskip
  \ParIndent = 0pt  \CurParSkip = 0pt
  \ResetFont \SetSize{N}}
\Cdef {/info}{\EndEnvir{info}%
  \AddVspace{20pt plus 4pt}}
\Cdef {abstract}{\AddVspace{10pt plus 3pt}
  \NewEnvir{abstract}{\begingroup}{\endgraf\endgroup}
  \ResetFont \def \FontBold{B} \SetSize{S}  \CurParSkip = 0pt
  \leftskip = 2cm  \rightskip = \leftskip  \Indentfalse
  \centerline{\AbstractName}
  \ResetFont \SetSize{S}\Indentfalse }
\Cdef {/abstract}{\EndEnvir{abstract}%
  \AddVspace{10pt plus 2pt}}
\newcount \SectI    \newcount \SectII
\newcount \SectIII  \newcount \SectIV
\def \Heading #1#2#3#4{\AddVspace{#1}
  \def \FontBold {#3} \SetSize{#2}
  \setbox0 = \hbox{#4\kern 0.5\baselineskip}
  \hangindent = \wd0  \hangafter = 1  \raggedright
  \ParIndent = 0pt  \CurParSkip = 0pt  \leavevmode  \box0 }
\Cdef {h1}{\endgraf
  \global\advance \SectI by 1
  \global\SectII = 0  \global\SectIII = 0  \global\SectIV = 0
  \edef \CurDef {\SectIim}
  \NewEnvir{h1}{\begingroup}{\endgroup}
  \Heading{24pt plus 12pt minus 3pt}{X}{B}{\SectIim}}
\Cdef {/h1}{\endgraf
  \nobreak\vskip 6pt plus 1.5pt
  \EndEnvir{h1}  \Indentfalse }
\Cdef {h2}{\endgraf
  \global\advance \SectII by 1
  \global\SectIII = 0  \global\SectIV = 0
  \edef \CurDef {\SectIIim}
  \NewEnvir{h2}{\begingroup}{\endgroup}
  \Heading{14pt plus 7pt minus 2pt}{L}{B}{\SectIIim}}
\Cdef {/h2}{\endgraf
  \nobreak\vskip 4pt plus 1pt
  \EndEnvir{h2}\Indentfalse }
\Cdef {h3}{\endgraf
  \global\advance \SectIII by 1  \global\SectIV = 0
  \edef \CurDef {\SectIIIim}
  \NewEnvir{h3}{\begingroup}{\endgroup}
  \Heading{10pt plus 5pt minus 1pt}{N}{B}{\SectIIIim}}
\Cdef {/h3}{\endgraf
  \nobreak\vskip 2pt plus 1pt
  \EndEnvir{h3}\Indentfalse }
\Cdef {h4}{\AddVspace{8pt plus 4pt minus 1pt}
  \global\advance \SectIV by 1
  \edef \CurDef {\SectIVim}
  \NewEnvir{h4}{\begingroup}{\endgroup}
  \def \FontBold{B}\SelectFont \Indentfalse \SectIVim }
\Cdef {/h4}{\kern 0.5\baselineskip
  \EndEnvir{h4}}
\Cdef {list}{\AddVspace{\ListSkip}
  \NewEnvir{list}{\begingroup}{\endgroup}
  \advance \leftskip by \ListIndent
  \Indentfalse  \CurParSkip = \ListSkip  \ParIndent = 0pt
  \ItemCount = 0 }
\Cdef {/list}{\endgraf
  \EndEnvir{list}  \Indentfalse }
\Cdef {item}{\endgraf  \Indentfalse
  \leavevmode\llap{\BulletItemFormat}\ignorespaces }
\Cdef {numitem}{\endgraf
  \advance \ItemCount by 1  \edef \CurDef {\the\ItemCount}
  \Indentfalse
  \leavevmode\llap{\NumItemFormat{\ItemCount}}\ignorespaces }
\newcount \ItemCount
\Cdef {textitem}{\endgraf
  \NewEnvir{textitem}{\begingroup}{\endgroup}
  \def \FontBold {B}\SelectFont \leavevmode \kern -\ListIndent
  \ignorespaces }
\Cdef {/textitem}{\unskip
  \EndEnvir{textitem}%
  \hskip 1em  \ignorespaces }
\Cdef {display}{\AddVspace{\DisplayPreSkip}
  \NewEnvir{display}{\begingroup}{\endgroup}%
  \advance \leftskip  by \DisplayIndent
  \advance \rightskip by \DisplayIndent
  \CurParSkip = \DisplayParSkip \ParIndent = 0pt \relax }
\Cdef {/display}{\AddVspace{\DisplayPostSkip}
  \EndEnvir{display}}
\newif \ifCodePar
\def \CodeSetup {\ifvmode \CodePartrue \AddVspace{\DisplayPreSkip}
    \else \CodeParfalse \fi
  \def\FontKind{T}\SelectFont
  \baselineskip = \CodeSkipN  \CurParSkip = 0pt  \ParIndent = 0pt
  \catcode`\< = 12  \frenchspacing   \obeylines  \obeyspaces }
\begingroup
  \catcode`\^^M = \active %
  \gdef\obeylines{\catcode`\^^M=\active \def^^M{\endgraf\leavevmode}}%
\endgroup
\begingroup
  \obeyspaces\gdef {\leavevmode\space}%
\endgroup
\def \CodeFinish {\ifCodePar
    \def \Next {\endgraf  \vskip -\baselineskip  \vskip \DisplayPostSkip
      \global\Indentfalse }%
  \else
    \let \Next = \relax
  \fi \Next }
\Cdef {code}{\NewEnvir{code}{\begingroup}{\endgroup}%
  \CodeSetup \ReadCode }
\begingroup
  \catcode `\< = 12
  \gdef \ReadCode #1</code>{#1\CodeFinish\EndEnvir{code}}%
\endgroup
\Cdef {codefile}{\IfNextChar{[}%
    {\ReadCodeFile}%
    {\Error{No code file name given;}%
      {the syntax is <codefile>[file name].}}}
\def \ReadCodeFile [#1]{\endgraf \begingroup
  \CodeSetup
  \IfFileExists{#1}{\input #1}%
    {\Error{Code file `#1' cound not be found.}{}}
  \CodeFinish \endgroup }
\Cdef {footnote}{\NewEnvir{footnote}%
    {\global\advance \FootnoteCnt by 1
    \footnote{\FootnoteIm{\FootnoteCnt}}\bgroup
      \edef \CurDef {\the\FootnoteCnt}}%
    {\egroup}%
  \ResetFont \SetSize{S}}
\Cdef {/footnote}{\EndEnvir{footnote}}
\newcount \FootnoteCnt
\footline = {\ResetFont\SelectFont \hfil \folio \hfil}
\def \DisplayIndent    {\ListIndent}
\def \DisplayParSkip   {\ListParSkip}
\def \DisplayPostSkip  {5pt plus 2pt minus 1pt\relax}
\def \DisplayPreSkip   {5pt plus 2pt minus 1pt\relax}
\def \ListIndent       {25pt\relax}
\def \ListParSkip      {\ListSkip}
\def \ListSkip         {10pt plus 2pt minus 1pt\relax}
\def \SectIim {\the\SectI}
\def \SectIIim {\SectIim.\the\SectII}
\def \SectIIIim {\SectIIim.\the\SectIII}
\def \SectIVim {\SectIIIim.\the\SectIV}
\def \FootnoteIm #1{$^{\the #1}$}
\def \FigIm {\the\FigCnt}
\def \TabIm {\the\TabCnt}
\def \BulletItemFormat {$\bullet$\kern 6pt\relax}
\def \NumItemFormat  #1{\the#1.\kern 4pt\relax}
\def \E #1#2{\catcode#1 = \active
  \begingroup \uccode`\~ = #1\uppercase{\endgroup \def ~{#2}}}
\E{161}{\char189 } \E{163}{\char191 } \E{167}{\char159 }
\E{171}{\char19 }  \E{184}{\char11 }  \E{187}{\char20 }
\E{191}{\char190 } \E{223}{\char255 } \E{255}{\char184 }
\def \CC #1{{\def\FontAlt{A}\SelectFont \char#1}}
\E{162}{\CC{162}} \E{164}{\CC{164}} \E{165}{\CC{165}}
\E{166}{\CC{166}} \E{168}{\CC{168}} \E{169}{\CC{169}}
\E{170}{\CC{170}} \E{172}{\CC{172}} \E{174}{\CC{174}}
\E{175}{\CC{175}} \E{176}{\CC{176}} \E{180}{\CC{180}}
\E{182}{\CC{182}} \E{186}{\CC{186}}
\def \MC #1#2{\ifmmode #2 \else \CC{#1}\fi }
\E{177}{\MC{177}{\pm}}       \E{178}{\MC{178}{^2{}}}
\E{179}{\MC{179}{^3{}}}      \E{181}{\MC{181}{\mu}}
\E{183}{\MC{183}{\cdot}}     \E{185}{\MC{185}{^1{}}}
\E{188}{\MC{188}{{1\over4}}} \E{189}{\MC{189}{{1\over2}}}
\E{190}{\MC{190}{{3\over4}}} \E{215}{\MC{214}{\times}}
\E{247}{\MC{246}{\div}}
\E{160}{\nobreak\ }
\E{173}{\-}
\def \AbstractName {Abstract}
\def \FigureName   {Figure}
\def \TableName    {Table}
\def \TimeSep      {:}
\Cdef {today}{\the\day\Th{\day} \Month\space\the\year}
\def \Month {\ifcase \month \or January\or February\or March\or
  April\or May\or June\or July\or August\or September\or
  October\or November\or December\fi }
\def \Th #1{%
  \ifnum #1=1 st\else\ifnum #1=21 st\else\ifnum #1=31 st\else
  \ifnum #1=2 nd\else\ifnum #1=22 nd\else
  \ifnum #1=3 rd\else\ifnum #1=23 rd\else th\fi\fi\fi\fi\fi\fi\fi }
\Cdef {now}{\Minutes = \time  \Hours = \Minutes
  \divide \Hours by 60  \Htemp = \Hours  \multiply \Htemp by -60
  \advance \Minutes by \Htemp
  \the\Hours \TimeSep \ifnum \Minutes > 9 \else 0\fi \the\Minutes }
\newcount \Minutes  \newcount \Hours  \newcount \Htemp
\mathcode`< = "8000
\Cdef {math}{\MathFonts \NewEnvir{math}{$}{$}}
\Cdef {/math}{\EndEnvir{math}}
\Cdef {displaymath}{\endgraf \MathFonts \NewEnvir{displaymath}{$$}{$$}}
\Cdef {/displaymath}{\EndEnvir{displaymath}}
\def \MSetFont #1#2{\font \NewMFont = \csname #2\endcsname
  #1 = \NewMFont }
\def \MathFonts {\if \FontSize \LastMathSize \else
    \MSetFont{\textfont0}{M-\FontSize N0}%
    \MSetFont{\scriptfont0}{M-\FontSize S0}%
    \MSetFont{\scriptscriptfont0}{M-\FontSize X0}%
    \MSetFont{\textfont1}{M-\FontSize N1}%
    \MSetFont{\scriptfont1}{M-\FontSize S1}%
    \MSetFont{\scriptscriptfont1}{M-\FontSize X1}%
    \MSetFont{\textfont2}{M-\FontSize N2}%
    \MSetFont{\scriptfont2}{M-\FontSize S2}%
    \MSetFont{\scriptscriptfont2}{M-\FontSize X2}%
    \MSetFont{\textfont3}{M-\FontSize N3}%
    \MSetFont{\scriptfont3}{M-\FontSize S3}%
    \MSetFont{\scriptscriptfont3}{M-\FontSize X3}%
    \MSetFont{\textfont4}{M-\FontSize N4}%
    \MSetFont{\scriptfont4}{M-\FontSize S4}%
    \MSetFont{\scriptscriptfont4}{M-\FontSize X4}%
    \MSetFont{\textfont5}{M-\FontSize N5}%
    \MSetFont{\scriptfont5}{M-\FontSize S5}%
    \MSetFont{\scriptscriptfont5}{M-\FontSize X5}%
    \MSetFont{\textfont6}{M-\FontSize N6}%
    \MSetFont{\scriptfont6}{M-\FontSize S6}%
    \MSetFont{\scriptscriptfont6}{M-\FontSize X6}%
    \let \LastMathSize = \FontSize
  \fi }
\def \LastMathSize {?}
\def \Df #1{\mathcode"#1 = "05#1 \relax }
\Df{C0}\Df{C1}\Df{C2}\Df{C3}\Df{C4}\Df{C5}\Df{C6}\Df{C7}
\Df{C8}\Df{C9}\Df{CA}\Df{CB}\Df{CC}\Df{CD}\Df{CE}\Df{CF}
\Df{D0}\Df{D1}\Df{D2}\Df{D3}\Df{D4}\Df{D5}\Df{D6}
\Df{D8}\Df{D9}\Df{DA}\Df{DB}\Df{DC}\Df{DD}\Df{DE}\Df{DF}
\Df{E0}\Df{E1}\Df{E2}\Df{E3}\Df{E4}\Df{E5}\Df{E6}\Df{E7}
\Df{E8}\Df{E9}\Df{EA}\Df{EB}\Df{EC}\Df{ED}\Df{EE}\Df{EF}
\Df{F0}\Df{F1}\Df{F2}\Df{F3}\Df{F4}\Df{F5}\Df{F6}
\Df{F8}\Df{F9}\Df{FA}\Df{FB}\Df{FC}\Df{FD}\Df{FE}\Df{FF}
\def \Df #1#2#3{\Cdef{bold#1}{\MSy{\mathchar"04#2}}%
  \Cdef{bolduc#1}{\MSy{\mathchar"04#3}}}
\Df{a}{61}{41}\Df{b}{62}{42}\Df{c}{63}{43}\Df{d}{64}{44}
\Df{e}{65}{45}\Df{f}{66}{46}\Df{g}{67}{47}\Df{h}{68}{48}
\Df{i}{69}{49}\Df{j}{6A}{4A}\Df{k}{6B}{4B}\Df{l}{6C}{4C}
\Df{m}{6D}{4D}\Df{n}{6E}{4E}\Df{o}{6F}{4F}\Df{p}{70}{50}
\Df{q}{71}{51}\Df{r}{72}{52}\Df{s}{73}{53}\Df{t}{74}{54}
\Df{u}{75}{55}\Df{v}{76}{56}\Df{w}{77}{57}\Df{x}{78}{58}
\Df{y}{79}{59}\Df{z}{7A}{5A}
\def \MSy #1{\ifmmode #1\else $#1$\fi }
\def \MOp #1#2{\ifmmode \def \MNext {#2}\else
  \Error{Command <#1> is only allowed in math mode;}%
    {command ignored.}\let \MNext = \relax \fi
  \MNext }
\def \Mdef #1{\Cdef{#1}{\MSy{\csname #1\endcsname}}}
\def \Odef #1{\Cdef{#1}{\MOp{#1}{\csname #1\endcsname}}}
\Mdef{amalg} \Mdef{bigcirc} \Mdef{bigtriangleup}
\Mdef{bigtriangledown} \Mdef{bullet} \Mdef{cap} \Mdef{circ}
\Mdef{cup} \Mdef{dagger} \Mdef{ddagger} \Mdef{diamond} \Mdef{mp}
\Mdef{odot} \Mdef{ominus} \Mdef{oplus} \Mdef{oslash} \Mdef{otimes}
\Mdef{setminus} \Mdef{sqcap} \Mdef{sqcup} \Mdef{star}
\Mdef{triangleleft} \Mdef{triangleright} \Mdef{uplus} \Mdef{vee}
\Mdef{wedge} \Mdef{wr}
\Mdef{approx} \Mdef{asymp} \Mdef{bowtie} \Mdef{cong} \Mdef{doteq}
\Mdef{dashv} \Mdef{equiv} \Mdef{frown} \Mdef{geq} \Mdef{gg} \Mdef{in}
\Mdef{leq} \Mdef{ll} \Mdef{mid} \Mdef{models} \Mdef{neq} \Mdef{ni}
\Mdef{notin} \Mdef{parallel} \Mdef{perp} \Mdef{prec} \Mdef{preceq}
\Mdef{propto} \Mdef{sim} \Mdef{simeq} \Mdef{smile} \Mdef{sqsubseteq}
\Mdef{sqsupseteq} \Mdef{subset} \Mdef{subseteq} \Mdef{supset}
\Mdef{supseteq} \Mdef{succ} \Mdef{succeq} \Mdef{vdash}
 \Cdef{gt}{>}
 \Cdef{lt}{\ifmmode \mathchar"313C \else <\fi}
\Mdef{langle} \Mdef{lceil} \Mdef{lfloor} \Mdef{rangle}
\Mdef{rceil} \Mdef{rfloor}
\Mdef{leftarrow} \Mdef{rightarrow} \Mdef{leftrightarrow}
\Mdef{longleftarrow} \Mdef{longrightarrow} \Mdef{longleftrightarrow}
\Mdef{uparrow} \Mdef{downarrow}
\Mdef{updownarrow} \Mdef{nearrow} \Mdef{nwarrow} \Mdef{searrow}
\Mdef{swarrow} \Mdef{mapsto} \Mdef{longmapsto} \Mdef{hookleftarrow}
\Mdef{hookrightarrow} \Mdef{leftharpoonup} \Mdef{rightharpoonup}
\Mdef{leftharpoondown} \Mdef{rightharpoondown} \Mdef{rightleftharpoons}
\Cdef{doubleleftarrow}{\MSy{\Leftarrow}}
\Cdef{doublerightarrow}{\MSy{\Rightarrow}}
\Cdef{doubleleftrightarrow}{\MSy{\Leftrightarrow}}
\Cdef{doublelongleftarrow}{\MSy{\Longleftarrow}}
\Cdef{doublelongrightarrow}{\MSy{\Longrightarrow}}
\Cdef{doublelongleftrightarrow}{\MSy{\Longleftrightarrow}}
\Cdef{doubleuparrow}{\MSy{\Uparrow}}
\Cdef{doubledownarrow}{\MSy{\Downarrow}}
\Cdef{doubleupdownarrow}{\MSy{\Updownarrow}}
\Odef{bigcap} \Odef{bigcup} \Odef{bigodot} \Odef{bigoplus}
\Odef{bigotimes} \Odef{bigsqcup} \Odef{biguplus} \Odef{bigvee}
\Odef{bigwedge} \Odef{int} \Odef{oint} \Odef{prod} \Odef{sum}
\Mdef{arccos} \Mdef{arcsin} \Mdef{arctan} \Mdef{arg} \Mdef{cos}
\Mdef{cosh} \Mdef{cot} \Mdef{coth} \Mdef{csc} \Mdef{deg} \Mdef{det}
\Mdef{dim} \Mdef{exp} \Mdef{gcd} \Mdef{hom} \Mdef{inf} \Mdef{ker}
\Mdef{lg} \Mdef{lim} \Mdef{liminf} \Mdef{limsup} \Mdef{ln}
\Mdef{log} \Mdef{max} \Mdef{min} \Mdef{sec} \Mdef{sin} \Mdef{sinh}
\Cdef{sup-op}{\MSy{\sup}} \Mdef{tan} \Mdef{tanh}
\Cdef{pr}{\MSy{\Pr}}
\Mdef{alpha} \Mdef{beta} \Mdef{gamma} \Mdef{delta} \Mdef{epsilon}
\Mdef{varepsilon} \Mdef{zeta} \Mdef{eta} \Mdef{theta} \Mdef{vartheta}
\Mdef{iota} \Mdef{kappa} \Mdef{lambda} \Mdef{mu} \Mdef{nu} \Mdef{xi}
\Cdef {omicron}{\MSy{o}} \Mdef{pi} \Mdef{varpi} \Mdef{rho} \Mdef{varrho}
\Mdef{sigma} \Mdef{varsigma} \Mdef{tau} \Mdef{upsilon} \Mdef{phi}
\Mdef{varphi} \Mdef{chi} \Mdef{psi} \Mdef{omega}
\def \Df #1#2{\Cdef{#1}{\MSy{\mathchar"#2}}}
\Df{ucalpha}{0041} \Df{ucbeta}{0042}    \Df{ucgamma}{0000}
\Df{ucdelta}{0001} \Df{ucepsilon}{0045} \Df{uczeta}{005A}
\Df{uceta}{0048}   \Df{uctheta}{0002}   \Df{uciota}{0049}
\Df{uckappa}{004B} \Df{uclambda}{0003}  \Df{ucmu}{004D}
\Df{ucnu}{004E}    \Df{ucxi}{0004}      \Df{ucomicron}{004F}
\Df{ucpi}{0005}    \Df{ucrho}{0050}     \Df{ucsigma}{0006}
\Df{uctau}{0054}   \Df{ucupsilon}{0007} \Df{ucphi}{0008}
\Df{ucchi}{0058}   \Df{ucpsi}{0009}     \Df{ucomega}{000a}
\def \Df #1#2{\Cdef{#1}{\MSy{\mathchar"06#2}}}
\Df{cset}{43} \Df{nset}{4E} \Df{rset}{52} \Df{zset}{5A}
\def \Df #1#2{\Cdef{cal#1}{\MSy{\mathchar"02#2}}}
\Df{a}{41} \Df{b}{42} \Df{c}{43} \Df{d}{44} \Df{e}{45}
\Df{f}{46} \Df{g}{47} \Df{h}{48} \Df{i}{49} \Df{j}{4A}
\Df{k}{4B} \Df{l}{4C} \Df{m}{4D} \Df{n}{4E} \Df{o}{4F}
\Df{p}{50} \Df{q}{51} \Df{r}{52} \Df{s}{53} \Df{t}{54}
\Df{u}{55} \Df{v}{56} \Df{w}{57} \Df{x}{58} \Df{y}{59}
\Df{z}{5A}
\Mdef{aleph} \Mdef{angle} \Mdef{bot} \Mdef{ell} \Mdef{emptyset}
\Mdef{exists} \Mdef{forall} \Mdef{hbar} \Mdef{nabla} \Mdef{neg}
\Odef{not} \Mdef{partial} \Mdef{surd} \Mdef{top} \Mdef{wp}
\Cdef{infinity}{\MSy{\infty}} \Cdef{im}{\MSy{\Im}} \Cdef{re}{\MSy{\Re}}
\Cdef{,}{{,}}
\Cdef{:}{\MSy{\vdots}}
\Cdef{:::}{\MSy{\cdots}}
\Cdef{...}{\MSy{\ldots}\hskip 0.001pt \relax }
\Cdef {sub}{\MOp{sub}{\NewEnvir{sub}{_\bgroup}{\egroup}}}
\Cdef {/sub}{\MOp{/sub}{\EndEnvir{sub}}}
\Cdef {sup}{\MOp{sup}{\NewEnvir{sup}{^\bgroup}{\egroup}}}
\Cdef {/sup}{\MOp{/sup}{\EndEnvir{sup}}}
\Cdef {frac}{\MOp{frac}{\NewEnvir{frac}{\bgroup}{\egroup}%
    \NOver = 0\relax}}
\Cdef {over}{\MOp{over}{\FracOver}}
\Cdef {/frac}{\MOp{/frac}{\ifnum \NOver = 0
    \Error{No <over> in the <frac>...<over>...</frac> environment.}{}\fi
    \EndEnvir{frac}}}
\def \FracOver {\ifTextEqual{\CurEnv}{frac}%
    \ifnum \NOver = 0 \over
    \else \Error{Only one <over> may occur in each <frac>...</frac>
        environment.}{}%
    \fi  \advance \NOver by 1
  \else \Error{<over> only allowed in a
    <frac>...<over>...</frac> environment.}{}%
  \fi }
\newcount \NOver
\Cdef {sqrt}{\MOp{sqrt}{\NewEnvir{sqrt}{\sqrt\bgroup}{\egroup}}}
\Cdef {/sqrt}{\MOp{/sqrt}{\EndEnvir{sqrt}}}
\Cdef {psfig}{\if \State x \let \Next = \PSfig \else
  \let \Next = \PSfigError \fi
  \Next }
\Cdef {/psfig}{\AddVspace{6pt plus 1pt}
  \ifx \PSfile \relax \else
    \centerline{\epsfbox{\PSfile}}%
    \AddVspace{10pt plus 2pt minus 1pt}
  \fi
  \EndEnvir{psfig}}
\input epsf.tex
\def \PSfig{\NewEnvir{psfig}{\topinsert}{\endinsert}
  \let \PSfile = \relax \let \State = p
  \IfNextChar{[}%
    {\PSfetch}%
    {\Error{No file name for PostScript figure;}%
      {the syntax is: <psfig>[file name]caption text</psfig>.}%
     \PScaption}}
\def \PSfigError {\endgraf
  \Error{Calls on <psfig> not allowed inside <psfig> or <table>;}%
     {the command was ignored.}%
  \NewEnvir{psfig}{\begingroup}{\endgroup}}
\def \PSfetch [#1]{\IfFileExists{#1}%
    {\gdef \PSfile {#1}}%
    {\Error{PostScript file `#1' could not be found.}{}}%
    \PScaption }
\def \epsfsize #1#2{0pt \dimen1 = 0.8\hsize  \dimen2 = 0.4\vsize
  \floatdiv{\dimen2}{#1}{#2}%
  \ifdim \dimen1 < \divres \epsfxsize = 0.8\hsize
  \else \epsfysize = 0.4\vsize \fi }
\def \PScaption {\global\advance \FigCnt by 1
  \edef \CurDef {\the\FigCnt}
  \leftskip = 0.1\hsize  \rightskip = \leftskip
  \ResetFont \SetSize{S}\Indentfalse
  \FigureName~\FigIm: \ignorespaces }
\newcount \FigCnt
\Cdef {table}{\if \State x\let \Next = \Table \else
  \let \Next = \TableError \fi
  \Next }
\Cdef {/table}{\EndEnvir{table}}
\newbox \TableBox
\def \Table{\topinsert
  \NewEnvir{table}{\TableCaption}{\LastRow\endinsert}%
  \let \State = t}
\def \TableCaption {\global\advance \TabCnt by 1
  \edef \CurDef {\the\TabCnt}
  \leftskip = 0.1\hsize  \rightskip = \leftskip
  \ResetFont \SetSize{S}\Indentfalse
  \TableName~\TabIm: \ignorespaces }
\newcount \TabCnt
\def \TableError {\endgraf
  \Error{Calls on <table> not allowed inside <psfig>
    or <table>;}{the command was ignored.}%
  \NewEnvir{table}{\begingroup}{\endgroup}}
\Cdef {row}{\Row}
\def \Row {\if \State t\FirstRow\NewRow \else
   \if \State r\EndRow\NewRow   \else
   \Error{The <row> command is only allowed inside a
     <table>.}{The command was ignored.}\fi\fi }
\def \FirstRow {\endgraf \ResetFont \SelectFont \let \State = r%
  \setbox\TableBox = \hbox\bgroup \vbox\bgroup \offinterlineskip
    \halign\bgroup \vrule ##\strut&&
      \kern 6pt \hfil ##\unskip \hfil \kern 6pt \vrule \cr
      \noalign{\hrule}}
\def \NewRow {&}
\def \EndRow {\cr \noalign{\hrule}}
\def \LastRow {\if \State r\EndRow\PrintTable\fi}
\def \PrintTable {\egroup\egroup\egroup
  \AddVspace{6pt plus 2pt minus 1pt}
  \centerline{\box\TableBox}%
  \AddVspace{10pt plus 4pt minus 2pt}}
\Cdef {col}{\if \State r&\else
  \Error{The <col> command is only allowed after a <row>
    inside a <table>.}{The command was ignored.}\fi}
\newif \ifAuxOpen
\Cdef {label}{\IfNextChar{[}%
    {\begingroup \catcode`\< = 12 \NewLabel}%
    {\Error{No label given;}%
      {the syntax is <label>[your label].}}}
\def \NewLabel [#1]{\endgroup
  \ifAuxRead \else \ReadAuxFile \fi
  \ifAuxOpen \else
    \immediate\openout \NewAuxFile = \jobname.aux
    \global\AuxOpentrue \fi
  \expandafter\ifx \csname L]#1\endcsname \relax
    \expandafter\edef \csname L]#1\endcsname{\the\inputlineno}%
    {\let \the = 0\relax
      \edef \WriteCurDef {\write \NewAuxFile
        {\string\LabelDef
          ]#1]\the\pageno]\CurDef E-o-LabelDef\string\relax}}%
      \WriteCurDef }%
  \else
    \Error{Label `#1' already defined on line \csname L]#1\endcsname;}%
      {this definition is ignored.}%
  \fi }
\newwrite \NewAuxFile
\edef \CurDef {0}
\def \ReadAuxFile {\IfFileExists{\jobname.aux}%
    {\begingroup
       \def \LabelDef {\begingroup
          \catcode `\\ = 12\relax \FetchLabel }%
       \catcode `\< = 12 \catcode `\\ = 0\relax
       \input \jobname.aux
       \global\AuxReadtrue
     \endgroup }%
    {\global\Reruntrue}}
\def \FetchLabel ]#1]#2]#3E-o-LabelDef{%
    \expandafter\gdef \csname R]#1\endcsname {#3}%
    \expandafter\gdef \csname P]#1\endcsname {#2}%
  \endgroup }
\newif \ifAuxRead
\newif \ifRerun
\def \CheckAux {\immediate\closeout \NewAuxFile
  \begingroup
    \def \LabelDef {\begingroup
        \catcode `\\ = 12 \relax  \CheckLabel }%
    \catcode `\< = 12  \catcode `\\ = 0\relax
    \input \jobname.aux
  \endgroup }
\def \CheckLabel ]#1]#2]#3E-o-LabelDef{%
  \ifTextEqual{#2++#3}%
    {\csname P]#1\endcsname++\csname R]#1\endcsname}%
  \else
    \global\Reruntrue
  \fi \endgroup }
\Cdef {ref}{\IfNextChar{[}%
  {\begingroup \catcode `\< = 12 \relax \GiveRef }%
  {\Error{No label referenced;}{the syntax is <ref>[your label].}}}
\def \GiveRef [#1]{\ifAuxRead \else \ReadAuxFile \fi
  \expandafter\ifx \csname R]#1\endcsname \relax
    [label #1]%
    \Error{Label `#1' not defined.}{}\global\Reruntrue
  \else
    \RefFormat{\csname R]#1\endcsname}{\csname P]#1\endcsname}%
  \fi \endgroup }
\def \RefFormat #1#2{#1\ifTextEqual{#2}{\the\pageno}\else
    \space on page~#2\fi }
{\catcode`\~ = 12 \Cdef {~}{\nobreak\ }}
\Cdef {}{\null}
\Cdef {-}{\-} \Cdef {--}{--} \Cdef {---}{---}
\Cdef {``}{``} \Cdef {''}{''}
\Cdef {tex}{\TeX} \Cdef {latex}{La\TeX} \Cdef {startex}{Star\TeX}
\def \Error #1#2{%
  \message{^^J** StarTeX error detected on line \the\inputlineno:^^J}%
  \message{\space\space\space #1^^J}%
  \ifTextEqual{#2}{}\else \message{\space\space\space #2^^J}\fi}
\def \Warning #1#2{%
  \message{^^J** StarTeX warning:^^J}%
  \message{\space\space\space #1^^J}%
  \ifTextEqual{#2}{}\else \message{\space\space\space #2^^J}\fi}
\newlinechar = `^^J
\Cdef {comment}{\NewEnvir{comment}{\begingroup}{\endgroup}%
  \catcode `\< = 12 \SkipComment }
{\catcode `\< = 12
  \gdef \SkipComment #1</comment>{\EndEnvir{comment}}}
\def \ifTextEqual #1#2{\edef \TmpA {#1}\edef \TmpB {#2}%
  \ifx \TmpA\TmpB }
\def \IfNextChar #1#2#3{\def \TestChar {#1}%
  \def \AltA {#2}\def \AltB {#3}%
  \futurelet \NextChar \TestNextChar }
\def \TestNextChar {%
  \if \NextChar \TestChar \let\Next=\AltA \else \let\Next=\AltB \fi
  \Next }
\def \IfNextCharTwo #1#2#3#4{\def \TestChar {#1}\def \TestCharX {#2}%
  \def \AltA {#3}\def \AltB {#4}%
  \futurelet \NextChar \TestNextCharTwo }
\def \TestNextCharTwo {%
  \if \NextChar \TestChar  \let \Next = \AltA \else
  \if \NextChar \TestCharX \let \Next = \AltA \else
    \let \Next = \AltB
  \fi \fi
  \Next }
\def \floatdiv #1#2#3{\divtemp = #1\divide \divtemp by #3%
  \divres = #2\multiply \divres by \divtemp
  \multiply \divtemp by #3%
  \divrem = #1\advance \divrem by -\divtemp
  \divtemp = #2%
  \loop
    \multiply \divrem by 2  \divide \divtemp by 2
  \ifnum \divtemp > 0
    \ifnum \divrem < #3\else
      \advance \divrem by -#3\advance \divres by \divtemp
    \fi
  \repeat }
\newdimen \divrem   \newdimen \divres   \newdimen \divtemp
\def \IfFileExists #1#2#3{\openin\TestFile = #1
  \ifeof\TestFile \def \Next {#3}\else
  \closein\TestFile \def \Next {#2}\fi
  \Next }
\newread \TestFile
\Cdef {make-new-format}{\dump}
\Cdef {trace-on}{\tracingcommands = 1 \tracingmacros = 1
  \tracingrestores = 1 \tracingoutput = 1 \relax }
\Cdef {trace-off}{\tracingcommands = 0 \tracingmacros = 0
  \tracingrestores = 0 \tracingoutput = 0 \relax }
\input startex.lan
\ResetFont \SetSize{N}
\endinput \SpecialCatCodes
\endinput
%%
%% End of file `startex.tex'.
