Files
usenix-2026-nested/arydshln.sty
2025-10-25 03:54:21 -04:00

1205 lines
45 KiB
TeX

%%
%% This is file `arydshln.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% arydshln.dtx (with options: `package')
%%
%% IMPORTANT NOTICE:
%%
%% For the copyright see the source file.
%%
%% Any modified versions of this file must be renamed
%% with new filenames distinct from arydshln.sty.
%%
%% For distribution of the original source see the terms
%% for copying and modification in the file arydshln.dtx.
%%
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% Style file `arydshln'
%% Copyright (C) 1993,1998-2018
%% Hiroshi Nakashima <h.nakasima'AT'media'DOT'kyoto-u'DOT'ac'DOT'jp>
%% (Kyoto Univ.)
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%%
\def\next{LaTeX2e}
\ifx\fmtname\next\def\next{
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{arydshln}}
\else\def\next[#1]{}\fi\next
[2019/02/21 v1.76 ]
%% Register Declaration
\newdimen\dashlinedash \dashlinedash4pt %
\newdimen\dashlinegap \dashlinegap4pt %
\let\hdashlinewidth\dashlinedash
\let\hdashlinegap\dashlinegap
\newif\ifadl@leftrule
\newif\ifadl@connected
\newif\ifadl@doublerule
\newif\ifadl@zwvrule
\newif\ifadl@zwhrule
\newif\ifadl@usingarypkg
\ifx\extrarowheight\undefined \adl@usingarypkgfalse
\else \adl@usingarypkgtrue \fi
\newif\ifadl@inactive \adl@inactivefalse
\def\ADLnullwide{\adl@zwvruletrue}
\def\ADLsomewide{\adl@zwvrulefalse}
\ifadl@usingarypkg \ADLsomewide \else \ADLnullwide \fi
\def\ADLnullwidehline{\adl@zwhruletrue}
\def\ADLsomewidehline{\adl@zwhrulefalse}
\ADLsomewidehline
\def\ADLactivate{\adl@inactivefalse}
\def\ADLinactivate{\adl@inactivetrue}
\newbox\adl@box
\newdimen\adl@height \newdimen\adl@heightsave
\newdimen\adl@depth \newdimen\adl@depthsave
\newdimen\adl@finaldepth
\newcount\adl@columns \newcount\adl@ncol
\newcount\adl@currentcolumn \newcount\adl@currentcolumnsave
\newcount\adl@totalheight \newcount\adl@totalheightsave
\newcount\adl@dash \newcount\adl@gap
\newcount\adl@cla \newcount\adl@clb
\newtoks\adl@everyvbox
\let\adl@org@arrayclassz\@arrayclassz
\let\adl@org@tabclassz\@tabclassz
\let\adl@org@classz\@classz
\let\adl@org@@startpbox\@@startpbox
\let\adl@org@@endpbox\@@endpbox
\let\adl@org@startpbox\@startpbox
\let\adl@org@endpbox\@endpbox
\let\adl@org@cline\cline
%%^L
%% Initialization
\let\adl@array\@array
\def\@array{\adl@everyvbox\everyvbox
\everyvbox{\adl@arrayinit \the\adl@everyvbox \everyvbox\adl@everyvbox}%
\ifadl@inactive \adl@inactivate \else \adl@activate \fi
\let\adl@noalign\noalign
\adl@array}
\ifx\@@array\adl@array \let\@@array\@array \fi
\def\adl@arrayinit{%
\adl@arraysave
\global\adl@height\z@ \global\adl@depth\z@
\global\adl@currentcolumn\@ne \global\adl@totalheight\z@
\gdef\adl@rowsL{}\gdef\adl@rowsR{}\gdef\adl@colsL{}\gdef\adl@colsR{}%
\let\@elt\relax \let\adl@connect\relax \def\adl@discard{\adl@connect}%
\adl@columns\adl@ncol}
\def\adl@arraysave{%
\adl@heightsave\adl@height
\adl@depthsave\adl@depth
\adl@currentcolumnsave\adl@currentcolumn
\adl@totalheightsave\adl@totalheight
\let\adl@rowsLsave\adl@rowsL
\let\adl@rowsRsave\adl@rowsR
\let\adl@colsLsave\adl@colsL
\let\adl@colsRsave\adl@colsR}
\def\adl@inactivate{%
\let\@arrayclassz\adl@org@arrayclassz
\let\@tabclassz\adl@org@tabclassz
\ifadl@usingarypkg \let\@classz\adl@org@classz \fi
\let\@@startpbox\adl@org@@startpbox
\let\@@endpbox\adl@org@@endpbox
\let\@startpbox\adl@org@startpbox
\let\@endpbox\adl@org@endpbox
\def\adl@cr{\cr}%
\def\adl@argcr##1{\cr}%
\def\adl@endarray{\crcr}%
\let\adl@hline\@gobbletwo
\let\adl@ihdashline\adl@inactivehdl
\let\adl@cdline\adl@inactivecdl
\let\adl@@vlineL\adl@inactivevl
\let\adl@@vlineR\adl@inactivevl
\let\adl@vlineL\adl@inactivevl
\let\adl@vlineR\adl@inactivevl}
\def\adl@activate{%
\let\@arrayclassz\adl@act@arrayclassz
\let\@tabclassz\adl@act@tabclassz
\ifadl@usingarypkg \let\@classz\adl@act@classz \fi
\let\@@startpbox\adl@act@@startpbox
\let\@@endpbox\adl@act@@endpbox
\let\@startpbox\adl@act@startpbox
\let\@endpbox\adl@act@endpbox
\let\adl@cr\adl@act@cr
\let\adl@argcr\adl@act@argcr
\let\adl@endarray\adl@act@endarray
\let\adl@hline\adl@act@hline
\let\adl@ihdashline\adl@act@ihdashline
\let\adl@cdline\adl@act@cdline
\let\adl@@vlineL\adl@act@@vlineL
\let\adl@@vlineR\adl@act@@vlineR
\let\adl@vlineL\adl@act@@vlineL
\let\adl@vlineR\adl@act@@vlineR}
%%^L
%% Making Preamble
\let\adl@mkpream\@mkpream
\def\@mkpream#1{\let\adl@colhtdp\relax
\let\adl@vlineL\relax \let\adl@vlineR\relax
\let\adl@startmbox\relax \let\adl@endmbox\relax
\global\adl@ncol\@ne \adl@leftruletrue
\adl@mkpream{#1}\adl@columns\adl@ncol \afterassignment\adl@preaminit}
\def\@addamp{\if@firstamp\@firstampfalse \else
\@addtopreamble{\global\advance\adl@currentcolumn\@ne &}%
\global\advance\adl@ncol\@ne \fi}
\ifadl@usingarypkg
\def\@testpach{\@chclass
\ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
\ifnum \@lastchclass=7 5 \else
\ifnum \@lastchclass=8 \tw@ \else
\ifnum \@lastchclass=9 \thr@@
\else \z@
\ifnum \@lastchclass = 10 \else
\edef\@nextchar{\expandafter\string\@nextchar}%
\@chnum
\if \@nextchar c\z@ \else
\if \@nextchar l\@ne \else
\if \@nextchar r\tw@ \else
\z@ \@chclass
\if\@nextchar |\@ne \let\@arrayrule\adl@arrayrule \else
\if\@nextchar :\@ne \let\@arrayrule\adl@arraydashrule \else
\if\@nextchar ;\@ne \let\@arrayrule\adl@argarraydashrule \else
\if \@nextchar !6 \else
\if \@nextchar @7 \else
\if \@nextchar <8 \else
\if \@nextchar >9 \else
10
\@chnum
\if \@nextchar m\thr@@\else
\if \@nextchar p4 \else
\if \@nextchar b5 \else
\z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi
\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
\def\@classz{\@classx
\@tempcnta \count@
\prepnext@tok
\@addtopreamble{\ifcase \@chnum
\hfil
\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
\hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
\hfil\hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\or
\setbox\adl@box\hbox \adl@startmbox{\@nextchar}\insert@column
\adl@endmbox\or
\setbox\adl@box\vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
\setbox\adl@box\vbox \@startpbox{\@nextchar}\insert@column \@endpbox
\fi}\prepnext@tok}
\def\adl@class@start{4}
\def\adl@class@iiiorvii{7}
\else
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4\relax \else
\ifnum \@lastchclass=\thr@@ 5\relax \else
\z@ \if #1c\@chnum \z@ \else
\if #1l\@chnum \@ne \else
\if #1r\@chnum \tw@ \else
\@chclass
\if #1|\@ne \let\@arrayrule\adl@arrayrule \else
\if #1:\@ne \let\@arrayrule\adl@arraydashrule \else
\if #1;\@ne \let\@arrayrule\adl@argarraydashrule \else
\if #1@\tw@ \else
\if #1p\thr@@ \else \z@ \@preamerr 0\fi
\fi \fi \fi \fi \fi \fi \fi \fi \fi}
\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
\or \or \@addamp \or
\@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble
\ifcase \@chnum
\hfil\adl@putlrc{$\relax\@sharp$}\hfil
\or \adl@putlrc{$\relax\@sharp$}\hfil
\or \hfil\adl@putlrc{$\relax\@sharp$}\fi}}
\def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
\or \or \@addamp \or
\@acolampacol \or \@firstampfalse \@acol \fi
\edef\@preamble{\@preamble
\ifcase \@chnum
\hfil\adl@putlrc{\@sharp\unskip}\hfil
\or \adl@putlrc{\@sharp\unskip}\hfil
\or \hfil\hskip\z@ \adl@putlrc{\@sharp\unskip}\fi}}
\def\adl@class@start{6}
\def\adl@class@iiiorvii{3}
\fi
\def\adl@putlrc#1{\setbox\adl@box\hbox{#1}\adl@colhtdp \unhbox\adl@box}
\def\adl@arrayrule{%
\adl@xarraydashrule
{\@ne}{\adl@ncol}{{\z@/\z@}}}
\def\adl@arraydashrule{%
\adl@xarraydashrule
{\@ne}{\adl@ncol}%
{{\dashlinedash/\dashlinegap}}}
\def\adl@argarraydashrule{%
\adl@xarraydashrule
{\@ne}{\adl@ncol}{}%
\@chclass\adl@class@iiiorvii \let\@classv\adl@classvfordash}
\def\adl@xarraydashrule#1#2#3{%
\ifnum\@lastchclass=\adl@class@start\else
\ifnum\@lastchclass=\@ne\else
\adl@leftrulefalse \fi\fi
\ifadl@zwvrule\else \ifadl@inactive\else
\@addtopreamble{\vrule\@width\arrayrulewidth
\@height\z@ \@depth\z@}\fi \fi
\ifadl@leftrule
\@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
{\number#1}#3}%
\else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
{\number#2}#3}\fi}
\let\adl@classv\@classv
\def\adl@classvfordash{\@addtopreamble{{\@nextchar}}\let\@classv\adl@classv
\@chclass\@ne}
%%^L
%% Building Columns
\def\adl@preaminit{\let\adl@colhtdp\adl@@colhtdp
\let\adl@vlineL\adl@@vlineL \let\adl@vlineR\adl@@vlineR}
\def\adl@@colhtdp{%
\ifdim\adl@height<\ht\adl@box \global\adl@height\ht\adl@box \fi
\ifdim\adl@depth<\dp\adl@box \global\adl@depth\dp\adl@box\fi}
\def\adl@@vlineL#1#2#3#4{\adl@ivline#4\@nil{#1}{#2}%
\xdef\adl@colsL{\adl@colsL
\@elt{#3}{\number\@tempcnta}{\number\@tempcntb}%
{\adl@dashcolor}{\adl@gapcolor}}}
\def\adl@@vlineR#1#2#3#4{\adl@ivline#4\@nil{#1}{#2}%
\xdef\adl@colsR{%
\@elt{#3}{\number\@tempcnta}{\number\@tempcntb}%
{\adl@dashcolor}{\adl@gapcolor}%
\adl@colsR}}
\def\adl@ivline#1/#2\@nil#3#4{%
\@tempdima#1\relax \@tempcnta\@tempdima
\@tempdima#2\relax \@tempcntb\@tempdima
\ifnum\@tempcnta>\z@ \else \@tempcnta\z@ \@tempcntb\z@ \fi
\ifnum\@tempcntb>\z@ \else \@tempcnta\z@ \@tempcntb\z@ \fi
\adl@setcolor\adl@dashcolor{#3}\adl@setcolor\adl@gapcolor{#4}}
\def\adl@setcolor#1#2{\def\@tempa{#2}\ifx\@tempa\adl@nocolor \def#1{\relax}%
\else{#2\xdef#1{\current@color}}\fi}
\def\adl@nocolor{\relax}
\adl@preaminit
\def\adl@inactivevl#1#2#3#4{\ifadl@zwvrule \hskip-.5\arrayrulewidth \fi
{#1\vline}\ifadl@zwvrule \hskip-.5\arrayrulewidth \fi}
\def\@@startpbox#1{\setbox\adl@box\vtop\bgroup \hsize#1\@arrayparboxrestore}
\def\@@endpbox{\unskip \ifhmode \nobreak
\vrule\@width\z@\@height\z@\@depth\dp\@arstrutbox \fi
\par \egroup \adl@colhtdp \box\adl@box \hfil}
\def\@startpbox#1{\bgroup
\color@begingroup
\setlength\hsize{#1}\@arrayparboxrestore
\everypar{%
\vrule\@height\ht\@arstrutbox\@width\z@
\everypar{}}%
}
\def\@endpbox{\@finalstrut\@arstrutbox \color@endgroup \egroup
\adl@colhtdp \box\adl@box \hfil}
\def\adl@startmbox{\bgroup $\vcenter\@startpbox}
\def\adl@endmbox{\@finalstrut\@arstrutbox \color@endgroup \egroup
$\egroup \adl@colhtdp \box\adl@box \hfil}
%%^L
%% Multi-Columns
\def\multicolumn#1#2#3{\multispan{#1}\begingroup \begingroup
\def\adl@arrayrule{\adl@mcarrayrule{#1}}%
\def\adl@arraydashrule{\adl@mcarraydashrule{#1}}%
\def\adl@argarraydashrule{\adl@mcargarraydashrule{#1}}%
\let\@addamp\adl@mcaddamp
\@mkpream{#2}\@addtopreamble\@empty
\global\let\adl@preamble\@preamble \endgroup
\let\@preamble\adl@preamble
\def\@sharp{#3}\let\protect\relax
\adl@activatepbox
\adl@preaminit
\@arstrut \@preamble\hbox{}\endgroup
\global\advance\adl@currentcolumn#1\ignorespaces}
\ifadl@usingarypkg
\def\adl@mcaddamp{\if@firstamp\@firstampfalse \else\@preamerror5\fi}
\let\adl@activatepbox\relax
\else
\let\adl@mcaddamp\@addamp
\def\adl@activatepbox{\let\@startpbox\@@startpbox
\let\@endpbox\@@endpbox}
\fi
\def\adl@mcarrayrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
\advance\@tempcnta\m@ne
\adl@xarraydashrule
{\adl@currentcolumn}{\@tempcnta}{{\z@/\z@}}}
\def\adl@mcarraydashrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
\advance\@tempcnta\m@ne
\adl@xarraydashrule
{\adl@currentcolumn}{\@tempcnta}%
{{\dashlinedash/\dashlinegap}}}
\def\adl@mcargarraydashrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
\advance\@tempcnta\m@ne
\adl@xarraydashrule
{\adl@currentcolumn}{\@tempcnta}{}%
\@chclass\adl@class@iiiorvii \let\@classv\adl@classvfordash}
%%^L
%% End of row
\ifadl@usingarypkg
\def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{}\fi\adl@cr}}
\else
\def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{\fi}${}\adl@cr}}
\fi
\def\@xtabularcr{\@ifnextchar[{\@argtabularcr}{\ifnum0=`{\fi}\adl@cr}}
\def\@xargarraycr#1{\@tempdima#1\advance\@tempdima\dp\@arstrutbox
\vrule\@height\z@\@depth\@tempdima\@width\z@
\adl@cr}
\def\@yargarraycr#1{\adl@argcr{#1}\noalign{\vskip #1}}
\def\adl@cr{\cr\noalign{\adl@@cr\z@}}
\def\adl@argcr#1{\cr\noalign{\adl@@cr{#1}}}
\def\adl@@cr#1{
\ifdim\adl@height<\ht\@arstrutbox \adl@height\ht\@arstrutbox\fi
\ifdim\adl@depth<\dp\@arstrutbox \adl@depth\dp\@arstrutbox\fi
\advance\adl@height\adl@depth
\global\advance\adl@totalheight\adl@height
\@tempdima#1\relax \global\advance\adl@totalheight\@tempdima
\xdef\adl@rowsL{\adl@rowsL
(\adl@colsL/\number\adl@height);%
\ifdim#1=\z@\else (\adl@discard/\number\@tempdima);\fi}%
\xdef\adl@rowsR{\adl@rowsR
(\adl@colsR/\number\adl@height);%
\ifdim#1=\z@\else (\adl@discard/\number\@tempdima);\fi}%
\gdef\adl@colsL{}\gdef\adl@colsR{}
\global\adl@currentcolumn\@ne
\ifdim#1=\z@ \global\adl@finaldepth\adl@depth
\else \global\adl@finaldepth\z@\fi
\global\adl@height\z@ \global\adl@depth\z@}
%%^L
%% Horizontal Lines
\def\hline{\noalign{\ifnum0=`}\fi
\ifadl@zwhrule \vskip-\arrayrulewidth
\else \adl@hline\adl@connect\arrayrulewidth \fi
\hrule\@height\arrayrulewidth
\global\adl@finaldepth\z@
\futurelet\@tempa\adl@xhline}
\def\cline#1{\noalign{\global\adl@finaldepth\z@
\ifadl@zwhrule \vskip-\arrayrulewidth\fi}
\adl@org@cline{#1}%
\noalign{\ifadl@zwhrule \vskip\arrayrulewidth\fi}}
\def\hdashline{\adl@hdashline\adl@ihdashline}
\def\adl@hdashline#1{\noalign{\ifnum0=`}\fi
\ifadl@zwhrule \vskip-\arrayrulewidth
\else \adl@hline\adl@connect\arrayrulewidth \fi
\@ifnextchar[%]
{#1}%
{#1[\dashlinedash/\dashlinegap]}}
\def\adl@ihdashline[#1/#2]{\ifnum0=`{\fi}%
\multispan{\adl@columns}\unskip \adl@hcline\z@[#1/#2]%
\noalign{\ifnum0=`}\fi
\futurelet\@tempa\adl@xhline}
\def\adl@inactivehdl[#1/#2]{\ifadl@zwhrule \vskip-\arrayrulewidth \fi
\hrule\@height\arrayrulewidth
\futurelet\@tempa\adl@xhline}
\def\adl@xhline{\ifx\@tempa\hline \adl@ixhline\fi
\ifx\@tempa\hdashline \adl@ixhline\fi
\ifnum0=`{\fi}}
\def\adl@ixhline{\vskip\doublerulesep \adl@hline\relax\doublerulesep}
\def\adl@hline#1#2{\@tempcnta#2
\global\advance\adl@totalheight\@tempcnta
\xdef\adl@rowsL{\adl@rowsL
(#1/\number\@tempcnta);}%
\xdef\adl@rowsR{\adl@rowsR
(#1/\number\@tempcnta);}}
\def\cdashline#1{\noalign{\ifnum0=`}\fi
\@ifnextchar[%]
{\adl@cdline[#1]}%
{\adl@cdline[#1][\dashlinedash/\dashlinegap]}}
\def\adl@cdline[#1-#2]{\ifadl@zwhrule \vskip-\arrayrulewidth \fi
\global\adl@cla#1\relax
\global\advance\adl@cla\m@ne
\ifnum\adl@cla>\z@ \global\let\@gtempa\adl@cdlinea
\else \global\let\@gtempa\adl@cdlineb\fi
\global\adl@clb#2\relax
\global\advance\adl@clb-\adl@cla \ifnum0=`{\fi}
\@gtempa{-\arrayrulewidth}}
\def\adl@cdlinea{\multispan\adl@cla &\multispan\adl@clb \unskip \adl@hcline}
\def\adl@cdlineb{\multispan\adl@clb \unskip \adl@hcline}
\def\adl@inactivecdl[#1-#2][#3]{\ifnum0=`{\fi}\cline{#1-#2}}
\def\adl@hcline#1[#2/#3]{\@tempdima#2\relax \@tempdimb#3\relax
\adl@draw\adl@vrule\hskip\hbox \cr
\noalign{\global\adl@finaldepth\z@ \ifdim#1=\z@\else
\ifadl@zwhrule\else \vskip#1\fi\fi}}
\ifadl@usingarypkg
\def\firsthdashline{\adl@hdashline{\ifnum0=`{\fi}\adl@firsthdashline}}
\def\lasthdashline{\adl@hdashline{\ifnum0=`{\fi}\adl@lasthdashline}}
\def\adl@defflhdl#1{\def\@tempa{#1}
\expandafter\adl@idefflhdl}
\def\adl@idefflhdl#1\hline#2\@nil{%
\@namedef\@tempa[##1/##2]{#1\adl@hdashline\adl@ihdashline[##1/##2]#2}}
\adl@defflhdl{adl@firsthdashline}\firsthline\@nil
\adl@defflhdl{adl@lasthdashline}\lasthline\@nil
\fi
%%^L
%% End of Environment
\def\endarray{\adl@endarray \egroup \adl@arrayrestore \egroup
\csname @arrayright\endcsname}
\def\endtabular{\endarray $\egroup}
\expandafter\let\csname endtabular*\endcsname\endtabular
\def\adl@endarray{\crcr \noalign{
\ifdim\adl@height=\z@
\ifdim\adl@depth=\z@ \else \adl@@cr\z@ \fi
\else \adl@@cr\z@ \fi
\let\adl@vl\relax
\def\adl@vlrow{}\adl@currentcolumn\@ne
\let\adl@rows\adl@rowsL
\let\adl@addvl\adl@addvlL
\adl@makevlrL \global\let\adl@vlrowL\adl@vlrow
\def\adl@vlrow{}\adl@currentcolumn\adl@columns
\let\adl@rows\adl@rowsR
\let\adl@addvl\adl@addvlR
\adl@makevlrR \global\let\adl@vlrowR\adl@vlrow
\global\let\adl@vl\adl@@vl}%
\adl@drawvl
\noalign{\vskip-\adl@finaldepth}%
\omit\vrule\@width\z@\@height\z@\@depth\adl@finaldepth\cr}
\def\adl@arrayrestore{%
\global\adl@height\adl@heightsave
\global\adl@depth\adl@depthsave
\global\adl@currentcolumn\adl@currentcolumnsave
\global\adl@totalheight\adl@totalheightsave
\global\let\adl@rowsL\adl@rowsLsave
\global\let\adl@rowsR\adl@rowsRsave
\global\let\adl@colsL\adl@colsLsave
\global\let\adl@colsR\adl@colsRsave}
%%^L
%% Drawing Vertical Lines
\def\adl@makevlrL{\adl@makevlr
\ifadl@doublerule
\edef\adl@vlrow{\adl@vlrow \hskip\doublerulesep}%
\let\next\adl@makevlrL
\else
\advance\adl@currentcolumn\@ne
\ifnum\adl@currentcolumn>\adl@columns \let\next\relax
\edef\adl@vlrow{\adl@vlrow \hss}%
\else \let\next\adl@makevlrL
\edef\adl@vlrow{\adl@vlrow \hss &\omit}%
\fi\fi\next}
\def\adl@makevlrR{\adl@makevlr
\ifadl@doublerule
\edef\adl@vlrow{\hskip\doublerulesep \adl@vlrow}%
\let\next\adl@makevlrR
\else
\advance\adl@currentcolumn\m@ne
\ifnum\adl@currentcolumn=\z@ \let\next\relax
\edef\adl@vlrow{\hss \adl@vlrow}%
\else \let\next\adl@makevlrR
\edef\adl@vlrow{&\omit \hss \adl@vlrow}%
\fi\fi\next}
\def\adl@makevlr{\@tempcnta\adl@totalheight \@tempcntb\adl@totalheight
\let\adl@lastconn\z@ \adl@dash\m@ne \adl@gap\m@ne
\let\adl@dashcolor\relax \let\adl@gapcolor\relax
\adl@connectedfalse \adl@doublerulefalse \def\@tempb{}%
\expandafter\adl@imakevlr\adl@rows\@nil;%
\adl@addvl
\edef\adl@rows{\@tempb}}
\def\adl@imakevlr#1;{\def\@tempa{#1}\ifx\@tempa\@nnil \let\next\relax
\else \adl@iimakevlr#1\let\next\adl@imakevlr \fi \next}
\def\adl@iimakevlr(#1/#2){\let\@elt\adl@iiimakevlr
\def\adl@connect{\adl@@connect#2}%
\let\adl@endmakevlr\adl@endmakevlrcut
#1\adl@endmakevlr
\let\@elt\relax \let\adl@connect\relax
\advance\@tempcntb-#2\edef\@tempb{\@tempb(\@tempc/#2);}}
\def\adl@iiimakevlr#1#2#3#4#5{\let\@elt\adl@ivmakevlr \let\next\relax
\ifnum#1=\adl@currentcolumn\relax
\let\adl@endmakevlr\adl@endmakevlrconn
\@tempswafalse
\ifnum#2=\adl@dash\relax
\ifnum#3=\adl@gap\relax
\def\@tempa{#4}\ifx\@tempa\adl@dashcolor
\def\@tempa{#5}\ifx\@tempa\adl@gapcolor
\@tempswatrue
\fi\fi\fi\fi
\if@tempswa
\ifadl@connected\else
\@tempcnta\@tempcntb
\advance\@tempcnta\adl@lastconn\relax
\adl@connectedtrue
\fi
\else
\adl@addvl
\adl@dash#2\relax \adl@gap#3\relax
\def\adl@dashcolor{#4}\def\adl@gapcolor{#5}%
\@tempcnta\@tempcntb
\advance\@tempcnta\adl@lastconn\relax
\adl@connectedtrue
\fi
\else
\adl@addvl
\def\next{\adl@vmakevlr\@elt{#1}{#2}{#3}{#4}{#5}}%
\fi
\let\adl@lastconn\z@ \next}
\def\adl@ivmakevlr#1{%
\ifnum#1=\adl@currentcolumn \adl@doubleruletrue \fi
\adl@vmakevlr\@elt{#1}}
\def\adl@vmakevlr#1\adl@endmakevlr{\def\@tempc{#1}}
\def\adl@endmakevlrcut{\adl@addvl \let\adl@lastconn\z@ \def\@tempc{}}
\def\adl@endmakevlrconn{\def\@tempc{}}
\def\adl@@connect#1\adl@endmakevlr{\def\adl@lastconn{#1}%
\def\@tempc{\adl@connect}}
\def\adl@addvlL{\ifadl@connected
\advance\@tempcnta-\@tempcntb
\edef\adl@vlrow{\adl@vlrow
\adl@vl{\number\@tempcntb}{\number\@tempcnta}%
{\number\adl@dash}{\number\adl@gap}%
{\adl@dashcolor}{\adl@gapcolor}}%
\adl@connectedfalse \fi}
\def\adl@addvlR{\ifadl@connected
\advance\@tempcnta-\@tempcntb
\edef\adl@vlrow{\adl@vl{\number\@tempcntb}{\number\@tempcnta}%
{\number\adl@dash}{\number\adl@gap}%
{\adl@dashcolor}{\adl@gapcolor}\adl@vlrow}%
\adl@connectedfalse \fi}
\def\adl@drawvl{%
\omit \relax \ifadl@zwvrule
\gdef\adl@vl@leftskip{.5\arrayrulewidth}%
\global\let\adl@vl@rightskip\adl@vl@leftskip
\else \global\let\adl@vl@leftskip\z@
\global\let\adl@vl@rightskip\arrayrulewidth
\fi \adl@vlrowL \cr
\omit \relax \ifadl@zwvrule
\gdef\adl@vl@leftskip{.5\arrayrulewidth}%
\global\let\adl@vl@rightskip\adl@vl@leftskip
\else \global\let\adl@vl@leftskip\arrayrulewidth
\global\let\adl@vl@rightskip\z@
\fi \adl@vlrowR \cr}
\def\adl@@vl#1#2#3#4#5#6{\vbox to\z@{\vss\hbox{%
\hskip-\adl@vl@leftskip
\ifnum#3=\z@\else \def\@tempa{#6}\ifx\@tempa\adl@nocolor\else
\raise#1sp\hbox{\let\current@color\@tempa \set@color
\vrule height#2sp width\arrayrulewidth}%
\hskip-\arrayrulewidth \fi \fi
\raise#1sp\vbox to#2sp{
\def\@tempa{#5}\ifx\@tempa\adl@nocolor\else
\let\current@color\@tempa \set@color \fi
\ifnum#3=\z@
\hrule height#2sp depth\z@ width\arrayrulewidth
\else \@tempdima#3sp \@tempdimb#4sp
\adl@draw\adl@hrule\vskip\vbox
\fi}%
\hskip-\adl@vl@rightskip}}}
%%^L
%% Draw Dash Lines (\adl@vrule/\adl@hrule, \hskip/\vskip, \hbox/\vbox)
\def\adl@vrule#1{\vrule\@width#1\@tempdima\@height\arrayrulewidth\relax}
\def\adl@hrule#1{\hrule\@height#1\@tempdima\@width\arrayrulewidth\relax}
\def\adl@drawi#1#2#3{%
#1{.5}#2.5\@tempdimb
\xleaders#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
#2\z@ plus1fil minus1fil\relax
#2.5\@tempdimb #1{.5}}
\def\adl@drawii#1#2#3{%
\setbox\adl@box#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
#1{.5}#2.5\@tempdimb
\copy\adl@box #2-\@tempdima #2-\@tempdimb
\xleaders\copy\adl@box#2\z@ plus1fil minus1fil\relax
#2-\@tempdima #2-\@tempdimb \copy\adl@box
#2.5\@tempdimb #1{.5}}
\def\adl@drawiii#1#2#3{{\let\xleaders\cleaders \adl@drawi#1#2#3}}
\let\adl@draw\adl@drawi
\def\ADLdrawingmode#1{\ifcase #1%
\let\adl@draw\adl@drawi \or
\let\adl@draw\adl@drawi \or
\let\adl@draw\adl@drawii \or
\let\adl@draw\adl@drawiii \else
\let\adl@draw\adl@drawi \fi}
%%^L
%% Shorthand Activation
\def\adl@Array{\adl@inactivefalse \array}
\def\adl@Tabular{\adl@inactivefalse \tabular}
\def\adl@Tabularstar{\adl@inactivefalse \@nameuse{tabular*}}
\def\adl@Longtable{\adl@inactivefalse \longtable}
\begingroup
\def\@notdefinable{\gdef\adl@notdefinable{}}
\@ifdefinable\Array\relax
\@ifdefinable\Tabular\relax
\expandafter\@ifdefinable\csname Tabular*\endcsname\relax
\ifx\longtable\undefined\else \@ifdefinable\Longtable\relax \fi
\endgroup
\ifx\adl@notdefinable\undefined
\let\Array\adl@Array
\let\Tabular\adl@Tabular
\expandafter\let\csname Tabular*\endcsname\adl@Tabularstar
\let\endArray\endarray
\let\endTabular\endtabular
\expandafter\let\csname endTabular*\endcsname\endtabular
\ifx\longtable\undefined\else
\let\Longtable\adl@Longtable
\def\endLongtable{\endlongtable}
\fi
\else
\begingroup
\ifx\longtable\undefined
\def\@tempa{Array and Tabular are not defined because one of them\MessageBreak
has been defined}
\else
\def\@tempa{Array/Tabular/Longtable are not defined because \MessageBreak
one of them has been defined}
\fi
\ifx\PackageWarning\undefined
\def\MessageBreak{^^J}
\@warning\@tempa
\else
\let\on@line\empty
\PackageWarning{arydshln}\@tempa
\fi
\endgroup
\fi
\def\ADLnoshorthanded{%
\let\Array\relax
\let\Tabular\relax
\expandafter\let\csname Tabular*\endcsname\relax
\let\endArray\relax
\let\endTabular\relax
\expandafter\let\csname endTabular*\endcsname\relax
\ifx\longtable\undefined\else
\let\Longtable\relax
\let\endLongtable\relax \fi}
\let\adl@act@arrayclassz\@arrayclassz
\let\adl@act@tabclassz\@tabclassz
\ifadl@usingarypkg \let\adl@act@classz\@classz \fi
\let\adl@act@@startpbox\@@startpbox
\let\adl@act@@endpbox\@@endpbox
\let\adl@act@startpbox\@startpbox
\let\adl@act@endpbox\@endpbox
\let\adl@act@cr\adl@cr
\let\adl@act@argcr\adl@argcr
\let\adl@act@endarray\adl@endarray
\let\adl@act@hline\adl@hline
\let\adl@act@ihdashline\adl@ihdashline
\let\adl@act@cdline\adl@cdline
\let\adl@act@@vlineL\adl@@vlineL
\let\adl@act@@vlineR\adl@@vlineR
%%^L
%% Compatibility with colortab
\def\adl@CC@#1#2#3{%
\ifcolortab
\noalign{%
\adl@arraysave
\setbox\CT@box=\vbox{#1#3\crcr\egroup}%
\adl@arrayrestore
\CT@dim=\ht\CT@box
\global\advance\CT@dim by \dp\CT@box
\def\CT@next{}%
\futurelet\next\CT@columncolor#2&\@nil}%
\CT@next\cr
\noalign{\vskip-\CT@dim}%
\fi
#3}
\ifx\ColortabLoaded\undefined\else
\let\CC@\adl@CC@
\fi
%%^L
%% Compatibility with longtable: initialization
\newif\ifadl@LTfirstpage
\newdimen\adl@LTpagetotal
\ifx\longtable\undefined\else
\let\adl@LT@array\LT@array
\def\LT@array{\adl@arrayinit \adl@LTfirstpagetrue
\let\adl@discard\relax \let\adl@hdashline\adl@LThdashline
\let\adl@ihdashline\adl@LTihdashline
\ifadl@inactive \adl@LTinactivate \fi
\adl@LT@array}
\def\adl@LTinactivate{\adl@inactivate
\let\endlongtable\adl@org@endlongtable
\let\LT@make@row\adl@org@LT@make@row
\let\LT@echunk\adl@org@LT@echunk
\let\LT@end@hd@ft\adl@org@LT@end@hd@ft
\let\LT@kill\adl@org@LT@kill
\let\LT@output\adl@org@LT@output
\let\adl@ihdashline\adl@LTinactivehdl}
\let\adl@org@LT@make@row\LT@make@row
\def\LT@make@row{\let\LT@make@row\adl@org@LT@make@row
\adl@columns\adl@ncol
\ifadl@usingarypkg
\let\@startpbox\adl@LTstartpbox
\else
\let\@@startpbox\adl@@LTstartpbox
\let\@startpbox\adl@@LTstartpbox
\fi
\let\@@endpbox\adl@LTendpbox
\let\@endpbox\adl@LTendpbox
\let\adl@@endmbox\adl@endmbox
\let\adl@endmbox\adl@LTendmbox
\adl@org@LT@make@row}
%%^L
%% Compatibility with longtable: end chunk
\let\adl@org@endlongtable\endlongtable
\def\endlongtable{\adl@LTlastrow \adl@org@endlongtable}
\let\adl@org@LT@echunk\LT@echunk
\def\LT@echunk{\adl@LTlastrow \adl@org@LT@echunk}
\def\adl@LTlastrow{\crcr \noalign{
\ifdim\adl@height=\z@
\ifdim\adl@depth=\z@ \else \adl@@cr\z@ \fi
\else \adl@@cr\z@ \fi}}
\let\adl@org@LT@end@hd@ft\LT@end@hd@ft
\def\LT@end@hd@ft#1{\adl@LTlastrow
\noalign{\edef\adl@LTth{\number\adl@totalheight}%
\adl@LThfsave#1\adl@LTth \global\adl@totalheight\z@
\adl@LThfsave#1\adl@rowsL\gdef\adl@rowsL{}%
\adl@LThfsave#1\adl@rowsR\gdef\adl@rowsR{}}
\adl@org@LT@end@hd@ft#1}
\def\adl@LThfsave#1#2{\expandafter\global\expandafter\let
\csname\string#2\string#1\endcsname#2}
\let\adl@org@LT@kill\LT@kill
\def\LT@kill{\adl@LTlastrow \noalign{
\def\@tempb{}\expandafter\adl@LTkill\adl@rowsL\@nil\adl@rowsL
\def\@tempb{}\expandafter\adl@LTkill\adl@rowsR\@nil\adl@rowsR
\global\advance\adl@totalheight-\@tempcnta}%
\adl@org@LT@kill}
\def\adl@LTkill#1;#2{\def\@tempa{#2}%
\ifx\@tempa\@nnil\def\next{\adl@LTkillend#1}%
\else\edef\@tempb{\@tempb#1;}\def\next{\adl@LTkill#2}\fi
\next}
\def\adl@LTkillend(#1/#2)#3{\global\let#3\@tempb \@tempcnta#2\relax}
%%^L
%% Compatibility with longtable: horizontal lines and p-boxes
\def\LT@hline{\noalign{\ifnum0=`}\fi
\gdef\adl@LThdlrow{\multispan{\LT@cols}\unskip
\leaders\hrule\@height\arrayrulewidth\hfill\cr}%
\adl@LThdline}
\def\adl@LThdashline#1{\noalign{\ifnum0=`}\fi
\@ifnextchar[%]
{#1}%
{#1[\dashlinedash/\dashlinegap]}}
\def\adl@LTihdashline[#1/#2]{%
\gdef\adl@LThdlrow{\multispan{\LT@cols}\unskip
\adl@hcline\z@[#1/#2]}%
\adl@LThdline}
\def\adl@LTinactivehdl[#1/#2]{%
\gdef\adl@LThdlrow{\multispan{\LT@cols}\unskip
\leaders\hrule\@height\arrayrulewidth\hfill\cr}%
\adl@LThdline}
\def\adl@LThdline{\penalty\@M
\ifadl@zwhrule \vskip-\arrayrulewidth \penalty\@M
\else \adl@hline\adl@connect\arrayrulewidth \fi
\ifnum0=`{\fi}%
\adl@LThdlrow
\noalign{\ifnum0=`}\fi
\futurelet\@tempa\adl@LTxhline}
\def\adl@LTxhline{\ifx\@tempa\hline \adl@LTixhline
\else\ifx\@tempa\hdashline \adl@LTixhline
\else \penalty-\@lowpenalty \vskip-\arrayrulewidth
\adl@hline\adl@discard{-\arrayrulewidth}%
\adl@hline\adl@connect\arrayrulewidth
\fi\fi \ifnum0=`{\fi}%
\adl@LThdlrow \noalign{\penalty\@M}}
\def\adl@LTixhline{\penalty-\@medpenalty \vskip\doublerulesep
\adl@hline\relax\doublerulesep \global\let\adl@LThdlrow\@empty}
\def\adl@@LTstartpbox{\setbox\adl@box\vtop\adl@LTstartpbox}
\def\adl@LTstartpbox#1{\adl@act@startpbox{#1}\let\@footnotetext\LT@p@ftntext}
\def\adl@LTendpbox{\adl@act@endpbox \the\LT@p@ftn \global\LT@p@ftn{}}
\def\adl@LTendmbox{\adl@@endmbox \the\LT@p@ftn \global\LT@p@ftn{}}
%%^L
%% Compatibility with longtable: first chunk
\def\LT@start{%
\let\LT@start\endgraf
\endgraf \penalty\z@ \vskip\LTpre \endgraf
\dimen@\pagetotal
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \ht\LT@foot
\dimen@ii\vfuzz \@tempcnta\vbadness
\vfuzz\maxdimen \vbadness\@M
\setbox\tw@\copy\z@
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
\setbox\tw@\vbox{\unvbox\tw@}%
\vfuzz\dimen@ii \vbadness\@tempcnta
\advance\dimen@\ht
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@\dp
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@ -\pagegoal
\ifdim \dimen@>\z@\vfil\break \fi
\global\adl@LTpagetotal\pagetotal
\global\@colroom\@colht
\ifvoid\LT@foot\else
\advance\vsize-\ht\LT@foot
\global\advance\@colroom-\ht\LT@foot
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
\maxdepth\z@
\fi
\copy\ifvoid\LT@firsthead \LT@head \else \LT@firsthead \fi
\output{\LT@output}}
%%^L
%% Compatibility with longtable: output routine
\let\adl@org@LT@output\LT@output
\def\LT@output{%
\ifnum\outputpenalty <-\@Mi
\ifnum\outputpenalty > -\LT@end@pen
\LT@err{floats and marginpars not allowed in a longtable}\@ehc
\else
\setbox\z@\vbox{\unvbox\@cclv}%
\ifdim \ht\LT@lastfoot>\ht\LT@foot
\dimen@\pagegoal
\advance\dimen@-\ht\LT@lastfoot
\ifdim\dimen@<\ht\z@
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot}%
\adl@LTdraw\LT@foot\vss
\@makecol
\@outputpage
\setbox\z@\vbox{\copy\LT@head}%
\fi
\fi
\global\@colroom\@colht
\global\vsize\@colht
\setbox\@cclv\vbox{\unvbox\z@
\copy\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
\adl@LTdraw\LT@lastfoot\@empty \box\@cclv
\fi
\else
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot}%
\adl@LTdraw\LT@foot\vss
\@makecol
\@outputpage
\global\vsize\@colroom
\copy\LT@head
\fi}
\def\adl@LTdraw#1#2{%
\@tempswatrue
\ifadl@LTfirstpage\ifdim\adl@LTpagetotal>\z@\@tempswafalse \fi\fi
\if@tempswa
\setbox\z@\vbox{\hrule height1sp\unvcopy\@cclv}
\splittopskip\z@
\setbox\@ne\vsplit\z@ to1sp\relax
\@tempdima\ht\z@
\else \@tempdima\ht\@cclv \fi
\advance\@tempdima\dp\@cclv
\adl@totalheight\@tempdima
\let\adl@LTheadL\@empty \let\adl@LTheadR\@empty
\let\adl@LTfootL\@empty \let\adl@LTfootR\@empty
\ifadl@LTfirstpage
\global\adl@LTfirstpagefalse
\advance\@tempdima-\adl@LTpagetotal
\adl@totalheight\@tempdima
\ifvoid\LT@firsthead
\adl@LTinit{head}\LT@head
\else \adl@LTinit{head}\LT@firsthead
\fi
\else \adl@LTinit{head}\LT@head \fi
\ifvoid#1%
\adl@LTinit{foot}\LT@foot
\else \adl@LTinit{foot}#1\fi
\let\adl@vl\relax \def\adl@discard{\adl@connect}%
\def\adl@vlrow{}\adl@currentcolumn\@ne
\adl@LTsplit\adl@rowsL\adl@LTheadL\adl@LTfootL
\let\adl@addvl\adl@addvlL
\adl@makevlrL \let\adl@vlrowL\adl@vlrow
\def\adl@vlrow{}\adl@currentcolumn\adl@columns
\adl@LTsplit\adl@rowsR\adl@LTheadR\adl@LTfootR
\let\adl@addvl\adl@addvlR
\adl@makevlrR \let\adl@vlrowR\adl@vlrow
\let\adl@vl\adl@@vl
\@tempcnta\LT@rows
\LT@bchunk \adl@drawvl
\LT@save@row\cr \egroup \setbox\@ne\lastbox \unskip \egroup
\global\advance\c@LT@chunks\m@ne
\global\LT@rows\@tempcnta
\@tempdima\dp\@cclv
\setbox\@cclv\vbox{\unvbox\@cclv \box\z@ \vskip-\@tempdima
\hrule\@width\z@\@height\z@\@depth\@tempdima#2}}
\def\adl@LTinit#1#2{\ifvoid#2\else
\advance\@tempdima-\csname\string\adl@LTth\string#2\endcsname sp%
\expandafter\edef\csname adl@LT#1L\endcsname{%
\csname\string\adl@rowsL\string#2\endcsname}%
\expandafter\edef\csname adl@LT#1R\endcsname{%
\csname\string\adl@rowsR\string#2\endcsname}\fi}
\def\adl@LTsplit#1#2#3{\def\adl@rows{}\@tempdimb\z@
\expandafter\adl@LTxsplit#1\@nil;%
\edef\adl@rows{#2\adl@rows#3}%
\global\let#1\@tempb}
\def\adl@LTxsplit#1;{\def\@tempa{#1}%
\ifx\@tempa\@nnil \def\@tempb{}\let\next\relax
\else\ifx\adl@LTheadL\@empty \def\next{\adl@LTysplit#1}%
\else \def\next{\adl@LTisplit#1;}\fi \fi
\next}
\def\adl@LTrowrelax{\relax}
\def\adl@LTrowdiscard{\adl@discard}
\def\adl@LTysplit(#1/#2){\def\@tempa{#1}%
\ifx\@tempa\adl@LTrowrelax \let\next\adl@LTxsplit
\else\ifx\@tempa\adl@LTrowdiscard \let\next\adl@LTxsplit
\else \def\next{\adl@LTisplit(#1/#2);}\fi \fi
\next}
\def\adl@LTisplit#1;{\def\@tempa{#1}%
\ifx\@tempa\@nnil \def\@tempb{}\let\next\relax
\else\ifdim\@tempdimb<\@tempdima
\adl@LTiisplit#1\let\next\adl@LTisplit
\else \def\next{\adl@LTsplitend#1;}\fi \fi
\next}
\def\adl@LTiisplit(#1/#2){\edef\adl@rows{\adl@rows(#1/#2);}%
\advance\@tempdimb#2sp}
\def\adl@LTsplitend#1;\@nil;{\def\@tempb{#1;}}
\fi
%%^L
%% Compatibility with colortbl
\def\CT@arc@{\relax}
\def\adl@dashgapcolor{\relax}
\@ifpackageloaded{colortbl}\@tempswatrue\@tempswafalse
\if@tempswa
\let\adl@org@inactivate\adl@inactivate
\let\adl@org@activate\adl@activate
\def\adl@inactivate{\adl@org@inactivate \let\CT@setup\adl@CT@setup}
\def\adl@activate{\adl@org@activate \let\CT@setup\adl@act@CT@setup
\let\@startpbox\adl@org@startpbox \let\@endpbox\adl@org@endpbox}
\let\adl@CT@setup\CT@setup
\def\CT@setup{\adl@CT@setup
\@tempdima\ht\z@ \advance\@tempdima\minrowclearance
\ifdim\adl@height<\@tempdima \global\adl@height\@tempdima \fi
\ifdim\adl@depth<\dp\z@ \global\adl@depth\dp\z@\fi}
\let\adl@act@CT@setup\CT@setup
\def\adl@activatepbox{\let\CT@cell@color\relax
\let\CT@column@color\relax
\let\CT@do@color\relax}
\let\adl@CT@start\CT@start
\def\CT@start{\adl@CT@start \let\adl@dashgapcolor@save\adl@dashgapcolor}
\let\adl@CT@end\CT@end
\def\CT@end{\adl@CT@end \global\let\adl@dashgapcolor\adl@dashgapcolor@save}
\def\endarray{\adl@endarray \egroup \adl@arrayrestore \CT@end \egroup
\csname @arrayright\endcsname}
\ifx\adl@notdefinable\undefined \let\endArray\endarray \fi
\def\hline{\noalign{\ifnum0=`}\fi
\ifadl@zwhrule \vskip-\arrayrulewidth
\else \adl@hline\adl@connect\arrayrulewidth \fi
{\CT@arc@ \hrule\@height\arrayrulewidth}%
\global\adl@finaldepth\z@
\futurelet\@tempa\adl@xhline}
\def\adl@inactivehdl[#1/#2]{\ifadl@zwhrule \vskip-\arrayrulewidth \fi
{\CT@arc@ \hrule\@height\arrayrulewidth}%
\futurelet\@tempa\adl@xhline}
\def\adl@ixhline{{\ifx\CT@drsc@\relax \vskip \else
\CT@drsc@\hrule\@height \fi \doublerulesep}%
\adl@hline\relax\doublerulesep}
\def\adl@ihdashline[#1/#2]{\adl@hclinesetup\@ne\adl@columns
\adl@hcline\z@[#1/#2]%
\noalign{\ifnum0=`}\fi
\futurelet\@tempa\adl@xhline}
\let\adl@act@ihdashline\adl@ihdashline
\def\adl@cdline[#1-#2]{\ifadl@zwhrule \vskip-\arrayrulewidth \fi
\adl@hclinesetup{#1}{#2}%
\adl@hcline{-\arrayrulewidth}}
\let\adl@act@cdline\adl@cdline
\def\adl@hclinesetup#1#2{\global\adl@cla#1\relax
\global\advance\adl@cla\m@ne
\ifnum\adl@cla>\z@ \global\let\@gtempa\adl@cdlinea
\else \global\let\@gtempa\adl@cdlineb\fi
\global\adl@clb#2\relax
\global\advance\adl@clb-\adl@cla \ifnum0=`{\fi}}
\def\adl@cdlinea{\multispan\adl@cla &\multispan\adl@clb \unskip}
\def\adl@cdlineb{\multispan\adl@clb \unskip}
\def\adl@hcline#1[#2/#3]{\@gtempa
\ifx\adl@dashgapcolor\adl@nocolor \else \adl@paintdashgap \fi
{\@tempdima#2\relax \@tempdimb#3\relax
\CT@arc@ \adl@draw\adl@vrule\hskip\hbox}\cr
\noalign{\global\adl@finaldepth\z@ \ifdim#1=\z@\else
\ifadl@zwhrule\else \vskip#1\fi\fi}}
\def\adl@paintdashgap{{\adl@dashgapcolor
\leaders\hrule\@height\arrayrulewidth\hfill}\cr
\noalign{\penalty\@M \vskip-\arrayrulewidth}\@gtempa}
\def\arrayrulecolor{\adl@defcolor\CT@arc@}
\def\doublerulesepcolor{\adl@defcolor\CT@drsc@}
\def\dashgapcolor{\adl@defcolor\adl@dashgapcolor}
\def\adl@defcolor#1#2#{\adl@idefcolor{#1}{#2}}
\def\adl@idefcolor#1#2#3{\adl@noalign{\gdef#1{\color#2{#3}}}}
\let\adl@noalign\relax
\def\nodashgapcolor{\adl@noalign{\gdef\adl@dashgapcolor{\relax}}}
\def\@classz{\@classx
\@tempcnta\count@ \prepnext@tok
\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil
\expandafter\adl@extract@arc\the\toks\@tempcnta\arrayrulecolor!\@nil
\expandafter\adl@extract@drsc
\the\toks\@tempcnta\doublerulesepcolor!\@nil
\expandafter\adl@extract@dgc\the\toks\@tempcnta\dashgapcolor!\@nil
\@addtopreamble{%
\setbox\z@\hbox\bgroup\bgroup
\ifcase \@chnum
\hskip\stretch{.5}\kern\z@
\d@llarbegin
\insert@column
\d@llarend\hskip\stretch{.5}%
\or \d@llarbegin \insert@column \d@llarend \hfill
\or \hfill \kern\z@ \d@llarbegin \insert@column \d@llarend
\or $\vcenter
\@startpbox{\@nextchar}\insert@column \@endpbox $%
\or \vtop \@startpbox{\@nextchar}\insert@column \@endpbox
\or \vbox \@startpbox{\@nextchar}\insert@column \@endpbox
\fi
\egroup\egroup
\begingroup
\CT@setup
\CT@column@color
\CT@row@color
\CT@cell@color
\CT@do@color
\endgroup
\@tempdima\ht\z@
\advance\@tempdima\minrowclearance
\vrule\@height\@tempdima\@width\z@
\unhbox\z@}%
\prepnext@tok}
\let\adl@act@classz\@classz
\let\adl@org@classz\@classz
\def\adl@def@extract#1#2#3{%
\expandafter\def\csname adl@extract@#1\endcsname##1#2##2##3\@nil{%
\if!##2\toks\@tempcnta{##1}\let\@tempa\relax
\else\if[##2%]
\def\@tempa{\@nameuse{adl@extract@#1@b}{##1}##3\@nil}%
\else \def#3{\color{##2}}%
\def\@tempa{\@nameuse{adl@extract@#1}##1##3\@nil}%
\fi\fi \@tempa}
\expandafter\def\csname adl@extract@#1@b\endcsname##1##2]##3{%
\def#3{\color[##2]{##3}}%
\@nameuse{adl@extract@#1}##1}}
\adl@def@extract{arc}\arrayrulecolor\CT@arc@
\adl@def@extract{drsc}\doublerulesepcolor\CT@drsc@
\adl@def@extract{dgc}\dashgapcolor\adl@dashgapcolor
\ifx\longtable\undefined\else
\def\LT@hline{\noalign{\ifnum0=`}\fi
\gdef\adl@LThdlrow{\multispan{\LT@cols}\unskip{\CT@arc@
\leaders\hrule\@height\arrayrulewidth\hfill}\cr}%
\adl@LThdline}
\def\adl@LTihdashline[#1/#2]{\adl@hclinesetup\@ne\adl@columns
\noalign{\ifnum0=`}\fi
\gdef\adl@LThdlrow{\adl@hcline\z@[#1/#2]}%
\adl@LThdline}
\def\adl@LTinactivehdl[#1/#2]{%
\gdef\adl@LThdlrow{\multispan{\LT@cols}\unskip{\CT@arc@
\leaders\hrule\@height\arrayrulewidth\hfill}\cr}%
\adl@LThdline}
\def\adl@LTixhline{%
\ifx\CT@drsc@\relax \gdef\adl@LThdlrow{\noalign{
\penalty-\@medpenalty \vskip\doublerulesep}}
\else \gdef\adl@LThdlrow{\noalign{\penalty\@M}%
\multispan{\LT@cols}\unskip{\CT@drsc@
\leaders\hrule\@height\doublerulesep\hfill}\cr}\fi
\ifnum0=`{\fi}\adl@LThdlrow \noalign{\ifnum0=`}\fi
\adl@hline\relax\doublerulesep \global\let\adl@LThdlrow\@empty}
\fi
\fi
\endinput
%%
%% End of file `arydshln.sty'.