summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-27 18:26:03 +0000
committerKarl Berry <karl@freefriends.org>2006-08-27 18:26:03 +0000
commit7c55de4fbb8a3fd98697b47aa5500a56a590f2c0 (patch)
treed9d4dfcca2982461056dbcc7de6d39d353cc16a4 /Master/texmf-dist/tex/latex
parent5e59e37461e19015d111223f5cfec50a616ecd6c (diff)
amslatex package amsmath update from latex-tds (27aug06)
git-svn-id: svn://tug.org/texlive/trunk@2050 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amsbsy.sty98
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amscd.sty171
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amsgen.sty160
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amsmath.sty2670
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amsopn.sty132
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amstex.sty2043
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amstext.sty101
-rw-r--r--Master/texmf-dist/tex/latex/amsmath/amsxtra.sty80
8 files changed, 5455 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty b/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty
new file mode 100644
index 00000000000..0e64d1b2e28
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty
@@ -0,0 +1,98 @@
+%%
+%% This is file `amsbsy.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amsbsy.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amsbsy.dtx",
+%%% version = "1.2d",
+%%% date = "1999/11/29",
+%%% time = "14:26:42 EST",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% checksum = "08988 251 1238 9625",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, bold symbol, pmb",
+%%% supported = "yes",
+%%% abstract = "This is a \LaTeX{} package that provides a command
+%%% for producing bold math symbols when appropriate
+%%% fonts exist, and a `poor man's bold' command that
+%%% can be applied when no appropriate bold font
+%%% is available.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must December 1994 or later
+\ProvidesPackage{amsbsy}[1999/11/29 v1.2d]
+\RequirePackage{amsgen}
+\DeclareRobustCommand{\boldsymbol}[1]{%
+ \begingroup
+ \let\@nomath\@gobble \mathversion{bold}%
+ \math@atom{#1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle#1$}}%
+ {\hbox{$\m@th\textstyle#1$}}%
+ {\hbox{$\m@th\scriptstyle#1$}}%
+ {\hbox{$\m@th\scriptscriptstyle#1$}}}%
+ \endgroup}
+\def\math@atom#1#2{%
+ \binrel@{#1}\binrel@@{#2}}
+\DeclareRobustCommand{\pmb}{%
+ \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@}
+\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}%
+ \dimen@-\wdz@
+ \kern-.5\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\box\z@
+}
+\newdimen\pmbraise@
+\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}%
+ \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
+ \binrel@{#2}%
+ \dimen@-\wd8 %
+ \binrel@@{%
+ \mkern-.8mu\copy8 %
+ \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 %
+ \kern\dimen@\mkern.4mu\box8 }%
+}
+\def\binrel@#1{\begingroup
+ \setboxz@h{\thinmuskip0mu
+ \medmuskip\m@ne mu\thickmuskip\@ne mu
+ \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@
+ ${}#1{}\m@th$}%
+ \edef\@tempa{\endgroup\let\noexpand\binrel@@
+ \ifdim\wdz@<\z@ \mathbin
+ \else\ifdim\wdz@>\z@ \mathrel
+ \else \relax\fi\fi}%
+ \@tempa
+}
+\let\binrel@@\relax
+\endinput
+%%
+%% End of file `amsbsy.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amscd.sty b/Master/texmf-dist/tex/latex/amsmath/amscd.sty
new file mode 100644
index 00000000000..56a4e958001
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amscd.sty
@@ -0,0 +1,171 @@
+%%
+%% This is file `amscd.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amscd.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amscd.dtx",
+%%% version = "2.0",
+%%% date = "1999/11/29",
+%%% time = "14:30:07 EST",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% checksum = "07428 333 1152 12117",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, commutative diagram",
+%%% supported = "yes",
+%%% abstract = "This is a \LaTeX{} package that adapts the
+%%% commutative diagram macros of AMS-\TeX{} for
+%%% use in \LaTeX{}",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must December 1994 or later
+\ProvidesPackage{amscd}[1999/11/29 v1.2d]
+\RequirePackage{amsgen}
+\@ifundefined{math@cr}{%
+ \def\math@cr{{\ifnum0=`}\fi
+ \@ifstar{\global\@eqpen\@M\math@cr@}%
+ {\global\@eqpen\interdisplaylinepenalty \math@cr@}}
+ \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
+ \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
+ \noalign{\vskip#1\relax}}
+ \def\restore@math@cr{\def\math@cr@@@{\cr}}
+}{}
+\restore@math@cr
+\@ifundefined{rightarrowfill@}{
+ \def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
+ $#1\copy\z@\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+ \def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
+ $#1\mathord\leftarrow\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
+ \mkern-6mu\box\z@$}
+ \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
+ $#1\mathord\leftarrow\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+}{}
+\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
+\@ifundefined{Iat}{%
+ \DeclareRobustCommand{\Iat}{\FN@\at@}
+}{}
+\begingroup \catcode`\@=\active
+\csname if\string @compatibility\endcsname
+\else \fam=\mathcode`\@
+ \xdef @{\mathchar\number\fam\space }
+\fi
+\gdef\CDat{\let @=\Iat}
+\endgroup
+\mathcode`\@="8000 % make @ pseudo-active in math
+\def\at@{\let\next@\at@@
+ \ifcat\noexpand\next a\else
+ \ifcat\noexpand\next0\else
+ \ifcat\noexpand\next\relax\else
+ \let\next@\at@@@\fi\fi\fi\next@}
+\def\at@@#1{\expandafter
+ \ifx\csname\space @\string#1\endcsname\relax
+ \DN@{\at@@@#1}%
+ \else
+ \DN@{\csname\space @\string#1\endcsname}%
+ \fi\next@}%
+\@ifundefined{default@tag}{%
+ \def\default@tag{%
+ \def\tag{\PackageError{amscd}{\protect\tag\space not allowed
+ here}\@eha}}%
+}{}%
+\@ifundefined{at@@@}{%
+ \def\at@@@{\PackageError{amscd}{\Invalid@@ @}{\the\athelp@}\char64\relax}
+}{}
+\@ifundefined{athelp@}{\csname newhelp\endcsname\athelp@
+{Only certain combinations beginning with @ make sense to me.^^J%
+I'll assume you wanted @@ for a printed @.}}{}
+\@ifundefined{minaw@}{\newdimen\minaw@}{}
+\@ifundefined{bigaw@}{\newdimen\bigaw@}{}
+\minaw@11.111pt
+\newdimen\minCDarrowwidth
+\minCDarrowwidth2.5pc
+\newif\ifCD@
+\let\ampersand@\relax
+\newenvironment{CD}{%
+ \CDat
+ \bgroup\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi
+ \CD@true\vcenter\bgroup\let\\\math@cr\restore@math@cr\default@tag
+ \tabskip\z@skip\baselineskip20\ex@
+ \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup
+ &\hfill$\m@th##$\hfill\crcr
+}{%
+ \crcr\egroup\egroup\egroup
+}
+\def\CD@check#1#2{\ifCD@\DN@{#2}\else
+ \DN@{\PackageError{amscd}{@\protect#1 not
+ allowed outside of the CD environment}\@eha}%
+ \fi\next@}
+\atdef@>#1>#2>{\ampersand@
+ \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi
+ \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
+ \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi
+ \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
+ \ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi}%
+ \ifCD@\enskip\fi
+ \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
+ \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
+ \ifCD@\enskip\fi \ampersand@}
+\atdef@<#1<#2<{\ampersand@
+ \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi
+ \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
+ \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
+ \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
+ \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
+ \ifCD@\enskip\fi
+ \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
+ \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
+ \ifCD@\enskip\fi \ampersand@}
+\begingroup \catcode`\~=\active \lccode`\~=`\@
+\lowercase{%
+ \global\atdef@)#1)#2){~>#1>#2>}
+ \global\atdef@(#1(#2({~<#1<#2<}
+}% end lowercase
+\endgroup
+\atdef@ A#1A#2A{\CD@check{A..A..A}{\llap{$\m@th\vcenter{\hbox
+ {$\scriptstyle#1$}}$}\Big\uparrow
+ \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}}
+\atdef@ V#1V#2V{\CD@check{V..V..V}{\llap{$\m@th\vcenter{\hbox
+ {$\scriptstyle#1$}}$}\Big\downarrow
+ \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}}
+\atdef@={\CD@check={&\enskip\mathrel
+ {\vbox{\hrule\@width\minCDarrowwidth\vskip2\ex@\hrule\@width
+ \minCDarrowwidth}}\enskip&}}
+\atdef@|{\CD@check|{\Big\Vert&&}}
+\atdef@\vert{\CD@check\vert{\Big\Vert&&}}
+\atdef@.{\CD@check.{&&}}
+\endinput
+%%
+%% End of file `amscd.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amsgen.sty b/Master/texmf-dist/tex/latex/amsmath/amsgen.sty
new file mode 100644
index 00000000000..9d39357a496
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amsgen.sty
@@ -0,0 +1,160 @@
+%%
+%% This is file `amsgen.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amsgen.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amsgen.dtx",
+%%% version = "2.0",
+%%% date = "1999/11/30",
+%%% time = "12:33:33 EST",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% checksum = "07569 396 1613 14368",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, amslatex, ams-latex",
+%%% supported = "yes",
+%%% abstract = "This is part of the AMS-\LaTeX{} distribution.
+%%% It contains some general internal macros shared
+%%% by several different files in AMS-\LaTeX{}.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must December 1994 or later
+\ProvidesFile{amsgen.sty}[1999/11/30 v2.0]
+\providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax
+ \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}%
+ \ifx\@tempa\@tempb \global\let#2#1%
+ \else
+ \edef\@tempb{\meaning#2}%
+ \ifx\@tempa\@tempb
+ \else
+ \@latex@error{Unable to properly define \string#2; primitive
+ \noexpand#1no longer primitive}\@eha
+ \fi
+ \fi
+ \endgroup}
+\let\@xp=\expandafter
+\let\@nx=\noexpand
+\newtoks\@emptytoks
+\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
+\long\def\@ifempty#1{\@xifempty#1@@..\@nil}
+\long\def\@xifempty#1#2@#3#4#5\@nil{%
+ \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi}
+\long\def\@ifnotempty#1{\@ifempty{#1}{}}
+\def\FN@{\futurelet\@let@token}
+\def\DN@{\def\next@}
+\def\RIfM@{\relax\ifmmode}
+\def\setboxz@h{\setbox\z@\hbox}
+\def\wdz@{\wd\z@}
+\def\boxz@{\box\z@}
+\def\relaxnext@{\let\@let@token\relax}
+\long\def\new@ifnextchar#1#2#3{%
+ \let\reserved@d= #1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\new@ifnch
+}
+\def\new@ifnch{%
+ \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
+ \reserved@b
+}
+\def\@ifstar#1#2{\new@ifnextchar *{\def\reserved@a*{#1}\reserved@a}{#2}}
+\@ifundefined{every@math@size}{%
+\let\every@math@size=\every@size
+\def\glb@settings{%
+ \expandafter\ifx\csname S@\f@size\endcsname\relax
+ \calculate@math@sizes
+ \fi
+ \csname S@\f@size\endcsname
+ \ifmath@fonts
+ \begingroup
+ \escapechar\m@ne
+ \csname mv@\math@version \endcsname
+ \globaldefs\@ne
+ \let \glb@currsize \f@size
+ \math@fonts
+ \endgroup
+ \the\every@math@size
+ \else
+ \fi
+}
+\def\set@fontsize#1#2#3{%
+ \@defaultunits\@tempdimb#2pt\relax\@nnil
+ \edef\f@size{\strip@pt\@tempdimb}%
+ \@defaultunits\@tempskipa#3pt\relax\@nnil
+ \edef\f@baselineskip{\the\@tempskipa}%
+ \edef\f@linespread{#1}%
+ \let\baselinestretch\f@linespread
+ \def\size@update{%
+ \baselineskip\f@baselineskip\relax
+ \baselineskip\f@linespread\baselineskip
+ \normalbaselineskip\baselineskip
+ \setbox\strutbox\hbox{%
+ \vrule\@height.7\baselineskip
+ \@depth.3\baselineskip
+ \@width\z@}%
+%%% \the\every@size
+ \let\size@update\relax}%
+ }
+}{}% end \@ifundefined test
+\newdimen\ex@
+\addto@hook\every@math@size{\compute@ex@}
+\def\compute@ex@{%
+ \begingroup
+ \dimen@-\f@size\p@
+ \ifdim\dimen@<-20\p@
+ \global\ex@ 1.5\p@
+ \else
+ \advance\dimen@10\p@ \multiply\dimen@\tw@
+ \edef\@tempa{\ifdim\dimen@>\z@ -\fi}%
+ \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@
+ \advance\dimen@-\@m sp % fudge factor
+ \vfuzz\p@
+ \def\do{\ifdim\dimen@>\z@
+ \vfuzz=.97\vfuzz
+ \advance\dimen@ -\p@
+ \@xp\do \fi}%
+ \do
+ \dimen@\p@ \advance\dimen@-\vfuzz
+ \global\ex@\p@
+ \global\advance\ex@ \@tempa\dimen@
+ \fi
+ \endgroup
+}
+\def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi}
+\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
+ \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
+\def\nomath@env{\@amsmath@err{%
+ \string\begin{\@currenvir} allowed only in paragraph mode%
+}\@ehb% "You've lost some text"
+}
+\def\Invalid@@{Invalid use of \string}
+\endinput
+%%
+%% End of file `amsgen.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amsmath.sty b/Master/texmf-dist/tex/latex/amsmath/amsmath.sty
new file mode 100644
index 00000000000..8d22f7aeb0f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amsmath.sty
@@ -0,0 +1,2670 @@
+%%
+%% This is file `amsmath.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amsmath.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amsmath.dtx",
+%%% version = "2.13",
+%%% date = "2000/07/18",
+%%% time = "08:16:41 EDT",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 2000 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Publications Technical Group,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% checksum = "38084 5829 21569 202795",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, amslatex, math, amsmath",
+%%% supported = "yes",
+%%% abstract = "This is a \LaTeX{} package that provides a variety of
+%%% extra mathematical features, largely derived from
+%%% AMS-\TeX{}.",
+%%% docstring = "The checksum field above contains a CRC-16 checksum
+%%% as the first value, followed by the equivalent of
+%%% the standard UNIX wc (word count) utility output of
+%%% lines, words, and characters. This is produced by
+%%% Robert Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must be December 1994 or later
+\ProvidesPackage{amsmath}[2000/07/18 v2.13 AMS math features]
+\edef\@temp{\catcode 96=\number\catcode 96 }
+\catcode\string `\`=12
+\def\do#1{\catcode\number`#1=\number\catcode`#1}
+\edef\@temp{%
+ \noexpand\AtEndOfPackage{%
+ \@temp
+ \do\"\do\'\do\(\do\)\do\*\do\+\do\,\do\-\do\.%
+ \do\/\do\<\do\=\do\>\do\[\do\]\do\^\do\_\relax
+ }%
+}
+\@temp
+\def\do#1{\catcode\number`#1=12 }
+\do\"\do\'\do\(\do\)\do\*\do\+\do\,\do\-\do\.
+\do\/\do\<\do\=\do\>\do\[\do\]
+\catcode`\^=7 \catcode`\_=8
+\DeclareOption{intlimits}{\let\ilimits@\displaylimits}
+\DeclareOption{nointlimits}{\let\ilimits@\nolimits}
+\DeclareOption{sumlimits}{\let\slimits@\displaylimits}
+\DeclareOption{nosumlimits}{\let\slimits@\nolimits}
+\DeclareOption{namelimits}{\PassOptionsToPackage{namelimits}{amsopn}}
+\DeclareOption{nonamelimits}{%
+ \PassOptionsToPackage{nonamelimits}{amsopn}}
+\newif\ifctagsplit@
+\newif\iftagsleft@
+\DeclareOption{leqno}{\tagsleft@true}
+\DeclareOption{reqno}{\tagsleft@false}
+\DeclareOption{centertags}{\ctagsplit@true}
+\DeclareOption{tbtags}{\ctagsplit@false}
+\DeclareOption{cmex10}{%
+ \ifnum\cmex@opt=\@ne \def\cmex@opt{0}%
+ \else \def\cmex@opt{10}\fi
+}
+\@ifundefined{cmex@opt}{\def\cmex@opt{7}}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\if@fleqn
+\newskip\@mathmargin
+\@mathmargin\@centering
+\DeclareOption{fleqn}{%
+ \@fleqntrue
+ \@mathmargin = -1sp
+ \let\mathindent=\@mathmargin
+ \AtBeginDocument{%
+ \ifdim\@mathmargin= -1sp
+ \@mathmargin\leftmargini minus\leftmargini
+ \fi
+ }%
+}
+\DeclareOption{?}{}
+\ExecuteOptions{nointlimits,sumlimits,namelimits,centertags}
+\ProcessOptions\par
+\@ifpackagewith{amsmath}{?}{%
+ \typeout{^^J%
+Documentation for the amsmath package is found in amsldoc.dvi^^J%
+(or .pdf or .tex).^^J%
+^^J%
+See also http://www.ams.org/tex/amslatex.html.^^J%
+^^J%
+Note: Using the first edition of The LaTeX Companion (1994) without^^J%
+errata as a guide for amsmath use is not recommended.^^J%
+ }%
+}{%
+ \typeout{%
+For additional information on amsmath, use the \lq ?\rq\space option.%
+ }%
+}
+\ifnum\cmex@opt=7 \relax
+ \DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <-8>cmex7<8>cmex8<9>cmex9%
+ <10><10.95><12><14.4><17.28><20.74><24.88>cmex10%
+ }{}%
+ \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+\else
+ \ifnum\cmex@opt=\z@ % need to override cmex7 fontdef from amsfonts
+ \begingroup
+ \fontencoding{OMX}\fontfamily{cmex}%
+ \expandafter\let\csname OMX+cmex\endcsname\relax
+ \try@load@fontshape
+ \endgroup
+ \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+ \def\cmex@opt{10}%
+ \fi
+\fi
+\RequirePackage{amstext}[1995/01/25]
+\RequirePackage{amsbsy}[1995/01/20]
+\RequirePackage{amsopn}[1995/01/20]
+\def\@amsmath@err{\PackageError{amsmath}}
+\providecommand{\AmS}{{\protect\AmSfont
+ A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
+\newcommand{\AmSfont}{%
+ \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}}
+\def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks
+ \m@th$#2#3$}}
+\@ifundefined{inf@bad}{%
+ \newcount\inf@bad \inf@bad=1000000 \relax
+}{}
+\DeclareRobustCommand{\tmspace}[3]{%
+ \ifmmode\mskip#1#2\else\kern#1#3\fi\relax}
+\renewcommand{\,}{\tmspace+\thinmuskip{.1667em}}
+\let\thinspace\,
+\renewcommand{\!}{\tmspace-\thinmuskip{.1667em}}
+\let\negthinspace\!
+\renewcommand{\:}{\tmspace+\medmuskip{.2222em}}
+\let\medspace\:
+\newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}}
+\renewcommand{\;}{\tmspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}}
+\newcommand{\mspace}[1]{\mskip#1\relax}
+\def\@tempa#1#2\@nil{%
+ \ifx\delimiter#1\@tempcnta#2\relax\else\@tempcnta\z@\fi
+}
+\@xp\@tempa\vert\@empty\@nil
+\ifnum\@tempcnta>\z@
+ \advance\@tempcnta "4000000
+ \xdef\lvert{\delimiter\number\@tempcnta\space }
+ \advance\@tempcnta "1000000
+ \xdef\rvert{\delimiter\number\@tempcnta\space }
+\else
+ \ifx\@@undefined\lvert
+ % Fall back to cmex encoding since we don't know what else to do.
+ \DeclareMathDelimiter{\lvert}
+ {\mathopen}{symbols}{"6A}{largesymbols}{"0C}
+ \DeclareMathDelimiter{\rvert}
+ {\mathclose}{symbols}{"6A}{largesymbols}{"0C}
+ \fi
+\fi
+\@xp\@tempa\Vert\@empty\@nil
+\ifnum\@tempcnta>\z@
+ \advance\@tempcnta "4000000
+ \xdef\lVert{\delimiter\number\@tempcnta\space }
+ \advance\@tempcnta "1000000
+ \xdef\rVert{\delimiter\number\@tempcnta\space }
+\else
+ \ifx\@@undefined\lVert
+ \DeclareMathDelimiter{\lVert}
+ {\mathopen}{symbols}{"6B}{largesymbols}{"0D}
+ \DeclareMathDelimiter{\rVert}
+ {\mathclose}{symbols}{"6B}{largesymbols}{"0D}
+ \fi
+\fi
+\@saveprimitive\over\@@over
+\@saveprimitive\atop\@@atop
+\@saveprimitive\above\@@above
+\@saveprimitive\overwithdelims\@@overwithdelims
+\@saveprimitive\atopwithdelims\@@atopwithdelims
+\@saveprimitive\abovewithdelims\@@abovewithdelims
+\DeclareRobustCommand{\primfrac}[1]{%
+ \PackageWarning{amsmath}{%
+Foreign command \@backslashchar#1;\MessageBreak
+\protect\frac\space or \protect\genfrac\space should be used instead%
+\MessageBreak
+ }
+ \global\@xp\let\csname#1\@xp\endcsname\csname @@#1\endcsname
+ \csname#1\endcsname
+}
+\renewcommand{\over}{\primfrac{over}}
+\renewcommand{\atop}{\primfrac{atop}}
+\renewcommand{\above}{\primfrac{above}}
+\renewcommand{\overwithdelims}{\primfrac{overwithdelims}}
+\renewcommand{\atopwithdelims}{\primfrac{atopwithdelims}}
+\renewcommand{\abovewithdelims}{\primfrac{abovewithdelims}}
+\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}
+\newcommand{\dfrac}{\genfrac{}{}{}0}
+\newcommand{\tfrac}{\genfrac{}{}{}1}
+\DeclareRobustCommand{\binom}{\genfrac()\z@{}}
+\newcommand{\dbinom}{\genfrac(){0pt}0}
+\newcommand{\tbinom}{\genfrac(){0pt}1}
+\DeclareRobustCommand{\genfrac}[4]{%
+ \def\@tempa{#1#2}%
+ \edef\@tempb{\@nx\@genfrac\@mathstyle{#4}%
+ \csname @@\ifx @#3@over\else above\fi
+ \ifx\@tempa\@empty \else withdelims\fi\endcsname}
+ \@tempb{#1#2#3}}
+\def\@genfrac#1#2#3#4#5{{#1{\begingroup#4\endgroup#2#3\relax#5}}}
+\def\@mathstyle#1{%
+ \ifx\@empty#1\@empty\relax
+ \else\ifcase#1\displaystyle % case 0
+ \or\textstyle\or\scriptstyle\else\scriptscriptstyle\fi\fi}
+\begingroup
+\edef\@tempa{\string\mathchar"}
+\def\@tempb#1"#2\@nil{#1"}
+\edef\@tempc{\expandafter\@tempb\meaning\coprod "\@nil}
+\ifx\@tempa\@tempc
+ \global\let\coprod@\coprod
+ \gdef\coprod{\DOTSB\coprod@\slimits@}
+ \global\let\bigvee@\bigvee
+ \gdef\bigvee{\DOTSB\bigvee@\slimits@}
+ \global\let\bigwedge@\bigwedge
+ \gdef\bigwedge{\DOTSB\bigwedge@\slimits@}
+ \global\let\biguplus@\biguplus
+ \gdef\biguplus{\DOTSB\biguplus@\slimits@}
+ \global\let\bigcap@\bigcap
+ \gdef\bigcap{\DOTSB\bigcap@\slimits@}
+ \global\let\bigcup@\bigcup
+ \gdef\bigcup{\DOTSB\bigcup@\slimits@}
+ \global\let\prod@\prod
+ \gdef\prod{\DOTSB\prod@\slimits@}
+ \global\let\sum@\sum
+ \gdef\sum{\DOTSB\sum@\slimits@}
+ \global\let\bigotimes@\bigotimes
+ \gdef\bigotimes{\DOTSB\bigotimes@\slimits@}
+ \global\let\bigoplus@\bigoplus
+ \gdef\bigoplus{\DOTSB\bigoplus@\slimits@}
+ \global\let\bigodot@\bigodot
+ \gdef\bigodot{\DOTSB\bigodot@\slimits@}
+ \global\let\bigsqcup@\bigsqcup
+ \gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@}
+\fi
+\endgroup
+\newcommand{\leftroot}{\@amsmath@err{\Invalid@@\leftroot}\@eha}
+\newcommand{\uproot}{\@amsmath@err{\Invalid@@\uproot}\@eha}
+\newcount\uproot@
+\newcount\leftroot@
+\renewcommand{\root}{\relaxnext@
+ \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else
+ \ifx\@let@token\leftroot\let\next@\nextiii@\else
+ \let\next@\plainroot@\fi\fi\next@}%
+ \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
+ \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else
+ \DN@.{\FN@\nextv@}\fi\next@.}%
+ \def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\else
+ \let\next@\plainroot@\fi\next@}%
+ \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
+ \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
+ \def\nextvii@{\ifx\@let@token\@sptoken
+ \DN@. {\FN@\nextviii@}\else
+ \DN@.{\FN@\nextviii@}\fi\next@.}%
+ \def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\else
+ \let\next@\plainroot@\fi\next@}%
+ \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
+ \bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
+\def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
+ $\m@th\scriptscriptstyle{#1}$}%
+ \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
+ {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
+
+\@ifundefined{sqrtsign}{\let\sqrtsign\@@sqrt}{}
+\def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrtsign{#2}$}%
+ \dimen@\ht\z@\advance\dimen@-\dp\z@
+ \setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}%
+ \advance\dimen@ by1.667\wd\@ne
+ \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
+ \mkern-10mu\mkern\leftroot@ mu\boxz@}
+\@ifundefined{varGamma}{%
+ \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00}
+ \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01}
+ \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02}
+ \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03}
+ \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04}
+ \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05}
+ \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06}
+ \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07}
+ \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08}
+ \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09}
+ \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A}
+}{}
+\@saveprimitive\overline\@@overline
+\DeclareRobustCommand{\overline}[1]{\@@overline{#1}}
+\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
+\newcommand{\implies}{\DOTSB\;\Longrightarrow\;}
+\newcommand{\impliedby}{\DOTSB\;\Longleftarrow\;}
+\def\And{\DOTSB\;\mathchar"3026 \;}
+\newcommand{\nobreakdash}{\leavevmode
+ \toks@\@emptytoks \def\@tempa##1{\toks@\@xp{\the\toks@-}\FN@\next@}%
+ \DN@{\ifx\@let@token-\@xp\@tempa
+ \else\setboxz@h{\the\toks@\nobreak}\unhbox\z@\fi}%
+ \FN@\next@
+}
+\renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
+ \mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
+\let\ifgtest@\iffalse % initial value
+\def\gtest@true{\global\let\ifgtest@\iftrue}
+\def\gtest@false{\global\let\ifgtest@\iffalse}
+\let\DOTSI\relax
+\let\DOTSB\relax
+\let\DOTSX\relax
+{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
+ \uppercase{%
+ \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2%
+ \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true
+ \fi\fi\fi\fi\fi}}}
+{\uccode`7=`c \uccode`8=`h \uccode`9=`\"
+ \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false
+ \ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}
+\newcount\classnum@
+\def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
+ \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
+ \gdef\thedots@{\dotsb@}\fi}
+{\uccode`4=`b \uccode`5=`i \uccode`6=`n
+ \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
+ \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\mathbin@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+{\uccode`4=`r \uccode`5=`e \uccode`6=`l
+ \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
+ \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\mathrel@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+{\uccode`5=`m \uccode`6=`a \uccode`7=`c
+ \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false
+ \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true
+ \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
+\def\macro@@#1->#2\macro@@{#2}
+\newcount\DOTSCASE@
+{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
+ \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%
+ \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@
+ \fi\fi\fi\fi\fi
+ \next@}}}
+{\uccode`3=`B \uccode`4=`I \uccode`5=`X
+ \uppercase{\gdef\DOTS@@#1{\relaxnext@
+ \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \DN@{\FN@\nextii@}%
+ \ifx 3#1\global\DOTSCASE@\z@\else
+ \ifx 4#1\global\DOTSCASE@\@ne\else
+ \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
+ \fi\fi\fi\next@}}}
+{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
+ \uppercase{\gdef\not@#1#2#3#4{\relaxnext@
+ \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\not@{}%
+ \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
+ \fi\next@}}}
+\def\keybin@{\gtest@true
+ \ifx\@let@token+\else\ifx\@let@token=\else
+ \ifx\@let@token<\else\ifx\@let@token>\else
+ \ifx\@let@token-\else\ifx\@let@token*\else\ifx\@let@token:\else
+ \gtest@false\fi\fi\fi\fi\fi\fi\fi}
+\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{}
+\DeclareRobustCommand{\ldots}{%
+ \ifmmode \mathellipsis \else \textellipsis \fi
+}
+\DeclareRobustCommand{\dots}{%
+ \ifmmode \@xp\mdots@\else \@xp\textellipsis \fi
+}
+\def\tdots@{\leavevmode\unskip\relaxnext@
+ \DN@{$\m@th\@ldots\,
+ \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else
+ \ifx\@let@token;\,$\else\ifx\@let@token:\,$\else
+ \ifx\@let@token?\,$\else\ifx\@let@token!\,$\else
+ $ \fi\fi\fi\fi\fi\fi}%
+ \ \FN@\next@}
+\def\mdots@{\FN@\mdots@@}
+\def\mdots@@{\gdef\thedots@{\dotso@}%
+ \ifx\@let@token\boldsymbol \gdef\thedots@\boldsymbol{\boldsymboldots@}%
+ \else\ifx,\@let@token \gdef\thedots@{\dotsc}%
+ \else\ifx\not\@let@token \gdef\thedots@{\dotsb@}%
+ \else\keybin@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\xdef\meaning@{\meaning\@let@token..........}%
+ \xdef\meaning@@{\meaning@}%
+ \@xp\math@\meaning@\math@
+ \ifgtest@
+ \@xp\mathch@\meaning@\mathch@
+ \ifgtest@\@xp\getmathch@\meaning@\getmathch@\fi
+ \else\@xp\macro@\meaning@@\macro@
+ \ifgtest@
+ \@xp\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\@xp\DOTS@\meaning@\DOTS@
+ \ifgtest@
+ \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
+ \or\gdef\thedots@{\dotsi}\else\fi
+ \else\@xp\math@\meaning@\math@
+ \ifgtest@\@xp\mathbin@\meaning@\mathbin@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\@xp\mathrel@\meaning@\mathrel@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \thedots@}
+\def\boldsymboldots@#1{%
+ \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@
+ \boldsymbol#1\bold@false}
+\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\newcommand{\dotsi}{\!\@cdots}
+\let\dotsb@\@cdots
+\def\rightdelim@{\gtest@true
+ \ifx\@let@token)\else
+ \ifx\@let@token]\else
+ \ifx\@let@token\rbrack\else
+ \ifx\@let@token\}\else
+ \ifx\@let@token\rbrace\else
+ \ifx\@let@token\rangle\else
+ \ifx\@let@token\rceil\else
+ \ifx\@let@token\rfloor\else
+ \ifx\@let@token\rgroup\else
+ \ifx\@let@token\rmoustache\else
+ \ifx\@let@token\right\else
+ \ifx\@let@token\bigr\else
+ \ifx\@let@token\biggr\else
+ \ifx\@let@token\Bigr\else
+ \ifx\@let@token\Biggr\else\gtest@false
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\extra@{%
+ \rightdelim@\ifgtest@
+ \else\ifx\@let@token$\gtest@true
+ \else\xdef\meaning@{\meaning\@let@token..........}%
+ \@xp\macro@\meaning@\macro@\ifgtest@
+ \@xp\DOTS@\meaning@\DOTS@
+ \ifgtest@
+ \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false
+ \fi\fi\fi\fi\fi}
+\newif\ifbold@
+\def\dotso@{\relaxnext@
+ \ifbold@
+ \let\@let@token\delayed@
+ \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%
+ \else
+ \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%
+ \fi
+ \nextii@}
+\def\extrap@#1{%
+ \DN@{#1\,}%
+ \ifx\@let@token,\else
+ \ifx\@let@token;\else
+ \ifx\@let@token.\else\extra@
+ \ifgtest@\else
+ \let\next@#1\fi\fi\fi\fi\next@}
+\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@}
+\let\dotsb\cdots
+\let\dotsm\cdots
+\DeclareRobustCommand{\dotso}{\relax
+ \ifmmode \DN@{\extrap@\@ldots}%
+ \else \let\next@\tdots@\fi
+ \FN@\next@}
+\DeclareRobustCommand{\dotsc}{%
+ \DN@{\ifx\@let@token;\@ldots\,%
+ \else \ifx\@let@token.\@ldots\,%
+ \else \extra@\@ldots \ifgtest@\,\fi
+ \fi\fi}%
+ \FN@\next@}
+\renewcommand{\longrightarrow}{%
+ \DOTSB\protect\relbar\protect\joinrel\rightarrow}
+\renewcommand{\Longrightarrow}{%
+ \DOTSB\protect\Relbar\protect\joinrel\Rightarrow}
+\renewcommand{\longleftarrow}{%
+ \DOTSB\leftarrow\protect\joinrel\protect\relbar}
+\renewcommand{\Longleftarrow}{%
+ \DOTSB\Leftarrow\protect\joinrel\protect\Relbar}
+\renewcommand{\longleftrightarrow}{\DOTSB\leftarrow\joinrel\rightarrow}
+\renewcommand{\Longleftrightarrow}{\DOTSB\Leftarrow\joinrel\Rightarrow}
+\renewcommand{\mapsto}{\DOTSB\mapstochar\rightarrow}
+\renewcommand{\longmapsto}{\DOTSB\mapstochar\longrightarrow}
+\renewcommand{\hookrightarrow}{\DOTSB\lhook\joinrel\rightarrow}
+\renewcommand{\hookleftarrow}{\DOTSB\leftarrow\joinrel\rhook}
+\renewcommand{\iff}{\DOTSB\;\Longleftrightarrow\;}
+\renewcommand{\doteq}{%
+ \DOTSB\mathrel{\mathop{\kern0pt =}\limits^{\textstyle.}}}
+\newif\if@display
+\everydisplay\@xp{\the\everydisplay \@displaytrue}
+\renewcommand{\int}{\DOTSI\intop\ilimits@}
+\renewcommand{\oint}{\DOTSI\ointop\ilimits@}
+\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
+\def\intdots@{\mathchoice{\@cdots}%
+ {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
+\newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
+\newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}}
+\newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}}
+\newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}}
+\newcommand{\MultiIntegral}[1]{%
+ \edef\ints@c{\noexpand\intop
+ \ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi
+ \ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi
+ \ifnum#1>\thr@@\noexpand\intop\noexpand\intkern@\fi
+ \noexpand\intop
+ \noexpand\ilimits@
+ }%
+ \futurelet\@let@token\ints@a
+}
+\def\ints@a{%
+ \ifx\limits\@let@token \ints@b
+ \else \ifx\displaylimits\@let@token \ints@b
+ \else\ifx\ilimits@\displaylimits \ints@b
+ \fi\fi\fi
+ \ints@c
+}
+\def\ints@b{%
+ \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
+ \mathop\bgroup
+ \mkern7mu\mathchoice{\mkern2mu}{}{}{}%
+ \let\ilimits@\egroup
+}%
+\newbox\Mathstrutbox@
+\setbox\Mathstrutbox@=\hbox{}
+\def\Mathstrut@{\copy\Mathstrutbox@}
+\def\resetMathstrut@{%
+ \setbox\z@\hbox{%
+ \mathchardef\@tempa\mathcode`\(\relax
+ \def\@tempb##1"##2##3{\the\textfont"##3\char"}%
+ \expandafter\@tempb\meaning\@tempa \relax
+ }%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@
+}
+\addto@hook\every@math@size{\resetMathstrut@}
+\newbox\strutbox@
+\def\strut@{\copy\strutbox@}
+\def\reset@strutbox@{%
+ \global\setbox\strutbox@\hbox{%
+ \lower.5\normallineskiplimit
+ \vbox{\kern-\normallineskiplimit\copy\strutbox}}}
+\addto@hook\every@math@size{\reset@strutbox@}
+\AtBeginDocument{\reset@strutbox@}
+\renewcommand{\big}{\bBigg@\@ne}
+\renewcommand{\Big}{\bBigg@{1.5}}
+\renewcommand{\bigg}{\bBigg@\tw@}
+\renewcommand{\Bigg}{\bBigg@{2.5}}
+\def\bBigg@#1#2{%
+ {\@mathmeasure\z@{\nulldelimiterspace\z@}%
+ {\left#2\vcenter to#1\big@size{}\right.}%
+ \box\z@}}
+\addto@hook\every@math@size{%
+ \global\big@size 1.2\ht\Mathstrutbox@
+ \global\advance\big@size 1.2\dp\Mathstrutbox@ }
+\newdimen\big@size
+\def\accentclass@{7}
+\def\noaccents@{\def\accentclass@{0}}
+\DeclareFontEncoding{OML}{}{\noaccents@}
+\DeclareFontEncoding{OMS}{}{\noaccents@}
+\newcommand{\dddot}[1]{%
+ {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\normalfont ...}\vss}}}}
+\newcommand{\ddddot}[1]{%
+ {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\normalfont....}\vss}}}}
+\def\set@mathaccent#1#2#3#4{%
+ \xdef#2{\@nx\protect\@nx\mathaccentV
+ {\@xp\@gobble\string#2}\hexnumber@#1#4}%
+}
+\def\@tempa#1{\@xp\@tempb\meaning#1\@nil#1}
+\def\@tempb#1>#2#3 #4\@nil#5{%
+ \@xp\ifx\csname#3\endcsname\mathaccent
+ \@tempc#4?"7777\@nil#5%
+ \else
+ \PackageWarningNoLine{amsmath}{%
+ Unable to redefine math accent \string#5}%
+ \fi
+}
+\def\@tempc#1"#2#3#4#5#6\@nil#7{%
+ \chardef\@tempd="#3\relax\set@mathaccent\@tempd{#7}{#2}{#4#5}}
+\@tempa{\hat}
+\@tempa{\check}
+\@tempa{\tilde}
+\@tempa{\acute}
+\@tempa{\grave}
+\@tempa{\dot}
+\@tempa{\ddot}
+\@tempa{\breve}
+\@tempa{\bar}
+\@tempa{\vec}
+\@ifundefined{mathring}{%
+ \DeclareMathAccent{\mathring}{\mathalpha}{operators}{"17}
+}{%
+ \@tempa{\mathring}
+}
+%%\@tempa\widetilde
+%%\@tempa\widehat
+\newcommand{\acc@check}{}
+\newcommand{\acc@error}{}
+\def\acc@check{\@ifnextchar\@empty\relax\acc@error}
+\def\acc@error{%
+ \@amsmath@err{%
+ Improper argument for math accent:\MessageBreak
+ Extra braces must be added to prevent wrong output%
+ }\@ehc
+}
+\newcount\macc@depth
+\long\def\@gobblethree#1#2#3{}
+\def\mathaccentV#1#2#3#4#5{%
+ \ifmmode
+ \gdef\macc@tmp{\macc@depth\@ne}%
+ \setbox\z@\hbox{%
+ \let\mathaccentV\macc@test
+ \let\use@mathgroup\@gobbletwo \let\select@group\@gobblethree
+ \frozen@everymath{}$#5$%
+ }%
+ \macc@tmp
+ \ifnum\macc@depth=\@ne
+ \global\let\macc@nucleus\@empty
+ \mathaccent"\accentclass@
+ \else
+ \@xp\macc@nested
+ \fi
+ #2#3#4{#5}%
+ \macc@nucleus
+ \else
+ \@xp\nonmatherr@\csname#1\endcsname
+ \fi
+}
+\def\macc@test#1#2#3#4{\xdef\macc@tmp{\macc@tmp\advance\macc@depth\@ne}}
+\def\macc@group{-1}
+\def\macc@nested#1#2#3#4{%
+ \begingroup
+ \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar
+ \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}%
+ \macc@set@skewchar\relax
+ \let\mathaccentV\macc@nested@a
+ \macc@nested@a\relax#1#2#3{#4}%
+ \endgroup
+}
+\let\macc@palette\mathpalette
+\def\macc@nested@a#1#2#3#4#5{%
+ \ifnum\macc@group=\mathgroup
+ \else \macc@set@skewchar\relax \edef\macc@group{\the\mathgroup}%
+ \fi
+ \mathchardef\macc@code "\accentclass@ #2#3#4\relax
+ \macc@palette\macc@a{#5}%
+}
+\def\macc@set@skewchar#1{%
+ \begingroup
+ \ifnum\mathgroup=\m@ne \let\@tempa\@ne
+ \else
+ \ifnum\skewchar\textfont\mathgroup=\m@ne \let\@tempa\@ne
+ \else \let\@tempa\mathgroup
+ \fi
+ \fi
+ \count@=\skewchar\textfont\@tempa
+ \advance\count@"7100
+ \edef\@tempa{\endgroup
+ \mathchardef\noexpand\macc@skewchar=\number\count@\relax}%
+ \@tempa
+ #1%
+}
+\def\macc@a#1#2{%
+ \begingroup
+ \let\macc@style#1\relax
+ \def\macc@palette##1{##1\macc@style}%
+ \advance\macc@depth\m@ne
+ \ifnum\macc@depth=\z@
+ \gdef\macc@nucleus{#2}%
+ \setbox\z@\hbox{$#1#2\@empty{}\macc@skewchar$}%
+ \setbox\tw@\hbox{$#1#2\@empty\macc@skewchar$}%
+ \dimen@\tw@\wd\tw@ \advance\dimen@-\tw@\wd\z@
+ \xdef\macc@kerna{\the\dimen@\relax}%
+ \setbox4\hbox{$#1#2\acc@check\@empty$}%
+ \global\setbox\@ne\hbox to\wd4{}%
+ \ht\@ne\ht4 \dp\@ne\dp4
+ \xdef\macc@kernb{\the\wd4\relax}%
+ \mathaccent\macc@code{\box\@ne\kern\macc@kerna}%
+ \else
+ \mathaccent\macc@code{\let\macc@adjust\@empty #1#2\@empty}%
+ \macc@adjust
+ \fi
+ \endgroup
+}
+\def\macc@adjust{%
+ \dimen@\macc@kerna\advance\dimen@\macc@kernb
+ \kern-\dimen@
+}
+\def\Hat{\hat}
+\def\Check{\check}
+\def\Tilde{\tilde}
+\def\Acute{\acute}
+\def\Grave{\grave}
+\def\Dot{\dot}
+\def\Ddot{\ddot}
+\def\Breve{\breve}
+\def\Bar{\bar}
+\def\Vec{\vec}
+\def\nonmatherr@#1{\@amsmath@err{\protect
+ #1 allowed only in math mode}\@ehd}
+\renewcommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin
+ {\operator@font mod}\penalty900
+ \mkern5mu\nonscript\mskip-\medmuskip}
+\newcommand{\pod}[1]{\allowbreak
+ \if@display\mkern18mu\else\mkern8mu\fi(#1)}
+\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
+\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
+ \else\mkern12mu\fi{\operator@font mod}\,\,#1}
+\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
+ \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
+ \kern-\nulldelimiterspace}
+\newcommand{\overset}[2]{\binrel@{#2}%
+ \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
+\newcommand{\underset}[2]{\binrel@{#2}%
+ \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
+\newcommand{\sideset}[3]{%
+ \@mathmeasure\z@\displaystyle{#3}%
+ \global\setbox\@ne\vbox to\ht\z@{}\dp\@ne\dp\z@
+ \setbox\tw@\box\@ne
+ \@mathmeasure4\displaystyle{\copy\tw@#1}%
+ \@mathmeasure6\displaystyle{#3\nolimits#2}%
+ \dimen@-\wd6 \advance\dimen@\wd4 \advance\dimen@\wd\z@
+ \hbox to\dimen@{}\mathop{\kern-\dimen@\box4\box6}%
+}
+\renewcommand{\smash}[1][tb]{%
+ \def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}%
+ \edef\finsm@sh{\csname mb@#1\endcsname\z@\z@ \box\z@}%
+ \ifmmode \@xp\mathpalette\@xp\mathsm@sh
+ \else \@xp\makesm@sh
+ \fi
+}
+\mathchardef\std@minus\mathcode`\-\relax
+\mathchardef\std@equal\mathcode`\=\relax
+\AtBeginDocument{%
+ \mathchardef\std@minus\mathcode`\-\relax
+ \mathchardef\std@equal\mathcode`\=\relax
+}
+\def\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}}
+\def\Relbar{\mathrel\std@equal}
+\def\arrowfill@#1#2#3#4{%
+ $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
+ \relax#4#1\mkern-7mu%
+ \cleaders\hbox{$#4\mkern-2mu#2\mkern-2mu$}\hfill
+ \mkern-7mu#3$%
+}
+\def\leftarrowfill@{\arrowfill@\leftarrow\relbar\relbar}
+\def\rightarrowfill@{\arrowfill@\relbar\relbar\rightarrow}
+\def\leftrightarrowfill@{\arrowfill@\leftarrow\relbar\rightarrow}
+\def\Leftarrowfill@{\arrowfill@\Leftarrow\Relbar\Relbar}
+\def\Rightarrowfill@{\arrowfill@\Relbar\Relbar\Rightarrow}
+\def\Leftrightarrowfill@{\arrowfill@\Leftarrow\Relbar\Rightarrow}
+\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
+ \noalign{\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
+\renewcommand{\overrightarrow}{%
+ \mathpalette{\overarrow@\rightarrowfill@}}
+\renewcommand{\overleftarrow}{%
+ \mathpalette{\overarrow@\leftarrowfill@}}
+\newcommand{\overleftrightarrow}{%
+ \mathpalette{\overarrow@\leftrightarrowfill@}}
+\def\underarrow@#1#2#3{%
+ \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
+ \noalign{\nointerlineskip\kern1.3\ex@}#1#2\crcr}}}
+\newcommand{\underrightarrow}{%
+ \mathpalette{\underarrow@\rightarrowfill@}}
+\newcommand{\underleftarrow}{%
+ \mathpalette{\underarrow@\leftarrowfill@}}
+\newcommand{\underleftrightarrow}{%
+ \mathpalette{\underarrow@\leftrightarrowfill@}}
+\def\ext@arrow#1#2#3#4#5#6#7{%
+ \mathrel{\mathop{%
+ \setbox\z@\hbox{#5\displaystyle}%
+ \setbox\tw@\vbox{\m@th
+ \hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}%
+ \hbox{$\scriptstyle\mkern#3mu{#7}\mkern#4mu$}%
+ \copy\z@
+ }%
+ \hbox to\wd\tw@{\unhbox\z@}}%
+ \limits
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi
+ #6\if0#2\else\mkern#2mu\fi}}}%
+}
+\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
+\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
+\newenvironment{subarray}[1]{%
+ \vcenter\bgroup
+ \Let@ \restore@math@cr \default@tag
+ \baselineskip\fontdimen10 \scriptfont\tw@
+ \advance\baselineskip\fontdimen12 \scriptfont\tw@
+ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \lineskiplimit\lineskip
+ \ialign\bgroup\ifx c#1\hfil\fi
+ $\m@th\scriptstyle##$\hfil\crcr
+}{%
+ \crcr\egroup\egroup
+}
+\newcommand{\substack}[1]{\subarray{c}#1\endsubarray}
+\newenvironment{smallmatrix}{\null\,\vcenter\bgroup
+ \Let@\restore@math@cr\default@tag
+ \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
+ \ialign\bgroup\hfil$\m@th\scriptstyle##$\hfil&&\thickspace\hfil
+ $\m@th\scriptstyle##$\hfil\crcr
+}{%
+ \crcr\egroup\egroup\,%
+}
+\renewenvironment{matrix}{%
+ \matrix@check\matrix\env@matrix
+}{%
+ \endarray \hskip -\arraycolsep
+}
+\def\env@matrix{\hskip -\arraycolsep
+ \let\@ifnextchar\new@ifnextchar
+ \array{*\c@MaxMatrixCols c}}
+\newcount\c@MaxMatrixCols \c@MaxMatrixCols=10
+\def\matrix@check#1{%
+ \@xp\ifx\csname\@currenvir\endcsname#1%
+ \else\matrix@error#1%
+ \@xp\@gobble
+ \fi
+}
+\def\matrix@error#1{%
+ \@amsmath@err{%
+Old form `\string#1' should be \string\begin{\@xp\@gobble\string#1}%
+ }{%
+`\string#1{...}' is old Plain-TeX syntax whose use is
+ill-advised in LaTeX.%
+ }%
+}
+\renewenvironment{pmatrix}{%
+ \left(%
+ \matrix@check\pmatrix\env@matrix
+}{
+ \endmatrix\right)%
+}
+\newenvironment{bmatrix}{\left[\env@matrix}{\endmatrix\right]}
+\newenvironment{Bmatrix}{%
+ \left\lbrace\env@matrix
+}{%
+ \endmatrix\right\rbrace
+}
+\newenvironment{vmatrix}{\left\lvert\env@matrix}{\endmatrix\right\rvert}
+\newenvironment{Vmatrix}{\left\lVert\env@matrix}{\endmatrix\right\rVert}
+\let\hdots\@ldots
+\newcommand{\hdotsfor}[1]{%
+ \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi}
+\newmuskip\dotsspace@
+\def\shdots@for#1]{\hdots@for{#1}}
+\def\hdots@for#1#2{\multicolumn{#2}c%
+ {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@
+ \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%
+ \hfill
+ \mkern-#1\dotsspace@}%
+ }
+\renewenvironment{cases}{%
+ \matrix@check\cases\env@cases
+}{%
+ \endarray\right.%
+}
+\def\env@cases{%
+ \let\@ifnextchar\new@ifnextchar
+ \left\lbrace
+ \def\arraystretch{1.2}%
+ \array{@{}l@{\quad}l@{}}%
+}
+\newcounter{parentequation}% Counter for ``parent equation''.
+\@ifundefined{ignorespacesafterend}{%
+ \def\ignorespacesafterend{\global\@ignoretrue}%
+}{}
+\newenvironment{subequations}{%
+ \refstepcounter{equation}%
+ \protected@edef\theparentequation{\theequation}%
+ \setcounter{parentequation}{\value{equation}}%
+ \setcounter{equation}{0}%
+ \def\theequation{\theparentequation\alph{equation}}%
+ \ignorespaces
+}{%
+ \setcounter{equation}{\value{parentequation}}%
+ \ignorespacesafterend
+}
+\newcommand{\numberwithin}[3][\arabic]{%
+ \@ifundefined{c@#2}{\@nocounterr{#2}}{%
+ \@ifundefined{c@#3}{\@nocnterr{#3}}{%
+ \@addtoreset{#2}{#3}%
+ \@xp\xdef\csname the#2\endcsname{%
+ \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}%
+}
+\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
+\newcount\dspbrk@lvl
+\dspbrk@lvl=-1
+\interdisplaylinepenalty\@M
+\newcommand{\allowdisplaybreaks}[1][4]{%
+ \interdisplaylinepenalty\getdsp@pen{#1}\relax
+}
+\def\getdsp@pen#1{%
+ \ifcase #1\@M \or 9999 \or 6999 \or 2999 \or \z@\fi
+}
+\newcommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}
+\chardef\dspbrk@context=\sixt@@n
+\def\dspbrk@[#1]{%
+ \ifmeasuring@
+ \else
+ \ifcase\dspbrk@context % case 0 --- OK
+ \global\dspbrk@lvl #1\relax
+ \or % case 1 --- inside a box
+ \nogood@displaybreak
+ \else % other cases --- outside of a display
+ \@amsmath@err{\Invalid@@\displaybreak}\@eha
+ \fi
+ \fi
+}
+\def\nogood@displaybreak{%
+ \@amsmath@err{\protect
+\displaybreak\space cannot be applied here}%
+{One of the enclosing environments creates an
+ unbreakable box\MessageBreak
+(e.g., split, aligned, gathered, ...).}%
+}
+\def\math@cr{\relax\iffalse{\fi\ifnum0=`}\fi
+ \@ifstar{\global\@eqpen\@M\math@cr@}%
+ {\global\@eqpen
+ \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty
+ \else -\@getpen\dspbrk@lvl \fi
+ \math@cr@}}
+\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
+\def\math@cr@@[#1]{\ifnum0=`{\fi \iffalse}\fi\math@cr@@@
+ \noalign{\vskip#1\relax}}
+\def\Let@{\let\\\math@cr}
+\def\restore@math@cr{\def\math@cr@@@{\cr}}
+\restore@math@cr
+\newcommand{\intertext}{\@amsmath@err{\Invalid@@\intertext}\@eha}
+\def\intertext@{%
+ \def\intertext##1{%
+ \ifvmode\else\\\@empty\fi
+ \noalign{%
+ \penalty\postdisplaypenalty\vskip\belowdisplayskip
+ \vbox{\normalbaselines
+ \ifdim\linewidth=\columnwidth
+ \else \parshape\@ne \@totalleftmargin \linewidth
+ \fi
+ \noindent##1\par}%
+ \penalty\predisplaypenalty\vskip\abovedisplayskip%
+ }%
+}}
+\newhelp\tag@help
+ {tag cannot be used at this point.\space
+ If you don't understand why^^Jyou should consult
+ the documentation.^^JBut don't worry: just continue, and I'll
+ forget what happened.}
+\def\gobble@tag{\@ifstar\@gobble\@gobble}
+\def\invalid@tag#1{\@amsmath@err{#1}{\the\tag@help}\gobble@tag}
+\def\dft@tag{\invalid@tag{\string\tag\space not allowed here}}
+\def\default@tag{\let\tag\dft@tag}
+\default@tag
+\def\maketag@@{\@ifstar\maketag@@@\tagform@}
+\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
+\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
+\iftagsleft@
+ \def\@eqnnum{\hbox to1sp{}\rlap{\normalfont\normalcolor
+ \hskip -\displaywidth\tagform@\theequation}}
+\else
+ \def\@eqnnum{{\normalfont\normalcolor \tagform@\theequation}}
+\fi
+\newcommand{\thetag}{\leavevmode\tagform@}
+\let\df@tag\@empty
+\def\make@df@tag{\@ifstar\make@df@tag@@\make@df@tag@@@}
+\def\make@df@tag@@#1{%
+ \gdef\df@tag{\maketag@@@{#1}\def\@currentlabel{#1}}}
+\def\make@df@tag@@@#1{\gdef\df@tag{\tagform@{#1}%
+ \toks@\@xp{\p@equation{#1}}\edef\@currentlabel{\the\toks@}}}
+\let\ltx@label\label
+\def\label@in@display{%
+ \ifx\df@label\@empty\else
+ \@amsmath@err{Multiple \string\label's:
+ label '\df@label' will be lost}\@eha
+ \fi
+ \gdef\df@label
+}
+\toks@\@xp{\@arrayparboxrestore \let\label\ltx@label}%
+\edef\@arrayboxrestore{\the\toks@}
+\let\df@label\@empty
+\def\make@display@tag{%
+ \if@eqnsw \incr@eqnum \print@eqnum
+ \else \iftag@ \df@tag \global\let\df@tag\@empty \fi
+ \fi
+ \ifmeasuring@
+ \else
+ \ifx\df@label\@empty
+ \else
+ \@xp\ltx@label\@xp{\df@label}%
+ \global\let\df@label\@empty
+ \fi
+ \fi
+}
+\def\tag@in@align{%
+ \relax
+ \iftag@
+ \DN@{\invalid@tag{Multiple \string\tag}}%
+ \else
+ \global\tag@true
+ \nonumber
+ \let\next@\make@df@tag
+ \fi
+ \next@
+}
+\newcommand{\raisetag}[1]{\skip@#1\relax
+ \xdef\raise@tag{\vskip\iftagsleft@\else-\fi\the\skip@\relax}%
+}
+\let\raise@tag\@empty
+\newcommand{\notag}{\nonumber}
+\renewcommand{\nonumber}{%
+ \if@eqnsw
+ \ifx\incr@eqnum\@empty \addtocounter{equation}\m@ne \fi
+ \fi
+ \let\print@eqnum\@empty \let\incr@eqnum\@empty
+ \global\@eqnswfalse
+}
+\def\print@eqnum{\tagform@\theequation}
+\def\incr@eqnum{\refstepcounter{equation}\let\incr@eqnum\@empty}
+\newif\ifinalign@
+\newif\ifingather@
+\@xp\def\@xp\@arrayparboxrestore\@xp{\@arrayparboxrestore
+ \ingather@false\inalign@false \default@tag
+ \let\spread@equation\@spread@equation
+ \let\reset@equation\@empty
+ \def\print@eqnum{\tagform@\theequation}%
+ \def\incr@eqnum{\refstepcounter{equation}\let\incr@eqnum\@empty}%
+}
+\newif\iftag@
+\newif\ifst@rred
+\newif\ifmeasuring@
+\newif\ifshifttag@
+\newcount\row@
+\newcount\column@
+\def\column@plus{%
+ \global\advance\column@\@ne
+}
+\newcount\maxfields@
+\def\add@amp#1{\if m#1&\@xp\add@amp\fi}
+\def\add@amps#1{%
+ \begingroup
+ \count@#1\advance\count@-\column@
+ \edef\@tempa{\endgroup
+ \@xp\add@amp\romannumeral\number\count@ 000q}%
+ \@tempa
+}
+\newhelp\andhelp@
+{An extra & here is so disastrous that you should probably exit^^J
+and fix things up.}
+\newdimen\eqnshift@
+\newdimen\alignsep@
+\newdimen\tagshift@
+\newcommand{\mintagsep}{.5\fontdimen6\textfont\tw@}
+\newcommand{\minalignsep}{10pt}
+\newdimen\tagwidth@
+\newdimen\totwidth@
+\newdimen\lineht@
+\def\tag@width#1{%
+ \ifcase\@xp#1\tag@lengths\fi
+}
+
+\def\savetaglength@{%
+ \begingroup
+ \let\or\relax
+ \xdef\tag@lengths{\tag@lengths\or \the\wdz@}%
+ \endgroup
+}
+
+\def\shift@tag#1{%
+ \ifcase\@xp#1\tag@shifts\fi\relax
+}
+
+\let\tag@shifts\@empty
+\def\saveshift@#1{%
+ \begingroup
+ \let\or\relax
+ \xdef\tag@shifts{\or#1\tag@shifts}%
+ \endgroup
+}
+\def\spread@equation{\reset@strutbox@
+ \openup\jot \let\spread@equation\@empty}
+\let\@spread@equation\spread@equation
+\def\displ@y{\@display@init{}}
+\def\@display@init#1{%
+ \global\dt@ptrue \spread@equation
+ \everycr{%
+ \noalign{%
+ #1%
+ \ifdt@p
+ \global\dt@pfalse
+ \vskip-\lineskiplimit
+ \vskip\normallineskiplimit
+ \else
+ \penalty\@eqpen \global\dspbrk@lvl\m@ne
+ \fi
+ }%
+ }%
+}
+\def\displ@y@{\@display@init{%
+ \global\column@\z@ \global\dspbrk@lvl\m@ne
+ \global\tag@false \global\let\raise@tag\@empty
+}}
+\def\black@#1{%
+ \noalign{%
+ \ifdim#1>\displaywidth
+ \dimen@\prevdepth
+ \nointerlineskip
+ \vskip-\ht\strutbox@
+ \vskip-\dp\strutbox@
+ \vbox{\noindent\hbox to#1{\strut@\hfill}}%
+ \prevdepth\dimen@
+ \fi
+ }%
+}
+\def\savecounters@{%
+ \begingroup
+ \def\@elt##1{%
+ \global\csname c@##1\endcsname\the\csname c@##1\endcsname}%
+ \xdef\@gtempa{%
+ \cl@@ckpt
+ \let\@nx\restorecounters@\@nx\@empty
+ }%
+ \endgroup
+ \let\restorecounters@\@gtempa
+}
+\let\restorecounters@\@empty
+\def\savealignstate@{%
+ \begingroup
+ \let\or\relax
+ \xdef\@gtempa{%
+ \global\totwidth@\the\totwidth@
+ \global\row@\the\row@
+ \gdef\@nx\tag@lengths{\tag@lengths}%
+ \let\@nx\restorealignstate@\@nx\@empty
+ }%
+ \endgroup
+ \let\restorealignstate@\@gtempa
+}
+
+\let\restorealignstate@\@empty
+\def\savecolumn@{%
+ \edef\restorecolumn@{%
+ \global\column@\number\column@
+ \let\@nx\restorecolumn@\@nx\@empty
+ }%
+}
+\let\restorecolumn@\@empty
+\newtoks\@envbody
+\def\addto@envbody#1{\global\@envbody\@xp{\the\@envbody#1}}
+\def\collect@body#1{%
+ \@envbody{\@xp#1\@xp{\the\@envbody}}%
+ \edef\process@envbody{\the\@envbody\@nx\end{\@currenvir}}%
+ \@envbody\@emptytoks \def\begin@stack{b}%
+ \begingroup
+ \@xp\let\csname\@currenvir\endcsname\collect@@body
+ \edef\process@envbody{\@xp\@nx\csname\@currenvir\endcsname}%
+ \process@envbody
+}
+\def\push@begins#1\begin#2{%
+ \ifx\end#2\else b\@xp\push@begins\fi
+}
+\def\collect@@body#1\end#2{%
+ \edef\begin@stack{\push@begins#1\begin\end \@xp\@gobble\begin@stack}%
+ \ifx\@empty\begin@stack
+ \endgroup
+ \@checkend{#2}%
+ \addto@envbody{#1}%
+ \else
+ \addto@envbody{#1\end{#2}}%
+ \fi
+ \process@envbody % A little tricky! Note the grouping
+}
+\def\math@cr@@@aligned{%
+ \ifodd\column@ \let\next@\@empty
+ \else \def\next@{&\kern-\alignsep@}%
+ \fi
+ \next@ \cr
+}
+\newcommand{\start@aligned}[2]{%
+ \RIfM@\else
+ \nonmatherr@{\begin{\@currenvir}}%
+ \fi
+ \savecolumn@ % Assumption: called inside a group
+ \null\,%
+ \if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup
+ \maxfields@#2\relax
+ \ifnum\maxfields@>\m@ne
+ \multiply\maxfields@\tw@
+ \let\math@cr@@@\math@cr@@@alignedat
+ \alignsep@\z@skip
+ \else
+ \let\math@cr@@@\math@cr@@@aligned
+ \alignsep@\minalignsep
+ \fi
+ \Let@ \chardef\dspbrk@context\@ne
+ \default@tag
+ \spread@equation % no-op if already called
+ \global\column@\z@
+ \ialign\bgroup
+ &\column@plus
+ \hfil
+ \strut@
+ $\m@th\displaystyle{##}$%
+ \tabskip\z@skip
+ &\column@plus
+ $\m@th\displaystyle{{}##}$%
+ \hfil
+ \tabskip\alignsep@
+ \crcr
+}
+\def\math@cr@@@alignedat{%
+ \ifnum\column@>\maxfields@
+ \begingroup
+ \measuring@false
+ \@amsmath@err{Extra & on this line}%
+ {\the\andhelp@}% "An extra & here is disastrous"
+ \endgroup
+ \fi
+ \global\column@\z@
+ \cr
+}
+\def\alignsafe@testopt#1#2{%
+ \relax\iffalse{\fi\ifnum`}=0\fi
+ \@ifnextchar[%
+ {\let\@let@token\relax \ifnum`{=\z@\fi\iffalse}\fi#1}%
+ {\let\@let@token\relax \ifnum`{=\z@\fi\iffalse}\fi#1[#2]}%
+}
+\newenvironment{aligned}{%
+ \let\@testopt\alignsafe@testopt
+ \aligned@a
+}{%
+ \crcr\egroup
+ \restorecolumn@
+ \egroup
+}
+\newcommand{\aligned@a}[1][c]{\start@aligned{#1}\m@ne}
+\newenvironment{alignedat}{%
+ \let\@testopt\alignsafe@testopt
+ \alignedat@a
+}{%
+ \endaligned
+}
+\newcommand{\alignedat@a}[1][c]{\start@aligned{#1}}
+\newenvironment{gathered}[1][c]{%
+ \RIfM@\else
+ \nonmatherr@{\begin{gathered}}%
+ \fi
+ \null\,%
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup
+ \Let@ \chardef\dspbrk@context\@ne \restore@math@cr
+ \spread@equation
+ \ialign\bgroup
+ \hfil\strut@$\m@th\displaystyle##$\hfil
+ \crcr
+}{%
+ \endaligned
+}
+\def\start@gather#1{%
+ \RIfM@
+ \nomath@env
+ \DN@{\@namedef{end\@currenvir}{}\@gobble}%
+ \else
+ $$%
+ #1%
+ \ifst@rred \else \global\@eqnswtrue \fi
+ \let\next@\gather@
+ \fi
+ \collect@body\next@
+}
+\newenvironment{gather}{%
+ \start@gather\st@rredfalse
+}{%
+ \math@cr \black@\totwidth@ \egroup
+ $$\ignorespacesafterend
+}
+
+\newenvironment{gather*}{%
+ \start@gather\st@rredtrue
+}{%
+ \endgather
+}
+\def\gather@#1{%
+ \ingather@true \let\split\insplit@
+ \let\tag\tag@in@align \let\label\label@in@display
+ \chardef\dspbrk@context\z@
+ \intertext@ \displ@y@ \Let@
+ \let\math@cr@@@\math@cr@@@gather
+ \gmeasure@{#1}%
+ \global\shifttag@false
+ \tabskip\z@skip
+ \global\row@\@ne
+ \halign to\displaywidth\bgroup
+ \strut@
+ \setboxz@h{$\m@th\displaystyle{##}$}%
+ \calc@shift@gather
+ \set@gather@field
+ \tabskip\@centering
+ &\setboxz@h{\strut@{##}}%
+ \place@tag@gather
+ \tabskip \iftagsleft@ \gdisplaywidth@ \else \z@skip \span\fi
+ \crcr
+ #1%
+}
+\def\gmeasure@#1{%
+ \begingroup
+ \measuring@true
+ \totwidth@\z@
+ \global\let\tag@lengths\@empty
+ \savecounters@
+ \setbox\@ne\vbox{%
+ \everycr{\noalign{\global\tag@false
+ \global\let\raise@tag\@empty \global\column@\z@}}%
+ \let\label\@gobble
+ \halign{%
+ \setboxz@h{$\m@th\displaystyle{##}$}%
+ \ifdim\wdz@>\totwidth@
+ \global\totwidth@\wdz@
+ \fi
+ &\setboxz@h{\strut@{##}}%
+ \savetaglength@
+ \crcr
+ #1%
+ \math@cr@@@
+ }%
+ }%
+ \restorecounters@
+ \if@fleqn
+ \global\advance\totwidth@\@mathmargin
+ \fi
+ \iftagsleft@
+ \ifdim\totwidth@>\displaywidth
+ \global\let\gdisplaywidth@\totwidth@
+ \else
+ \global\let\gdisplaywidth@\displaywidth
+ \fi
+ \fi
+ \endgroup
+}
+\def\math@cr@@@gather{%
+ \ifst@rred\nonumber\fi
+ &\relax
+ \make@display@tag
+ \ifst@rred\else\global\@eqnswtrue\fi
+ \global\advance\row@\@ne
+ \cr
+}
+\def\calc@shift@gather{%
+ \dimen@\mintagsep\relax
+ \tagwidth@\tag@width\row@\relax
+ \if@fleqn
+ \global\eqnshift@\@mathmargin
+ \ifdim\tagwidth@>\z@
+ \advance\dimen@\tagwidth@
+ \iftagsleft@
+ \ifdim\dimen@>\@mathmargin
+ \global\shifttag@true
+ \fi
+ \else
+ \advance\dimen@\@mathmargin
+ \advance\dimen@\wdz@
+ \ifdim\dimen@>\displaywidth
+ \global\shifttag@true
+ \fi
+ \fi
+ \fi
+ \else
+ \global\eqnshift@\displaywidth
+ \global\advance\eqnshift@-\wdz@
+ \ifdim\tagwidth@>\z@
+ \multiply\dimen@\tw@
+ \advance\dimen@\wdz@
+ \advance\dimen@\tagwidth@
+ \ifdim\dimen@>\displaywidth
+ \global\shifttag@true
+ \else
+ \ifdim\eqnshift@<4\tagwidth@
+ \global\advance\eqnshift@-\tagwidth@
+ \fi
+ \fi
+ \fi
+ \global\divide\eqnshift@\tw@
+ \iftagsleft@
+ \global\eqnshift@-\eqnshift@
+ \global\advance\eqnshift@\displaywidth
+ \global\advance\eqnshift@-\wdz@
+ \fi
+ \ifdim\eqnshift@<\z@
+ \global\eqnshift@\z@
+ \fi
+ \fi
+}
+\def\place@tag@gather{%
+ \iftagsleft@
+ \kern-\gdisplaywidth@
+ \ifshifttag@
+ \rlap{\vbox{%
+ \normalbaselines
+ \boxz@
+ \vbox to\lineht@{}%
+ \raise@tag
+ }}%
+ \global\shifttag@false
+ \else
+ \rlap{\boxz@}%
+ \fi
+ \else
+ \ifdim\totwidth@>\displaywidth
+ \dimen@\totwidth@
+ \advance\dimen@-\displaywidth
+ \kern-\dimen@
+ \fi
+ \ifshifttag@
+ \llap{\vtop{%
+ \raise@tag
+ \normalbaselines
+ \setbox\@ne\null
+ \dp\@ne\lineht@
+ \box\@ne
+ \boxz@
+ }}%
+ \global\shifttag@false
+ \else
+ \llap{\boxz@}%
+ \fi
+ \fi
+}
+\def\set@gather@field{%
+ \iftagsleft@
+ \global\lineht@\ht\z@
+ \else
+ \global\lineht@\dp\z@
+ \fi
+ \kern\eqnshift@
+ \boxz@
+ \hfil
+}
+\newif\ifxxat@
+
+\newif\ifcheckat@
+
+\let\xatlevel@\@empty
+\def\start@align#1#2#3{%
+ \let\xatlevel@#1% always \z@, \@ne, or \tw@
+ \maxfields@#3\relax
+ \ifnum\maxfields@>\m@ne
+ \checkat@true
+ \ifnum\xatlevel@=\tw@
+ \xxat@true
+ \fi
+ \multiply\maxfields@\tw@
+ \else
+ \checkat@false
+ \fi
+ \ifingather@
+ \iffalse{\fi\ifnum0=`}\fi
+ \DN@{\vcenter\bgroup\savealignstate@\align@#2}%
+ \else
+ \ifmmode
+ \if@display
+ \DN@{\align@recover}%
+ \else
+ \nomath@env
+ \DN@{\@namedef{end\@currenvir}{}\@gobble}%
+ \fi
+ \else
+ $$%
+ \let\split\insplit@
+ \DN@{\align@#2}%
+ \fi
+ \fi
+ \collect@body\next@
+}
+\def\align@recover#1#2#3{%
+ \endgroup
+ \@amsmath@err{%
+Erroneous nesting of equation structures;\MessageBreak
+trying to recover with `aligned'%
+ }\@ehc
+ \begin{aligned}\relax#1\end{aligned}%
+}
+\newenvironment{alignat}{%
+ \start@align\z@\st@rredfalse
+}{%
+ \endalign
+}
+\newenvironment{alignat*}{%
+ \start@align\z@\st@rredtrue
+}{%
+ \endalign
+}
+\newenvironment{xalignat}{%
+ \start@align\@ne\st@rredfalse
+}{%
+ \endalign
+}
+\newenvironment{xalignat*}{%
+ \start@align\@ne\st@rredtrue
+}{%
+ \endalign
+}
+\newenvironment{xxalignat}{%
+ \start@align\tw@\st@rredtrue
+}{%
+ \endalign
+}
+\newenvironment{align}{%
+ \start@align\@ne\st@rredfalse\m@ne
+}{%
+ \math@cr \black@\totwidth@
+ \egroup
+ \ifingather@
+ \restorealignstate@
+ \egroup
+ \nonumber
+ \ifnum0=`{\fi\iffalse}\fi
+ \else
+ $$%
+ \fi
+ \ignorespacesafterend
+}
+\newenvironment{align*}{%
+ \start@align\@ne\st@rredtrue\m@ne
+}{%
+ \endalign
+}
+\newenvironment{flalign}{%
+ \start@align\tw@\st@rredfalse\m@ne
+}{%
+ \endalign
+}
+\newenvironment{flalign*}{%
+ \start@align\tw@\st@rredtrue\m@ne
+}{%
+ \endalign
+}
+\def\align@#1#2{%
+ \inalign@true \intertext@ \Let@ \chardef\dspbrk@context\z@
+ \ifingather@\else\displ@y@\fi
+ \let\math@cr@@@\math@cr@@@align
+ \ifxxat@\else \let\tag\tag@in@align \fi
+ \let\label\label@in@display
+ #1% set st@r
+ \ifst@rred\else \global\@eqnswtrue \fi
+ \measure@{#2}%
+ \global\row@\z@
+ \tabskip\eqnshift@
+ \halign\bgroup
+ \span\align@preamble\crcr
+ #2%
+}
+\def\math@cr@@@align{%
+ \ifst@rred\nonumber\fi
+ \if@eqnsw \global\tag@true \fi
+ \global\advance\row@\@ne
+ \add@amps\maxfields@
+ \omit
+ \kern-\alignsep@
+ \iftag@
+ \setboxz@h{\@lign\strut@{\make@display@tag}}%
+ \place@tag
+ \fi
+ \ifst@rred\else\global\@eqnswtrue\fi
+ \global\lineht@\z@
+ \cr
+}
+\def\math@cr@@@align@measure{%
+ &\omit
+ \global\advance\row@\@ne
+ \ifst@rred\nonumber\fi
+ \if@eqnsw \global\tag@true \fi
+ \ifnum\column@>\maxfields@
+ \ifcheckat@
+ \begingroup
+ \measuring@false
+ \@amsmath@err{Extra & on this line}%
+ {\the\andhelp@}% "An extra & here is disastrous"
+ \endgroup
+ \else
+ \global\maxfields@\column@
+ \fi
+ \fi
+ \setboxz@h{\@lign\strut@{%
+ \if@eqnsw
+ \stepcounter{equation}%
+ \tagform@\theequation
+ \else
+ \iftag@\df@tag\fi
+ \fi
+ }}%
+ \savetaglength@
+ \ifst@rred\else\global\@eqnswtrue\fi
+ \cr
+}
+\let\field@lengths\@empty
+
+\def\savefieldlength@{%
+ \begingroup
+ \let\or\relax
+ \xdef\field@lengths{%
+ \field@lengths
+ \ifnum\column@=0
+ \or
+ \else
+ ,%
+ \fi
+ \the\wdz@
+ }%
+ \endgroup
+}
+
+\def\fieldlengths@#1{%
+ \ifcase\@xp#1\field@lengths\fi
+}
+\let\maxcolumn@widths\@empty
+\def\maxcol@width#1{%
+ \ifcase\@xp#1\maxcolumn@widths\fi\relax
+}
+\def\measure@#1{%
+ \begingroup
+ \measuring@true
+ \global\eqnshift@\z@
+ \global\alignsep@\z@
+ \global\let\tag@lengths\@empty
+ \global\let\field@lengths\@empty
+ \savecounters@
+ \global\setbox0\vbox{%
+ \let\math@cr@@@\math@cr@@@align@measure
+ \everycr{\noalign{\global\tag@false
+ \global\let\raise@tag\@empty \global\column@\z@}}%
+ \let\label\@gobble
+ \global\row@\z@
+ \tabskip\z@
+ \halign{\span\align@preamble\crcr
+ #1%
+ \math@cr@@@
+ \global\column@\z@
+ \add@amps\maxfields@\cr
+ }%
+ }%
+ \restorecounters@
+ \ifodd\maxfields@
+ \global\advance\maxfields@\@ne
+ \fi
+ \ifnum\xatlevel@=\tw@
+ \ifnum\maxfields@<\thr@@
+ \let\xatlevel@\z@
+ \fi
+ \fi
+ \setbox\z@\vbox{%
+ \unvbox\z@ \unpenalty \global\setbox\@ne\lastbox
+ }%
+ \global\totwidth@\wd\@ne
+ \if@fleqn \global\advance\totwidth@\@mathmargin \fi
+ \global\let\maxcolumn@widths\@empty
+ \begingroup
+ \let\or\relax
+ \loop
+ \global\setbox\@ne\hbox{%
+ \unhbox\@ne \unskip \global\setbox\thr@@\lastbox
+ }%
+ \ifhbox\thr@@
+ \xdef\maxcolumn@widths{ \or \the\wd\thr@@ \maxcolumn@widths}%
+ \repeat
+ \endgroup
+ \dimen@\displaywidth
+ \advance\dimen@-\totwidth@
+ \ifcase\xatlevel@
+ \global\alignsep@\z@
+ \let\minalignsep\z@
+ \@tempcntb\z@
+ \if@fleqn
+ \@tempcnta\@ne
+ \global\eqnshift@\@mathmargin
+ \else
+ \@tempcnta\tw@
+ \global\eqnshift@\dimen@
+ \global\divide\eqnshift@\@tempcnta
+ \fi
+ \or
+ \@tempcntb\maxfields@
+ \divide\@tempcntb\tw@
+ \@tempcnta\@tempcntb
+ \advance\@tempcntb\m@ne
+ \if@fleqn
+ \global\eqnshift@\@mathmargin
+ \global\alignsep@\dimen@
+ \global\divide\alignsep@\@tempcnta
+ \else
+ \global\advance\@tempcnta\@ne
+ \global\eqnshift@\dimen@
+ \global\divide\eqnshift@\@tempcnta
+ \global\alignsep@\eqnshift@
+ \fi
+ \or
+ \@tempcntb\maxfields@
+ \divide\@tempcntb\tw@
+ \global\advance\@tempcntb\m@ne
+ \global\@tempcnta\@tempcntb
+ \global\eqnshift@\z@
+ \global\alignsep@\dimen@
+ \if@fleqn
+ \global\advance\alignsep@\@mathmargin\relax
+ \fi
+ \global\divide\alignsep@\@tempcntb
+ \fi
+ \ifdim\alignsep@<\minalignsep\relax
+ \global\alignsep@\minalignsep\relax
+ \ifdim\eqnshift@>\z@
+ \if@fleqn\else
+ \global\eqnshift@\displaywidth
+ \global\advance\eqnshift@-\totwidth@
+ \global\advance\eqnshift@-\@tempcntb\alignsep@
+ \global\divide\eqnshift@\tw@
+ \fi
+ \fi
+ \fi
+ \ifdim\eqnshift@<\z@
+ \global\eqnshift@\z@
+ \fi
+ \calc@shift@align
+ \global\tagshift@\totwidth@
+ \global\advance\tagshift@\@tempcntb\alignsep@
+ \if@fleqn
+ \ifnum\xatlevel@=\tw@
+ \global\advance\tagshift@-\@mathmargin\relax
+ \fi
+ \else
+ \global\advance\tagshift@\eqnshift@
+ \fi
+ \iftagsleft@ \else
+ \global\advance\tagshift@-\displaywidth
+ \fi
+ \dimen@\minalignsep\relax
+ \global\advance\totwidth@\@tempcntb\dimen@
+ \ifdim\totwidth@>\displaywidth
+ \global\let\displaywidth@\totwidth@
+ \else
+ \global\let\displaywidth@\displaywidth
+ \fi
+ \endgroup
+}
+\iftagsleft@\if@fleqn
+ \def\calc@shift@align{%
+ \global\let\tag@shifts\@empty
+ \begingroup
+ \@tempdima\@mathmargin\relax
+ \advance\@tempdima-\mintagsep\relax
+ \loop
+ \ifnum\row@>0
+ \ifdim\tag@width\row@>\z@
+ \x@calc@shift@lf
+ \else
+ \saveshift@0%
+ \fi
+ \advance\row@\m@ne
+ \repeat
+ \endgroup
+ }
+ \def\x@calc@shift@lf{%
+ \ifdim\eqnshift@=\z@
+ \global\eqnshift@\@mathmargin\relax
+ \alignsep@\displaywidth
+ \advance\alignsep@-\totwidth@
+ \global\divide\alignsep@\@tempcntb
+ \ifdim\alignsep@<\minalignsep\relax
+ \global\alignsep@\minalignsep\relax
+ \fi
+ \fi
+ \ifdim\tag@width\row@>\@tempdima
+ \saveshift@1%
+ \else
+ \saveshift@0%
+ \fi
+ }
+\fi\fi
+\iftagsleft@\else\if@fleqn
+ \def\calc@shift@align{%
+ \global\let\tag@shifts\@empty
+ \begingroup
+ \loop
+ \ifnum\row@>0
+ \ifdim\tag@width\row@>\z@
+ \x@calc@shift@rf
+ \else
+ \saveshift@0%
+ \fi
+ \advance\row@\m@ne
+ \repeat
+ \endgroup
+ }
+ \def\x@calc@shift@rf{%
+ \column@\z@
+ \@tempdimb\z@
+ \@tempdimc\z@
+ \edef\@tempb{\fieldlengths@\row@}%
+ \@for\@tempa:=\@tempb\do{%
+ \advance\column@\@ne
+ \x@rcalc@width
+ }%
+ \begingroup
+ \advance\column@\m@ne
+ \divide\column@\tw@
+ \ifnum\@tempcntb>\column@
+ \advance\@tempcnta-\@tempcntb
+ \advance\@tempcnta\column@
+ \@tempcntb\column@
+ \fi
+ \tagwidth@\tag@width\row@\relax
+ \@tempdima\eqnshift@
+ \advance\@tempdima\@tempdimc\relax
+ \advance\@tempdima\tagwidth@
+ \dimen@\minalignsep\relax
+ \multiply\dimen@\@tempcntb
+ \advance\dimen@\mintagsep\relax
+ \advance\dimen@\@tempdima
+ \ifdim\dimen@>\displaywidth
+ \saveshift@1%
+ \else
+ \saveshift@0%
+ \dimen@\alignsep@\relax
+ \multiply\dimen@\@tempcntb
+ \advance\dimen@\@tempdima
+ \advance\dimen@\tagwidth@
+ \ifdim\dimen@>\displaywidth
+ \dimen@\displaywidth
+ \advance\dimen@-\@tempdima
+ \ifnum\xatlevel@=\tw@
+ \advance\dimen@-\mintagsep\relax
+ \fi
+ \divide\dimen@\@tempcnta
+ \ifdim\dimen@<\minalignsep\relax
+ \global\alignsep@\minalignsep\relax
+ \else
+ \global\alignsep@\dimen@
+ \fi
+ \fi
+ \fi
+ \endgroup
+ }
+\fi\fi
+\iftagsleft@\else\if@fleqn\else
+ \def\calc@shift@align{%
+ \global\let\tag@shifts\@empty
+ \begingroup
+ \loop
+ \ifnum\row@>0
+ \ifdim\tag@width\row@>\z@
+ \x@calc@shift@rc
+ \else
+ \saveshift@0%
+ \fi
+ \advance\row@\m@ne
+ \repeat
+ \endgroup
+ }
+ \def\x@calc@shift@rc{%
+ \column@\z@
+ \@tempdimb\z@
+ \@tempdimc\z@
+ \edef\@tempb{\fieldlengths@\row@}%
+ \@for\@tempa:=\@tempb\do{%
+ \advance\column@\@ne
+ \x@rcalc@width
+ }%
+ \begingroup
+ \advance\column@\m@ne
+ \divide\column@\tw@
+ \ifnum\@tempcntb>\column@
+ \advance\@tempcnta-\@tempcntb
+ \advance\@tempcnta\column@
+ \@tempcntb\column@
+ \fi
+ \tagwidth@\tag@width\row@\relax
+ \@tempdima\@tempdimc
+ \advance\@tempdima\tagwidth@
+ \dimen@\minalignsep\relax
+ \multiply\dimen@\@tempcntb
+ \advance\dimen@\mintagsep\relax
+ \ifnum\xatlevel@=\tw@ \else
+ \advance\dimen@\mintagsep\relax
+ \fi
+ \advance\dimen@\@tempdima
+ \ifdim\dimen@>\displaywidth
+ \saveshift@1%
+ \else
+ \saveshift@0%
+ \dimen@\eqnshift@
+ \advance\dimen@\@tempdima
+ \advance\dimen@\@tempcntb\alignsep@
+ \advance\dimen@\tagwidth@
+ \ifdim\dimen@>\displaywidth
+ \dimen@\displaywidth
+ \advance\dimen@-\@tempdima
+ \ifnum\xatlevel@=\tw@
+ \advance\dimen@-\mintagsep\relax
+ \fi
+ \divide\dimen@\@tempcnta
+ \ifdim\dimen@<\minalignsep\relax
+ \global\alignsep@\minalignsep\relax
+ \eqnshift@\displaywidth
+ \advance\eqnshift@-\@tempdima
+ \advance\eqnshift@-\@tempcntb\alignsep@
+ \global\divide\eqnshift@\tw@
+ \else
+ \ifdim\dimen@<\eqnshift@
+ \ifdim\dimen@<\z@
+ \global\eqnshift@\z@
+ \else
+ \global\eqnshift@\dimen@
+ \fi
+ \fi
+ \ifdim\dimen@<\alignsep@
+ \global\alignsep@\dimen@
+ \fi
+ \fi
+ \fi
+ \fi
+ \endgroup
+ }
+\fi\fi
+\iftagsleft@\else
+ \def\x@rcalc@width{%
+ \ifdim\@tempa > \z@
+ \advance\@tempdimc\@tempdimb
+ \ifodd\column@
+ \advance\@tempdimc\maxcol@width\column@
+ \@tempdimb\z@
+ \else
+ \advance\@tempdimc\@tempa\relax
+ \@tempdimb\maxcol@width\column@
+ \advance\@tempdimb-\@tempa\relax
+ \fi
+ \else
+ \advance\@tempdimb\maxcol@width\column@\relax
+ \fi
+ }
+\fi
+\iftagsleft@\if@fleqn\else
+ \def\calc@shift@align{%
+ \global\let\tag@shifts\@empty
+ \begingroup
+ \loop
+ \ifnum\row@>\z@
+ \ifdim\tag@width\row@>\z@
+ \x@calc@shift@lc
+ \else
+ \saveshift@0%
+ \fi
+ \advance\row@\m@ne
+ \repeat
+ \endgroup
+ }
+ \def\x@calc@shift@lc{%
+ \column@\z@
+ \@tempdima\z@ % ``width of equation''
+ \@tempdimb\z@ % ``indent of equation''
+ \edef\@tempb{\fieldlengths@\row@}%
+ \@for\@tempa:=\@tempb\do{%
+ \advance\column@\@ne
+ \x@lcalc@width
+ }%
+ \begingroup
+ \tagwidth@\tag@width\row@\relax
+ \@tempdima\totwidth@
+ \advance\@tempdima-\@tempdimb
+ \advance\@tempdima\tagwidth@
+ \dimen@\minalignsep\relax
+ \multiply\dimen@\@tempcntb
+ \advance\dimen@\mintagsep\relax
+ \ifnum\xatlevel@=\tw@ \else
+ \advance\dimen@\mintagsep\relax
+ \fi
+ \advance\dimen@\@tempdima
+ \ifdim\dimen@>\displaywidth
+ \saveshift@1%
+ \else
+ \saveshift@0%
+ \dimen@\alignsep@
+ \multiply\dimen@\count@
+ \advance\dimen@\eqnshift@
+ \advance\dimen@\@tempdimb
+ \ifdim\dimen@<2\tagwidth@
+ \dimen@\displaywidth
+ \advance\dimen@-\@tempdima
+ \ifnum\xatlevel@=\tw@
+ \advance\dimen@-\mintagsep\relax
+ \fi
+ \ifnum\@tempcnta>\z@
+ \divide\dimen@\@tempcnta
+ \else \dimen@\z@
+ \fi
+ \ifdim\dimen@<\minalignsep\relax
+ \global\alignsep@\minalignsep\relax
+ \dimen@\displaywidth
+ \advance\dimen@-\@tempdima
+ \advance\dimen@-\@tempcntb\alignsep@
+ \global\divide\dimen@\tw@
+ \else
+ \ifdim\dimen@<\alignsep@
+ \global\alignsep@\dimen@
+ \fi
+ \fi
+ \ifnum\xatlevel@=\tw@
+ \dimen@\mintagsep\relax
+ \fi
+ \advance\dimen@\tagwidth@
+ \advance\dimen@-\@tempdimb
+ \advance\dimen@-\count@\alignsep@
+ \ifdim\dimen@>\eqnshift@
+ \global\eqnshift@\dimen@
+ \fi
+ \fi
+ \fi
+ \endgroup
+ }
+ \def\x@lcalc@width{%
+ \ifdim\@tempdima = \z@
+ \ifdim\@tempa > \z@
+ \@tempdima\p@
+ \ifodd\column@
+ \advance\@tempdimb \maxcol@width\column@
+ \advance\@tempdimb-\@tempa
+ \fi
+ \count@\column@
+ \advance\count@\m@ne
+ \divide\count@\tw@
+ \advance\@tempcnta-\count@
+ \advance\@tempcntb-\count@
+ \else
+ \advance\@tempdimb \maxcol@width\column@\relax
+ \fi
+ \fi
+ }
+\fi\fi
+\def\place@tag{%
+ \iftagsleft@
+ \kern-\tagshift@
+ \if1\shift@tag\row@\relax
+ \rlap{\vbox{%
+ \normalbaselines
+ \boxz@
+ \vbox to\lineht@{}%
+ \raise@tag
+ }}%
+ \else
+ \rlap{\boxz@}%
+ \fi
+ \kern\displaywidth@
+ \else
+ \kern-\tagshift@
+ \if1\shift@tag\row@\relax
+ \llap{\vtop{%
+ \raise@tag
+ \normalbaselines
+ \setbox\@ne\null
+ \dp\@ne\lineht@
+ \box\@ne
+ \boxz@
+ }}%
+ \else
+ \llap{\boxz@}%
+ \fi
+ \fi
+}
+\def\align@preamble{%
+ &\hfil
+ \strut@
+ \setboxz@h{\@lign$\m@th\displaystyle{##}$}%
+ \ifmeasuring@\savefieldlength@\fi
+ \set@field
+ \tabskip\z@skip
+ &\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}%
+ \ifmeasuring@\savefieldlength@\fi
+ \set@field
+ \hfil
+ \tabskip\alignsep@
+}
+\def\set@field{%
+ \column@plus
+ \iftagsleft@
+ \ifdim\ht\z@>\lineht@
+ \global\lineht@\ht\z@
+ \fi
+ \else
+ \ifdim\dp\z@>\lineht@
+ \global\lineht@\dp\z@
+ \fi
+ \fi
+ \boxz@
+}
+\edef\split@err#1{%
+ \@nx\@amsmath@err{%
+ \string\begin{split} won't work here%
+ }{%
+ \@xp\@nx\csname
+ Did you forget a preceding \string\begin{equation}?^^J%
+ If not, perhaps the `aligned' environment is what
+ you want.\endcsname}%
+}
+\newenvironment{split}{%
+ \if@display
+ \ifinner
+ \@xp\@xp\@xp\split@aligned
+ \else
+ \ifst@rred \else \global\@eqnswtrue \fi
+ \fi
+ \else \let\endsplit\@empty \@xp\collect@body\@xp\split@err
+ \fi
+ \collect@body\gather@split
+}{%
+ \crcr
+ \egroup
+ \egroup
+ \iftagsleft@ \@xp\lendsplit@ \else \@xp\rendsplit@ \fi
+}
+\let\split@tag\relax % init
+\def\gather@split#1#2#3{%
+ \@xp\endgroup \reset@equation % math@cr will handle equation numbering
+ \iftag@
+ \toks@\@xp{\df@tag}%
+ \edef\split@tag{%
+ \gdef\@nx\df@tag{\the\toks@}%
+ \global\@nx\tag@true \@nx\nonumber
+ }%
+ \else \let\split@tag\@empty
+ \fi
+ \spread@equation
+ \vcenter\bgroup
+ \gather@{\split@tag \begin{split}#1\end{split}}%
+ \def\endmathdisplay@a{%
+ \math@cr \black@ \totwidth@ \egroup
+ \egroup
+ }%
+}
+\def\insplit@{%
+ \global\setbox\z@\vbox\bgroup
+ \Let@ \chardef\dspbrk@context\@ne \restore@math@cr
+ \default@tag % disallow use of \tag here
+ \ialign\bgroup
+ \hfil
+ \strut@
+ $\m@th\displaystyle{##}$%
+ &$\m@th\displaystyle{{}##}$%
+ \hfill % Why not \hfil?---dmj, 1994/12/28
+ \crcr
+}
+\def\rendsplit@{%
+ \ifinalign@
+ \global\setbox9 \vtop{%
+ \unvcopy\z@
+ \global\setbox8 \lastbox
+ \unskip
+ }%
+ \setbox\@ne\hbox{%
+ \unhcopy8
+ \unskip
+ \global\setbox\tw@\lastbox
+ \unskip
+ \global\setbox\thr@@\lastbox
+ }%
+ \ifctagsplit@
+ \gdef\split@{%
+ \hbox to\wd\thr@@{}%
+ &\vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}%
+ }%
+ \else
+ \global\setbox7 \hbox{\unhbox\tw@\unskip}%
+ \gdef\split@{%
+ \global\@tempcnta\column@
+ &\setboxz@h{}%
+ \savetaglength@
+ \global\advance\row@\@ne
+ \vbox{\moveleft\wd\thr@@\box9}%
+ \crcr
+ \noalign{\global\lineht@\z@}%
+ \add@amps\@tempcnta
+ \box\thr@@
+ &\box7
+ }%
+ \fi
+ \else
+ \ifctagsplit@
+ \gdef\split@{\vcenter{\boxz@}}%
+ \else
+ \gdef\split@{%
+ \boxz@
+ }%
+ \fi
+ \fi
+ \aftergroup\split@
+}
+\def\lendsplit@{%
+ \global\setbox9\vtop{\unvcopy\z@}%
+ \ifinalign@
+ \setbox\@ne\vbox{%
+ \unvcopy\z@
+ \global\setbox8\lastbox
+ }%
+ \setbox\@ne\hbox{%
+ \unhcopy8%
+ \unskip
+ \setbox\tw@\lastbox
+ \unskip
+ \global\setbox\thr@@\lastbox
+ }%
+ \ifctagsplit@
+ \gdef\split@{%
+ \hbox to\wd\thr@@{}%
+ &\vcenter{\vbox{\moveleft\wd\thr@@\box9}}%
+ }%
+ \else
+ \gdef\split@{%
+ \hbox to\wd\thr@@{}%
+ &\vbox{\moveleft\wd\thr@@\box9}%
+ }%
+ \fi
+ \else
+ \ifctagsplit@
+ \gdef\split@{\vcenter{\box9}}%
+ \else
+ \gdef\split@{\box9}%
+ \fi
+ \fi
+ \aftergroup\split@
+}
+\def\split@aligned#1#2{%
+ \iffalse{\fi\ifnum0=`}\fi
+ \collect@body\split@al@a}
+\def\split@al@a#1#2#3{%
+ \split@warning
+ \endgroup
+ \toks@{\begin{aligned}}%
+ \if@fleqn \split@al@tagcheck \fi
+ \the\toks@\relax#1\end{aligned}%
+ \ifnum0=`{\fi\iffalse}\fi
+}
+\def\split@al@tagcheck{%
+ \ifctagsplit@
+ \else
+ \iftagsleft@ \toks@\@xp{\the\toks@ [t]}%
+ \else \toks@\@xp{\the\toks@ [b]}%
+ \fi
+ \fi
+}
+\def\split@warning{%
+ \PackageWarning{amsmath}{%
+Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
+}
+\newskip\multlinegap
+\multlinegap10pt
+\newskip\multlinetaggap
+\multlinetaggap10pt
+\def\start@multline#1{%
+ \RIfM@
+ \nomath@env
+ \DN@{\@namedef{end\@currenvir}{}\@gobble}%
+ \else
+ $$%
+ #1%
+ \ifst@rred
+ \nonumber
+ \else
+ \global\@eqnswtrue
+ \fi
+ \let\next@\multline@
+ \fi
+ \collect@body\next@
+}
+\newenvironment{multline}{%
+ \start@multline\st@rredfalse
+}{%
+ \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi
+ \ignorespacesafterend
+}
+\newenvironment{multline*}{\start@multline\st@rredtrue}{\endmultline}
+\def\multline@#1{%
+ \Let@
+ \@display@init{\global\advance\row@\@ne \global\dspbrk@lvl\m@ne}%
+ \chardef\dspbrk@context\z@
+ \restore@math@cr
+ \let\tag\tag@in@align
+ \global\tag@false \global\let\raise@tag\@empty
+ \mmeasure@{#1}%
+ \let\tag\gobble@tag \let\label\@gobble
+ \tabskip \if@fleqn \@mathmargin \else \z@skip \fi
+ \totwidth@\displaywidth
+ \if@fleqn
+ \advance\totwidth@-\@mathmargin
+ \fi
+ \halign\bgroup
+ \hbox to\totwidth@{%
+ \if@fleqn
+ \hskip \@centering \relax
+ \else
+ \hfil
+ \fi
+ \strut@
+ $\m@th\displaystyle{}##\endmultline@math
+ \hfil
+ }%
+ \crcr
+ \if@fleqn
+ \hskip-\@mathmargin
+ \def\multline@indent{\hskip\@mathmargin}% put it back
+ \else
+ \hfilneg
+ \def\multline@indent{\hskip\multlinegap}%
+ \fi
+ \iftagsleft@
+ \iftag@
+ \begingroup
+ \ifshifttag@
+ \rlap{\vbox{%
+ \normalbaselines
+ \hbox{%
+ \strut@
+ \make@display@tag
+ }%
+ \vbox to\lineht@{}%
+ \raise@tag
+ }}%
+ \multline@indent
+ \else
+ \setbox\z@\hbox{\make@display@tag}%
+ \dimen@\@mathmargin \advance\dimen@-\wd\z@
+ \ifdim\dimen@<\multlinetaggap
+ \dimen@\multlinetaggap
+ \fi
+ \box\z@ \hskip\dimen@\relax
+ \fi
+ \endgroup
+ \else
+ \multline@indent
+ \fi
+ \else
+ \multline@indent
+ \fi
+ #1%
+}
+\def\endmultline@math{$}
+\def\lendmultline@{%
+ \hfilneg
+ \hskip\multlinegap
+ \math@cr
+ \egroup
+ $$%
+}
+\def\rendmultline@{%
+ \iftag@
+ $\let\endmultline@math\relax
+ \ifshifttag@
+ \hskip\multlinegap
+ \llap{\vtop{%
+ \raise@tag
+ \normalbaselines
+ \setbox\@ne\null
+ \dp\@ne\lineht@
+ \box\@ne
+ \hbox{\strut@\make@display@tag}%
+ }}%
+ \else
+ \hskip\multlinetaggap
+ \make@display@tag
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ \hfilneg
+ \math@cr
+ \egroup$$%
+}
+\def\mmeasure@#1{%
+ \begingroup
+ \measuring@true
+ \def\label##1{%
+ \begingroup\measuring@false\label@in@display{##1}\endgroup}%
+ \def\math@cr@@@{\cr}%
+ \let\shoveleft\@iden \let\shoveright\@iden
+ \savecounters@
+ \global\row@\z@
+ \setbox\@ne\vbox{%
+ \global\let\df@tag\@empty
+ \halign{%
+ \setboxz@h{\@lign$\m@th\displaystyle{}##$}%
+ \iftagsleft@
+ \ifnum\row@=\@ne
+ \global\totwidth@\wdz@
+ \global\lineht@\ht\z@
+ \fi
+ \else
+ \global\totwidth@\wdz@
+ \global\lineht@\dp\z@
+ \fi
+ \crcr
+ #1%
+ \crcr
+ }%
+ }%
+ \ifx\df@tag\@empty\else\global\tag@true\fi
+ \if@eqnsw\global\tag@true\fi
+ \iftag@
+ \setboxz@h{%
+ \if@eqnsw
+ \stepcounter{equation}%
+ \tagform@\theequation
+ \else
+ \df@tag
+ \fi
+ }%
+ \global\tagwidth@\wdz@
+ \dimen@\totwidth@
+ \advance\dimen@\tagwidth@
+ \advance\dimen@\multlinetaggap
+ \iftagsleft@\else
+ \if@fleqn
+ \advance\dimen@\@mathmargin
+ \fi
+ \fi
+ \ifdim\dimen@>\displaywidth
+ \global\shifttag@true
+ \else
+ \global\shifttag@false
+ \fi
+ \fi
+ \restorecounters@
+ \endgroup
+}
+\iftagsleft@
+ \def\shoveright#1{%
+ #1%
+ \hfilneg
+ \hskip\multlinegap
+ }
+\else
+ \def\shoveright#1{%
+ #1%
+ \hfilneg
+ \iftag@
+ \ifshifttag@
+ \hskip\multlinegap
+ \else
+ \hskip\tagwidth@
+ \hskip\multlinetaggap
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ }
+\fi
+
+\if@fleqn
+ \def\shoveleft#1{#1}%
+\else
+ \iftagsleft@
+ \def\shoveleft#1{%
+ \setboxz@h{$\m@th\displaystyle{}#1$}%
+ \setbox\@ne\hbox{$\m@th\displaystyle#1$}%
+ \hfilneg
+ \iftag@
+ \ifshifttag@
+ \hskip\multlinegap
+ \else
+ \hskip\tagwidth@
+ \hskip\multlinetaggap
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ \hskip.5\wd\@ne
+ \hskip-.5\wdz@
+ #1%
+ }
+ \else
+ \def\shoveleft#1{%
+ \setboxz@h{$\m@th\displaystyle{}#1$}%
+ \setbox\@ne\hbox{$\m@th\displaystyle#1$}%
+ \hfilneg
+ \hskip\multlinegap
+ \hskip.5\wd\@ne
+ \hskip-.5\wdz@
+ #1%
+ }
+ \fi
+\fi
+\@saveprimitive\leqno\@@leqno
+\@saveprimitive\eqno\@@eqno
+\def\eqno{\@@eqno\let\eqno\relax\let\leqno\relax}
+\def\leqno{\@@leqno\let\leqno\relax\let\eqno\relax}
+\let\veqno=\@@eqno
+\iftagsleft@ \let\veqno=\@@leqno \fi
+\@ifundefined{SK@@label}{%
+ \let\SK@@label\relax \let\SK@equationtrue\relax
+}{}
+\let\reset@equation\@empty
+\let\alt@tag\@empty
+\def\tag@in@display#1#{\relax\tag@in@display@a{#1}}
+\def\tag@in@display@a#1#2{%
+ \iftag@
+ \invalid@tag{Multiple \string\tag}\relax
+ \else
+ \global\tag@true \nonumber \reset@equation \st@rredtrue
+ \if *\string#1%
+ \gdef\alt@tag{\def\SK@tagform@{#2\@gobble}%
+ \ifx\SK@@label\relax \let\tagform@\SK@tagform@ \fi
+ }%
+ \make@df@tag@@{#2}%
+ \else
+ \make@df@tag@@@{#2}%
+ \fi
+ \fi
+}
+\let\restore@hfuzz\@empty
+\def\mathdisplay#1{%
+ \ifmmode \@badmath
+ \else
+ $$\def\@currenvir{#1}%
+ \let\dspbrk@context\z@
+ \let\tag\tag@in@display \let\label\label@in@display \SK@equationtrue
+ \global\let\df@label\@empty \global\let\df@tag\@empty
+ \global\tag@false
+ \let\mathdisplay@push\mathdisplay@@push
+ \let\mathdisplay@pop\mathdisplay@@pop
+ \if@fleqn
+ \edef\restore@hfuzz{\hfuzz\the\hfuzz\relax}%
+ \hfuzz\maxdimen
+ \setbox\z@\hbox to\displaywidth\bgroup
+ \let\split@warning\relax \restore@hfuzz
+ \everymath\@emptytoks \m@th $\displaystyle
+ \fi
+ \fi
+}
+\def\endmathdisplay#1{%
+ \ifmmode \else \@badmath \fi
+ \endmathdisplay@a
+ $$%
+ \global\let\df@label\@empty \global\let\df@tag\@empty
+ \global\tag@false \global\let\alt@tag\@empty
+ \global\@eqnswfalse
+}
+\def\endmathdisplay@a{%
+ \if@eqnsw \gdef\df@tag{\tagform@\theequation}\fi
+ \if@fleqn \@xp\endmathdisplay@fleqn
+ \else \ifx\df@tag\@empty \else \veqno \alt@tag \df@tag \fi
+ \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi
+ \fi
+ \ifnum\dspbrk@lvl>\m@ne
+ \postdisplaypenalty -\@getpen\dspbrk@lvl
+ \global\dspbrk@lvl\m@ne
+ \fi
+}
+\let\too@wide\@ne
+\def\endmathdisplay@fleqn{%
+ $\hfil\hskip\@mathmargin\egroup
+ \ifnum\badness<\inf@bad \let\too@wide\@ne \else \let\too@wide\z@ \fi
+ \ifx\@empty\df@tag
+ \else
+ \setbox4\hbox{\df@tag
+ \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi
+ }%
+ \fi
+ \csname emdf@%
+ \ifx\df@tag\@empty U\else \iftagsleft@ L\else R\fi\fi
+ \endcsname
+}
+\def\emdf@U{%
+ \restore@hfuzz
+ \ifodd\too@wide % not too wide: just need to swap the glue around
+ \hbox to\displaywidth{\hskip\@mathmargin\unhbox\z@\unskip}%
+ \else % M+B > displaywidth
+ \emdf@Ua
+ \fi
+}
+\def\emdf@Ua{%
+ \hbox to\columnwidth{%
+ \ifdim\displayindent>\z@
+ \hskip\displayindent minus\displayindent
+ \fi
+ \hskip\@mathmargin \unhbox\z@ \unskip
+ }%
+ \displayindent\z@ \displaywidth\columnwidth
+}
+\def\emdf@R{%
+ \setbox\tw@\hbox to\displaywidth{%
+ \hskip\@mathmargin \unhcopy\z@\unskip\hfil\hskip\mintagsep\copy4
+ }%
+ \restore@hfuzz
+ \ifnum\badness<\inf@bad \box\tw@ \else \emdf@Ra \fi
+}
+\def\emdf@Ra{%
+ \skip@\displayindent minus\displayindent
+ \displayindent\z@ \displaywidth\columnwidth
+ \spread@equation \everycr{}\tabskip\z@skip
+ \halign{\hbox to\displaywidth{##}\cr
+ \relax
+ \ifdim\skip@>\z@ \hskip\skip@ \fi
+ \hskip\@mathmargin\unhbox\z@\unskip\hfil\cr
+ \noalign{\raise@tag}%
+ \hfil\box4 \cr}%
+}
+\def\emdf@L{%
+ \@tempdima\@mathmargin
+ \advance\@tempdima-\wd4 \advance\@tempdima-\mintagsep
+ \skip@\@tempdima minus\@tempdima
+ \setbox\tw@\hbox to\displaywidth{%
+ \copy4\hskip\mintagsep
+ \ifdim\skip@>\z@ \hskip\skip@\fi
+ \unhcopy\z@\unskip
+ }%
+ \restore@hfuzz
+ \ifnum\badness<\inf@bad \box\tw@ \else \emdf@La \fi
+}
+\def\emdf@La{%
+ \spread@equation \everycr{}\tabskip\z@skip
+ \halign{\hbox to\displaywidth{##}\cr
+ \box4 \hfil \cr
+ \noalign{\raise@tag}%
+ \hskip\@mathmargin\unhbox\z@\unskip\hfil\cr}%
+}
+\newtoks\mathdisplay@stack
+\let\mathdisplay@push\@empty
+\def\mathdisplay@@push{%
+ \begingroup
+ \toks@\@xp{\df@label}\@temptokena\@xp{\df@tag}%
+ \toks8\@xp{\alt@tag}%
+ \edef\@tempa{%
+ \global\if@eqnsw\@nx\@eqnswtrue\else\@nx\@eqnswfalse\fi
+ \global\iftag@\@nx\tag@false\else\@nx\tag@true\fi
+ \gdef\@nx\df@label{\the\toks@}\gdef\@nx\df@tag{\the\@temptokena}%
+ \gdef\@nx\alt@tag{\the\toks8}%
+ \global\mathdisplay@stack{\the\mathdisplay@stack}%
+ }%
+ \global\mathdisplay@stack\@xp{\@tempa}
+ \endgroup
+}
+\let\mathdisplay@pop\@empty
+\def\mathdisplay@@pop{\the\mathdisplay@stack}
+\renewenvironment{equation}{%
+ \incr@eqnum
+ \mathdisplay@push
+ \st@rredfalse \global\@eqnswtrue
+ \mathdisplay{equation}%
+}{%
+ \endmathdisplay{equation}%
+ \mathdisplay@pop
+ \ignorespacesafterend
+}
+\newenvironment{equation*}{%
+ \mathdisplay@push
+ \st@rredtrue \global\@eqnswfalse
+ \mathdisplay{equation*}%
+}{%
+ \endmathdisplay{equation*}%
+ \mathdisplay@pop
+ \ignorespacesafterend
+}
+\DeclareRobustCommand{\[}{\begin{equation*}}
+\DeclareRobustCommand{\]}{\end{equation*}}
+\endinput
+%%
+%% End of file `amsmath.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amsopn.sty b/Master/texmf-dist/tex/latex/amsmath/amsopn.sty
new file mode 100644
index 00000000000..76580233765
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amsopn.sty
@@ -0,0 +1,132 @@
+%%
+%% This is file `amsopn.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amsopn.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amsopn.dtx",
+%%% version = "2.01",
+%%% date = "1999/12/14",
+%%% time = "17:30:59 EST",
+%%% checksum = "46904 254 1037 9431",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "operator name, amsopn, DeclareMathOperator",
+%%% supported = "yes",
+%%% abstract = "This is a \LaTeX{} package that provides a
+%%% DeclareMathOperator command for defining named
+%%% operators like sin and lim.",
+%%% docstring = "The checksum field above contains a CRC-16 checksum
+%%% as the first value, followed by the equivalent of
+%%% the standard UNIX wc (word count) utility output of
+%%% lines, words, and characters. This is produced by
+%%% Robert Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must December 1994 or later
+\ProvidesPackage{amsopn}[1999/12/14 v2.01 operator names]
+\def\nolimits@{\@ifnextchar\limits{\nolimits\@gobble}{\nolimits}}
+\begingroup \catcode`\"=12
+\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
+ \ifnum\mathcode`\-=45 \else
+ \mathchardef\std@minus\mathcode`\-\relax
+ \fi
+ \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax}
+\endgroup
+\DeclareRobustCommand{\operatorname}{%
+ \@ifstar{\qopname\newmcodes@ m}%
+ {\qopname\newmcodes@ o}}%
+\DeclareRobustCommand{\qopname}[3]{%
+ \mathop{#1\kern\z@\operator@font#3}%
+ \csname n#2limits@\endcsname}
+\newcommand{\DeclareMathOperator}{%
+ \@ifstar{\@declmathop m}{\@declmathop o}}
+\long\def\@declmathop#1#2#3{%
+ \@ifdefinable{#2}{%
+ \DeclareRobustCommand{#2}{\qopname\newmcodes@#1{#3}}}}
+\@onlypreamble\DeclareMathOperator
+\@onlypreamble\@declmathop
+\def\arccos{\qopname\relax o{arccos}}
+\def\arcsin{\qopname\relax o{arcsin}}
+\def\arctan{\qopname\relax o{arctan}}
+\def\arg{\qopname\relax o{arg}}
+\def\cos{\qopname\relax o{cos}}
+\def\cosh{\qopname\relax o{cosh}}
+\def\cot{\qopname\relax o{cot}}
+\def\coth{\qopname\relax o{coth}}
+\def\csc{\qopname\relax o{csc}}
+\def\deg{\qopname\relax o{deg}}
+\def\det{\qopname\relax m{det}}
+\def\dim{\qopname\relax o{dim}}
+\def\exp{\qopname\relax o{exp}}
+\def\gcd{\qopname\relax m{gcd}}
+\def\hom{\qopname\relax o{hom}}
+\def\inf{\qopname\relax m{inf}}
+\def\injlim{\qopname\relax m{inj\,lim}}
+\def\ker{\qopname\relax o{ker}}
+\def\lg{\qopname\relax o{lg}}
+\def\lim{\qopname\relax m{lim}}
+\def\liminf{\qopname\relax m{lim\,inf}}
+\def\limsup{\qopname\relax m{lim\,sup}}
+\def\ln{\qopname\relax o{ln}}
+\def\log{\qopname\relax o{log}}
+\def\max{\qopname\relax m{max}}
+\def\min{\qopname\relax m{min}}
+\def\Pr{\qopname\relax m{Pr}}
+\def\projlim{\qopname\relax m{proj\,lim}}
+\def\sec{\qopname\relax o{sec}}
+\def\sin{\qopname\relax o{sin}}
+\def\sinh{\qopname\relax o{sinh}}
+\def\sup{\qopname\relax m{sup}}
+\def\tan{\qopname\relax o{tan}}
+\def\tanh{\qopname\relax o{tanh}}
+\def\operator@font{\mathgroup\symoperators}
+\def\operatorfont{\operator@font}
+\def\operatornamewithlimits{\operatorname*}
+\def\varlim@#1#2{%
+ \vtop{\m@th\ialign{##\cr
+ \hfil$#1\operator@font lim$\hfil\cr
+ \noalign{\nointerlineskip\kern1.5\ex@}#2\cr
+ \noalign{\nointerlineskip\kern-\ex@}\cr}}%
+}
+\def\varinjlim{%
+ \mathop{\mathpalette\varlim@{\rightarrowfill@\textstyle}}\nmlimits@
+}
+\def\varprojlim{%
+ \mathop{\mathpalette\varlim@{\leftarrowfill@\textstyle}}\nmlimits@
+}
+\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@}
+\def\varliminf@#1{\@@underline{\vrule\@depth.2\ex@\@width\z@
+ \hbox{$#1\m@th\operator@font lim$}}}
+\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@}
+\def\varlimsup@#1{\@@overline{\hbox{$#1\m@th\operator@font lim$}}}
+\let\nmlimits@\displaylimits
+\DeclareOption{namelimits}{\let\nmlimits@\displaylimits}
+\DeclareOption{nonamelimits}{\let\nmlimits@\nolimits}
+\ProcessOptions\relax
+\RequirePackage{amsgen}\relax
+\endinput
+%%
+%% End of file `amsopn.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amstex.sty b/Master/texmf-dist/tex/latex/amsmath/amstex.sty
new file mode 100644
index 00000000000..f67435c5829
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amstex.sty
@@ -0,0 +1,2043 @@
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amstex.sty",
+%%% version = "1.2f",
+%%% date = "1999/11/15",
+%%% time = "14:07:07 EST",
+%%% checksum = "05218 2043 3020 71018",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@math.ams.org (Internet)",
+%%% keywords = "latex, amslatex, ams-latex, math, amstex, ams-tex",
+%%% supported = "yes",
+%%% abstract = "This package provides a variety of extra
+%%% mathematical features, largely derived from
+%%% AMS-\TeX{}. It was superseded in 1995 by the
+%%% amsmath package.",
+%%% docstring = "The checksum field above contains a CRC-16 checksum
+%%% as the first value, followed by the equivalent of
+%%% the standard UNIX wc (word count) utility output of
+%%% lines, words, and characters. This is produced by
+%%% Robert Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+% This file was generated from version 1.2beta of amstex.dtx and then
+% underwent additional hand-editing.
+\if@compatibility \else \catcode`\%=9 \fi
+%\PackageError{amstex}{%
+%Package `amstex' is obsolete, substituting `amsmath'}{You
+%should use \string\usepackage{amsmath} instead. If
+%that does not give satisfactory results, rename your previous copy
+%of amstex.sty to amstex12beta.sty and call it with
+%\string\usepackage{amstex12beta}.}
+%\catcode`\%=14 \relax \input{amsmath.sty}\endinput
+%
+\ProvidesPackage{amstex}[1999/11/15 v1.2f AMS extra math features]
+\let\@amsfonts=T
+\DeclareOption{noamsfonts}{\let\@amsfonts=F}
+\DeclareOption{psamsfonts}{\let\@amsfonts=P}
+\DeclareOption{intlimits}{\let\ilimits@\displaylimits}
+\DeclareOption{nointlimits}{\let\ilimits@\nolimits}
+\DeclareOption{sumlimits}{\let\slimits@\displaylimits}
+\DeclareOption{nosumlimits}{\let\slimits@\nolimits}
+\DeclareOption{namelimits}{\let\nlimits@\displaylimits}
+\DeclareOption{nonamelimits}{\let\nlimits@\nolimits}
+\newif\ifctagsplit@
+\newif\iftagsleft@
+\DeclareOption{leqno}{\tagsleft@true}
+\DeclareOption{reqno}{\tagsleft@false}
+\DeclareOption{centertags}{\ctagsplit@true}
+\DeclareOption{tbtags}{\ctagsplit@false}
+\newif\if@fleqn
+\newskip\@mathmargin
+\@mathmargin\@centering
+\DeclareOption{fleqn}{%
+ \@fleqntrue
+ \@mathmargin\m@ne sp
+ \AtBeginDocument{%
+ \ifdim\@mathmargin=\m@ne sp
+ \@mathmargin\leftmargini
+ \fi
+ }%
+}
+\DeclareOption{righttag}{\tagsleft@false}
+\DeclareOption{ctagsplt}{\ctagsplit@true}
+\DeclareOption{intlim}{\let\ilimits@\displaylimits}
+\DeclareOption{nosumlim}{\let\slimits@\nolimits}
+\DeclareOption{nonamelm}{\let\nlimits@\nolimits}
+\ExecuteOptions{nointlimits,sumlimits,namelimits,centertags}
+\ProcessOptions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% In this section \RequirePackage statements were replaced with the
+%% contents of the referenced files.
+%%% filename = "amsgen.dtx",
+%%% version = "1.2beta",
+%%% date = "1994/12/13",
+\providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax
+ \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}%
+ \ifx\@tempa\@tempb \global\let#2#1%
+ \else
+ \edef\@tempb{\meaning#2}%
+ \ifx\@tempa\@tempb
+ \else
+ \@latex@error{Unable to properly define \string#2; primitive
+ \noexpand#1no longer primitive}\@eha
+ \fi
+ \fi
+ \endgroup}
+\let\@xp=\expandafter
+\let\@nx=\noexpand
+\newtoks\@emptytoks
+\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
+\def\@ifempty#1{\@xifempty#1@@..\@nil}
+\long\def\@xifempty#1#2@#3#4#5\@nil{%
+ \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi}
+\long\def\@ifnotempty#1{\@ifempty{#1}{}}
+\def\FN@{\futurelet\@let@token}
+\def\DN@{\def\next@}
+\def\RIfM@{\relax\ifmmode}
+\def\setboxz@h{\setbox\z@\hbox}
+\def\wdz@{\wd\z@}
+\def\boxz@{\box\z@}
+\def\relaxnext@{\let\@let@token\relax}
+\def\new@ifnextchar#1#2#3{%
+ \let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet
+ \@tempc\new@ifnch}
+\def\new@ifnch{\ifx\@tempc \@tempe \let\@tempd\@tempa
+ \else\let\@tempd\@tempb\fi\@tempd}
+\def\new@ifstar#1#2{\new@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
+\@ifundefined{every@math@size}{%
+\let\every@math@size=\every@size
+\def\glb@settings{%
+ \expandafter\ifx\csname S@\f@size\endcsname\relax
+ \calculate@math@sizes
+ \fi
+ \csname S@\f@size\endcsname
+ \ifmath@fonts
+ \begingroup
+ \escapechar\m@ne
+ \csname mv@\math@version \endcsname
+ \globaldefs\@ne
+ \let \glb@currsize \f@size
+ \math@fonts
+ \endgroup
+ \the\every@math@size
+ \else
+ \fi
+}
+\def\set@fontsize#1#2#3{%
+ \@defaultunits\@tempdimb#2pt\relax\@nnil
+ \edef\f@size{\strip@pt\@tempdimb}%
+ \@defaultunits\@tempskipa#3pt\relax\@nnil
+ \edef\f@baselineskip{\the\@tempskipa}%
+ \edef\f@linespread{#1}%
+ \let\baselinestretch\f@linespread
+ \def\size@update{%
+ \baselineskip\f@baselineskip\relax
+ \baselineskip\f@linespread\baselineskip
+ \normalbaselineskip\baselineskip
+ \setbox\strutbox\hbox{%
+ \vrule\@height.7\baselineskip
+ \@depth.3\baselineskip
+ \@width\z@}%
+%%% \the\every@size
+ \let\size@update\relax}%
+ }
+}{}% end \@ifundefined test
+\newdimen\ex@
+\addto@hook\every@math@size{\compute@ex@}
+\def\compute@ex@{%
+ \begingroup
+ \dimen@-\f@size\p@
+ \ifdim\dimen@<-20\p@
+ \global\ex@ 1.5\p@
+ \else
+ \advance\dimen@10\p@ \multiply\dimen@\tw@
+ \edef\@tempa{\ifdim\dimen@>\z@ -\fi}%
+ \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@
+ \advance\dimen@-\@m sp % fudge factor
+ \vfuzz\p@
+ \def\do{\ifdim\dimen@>\z@
+ \vfuzz=.97\vfuzz
+ \advance\dimen@ -\p@
+ \@xp\do \fi}%
+ \do
+ \dimen@\p@ \advance\dimen@-\vfuzz
+ \global\ex@\p@
+ \global\advance\ex@ \@tempa\dimen@
+ \fi
+ \endgroup
+}
+\def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi}
+\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
+ \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
+\def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks
+ \m@th$#2#3$}}
+\def\nomath@env{\PackageError{amstex}{%
+ \string\begin{\@currenvir} allowed only in paragraph mode%
+}\@ehb% "You've lost some text"
+}
+\def\Invalid@@{Invalid use of \string}
+\def\nonmatherr@#1{\PackageError{amsfonts}%
+ {\noexpand#1allowed only in math mode}\@ehd}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% filename = "amstext.dtx",
+%%% version = "1.2beta",
+%%% date = "1994/12/13",
+\DeclareRobustCommand{\text}{%
+ \ifmmode\expandafter\text@\else\expandafter\mbox\fi}
+\let\nfss@text\text
+\def\text@#1{\mathchoice
+ {\textdef@\displaystyle\f@size{#1}}%
+ {\textdef@\textstyle\tf@size{\firstchoice@false #1}}%
+ {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
+ {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%
+ \check@mathfonts
+}
+\def\textdef@#1#2#3{\hbox{{%
+ \everymath{#1}%
+ \let\f@size#2\selectfont
+ #3}}}
+\newif\iffirstchoice@
+\firstchoice@true
+\def\stepcounter#1{%
+ \iffirstchoice@
+ \global\expandafter\advance\csname c@#1\endcsname \@ne
+ \begingroup
+ \let\@elt\@stpelt
+ \csname cl@#1\endcsname
+ \endgroup
+ \fi}
+\toks@{\iffirstchoice@\else\@xp\@gobblefour\fi\protect}
+\edef\GenericInfo{\the\toks@
+ \@xp\@nx\csname GenericInfo \endcsname}
+\edef\GenericWarning{\the\toks@
+ \@xp\@nx\csname GenericWarning \endcsname}
+\toks@{\iffirstchoice@\else
+ \@xp\@xp\@xp\@gobblefour
+ \@xp\@gobbletwo\fi\protect}
+\edef\GenericError{\the\toks@
+ \@xp\@nx\csname GenericError \endcsname}
+\def\label#1{\@bsphack\iffirstchoice@\if@filesw {\let\thepage\relax
+ \def\protect{\noexpand\noexpand\noexpand}%
+\xdef\@gtempa{\write\@auxout{\string
+ \newlabel{#1}{{\@currentlabel}{\thepage}}}}}\@gtempa
+ \if@nobreak \ifvmode\nobreak\fi\fi\fi\fi\@esphack}
+\begingroup \catcode`\"=12
+\gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
+\endgroup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% filename = "amsfonts.dtx",
+%%% version = "1.2beta",
+%%% date = "1994/12/13",
+\newbox\Mathstrutbox@
+\setbox\Mathstrutbox@=\hbox{}
+\def\Mathstrut@{\copy\Mathstrutbox@}
+\addto@hook\every@math@size{\setbox\z@\hbox{\normalfont(}%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}
+\newbox\strutbox@
+\def\strut@{\copy\strutbox@}
+\addto@hook\every@math@size{%
+ \global\setbox\strutbox@\hbox{\lower.5\normallineskiplimit
+ \vbox{\kern-\normallineskiplimit\copy\strutbox}}}
+\def\big{\bBigg@\@ne}
+\def\Big{\bBigg@{1.5}}
+\def\bigg{\bBigg@\tw@}
+\def\Bigg{\bBigg@{2.5}}
+\def\bBigg@#1#2{%
+ {%
+ \hbox{$\left#2\vcenter to#1\big@size{}\right.%
+ \n@space
+ $}}}
+\addto@hook\every@math@size{%
+ \global\big@size 1.2\ht\Mathstrutbox@
+ \global\advance\big@size 1.2\dp\Mathstrutbox@ }
+\newdimen\big@size
+%% msam, msbm, eufm fonts dealt with at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% filename = "amsbsy.dtx",
+%%% version = "1.2beta",
+%%% date = "1994/10/27",
+\DeclareRobustCommand{\boldsymbol}[1]{%
+ \begingroup
+ \let\@nomath\@gobble \mathversion{bold}%
+ \math@atom{#1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle#1$}}%
+ {\hbox{$\m@th\textstyle#1$}}%
+ {\hbox{$\m@th\scriptstyle#1$}}%
+ {\hbox{$\m@th\scriptscriptstyle#1$}}}%
+ \endgroup}
+\def\math@atom#1#2{%
+ \binrel@{#1}\binrel@@{#2}}
+\DeclareRobustCommand{\pmb}{%
+ \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@}
+\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}%
+ \dimen@-\wdz@
+ \kern-.5\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\box\z@
+}
+\newdimen\pmbraise@
+\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}%
+ \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
+ \binrel@{#2}%
+ \dimen@-\wd8 %
+ \binrel@@{%
+ \mkern-.8mu\copy8 %
+ \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 %
+ \kern\dimen@\mkern.4mu\box8 }%
+}
+\def\binrel@#1{\begingroup
+ \setboxz@h{\thinmuskip0mu
+ \medmuskip\m@ne mu\thickmuskip\@ne mu
+ \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@
+ ${}#1{}\m@th$}%
+ \edef\@tempa{\endgroup\let\noexpand\binrel@@
+ \ifdim\wdz@<\z@ \mathbin
+ \else\ifdim\wdz@>\z@ \mathrel
+ \else \relax\fi\fi}%
+ \@tempa
+}
+\let\binrel@@\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\AmSTeX{\protect\AmS-\protect\TeX{}}
+\def\AmS{{\protect\AmSfont
+ A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
+\def\AmSfont{%
+ \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}}
+\def\prim@s{\prime\futurelet\@let@token\pr@m@s}
+\def\pr@m@s{%
+ \ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
+\let\@prime=\prime
+\renewcommand{\prime}{{\kern\z@\@prime}}
+\DeclareRobustCommand{\mspace}[3]{%
+ \ifmmode\mskip#1#2\else\kern#1#3\fi\relax}
+\renewcommand{\,}{\mspace+\thinmuskip{.1667em}}
+\let\thinspace\,
+\renewcommand{\!}{\mspace-\thinmuskip{.1667em}}
+\let\negthinspace\!
+\renewcommand{\:}{\mspace+\medmuskip{.2222em}}
+\let\medspace\:
+\newcommand{\negmedspace}{\mspace-\medmuskip{.2222em}}
+\renewcommand{\;}{\mspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\newcommand{\negthickspace}{\mspace-\thickmuskip{.2777em}}
+\def\implies{\DOTSB\;\Longrightarrow\;}
+\def\impliedby{\DOTSB\;\Longleftarrow\;}
+\begingroup \catcode`\"=12 % in case activated by a preceding package
+\gdef\And{\DOTSB\;\mathchar"3026 \;}
+\gdef\lvert{\delimiter"426A30C }
+\gdef\rvert{\delimiter"526A30C }
+\gdef\lVert{\delimiter"426B30D }
+\gdef\rVert{\delimiter"526B30D }
+\endgroup % restore "
+\DeclareRobustCommand{\frac}{\new@ifnextchar[{\frfrac{}}{\frfrac{}[]}}
+\def\frfrac#1[#2]#3#4{\def\next@{#2}%
+ \ifx\next@\@empty \def\next@{#1{#3\over#4}}%
+ \else \def\next@{{#1{#3\above#2\relax#4}}}%
+ \fi
+ \next@}
+\def\dfrac{\protect\frfrac\displaystyle[]}
+\def\tfrac{\protect\frfrac\textstyle[]}
+\DeclareRobustCommand{\binom}{\frbinom{}}
+\def\frbinom#1#2#3{{#1{#2\atopwithdelims()#3}}}
+\def\dbinom{\protect\frbinom\displaystyle}
+\def\tbinom{\protect\frbinom\textstyle}
+\def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript
+ \mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
+\begingroup \catcode`\"=12
+\DeclareMathSymbol{\coprod@}{\mathop}{largesymbols}{"60}
+\gdef\coprod{\DOTSB\coprod@\slimits@}
+\DeclareMathSymbol{\bigvee@}{\mathop}{largesymbols}{"57}
+\gdef\bigvee{\DOTSB\bigvee@\slimits@}
+\DeclareMathSymbol{\bigwedge@}{\mathop}{largesymbols}{"56}
+\gdef\bigwedge{\DOTSB\bigwedge@\slimits@}
+\DeclareMathSymbol{\biguplus@}{\mathop}{largesymbols}{"55}
+\gdef\biguplus{\DOTSB\biguplus@\slimits@}
+\DeclareMathSymbol{\bigcap@}{\mathop}{largesymbols}{"54}
+\gdef\bigcap{\DOTSB\bigcap@\slimits@}
+\DeclareMathSymbol{\bigcup@}{\mathop}{largesymbols}{"53}
+\gdef\bigcup{\DOTSB\bigcup@\slimits@}
+\DeclareMathSymbol{\prod@}{\mathop}{largesymbols}{"51}
+\gdef\prod{\DOTSB\prod@\slimits@}
+\DeclareMathSymbol{\sum@}{\mathop}{largesymbols}{"50}
+\gdef\sum{\DOTSB\sum@\slimits@}
+\DeclareMathSymbol{\bigotimes@}{\mathop}{largesymbols}{"4E}
+\gdef\bigotimes{\DOTSB\bigotimes@\slimits@}
+\DeclareMathSymbol{\bigoplus@}{\mathop}{largesymbols}{"4C}
+\gdef\bigoplus{\DOTSB\bigoplus@\slimits@}
+\DeclareMathSymbol{\bigodot@}{\mathop}{largesymbols}{"4A}
+\gdef\bigodot{\DOTSB\bigodot@\slimits@}
+\DeclareMathSymbol{\bigsqcup@}{\mathop}{largesymbols}{"46}
+\gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@}
+\endgroup
+\def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\normalfont ...}\vss}}}}
+\def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\normalfont....}\vss}}}}
+\def~{\nobreakspace}
+\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\if@display
+\everydisplay\expandafter{\the\everydisplay \@displaytrue}
+\def\int{\DOTSI\intop\ilimits@}
+\def\oint{\DOTSI\ointop\ilimits@}
+\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
+\def\intdots@{\mathchoice{\@cdots}%
+ {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
+
+\def\iint{\DOTSI\protect\ints@\tw@}
+\def\iiint{\DOTSI\protect\ints@\thr@@}
+\def\iiiint{\DOTSI\protect\ints@{4}}
+\def\idotsint{\DOTSI\protect\ints@\z@}
+
+\def\ints@#1{%
+ \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
+ \mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}%
+ \intop\ifnum#1=\z@\intdots@
+ \else\intkern@\fi
+ \ifnum#1>\tw@\intop\intkern@\fi
+ \ifnum#1>\thr@@\intop\intkern@\fi
+ \intop
+ }\ilimits@
+}
+\def\nolimits@{%
+ \DN@{\nolimits\ifx\@let@token\limits\expandafter\@gobble\fi}%
+ \FN@\next@}
+\begingroup \catcode`\"=12
+\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
+ \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax}
+\endgroup
+\DeclareRobustCommand{\operatorname}{%
+ \@ifstar{\qopname\newmcodes@ n}%
+ {\qopname\newmcodes@{no}}}%
+\DeclareRobustCommand{\qopname}[3]{\mathop{#1\kern\z@\operator@font#3}%
+ \csname #2limits@\endcsname}
+\def\arccos{\qopname\relax{no}{arccos}}
+\def\arcsin{\qopname\relax{no}{arcsin}}
+\def\arctan{\qopname\relax{no}{arctan}}
+\def\arg{\qopname\relax{no}{arg}}
+\def\cos{\qopname\relax{no}{cos}}
+\def\cosh{\qopname\relax{no}{cosh}}
+\def\cot{\qopname\relax{no}{cot}}
+\def\coth{\qopname\relax{no}{coth}}
+\def\csc{\qopname\relax{no}{csc}}
+\def\deg{\qopname\relax{no}{deg}}
+\def\det{\qopname\relax n{det}}
+\def\dim{\qopname\relax{no}{dim}}
+\def\exp{\qopname\relax{no}{exp}}
+\def\gcd{\qopname\relax n{gcd}}
+\def\hom{\qopname\relax{no}{hom}}
+\def\inf{\qopname\relax n{inf}}
+\def\injlim{\qopname\relax n{inj\,lim}}
+\def\ker{\qopname\relax{no}{ker}}
+\def\lg{\qopname\relax{no}{lg}}
+\def\lim{\qopname\relax n{lim}}
+\def\liminf{\qopname\relax n{lim\,inf}}
+\def\limsup{\qopname\relax n{lim\,sup}}
+\def\ln{\qopname\relax{no}{ln}}
+\def\log{\qopname\relax{no}{log}}
+\def\max{\qopname\relax n{max}}
+\def\min{\qopname\relax n{min}}
+\def\Pr{\qopname\relax n{Pr}}
+\def\projlim{\qopname\relax n{proj\,lim}}
+\def\sec{\qopname\relax{no}{sec}}
+\def\sin{\qopname\relax{no}{sin}}
+\def\sinh{\qopname\relax{no}{sinh}}
+\def\sup{\qopname\relax n{sup}}
+\def\tan{\qopname\relax{no}{tan}}
+\def\tanh{\qopname\relax{no}{tanh}}
+\def\operator@font{\mathgroup\symoperators}
+\def\operatornamewithlimits{\operatorname*}
+\def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr
+ \hfil$#1\m@th\operator@font lim$\hfil\crcr
+ \noalign{\nointerlineskip\kern\ex@}#2#1\crcr
+ \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
+\def\varinjlim{\mathpalette\varlim@\rightarrowfill@}
+\def\varprojlim{\mathpalette\varlim@\leftarrowfill@}
+\def\varliminf{\mathpalette\varliminf@{}}
+\def\varliminf@#1{\mathop{\@@underline{\vrule\@depth.2\ex@\@width\z@
+ \hbox{$#1\m@th\operator@font lim$}}}}
+\def\varlimsup{\mathpalette\varlimsup@{}}
+\def\varlimsup@#1{\mathop{\@@overline
+ {\hbox{$#1\m@th\operator@font lim$}}}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{%
+ \@ifundefined{c@#2}{\@nocnterr{#2}}{%
+ \@addtoreset{#1}{#2}%
+ \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}%
+ \expandafter\xdef\csname the#1\endcsname
+ {\expandafter\noexpand\csname the#2\endcsname
+ .\the\toks@}}}}
+\def\eqref#1{\textup{\tagform@{\ref{#1}}}}
+\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin
+ {\operator@font mod}\penalty900
+ \mkern5mu\mskip-\medmuskip}
+\def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)}
+\def\pmod#1{\pod{{\operator@font mod}\mkern6mu#1}}
+\def\mod#1{\allowbreak\if@display\mkern18mu
+ \else\mkern12mu\fi{\operator@font mod}\,\,#1}
+\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
+ \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
+ \kern-\nulldelimiterspace}
+\def\lcfrac{\cfrac[l]}
+\def\rcfrac{\cfrac[r]}
+\def\overset#1#2{\binrel@{#2}%
+ \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
+\def\underset#1#2{\binrel@{#2}%
+ \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
+\def\sideset#1#2#3{%
+ \setbox\z@\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}%
+ \setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}%
+ \hskip\wd\z@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\z@
+ {\vphantom{#3}}#1{#3}#2}}
+\renewcommand{\smash}[2][tb]{%
+ \def\smash@{#1}%
+ \ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else
+ \expandafter\makesm@sh\fi{#2}}
+\def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}%
+ \def\mb@tb{\mb@t\mb@b}%
+ {\csname mb@\smash@\endcsname}%
+ \leavevmode\boxz@}
+\def\rightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\copy\z@\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+\def\leftarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\mathord\leftarrow\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
+ \mkern-6mu\box\z@$}
+\def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\mathord\leftarrow\mkern-6mu\cleaders
+ \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
+ \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
+\def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}}
+\def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}}
+\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}}
+\def\underarrow@#1#2#3{%
+ \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
+ \noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}}
+\def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}}
+\def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}}
+\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}}
+\let\ifgtest@\iffalse % initial value
+\def\gtest@true{\global\let\ifgtest@\iftrue}
+\def\gtest@false{\global\let\ifgtest@\iffalse}
+\let\DOTSI\relax
+\let\DOTSB\relax
+\let\DOTSX\relax
+{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
+ \uppercase{%
+ \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2%
+ \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true
+ \fi\fi\fi\fi\fi}}}
+{\uccode`7=`c \uccode`8=`h \uccode`9=`\"
+ \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false
+ \ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}
+\newcount\classnum@
+\def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
+ \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
+ \gdef\thedots@{\dotsb@}\fi}
+{\uccode`4=`b \uccode`5=`i \uccode`6=`n
+ \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
+ \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\mathbin@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+{\uccode`4=`r \uccode`5=`e \uccode`6=`l
+ \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
+ \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\mathrel@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+{\uccode`5=`m \uccode`6=`a \uccode`7=`c
+ \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false
+ \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true
+ \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
+\def\macro@@#1->#2\macro@@{#2}
+\newcount\DOTSCASE@
+{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
+ \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%
+ \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@
+ \fi\fi\fi\fi\fi
+ \next@}}}
+{\uccode`3=`B \uccode`4=`I \uccode`5=`X
+ \uppercase{\gdef\DOTS@@#1{\relaxnext@
+ \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \DN@{\FN@\nextii@}%
+ \ifx 3#1\global\DOTSCASE@\z@\else
+ \ifx 4#1\global\DOTSCASE@\@ne\else
+ \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
+ \fi\fi\fi\next@}}}
+{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
+ \uppercase{\gdef\not@#1#2#3#4{\relaxnext@
+ \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}%
+ \gtest@false\DN@##1\not@{}%
+ \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
+ \fi\next@}}}
+\def\keybin@{\gtest@true
+ \ifx\@let@token+\else\ifx\@let@token=\else\ifx\@let@token<%
+ \else\ifx\@let@token>\else\ifx\@let@token-\else\ifx\@let@token*%
+ \else\ifx\@let@token:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi}
+\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{}
+\DeclareRobustCommand{\dots}{\relax
+ \csname\ifmmode m\else t\fi dots@\endcsname}
+\def\tdots@{\leavevmode\unskip\relaxnext@
+ \DN@{$\m@th\@ldots\,
+ \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else\ifx\@let@token;\,$%
+ \else\ifx\@let@token:\,$\else\ifx\@let@token?\,$%
+ \else\ifx\@let@token!\,$\else$ \fi\fi\fi\fi\fi\fi}%
+ \ \FN@\next@}
+\def\mdots@{\FN@\mdots@@}
+\def\mdots@@{\gdef\thedots@{\dotso@}%
+ \ifx\@let@token\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}%
+ \else\ifx,\@let@token\gdef\thedots@{\dotsc}%
+ \else\ifx\not\@let@token\gdef\thedots@{\dotsb@}%
+ \else\keybin@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\xdef\meaning@{\meaning\@let@token..........}%
+ \xdef\meaning@@{\meaning@}%
+ \expandafter\math@\meaning@\math@
+ \ifgtest@
+ \expandafter\mathch@\meaning@\mathch@
+ \ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi
+ \else\expandafter\macro@\meaning@@\macro@
+ \ifgtest@
+ \expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\expandafter\DOTS@\meaning@\DOTS@
+ \ifgtest@
+ \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
+ \or\gdef\thedots@{\dotsi}\else\fi
+ \else\expandafter\math@\meaning@\math@
+ \ifgtest@\expandafter\mathbin@\meaning@\mathbin@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \else\expandafter\mathrel@\meaning@\mathrel@
+ \ifgtest@\gdef\thedots@{\dotsb@}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \thedots@}
+\def\boldsymboldots@#1{%
+ \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@
+ \boldsymbol#1\bold@false}
+\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\def\dotsi{\!\@cdots}
+\let\dotsb@\@cdots
+\def\rightdelim@{\gtest@true
+ \ifx\@let@token)\else
+ \ifx\@let@token]\else
+ \ifx\@let@token\rbrack\else
+ \ifx\@let@token\}\else
+ \ifx\@let@token\rbrace\else
+ \ifx\@let@token\rangle\else
+ \ifx\@let@token\rceil\else
+ \ifx\@let@token\rfloor\else
+ \ifx\@let@token\rgroup\else
+ \ifx\@let@token\rmoustache\else
+ \ifx\@let@token\right\else
+ \ifx\@let@token\bigr\else
+ \ifx\@let@token\biggr\else
+ \ifx\@let@token\Bigr\else
+ \ifx\@let@token\Biggr\else\gtest@false
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\extra@{%
+ \rightdelim@\ifgtest@
+ \else\ifx\@let@token$\gtest@true
+ \else\xdef\meaning@{\meaning\@let@token..........}%
+ \expandafter\macro@\meaning@\macro@\ifgtest@
+ \expandafter\DOTS@\meaning@\DOTS@
+ \ifgtest@
+ \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false
+ \fi\fi\fi\fi\fi}
+\newif\ifbold@
+\def\dotso@{\relaxnext@
+ \ifbold@
+ \let\@let@token\delayed@
+ \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%
+ \else
+ \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%
+ \fi
+ \nextii@}
+\def\extrap@#1{%
+ \DN@{#1\,}%
+ \ifx\@let@token,\else
+ \ifx\@let@token;\else
+ \ifx\@let@token.\else\extra@
+ \ifgtest@\else
+ \let\next@#1\fi\fi\fi\fi\next@}
+\DeclareRobustCommand{\ldots}{\relax
+ \ifmmode \DN@{\extrap@\@ldots}%
+ \else \let\next@\tdots@\fi
+ \FN@\next@}
+\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@}
+\let\dotso\ldots
+\let\dotsb\cdots
+\let\dotsm\dotsb
+\DeclareRobustCommand{\dotsc}{%
+ \DN@{\ifx\@let@token;\@ldots\,%
+ \else \ifx\@let@token.\@ldots\,%
+ \else \extra@\@ldots \ifgtest@\,\fi
+ \fi\fi}%
+ \FN@\next@}
+\def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
+\def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
+\def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
+\def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
+\def\mapsto{\DOTSB\mapstochar\rightarrow}
+\def\longmapsto{\DOTSB\mapstochar\longrightarrow}
+\def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
+\def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
+\def\doteq{\DOTSB\buildrel\textstyle.\over=}
+\def\iff{\DOTSB\;\Longleftrightarrow\;}
+\begingroup \catcode`\"=12
+\mathchardef\@tempa="7000
+\ifx\@tempa\Gamma
+ \DeclareMathSymbol{\Gamma}{\mathord}{operators}{"00}
+ \DeclareMathSymbol{\Delta}{\mathord}{operators}{"01}
+ \DeclareMathSymbol{\Theta}{\mathord}{operators}{"02}
+ \DeclareMathSymbol{\Lambda}{\mathord}{operators}{"03}
+ \DeclareMathSymbol{\Xi}{\mathord}{operators}{"04}
+ \DeclareMathSymbol{\Pi}{\mathord}{operators}{"05}
+ \DeclareMathSymbol{\Sigma}{\mathord}{operators}{"06}
+ \DeclareMathSymbol{\Upsilon}{\mathord}{operators}{"07}
+ \DeclareMathSymbol{\Phi}{\mathord}{operators}{"08}
+ \DeclareMathSymbol{\Psi}{\mathord}{operators}{"09}
+ \DeclareMathSymbol{\Omega}{\mathord}{operators}{"0A}
+ \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00}
+ \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01}
+ \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02}
+ \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03}
+ \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04}
+ \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05}
+ \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06}
+ \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07}
+ \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08}
+ \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09}
+ \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A}
+\fi
+\endgroup
+\def\accentclass@{7}
+\def\noaccents@{\def\accentclass@{0}}
+\DeclareFontEncoding{OML}{}{\noaccents@}
+\DeclareFontEncoding{OMS}{}{\noaccents@}
+\edef\@tempa#1#2{\def#1{\mathaccent\string"\noexpand\accentclass@#2 }}
+\@tempa\hat{05E}\@tempa\check{014}\@tempa\tilde{07E}\@tempa\acute{013}
+\@tempa\grave{012}\@tempa\dot{05F}\@tempa\ddot{07F}\@tempa\breve{015}
+\@tempa\bar{016}
+\newcount\skewcharcount@
+\newcount\familycount@
+\def\theskewchar@{\familycount@\@ne
+ \global\skewcharcount@\the\skewchar\textfont\@ne
+ \ifnum\mathgroup>\m@ne\ifnum\mathgroup<16
+ \global\familycount@\the\mathgroup\relax
+ \global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi
+ \ifnum\skewcharcount@>\m@ne
+ \ifnum\skewcharcount@<128
+ \multiply\familycount@256
+ \global\advance\skewcharcount@\familycount@
+ \global\advance\skewcharcount@28672
+ \mathchar\skewcharcount@\else
+ \global\skewcharcount@\m@ne\fi\else
+ \global\skewcharcount@\m@ne\fi}
+\newcount\pointcount@
+\def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
+\newdimen\accentdimen@
+\newcount\accentmu@
+\def\dimentomu@{\multiply\accentdimen@ 100
+ \expandafter\getpoints@\the\accentdimen@\getpoints@
+ \multiply\pointcount@18
+ \divide\pointcount@\@m
+ \global\accentmu@\pointcount@}
+\def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else
+ \xdef\thefam@{\the\mathgroup}\fi
+ \accentdimen@\z@
+ \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}%
+ \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
+ \setbox\@ne\hbox{\unbracefonts@
+ $\m@th\mathgroup\thefam@\relax#2\theskewchar@$}
+ \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
+ \mathchar\skewcharcount@\fi$}%
+ \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@
+ \global\advance\accentdimen@-\wd\tw@
+ \global\multiply\accentdimen@\tw@
+ \dimentomu@\global\advance\accentmu@\@ne
+ \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
+ \mkern-\accentmu@ mu}{}}\fi
+ \next@}
+\def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty}
+\begingroup \catcode`\"=12
+\def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2 }}%
+ \else\DN@{\nonmatherr@{#1}}\fi\next@}}
+\@tempa\Hat{05E}\@tempa\Check{014}\@tempa\Tilde{07E}\@tempa\Acute{013}
+\@tempa\Grave{012}\@tempa\Dot{05F}\@tempa\Ddot{07F}\@tempa\Breve{015}
+\@tempa\Bar{016}
+\gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
+ \DN@{\nonmatherr@\Vec}\fi\next@}
+\endgroup
+\begingroup \catcode`\"=12
+\gdef\@@sqrt#1{\radical"270370 {#1}}
+\endgroup
+\@saveprimitive\overline\@@overline
+\def\overline#1{\@@overline{#1}}
+\def\boxed#1{\fbox{\m@th$\displaystyle#1$}}
+\def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi}
+\newcount\dspbrk@lvl
+\dspbrk@lvl=-1
+\interdisplaylinepenalty\@M
+\def\allowdisplaybreaks{%
+ \new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}}
+\def\allowdspbrks@[#1]{%
+ \interdisplaylinepenalty\getdsp@pen{#1}}
+\def\getdsp@pen#1{%
+ \ifcase #1\relax \@M
+ \or 9999
+ \or 6999
+ \or 2999
+ \or \z@\fi}
+\def\displaybreak{\PackageError{amstex}{\Invalid@@\displaybreak}\@eha}
+\def\displaybreak@{%
+ \def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}}
+\def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax}
+\def\math@cr{{\ifnum0=`}\fi
+ \new@ifstar{\global\@eqpen\@M\math@cr@}%
+ {\global\@eqpen
+ \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty
+ \else -\@getpen\dspbrk@lvl \fi
+ \math@cr@}}
+\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
+\def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
+ \noalign{\vskip#1\relax}}
+\def\Let@{\let\\\math@cr}
+\def\restore@math@cr{\def\math@cr@@@{\cr}}
+\restore@math@cr
+\def\intertext{\PackageError{amstex}{\Invalid@@\intertext}\@eha}
+\def\intertext@{\def\intertext##1{\noalign{%
+ \penalty\postdisplaypenalty\vskip\belowdisplayskip
+ \vbox{\normalbaselines\noindent##1}%
+ \penalty\predisplaypenalty\vskip\abovedisplayskip}}}
+\newhelp\tag@help
+ {tag cannot be used at this point.\space
+ If you don't understand why^^Jyou should consult
+ the documentation.^^JBut don't worry: just continue, and I'll
+ forget what happened.}
+\def\gobble@tag{\new@ifstar\@gobble\@gobble}
+\def\invalid@tag#1{\PackageError{amstex}{#1}{\the\tag@help}\gobble@tag}
+\def\dft@tag{\invalid@tag{\string\tag\space not allowed here}}
+\def\default@tag{\let\tag\dft@tag}
+\default@tag
+\def\maketag@@{\new@ifstar\maketag@@@\tagform@}
+\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
+\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
+\def\thetag{\leavevmode\tagform@}
+\def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@}
+\def\make@df@tag@@#1{%
+ \def\@currentlabel{#1}%
+ \gdef\df@tag{\maketag@@@{#1}}}
+\def\make@df@tag@@@#1{\@seteqlabel{#1}\gdef\df@tag{\tagform@{#1}}}
+\def\@seteqlabel#1{\toks@\@xp{\p@equation{#1}}%
+ \edef\@currentlabel{\the\toks@}}
+\def\notag{\nonumber}
+\iftagsleft@
+\def\@eqnnum{\hbox to1sp{}\rlap{\normalfont
+ \hskip -\displaywidth\tagform@\theequation}}
+\fi
+
+\let\@adjusttag\@empty
+
+\def\adjusttag#1{\skip@#1\relax\gdef\@adjusttag{#1}}
+
+\def\@movetag{%
+ \ifx\@adjusttag\@empty \else
+ \vskip\@adjusttag\relax
+ \global\let\@adjusttag\@empty
+ \fi
+}
+\def\multilimits@{\bgroup
+ \Let@
+ \restore@math@cr
+ \default@tag
+ \baselineskip\fontdimen10 \scriptfont\tw@
+ \advance\baselineskip\fontdimen12 \scriptfont\tw@
+ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \lineskiplimit\lineskip
+ \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
+\def\Sb{_\multilimits@}
+\def\Sp{^\multilimits@}
+\def\endSb{\crcr\egroup\egroup\egroup}
+\let\endSp=\endSb
+\def\smallmatrix{\null\,\vcenter\bgroup
+ \Let@\restore@math@cr\default@tag
+ \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
+ \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
+ $\m@th\scriptstyle{##}$\hfil\crcr}
+\def\endsmallmatrix{\crcr\egroup\egroup\,}
+\newcount\c@MaxMatrixCols
+\c@MaxMatrixCols=10
+
+\def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}}
+\def\endmatrix{\endarray \hskip -\arraycolsep}
+\@ifundefined{prepnext@tok}{%
+ \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 \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \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@\baselineskip\z@\@preamble}%
+\begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure!
+\lowercase{%
+\gdef\@xexpast#1*#2#3#4\@@{\begingroup
+ \def~{@}\edef\reserved@a{#1}\@tempcnta#2\relax
+ \ifnum\@tempcnta >\z@
+ \@whilenum\@tempcnta >\z@\do
+ {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}%
+ \let\reserved@b\@xexpast
+ \else \let\reserved@b\@xexnoop\fi
+ \expandafter\reserved@b \reserved@a #4\@@
+ \expandafter\endgroup
+ \expandafter\def\expandafter\reserved@a\expandafter{\reserved@a}%
+ \let\@tempa\reserved@a
+}% End of \@xexpast
+}% End of \lowercase
+\endgroup
+}{}% End of \@ifundefined test.
+\def\pmatrix{\left(\matrix}
+\def\endpmatrix{\endmatrix\right)}
+\def\bmatrix{\left[\matrix}
+\def\endbmatrix{\endmatrix\right]}
+\def\vmatrix{\left|\matrix}
+\def\endvmatrix{\endmatrix\right|}
+\def\Vmatrix{\left\|\matrix}
+\def\endVmatrix{\endmatrix\right\|}
+\let\hdots\@ldots
+\def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else
+ \hdots@for\@ne{#1}\fi}
+\newmuskip\dotsspace@
+\def\shdots@for#1]{\hdots@for{#1}}
+\def\hdots@for#1#2{\multicolumn{#2}c%
+ {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@
+ \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%
+ \hfill
+ \mkern-#1\dotsspace@}%
+ }
+\def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep
+ \array{l@{\quad}l}}
+\def\endcases{\endarray\hskip-\arraycolsep\right.}
+\newif\ifinany@
+\newif\ifinalign@
+\newif\ifingather@
+\newcount\and@
+\newif\iftag@
+\newhelp\andhelp@
+{An extra & here is so disastrous that you should probably exit^^J
+and fix things up.}
+\newif\ifst@rred
+\newtoks\@envbody
+\def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}}
+\def\collect@body#1{%
+ \@envbody{}%
+ \def\process@envbody{%
+ \expandafter#1\expandafter{\the\@envbody}}%
+ \expandafter\let\csname\@currenvir\endcsname\collect@@body
+ \csname\@currenvir\endcsname}
+\def\collect@@body#1\end#2{%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@currenvir
+ \addto@envbody{#1}%
+ \expandafter\edef\csname\@currenvir\endcsname
+ {\noexpand\process@envbody\noexpand\end{\@tempa}}%
+ \else
+ \addto@envbody{#1\end{#2}}%
+ \fi
+ \csname\@currenvir\endcsname}
+\newenvironment{aligned}{%
+ \relax\ifmmode\else\nonmatherr@{\begin{aligned}}\fi
+ \null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}%
+}{%
+ \crcr\egroup\egroup
+}
+\def\aligned@[#1]{%
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup
+ \Let@\restore@math@cr
+ \default@tag
+ \ifinany@\else\openup\jot\fi
+ \ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&%
+ $\m@th\displaystyle{{}##}$\hfil\crcr}
+\newtoks\hashtoks@
+\hashtoks@{#}
+\newcount\atcount@
+\def\doat@#1{\toks@{\hfil\strut@$\m@th
+ \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
+ {{}\the\hashtoks@}$\hfil}%
+ \atcount@#1\relax\advance\atcount@\m@ne
+ \loop\ifnum\atcount@>\z@\toks@\expandafter{\the\toks@&\hfil$\m@th
+ \displaystyle{\the\hashtoks@}$&$\m@th
+ \displaystyle{{}\the\hashtoks@}$\hfil}\advance
+ \atcount@\m@ne\repeat
+ \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
+\newenvironment{alignedat}[2][c]{%
+ \null\,%
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup\doat@{#2}\Let@ \restore@math@cr\default@tag
+ \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr
+}{%
+ \endaligned
+}
+\newenvironment{gathered}[1][c]{%
+ \relax\ifmmode\else\nonmatherr@{\begin{gathered}}\fi
+ \null\,%
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup\Let@\restore@math@cr
+ \ifinany@\else\openup\jot\fi\ialign
+ \bgroup\hfil\strut@$\m@th\displaystyle##$\hfil\crcr
+}{%
+ \endaligned
+}
+\def\tag@in@align{\relax
+ \iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else
+ \global\tag@true
+ \if@eqnsw\global\@eqnswfalse\fi
+ \let\next@\make@df@tag\fi
+ \next@}
+\def\math@cr@@@align{%
+ \if@eqnsw\global\tag@true\fi
+ \iftag@
+ \ifcase\and@
+ \DN@{&&}\else
+ \DN@{&}\fi\else
+ \let\next@\relax\fi
+ \next@
+ \relax
+ \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
+ \iftag@\df@tag\fi\fi
+ \global\@eqnswtrue\cr}
+\def\Tag@{\relax\iftag@\else\firstchoice@true
+ \PackageError{amstex}{%
+ Extra & on this line%
+ }{\the\andhelp@% "An extra & here is disastrous"
+}\fi}
+\newdimen\lwidth@
+\newdimen\rwidth@
+\newdimen\maxlwidth@
+\newdimen\maxrwidth@
+\newdimen\totwidth@
+\def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@
+ \global\and@\z@
+ \setbox\@ne\vbox{%
+ \everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
+ \let\tag\gobble@tag
+ \let\notag\@empty \let\nonumber\@empty
+ \firstchoice@false
+ \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
+ \global\lwidth@\wdz@
+ \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
+ \global\advance\and@\@ne
+ &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
+ \global\rwidth@\wdz@
+ \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
+ \global\advance\and@\@ne
+ &\Tag@\@gobble{##}\crcr#1\crcr}}%
+ \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
+\def\displ@y{\global\dt@ptrue\openup\jot\m@th
+ \everycr{\noalign{\ifdt@p \global\dt@pfalse
+ \vskip-\lineskiplimit \vskip\normallineskiplimit
+ \else \penalty\@eqpen \fi}}}
+\def\displ@y@{\global\dt@ptrue\openup\jot
+ \everycr{\noalign{\global\tag@false
+ \global\and@\z@
+ \global\dspbrk@lvl\m@ne
+ \ifdt@p\global\dt@pfalse
+ \vskip-\lineskiplimit\vskip\normallineskiplimit\else
+ \penalty\@eqpen\fi}}}
+\def\black@#1{\noalign{\ifdim#1>\displaywidth
+ \dimen@\prevdepth\nointerlineskip
+ \vskip-\ht\strutbox@\vskip-\dp\strutbox@
+ \vbox{\noindent\hbox to#1{\strut@\hfill}}%
+ \prevdepth\dimen@
+ \fi}}
+\def\align{\ifingather@
+ {\ifnum0=`}\fi
+ \DN@{\@nameuse{align (in \string\gather)}}%
+ \else \ifmmode\nomath@env
+ \DN@{\let\endalign\relax\@gobble}\else
+ $$\stepcounter{equation}%
+ \st@rredfalse\let\next@\align@\fi\fi
+ \collect@body\next@}
+\@namedef{align*}{\ifingather@
+ {\ifnum0=`}\fi
+ \DN@{\@nameuse{align* (in \string\gather)}}\else
+ \ifmmode\nomath@env
+ \DN@{\@namedef{endalign*}{}\@gobble}\else
+ $$\st@rredtrue
+ \let\next@\align@\fi\fi
+ \collect@body\next@}
+\newdimen\lineht@
+\def\align@{\inalign@true\inany@true
+ \displaybreak@\intertext@
+ \let\math@cr@@@\math@cr@@@align
+ \let\tag\tag@in@align
+ \global\and@\z@\global\dspbrk@lvl\m@ne
+ \iftagsleft@\DN@{\@nameuse{align }}\else
+ \DN@{\@nameuse{align \space}}\fi\next@}
+\@namedef{align }#1{%
+ \measure@{#1}%
+ \global\and@\z@
+ \global\dspbrk@lvl\m@ne
+ \if@fleqn %%*F
+ \advance\totwidth@\@mathmargin %%*F
+ \fi %%*F
+ \ifdim\totwidth@>\displaywidth
+ \let\displaywidth@\totwidth@
+ \else
+ \let\displaywidth@\displaywidth
+ \fi
+ \ifingather@
+ \everycr{%
+ \noalign{%
+ \global\and@\z@
+ \global\dspbrk@lvl\m@ne
+ }%
+ }%
+ \else
+ \displ@y@
+ \fi
+ \Let@
+ \ifst@rred\else\@seteqlabel\theequation\fi
+ \tabskip\@mathmargin %%*F
+ \dimen@\displaywidth %%*F
+ \if@fleqn %%*F
+ \ifingather@ %%*F
+ \tabskip\z@skip %%*F
+ \advance\dimen@-\@mathmargin %%*F
+ \fi %%*F
+ \fi %%*F
+ \halign to\dimen@\bgroup %%*F
+ \ifst@rred\nonumber\fi
+ \hfil
+ \strut@
+ \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
+ \global\lwidth@\wdz@
+ \global\lineht@\ht\z@
+ \boxz@
+ \global\advance\and@\@ne
+ \tabskip\z@skip
+ &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
+ \global\rwidth@\wdz@
+ \ifdim\ht\z@>\lineht@
+ \global\lineht@\ht\z@
+ \fi
+ \boxz@
+ \hfil
+ \global\advance\and@\@ne
+ \tabskip\@centering
+ &\kern-\displaywidth@
+ \setboxz@h{\@lign\strut@{##}}%
+ \if@fleqn %%*F
+ \dimen@\@mathmargin %%*F
+ \advance\dimen@\maxlwidth@ %%*F
+ \advance\dimen@-\lwidth@ %%*F
+ \else %%*F
+ \dimen@\displaywidth
+ \advance\dimen@-\totwidth@
+ \divide\dimen@\tw@
+ \advance\dimen@\maxlwidth@
+ \advance\dimen@-\lwidth@
+ \fi %%*F
+ \ifdim\dimen@<\tw@\wdz@
+ \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}%
+ \else
+ \rlap{\boxz@}%
+ \fi
+ \tabskip\displaywidth@
+ \crcr
+ #1%
+}
+\@namedef{align \space}#1{%
+ \measure@{#1}%
+ \if@fleqn %%*F
+ \advance\totwidth@\@mathmargin %%*F
+ \fi %%*F
+ \global\and@\z@
+ \global\dspbrk@lvl\m@ne
+ \ifingather@
+ \everycr{\noalign{\global\and@\z@\global\dspbrk@lvl\m@ne}}%
+ \else
+ \displ@y@
+ \fi
+ \Let@
+ \ifst@rred\else\@seteqlabel\theequation\fi
+ \tabskip\@mathmargin %%*F
+ \dimen@\displaywidth %%*F
+ \if@fleqn %%*
+ \ifingather@ %%*F
+ \tabskip\z@skip %%*F
+ \advance\dimen@-\@mathmargin %%*F
+ \fi %%*F
+ \fi %%*F
+ \halign to\dimen@\bgroup %%*F
+ \ifst@rred\nonumber\fi
+ \hfil
+ \strut@
+ \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
+ \global\lwidth@\wdz@\boxz@
+ \global\advance\and@\@ne
+ \tabskip\z@skip
+ &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
+ \global\rwidth@\wdz@
+ \boxz@
+ \hfill
+ \global\advance\and@\@ne
+ \tabskip\@centering
+ &\setboxz@h{\@lign\strut@{##}}%
+ \dimen@\displaywidth
+ \advance\dimen@-\totwidth@
+ \divide\dimen@\tw@
+ \advance\dimen@\maxrwidth@
+ \advance\dimen@-\rwidth@
+ \ifdim\dimen@<\tw@\wdz@
+ \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T
+ \else
+ \llap{\boxz@}%
+ \fi
+ \tabskip\z@skip
+ \crcr#1%
+}
+\def\endalign{\math@cr@@@align
+ \black@\totwidth@
+ \egroup$$\global\@ignoretrue\setb@ck}
+
+\@namedef{endalign*}{\math@cr@@@align\black@\totwidth@
+ \egroup$$\global\@ignoretrue}
+\@namedef{align (in \string\gather)}{%
+ \ifst@rred\stepcounter{equation}\fi
+ \def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}%
+ \vcenter\bgroup\st@rredfalse
+ \collect@body\align@}
+\@namedef{endalign (in \string\gather)}{%
+ \math@cr@@@align\black@\totwidth@
+ \egroup\egroup
+ \ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather
+ \global\tag@false\global\@eqnswfalse}
+\@namedef{align* (in \string\gather)}{%
+ \@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}%
+ \ifnum0=`{\fi}}%
+ \vcenter\bgroup\st@rredtrue
+ \collect@body\align@}
+\@namedef{endalign* (in \string\gather)}{%
+ \math@cr@@@align\black@\totwidth@\egroup\egroup
+ \global\tag@false\global\@eqnswfalse}
+\newif\ifxat@
+\def\alignat#1{%
+ \ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$%
+ \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
+ \DN@{\@nameuse{alignat }#1}\fi
+ \collect@body\next@}
+\@namedef{alignat*}#1{%
+ \ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$%
+ \st@rredtrue
+ \DN@{\@nameuse{alignat }#1}\fi
+ \collect@body\next@}
+\newif\ifmeasuring@
+\newbox\savealignat@
+\def\math@cr@@@alignat{%
+ \if@eqnsw\global\tag@true\fi
+ \iftag@
+ \multiply\count@\tw@
+ \xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}%
+ \advance\count@\m@ne\repeat\else
+ \let\next@\relax\fi
+ \next@
+ \relax
+ \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
+ \iftag@\df@tag\fi\fi
+ \global\@eqnswtrue\cr}%
+\@namedef{alignat }#1#2{%
+ \inany@true
+ \xat@false
+ \let\tag\tag@in@align
+ \def\math@cr@@@{\count@#1\relax \math@cr@@@alignat}%
+ \displaybreak@
+ \intertext@
+ \displ@y@
+ \ifst@rred
+ \global\@eqnswfalse
+ \else
+ \global\@eqnswtrue
+ \fi
+ \measuring@true
+ \setbox\savealignat@\hbox{%
+ $\m@th\displaystyle\Let@
+ \attag@{#1}%
+ \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$%
+ }%
+ \measuring@false
+ \Let@
+ \attag@{#1}%
+ \tabskip\@mathmargin %%*F
+ \halign to\displaywidth\bgroup
+ \span\preamble@@\crcr
+ #2%
+}
+\def\endalignat{\math@cr@@@\black@{\wd\savealignat@}%
+ \egroup\setb@ck$$\global\@ignoretrue}
+\@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup
+ $$\global\@ignoretrue}
+\def\xalignat#1{%
+ \ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$%
+ \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
+ \DN@{\@nameuse{xalignat }#1}\fi
+ \collect@body\next@}
+\@namedef{xalignat*}#1{%
+ \ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$%
+ \st@rredtrue
+ \DN@{\@nameuse{xalignat }#1}\fi
+ \collect@body\next@}
+\let\endxalignat=\endalignat
+
+\expandafter\let\csname endxalignat*\expandafter
+ \endcsname\csname endalignat*\endcsname
+\@namedef{xalignat }#1#2{%
+ \inany@true
+ \xat@true
+ \let\tag\tag@in@align
+ \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}%
+ \displaybreak@
+ \intertext@
+ \displ@y@
+ \measuring@true
+ \setbox\savealignat@\hbox{%
+ $\m@th\displaystyle\Let@
+ \attag@{#1}%
+ \vbox{%
+ \firstchoice@false
+ \halign{\span\preamble@@\crcr#2\crcr}%
+ }%
+ $%
+ }%
+ \measuring@false
+ \Let@
+ \attag@{#1}%
+ \tabskip\@mathmargin %%*F
+ \halign to\displaywidth\bgroup
+ \span\preamble@@\crcr#2%
+}
+\def\attag@#1{%
+ \let\TAG@\Tag@\let\Tag@0%
+ \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
+ \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else
+ \let\llap@\llap\let\rlap@\rlap\fi
+ \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$%
+ \tabskip\z@skip
+ \global\advance\and@\@ne
+ &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil
+ \ifxat@\tabskip\@centering\fi\global\advance\and@\@ne}%
+ \iftagsleft@
+ \@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth
+ \rlap@{\@lign
+ \the\hashtoks@
+ }%
+ \global\advance\and@\@ne\tabskip\displaywidth}\else
+ \@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign
+ \the\hashtoks@
+ }\global\advance\and@\@ne\tabskip\z@skip}\fi
+ \atcount@#1\relax\advance\atcount@\m@ne
+ \loop\ifnum\atcount@>\z@
+ \toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
+ \the\hashtoks@}$\global\advance\and@\@ne
+ \tabskip\z@skip
+ &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@
+ \tabskip\@centering\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
+ \repeat
+ \xdef\preamble@{\the\toks@\the\@temptokena}%
+ \xdef\preamble@@{\ifst@rred\noexpand\nonumber\fi\preamble@}%
+ \let\Tag@\TAG@}
+\def\xxalignat#1{%
+ \ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$%
+ \DN@{\@nameuse{xxalignat }#1}\fi
+ \collect@body\next@}
+\@namedef{xxalignat }#1#2{\inany@true
+ \displaybreak@\intertext@
+ \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
+ \xxattag@{#1}%
+ \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}%
+ \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup
+ \span\preamble@@\crcr#2}
+\expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname
+\def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
+ $\m@th\displaystyle{\the\hashtoks@}$&%
+ $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\@centering&}%
+ \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
+ \toks@
+ \expandafter
+ {\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
+ \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
+ \tabskip\@centering}\advance\atcount@\m@ne\repeat
+ \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
+\newdimen\gwidth@
+\newdimen\gmaxwidth@
+\def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@
+ \firstchoice@false\let\tag\gobble@tag
+ \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
+ \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
+ &\@gobble{##}\crcr#1\crcr}}}
+\def\math@cr@@@gather{%
+ \if@eqnsw\global\tag@true\fi
+ \iftag@
+ \DN@{&\relax \if@eqnsw
+ \tagform@\theequation \stepcounter{equation}%
+ \else\iftag@\df@tag\fi\fi}%
+ \else
+ \expandafter\@gobble\fi
+ \next@
+ \global\@eqnswtrue\cr}
+\def\gather{%
+ \ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$%
+ \ingather@true\inany@true
+ \stepcounter{equation}%
+ \let\tag\tag@in@align\st@rredfalse
+ \displaybreak@\intertext@
+ \displ@y
+ \Let@\@seteqlabel\theequation
+ \let\math@cr@@@\math@cr@@@gather
+ \iftagsleft@\DN@{\@nameuse{gather }}\else
+ \DN@{\@nameuse{gather \space}}\fi\fi
+ \collect@body\next@}
+\@namedef{gather*}{%
+ \ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$%
+ \ingather@true\inany@true
+ \let\tag\tag@in@align\st@rredtrue
+ \displaybreak@\intertext@
+ \displ@y\Let@
+ \let\math@cr@@@\math@cr@@@gather
+ \iftagsleft@\DN@{\@nameuse{gather }}\else
+ \DN@{\@nameuse{gather \space}}\fi\fi
+ \collect@body\next@}
+\newdimen\glineht@
+\@namedef{gather \space}#1{%
+ \gmeasure@{#1}%
+ \if@fleqn %%*F
+ \advance\gmaxwidth@\@mathmargin %%*F
+ \fi %%*F
+ \global\dt@ptrue
+ \tabskip\@mathmargin %%*F
+ \halign to\displaywidth\bgroup
+ \ifst@rred\nonumber\else\global\@eqnswtrue\fi
+ \if@fleqn\else\hfil\fi %%*F
+ \strut@
+ \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
+ \global\gwidth@\wdz@\boxz@
+ \hfil
+ \tabskip\@centering %%*F
+ &\setboxz@h{\strut@{##}}%
+ \dimen@\displaywidth
+ \advance\dimen@-\gwidth@
+ \if@fleqn %%*F
+ \advance\dimen@-\@mathmargin %%*F
+ \else %%*F
+ \divide\dimen@\tw@ %%*B
+ \fi %%*F
+ \ifdim\dimen@<\tw@\wdz@ %%*
+ \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T %%*
+ \else
+ \llap{\boxz@}% %%*
+ \fi
+ \tabskip\z@skip
+ \crcr
+ #1%
+}
+\def\endgather{\math@cr
+ \black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue}
+
+\@namedef{endgather*}{\math@cr
+ \black@\gmaxwidth@\egroup $$\global\@ignoretrue}
+\@namedef{gather }#1{%
+ \gmeasure@{#1}%
+ \global\dt@ptrue
+ \if@fleqn %%*F
+ \advance\gmaxwidth@\@mathmargin %%*F
+ \fi %%*F
+ \ifdim\gmaxwidth@>\displaywidth
+ \let\gdisplaywidth@\gmaxwidth@
+ \else
+ \let\gdisplaywidth@\displaywidth
+ \fi
+ \tabskip\@mathmargin %%*F
+ \halign to\displaywidth\bgroup
+ \ifst@rred\nonumber\else\global\@eqnswtrue\fi
+ \if@fleqn\else\hfil\fi %%*F
+ \strut@
+ \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
+ \global\gwidth@\wdz@
+ \global\glineht@\ht\z@
+ \boxz@
+ \hfil
+ \tabskip\@centering %%*F
+ &\kern-\gdisplaywidth@
+ \setboxz@h{\strut@{##}}%
+ \if@fleqn %%*F
+ \dimen@\@mathmargin %%*F
+ \else %%*F
+ \dimen@\displaywidth
+ \advance\dimen@-\gwidth@
+ \divide\dimen@\tw@ %%*B
+ \fi %%*F
+ \ifdim\dimen@<\tw@\wdz@ %%*
+ \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}% %%*
+ \else
+ \rlap{\boxz@}% %%*
+ \fi
+ \tabskip\gdisplaywidth@
+ \crcr
+ #1%
+}
+\def\split{%
+ \ifinany@\let\next@\insplit@\else
+ \DN@{\PackageError{amstex}{\string\begin{split} is not allowed
+ here. Try the `aligned' environment.}\@ehb}\fi
+ \next@}
+\def\insplit@{\global\setbox\z@\vbox\bgroup
+ \Let@ \restore@math@cr \default@tag % disallow use of \tag here
+ \ialign\bgroup \hfil\strut@
+ $\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
+\def\endsplit{\crcr\egroup\egroup
+ \iftagsleft@\expandafter\lendsplit@\else
+ \expandafter\rendsplit@\fi}
+\def\rendsplit@{\global\setbox9 \vbox
+ {\unvcopy\z@\global\setbox8 \lastbox\unskip}%
+ \setbox\@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox
+ \unskip\global\setbox\thr@@\lastbox}%
+ \global\setbox7 \hbox{\unhbox\tw@\unskip}%
+ \ifinalign@\ifctagsplit@
+ \gdef\split@{\hbox to\wd\thr@@{}&
+ \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}%
+ \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
+ \box\thr@@&\box7}\fi
+ \else
+ \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else
+ \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
+ \fi
+ \aftergroup\split@}
+\def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%
+ \setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%
+ \setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
+ \unskip\global\setbox\thr@@\lastbox}%
+ \ifinalign@\ifctagsplit@
+ \gdef\split@{\hbox to\wd\thr@@{}&
+ \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}%
+ \else
+ \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
+ \else
+ \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
+ \gdef\split@{\box9}\fi
+ \fi\aftergroup\split@}
+\newdimen\multlinegap
+\multlinegap10pt
+\newdimen\multlinetaggap@
+\multlinetaggap@10pt
+\def\multline{%
+ \ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}%
+ \else $$\DN@{\collect@body\multline@}\fi
+ \st@rredfalse\@eqnswtrue \@seteqlabel\theequation
+ \stepcounter{equation}\next@}
+\@namedef{multline*}{%
+ \ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}%
+ \else $$\DN@{\collect@body\multline@}\fi
+ \st@rredtrue\@eqnswfalse \let\@currentlabel\@empty
+ \next@}
+\def\multline@{\inany@true\displaybreak@
+ \global\tag@false
+ \def\tag{\ifst@rred\else
+ \global\advance\c@equation\m@ne\fi\tag@in@align}%
+ \iftagsleft@
+ \expandafter\lmultline@@\else
+ \expandafter\rmultline@@\fi}
+\newdimen\mwidth@
+\def\rmmeasure@#1{%
+ \def\shoveleft##1{##1}\def\shoveright##1{##1}%
+ \setbox\@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h
+ {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
+ \crcr#1\crcr}}}
+\newdimen\mlineht@
+\newif\ifzerocr@
+\newif\ifonecr@
+\def\lmmeasure@#1{\global\zerocr@true\global\onecr@false
+ \everycr{\noalign{\ifonecr@\global\onecr@false\fi
+ \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
+ \def\shoveleft##1{##1}\def\shoveright##1{##1}%
+ \setbox\@ne\vbox{\Let@\firstchoice@false\halign{\setboxz@h
+ {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
+ \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
+\newbox\mtagbox@
+\newdimen\ltwidth@
+\newdimen\rtwidth@
+\def\lmultline@@#1{%
+ \lmmeasure@{#1}%
+ \setbox\mtagbox@\hbox{%
+ \iftag@
+ \df@tag
+ \else
+ \if@eqnsw
+ \global\tag@true
+ \tagform@\theequation
+ \fi
+ \fi
+ }%
+ \dimen@\mwidth@
+ \advance\dimen@\wd\mtagbox@
+ \advance\dimen@\multlinetaggap@
+ \if@fleqn %%*F
+ \advance\dimen@\@mathmargin %%*F
+ \fi %%*F
+ \ifdim\dimen@>\displaywidth
+ \ltwidth@\z@
+ \else
+ \ltwidth@\wd\mtagbox@
+ \fi
+ \lmultline@@@#1
+}
+\def\lmultline@@@{%
+ \displ@y
+ \def\shoveright##1{##1\hfilneg\hskip\multlinegap}%
+ \if@fleqn %%*F
+ \def\shoveleft##1{##1}% %%*F
+ \else %%*F
+ \def\shoveleft##1{%
+ \setboxz@h{$\m@th\displaystyle{}##1$}%
+ \setbox\@ne\hbox{$\m@th\displaystyle##1$}%
+ \hfilneg
+ \iftag@
+ \ifdim\ltwidth@>\z@
+ \hskip\ltwidth@
+ \hskip\multlinetaggap@
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ \hskip.5\wd\@ne
+ \hskip-.5\wdz@##1%
+ }%
+ \fi %%*F
+ \if@fleqn %%*F
+ \tabskip\@mathmargin %%*F
+ \else %%*F
+ \tabskip\z@skip %%*
+ \fi %%*F
+ \totwidth@\displaywidth %%*F
+ \if@fleqn %%*F
+ \advance\totwidth@-\@mathmargin %%*F
+ \fi %%*F
+ \halign\bgroup
+ \Let@
+ \let\tag\gobble@tag
+ \hbox to\totwidth@{% %%*F
+ \strut@$\m@th\displaystyle
+ \if@fleqn %%*F
+ \hskip 0pt plus 1000pt %%*F
+ \else %%*F
+ \hfil
+ \fi %%*F
+ {}##\hfil$%
+ }%
+ \crcr
+ \if@fleqn %%*F
+ \hskip-\@mathmargin %%*F
+ \else %%*F
+ \hfilneg
+ \fi %%*F
+ \iftag@
+ \ifdim\ltwidth@>\z@
+ \box\mtagbox@
+ \hskip\multlinetaggap@
+ \else
+ \rlap{%
+ \vbox{%
+ \normalbaselines
+ \hbox{\strut@\box\mtagbox@}%
+ \vbox to\mlineht@{}%
+ }%
+ }%
+ \hskip\multlinegap %%*
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+}
+\def\rmultline@@#1{%
+ \rmmeasure@{#1}%
+ \setbox\mtagbox@\hbox{%
+ \iftag@
+ \df@tag
+ \else
+ \if@eqnsw
+ \global\tag@true
+ \tagform@\theequation
+ \fi
+ \fi
+ }%
+ \dimen@\mwidth@
+ \advance\dimen@\wd\mtagbox@
+ \advance\dimen@\multlinetaggap@
+ \if@fleqn %%*F
+ \advance\dimen@\@mathmargin %%*F
+ \fi %%*F
+ \ifdim\dimen@>\displaywidth
+ \rtwidth@\z@
+ \else
+ \rtwidth@\wd\mtagbox@
+ \fi
+ \rmultline@@@#1
+}
+\def\rmultline@@@{%
+ \displ@y
+ \def\shoveright##1{%
+ ##1%
+ \hfilneg
+ \iftag@
+ \ifdim\rtwidth@>\z@
+ \hskip\rtwidth@
+ \hskip\multlinetaggap@
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ }%
+ \if@fleqn %%*F
+ \def\shoveleft##1{##1}% %%*F
+ \else %%*F
+ \def\shoveleft##1{%
+ \setboxz@h{$\m@th\displaystyle{}##1$}%
+ \setbox\@ne\hbox{$\m@th\displaystyle##1$}%
+ \hfilneg
+ \hskip\multlinegap
+ \hskip.5\wd\@ne
+ \hskip-.5\wdz@
+ ##1%
+ }%
+ \fi %%*F
+ \if@fleqn %%*F
+ \tabskip\@mathmargin %%*F
+ \else %%*F
+ \tabskip\z@skip %%*
+ \fi %%*F
+ \totwidth@\displaywidth %%*F
+ \if@fleqn %%*F
+ \advance\totwidth@-\@mathmargin %%*F
+ \fi %%*F
+ \halign\bgroup
+ \Let@
+ \let\tag\gobble@tag
+ \hbox to\totwidth@{%
+ \strut@$\m@th\displaystyle
+ \if@fleqn %%*F
+ \hskip 0pt plus 1000pt %%*F
+ \else %%*F
+ \hfil
+ \fi %%*F
+ {}##\hfil$%
+ }%
+ \crcr
+ \if@fleqn %%*F
+ \hskip-\@mathmargin %%*F
+ \else %%*F
+ \hfilneg
+ \fi %%*F
+ \hskip\multlinegap
+}
+\def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
+ \expandafter\rendmultline@\fi\global\@ignoretrue}
+\expandafter\let\csname endmultline*\endcsname=\endmultline
+\def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$}
+\def\rendmultline@{%
+ \iftag@
+ \ifdim\rtwidth@>\z@
+ \hskip\multlinetaggap@
+ \box\mtagbox@
+ \else
+ \hskip\multlinegap %%*
+ \llap{%
+ \vtop{%
+ \@movetag %%*T
+ \normalbaselines\null\hbox{\strut@\box\mtagbox@}%
+ }%
+ }%
+ \fi
+ \else
+ \hskip\multlinegap
+ \fi
+ \hfilneg
+ \crcr
+ \egroup$$%
+}
+\expandafter\def
+ \expandafter\@arrayparboxrestore
+ \expandafter{\@arrayparboxrestore
+ \inany@false\ingather@false\inalign@false
+ \default@tag}
+\def\equation{\gather\def\\{\PackageError{amstex}{\Invalid@@\\}\@eha}}
+\def\endequation{\endgather}
+\newenvironment{equation*}{%
+ \equation
+}{%
+ \nonumber\endequation
+}
+\newcounter{parentequation}% Counter for ``parent equation''.
+\newenvironment{subequations}{%
+ \refstepcounter{equation}%
+ \begingroup % conservative approach
+ \let\protect\@nx
+ \edef\@tempa{\def\@nx\theparentequation{\theequation}}%
+ \@xp\endgroup\@tempa
+ \setcounter{parentequation}{\value{equation}}%
+ \setcounter{equation}{0}%
+ \def\theequation{\theparentequation\alph{equation}}%
+ \ignorespaces
+}{%
+ \setcounter{equation}{\value{parentequation}}%
+ \global\@ignoretrue
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
+\begingroup \catcode`\@=\active
+\gdef @{\Iat}
+\endgroup
+\DeclareRobustCommand{\Iat}{\FN@\at@}
+\def\at@{\let\next@\at@@
+ \ifcat\noexpand\@let@token a\else
+ \ifcat\noexpand\@let@token0\else
+ \ifcat\noexpand\@let@token\relax\else
+ \let\@let@token@\at@@@\fi\fi\fi\next@}
+\def\at@@#1{\expandafter
+ \@ifundefined{ @\string#1}%
+ {\DN@{\at@@@#1}}%
+ {\DN@{\csname\space @\string#1\endcsname}}%
+ \next@}%
+\def\at@@@{\PackageError{amstex}{\Invalid@@ @}%
+ {\the\athelp@}% "I'll assume you wanted @@"
+ \char64\relax}
+\newhelp\athelp@
+{Only certain combinations beginning with @ make sense to me.^^J%
+I'll assume you wanted @@ for a printed @.}
+\atdef@ @{{\atchar}}% to define @@
+\chardef\atchar=64
+\def\makeatother{\catcode64=\active}
+\def\@tempa#1#2#3#4#5#6{%
+ {#1}{#2}\ifnum0#6=0{13}\@xp\@gobblefour
+ \else{#3}\fi\@tempa{#4}{#5}{#6}}%
+\xdef\@currnamestack{\@xp\@tempa\@currnamestack{}{}{0}}
+{\def\@makeother{\noexpand\@makeother\noexpand}
+\xdef\@sanitize{\@sanitize\@makeother\@}}
+{\def\do{\noexpand\do\noexpand}
+\xdef\dospecials{\dospecials\do\@}}
+\atdef@,{\ifmmode\mskip.1\thinmuskip\else \nonmatherr@{@,}\fi}
+\atdef@!{\RIfM@\mskip-.1\thinmuskip\else \nonmatherr@{@!}\fi}
+
+\@ifpackageloaded{amscd}{%
+}{%
+\atdef@>#1>#2>{%
+ \global\bigaw@\minaw@
+ \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
+ \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
+ \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
+ \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
+ \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
+ \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
+}% end of @>>>
+\atdef@<#1<#2<{%
+ \global\bigaw@\minaw@
+ \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
+ \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
+ \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
+ \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
+ \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
+ \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
+}% end of @<<<
+}% end of @ifpackageloaded
+\@ifundefined{minaw@}{\newdimen\minaw@}{}
+\minaw@11.111pt
+\@ifundefined{bigaw@}{\newdimen\bigaw@}{}
+\atdef@-{\let\next-%%
+ \DN@{\ifx\next-%%
+ \def\next-{\setbox\z@\hbox{-}\unhbox\z@\FN@\next@}%%
+ \expandafter\next \else\nobreak\fi}%%
+ \next@-}%%
+\def\leftroot{\PackageError{amstex}{\Invalid@@\leftroot}\@eha}
+\def\uproot{\PackageError{amstex}{\Invalid@@\uproot}\@eha}
+\newcount\uproot@
+\newcount\leftroot@
+\def\root{\relaxnext@
+ \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else
+ \ifx\@let@token\leftroot\let\next@\nextiii@\else
+ \let\next@\plainroot@\fi\fi\next@}%
+ \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
+ \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else
+ \DN@.{\FN@\nextv@}\fi\next@.}%
+ \def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\else
+ \let\next@\plainroot@\fi\next@}%
+ \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
+ \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
+ \def\nextvii@{\ifx\@let@token\@sptoken
+ \DN@. {\FN@\nextviii@}\else
+ \DN@.{\FN@\nextviii@}\fi\next@.}%
+ \def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\else
+ \let\next@\plainroot@\fi\next@}%
+ \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
+ \bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
+\def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
+ $\m@th\scriptscriptstyle{#1}$}%
+ \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
+ {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
+\def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}%
+ \dimen@\ht\z@\advance\dimen@-\dp\z@
+ \setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}%
+ \advance\dimen@ by1.667\wd\@ne
+ \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
+ \mkern-10mu\mkern\leftroot@ mu\boxz@}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Fragment from old amsfonts.sty to deal with msam, msbm, eufm fonts;
+%% omit if `noamsfonts' option was specified.
+\ifx F\@amsfonts \endinput \fi
+\DeclareSymbolFont{AMSa}{U}{msa}{m}{n}
+\DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
+\ifx P\@amsfonts
+ \DeclareFontFamily{U}{msa}{}%
+ \DeclareFontShape{U}{msa}{m}{n}{<-6>msam5<6-8>msam7<8->msam10}{}%
+ \DeclareFontFamily{U}{msb}{}%
+ \DeclareFontShape{U}{msb}{m}{n}{<-6>msbm5<6-8>msbm7<8->msbm10}{}%
+ \DeclareFontFamily{U}{euf}{}%
+ \DeclareFontShape{U}{euf}{m}{n}{<-6>eufm5<6-8>eufm7<8->eufm10}{}%
+ \DeclareFontShape{U}{euf}{b}{n}{<-6>eufb5<6-8>eufb7<8->eufb10}{}%
+\fi
+\@ifundefined{yen}{%
+ \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55}
+}{}
+\@ifundefined{checkmark}{%
+ \edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symAMSa}58}
+}{}
+\@ifundefined{circledR}{%
+ \edef\circledR{\noexpand\mathhexbox{\hexnumber@\symAMSa}72}
+}{}
+\@ifundefined{maltese}{%
+ \edef\maltese{\noexpand\mathhexbox{\hexnumber@\symAMSa}7A}
+}{}
+\begingroup \catcode`\"=12
+\DeclareMathDelimiter\ulcorner{\mathopen} {AMSa}{"70}{AMSa}{"70}
+\DeclareMathDelimiter\urcorner{\mathclose}{AMSa}{"71}{AMSa}{"71}
+\DeclareMathDelimiter\llcorner{\mathopen} {AMSa}{"78}{AMSa}{"78}
+\DeclareMathDelimiter\lrcorner{\mathclose}{AMSa}{"79}{AMSa}{"79}
+\xdef\widehat#1{\noexpand\@mathmeasure\z@\textstyle{#1}%
+ \noexpand\ifdim\noexpand\wdz@>\tw@ em%
+ \mathaccent"0\hexnumber@\symAMSb 5B{#1}%
+ \noexpand\else\mathaccent"0362{#1}\noexpand\fi}
+\xdef\widetilde#1{\noexpand\@mathmeasure\z@\textstyle{#1}%
+ \noexpand\ifdim\noexpand\wdz@>\tw@ em%
+ \mathaccent"0\hexnumber@\symAMSb 5D{#1}%
+ \noexpand\else\mathaccent"0365{#1}\noexpand\fi}
+\DeclareMathSymbol\dabar@{\mathord}{AMSa}{"39}
+\xdef\dashrightarrow{\mathrel{\dabar@\dabar@
+ \mathchar"0\hexnumber@\symAMSa 4B}}%
+\xdef\dashleftarrow{\mathrel{\mathchar"0\hexnumber@\symAMSa 4C\dabar@
+ \dabar@}}%
+\global\let\dasharrow\dashrightarrow
+\global\let\rightleftharpoons\undefined
+\DeclareMathSymbol\rightleftharpoons{\mathrel}{AMSa}{"0A}
+\global\let\angle\undefined
+\DeclareMathSymbol\angle {\mathord}{AMSa}{"5C}
+\global\let\hbar\undefined
+\DeclareMathSymbol\hbar {\mathord}{AMSb}{"7E}
+\global\let\sqsubset\undefined
+\DeclareMathSymbol\sqsubset {\mathrel}{AMSa}{"40}
+\global\let\sqsupset\undefined
+\DeclareMathSymbol\sqsupset {\mathrel}{AMSa}{"41}
+\global\let\mho\undefined
+\DeclareMathSymbol\mho {\mathord}{AMSb}{"66}
+\DeclareMathSymbol\square {\mathord}{AMSa}{"03}
+\DeclareMathSymbol\lozenge {\mathord}{AMSa}{"06}
+\DeclareMathSymbol\vartriangleright {\mathrel}{AMSa}{"42}
+\DeclareMathSymbol\vartriangleleft {\mathrel}{AMSa}{"43}
+\DeclareMathSymbol\trianglerighteq {\mathrel}{AMSa}{"44}
+\DeclareMathSymbol\trianglelefteq {\mathrel}{AMSa}{"45}
+\DeclareMathSymbol\rightsquigarrow {\mathrel}{AMSa}{"20}
+\def\@tempa{\not@base\lhd}
+\ifx\lhd\@tempa
+ \global\let\lhd\vartriangleleft
+ \global\let\unlhd\trianglelefteq
+ \global\let\rhd\vartriangleright
+ \global\let\unrhd\trianglerighteq
+ \global\let\Box\square
+ \global\let\Diamond\lozenge
+ \global\let\leadsto\rightsquigarrow
+\xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F\mkern-13.8mu%
+ \mathchar"0\hexnumber@\symAMSb 6E}}
+\fi
+\endgroup
+\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
+\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
+\DeclareSymbolFontAlphabet{\mathbb}{AMSb}
+\DeclareFontEncodingDefaults{\relax}{\def\accentclass@{7}}
+\def\frak{\mathfrak}
+\def\Bbb{\mathbb}
+\def\bold{\mathbf}
+\begingroup \catcode`\"=12 \relax
+\gdef\newsymbol#1#2#3#4#5{%
+ \@ifdefinable#1{%
+ \edef\next@
+ {\ifcase #2 \or
+ \hexnumber@\symAMSa\or
+ \hexnumber@\symAMSb\fi}%
+ \ifx\next@\@empty
+ \PackageError{amsfonts}{\Invalid@@\newsymbol}\@ehd%
+ \else
+ \global\mathchardef#1"#3\next@#4#5
+ \fi}}
+\endgroup
+%% Some odds and ends
+\def\sphat{^{\mathchoice{}{}%
+ {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
+ {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
+\def\spcheck{^\vee}
+\def\sptilde{^\sim}
+\def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}}
+\def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}}
+\def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}}
+\def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}}
+\def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}%
+ {\fracwithdelims@#1#2[\@empty]}}
+\def\fracwithdelims@#1#2[#3]#4#5{\relax
+ \ifx\@empty#3{#4\overwithdelims#1#2#5}\else
+ {#4\abovewithdelims#1#2#3\relax#5}\fi}
+\def\accentedsymbol#1#2{%
+ \expandafter\newbox
+ \csname\expandafter\@gobble\string#1@box\endcsname
+ \expandafter\setbox
+ \csname\expandafter\@gobble\string#1@box\endcsname
+ \hbox{$\m@th#2$}%
+ \newcommand{#1}{%
+ \expandafter\copy
+ \csname\expandafter\@gobble\string#1@box\endcsname{}}%
+}
+\def~{\nobreakspace}
+\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
+%%
+%% End of file `amstex.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amstext.sty b/Master/texmf-dist/tex/latex/amsmath/amstext.sty
new file mode 100644
index 00000000000..6c3c1692d89
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amstext.sty
@@ -0,0 +1,101 @@
+%%
+%% This is file `amstext.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amstext.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amstext.dtx",
+%%% version = "2.01",
+%%% date = "2000/06/29",
+%%% time = "08:34:33 EDT",
+%%% checksum = "09860 314 1647 12368",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@ams.org (Internet)",
+%%% supported = "yes",
+%%% keywords = "latex, math, text",
+%%% abstract = "This is a \LaTeX{} package that defines a
+%%% \cn{\text} macro, which makes it easy to
+%%% incorporate fragments of text inside a displayed
+%%% equation or a sub or superscript. Font sizes
+%%% are automatically scaled in sub/superscripts.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must be December 1994 or later
+\ProvidesPackage{amstext}[2000/06/29 v2.01]
+\RequirePackage{amsgen}
+\DeclareRobustCommand{\text}{%
+ \ifmmode\expandafter\text@\else\expandafter\mbox\fi}
+\let\nfss@text\text
+\def\text@#1{{\mathchoice
+ {\textdef@\displaystyle\f@size{#1}}%
+ {\textdef@\textstyle\f@size{\firstchoice@false #1}}%
+ {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
+ {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%
+ \check@mathfonts
+ }%
+}
+\def\textdef@#1#2#3{\hbox{{%
+ \everymath{#1}%
+ \let\f@size#2\selectfont
+ #3}}}
+\newif\iffirstchoice@
+\firstchoice@true
+\def\stepcounter#1{%
+ \iffirstchoice@
+ \addtocounter{#1}\@ne
+ \begingroup \let\@elt\@stpelt \csname cl@#1\endcsname \endgroup
+ \fi
+}
+\def\addtocounter#1#2{%
+ \iffirstchoice@
+ \@ifundefined {c@#1}{\@nocounterr {#1}}%
+ {\global \advance \csname c@#1\endcsname #2\relax}%
+ \fi}
+\let\m@gobble\@empty
+\@xp\let\csname m@gobble4\endcsname\@gobblefour
+\long\@xp\def\csname m@gobble6\endcsname#1#2#3#4#5#6{}
+\toks@{%
+ \csname m@gobble\iffirstchoice@\else 4\fi\endcsname
+ \protect}
+\edef\GenericInfo{\the\toks@
+ \@xp\@nx\csname GenericInfo \endcsname}
+\edef\GenericWarning{\the\toks@
+ \@xp\@nx\csname GenericWarning \endcsname}
+\toks@{%
+ \csname m@gobble\iffirstchoice@\else 6\fi\endcsname
+ \protect}
+\edef\GenericError{\the\toks@
+ \@xp\@nx\csname GenericError \endcsname}
+\begingroup \catcode`\"=12
+\gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
+\endgroup
+\endinput
+%%
+%% End of file `amstext.sty'.
diff --git a/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty b/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty
new file mode 100644
index 00000000000..10a65df4a20
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty
@@ -0,0 +1,80 @@
+%%
+%% This is file `amsxtra.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amsxtra.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "amsxtra.dtx",
+%%% version = "1.2c",
+%%% date = "1999/11/15",
+%%% time = "14:15:41 EST",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% checksum = "41382 136 533 5124",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, accentedsymbol, fracwithdelims, sphat",
+%%% supported = "yes",
+%%% abstract = "This package contains some seldom-used commands
+%%% ported from AMS-TeX in 1989.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\ProvidesPackage{amsxtra}[1999/11/15 v1.2c]
+\@ifpackageloaded{amstex}{}{%
+ \RequirePackage{amsmath}[1996/10/01 v1.2]}
+\def\sphat{^{\mathchoice{}{}%
+ {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
+ {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
+\def\spcheck{^\vee}
+\def\sptilde{^\sim}
+\def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}}
+\def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}}
+\def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}}
+\def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}}
+\@ifpackageloaded{amstex}{%
+\def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}%
+ {\fracwithdelims@#1#2[\@empty]}}
+\def\fracwithdelims@#1#2[#3]#4#5{\relax
+ \ifx\@empty#3{#4\overwithdelims#1#2#5}\else
+ {#4\abovewithdelims#1#2#3\relax#5}\fi}
+}{}
+\def\accentedsymbol#1#2{%
+ \expandafter\newbox
+ \csname\expandafter\@gobble\string#1@box\endcsname
+ \expandafter\setbox
+ \csname\expandafter\@gobble\string#1@box\endcsname
+ \hbox{$\m@th#2$}%
+ \newcommand{#1}{%
+ \expandafter\copy
+ \csname\expandafter\@gobble\string#1@box\endcsname{}}%
+}
+\def~{\nobreakspace}
+\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
+\endinput
+%%
+%% End of file `amsxtra.sty'.