% This is the inputd format source code file in a flat version
% This file is generated based on running initex with all files
% belonging to this format. Do NOT change this file, because
% it is automatically generated directly from all the .tip
% files. The same copyright which applies to the individual .tip
% files applies to this file too, obviously
% This macro source file is from the four volume series
% \"TeX in Practice\" by Stephan von Bechtolsheim, published
% 1993 by Springer-Verlag, New York.
% Copyright 1993 Stephan von Bechtolsheim.
% No warranty or liability is assumed.
% This macro may be copied freely if no fees other than
% media cost or shipping charges are charged and as long
% as this copyright and the following source code itself
% is not changed. Please see the series for further information.
\input plain.tex
\def\InputD #1{} \def\InputDList{}
\catcode`\@ = 11
\def\NameDef #1{% 
    \expandafter\def\csname #1\endcsname
}
\def\NameEdef #1{%
    \expandafter\edef\csname #1\endcsname
}
\def\NameGdef #1{% 
    \expandafter\gdef\csname #1\endcsname
}
\def\NameXdef #1{% 
    \expandafter\xdef\csname #1\endcsname
}
\def\NameNewDef #1{% 
    \if\NameDefinedConditional{#1}% 
        \errmessage{\string\NameNewDef: "#1" already defined.}% 
    \fi
    \NameDef{#1}% 
}
\def\NameReDef #1{% 
    \if\NameDefinedConditional{#1}%
    \else
        \errmessage{\string\NameReDef: "#1" never defined before.}% 
    \fi
    \NameDef{#1}% 
}
\def\NameUse #1{\csname #1\endcsname}
\def\NameUseFlagUndefined #1{% 
    \if\NameDefinedConditional{#1}%
        \NameUse{#1}%
    \else
        \errmessage{\string\NameUseFlagUndefined: token "#1"
            is undefined.}%
    \fi
}
\newif\if@NameDefined
\def\NameDefinedConditional #1{% 
    TT\fi
    \expandafter\ifx\csname #1\endcsname \relax
        \@NameDefinedfalse
    \else
        \@NameDefinedtrue
    \fi
    \if@NameDefined
}
\catcode`\@ = 12
\NameDef{@InputD-namedef.tip}{}
\def\AbsoluteDimension #1#2{% 
    \ifdim #1 < 0pt
        #2 = -#1\relax
    \else
        #2 = #1\relax
    \fi
}
\NameDef{@InputD-absdimen.tip}{}
\def\AbsoluteValue #1#2{% 
    \ifnum #1<0
        #2 = -#1\relax
    \else
        #2 = #1\relax
    \fi
}
\NameDef{@InputD-absval.tip}{}
\def\DefineAcronym #1#2#3{% 
    \def #1{% 
        #2 (#3)%
        \gdef#1{#2}%
    }%
}
\NameDef{@InputD-acronym.tip}{}
\catcode`\@ = 11
\newcount\@DoLoopNesting
\@DoLoopNesting = 0
\newcount\@DoLoopLimit
\newcount\@DoLoopLimitTwo
\newcount\@DoLoopLimitThree
\def\DoLoop #1#2#3#4#5{%
    \global\advance\@DoLoopNesting by 1
    \ifnum\@DoLoopNesting > 3
        \errmessage{\string\DoLoop: nesting beyond three levels
            is not supported.}%
    \fi
    \ifnum #3 = 0
        \errmessage{\string\DoLoop: step value (parameter 3) is 0!}% 
    \else
        \ifcase\@DoLoopNesting
        \or
            \@DoLoop{#1}{#2}{#3}{#4}{#5}%
            {\@DoLoopLimit}{\DoLoopBody}%
        \or
            \@DoLoop{#1}{#2}{#3}{#4}{#5}%
            {\@DoLoopLimitTwo}{\DoLoopBodyTwo}%
        \or
            \@DoLoop{#1}{#2}{#3}{#4}{#5}%
            {\@DoLoopLimitThree}{\DoLoopBodyThree}%
        \fi
    \fi
    \global\advance\@DoLoopNesting by -1
}
\def\@DoLoop #1#2#3#4#5#6#7{%
    \ifnum #3 > 0
        #6 = #4% 
        \advance#6 by 1
        #1 = #2% 
        \@DoLoopBodyPositive{#1}{#3}{#5}% 
            {#6}{#7}%
    \else
        #6 = #4% 
        \advance#6 by -1
        #1 = #2% 
        \@DoLoopBodyNegative{#1}{#3}{#5}% 
            {#6}{#7}%
    \fi
    \@DoLoopIterate{#7}%
}
\def\@DoLoopBodyPositive #1#2#3#4#5{%
    \def #5{% 
        \ifnum #1 < #4\relax
            #3% 
            \advance #1 by #2% 
    }%
}
\def\@DoLoopBodyNegative #1#2#3#4#5{%
    \def #5{%
        \ifnum #1 > #4\relax
            #3% 
            \advance #1 by #2% 
    }% 
}
\def\@DoLoopIterate #1{%
        #1\relax
        \def\@DoLoopNext{\@DoLoopIterate{#1}}%
    \else
        \def\@DoLoopNext{\relax}%
    \fi
    \@DoLoopNext
}
\catcode`\@ = 12
\NameDef{@InputD-doloop.tip}{}
\catcode`\@ = 11
\newcount\AdvanceByTabStopsCount
\def\AdvanceByTabStops #1{%
    \def\@MakeTabChars{}%
    \DoLoop{\AdvanceByTabStopsCount}{2}{1}{#1}% 
            {\edef\@MakeTabChars{\@MakeTabChars&}}% 
    \@MakeTabChars
}
\catcode`\@ = 12
\NameDef{@InputD-advtabst.tip}{}
\newtoks\AfterEveryPar
\AfterEveryPar = {}
\catcode`\@ = 11
\def\SetUpAfterEveryPar{% 
    \def\par{% 
        \ifhmode
            \ifinner
            \else
                \endgraf
                \the\AfterEveryPar
            \fi
        \fi
    }% 
}
\catcode`\@ = 12
\NameDef{@InputD-aevpar.tip}{}
\catcode`\@ = 11
\newif\if@InRange
\def\InRangeConditional #1#2#3{%
    TT\fi
    \@InRangetrue
    \ifnum #1<#2\relax
        \@InRangefalse
    \fi
    \ifnum #1>#3\relax
        \@InRangefalse
    \fi
    \if@InRange
}

\def\CheckRange #1#2#3#4{% 
    \ifnum #1 < #2\relax
        \errmessage{Value \number#1 \space out of range #2..#3: #4}%
    \fi
    \ifnum #1>#3\relax
        \errmessage{Value \number#1 \space out of range #2..#3: #4}%
    \fi
}
\def\CheckZeroOneRange #1#2{% 
    \CheckRange{#1}{0}{1}{#2}%
}
\catcode`\@ = 12
\NameDef{@InputD-rangetst.tip}{}
\catcode`\@ = 11
\def\Sunday{0}
\def\Monday{1}
\def\Tuesday{2}
\def\Wednesday{3}
\def\Thursday{4}
\def\Friday{5}
\def\Saturday{6}
\def\ProvideDayOfWeek #1#2#3{%
    \CheckRange{#1}{0}{6}%
        {\string\ProvideDayOfWeek: day of week outside
            of 0 .. 6 range.}%
    \ifcase #1\relax
        \def#3{Sunday}\or
        \def#3{Monday}\or
        \def#3{Tuesday}\or
        \def#3{Wednesday}\or
        \def#3{Thursday}\or
        \def#3{Friday}\or
        \def#3{Saturday}% 
    \fi
    \ifnum #2 = 0
    \else
        \def\@ProvideDayOfWeek ##1##2##3##4;{%
            \def#3{##1##2##3}%
        }%
        \expandafter\@ProvideDayOfWeek#3;%
    \fi     
}
\def\PrintDayOfWeek #1#2{%
    \ProvideDayOfWeek{#1}{#2}{\@PrintDayOfWeek}%
    \@PrintDayOfWeek
}
\catcode`\@ = 12
\NameDef{@InputD-dateofw.tip}{}
\def\CheckLegalMonth #1{%
    \CheckRange{#1}{1}{12}% 
    {\string\CheckLegalMonth: month #1 out of range.}%
}
\NameDef{@InputD-legmonth.tip}{}
\def\CheckLegalYear #1{%
    \ifnum #1 < \EarliestYearDate
        \errmessage{\string\CheckLegalYear: year #1
            < \the\EarliestYearDate\space
            encountered, illegal.}%
    \fi
}
\NameDef{@InputD-legyear.tip}{}
\catcode`\@ = 11
\newcount\@IModNCount
\newcount\@IModNCountCopy
\def\IModN #1#2#3{%
    \@IModNCount = #1\relax
    \@IModNCountCopy = #1\relax
    \ifnum \@IModNCount < 0
        \errmessage{\string\IModN: \string#1
            (value \the\@IModNCount) is negative.}%
    \fi
    \ifnum #2< 1
        \errmessage{\string\IModN: \string#2
            (value #2) is negative or zero.}%
    \fi
    \divide\@IModNCount by #2\relax
    \multiply\@IModNCount by #2\relax
    #3 = \@IModNCountCopy
    \advance #3by -\@IModNCount
}
\catcode`\@ = 12
\NameDef{@InputD-imodn.tip}{}
\catcode`\@ = 11
\newif\if@LeapYear
\def\LeapYearConditional #1{%
    TT\fi
    {%
        \count0 = #1\relax
        \IModN{\count0}{4}{\count1}%
        \ifnum\count1 = 0
            \global\@LeapYeartrue
            \IModN{\count0}{100}{\count2}%
            \IModN{\count0}{400}{\count3}%
            \ifnum\count2 = 0
                \global\@LeapYearfalse
            \fi
            \ifnum\count3 = 0
                \global\@LeapYeartrue
            \fi
        \else
            \global\@LeapYearfalse
        \fi
    }%
    \if@LeapYear
}
\catcode`\@ = 12
\NameDef{@InputD-isleapyr.tip}{}
\def\NumberOfDaysInMonth #1#2#3{%
    \CheckLegalYear{#1}%
    \CheckLegalMonth{#2}%
    \ifcase #2\relax
    \or
        #3 = 31
    \or
        #3 = 28
        \if\LeapYearConditional{#1}%
            #3 = 29
        \fi
    \or
        #3 = 31
    \or
        #3 = 30
    \or
        #3 = 31
    \or
        #3 = 30
    \or
        #3 = 31
    \or
        #3 = 31
    \or
        #3 = 30
    \or
        #3 = 31
    \or
        #3 = 30
    \or
        #3 = 31
    \fi
}
\NameDef{@InputD-ndaysmo.tip}{}
\catcode`\@ = 11
\newcount\@TempCheckDate
\def\CheckDate #1#2#3{% 
    \CheckLegalYear{#1}%
    \CheckLegalMonth{#2}%
    \NumberOfDaysInMonth{#1}{#2}{\@TempCheckDate}%
    \CheckRange{#3}{1}{\@TempCheckDate}%
        {\string\CheckDate: provided date #1-#2-#3 is illegal.}%
}
\catcode`\@ = 12
\NameDef{@InputD-legdate.tip}{}
\def\CopyDate #1#2#3#4#5#6{%
    #4 = #1\relax
    #5 = #2\relax
    #6 = #3\relax
}
\NameDef{@InputD-copydate.tip}{}
\catcode`\@ = 11
\newcount\@TempNextDay
\def\NextDay #1#2#3#4#5#6{%
    \CheckDate{#1}{#2}{#3}%
    \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}%
    \advance #6 by 1
    \NumberOfDaysInMonth{#1}{#2}{\@TempNextDay}%
    \ifnum #6 > \@TempNextDay
        #6 = 1
        \advance #5 by 1
        \ifnum #5 = 13
            #5 = 1
            \advance #4 by 1
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-nextday.tip}{}
\def\NumberOfDaysInYear #1#2{%
    \if\LeapYearConditional{#1}%
        #2 = 366
    \else
        #2 = 365
    \fi
}
\NameDef{@InputD-numdyr.tip}{}
\catcode`\@ = 11
\def\ProvideMonth #1#2#3{%
    \CheckLegalMonth{#1}%
    \ifcase #1\relax
    \or
        \def#3{January}\or
        \def#3{February}\or
        \def#3{March}\or
        \def#3{April}\or
        \def#3{May}\or
        \def#3{June}\or
        \def#3{July}\or
        \def#3{August}\or
        \def#3{September}\or
        \def#3{October}\or
        \def#3{November}\or
        \def#3{December}% 
    \fi
    \ifnum #2 = 1
        \def\@TempProvideMonth ##1##2##3##4\@Del{%
            \xdef#3{##1##2##3}%
        }%
        \expandafter\@TempProvideMonth#3\@Del
    \fi
}
\def\PrintMonth #1#2{%
    {%
        \ProvideMonth{#1}{#2}{\@PrintMonth}%
        \@PrintMonth
    }%
}
\def\PrintCurrentMonth{% 
    \PrintMonth{\month}{0}%
}
\catcode`\@ = 12
\NameDef{@InputD-prmonth.tip}{}
\catcode`\@ = 11
\newcount\@YearTemp
\newcount\@YearTop
\newcount\@MonthTemp
\newcount\@MonthTop
\newcount\@TempAD
\def\ArbitraryDayOfWeek #1#2#3#4{%
    \CheckDate{#1}{#2}{#3}%
    #4 = \DayOfWeekOfEarliestDate
    \@YearTop = #1\relax
    \advance\@YearTop by -1
    \DoLoop{\@YearTemp}{\EarliestYearDate}{1}{\@YearTop}{%
        \NumberOfDaysInYear{\@YearTemp}{\@TempAD}%
        \advance #4 by \@TempAD
    }%
    \IModN{#4}{7}{#4}%
    \@MonthTop = #2\relax
    \advance\@MonthTop by -1
    \DoLoop{\@MonthTemp}{1}{1}{\@MonthTop}{%
        \NumberOfDaysInMonth{#1}{\@MonthTemp}{\@TempAD}%
        \advance #4 by \@TempAD
    }%
    \IModN{#4}{7}{#4}%
    \advance #4 by #3\relax
    \advance #4 by -1
    \IModN{#4}{7}{#4}%
}
\catcode`\@ = 12
\NameDef{@InputD-arbday.tip}{}
\catcode`\@ = 11
\newcount\@TempEarliest
\newcount\EarliestYearDate
\EarliestYearDate = 1583
\newcount\DayOfWeekOfEarliestDate
\DayOfWeekOfEarliestDate = \Saturday
\def\VerifyInitDate{%
    {%
        \ArbitraryDayOfWeek{2000}{1}{1}{\@TempEarliest}%
        \ifnum\@TempEarliest = \Saturday
            \message{\string\VerifyInitDate: initialization
                correct (initialization year:
                \the\EarliestYearDate).}%
        \else
            \errmessage{\string\VerifyInitDate: January 1 of 2000
                is a Saturday! Computation reports it is
                day \the\@TempEarliest\space. Initialization error.}%
        \fi
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-earliest.tip}{}
\catcode`\@ = 11
\newcount\@TempPrevDay
\def\PrevDay #1#2#3#4#5#6{%
    \CheckDate{#1}{#2}{#3}%
    \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}%
    \advance #6 by -1
    \ifnum #6 = 0
        \advance #5 by -1
        \ifnum #5 = 0
            #5 = 12
            \advance #4 by -1
        \fi
        \NumberOfDaysInMonth{#4}{#5}{#6}%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-prevday.tip}{}
\catcode`\@ = 11
\def\NextMonth #1#2#3#4{%
    \CheckDate{#1}{#2}{1}%
    #3 = #1\relax
    #4 = #2\relax
    \advance #4 by 1
    \ifnum #4 = 13
        #4 = 1
        \advance #3 by 1
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-nextmon.tip}{}
\catcode`\@ = 11
\def\PrevMonth #1#2#3#4{%
    \CheckDate{#1}{#2}{1}%
    #3 = #1\relax
    #4 = #2\relax
    \advance #4 by -1
    \ifnum #4 = 0
        #4 = 12
        \advance #3 by -1
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-prevmon.tip}{}
\catcode`\@ = 11
\newcount\@LeadingZCount
\def\LeadingZ #1{%
    \@LeadingZCount = #1\relax
    \ifnum \@LeadingZCount < 10
        0%
    \fi
    \the\@LeadingZCount
}
\catcode`\@ = 12
\NameDef{@InputD-leadingz.tip}{}
\newcount\Hour
\newcount\Minute
\def\PrintMilTime{% 
    \Hour = \time
    \divide\Hour by 60
    \Minute = \Hour
    \multiply\Minute by 60
    \advance\Minute by -\time
    \Minute = -\Minute
    \LeadingZ{\the\Hour}:\LeadingZ{\the\Minute}% 
}
\NameDef{@InputD-pmtime.tip}{}
\def\TodayX{% 
    \PrintCurrentMonth~\the\day, \the\year
}
\newcount\TodayYCount
\def\TodayY{%
    {%
        \ArbitraryDayOfWeek{\year}{\month}{\day}{\TodayYCount}%
        \PrintDayOfWeek{\TodayYCount}{0},
    }%
    \TodayX
}
\def\TodayZ{%
    \TodayY, \PrintMilTime
}
\NameDef{@InputD-todayx.tip}{}
\catcode`\@ = 11
\newcount\@InitialDayOfMonth
\newcount\@MCDays
\newcount\@MonthlyCalendarBodyTemp
\def\MonthlyCalendarBody #1#2#3{%
    {%
        \CheckDate{#1}{#2}{1}%
        \ArbitraryDayOfWeek{#1}% 
            {#2}{1}{\@InitialDayOfMonth}%
        \gdef #3{}%
        \DoLoop{\@MonthlyCalendarBodyTemp}% 
            {1}{1}{\@InitialDayOfMonth}%
            {\xdef#3{#3&}}
        \NumberOfDaysInMonth{#1}{#2}{\@MCDays}%
        \DoLoop{\@MonthlyCalendarBodyTemp}{1}{1}{\@MCDays}{%
            \xdef#3{#3\the\@MonthlyCalendarBodyTemp}%
            \ifnum\@InitialDayOfMonth = \Saturday
                \xdef#3{#3\cr}%
            \else
                \xdef#3{#3&}%
            \fi
            \advance\@InitialDayOfMonth by 1
            \IModN{\@InitialDayOfMonth}{7}{\@InitialDayOfMonth}%
        }%
    }%
    \xdef#3{#3\crcr}%
}
\newcount\@MonthlyCalendarCount
\def\MonthlyCalendar #1#2#3{%
    {%
        \MonthlyCalendarBody{#1}{#2}{\TableBody}%
        \vtop{
            \hsize = #3\relax
            \ProvideMonth{#2}{0}{\MonthNameTemp}%
            \@MonthlyCalendarCount = #1\relax
            \centerline{\MyStrut\MonthNameTemp\space
                \the\@MonthlyCalendarCount}%
            \smallskip
            \hrule
            \smallskip
                                \tabskip = 0pt
            \halign to \hsize{
                                    % So
                \hfil##\relax   \tabskip = 0pt plus 1fil&
                \hfil##&            % Mo
                \hfil##&            % Tu
                \hfil##&            % We
                \hfil##&            % Th
                \hfil##&            % Fr
                \hfil##\relax   \tabskip = 0pt
            \cr
                \omit\hfil So\hfil&
                \omit\hfil Mo\hfil&
                \omit\hfil Tu\hfil&
                \omit\hfil We\hfil&
                \omit\hfil Th\hfil&
                \omit\hfil Fr\hfil&
                \omit\hfil Sa\hfil\cr
                \TableBody
            }%
            \smallskip
            \hrule
        }%
    }%
}%
\catcode`\@ = 12
\NameDef{@InputD-mocal.tip}{}
\def\ThreeMonthlyCalendars #1#2#3{%
    \hbox{%
        \count0 = #1
        \count1 = #2
        \MonthlyCalendar{\count0}{\count1}{#3}%
        \hskip 10pt
        \NextMonth{\count0}{\count1}{\count0}{\count1}%
        \MonthlyCalendar{\count0}{\count1}{#3}%
        \NextMonth{\count0}{\count1}{\count0}{\count1}%
        \hskip 10pt
        \MonthlyCalendar{\count0}{\count1}{#3}%
    }
}
\NameDef{@InputD-mocal3.tip}{}
\def\YearlyCalendar #1#2#3{%
    \vbox{%
        \dimen0 = #2\relax
        \ifdim\dimen0 = 0.0pt
            \dimen0 = \hsize
        \fi
        \dimen1 = #3\relax
        \ifdim\dimen1 = 0.0pt
            \dimen1 = \dimen0
            \divide\dimen1 by 3
            \advance\dimen1 by -5pt
        \fi
        \hsize = \dimen0
        \centerline{\Large\bf Year #1}
        \bigskip
        \line{%
            \MonthlyCalendar{#1}{1}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{2}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{3}{\dimen1}%
        }%
        \bigskip
            \line{%
            \MonthlyCalendar{#1}{4}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{5}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{6}{\dimen1}%
        }%
        \bigskip
        \line{%
            \MonthlyCalendar{#1}{7}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{8}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{9}{\dimen1}%
        }%
        \bigskip
        \line{%
            \MonthlyCalendar{#1}{10}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{11}{\dimen1}%
            \hfil
            \MonthlyCalendar{#1}{12}{\dimen1}%
        }%
    }
}
\NameDef{@InputD-yearcal.tip}{}
\catcode`\@ = 11
\newcount\@ComputeMondayOfDateDay
\newcount\@ComputeMondayOfDateDayTwo
\def\ComputeMondayOfDate #1#2#3#4#5#6{%
    #4 = #1\relax   
    #5 = #2\relax   
    #6 = #3\relax   
    \ArbitraryDayOfWeek{#4}{#5}{#6}{\@ComputeMondayOfDateDay}%
    \ifnum\@ComputeMondayOfDateDay = \Sunday
        \@ComputeMondayOfDateDay = 6
    \else
        \advance\@ComputeMondayOfDateDay by -1
    \fi
    \DoLoop{\@ComputeMondayOfDateDayTwo}
        {\@ComputeMondayOfDateDay}{-1}{1}%
        {\PrevDay{#4}{#5}{#6}{#4}{#5}{#6}}%
}
\catcode`\@ = 12
\NameDef{@InputD-mondofda.tip}{}
\catcode`\@ = 11
\newcount\@NextOrPrevWeekSameDayCount
\def\@NextOrPrevWeekSameDay #1#2#3#4#5#6#7{%
    #4 = #1\relax
    #5 = #2\relax
    #6 = #3\relax
    \DoLoop{\@NextOrPrevWeekSameDayCount}{1}{1}{7}%
        {#7{#4}{#5}{#6}{#4}{#5}{#6}}%
}
\def\NextWeekSameDay #1#2#3#4#5#6{%
    \@NextOrPrevWeekSameDay
        {#1}{#2}{#3}{#4}{#5}{#6}{\NextDay}%
}
\def\PrevWeekSameDay #1#2#3#4#5#6{%
    \@NextOrPrevWeekSameDay
        {#1}{#2}{#3}{#4}{#5}{#6}{\PrevDay}%
}
\catcode`\@ = 12
\NameDef{@InputD-norpweek.tip}{}
\catcode`\@ = 11
\newcount\@WeekOfYearCounter
\newcount\@WeekOfYearYear
\newcount\@WeekOfYearMonth
\newcount\@WeekOfYearDay
\newcount\@WeekOfYearCopy
\def\WeekOfYear #1#2#3#4{%
    \@WeekOfYearCopy = #1\relax
    \ComputeMondayOfDate{#1}{#2}{#3}%
        {\@WeekOfYearYear}{\@WeekOfYearMonth}{\@WeekOfYearDay}%
    \def\@WeekOfYearCounter{#4}%
    \@WeekOfYearCounter = 1
    \@WeekOfYear
}
\newif\if@YearStop
\def\@WeekOfYear{%
    \@YearStopfalse
    \ifnum\@WeekOfYearCopy > \@WeekOfYearYear
        \@YearStoptrue
    \else
        \ifnum\@WeekOfYearMonth = 1
            \ifnum\@WeekOfYearDay = 1
                \@YearStoptrue
            \fi
        \fi
    \fi
    \if@YearStop
        \def\@WeekOfYearNext{\relax}%
    \else
        \def\@WeekOfYearNext{\@WeekOfYear}%
        \expandafter\advance\@WeekOfYearCounter by 1
        \PrevWeekSameDay{\@WeekOfYearYear}{\@WeekOfYearMonth}%
            {\@WeekOfYearDay}%
            {\@WeekOfYearYear}{\@WeekOfYearMonth}%
            {\@WeekOfYearDay}%
    \fi
    \@WeekOfYearNext
}
\catcode`\@ = 12
\NameDef{@InputD-weekofyr.tip}{}
\NameDef{@InputD-alldate.tip}{}
\def\AlwaysBaselineskip{%
    \lineskiplimit = -\maxdimen
}
\NameDef{@InputD-alwbase.tip}{}
\def\angt #1{% 
    \leavevmode
    \hbox{$\langle$}% 
    {\rm #1}% 
    \hbox{$\rangle$}% 
}
\NameDef{@InputD-angt.tip}{}
\newif\ifShowX
\ShowXfalse
\def\ShowX #1{%
    \ifShowX
        {%
            \nonstopmode
            \show #1% 
        }%
    \fi
}
\NameDef{@InputD-showx.tip}{}
\catcode`\@ = 11
\newif\if@TestSubString
\def\SubStringConditional #1#2{%
    TT\fi
    \edef\@MainString{#1}%
    \edef\@SubStringConditionalTemp{{#1}{#2}}%
    \expandafter\@SubStringConditional\@SubStringConditionalTemp
}
\def\@SubStringConditional #1#2{% 
    \def\@TestSubS ##1#2##2\@Del{% 
        \def\@TestTemp{##1}% 
    }% 
    \ShowX{\@TestSubS}%
    \@TestSubS #1#2\@Del
    \ShowX{\@TestTemp}%
    \ifx\@MainString\@TestTemp
        \@TestSubStringfalse
    \else
        \@TestSubStringtrue
    \fi
    \if@TestSubString
}
\catcode`\@ = 12
\NameDef{@InputD-testsubs.tip}{}
\catcode`\@ = 11
\def\RecursionMacroEnd #1#2#3{% 
    #1\relax
        \def\@RecursionMacroEndNext{#2}% 
    \else
        \def\@RecursionMacroEndNext{#3}% 
    \fi
    \@RecursionMacroEndNext
}
\catcode`\@ = 12
\NameDef{@InputD-endrec.tip}{}
\catcode`\@ = 11
\def\ReplaceSubStrings #1#2#3#4{%
    \def\@ReplaceResult{#1}%
    \edef\@ReplaceMain{#2}%
    \edef\@ReplaceSub{#3}%
    \edef\@ReplaceSubRep{#4}%
    \@ReplaceSubStrings
}
\def\@ReplaceSubStrings{% 
    \RecursionMacroEnd
        {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}%
        {\@ReplaceSubStringsDo}{\@ReplaceSubStringsDone}%
}
\def\@ReplaceSubStringsDoX{%
    \def\@ReplaceSubStringsDoA ##1%
}%
\def\@ReplaceSubStringsDo{% 
    \expandafter\@ReplaceSubStringsDoX \@ReplaceSub
                                    ##2\@EndReplaceSubStrings{%
        \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}%
    }%
    \ShowX{\@ReplaceSubStringsDoA}%
    \ShowX{\@ReplaceMain}%
    \expandafter\@ReplaceSubStringsDoA\@ReplaceMain
        \@EndReplaceSubStrings
    \ShowX{\@ReplaceMain}%
    \@ReplaceSubStrings
}
\def\@ReplaceSubStringsDone{% 
    \expandafter\edef\@ReplaceResult{\@ReplaceMain}%
}
\catcode`\@ = 12
\NameDef{@InputD-restring.tip}{}
\catcode`\@ = 11
\def\StringsEqualConditional #1#2{% 
    TT\fi
    \edef\@StringsEqualOneConditional{#1}% 
    \edef\@StringsEqualTwoConditional{#2}% 
    \ifx\@StringsEqualOneConditional\@StringsEqualTwoConditional
}
\def\EmptyStringConditional #1{%
    TT\fi
    \if\StringsEqualConditional{#1}{}%
}
\def\EmptyStringConditionalISpaces #1{%
    TT\fi
    \ReplaceSubStrings{\@EmptyStringConditionalISpaces}{#1}%
        { }{}%
    \if\EmptyStringConditional
        {\@EmptyStringConditionalISpaces}%
}
\catcode`\@ = 12
\NameDef{@InputD-compst.tip}{}
\catcode`\@ = 11
\def\@EmptyRefList{}
\def\EmptyListConditional #1{%
    TT\fi
    \ifx#1\@EmptyRefList
}
\newtoks\@AppendTokOne
\newtoks\@AppendTokTwo
\def\LeftAppendElement #1#2{%
    \edef\@AppendTemp{\noexpand\\{#2}}% 
    \@AppendTokOne = \expandafter{\@AppendTemp}%
    \@AppendTokTwo = \expandafter{#1}%
    \edef#1{\the\@AppendTokOne \the\@AppendTokTwo}%
}
\def\RightAppendElement #1#2{%
    \edef\@AppendTemp{\noexpand\\{#2}}% 
    \@AppendTokOne = \expandafter{\@AppendTemp}%
    \@AppendTokTwo = \expandafter{#1}%
    \edef#1{\the\@AppendTokTwo \the\@AppendTokOne}%
}
\def\CarOfList #1#2{%
    \def\@CarTemp \\##1##2\@EndCarList{\def#2{##1}}%
    \expandafter\@CarTemp#1\@EndCarList
}
\def\CdrOfList #1#2{% 
    \def\@CdrTemp \\##1##2\@EndCdrList{\def#2{##2}}% 
    \expandafter\@CdrTemp#1\@EndCdrList
}
\def\DropFirstElementOfList #1{% 
    \if\EmptyListConditional{#1}% 
        \errhelp = {\string\DropFirstElementOfList: list is
            empty. No first element to drop.}%
        \errmessage{\string\DropFirstElementOfList: List
            \noexpand#1 is empty.}%
    \else
        \def\@DropFirstElementTemp \\##1##2\@EndCdrList{\def#1{##2}}%
        \expandafter\@DropFirstElementTemp#1\@EndCdrList
    \fi
}
\def\CarCarOfList #1#2{%
    \let\@CarCarOfListList = #1%
    \DropFirstElementOfList{\@CarCarOfListList}%
    \CarOfList{\@CarCarOfListList}{#2}
}
\def\ForEveryListElement #1#2{%
    \let\@ForEveryList = #1%
    \let\@ForEveryListElementMacro = #2%
    \@ForEveryListElement
}
\def\@ForEveryListElement{%
    \if\EmptyListConditional{\@ForEveryList}%
        \let\@ForEveryListElementNext = \relax
    \else
        \CarOfList{\@ForEveryList}{\@ForEveryListElementElement}%
        \@ForEveryListElementMacro{\@ForEveryListElementElement}%
        \DropFirstElementOfList{\@ForEveryList}%
        \let\@ForEveryListElementNext = \@ForEveryListElement
    \fi
    \@ForEveryListElementNext
}
\newif\if@MemberList
\def\MemberOfListConditional #1#2{%
    TT\fi
    \@MemberListfalse
    {%
        \def\\##1{% 
            \if\StringsEqualConditional{#2}{##1}% 
                \global\@MemberListtrue
            \fi
        }%
        #1% 
    }%
    \if@MemberList
}
\def\ReverseList #1#2{%
    \def\@ReverseListOut{}%
    \ForEveryListElement{#1}{\@ReverseList}%
    \let#2 = \@ReverseListOut
}
\def\@ReverseList #1{% 
    \LeftAppendElement{\@ReverseListOut}{#1}%
}
\def\LastElementOfList #1#2{%
    \ReverseList{#1}{#1}%
    \CarOfList{#1}{#2}%
    \ReverseList{#1}{#1}%
}
\def\DropLastElementOfList #1{%
    \ReverseList{#1}{#1}%
    \DropFirstElementOfList{#1}%
    \ReverseList{#1}{#1}%
}
\def\NumberOfListElements #1#2{% 
    \let\@NumberOfListElementsList = #1%
    \def\@NumberOfListElementsCount{#2}%
    \@NumberOfListElementsCount = 0
    \@NumberOfListElements  
}
\def\@NumberOfListElements{%
    \if\EmptyListConditional{\@NumberOfListElementsList}%
        \let\@NumberOfListElementsNext = \relax
    \else
        \advance\@NumberOfListElementsCount by 1
        \DropFirstElementOfList{\@NumberOfListElementsList}%
        \let\@NumberOfListElementsNext = \@NumberOfListElements
    \fi
    \@NumberOfListElementsNext
}
\newcount\@NumberOfListElCCount
\def\NumberOfListElementsNumConditional #1{%
    0=0\fi
    \NumberOfListElements{#1}{\@NumberOfListElCCount}%
    \ifnum\@NumberOfListElCCount
}
\def\CombineTwoLists #1#2#3{%
    \def\@CombineTwoLists{\def\@CombineTwoListsResult}%
    \expandafter\expandafter\expandafter
    \expandafter\expandafter\expandafter
    \expandafter\@CombineTwoLists
    \expandafter\expandafter\expandafter{\expandafter#1#2}%
    \let #3 = \@CombineTwoListsResult
}
\catcode`\@ = 12
\NameDef{@InputD-list-mac.tip}{}
\catcode`\@ = 11
\def\IndexLastElement #1#2{%
    \NumberOfListElements{#1}{#2}%
    \advance #2 by -1
}
\newcount\@ArrayIndexCheckCount
\def\ArrayIndexCheck #1#2{%
    \IndexLastElement{#1}{\@ArrayIndexCheckCount}%
    \ifnum\@ArrayIndexCheckCount = -1
        \errmessage{\string\ArrayIndexCheck: array \string#2
            is empty.}%
    \else
        \CheckRange{#2}{0}{\@ArrayIndexCheckCount}%
            {\string\ArrayIndexCheck: index \number#2 out
                of range in list \string#1}%
    \fi
}
\newcount\@AccessArrayElementLimit
\newcount\@AccessArrayElementCount
\def\AccessArrayElement #1#2#3{%
    \ArrayIndexCheck{#1}{#2}%
    \let\@AccessArrayElementList = #1%
    \@AccessArrayElementLimit = #2\relax
    \DoLoop{\@AccessArrayElementCount}% 
        {1}{1}{\@AccessArrayElementLimit}%
        {\DropFirstElementOfList{\@AccessArrayElementList}}%
    \CarOfList{\@AccessArrayElementList}{#3}%
}
\newcount\@ModifyArrayElementCount
\newcount\@ModifyArrayElementLimit
\def\ModifyArrayElement #1#2#3{%
    \ArrayIndexCheck{#1}{2}%
    \IndexLastElement{#1}{\@ModifyArrayElementLimit}%
    \let\@ModifyArrayList = #1%
    \def\@ModifyArrayRet{}%
    \DoLoop{\@ModifyArrayElementCount}% 
        {0}{1}{\@ModifyArrayElementLimit}%
        {%
            \CarOfList{\@ModifyArrayList}%
                {\@ModifyArrayElement}%
            \DropFirstElementOfList{\@ModifyArrayList}%
            \ifnum\@ModifyArrayElementCount = #2\relax
                \RightAppendElement{\@ModifyArrayRet}{#3}%
            \else
                \RightAppendElement
                    {\@ModifyArrayRet}%
                    {\@ModifyArrayElement}%
            \fi
        }%
    \let #1 = \@ModifyArrayRet
}
\newcount\@InsertArrayElementCount
\newcount\@InsertArrayElementCountTwo
\def\InsertArrayElement #1#2#3{%
    \ifnum\NumberOfListElementsNumConditional{#1}=0
        \errmessage{\string\InsertArrayElement: empty array}%
    \fi
    \ifnum\NumberOfListElementsNumConditional{#1}=#2
    \else
            \ArrayIndexCheck{#1}{#2}%
    \fi
    \def\@InsertArrayElementListPre{}%
    \ifnum #2>0
        \@InsertArrayElementCount = #2\relax
        \advance\@InsertArrayElementCount by -1
        \ExtractSubArray{#1}{0}{\@InsertArrayElementCount}%
            {\@InsertArrayElementListPre}%
    \fi
    \def\@InsertArrayElementListPost{}%
    \IndexLastElement{#1}{\@InsertArrayElementCount}%
    \ifnum #2 > \@InsertArrayElementCount
    \else
        \ExtractSubArray{#1}{#2}{\@InsertArrayElementCount}%
            {\@InsertArrayElementListPost}%
    \fi
    \RightAppendElement{\@InsertArrayElementListPre}{#3}%
    \CombineTwoLists
        {\@InsertArrayElementListPre}%
        {\@InsertArrayElementListPost}%
        {\@InsertArrayElementListPre}%
    \let #1 = \@InsertArrayElementListPre
}
\newcount\@DeleteArrayElementCount
\newcount\@DeleteArrayElementLimit
\def\DeleteArrayElement #1#2{%
    \ArrayIndexCheck{#1}{#2}%
    \let\@DeleteArrayElementList = #1%
    \IndexLastElement{#1}{\@DeleteArrayElementLimit}%
    \ifnum\@DeleteArrayElementLimit = -1
        \errmessage{\string\DeleteArrayElement: empty array.}%
    \fi
    \def\@DeleteArrayElementResultList{}%
    \DoLoop{\@DeleteArrayElementCount}% 
        {0}{1}{\@DeleteArrayElementLimit}%
        {%
            \CarOfList{\@DeleteArrayElementList}%
                {\@DeleteArrayElement}%
            \DropFirstElementOfList{\@DeleteArrayElementList}%
            \ifnum\@DeleteArrayElementCount = #2\relax
            \else
                \RightAppendElement
                    {\@DeleteArrayElementResultList}%
                    {\@DeleteArrayElement}%
            \fi
        }%
    \let #1=\@DeleteArrayElementResultList
}
\newcount\@DeleteArrayElementRangeCount
\newcount\@DeleteArrayElementRangeLimit
\def\DeleteArrayElementRange #1#2#3{%
    \ArrayIndexCheck{#1}{#2}%
    \ArrayIndexCheck{#1}{#3}%
    \ifnum #2>#3
        \errmessage{\string\DeleteArrayElementRange:
            first index larger than second. Makes no
            sense}%
    \fi
    \@DeleteArrayElementRangeLimit = #3\relax
    \advance\@DeleteArrayElementRangeLimit by -#2%
    \advance\@DeleteArrayElementRangeLimit by 1
    \DoLoop{\@DeleteArrayElementRangeCount}{1}{1}%
        {\@DeleteArrayElementRangeLimit}%
        {\DropArrayElement{#1}{#2}}%
}
\newcount\@ShowArrayCount
\newcount\@ShowArrayLimit
\def\ShowArray #1{%
    \wlog{\string\ShowArray: begin}%
    \IndexLastElement{#1}{\@ShowArrayLimit}%
    \ifnum\@ShowArrayLimit = -1
        \wlog{** empty array **}%
    \else
        \DoLoop{\@ShowArrayCount}{0}{1}{\@ShowArrayLimit}{%
            \AccessArrayElement{#1}{\@ShowArrayCount}%
                {\@ShowArrayElement}%
            \wlog{Index \the\@ShowArrayCount:
                "\@ShowArrayElement"}%
        }%
    \fi
    \wlog{\string\ShowArray: end}%
    \wlog{}%
}
\def\@TokenToListDoneMacro{\@TokensToListDone}%
\def\TokensToTeXList #1#2{%
    \def#1{}%
    \def\@TokensToListName{#1}%
    \@TokensToList #2\@TokensToListDone
}
\def\@TokensToList #1{%
    \def\@TokensToListMacArgOne{#1}%
    \ifx\@TokensToListMacArgOne\@TokenToListDoneMacro
        \let\@TokensToListNext = \relax
    \else
        \expandafter\RightAppendElement\@TokensToListName{#1}%
        \let\@TokensToListNext = \@TokensToList
    \fi     
    \@TokensToListNext
}
\newcount\@ExtractArrayCount
\newcount\@ExtractArrayLimit
\newif\if@ExtractCopy
\def\ExtractSubArray #1#2#3#4{%
    \ArrayIndexCheck{#1}{#2}%
    \ArrayIndexCheck{#1}{#3}%
    \ifnum #3<#2
        \errmessage{\string\ExtractSubArray: first index >
            second index, error}%
    \fi
    \def\@ExtractSubArrayResult{}%
    \IndexLastElement{#1}{\@ExtractArrayLimit}%
    \DoLoop{\@ExtractArrayCount}{0}{1}{\@ExtractArrayLimit}%
        {%
            \@ExtractCopytrue
            \ifnum\@ExtractArrayCount < #2\relax
                \@ExtractCopyfalse
            \fi
            \ifnum\@ExtractArrayCount > #3\relax
                \@ExtractCopyfalse
            \fi
            \if@ExtractCopy
                \AccessArrayElement
                    {#1}%
                    {\@ExtractArrayCount}%
                    {\@SubArrayElement}%
                \RightAppendElement
                    {\@ExtractSubArrayResult}%
                    {\@SubArrayElement}%
            \fi
        }%
    \let #4 = \@ExtractSubArrayResult
}
\catcode`\@ = 12
\NameDef{@InputD-arraymac.tip}{}
\def\ZeroBox #1{%
    \wd#1 = 0pt
    \ht#1 = 0pt
    \dp#1 = 0pt
}
\def\ZeroBoxOut #1{%
    \ZeroBox{#1}%
    \box#1%
}
\NameDef{@InputD-box-zero.tip}{}
\catcode`\@ = 11
\newbox\@PrintAtPositionBox
\def\PrintAtPosition #1#2#3#4{% 
    \setbox\@PrintAtPositionBox = \hbox{% 
        \hskip #1\relax
        \lower #2\hbox{%
            #3%
        }%
    }%
    #4 = \dp\@PrintAtPositionBox
    \ZeroBoxOut{\@PrintAtPositionBox}%
}
\catcode`\@ = 12
\def\SetUpPrintAtPosition{% 
    \nopagenumbers
    \topskip = 0pt
    \offinterlineskip
}
\NameDef{@InputD-atpos.tip}{}
\catcode`\@ = 11
\def\NewEnvironment #1{% 
    \wlog{\string\NewEnvironment: new environment #1.}% 
    \NameNewDef{@@B-#1}{% 
        \bgroup
        \def\@CurEnvName{#1}%
        \NameUse{@Begin#1}% 
    }%
    \NameNewDef{@@E-#1}{% 
        \NameUse{@End#1}% 
        \if\StringsEqualConditional{#1}{\@CurEnvName}% 
        \else
            \errmessage{Ending environment: mismatch in
                environment names: specified: #1,
                expected: \@CurEnvName}%
        \fi
        \egroup
    }%
}
\def\B #1{% 
    \NameUse{@@B-#1}% 
}
\def\E #1{% 
    \NameUse{@@E-#1}% 
}
\catcode`\@ = 12
\NameDef{@InputD-be-env.tip}{}
\catcode`\@ = 11
\newbox\@BulletBox
\setbox\@BulletBox =
    \hbox{% 
        \hskip -2.3pt
        \lower 2.5pt \hbox{$\bullet$}% 
    }
\ZeroBox{\@BulletBox}
\catcode`\@ = 12
\NameDef{@InputD-box-bul.tip}{}
\catcode`\@ = 11
\newbox\@BoxingBox
\newbox\@BaseLineLeaders
\catcode`\@ = 12
\NameDef{@InputD-box-bb.tip}{}
\newdimen\BoxRuleThickness
\BoxRuleThickness = 0.4pt
\NameDef{@InputD-box-thck.tip}{}
\catcode`\@ = 11
\newif\ifBulletAndBaseLine
\BulletAndBaseLinetrue
\def\RulesOutSide #1#2#3{% 
    {%
        \setbox 0 = \hbox{%
            \ifBulletAndBaseLine
                \copy\@BulletBox
            \fi
            \hskip -\BoxRuleThickness
            \vrule width \BoxRuleThickness height #1 depth #2% 
            \hskip #3%
            \vrule width \BoxRuleThickness height #1 depth #2%
            \dimen0 = #3% 
            \advance \dimen0 by 2\BoxRuleThickness
            \hskip -\dimen0
            \dimen2 = #1%
            \advance\dimen2 by \BoxRuleThickness
            \vrule width \dimen0 height \dimen2 depth -#1% 
            \hskip -\dimen0
            \dimen2 = #2% 
            \advance\dimen2 by \BoxRuleThickness
            \vrule width \dimen0 height -#2 depth \dimen2
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\def\RulesInSide #1#2#3{% 
    {%
        \setbox 0 = \hbox{%
            \ifBulletAndBaseLine
                \copy\@BulletBox
            \fi
            \vrule width \BoxRuleThickness height #1 depth #2% 
            \hskip #3% 
            \hskip -\BoxRuleThickness
            \hskip -\BoxRuleThickness
            \vrule width \BoxRuleThickness height #1 depth #2% 
            \hskip -#3% 
            \dimen2 = #1% 
            \advance\dimen2 by -\BoxRuleThickness
            \vrule width #3 height #1 depth -\dimen2
            \hskip -#3% 
            \dimen2 = #2% 
            \advance\dimen2 by -\BoxRuleThickness
            \vrule width #3 height -\dimen2 depth #2% 
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\def\RulesOnSide #1#2#3{% 
    {%
        \setbox 0 = \hbox{% 
            \ifBulletAndBaseLine
                \copy\@BulletBox
            \fi
            \hskip -0.5\BoxRuleThickness
            \vrule width \BoxRuleThickness height #1 depth #2% 
            \hskip #3% 
            \hskip -\BoxRuleThickness
            \vrule width \BoxRuleThickness height #1 depth #2% 
            \hskip -#3% 
            \hskip -\BoxRuleThickness
            \dimen0 = #3% 
            \advance\dimen0 by \BoxRuleThickness
            \dimen2 = #1% 
            \advance\dimen2 by 0.5\BoxRuleThickness
            \dimen4 = #1% 
            \advance\dimen4 by -0.5\BoxRuleThickness
            \dimen4 = -\dimen4
            \vrule width \dimen0 height \dimen2 depth \dimen4
            \hskip -\dimen0
            \dimen2 = #2% 
            \advance\dimen2 by -0.5\BoxRuleThickness
            \dimen2 = -\dimen2
            \dimen4 = #2% 
            \advance\dimen4 by 0.5\BoxRuleThickness
            \vrule width \dimen0 height \dimen2 depth \dimen4
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\catcode`\@ = 12
\NameDef{@InputD-boxing5.tip}{}
\catcode`\@ = 11
\def\BoxingE #1{%
    \hbox{% 
        \setbox\@BoxingBox = #1%
        \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{%
            \xleaders\hbox to 4pt{%
                \hskip 1pt
                \vrule depth 0.4pt height 0.4pt width 2pt
                \hfil
            }%
            \hfil
        }%
        \ZeroBox{\@BaseLineLeaders}% 
        \ifBulletAndBaseLine
            \box\@BaseLineLeaders
        \fi
        \RulesOnSide
            {\ht\@BoxingBox}%
            {\dp\@BoxingBox}% 
            {\wd\@BoxingBox}% 
        \box\@BoxingBox
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-boxing6.tip}{}
\catcode`\@ = 11
\newbox\@VcenterXBox
\newdimen\@VcenterDimen
\def\VcenterX{% 
    \hbox\bgroup
        \mathsurround = 0pt
    \futurelet\@VCenterXToken\@VCenterXA
}
\def\@VCenterXA{%
    \ifx\@VCenterXToken\bgroup
        \let\@VcenterXNext = \@VcenterXOrdinary
    \else
        \ifx\@VCenterXToken t%
            \let\@VcenterXNext = \@VcenterXTo
        \else
            \let\@VcenterXNext = \@VcenterXSpread
        \fi
    \fi
    \@VcenterXNext
}
\def\@VcenterXOrdinary{%
    \def\@VcenterCommand{\vcenter}%
    \afterassignment\@VcenterXB
    \let\@VcenterDrop =
}
\def\@VcenterXTo to{% 
    \def\@VcenterCommand{to}%
    \afterassignment\@VcenterXToSpread
    \@VcenterDimen =
}
\def\@VcenterXSpread spread{% 
    \def\@VcenterCommand{spread}%
    \afterassignment\@VcenterXToSpread
    \@VcenterDimen =
}
\def\@VcenterXToSpread{%
    \edef\@VcenterCommand{% 
        \vcenter\@VcenterCommand \the\@VcenterDimen
    }%
    \afterassignment\@VcenterXB
    \let\@VcenterDrop =
}
\def\@VcenterXB{%
    \setbox\@VcenterXBox = \hbox\bgroup
        $%
        \@VcenterCommand\bgroup
    \aftergroup\@VcenterXC
}
\def\@VcenterXC{%
    $%
    \egroup
    \box\@VcenterXBox
    \egroup
}
\catcode`\@ = 12
\NameDef{@InputD-vcentx.tip}{}
\catcode`\@ = 11
\newdimen\@BoxRDimen
\newbox\@BoxRBox
\newcount\@BoxRNumber
\def\HboxR{%
    \hbox\bgroup
    \def\@WhichBox{\hbox}%
    \def\@WhichBoxDimen{}%
    \@BoxRaa
}
\def\VboxR{%
    \vbox\bgroup
    \def\@WhichBox{\vbox}%
    \def\@WhichBoxDimen{}%
    \@BoxRaa
}
\def\VtopR{%
    \vtop\bgroup
    \def\@WhichBox{\vtop}%
    \def\@WhichBoxDimen{}%
    \@BoxRaa
}
\def\VcenterXR{%
    \hbox\bgroup
    \def\@WhichBox{\VcenterX}%
    \def\@WhichBoxDimen{}%
    \@BoxRaa
}
\def\BoxR{%
    \hbox\bgroup
    \def\@WhichBox{\hbox}%
    \def\@WhichBoxDimen{}%
    \afterassignment\@BoxRB
    \@BoxRNumber =
}
\def\@BoxRB{%
    \HboxR{\box\@BoxRNumber}% 
    \egroup
}
\def\CopyR{%
    \hbox\bgroup
    \def\@WhichBox{\hbox}%
    \def\@WhichBoxDimen{}%
    \afterassignment\@CopyRbb
    \@BoxRNumber =
}
\def\@CopyRbb{%
    \HboxR{\copy\@BoxRNumber}% 
    \egroup
}
\def\@BoxRaa{% 
    \futurelet\@BoxRSymbol\@BoxRA
}
\def\@BoxRA{%
    \ifx\@BoxRSymbol\bgroup
        \let\@BoxitNext = \@BoxRb
    \else
        \if\@BoxRSymbol t% 
            \let\@BoxitNext = \@BoxRbTo
        \else
            \let\@BoxitNext = \@BoxRbSpread
        \fi
    \fi
    \@BoxitNext
}
\def\@BoxRb{%
    \afterassignment\@BoxRbTwo
    \let\@BoxDrop =
}
\def\@BoxRbTwo{% 
    \setbox\@BoxRBox = \expandafter\@WhichBox\@WhichBoxDimen\bgroup
    \aftergroup\@BoxRbThree
}
\def\@BoxRbThree{% 
    \BoxingE{\box\@BoxRBox}% 
    \egroup
}
\def\@BoxRbTo to{%
    \def\@WhichBoxDimen{to}% 
    \afterassignment\@BoxRbMoreSpreadTo
    \@BoxRDimen =
}
\def\@BoxRbSpread spread{%
    \def\@WhichBoxDimen{spread}%
    \afterassignment\@BoxRbMoreSpreadTo
    \@BoxRDimen =
}
\def\@BoxRbMoreSpreadTo{%
    \edef\@WhichBoxDimen{\@WhichBoxDimen \the\@BoxRDimen}% 
    \afterassignment\@BoxRbTwo
    \let\@BoxDrop =
}
\catcode`\@ = 12
\NameDef{@InputD-boxing7.tip}{}
\def\BoxLarger #1#2{% 
    \vbox{% 
        \vskip #2
        \hbox{% 
            \hskip #2%
            \hbox{#1}% 
            \hskip #2%
        }%
        \vskip #2
    }% 
}
\NameDef{@InputD-box-larg.tip}{}
\def\EmptyBox #1#2#3{% 
    \hbox{% 
        \setbox 0 = \hbox{}% 
        \ht0 = #1% 
        \dp0 = #2% 
        \wd0 = #3% 
        \box 0% 
    }% 
}
\NameDef{@InputD-emptybox.tip}{}
\catcode`\@ = 11
\newbox\@EmptyRuledBox
\def\EmptyRuledBox #1#2#3{%
    \setbox\@EmptyRuledBox = \hbox{}%
    \ht\@EmptyRuledBox = #1\relax
    \dp\@EmptyRuledBox = #2\relax
    \wd\@EmptyRuledBox = #3\relax
    \HboxR{\box\@EmptyRuledBox}%
}
\catcode`\@ = 12
\NameDef{@InputD-emprubox.tip}{}
\def\EliminateRuledBoxes{%
    \let\HboxR = \hbox
    \let\VboxR = \vbox
    \let\VtopR = \vtop
    \let\VcenterXR = \VcenterX
    \let\BoxR = \box
    \let\CopyR = \copy
}
\NameDef{@InputD-boxrelim.tip}{}
\def\LineR{\HboxR to \hsize}
\def\LeftlineR   #1{\LineR{#1\hss}}
\def\RightlineR  #1{\LineR{\hss#1}}
\def\CenterlineR #1{\LineR{\hss#1\hss}}
\NameDef{@InputD-linesr.tip}{}
\NameDef{@InputD-box-mac.tip}{}
\catcode`\@ = 11
\newdimen\@BigLetDown
\newdimen\@BigLetDimen
\newcount\@BigLetCount
\newbox\@BigLetBox
\newdimen\BigLetSep
\BigLetSep = 2pt
\newdimen\BigLetH
\BigLetH = 2pt
\def\BigLetPar #1{%
    \par
    \setbox\@BigLetBox = \hbox{#1\hskip\BigLetSep}%
    \setbox\@BigLetBox = \vtop{%
        \dimen0 = \baselineskip
        \offinterlineskip
        \hbox{}
        \vskip -0.7\dimen0
        \box\@BigLetBox
        \vbox to \BigLetH{}
    }%
    \@BigLetDimen = \dp\@BigLetBox
    \advance\@BigLetDimen by 0.7\baselineskip
    \advance\@BigLetDimen by 1.0\baselineskip
    \divide\@BigLetDimen by \baselineskip
    \@BigLetCount = \@BigLetDimen
    \dp\@BigLetBox = 0pt
    \hangafter = -\@BigLetCount
    \hangindent = \wd\@BigLetBox
    \noindent
    \hskip -\hangindent
    \box \@BigLetBox
    \ignorespaces
}
\catcode`\@ = 12
\NameDef{@InputD-bletpar.tip}{}
\def\BoxingA #1{% 
    \vbox{%
        \hrule
        \hbox{%
            \vrule
            #1% 
            \vrule
        }%
        \hrule
    }%
}
\NameDef{@InputD-boxing1.tip}{}

\def\BoxingB #1{%
    \vbox{%
        \hrule height \BoxRuleThickness
        \hbox{% 
            \vrule width \BoxRuleThickness
            #1%
            \vrule width \BoxRuleThickness
        }%
        \hrule height \BoxRuleThickness
    }%
}
\NameDef{@InputD-boxing2.tip}{}
\catcode`\@ = 11
\def\BoxingC #1{%
    \vbox{%
        \hrule height \BoxRuleThickness
        \hbox{%
            \vrule width \BoxRuleThickness
            \copy\@BulletBox
            #1% 
            \vrule width \BoxRuleThickness
        }%
        \hrule height \BoxRuleThickness
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-boxing3.tip}{}
\catcode`\@ = 11
\def\BoxingD #1{%
    \vbox{%
        \setbox\@BoxingBox = #1%
        \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{%
            \xleaders\hbox to 4pt{%
                \hskip 1pt
                \vrule depth 0.4pt height 0.4pt width 2pt
                \hfil
                }%
            \hfil
        }%
        \ZeroBox{\@BaseLineLeaders}% 
        \hrule height \BoxRuleThickness
        \hbox{%
            \vrule width \BoxRuleThickness
            \copy\@BulletBox
            \box\@BaseLineLeaders
            \box\@BoxingBox
            \vrule width \BoxRuleThickness
        }%
        \hrule height \BoxRuleThickness
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-boxing4.tip}{}
\catcode`\@ = 11
\def\newcountOF{\alloc@0\count\countdef\insc@unt}
\def\newdimenOF{\alloc@1\dimen\dimendef\insc@unt}
\def\newskipOF{\alloc@2\skip\skipdef\insc@unt}
\def\newmuskipOF{\alloc@3\muskip\muskipdef\@cclvi}
\def\newboxOF{\alloc@4\box\chardef\insc@unt}
\def\newhelpOF#1#2{\newtoksOF#1#1\expandafter{\csname#2\endcsname}}
\def\newtoksOF{\alloc@5\toks\toksdef\@cclvi}
\def\newreadOF{\alloc@6\read\chardef\sixt@@n}
\def\newwriteOF{\alloc@7\write\chardef\sixt@@n}
\def\newfamOF{\alloc@8\fam\chardef\sixt@@n}
\def\newifOF#1{\count@\escapechar \escapechar\m@ne
  \expandafter\expandafter\expandafter
   \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
  \expandafter\expandafter\expandafter
   \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
  \@if#1{false}\escapechar\count@} % the condition starts out false
\def\newlanguageOF{\alloc@9\language\chardef\@cclvi}
\catcode`\@ = 12
\NameDef{@InputD-newoutfr.tip}{}
\edef\FourSpaces{\space\space\space\space}
\edef\EightSpaces{\FourSpaces\FourSpaces}
\NameDef{@InputD-mspaces.tip}{}
\catcode`\@ = 11
\newcount\@BoxRQStart
\newcount\@BoxRQEnd
\newcount\@BoxRQLength
\newcount\@BoxRQCount
\newcount\@BoxRQLast
\newcount\@BoxRQFirst
\def\@LoadBRQCounters #1{%
    \if\NameDefinedConditional{@BoxRQ-Start-#1}%
        \@BoxRQStart = \NameUse{@BoxRQ-Start-#1}%
        \@BoxRQEnd   = \NameUse{@BoxRQ-End-#1}%
        \@BoxRQLength= \NameUse{@BoxRQ-Length-#1}%
        \@BoxRQCount = \NameUse{@BoxRQ-Count-#1}%
        \@BoxRQLast  = \NameUse{@BoxRQ-Last-#1}%
        \@BoxRQFirst = \NameUse{@BoxRQ-First-#1}%
    \else
        \errmessage{\string\@LoadBRQCounters: no queue "#1".}%
    \fi
}
\def\@RestoreBRQCounters #1{%
    \NameXdef{@BoxRQ-Start-#1}{\the\@BoxRQStart}%
    \NameXdef{@BoxRQ-End-#1}{\the\@BoxRQEnd}%
    \NameXdef{@BoxRQ-Length-#1}{\the\@BoxRQLength}%
    \NameXdef{@BoxRQ-Count-#1}{\the\@BoxRQCount}%
    \NameXdef{@BoxRQ-Last-#1}{\the\@BoxRQLast}%
    \NameXdef{@BoxRQ-First-#1}{\the\@BoxRQFirst}%
}
\newcount\@BoxRQTempA           \newcount\@BoxRQTempB
\def\SetUpBoxRegisterQueue #1#2{% 
    \@BoxRQStart = \count14
    \advance\@BoxRQStart by 1
    \@BoxRQTempA = \@BoxRQStart
    \DoLoop{\@BoxRQTempB}{1}{1}{#2}% 
        {\newboxOF\@WhoCaresBoxRegisterIndexA
        \advance\@BoxRQTempA by 1 }
    \advance\@BoxRQTempA by -1
    \@BoxRQEnd = \@BoxRQTempA
    \wlog{\string\SetUpBoxRegisterQueue: queue "#1."}%
    \wlog{\EightSpaces Box registers
        \the\@BoxRQStart\space through
        \the\@BoxRQEnd\space allocated.}%
    \wlog{\EightSpaces (#2 registers).}%
    \@BoxRQCount = 0
    \@BoxRQLength = #2
    \@RestoreBRQCounters{#1}%
}
\def\AddBoxToQueue #1#2{% 
    \@LoadBRQCounters{#1}%
    \wlog{\string\AddBoxToQueue: length: \the\@BoxRQLength,
        count: \the\@BoxRQCount}%
    \ifnum\@BoxRQCount  = \@BoxRQLength
        \errmessage{\string\AddBoxToQueue: Queue "#1" is full.}% 
    \else
        \ifnum\@BoxRQCount = 0
            \@BoxRQLast  = \@BoxRQStart
            \@BoxRQFirst = \@BoxRQStart
        \fi
        \global\setbox\@BoxRQLast = #2%
        \advance\@BoxRQLast by 1
        \ifnum\@BoxRQLast > \@BoxRQEnd
            \@BoxRQLast = \@BoxRQStart
        \fi
        \advance\@BoxRQCount by 1
        \@RestoreBRQCounters{#1}%
    \fi
}
\def\CopyFirstElementFromQueue #1#2{% 
    \@LoadBRQCounters{#1}%
    \ifnum\@BoxRQCount = 0
        \errmessage{\string\CopyFirstElementFromQueue: empty "#1"}%
    \else
        \setbox #2 = \copy\@BoxRQFirst
    \fi
}
\def\DropFirstBoxOfQueue #1{% 
    \@LoadBRQCounters{#1}%
    \ifnum\@BoxRQCount = 0
        \errmessage{\string\DropFirstBoxOfQueue: "#1" is empty.}% 
    \else
        \advance\@BoxRQCount by -1
        \ifnum\@BoxRQCount = 0
        \else
            \advance\@BoxRQFirst by 1
            \ifnum\@BoxRQFirst > \@BoxRQEnd
                \@BoxRQFirst = \@BoxRQStart
            \fi
        \fi
    \fi
    \@RestoreBRQCounters{#1}%
}
\def\EmptyBoxRegisterQueueConditional #1{% 
    TT\fi
    \@LoadBRQCounters{#1}%
    \ifnum\@BoxRQCount = 0
}
\catcode`\@ = 12
\NameDef{@InputD-boxrqu.tip}{}
\def\CenterlineP #1{%
    \centerline{#1\unskip .}
}
\NameDef{@InputD-centerlp.tip}{}
\def\BeginCenter{%
    \par
    \begingroup
    \rightskip = 1in plus 4em
    \leftskip = \rightskip
    \spaceskip = .3333em
    \xspaceskip = .5em
    \parfillskip = 0pt
    \noindent
}
\def\EndCenter{%
    \par
    \endgroup
}
\NameDef{@InputD-centerng.tip}{}
\def\CenterOrParagraph #1{% 
    {% 
        \par
        \setbox 0 = \hbox{#1}%
        \ifdim\wd0 > \hsize
            \noindent #1\par
        \else
            \centerline{\box0}%
        \fi
    }% 
}
\NameDef{@InputD-centpar.tip}{}
\def\hboxE #1{%
    {% 
        \setbox0 = \hbox{#1}% 
        \setbox1 = \hbox{}% 
        \wd1 = \wd0
        \ht1 = \ht0
        \dp1 = \dp0
        \HboxR{\box 1}%
    }% 
}
\NameDef{@InputD-charbo.tip}{}
\catcode`\@ = 11
\newdimen\@AdvanceBoxD
\def\AdvanceBoxDimension #1#2{% 
    \@AdvanceBoxD = #1\relax
    \advance\@AdvanceBoxD by #2\relax
    #1 = \@AdvanceBoxD
}
\catcode`\@ = 12
\NameDef{@InputD-chboxd.tip}{}
\catcode`\@ = 11
\def\ClearBoxReg #1{% 
    \setbox #1 = \box\voidb@x
}
\catcode`\@ = 12
\NameDef{@InputD-clearb.tip}{}
\def\InitialCollectInfo{% 
    \gdef\Collect{}% 
}
\InitialCollectInfo
\long\def\AddInfo #1{% 
    \xdef\Collect{\Collect #1}% 
}
\NameDef{@InputD-collect.tip}{}
\newtoks\CollectTokens
\CollectTokens = {}
\def\AddInfo #1{% 
    \expandafter\expandafter\expandafter
            \CollectTokens\expandafter{% 
        \the\CollectTokens #1}
}
\NameDef{@InputD-coltok.tip}{}
\catcode`\@ = 11
\def\MakeOther #1{\catcode `#1 = 12 }
\def\MakeActive #1{\catcode `#1 = \active\relax}
\def\MakeEolActive{\MakeActive{\^^M}}
\def\MakeTabActive{\MakeActive{\^^I}}
\def\MkOthersNoCB{%
    \MakeOther{\ }%
    \MakeOther{\\}%
    \MakeOther{\$}%
    \MakeOther{\&}%
    \MakeOther{\#}%
    \MakeOther{\^}\MakeOther{\^^K}%
    \MakeOther{\_}\MakeOther{\^^A}%
    \MakeOther{\%}%
    \MakeOther{\~}%
}
\def\MkOthers{%
    \MakeOther{\{}%
    \MakeOther{\}}%
    \MkOthersNoCB
}
{\catcode`\^^I = 11
\gdef\@TabAsLiteral{^^I}% 
}
\catcode`\[ = 1
\catcode`\] = 2
[
    \catcode`\{ = 12
    \catcode`\} = 12
    \gdef\LeftBraceText[{]
    \gdef\RightBraceText[}]
]
\catcode`\[ = 12
\catcode`\] = 12
\def\AcuteAccentText{\'{}}
\def\AcuteAccentTt{{\tt\AcuteAccentText}}
\def\AmpersandText{\char`\&}
\def\AmpersandTt{{\tt\AmpersandText}}
\def\ApostropheText{'{}}
\def\ApostropheTt{{\tt\ApostropheText}}
\def\AtSignText{@}
\def\AtSignTt{{\tt\AtSignText}}
{% 
    \catcode`| = 0
    |catcode`\\ = 12
    |gdef|Backslash{\}
}
\def\BackslashTt{{\tt\char`\\}}
\def\CaretText{\char`\^{}}
\def\CaretTt{{\tt\CaretText}}
\def\DollarSignText{\$}
\def\DollarSignTt{{\tt\DollarSignText}}
{
    \catcode`\# = 12
    \gdef\PoundSign{#}
}
\def\pounds{{\it\char'44 }}
\def\DoubleQuoteTt{{\tt"}}
\def\EmDashText{{}---{}}
\def\EmDashTt{{\tt\EmDashText}}
\def\EnDashText{{}--{}}
\def\EnDashTt{{\tt\EnDashText}}
\def\ExclamationPointText{!}
\def\ExclamationPointTt{{\tt\ExclamationPointText}}
\def\GreaterThanSign{>}
\def\GreaterThanSignTt{{\tt\GreaterThanSign}}
\def\HyphenText{-}
\def\HyphenTt{{\tt\HyphenText}}
\def\OpenExclamationText{>}
\def\OpenExclamationTt{{\tt\OpenExclamationText}}
\def\LeftBraceTt{{\tt\LeftBraceText}}
\def\LeftBracketText{[}
\def\LeftBracketTt{{\tt\LeftBracketText}}
\def\LeftParenthesisText{(}
\def\LeftParenthesisTt{{\tt\LeftParenthesisText}}
\def\LeftQuoteText{`{}}
\def\LeftQuoteTt{{\tt\LeftQuoteText}}
\def\LessThanSign{<}
\def\LessThanSignTt{{\tt\LessThanSign}}
\def\MinusSignText{-}
\def\MinusSignTt{{\tt\MinusSignText}}
\def\OpenQuestionText{<}
\def\OpenQuestionTt{{\tt\OpenQuestionText}}
\def\PlusSignText{+}
\def\PlusSignTt{{\tt\PlusSignText}}
\def\PercentSignText{\%}
\def\PercentSignTt{{\tt\PercentSignText}}
{
    \catcode`\% = 12
    \gdef\PercentSignPure{%}
}
\def\PeriodText{.}
\def\PeriodTt{{\tt\PeriodText}}
\def\PoundSignText{\#}
\def\PoundSignTt{{\tt\PoundSignText}}
\def\QuestionMarkText{?}
\def\QuestionMarkTt{{\tt\QuestionMarkText}}
\def\RightBraceTt{{\tt\RightBraceText}}
\def\RightBracketText{]}
\def\RightBracketTt{{\tt\RightBracketText}}
\def\RightQuoteText{'{}}
\def\RightQuoteTt{{\tt\RightQuoteText}}
\def\RightParenthesisText{)}
\def\RightParenthesisTt{{\tt\RightParenthesisText}}
\def\SpaceText{ }
\def\VisibleSpaceTt{{\tt\char"20}}
\def\TildeText{\char`\~{}}
\def\TildeTt{{\tt\TildeText}}
\def\UnderscoreText{\char`\_}
\def\UnderscoreTt{{\tt\UnderscoreText}}
\def\VerbControlSpace{\ }
\catcode`\@ = 12
\NameDef{@InputD-verb-bas.tip}{}
\catcode`\@ = 11
\newread\@FileExistsS
\newif\if@FileExistsAnswer
\def\FileExistsConditional #1{% 
    TT\fi
    \openin\@FileExistsS = #1
    \ifeof\@FileExistsS
        \@FileExistsAnswerfalse
    \else
        \closein\@FileExistsS
        \@FileExistsAnswertrue
    \fi
    \if@FileExistsAnswer
}
\catcode`\@ = 12
\NameDef{@InputD-fexist.tip}{}
\catcode`\@ = 11
\newcount\@CompareFilesResult
\newread\@ReadCompareOne
\newread\@ReadCompareTwo
\def\CompareFilesConditional #1#2{% 
    TT\fi
    \if\FileExistsConditional{#1}%
    \else
        \errmessage{\string\CompareFilesConditional: first file "#1"
            does not exist.}% 
    \fi
    \if\FileExistsConditional{#2}%
    \else
        \errmessage{\string\CompareFilesConditional: second file "#2"
            does not exist.}% 
    \fi
    \global\@CompareFilesResult = 0
    \begingroup
    \MkOthers
    \openin\@ReadCompareOne = #1
    \openin\@ReadCompareTwo = #2
    \@CompareFiles
}

\def\@CompareFiles{% 
    \read\@ReadCompareOne to \@CompareOneString
    \read\@ReadCompareTwo to \@CompareTwoString
    \ifeof\@ReadCompareOne
        \ifeof\@ReadCompareOne
            \global\@CompareFilesResult = 1
        \else
            \global\@CompareFilesResult = 2
        \fi
    \else
        \ifeof\@ReadCompareOne
            \global\@CompareFilesResult = 2
        \else
            \ifx\@CompareOneString\@CompareTwoString
            \else
                \global\@CompareFilesResult = 2
            \fi
        \fi
    \fi
    \RecursionMacroEnd
        {\ifnum \@CompareFilesResult = 0\relax}% 
        {\@CompareFiles}{\@EndCompareFiles}% 
}
\def\@EndCompareFiles{% 
    \endgroup
    \closein\@ReadCompareOne
    \closein\@ReadCompareTwo
    \ifnum\@CompareFilesResult = 1
}
\catcode`\@ = 12
\NameDef{@InputD-comfiles.tip}{}
\catcode`\@ = 11
\newwrite\GenericOStream
\newif\if@GenericOStreamOpen
\@GenericOStreamOpenfalse
\def\OpenGenericOStream #1{%
    \if@GenericOStreamOpen
        \errmessage{\string\OpenGenericOStream: generic
            output stream currently open.}%
    \else
        \global\@GenericOStreamOpentrue
        \immediate\openout\GenericOStream = #1%
    \fi 
}
\def\CloseGenericOStream{%
    \if@GenericOStreamOpen
        \global\@GenericOStreamOpenfalse
        \immediate\closeout\GenericOStream
    \else
        \errhelp{Stream not in use.}%
        \errmessage{\string\CloseGenericOStream:
            stream is NOT open for output.}%
    \fi 
}
\catcode`\@ = 12
\NameDef{@InputD-genostr.tip}{}
\catcode`\@ = 11
\newread\@StringsEqualConditionalCatInput
\def\StringsEqualConditionalCat #1#2{% 
    TT\fi
    \edef\@StringsEqualOneConditionalCat{#1}% 
    \edef\@StringsEqualTwoConditionalCat{#2}% 
    \OpenGenericOStream{compst.tmp}%
    \immediate\write\GenericOStream{%
        \@StringsEqualOneConditionalCat{#1}%
    }%
    \immediate\write\GenericOStream{%
        \@StringsEqualTwoConditionalCat{#1}%
    }%
    \CloseGenericOStream
    \openin\@StringsEqualConditionalCatInput = compst.tmp
    \read\@StringsEqualConditionalCatInput to
        \@StringsEqualOneConditionalCatR
    \read\@StringsEqualConditionalCatInput to
        \@StringsEqualTwoConditionalCatR
    \closein\@StringsEqualConditionalCatInput
    \ifx
        \@StringsEqualOneConditionalCatR
        \@StringsEqualTwoConditionalCatR
}
\catcode`\@ = 12
\NameDef{@InputD-compstca.tip}{}
\catcode`\@ = 11
\newif\if@LetterConditional
\newcount\@LetterConditionalCounter
\def\@LetterConditional #1#2;{%
    \@LetterConditionalCounter = `#1\relax
}
\def\LetterConditional #1{%
    TT\fi
    \@LetterConditionalfalse
    \edef\@LetterConditionalString{#1}%
    \expandafter\@LetterConditional\@LetterConditionalString ;
    \if\InRangeConditional{\@LetterConditionalCounter}{`\a}{`\z}%
        \@LetterConditionaltrue
    \fi
    \if\InRangeConditional{\@LetterConditionalCounter}{`\A}{`\Z}%
        \@LetterConditionaltrue
    \fi
    \if@LetterConditional       
}
\catcode`\@ = 12
\NameDef{@InputD-condltr.tip}{}
\catcode`\@ = 11
\def\@TestTrail #1 #2\@Del{% 
    \def\@RemTspTemp{#1}%
}
\def\RemTsp #1#2{%
    \edef\@RemTspTempOne{#2#2 }% 
    \expandafter\@TestTrail\@RemTspTempOne\@Del
    \if\StringsEqualConditional{#2#2}{\@RemTspTemp}% 
        \def#1{#2}% 
    \else
        \edef\@RemTspTempA{\noexpand\edef\noexpand#1{\@RemTspTemp}}%
        \@RemTspTempA
    \fi
}
\def\@TestLead #1 #2\@Del{\def\@RemLspOne{#1}}
\def\RemLsp #1#2{%
    \edef\@TempRemLsp{#2#2\space}%
    \expandafter\@TestLead\@TempRemLsp\@Del
    \if\EmptyStringConditional{\@RemLspOne}% 
        \expandafter\@RemLspThree #2\@Del{#1}% 
    \else
        \def#1{#2}%
    \fi
}
\edef\@RemLspTwo{% 
    \def\noexpand\@RemLspThree\space ##1\noexpand\@Del##2{% 
        \def##2{##1}% 
    }% 
}
\@RemLspTwo
\catcode`\@ = 12
\NameDef{@InputD-remtlsp.tip}{}
\newcount\StringLengthResult
\catcode`\@ = 11
\newbox\@StringLengthBoxA
\newbox\@StringLengthBoxB
\def\StringLength #1{% 
    \setbox\@StringLengthBoxA = \hbox{\tt #1}% 
    \setbox\@StringLengthBoxB = \hbox{\tt A}% 
    \StringLengthResult = \wd\@StringLengthBoxA
    \divide\StringLengthResult by \wd\@StringLengthBoxB
}
\catcode`\@ = 12
\NameDef{@InputD-strleng.tip}{}
\catcode`\@ = 11
\def\ConvertArgsToListAndAppend #1#2{% 
    \def\@Co{#1}%
    \@ItemRec #2,\@Delimiter
}
\def\@ItemRec #1,{% 
    \RemLsp{\@ItemTemp}{#1}% 
    \expandafter\RightAppendElement\@Co{\@ItemTemp}% 
    \futurelet\@ItemRecTok\@ItemRecOne
}
\def\@ItemRecOne{%
    \RecursionMacroEnd{\ifx\@ItemRecTok\@Delimiter}% 
                     {\@ItemRecEnd}{\@ItemRec}% 
}
\def\@ItemRecEnd\@Delimiter{}
\catcode`\@ = 12
\NameDef{@InputD-conval.tip}{}
\catcode`\@ = 11
\def\arabic #1{\number#1}
\def\roman #1{%
    \romannumeral #1%
}
\def\Roman #1{%
    \ifcase #1\or
        I\or II\or III\or IV\or V\or
        VI\or VII\or VIII\or IX\or X\or
        XI\or XII\or XIII\or XIV\or XV\or
        XVI\or XVII\or XVIII\or XIX\or XX\or
        XXI\or XXII\or XXIII\or XXIV\or XV%
    \else
        \errmessage{\string\Roman: argument \number#1 out
            of range, larger than 25.}%
    \fi
}
\def\alph #1{%
    \ifcase #1%
        \or a\or b\or c\or d\or e\or f\or g\or h\or i% 
    \else
        \@Morealph{#1}%
    \fi
}
\def\@Morealph #1{%
    \ifcase #1%
        \or  \or  \or  \or  \or  \or  \or  \or  \or
        \or j\or k\or l\or m\or n\or o\or p\or q\or r%
        \or s\or t\or u\or v\or w\or x\or y\or z%
    \else
        \errmessage{\string\@Morealph: argument too large.}%
    \fi
}
\def\Alph #1{%
    \ifcase #1%
    \or A\or B\or C\or D\or E\or F\or G\or H\or I%
    \else
        \@MoreAlph{#1}%
    \fi
}
\def\@MoreAlph #1{%
    \ifcase #1%
        \or  \or  \or  \or  \or  \or  \or  \or  \or
        \or J\or K\or L\or M\or N\or O\or P\or Q\or R%
        \or S\or T\or U \or V\or W\or X\or Y\or Z%
    \else
        \errmessage{\string\@MoreAlph: argument too large.}%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-printco.tip}{}
\catcode`\@ = 11
\def\NewCounter #1#2#3#4{%
    \wlog{\string\NewCounter: allocating new counter "#1."}%
    \if\NameDefinedConditional{@C-#1}%
        \errmessage{\string\NewCounter: counter "#1" was
            allocated previously.}% 
    \fi
    \expandafter\newcountOF\csname @C-#1\endcsname
    \ReassignCounter{#1}{#2}{#3}{#4}%
    \NameDef{@ResetC-#1}{}% 
}
\def\ReassignCounter #1#2#3#4{%
    \if\NameDefinedConditional{@C-#1}%
    \else
        \errmessage{\string\ReassignCounter: counter "#1"
            not defined before.}% 
    \fi
    \NameDef{@TheC-#1}{% 
        \expandafter\expandafter\expandafter#2% 
        \expandafter{\csname @C-#1\endcsname}% 
    }% 
    \NameDef{@TheArabicC-#1}{% 
        \expandafter\the\csname @C-#1\endcsname 
    }% 
    \NameDef{@PriC-#1}{#3}% 
    \NameDef{@RefC-#1}{#4}%
}
\def\TheCounter #1{% 
    \NameUse{@TheC-#1}% 
}
\def\TheArabicCounter #1{% 
    \NameUse{@TheArabicC-#1}% 
}
\def\PrintCounter #1{% 
    \NameUse{@PriC-#1}% 
}
\def\RefCounter #1{% 
    \NameUse{@RefC-#1}% 
}
\let\RefCounterTwo = \RefCounter
\def\CounterToRegister #1#2{%
    #1 = \csname @C-#2\endcsname\relax
}
\def\AddCounterToResetList #1#2{% 
    {% 
        \def\@ResetCounter{\noexpand\@ResetCounter}% 
        \expandafter\xdef\csname @ResetC-#2\endcsname{% 
            \csname @ResetC-#2\endcsname\@ResetCounter{#1}% 
        }% 
    }% 
}
\def\StepCounter #1{% 
    \global\expandafter\advance\csname @C-#1\endcsname by 1
    \NameUse{@ResetC-#1}% 
}
\def\SetCounter #1#2{% 
    \global\expandafter\csname @C-#1\endcsname = #2\relax
}
\def\AssignCounterToReg #1#2{%
    #2 = \expandafter\csname @C-#1\endcsname
    \relax
}
\def\@ResetCounter #1{% 
    \global\csname @C-#1\endcsname = 0
}
\catcode`\@ = 12
\NameDef{@InputD-counters.tip}{}
\newcount\ReturnNumberOfLinesInFile
\catcode`\@ = 11
\newcount\@CharCodeNumberOfLines
{
    \catcode`\^^M = \active % 
    \gdef\@SetUpLineCounting{%
        \gdef
            {\global\advance\ReturnNumberOfLinesInFile by 1 }% 
    }% 
}
\def\NumberOfLinesInFile #1{% 
    \begingroup
        \global\ReturnNumberOfLinesInFile = 0
        \DoLoop{\@CharCodeNumberOfLines}{0}{1}{127}% 
            {\catcode\@CharCodeNumberOfLines = 9 }
        \@SetUpLineCounting
        \catcode`\^^M = \active
        \input #1
    \endgroup
    \ifnum\ReturnNumberOfLinesInFile = 1
        \if\CompareFilesConditional{#1}{nul}%
            \ReturnNumberOfLinesInFile = 0
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-countl.tip}{}
\def\CenterRightLines #1#2{
    \setbox 0 = \hbox{#1}
    \dimen0 = \hsize
    \advance\dimen0 by -\wd0
    \divide\dimen0 by 2
    \rightline{#1\hskip\dimen0}
    \rightline{#2\hskip\dimen0}
}
\NameDef{@InputD-crline.tip}{}
\catcode`\@ = 11
\newcount\@CreateArrayCount
\def\CCreateArray #1#2#3{%
    \NameEdef{#1-low}{\number#2}%
    \NameEdef{#1-high}{#3}%
    \ifnum #3<#2
        \errmessage{\string\CCreateArray: low array boundary
            \number#2 is larger than upper array boundary
            \number#3}%
    \fi
    \DoLoop{\@CreateArrayCount}{#2}{1}{#3}{%
        \NameDef{#1-\the\@CreateArrayCount}{}%
    }
}
\newcount\@ConvertStringIntoArrayLength
\newcount\@ConvertStringIntoArrayCount
\def\ConvertStringIntoArray #1#2{%
    \def\@ConvertArrayName{#1}%
    \edef\@ConvertArrayString{#2}%
    \StringLength{\@ConvertArrayString}%
    \@ConvertStringIntoArrayLength = \StringLengthResult
    \advance\@ConvertStringIntoArrayLength by -1
    \CCreateArray{\@ConvertArrayName}%
        {0}{\the\@ConvertStringIntoArrayLength}%
    \@ConvertStringIntoArrayCount = 0
    \expandafter\@ConvertStringIntoArray
        \@ConvertArrayString\@ConvertEnd
}
\def\@ConvertStringIntoArray #1#2\@ConvertEnd{%
    \CLoadArrayElementEdef{\@ConvertArrayName}%
        {\the\@ConvertStringIntoArrayCount}{#1}%
    \if\EmptyStringConditional{#2}%
        \def\@ConvertStringIntoArrayNext{}%
    \else
        \advance\@ConvertStringIntoArrayCount by 1\relax
        \def\@ConvertStringIntoArrayNext{%
            \@ConvertStringIntoArray #2\@ConvertEnd%
        }%
    \fi
    \@ConvertStringIntoArrayNext
}
\def\CCheckIndex #1#2{%
    \expandafter\ifx\csname #1-low\endcsname\relax
        \errmessage{\string\CCheckIndex: no array #1.}%
    \fi
    \ifnum #2<\NameUse{#1-low}%
        \errmessage{Index #2 for array #1 too small.}%
    \fi
    \ifnum #2>\NameUse{#1-high}%
        \errmessage{Index #2 for array #1 too large.}%
    \fi
}
\def\CArrayAccess #1#2#3{%
    \CCheckIndex{#1}{#2}%
    \edef#3{\NameUse{#1-#2}}%
}
\newcount\@CArrayAccessIntervalCount
\def\CArrayAccessInterval #1#2#3#4{%
    \CCheckIndex{#1}{#2}%
    \CCheckIndex{#1}{#3}%
    \ifnum #2>#3\relax
        \errmessage{\string\CArrayAccessInterval: low index
            (\PoundSignText 2) > high index
            (PoundSignText 3).}%
    \fi
    \def#4{}%
    \DoLoop
        {\@CArrayAccessIntervalCount}{#2}{1}{#3}{%
        \CArrayAccess{#1}{\the\@CArrayAccessIntervalCount}%
            {\@CArrayAccessInterval}%
        \edef#4{#4\@CArrayAccessInterval}%
    }%
}
\def\CLoadArrayElement #1#2#3{%
    \CCheckIndex{#1}{#2}%
    \NameDef{#1-#2}{#3}%
}
\def\CLoadArrayElementEdef #1#2#3{%
    \CCheckIndex{#1}{#2}%
    \NameEdef{#1-#2}{#3}%
}
\newcount\@CShowArrayCount
\def\CShowArray #1{%
    \DoLoop
        {\@CShowArrayCount}%
        {\NameUse{#1-low}}% 
        {1}% 
        {\NameUse{#1-high}}%
        {\wlog{Index \the\@CShowArrayCount:
            \NameUse{#1-\the\@CShowArrayCount}}}%
}
\catcode`\@ = 12
\NameDef{@InputD-csar.tip}{}
\newcount\BackslashCharCode
\BackslashCharCode = `\\
\edef\mac #1{%
    {% 
        \noexpand\tt
        \char\the\BackslashCharCode\space
        #1% 
    }%
}
\NameDef{@InputD-cssprint.tip}{}
\def\CSToString #1#2{%
    {%
        \escapechar = -1
        \xdef#1{\string #2}%
    }%
}
\NameDef{@InputD-cstostr.tip}{}
\catcode`\@ = 11
\newread\@CatIn
\def\CSToStringCat #1#2{%
    {%
        \escapechar = -1
        \OpenGenericOStream{cstostrc.tmp}%
        \immediate\write\GenericOStream{\string#2\%}%
        \CloseGenericOStream
        \openin\@CatIn = cstostrc.tmp
        \global\read\@CatIn to #1%
        \closein\@CatIn
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-cstostrc.tip}{}
\catcode`\@ = 11
\newif\if@ControlSequenceConditional
\def\ControlSequenceConditional #1{%
    TT\fi
    {%
        \escapechar = -1
        \xdef\@ControlSequenceConditionalOne{\string#1}%
        \escapechar = `:\relax
        \xdef\@ControlSequenceConditionalTwo{\string#1}%
    }%
    \ifx\@ControlSequenceConditionalOne
        \@ControlSequenceConditionalTwo
        \@ControlSequenceConditionalfalse
    \else
        \@ControlSequenceConditionaltrue
    \fi
    \if@ControlSequenceConditional
}
\catcode`\@ = 12
\NameDef{@InputD-ctestcs.tip}{}
\catcode`\@ = 11
\long\def\DoLongFutureLet #1#2#3#4{% 
    \def\@FutureLetDecide{% 
        #1#2\@FutureLetToken
            \def\@FutureLetNext{#3}%
        \else
            \def\@FutureLetNext{#4}%
        \fi
        \@FutureLetNext
    }% 
    \futurelet\@FutureLetToken\@FutureLetDecide
}
\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}}
\catcode`\@ = 12
\NameDef{@InputD-futlet.tip}{}
\catcode`\@ = 11
\def\DblArg #1{% 
    \def\@DblArgTemp{#1}%
    \DoFutureLet{\ifx}{[}{\@DblArgTemp}{\@DblArgB}%
}
\def\@DblArgB #1{\@DblArgTemp[#1]{#1}}
\catcode`\@ = 12
\NameDef{@InputD-dblarg.tip}{}
\catcode`\@ = 11
\def\GobbleDoMore #1#2{%
    \def\@GobbleDoMore ##1#1{}%
    \expandafter#2\@GobbleDoMore
}
\catcode`\@ = 12
\NameDef{@InputD-gobblemo.tip}{}
\catcode`\@ = 11
\def\DefaultArg #1#2#3{%
    \def\@DefaultArgMacro{#1}%
    \edef\@EmptyOtherArg{#2}%
    \edef\@DefaultArgDefault{#3}%
    \@DefaultArg #2\@DefaultArgEnd
}
\def\@DefaultArg{%
    \futurelet\@DefaultArgSymbol\@DefaultArgOne
}
\def\@DefaultArgOne{%
    \ifx\@DefaultArgSymbol\@DefaultArgEnd
        \expandafter\edef\@DefaultArgMacro{\@DefaultArgDefault}% 
    \else
        \expandafter\edef\@DefaultArgMacro{\@EmptyOtherArg}% 
    \fi
    \GobbleDoMore{\@DefaultArgEnd}{\relax}%
}
\catcode`\@ = 12
\NameDef{@InputD-defauarg.tip}{}
\def\DicEntry #1{%
    \par
    \hangafter = 1
    \hangindent = 5pt
    \noindent
    {\bf #1}%
    \mark{#1}%
    \hskip 1em plus .2em minus .2em
    \ignorespaces
}
\NameDef{@InputD-dicentry.tip}{}
\catcode`\@ = 11
\newif\if@PrefixResult
\newcount\@LengthPrefixString
\newcount\@LengthMainString
\def\PrefixConditional #1#2{% 
    TT\fi
    \StringLength{#1}%
    \@LengthMainString = \StringLengthResult
    \StringLength{#2}% 
    \@LengthPrefixString = \StringLengthResult
    \ifnum\@LengthMainString < \@LengthPrefixString
        \@PrefixResultfalse
    \else
        \@PrefixConditionalTwo{#1}{#2}% 
    \fi
    \if@PrefixResult
}
\def\@PrefixConditionalTwo #1#2{% 
    \edef\@PrefixBoth{#1#2}% 
    \edef\@PrefixTemp{% 
        \def\noexpand\@TestPrefix ####1#2####2\noexpand\@Del{% 
            \noexpand\if\noexpand\EmptyStringConditional{####1}%
        }% 
    }% 
    \ShowX\@PrefixTemp
    \@PrefixTemp
    \ShowX{\@TestPrefix}%
    \expandafter\@TestPrefix\@PrefixBoth\@Del
        \@PrefixResulttrue
    \else
        \@PrefixResultfalse
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-isprefix.tip}{}
\catcode`\@ = 11
\def\DropPrefix #1#2#3{%
    \if\PrefixConditional{#1}{#2}%
        \edef\@PrefixConditionalTemp{% 
            \def\noexpand\@PrefixConditionalTempTwo #2####1% 
                                        \noexpand\@Del{%
                \def\noexpand #3{####1}}%
        }%
        \@PrefixConditionalTemp
        \ShowX{\@PrefixConditionalTemp}%
        \expandafter\@PrefixConditionalTempTwo #1\@Del
    \else
        \wlog{\string\DropPrefix: "#2" is NOT a prefix of "#1"}%
        \edef#3{#1}%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-droppre.tip}{}
{
    \catcode`\p = 12
    \catcode`\t = 12
    \NameGdef{DropPoints}#1pt{\NameGdef{DropPointsResult}{#1}}
}
\NameDef{@InputD-droppt.tip}{}
\def\DumpOneReg #1{%
    \wlog{Parameter "\string#1", value = \the#1}%
}
\def\DumpAllRegs{%
    \wlog{\string\DumpAllRegs: Counter parameters first.}%
    \DumpOneReg{\time}%
    \DumpOneReg{\day}% 
    \DumpOneReg{\month}% 
    \DumpOneReg{\year}% 
    \DumpOneReg{\pretolerance}% 
    \DumpOneReg{\tolerance}% 
    \DumpOneReg{\doublehyphendemerits}% 
    \DumpOneReg{\finalhyphendemerits}% 
    \DumpOneReg{\adjdemerits}% 
    \DumpOneReg{\linepenalty}% 
    \DumpOneReg{\looseness}% 
    \DumpOneReg{\linepenalty}% 
    \DumpOneReg{\hyphenpenalty}% 
    \DumpOneReg{\exhyphenpenalty}% 
    \DumpOneReg{\binoppenalty}% 
    \DumpOneReg{\relpenalty}% 
    \DumpOneReg{\clubpenalty}% 
    \DumpOneReg{\widowpenalty}% 
    \DumpOneReg{\displaywidowpenalty}% 
    \DumpOneReg{\brokenpenalty}% 
    \DumpOneReg{\predisplaypenalty}% 
    \DumpOneReg{\postdisplaypenalty}% 
    \DumpOneReg{\interlinepenalty}% 
    \DumpOneReg{\floatingpenalty}% 
    \DumpOneReg{\outputpenalty}% 
    \DumpOneReg{\pausing}% 
    \DumpOneReg{\tracingonline}% 
    \DumpOneReg{\tracinglostchars}% 
    \DumpOneReg{\tracingmacros}% 
    \DumpOneReg{\tracingstats}% 
    \DumpOneReg{\tracingparagraphs}% 
    \DumpOneReg{\tracingpages}% 
    \DumpOneReg{\tracingoutput}% 
    \DumpOneReg{\tracingcommands}% 
    \DumpOneReg{\tracingrestores}% 
    \DumpOneReg{\mag}% 
    \DumpOneReg{\uchyph}% 
    \DumpOneReg{\lefthyphenmin}% 
    \DumpOneReg{\righthyphenmin}% 
    \DumpOneReg{\defaultskewchar}% 
    \DumpOneReg{\escapechar}% 
    \DumpOneReg{\endlinechar}% 
    \DumpOneReg{\newlinechar}% 
    \DumpOneReg{\fam}% 
    \DumpOneReg{\hbadness}% 
    \DumpOneReg{\vbadness}% 
    \DumpOneReg{\badness}% 
    \DumpOneReg{\showboxdepth}% 
    \DumpOneReg{\showboxbreadth}% 
    \DumpOneReg{\deadcycles}% 
    \DumpOneReg{\maxdeadcycles}% 
    \DumpOneReg{\holdinginserts}% 
    \DumpOneReg{\hangafter}% 
    \DumpOneReg{\globaldefs}% 
    \DumpOneReg{\delimiterfactor}% 
    \DumpOneReg{\inputlineno}% 
    \DumpOneReg{\language}% 
    \wlog{\string\DumpAllRegs: Dimension parameters next.}%
    \DumpOneReg{\hfuzz}% 
    \DumpOneReg{\vfuzz}% 
    \DumpOneReg{\overfullrule}% 
    \DumpOneReg{\lineskiplimit}% 
    \DumpOneReg{\maxdepth}% 
    \DumpOneReg{\splitmaxdepth}% 
    \DumpOneReg{\boxmaxdepth}% 
    \DumpOneReg{\delimitershortfall}% 
    \DumpOneReg{\nulldelimiterspace}% 
    \DumpOneReg{\scriptspace}% 
    \DumpOneReg{\mathsurround}% 
    \DumpOneReg{\predisplaysize}% 
    \DumpOneReg{\displaywidth}% 
    \DumpOneReg{\displayindent}% 
    \DumpOneReg{\parindent}% 
    \DumpOneReg{\hangindent}% 
    \DumpOneReg{\hoffset}% 
    \DumpOneReg{\voffset}% 
    \wlog{\string\DumpAllRegs: Glue parameters last.}%
    \DumpOneReg{\baselineskip}% 
    \DumpOneReg{\lineskip}% 
    \DumpOneReg{\topskip}% 
    \DumpOneReg{\splittopskip}% 
    \DumpOneReg{\parskip}% 
    \DumpOneReg{\leftskip}% 
    \DumpOneReg{\rightskip}% 
    \DumpOneReg{\emergencystretch}% 
    \DumpOneReg{\abovedisplayskip}% 
    \DumpOneReg{\abovedisplayshortskip}% 
    \DumpOneReg{\belowdisplayskip}% 
    \DumpOneReg{\belowdisplayshortskip}% 
    \wlog{\string\DumpAllRegs: done.}%
}%
\NameDef{@InputD-dumppars.tip}{}
\catcode`\@ = 11
\def\GenAeol #1{% 
    \edef #1{%
        \bgroup
        \noexpand\MakeEolActive
        \noexpand\@GenAeolOne{% 
            \csname\string #1-2\endcsname}%
    }%
    \NameDef{\string #1-2}##1%
}
{
    \MakeEolActive
    \gdef\@GenAeolOne #1#2
    {% 
        \egroup% 
        #1{#2}% 
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-genaeol.tip}{}
\catcode`\@ = 11
\newif\if@VerbFirstLineSuppress
\def\OpenVerbWrFile #1#2#3{%
    \immediate\openout #3 = #1.#2
    \wlog{\string\OpenVerbWrFile: opened "#1.#2" for
        literal writing.}%
}
\def\CloseVerbWrFile #1{%
    \immediate\closeout #1
    \wlog{\string\CloseVerbWrFile: closed file for literal writing.}%
}
\def\BeginVerbWr #1#2{%
    \begingroup
    \def\@VerbWrStream{#1}%
    \CSToStringCat{\@EndVerbWrSt}{#2}%
    \wlog{\string\BeginVerbWr: begin}% 
    \MkOthers
    \MakeEolActive
    \@VerbWrTabHandling
    \@VerbFirstLineSuppresstrue
    \expandafter\expandafter\expandafter
        \@BeginVerbWrY\expandafter{\@EndVerbWrSt}%
}
{
    \catcode `| = 0
    \catcode`\\ =12
    |gdef|@BeginVerbWrY #1{%
        |def|@BeginVerbWrX ##1\#1{%
            |@BeginVerbWr ##1% 
            |@VerbWrDoneToken
            |@VerbWrDone
        }
        |@BeginVerbWrX
    }
}
\def\@VerbWrTabHandling{%
    \MakeTabActive
    \@VerbWrTabHandlingOne
}
{\MakeTabActive
\gdef\@VerbWrTabHandlingOne{\def^^I{\@TabAsLiteral}}% 
}
\def\@BeginVerbWr{% 
    \DoFutureLet{\ifx}% 
        {\@VerbWrDoneToken}% 
        {\GobbleDoMore
            {\@VerbWrDoneToken}{\relax}}%
        {\@BeginVerbWrTwo}% 
}
\GenAeol{\@BeginVerbWrTwo}{%
    \if@VerbFirstLineSuppress
        \@VerbFirstLineSuppressfalse
    \else
        \immediate\write\@VerbWrStream{#1}%
    \fi
    \@BeginVerbWr
}
\def\@VerbWrDone{% 
    \endgroup
    \wlog{\string\@VerbWrDone: done}%
}
\catcode`\@ = 12
\NameDef{@InputD-verbwr.tip}{}
\catcode`\@ = 11
\def\@DefEndNoteFileExt{eno}
\newwrite\@EndNoteStream
\newcount\@EndNoteCounter
\def\StartEndNoteWriting #1#2#3#4{% 
    \@EndNoteCounter = 0
    \DefaultArg{\@EndNoteBaseName}{#1}{\jobname}% 
    \DefaultArg{\@EndNoteFileExt}{#2}{\@DefEndNoteFileExt}% 
    \edef\@EndNoteFileName{\@EndNoteBaseName.\@EndNoteFileExt}%
    \wlog{\string\StartEndNoteWriting: output will be written to file
            "\@EndNoteFileName".}
    \edef\@EndNoteBefore{\string#3}%
    \edef\@EndNoteAfter{\string#4}%
    \OpenVerbWrFile{\@EndNoteBaseName}{\@EndNoteFileExt}% 
                   {\@EndNoteStream}%
}
\def\BeginEndNote{% 
    \advance\@EndNoteCounter by 1
    \ifnum\@EndNoteCounter > 1
        \immediate\write\@EndNoteStream{\@EndNoteAfter}% 
    \fi
    \immediate\write\@EndNoteStream{\@EndNoteBefore}%
    \BeginVerbWr{\@EndNoteStream}{\EndEndNote}
}
\def\EndEndNoteWriting{% 
    \immediate\write\@EndNoteStream{\@EndNoteAfter}% 
    \CloseVerbWrFile{\@EndNoteStream}% 
}
\def\ReadInEndNotes{%
    \input \@EndNoteFileName
}
\catcode`\@ = 12
\NameDef{@InputD-endn-mac.tip}{}
\catcode`\@ = 11
\newdimen \Delta@XY
\newskip\@ParListBeforeAfter
\newskip\@ParListBetweenLabels
\newskip\@ParListAfterLabel
\newcount\@LabeledParNesting    \@LabeledParNesting = 0
\newcount\@LabelCounter
\def\BeginAList #1#2#3#4#5#6#7{%
    \par
    \bgroup
    \advance\leftskip by #1
    \advance\rightskip by #2
    \advance \@LabeledParNesting by 1
    \@LabelCounter = 0
    \Delta@XY = #3
    \ifdim\Delta@XY < 0pt
        \errmessage{\string\BeginAList: negative Delta{xy},
            made positive.}%
    \fi
    \@ParListBeforeAfter = #4   
    \@ParListBetweenLabels = #5
    \@ParListAfterLabel = #6
    \SetParIndent{#7}
}
\def\EndAList{% 
    \par
    \vskip\@ParListBeforeAfter
    \egroup
}
\def\@GenLabel #1{%
    \par
    \advance\@LabelCounter by 1
    \ifnum\@LabelCounter = 1
        \parskip = \@ParListBeforeAfter
    \else
        \parskip = \@ParListBetweenLabels
    \fi
    \noindent
    \hbox to 0pt{#1}%
    \parskip = \@ParListAfterLabel
    \ignorespaces
}
\def\ItemLL #1{% 
    \@GenLabel{%
        \hskip -\Delta@XY
        #1%
        \hfil
    }%
}
\def\ItemLR #1{%
    \@GenLabel{%
        \hss
        #1%
        \hskip\Delta@XY
    }%
}
\def\ItemRL #1{%
    \@GenLabel{%
        \hskip\Delta@XY
        #1%
        \hss
    }%
}
\def\ItemRR #1{%
    \@GenLabel{%
        \hfil
        #1%
        \hskip -\Delta@XY
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-parv-1.tip}{}
\catcode`\@ = 11
\newcount\@EnumerateListDepth
\@EnumerateListDepth = 0
\NewCounter{Enumerate1}{\arabic}% 
    {\TheCounter{Enumerate1}.}{\TheCounter{Enumerate1}}
\NewCounter{Enumerate2}{\alph}% 
    {(\TheCounter{Enumerate2})}% 
    {\TheCounter{Enumerate1}.\TheCounter{Enumerate2}}
\NewCounter{Enumerate3}{\roman}% 
    {\TheCounter{Enumerate3}.}% 
    {\RefCounter{Enumerate2}.\TheCounter{Enumerate3}}
\NewCounter{Enumerate4}{\Alph}% 
    {\TheCounter{Enumerate4}.}% 
    {\RefCounter{Enumerate3}.\TheCounter{Enumerate4}}
\def\BeginEnumerate{% 
    \begingroup
    \global\advance\@EnumerateListDepth by 1
    \ifcase\@EnumerateListDepth
        \errmessage{\string\BeginEnumerate: no level
            zero.}%
    \or
        \SetCounter{Enumerate1}{0}%
        \@BeginEnumerateLevelOne
        \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate1}}{1}}%
        \def\Item{% 
            \StepCounter{Enumerate1}%
            \ItemLR{\PrintCounter{Enumerate1}}%
        }%
    \or
        \SetCounter{Enumerate2}{0}%
        \@BeginEnumerateLevelTwo
        \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate2}}{1}}%
        \def\Item{% 
            \StepCounter{Enumerate2}%
            \ItemLR{\PrintCounter{Enumerate2}}%
        }%
    \or
        \SetCounter{Enumerate3}{0}%
        \@BeginEnumerateLevelThree
        \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate3}}{1}}%
        \def\Item{% 
            \StepCounter{Enumerate3}%
            \ItemLR{\PrintCounter{Enumerate3}}%
        }%
    \or
        \SetCounter{Enumerate4}{0}%
        \@BeginEnumerateLevelFour
        \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate4}}{1}}%
        \def\Item{% 
            \StepCounter{Enumerate4}%
            \ItemLR{\PrintCounter{Enumerate4}}%
        }%
    \else
        \errmessage{\string\BeginEnumerate: maximum
            nesting level of 4 exceeded.}%
    \fi
}
\def\EndEnumerate{% 
    \EndAList
    \endgroup
    \global\advance\@EnumerateListDepth by -1
}
\catcode`\@ = 12
\NameDef{@InputD-enumlist.tip}{}
\def\ErrMessage #1{%
    \errmessage{#1}%
    \end
}
\NameDef{@InputD-errmess.tip}{}
\def\PrintEven #1{% 
    \ifodd #1\relax
    \else
        Number #1 is even.
    \fi
}
\NameDef{@InputD-evenprin.tip}{}
\everypar = {%
    \EvalEveryPars
    \ClearEveryPars
}
\def\EvalEveryParsCE{%
    \EveryParC
    \EveryParD
    \EveryParE
}
\def\EvalEveryPars{%
    \EveryParA
    \EveryParB
    \EvalEveryParsCE
    \EveryParZ
}
\def\ClearEveryPars{%
    \gdef\EveryParA{}%
    \gdef\EveryParB{}%
    \gdef\EveryParC{}%
    \gdef\EveryParD{}%
    \gdef\EveryParE{}%
}
\def\ClearEveryParsAll{%
    \ClearEveryPars
    \gdef\EveryParZ{}%
}
\ClearEveryParsAll
\NameDef{@InputD-everypar.tip}{}
\def\FigureBox #1#2{% 
    \BoxingA{% 
        \EmptyBox{#1}{0pt}{#2}%
    }% 
}
\NameDef{@InputD-figbox.tip}{}
\def\OverallSize #1#2{% 
    #1 = \ht#2\relax
    \advance#1 by \dp#2\relax
}
\NameDef{@InputD-sumhd.tip}{}
\def\LogPageTG #1{% 
    \wlog{\string\LogPageTG [#1]:}%
    \wlog{\string\pagetotal: \the\pagetotal,
        \string\pagegoal: \the\pagegoal}% 
}
\NameDef{@InputD-lpagetg.tip}{}
\newdimen\FreePageSpace
\def\ComputeFreeSpaceOnPage{%
    \par
    \LogPageTG{\string\ComputeFreeSpaceOnPage}%
    \ifdim\pagetotal = 0pt
        \FreePageSpace = \vsize
    \else
        \FreePageSpace = \pagegoal
        \advance\FreePageSpace by -\pagetotal
    \fi
}
\def\FreeSpaceConditional{%
    0pt = 0pt \fi
    \ComputeFreeSpaceOnPage
    \ifdim\FreePageSpace
}
\NameDef{@InputD-freespac.tip}{}
\def\FigureInPar #1#2#3#4#5{% 
    \par
    \message{\string\FigureInPar: start}%
    {%
        \setbox 0 = \vbox{#1}
        \OverallSize{\dimen0}{0}%
        \advance\dimen0 by #2
        \advance\dimen0 by #3
        \advance\dimen0 by #4
        \advance\dimen0 by #4
        \advance\dimen0 by \parskip
        \message{\string\FigureInPar:
            available space: \the\FreePageSpace}%
        \setbox 0 = \HboxR{\EmptyBox{#2}{0pt}{\hsize}}%
        \ifdim\FreeSpaceConditional < \dimen0
            \message{\string\FigureInPar:
                insufficient space: make it a \string\topinsert.}%
            #1\unskip
            \space
            #5%
            \par
            \topinsert
                \box0
            \endinsert
        \else
            \message{\string\FigureInPar:
                Sufficient space: put it here.}%
            #1\unskip
            \space
            \vadjust{%
                \vskip #4
                \box0
                \vskip #4
            }% 
            #5\par
        \fi
    }
}
\NameDef{@InputD-figinpar.tip}{}
\catcode`\@ = 11
\def\FirstLineSpecial #1{% 
    \par
    \begingroup
    #1
    \def\@FLDTemp{}%
    \dimen0 = \parindent
    \setbox0 = \hbox{ }% 
    \advance\dimen0 by -\wd0
    \@FLDOne
}
\def\@FLDOne #1 {% 
    \wlog{\string\@FLDOne: called with "#1".}%
    \xdef\@FLDTempa{#1\ }% 
    \@FLDTwo
}
\def\@FLDTwo{% 
    \wlog{\string\@FLDTwo: called}%
    \setbox0 = \hbox{\@FLDTempa}% 
    \advance\dimen0 by \wd0
    \ifdim\dimen0 < \hsize
        \edef\@FLDTemp{\@FLDTemp\@FLDTempa}% 
        \let\@FLDNext = \@FLDOne
    \else
        \leavevmode
        \@FLDTemp
        \unskip
        \break
        \aftergroup\@FLDTempa
        \let\@FLDNext = \endgroup
    \fi
    \@FLDNext
}
\catcode`\@ = 12
\NameDef{@InputD-firstldi.tip}{}
\def\ReportCharSize #1#2{%
    {%
        \count0 = #2\relax
        \setbox 0 = \hbox{#1\char\count0}%
        \wlog{\string\ReportCharSize: Font \string#1,
            character code \the\count0}%
        \wlog{ht / dp / wd: \the\ht0 \space / \the\dp0
            \space / \the\wd0}% 
    }%
}
\NameDef{@InputD-fo-char.tip}{}
\def\CharactersPerPica #1{% 
    \setbox0 = \hbox{%
        #1\relax
        This paragraph has 423 characters. We know that
        because we counted it. It is very simple to count, because
        the Emacs editor we are using has a function ``advance
        by one character.'' And with the prefix command (that's
        Emacs terminology) you can execute ``advance by
        one character'' 423~times. Now, let's hope that this text
        is representative of ordinary text so that our average
        number of characters per pica is correct.
    }%
    {%
        \count1 = \wd0
        \divide\count1 by 100
        \count0 = 423
        \multiply\count0 by 65536
        \multiply\count0 by 12
        \divide\count0 by \count1
        \count2 = \count0
        \divide\count2 by 100
        \IModN{\count0}{100}{\count3}%
        \the\count2.\LeadingZ{\count3}%
    }%
}
\NameDef{@InputD-font-cpp.tip}{}
\def\FormLine #1#2#3{%
    {%
        \setbox0 = \hbox{#2}%
        \dimen0 = #1%
        \advance\dimen0 by -\wd0
        \hbox{%
            \box0
            \hbox to 0pt{% 
                \vrule width \dimen0 height 0.4pt depth 0pt
                \hss
            }%
            \raise 3pt \hbox to \dimen0 {\hfil #3\hfil}% 
        }%
    }%
}
\NameDef{@InputD-formline.tip}{}
\catcode`\@ = 11
\def\@OctPrintFontTable#1{% 
    \hbox{% 
        \rm\'{}% 
        \kern-.2em
        \it #1\/% 
        \kern.05em
    }% 
}
\def\@HexPrintFontTable#1{% 
    \hbox{\rm\H{}\tt#1}% 
}
\def\@OddLineFontTable#1{% 
    \cr
    \noalign{\nointerlineskip}
    \multispan{19}\hrulefill&
    \setbox0 = \hbox{% 
        \lower 2.3pt\hbox{% 
            \@HexPrintFontTable{#1x}% 
        }% 
    }% 
    \smash{\box0}% 
    \cr
    \noalign{\nointerlineskip}
}
\def\@EvenLineFontTable{\cr\noalign{\hrule}}
\def\@FontTableStrut{\lower4.5pt\vbox to 14pt{}}
\def\BeginFontTable #1{% 
    $$
    \postdisplaypenalty = 0
    \global\count@=0
    #1
    \halign to\hsize\bgroup
        \@FontTableStrut##\relax    \tabskip = 0pt plus 10pt&
        &\hfil##\hfil&\vrule##% 
    \cr
    \lower6.5pt\null
    &&&
    \@OctPrintFontTable0&&
    \@OctPrintFontTable1&&
    \@OctPrintFontTable2&&
    \@OctPrintFontTable3&&
    \@OctPrintFontTable4&&
    \@OctPrintFontTable5&&
    \@OctPrintFontTable6&&
    \@OctPrintFontTable7&
    \@EvenLineFontTable
}
\def\EndFontTable{% 
    \raise 11.5pt\null
    &&&
    \@HexPrintFontTable 8&&
    \@HexPrintFontTable 9&&
    \@HexPrintFontTable A&&
    \@HexPrintFontTable B&&
    \@HexPrintFontTable C&&
    \@HexPrintFontTable D&&
    \@HexPrintFontTable E&&
    \@HexPrintFontTable F&
    \cr
    \egroup
    $$% 
}
\def\:{% 
    \setbox0 = \hbox{% 
        \char\count@
    }%
    \ifdim\ht0 > 7.5pt
        \@RepositionFontTable
    \else
        \ifdim\dp0 > 2.5pt
            \@RepositionFontTable
        \fi
    \fi
    \box0
    \global\advance\count@ by 1
}
\def\@RepositionFontTable{% 
    \setbox0 = \hbox{% 
        $
            \vcenter{% 
                \kern 2pt
                \box0
                \kern 2pt
            }
        $%
    }% 
}
\def\NormalFontTable{%
    &\@OctPrintFontTable{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable0
    &\@OctPrintFontTable{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable1
    &\@OctPrintFontTable{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable2
    &\@OctPrintFontTable{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable3
    &\@OctPrintFontTable{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable4
    &\@OctPrintFontTable{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable5
    &\@OctPrintFontTable{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable6
    &\@OctPrintFontTable{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable7
    &\@OctPrintFontTable{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
}
\def\MoreFontTable{%
    &\@OctPrintFontTable{20x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable8
    &\@OctPrintFontTable{21x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{22x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable9
    &\@OctPrintFontTable{23x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{24x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable A
    &\@OctPrintFontTable{25x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{26x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable B
    &\@OctPrintFontTable{27x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{30x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable C
    &\@OctPrintFontTable{31x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{32x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable D
    &\@OctPrintFontTable{33x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{34x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable E
    &\@OctPrintFontTable{35x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
    &\@OctPrintFontTable{36x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&&\@OddLineFontTable F
    &\@OctPrintFontTable{37x}&&\:&&\:&&\:&&\:&&\:&&\:&&
        \:&&\:&\@EvenLineFontTable
}
\catcode`\@ = 12
\NameDef{@InputD-fotable.tip}{}
\catcode`\@ = 11
\def\ForEachToken #1#2{%
    \def\@ForEachTokenMacro{#2}%
    \expandafter\@ForEachToken\the#1\@ForEachTokenDel
}
\def\@ForEachToken #1{% 
    \if\StringsEqualConditional{\string\@ForEachTokenDel}{\string#1}%
        \let\@ForEachTokenNext = \relax % Done.
    \else
        \@ForEachTokenMacro{#1}%        % Call macro and continue.
        \let\@ForEachTokenNext = \@ForEachToken
    \fi
    \@ForEachTokenNext
}
\catcode`\@ = 12
\NameDef{@InputD-fotok.tip}{}
\def\frac #1#2{% 
    {#1 \over #2}% 
}
\NameDef{@InputD-frac.tip}{}
\newdimen\CurrentFontSize
\def\DefineFontSizeGroup #1#2{% 
    \wlog{\string\DefineFontSizeGroup: defining group "#1" (#2 pt)}%
    \NameDef{FontSize#1}{% 
        \def\rm{\fam = 0        \NameUse{#1rm}}%
        \def\bf{\fam = \bffam   \NameUse{#1bf}}%
        \def\it{\fam = \itfam   \NameUse{#1it}}%
        \def\tt{\fam = \ttfam   \NameUse{#1tt}}%
        \def\sc{\NameUse{#1sc}}%
        \def\sl{\fam = \slfam   \NameUse{#1sl}}%
        \CurrentFontSize = #2pt
        \baselineskip = \LineSpaceMultFactor\CurrentFontSize
        \rm
    }
}
\def\LineSpaceMultFactor{1.2}
\NameDef{@InputD-fsized.tip}{}
\catcode`\@ = 11
\def\FutureLetNoSpace #1#2{% 
    \def\@FutureLetTokenA{#1}% 
    \def\@FutureLetTokenB{#2}% 
    \@FutureLetOne
}
\def\@FutureLetOne{% 
    \DoFutureLet{\ifx}{ }%
        {\@FutureLetThree}{\@FutureLetOk}%
}
\edef\@FutureLetNoSpaceTemp{% 
    \def\noexpand\@FutureLetThree\space{\noexpand\@FutureLetOne}% 
}
\@FutureLetNoSpaceTemp
\def\@FutureLetOk{% 
    \expandafter\futurelet\@FutureLetTokenA\@FutureLetTokenB
}
\long\def\DoLongFutureLetNoSpace #1#2#3#4{%
    \def\@FutureLetDecideNoSpace{%
        #1#2\@FutureLetTokenNoSpace
            \def\@FutureLetNextNoSpace{#3}%
        \else
            \def\@FutureLetNextNoSpace{#4}%
        \fi
        \@FutureLetNextNoSpace
    }% 
    \FutureLetNoSpace{\@FutureLetTokenNoSpace}%
        {\@FutureLetDecideNoSpace}%
}
\def\DoFutureLetNoSpace #1#2#3#4{%
    \DoLongFutureLetNoSpace{#1}{#2}{#3}{#4}%
}
\catcode`\@ = 12
\NameDef{@InputD-funospac.tip}{}
\def\ParLookAhead #1#2{%
    \DoLongFutureLetNoSpace{\ifx}{\par}%
        {#1}{#2}%
}
\NameDef{@InputD-futpar.tip}{}
\catcode`\@ = 11
\newskip\@MaxVskipGlue
\def\MaxVskip #1{% 
    \par
    \@MaxVskipGlue = #1\relax
    \ifdim\lastskip < \@MaxVskipGlue
        \ifdim\lastskip = 0pt
        \else
            \vskip -\lastskip
        \fi
        \vskip\@MaxVskipGlue
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-vsmax.tip}{}
\newdimen\NormalParIndent
\def\SetParIndent #1{%
    \NormalParIndent = #1%
    \parindent = #1%
}
\def\SuppressNextParIndent{%
    \global\parindent = 0pt
    \gdef\EveryParA{%
        \global\parindent = \NormalParIndent
        % \hskip-\parindent
    }%
}
\def\CancelSuppressNextParIndent{%
    \global\parindent = \NormalParIndent
    \gdef\EveryParA{}%
}
\NameDef{@InputD-parin.tip}{}
\newtoks\EveryHeading
\EveryHeading = {}
\catcode`\@ = 11
\newcount\@GenericHeadingCount
\newcount\@GenericHeadingIndent
\def\LineBreakHeading{%
    \errmessage{%
        \string\LineBreakHeading/\string\LineBreakToc:
            can only be used inside a heading.}%
}
\let\LineBreakToc = \LineBreakHeading
\def\IgnoreInRunnningHead #1{%
    #1%
}
\def\GenericHeading #1#2#3#4#5{% 
    \par
    \the\EveryHeading
    \@GenericHeadingCount = #1
    \@GenericHeadingIndent = #5
    \MaxVskip{#2}%
    \ifdim\leftskip = 0pt
    \else
        \message{\string\GenericHeading: \noexpand\leftskip
            is non-zero, forgotten to terminate a list?}%
    \fi
    \begingroup 
    \interlinepenalty = 10000
    \parindent = 0pt
    \parskip = 0pt
    \ifnum #4 = 1
        \hyphenpenalty = 10000
    \fi
    \ifnum #3 = 1
        \rightskip = 0pt plus 50pt
    \fi
    \@GenericHeading
}
\def\@GenericHeading #1#2#3#4#5#6#7{%
        #3%
        \def\LineBreakHeading{\hfil\break}%
        \def\LineBreakToc{ }%
        \ifdim #4 > 0pt
            \ifnum\@GenericHeadingIndent = 0
                \hangindent = #4
                \hangafter = 1
                \leavevmode
                \hbox to #4{#5\hfil}% 
            \else
                \leavevmode
                \hbox to #4{#5\hfil}% 
            \fi             
        \else
            \setbox0 = \hbox{#5\hskip -#4}
            \ifnum\@GenericHeadingIndent = 0
                \hangindent = \wd0
                \hangafter = 1
                \leavevmode
                \box0
            \else
                \leavevmode
                \box0
            \fi
        \fi
        #6% 
        \if\NameDefinedConditional{WriteToAuxSpecial}%
            \def\LineBreakToc{\hfil\break}%
            \def\LineBreakHeading{ }%
            \WriteToAuxSpecial{toc}{\the\@GenericHeadingCount}% 
                {#5}{#7}{\PrintCounter{PageNo}}%
        \fi
        \par
    \endgroup
    \nobreak
    \vskip #1
    \ifnum #2 = 0
        \SuppressNextParIndent
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-genhead.tip}{}
\newcount\ResultNumberOfLines
\def\GetNumberOfLines #1#2{% 
    {% 
        \setbox 0 = \vbox{%
            \hsize = #2
            #1
            \par
            \global\ResultNumberOfLines = \prevgraf
        }%
    }% 
}
\NameDef{@InputD-getnuml.tip}{}
\def\GobbleOne  #1{}
\def\GobbleTwo  #1#2{}
\def\GobbleThree#1#2#3{}
\def\GobbleFour #1#2#3#4{}
\def\GobbleFive #1#2#3#4#5{}
\def\GobbleSix  #1#2#3#4#5#6{}
\def\GobbleSeven#1#2#3#4#5#6#7{}
\def\GobbleEight#1#2#3#4#5#6#7#8{}
\def\GobbleNine #1#2#3#4#5#6#7#8#9{}
\NameDef{@InputD-gobble.tip}{}
\catcode`\@ = 11
\newdimen\@ScaleLength
\def\SetScale #1{% 
    \@ScaleLength = #1
}
\SetScale{1mm}
\newdimen\@LineThickness
\def\SetLineThickness #1{%
    \@LineThickness = #1
}
\SetLineThickness{0.3mm}
\newbox\@GraphDataBox
\def\SetGraphDataBox #1{%
    \dimen0 = #1%
    \setbox\@GraphDataBox =
        \hbox{%
            \hskip -0.5\dimen0
            \vrule height 0.5\dimen0
                   depth  0.5\dimen0
                   width  1.0\dimen0
        }%
    \ZeroBox{\@GraphDataBox}%
}
\SetGraphDataBox{2mm}
\def\DrawDataBox (#1,#2){%
    {%
        \setbox0 = \hbox{%
            \hskip #1\@ScaleLength
            \raise #2\@ScaleLength\copy\@GraphDataBox
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\def\DrawHLine (#1,#2)#3{%
    {%
        \setbox0 = \hbox{%
            \hskip #1\@ScaleLength
            \raise #2\@ScaleLength
                \hbox{%
                    \vrule height 0.5\@LineThickness
                           depth  0.5\@LineThickness
                           width  #3\@ScaleLength
                }% 
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\def\DrawVLine (#1,#2)#3{%
    {%
        \setbox0 = \hbox{%
            \hskip #1\@ScaleLength
            \hskip -0.5\@LineThickness
            \raise #2\@ScaleLength
                \hbox{%
                    \vrule height #3\@ScaleLength
                           depth  0pt
                           width  \@LineThickness
                }% 
        }%
        \ZeroBoxOut{0}% 
    }% 
}
\catcode`\@ = 12
\NameDef{@InputD-graphmac.tip}{}
\def\Hex #1{%
    {%
        \count0 = #1%
        \count1 = #1%
        \divide\count0 by 16
        \count2 = \count0
        \multiply \count2 by -16
        \advance \count1 by \count2
        \ifnum \count0 > 0
            \Hex{\count0}%
        \fi
        \HexDigit{\count1}% 
    }%
}
\def\HexDigit #1{% 
    {%
        \count0 = #1\relax
        \ifnum \count0 < 10
            \number\count0          % or \the\count0
        \else
            \advance\count0 by -10
            \advance\count0 by `A
            \char\count0
        \fi
    }%
}
\NameDef{@InputD-hex.tip}{}
\newif\ifEvenConditionalResult
\def\EvenConditional #1{%
    TT\fi
    \ifodd #1\relax
        \EvenConditionalResultfalse
    \else
        \EvenConditionalResulttrue
    \fi
    \ifEvenConditionalResult
}
\NameDef{@InputD-ifeven.tip}{}
\catcode`\@ = 11
\newif\if@Def
\def\XDefinedConditional #1{% 
    TT\fi
    \ifx #1\@AlwaysUndefinedToken
        \@Deffalse
    \else
        \@Deftrue
    \fi
    \if@Def
}
\catcode`\@ = 12
\NameDef{@InputD-ifx-def.tip}{}
\catcode`\@ = 11
\def\IfXConditional #1#2{%
    TT\fi
    \def\@IfXConditionalOne{#1}%
    \def\@IfXConditionalTwo{#2}%
    \ifx\@IfXConditionalOne\@IfXConditionalTwo
}
\catcode`\@ = 12
\NameDef{@InputD-ifx-mac.tip}{}
\def\InputAt #1{% 
    \catcode`\@ = 11
    \input #1
    \catcode`\@ = 12
}
\NameDef{@InputD-input-at.tip}{}
\catcode`\@ = 11
\def\InputC #1{%
    \if\FileExistsConditional{#1}%
        \input #1
    \else
        \message{\string\InputC: there is no file "#1".}% 
    \fi
}
\def\InputCWithAt #1{%
    \catcode`@ = 11
    \InputC{#1}% 
    \catcode`@ = 12
}
\catcode`\@ = 12
\NameDef{@InputD-inputc.tip}{}
\catcode`\@ = 11
\def\ReverseString #1#2{% 
    \def\@ReverseStringName{#1}% 
    \def\@ReversedString{}% 
    \edef\@ReverseTemp{#2}%
    \ShowX\@ReverseTemp
    \expandafter\@ReverseString\@ReverseTemp\@Del
}
\def\@ReverseString #1{% 
    \ifx #1\@Del
        \expandafter\edef\@ReverseStringName{\@ReversedString}% 
        \let\@ReverseStringNext = \relax
    \else
        \edef\@ReversedString{#1\@ReversedString}% 
        \let\@ReverseStringNext = \@ReverseString
        \def\@ReverseStringNext{\@ReverseString}%
    \fi
    \@ReverseStringNext
}
\catcode`\@ = 12
\NameDef{@InputD-reverses.tip}{}
\catcode`\@ = 11
\def\SuffixConditional #1#2{% 
    TT\fi
    \ReverseString{\@MainSuffixString}{#1}% 
    \ReverseString{\@SuffixSuffixString}{#2}% 
    \if\PrefixConditional{\@MainSuffixString}{\@SuffixSuffixString}% 
}
\catcode`\@ = 12
\NameDef{@InputD-issuffix.tip}{}
\catcode`\@ = 11
\newcount\@ItemListDepth
\@ItemListDepth = 0
\def\BeginItemize{% 
    \begingroup
    \global\advance\@ItemListDepth by 1
    \ifcase\@ItemListDepth\or
        \@BeginItemizeLevelOne
        \def\Item{\ItemLL{$\bullet$}}%
    \or
        \@BeginItemizeLevelTwo
        \def\Item{\ItemLL{--}}%
    \or
        \@BeginItemizeLevelThree
        \def\Item{\ItemLL{*}}%
    \or
        \@BeginItemizeLevelFour
        \def\Item{\ItemLL{+}}%
    \else
        \errmessage{\string\BeginItemize: maximum nesting of
            4 exceeded.}%
    \fi
}
\def\EndItemize{% 
    \EndAList
    \endgroup
    \global\advance\@ItemListDepth by -1
}
\catcode`\@ = 12
\NameDef{@InputD-itemizel.tip}{}
\def\hang{% 
    \hangindent = \parindent
}
\def\item{%
    \par
    \hang
    \textindent
}
\def\itemitem{%
    \par
    \indent
    \hangindent = 2\parindent
    \textindent
}
\def\textindent #1{%
    \indent
    \llap{#1\enspace}%
    \ignorespaces
}
\def\itemitemitem{%
    \par
    \indent
    \indent
    \hangindent = 3\parindent
    \textindent
}
\NameDef{@InputD-itemplan.tip}{}
\catcode`\@ = 11
\def\WordsToTeXList #1#2\EndWordsToTeXList{%
    \def\@WordsToTeXListName{#1}%
    \expandafter\def\@WordsToTeXListName{}%
    \@WordsToTeXListNextName #2 \EndWordsToTeXList
}
\def\@WordsToTeXListNextName #1 {%
    \if\EmptyStringConditional{#1}% 
    \else
        \expandafter\RightAppendElement\@WordsToTeXListName{#1}%
    \fi
    \DoFutureLet{\ifx}{\EndWordsToTeXList}%
        {\@WordsToTeXListEnd}{\@WordsToTeXListNextName}%
}
\def\@WordsToTeXListEnd\EndWordsToTeXList{}
\catcode`\@ = 12
\NameDef{@InputD-wtolist.tip}{}
\catcode`\@ = 11
\newdimen\@MaximumCurrentLineWidth
\newdimen\@LineWidthLastLine
\newdimen\@LineWidthMinDiff
\newbox\@IPCurrentLineBox
\newbox\@IPCurrentLineBoxTry
\def\InvertedPyramid #1#2#3{%
    \WordsToTeXList{\IVList}#3\EndWordsToTeXList
    \def\LineLengthList{#1}%
    \@LineWidthLastLine = 0pt
    \@LineWidthMinDiff = #2
    \CarOfList{\IVList}{\@IVListTemp}
    \DropFirstElementOfList{\IVList}
    \setbox\@IPCurrentLineBox = \hbox{\@IVListTemp}%
    \CarOfList{\LineLengthList}{\@IVListTemp}% 
    \@MaximumCurrentLineWidth = \@IVListTemp
    \DropFirstElementOfList{\LineLengthList}%
    \ForEveryListElement{\IVList}{\@IVListTypeset}%
    \ifvoid\@IPCurrentLineBox
        \errmessage{\string\InvertedPyramid:
            empty \string\@IPCurrentLineBox}%
    \else
        \centerline{\box\@IPCurrentLineBox}%
    \fi
}
\def\@IVListTypeset #1{%
    \setbox\@IPCurrentLineBoxTry =
        \hbox{\copy\@IPCurrentLineBox \space#1}%
    \ifdim\wd\@IPCurrentLineBoxTry < \@MaximumCurrentLineWidth
        \setbox\@IPCurrentLineBox = \box\@IPCurrentLineBoxTry
    \else
        \@LineWidthLastLine = \wd\@IPCurrentLineBox
        \centerline{\box\@IPCurrentLineBox}%
        \setbox\@IPCurrentLineBox = \hbox{#1}%
        \CarOfList{\LineLengthList}{\@IVListTemp}% 
        \@MaximumCurrentLineWidth = \@IVListTemp
        \DropFirstElementOfList{\LineLengthList}%
        \dimen0 = \@LineWidthLastLine
        \advance\dimen0 by -\@MaximumCurrentLineWidth
        \ifdim\dimen0 < \@LineWidthMinDiff
            \@MaximumCurrentLineWidth = \@LineWidthLastLine
            \advance\@MaximumCurrentLineWidth by -\@LineWidthMinDiff
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-ivpyr.tip}{}
\catcode`\@ = 11
\newcount\@ValueOfDecimalPosition
\newcount\@ValueOfDecimalPositionLoopCount
\def\ValueOfDecimalPosition #1#2#3{% 
    \CheckRange{#2}{0}{9}{\string\ValueOfDecimalPosition:
        \#2 must be in the range 0 .. 9}%
    \AbsoluteValue{#1}{\@ValueOfDecimalPosition}%
    \DoLoop{\@ValueOfDecimalPositionLoopCount}{1}{1}{#2}%
        {\global\divide\@ValueOfDecimalPosition by 10}%
    \IModN{\@ValueOfDecimalPosition}{10}{#3}%
}
\catcode`\@ = 12
\NameDef{@InputD-valdecpo.tip}{}
\catcode`\@ = 11
\newcount\@LargestDecimalPlaceCount
\def\LargestDecimalPlace #1#2{%
    \AbsoluteValue{#1}{\@LargestDecimalPlaceCount}%
    \wlog{We make progress}%
    #2 = 0
    \@LargestDecimalPlaceMore{#2}%
}
\def\@LargestDecimalPlaceMore #1{% 
    \wlog{One round: \the#1}%
    \ifnum\@LargestDecimalPlaceCount < 10
        \def\@LargestDecimalPlaceMoreNext{}%
    \else
        \advance #1 by 1
        \divide\@LargestDecimalPlaceCount by 10
        \def\@LargestDecimalPlaceMoreNext{%
            \@LargestDecimalPlaceMore{#1}%
        }%
    \fi
    \@LargestDecimalPlaceMoreNext
}
\catcode`\@ = 12
\NameDef{@InputD-largdp.tip}{}
\catcode`\@ = 11
\def\\{% 
    \hfil\break
    \hbox{}%
    \DoFutureLet{\ifx}{[}{\@HfilBreakHskip}{\ignorespaces}%
}
\def\@HfilBreakHskip [#1]{% 
    \hskip #1%
    \ignorespaces
}
\catcode`\@ = 12
\NameDef{@InputD-lbpar.tip}{}
\catcode`\@ = 11
\def\LoadCountZeroToNine #1#2#3#4#5#6#7#8#9{% 
    \count0 = #1\relax
    \count1 = #2\relax
    \count2 = #3\relax
    \count3 = #4\relax
    \count4 = #5\relax
    \count5 = #6\relax
    \count6 = #7\relax
    \count7 = #8\relax
    \count8 = #9\relax
    \@LoadCountNine
}
\def\@LoadCountNine #1{% 
    \count9 = #1\relax
}
\catcode`\@ = 12
\NameDef{@InputD-lc0to9.tip}{}
\def\RightLeaderLine #1{% 
    \line{\leaders\hrule\hss #1}% 
}

\def\LeftLeaderLine #1{% 
    \line{#1\leaders\hrule\hss}% 
}

\def\CenterLeaderLine #1{% 
    \line{\leaders\hrule\hss #1\leaders\hrule\hss}% 
}
\NameDef{@InputD-leadline.tip}{}
\def\LeftDisplay #1$${%
    \leftline{% 
        \hskip 20pt
        $
            \displaystyle {#1}
        $% 
        }%
    $$
}
\NameDef{@InputD-leftdm.tip}{}
\def\LoadFontOnDemand #1#2{%
    \def #1{% 
        \global\font#1 = #2\relax
        #1%
        \message{\string\LoadFontOnDemand: font \string#1
            (#2) loaded on demand.}% 
    }%
}
\NameDef{@InputD-lfondem.tip}{}
\catcode`\@ = 11
\newif\if@Defined
\def\DefinedConditional #1{%
    TT\fi
    \ifx\@UndefinedToken #1% 
        \@Definedfalse
    \else
        \@Definedtrue
    \fi
    \if@Defined
}
\catcode`\@ = 12
\NameDef{@InputD-testdef.tip}{}
\def\FormatIsLaTeXConditional{%
    TT\fi
    \if\DefinedConditional{\documentstyle}%
}
\NameDef{@InputD-loadedla.tip}{}
\def\BeginMath{%
    \ifmath
        \ifinner
            \errmessage{\string\BeginMath: already in math
                mode, \string\BeginMath ignored.}%
        \else
            \errmessage{\string\BeginMath: in display math
                mode, terminated and math mode started.}%
            $$
            $
        \fi
    \else
        $\relax
    \fi
}
\def\EndMath{%
    \ifmath
        \ifinner
            $%
        \else
            \errmessage{\string\EndMath: you are in display math
                mode! Should have used \string\EndDisplayMath!}%
            $$
        \fi
    \else
        \errmessage{\string\EndMath: already in math
            mode, \string\EndMath ignored.}%
    \fi
}
\def\BeginDisplayMath{%
    \ifmath
        \ifinner
            \errmessage{\string\BeginDisplayMath: in inline
                math mode, terminate it, start display math.}%
            $
            $$
        \else
            \errmessage{\string\BeginDisplayMath: already in math
                mode, \string\BeginDisplayMath ignored.}%
        \fi
    \else
        $$
    \fi
}
\def\EndDisplayMath{%
    \ifmath
        \ifinner
            \errmessage{\string\EndDisplayMath: inline
                math mode in effect, did you intend to
                write \string\EndMath?}%
            $%
        \else
            $$
        \fi
    \else
        \errmessage{\string\EndDisplayMath: not in math
            mode, \string\EndDisplayMath ignored.}%
    \fi
}
\NameDef{@InputD-mathenv.tip}{}
\def\MaxDimen #1#2#3#4{% 
    \ifdim #2<#3\relax
        #4#1 = #3\relax
    \else
        #4#1 = #2\relax
    \fi
}
\def\MinDimen #1#2#3#4{% 
    \ifdim #2<#3\relax
        #4#1 = #2\relax
    \else
        #4#1 = #3\relax
    \fi
}
\NameDef{@InputD-maxmindi.tip}{}
\def\ModuloOneAdvanceNumCond #1#2{% 
    0=0\fi
    \global\advance #1 by 1
    \ifnum #1 = #2\relax
        \global #1 = 0
    \fi
    \ifnum #1%
}
\NameDef{@InputD-modonead.tip}{}
\def\MultiRowDel #1#2{% 
    {%
        \mathsurround = 0pt
        \setbox 0 = \hbox{% 
            $% 
                \vcenter{% 
                    \hbox{% 
                        $
                            \left#1% 
                            \vrule height #2 depth #2 width 0pt
                            \right.
                        $%                          
                    }% 
                }% 
            $% 
        }% 
        \ht0 = 0pt
        \dp0 = 0pt
        \box 0
    }% 
}
\def\MultiRowDel #1#2{% 
    {%
        \mathsurround = 0pt
        \setbox 0 = \hbox{% 
                        $
                            \left#1% 
                            \vrule height #2 depth #2 width 0pt
                            \right.
                        $%                          
                    }% 
        \ht0 = 0pt
        \dp0 = 0pt
        \box 0
    }% 
}
\NameDef{@InputD-mrdel.tip}{}
\catcode`\@ = 11
\newbox\@NBox
\def\NaturalHeight #1#2{% 
    \setbox\@NBox = \vbox{\unvcopy #2}
    #1 = \ht\@NBox
}
\def\NaturalDepth #1#2{% 
    \setbox\@NBox = \vbox{\unvcopy #2}
    #1 = \dp\@NBox
}
\catcode`\@ = 12
\NameDef{@InputD-nathd.tip}{}
\catcode`\@ = 11
\def\NextCharTest #1#2#3{% 
    \def\@NextCharTestYes #1{#2}%
    \def\@NextCharTestNo {#3}%
    \DoFutureLet{\ifx}{#1}{\@NextCharTestYes}{\@NextCharTestNo}%
}
\catcode`\@ = 12
\NameDef{@InputD-nctest.tip}{}
\catcode`\@ = 11
\def\pagecontents{% 
    \wlog{\noexpand\pagecontents from op-pagec.tip called.}%
    \NameUse{@ShowPlainLists}%
    \ifvoid\topins
        \wlog{\string\pagecontents: no topinserts.}%
        \if\NameDefinedConditional{@TopInsertSize}%
            \ifdim\@TopInsertSize < 20pt
                \global\@TopInsertSize = 0pt
            \fi
        \fi
    \else
        \NameUse{ChangeBarPush}%
        \NameUse{@UpdateTopInsertSize}%
        \unvbox\topins
        \NameUse{ChangeBarPop}%
    \fi
    \dimen@ = \dp 255
    \unvbox 255
    \ifvoid\footins
    \else
        \@PrintFootnotePlain
    \fi
    \ifr@ggedbottom
        \kern -\dimen@
        \vfil
    \fi
}
\def\@PrintFootnotePlain{%
    \vskip\skip\footins
    \footnoterule
    \unvbox\footins
}
\catcode`\@ = 12
\NameDef{@InputD-op-pagec.tip}{}
\catcode`\@ = 11
\def\endinsert{% 
    \egroup
    \if@mid
        \dimen@ = \ht0
        \advance\dimen@ by \dp0
        \advance\dimen@ by 12pt
        \advance\dimen@ by \pagetotal
        \ifdim\dimen@ > \pagegoal
            \@midfalse
            \p@gefalse
        \fi
    \fi
    \NameUse{MidInsertFix}%
    \if@mid
        \bigskip
        \box 0
        \bigbreak
    \else
        \insert\topins{% 
            \penalty 100
            \splittopskip = 0pt
            \splitmaxdepth = \maxdimen
            \floatingpenalty = 0
            \ifp@ge
                \dimen@ = \dp0
                \vbox to \vsize{
                    \unvbox 0
                    \kern -\dimen@
                }%
                \NameUse{MidInsertFixPage}%
            \else
                \NameUse{EndInsertTopInsFix}%
                \NameUse{MidInsertFixTop}%
                \box 0
                \nobreak
                \bigskip
            \fi
        }
    \fi
    \endgroup
}
\catcode`\@ = 12
\NameDef{@InputD-op-endin.tip}{}
\catcode`\@ = 11
\newdimen\@TopInsertSize
\@TopInsertSize = 0pt
\def\ReportTopInsertSize #1{%
    \wlog{\string\@TopInsertSize: "#1"}%
    \wlog{\EightSpaces The value of \noexpand\@TopInsertSize is
        \the\@TopInsertSize}%
}
\def\MidInsertFix{% 
    \ReportTopInsertSize{\string\MidInsertFix}%
    \ifdim\@TopInsertSize > 0pt
        \@midfalse
        \p@gefalse
    \fi
}
\def\MidInsertFixPage{%
    \ReportTopInsertSize{\string\MidInsertFixPage[1]}%
    \global\advance\@TopInsertSize by \vsize
    \ReportTopInsertSize{\string\MidInsertFixPage[2]}%
}
\def\MidInsertFixTop{%
    \ReportTopInsertSize{\string\MidInsertFixTop[1]}%
    \global\advance\@TopInsertSize by \ht0
    \global\advance\@TopInsertSize by \dp0
    \ReportTopInsertSize{\string\MidInsertFixTop[2]}%
}
\def\@UpdateTopInsertSize{%
    \ReportTopInsertSize{\string\@UpdateTopInsertSize[1]}%
    \global\advance\@TopInsertSize by -\ht\topins
    \global\advance\@TopInsertSize by -\dp\topins
    \ReportTopInsertSize{\string\@UpdateTopInsertSize[2]}%
}
\catcode`\@ = 12
\NameDef{@InputD-new-midi.tip}{}
\catcode`\@ = 11
\def\NewDef #1{%
    \ifx #1\@UndefinedToken
    \else
        \errhelp = {\string\NewDef:
            The name of the macro to be defined which you
            provided is already in use. Use \show to find out
            what the name is used for. The macro definition
            will nevertheless be executed.}%
        \errmessage{\string\NewDef: "\string#1" already defined.}%
    \fi
    \def #1%
}
\def\ReDef #1{%
    \ifx #1\@UndefinedToken
        \errhelp = {\string\ReDef:
            The name of the macro to be redefined which you
            provided has never been used before. The macro definition
            will nevertheless be executed. }%
        \errmessage{\string\ReDef: "\string#1" never defined
            before.}%
    \fi
    \def #1%
}
\catcode`\@ = 12
\NameDef{@InputD-newdef.tip}{}
\def\NewFont #1{% 
    \if\DefinedConditional{#1}% 
        \errmessage{\string\NewFont: intended font name
            "\string#1" already used.}
    \fi
    \font #1% 
}
\NameDef{@InputD-newfont.tip}{}
\catcode`\@ = 11
\let\@input = \input
\def\input{%
    \DoFutureLet{\ifx}{\bgroup}{\@InputA}{\@input}%
}
\def\@InputA #1{\@input #1}
\catcode`\@ = 12
\NameDef{@InputD-newinput.tip}{}
\def\NewPage{%
    \vfill
    \eject
}
\NameDef{@InputD-newpage.tip}{}
\def\NewLineMessage #1{%
    {%
        \newlinechar = `\|%
        \message{|#1}%
    }%
}
\NameDef{@InputD-nlm.tip}{}
\def\NewPageRightHand{% 
    \vfill\supereject
    \ifodd\count0
    \else
        \hbox{}
        \vfill\eject
    \fi
}
\def\ShouldBeRightHandPage{%
    \ifodd\count0
    \else
        \errmessage{\string\ShouldBeRightHandPage:
            current page number is \the\count0.
            Should be odd and NOT EVEN.}%
        \NewPageRightHand
    \fi
}
\def\NewPageLeftHand{%
    \vfill\supereject
    \ifodd\count0
        \hbox{}
        \vfill\eject
    \fi
}
\NameDef{@InputD-npright.tip}{}
\catcode`\@ = 11
\def\@OneDigitNumberText #1#2{%
    \ifcase #2\relax
        \ifnum #1=0
        \else
            zero%
        \fi
        \or
        one\or
        two\or
        three\or
        four\or
        five\or
        six\or
        seven\or
        eight\or
        nine% 
    \else
        \errmessage{\string\@OneDigitNumberText: number
            \number#2 out of range.}%
    \fi
}
\newcount\@NumberToConvert
\newcount\@NumberToConvertTwo
\newcount\@NumberToConvertAndFlag
\def\NumberToText #1{% 
    \@NumberToConvert = #1\relax    
    \ifnum\@NumberToConvert < 0
        minus
        \@NumberToConvert = -\@NumberToConvert
    \fi
    \CheckRange{\@NumberToConvert}{0}{999999}%
        {\string\NumberToText: numbers >= 1.000.000
            not handled.}%
    \@NumberToConvertAndFlag = 0
    \ifnum\@NumberToConvert > 999
        \@NumberToConvertTwo = \@NumberToConvert
        \divide\@NumberToConvert by 1000
        \@NumberToText
        \space thousand and
        \IModN{\@NumberToConvertTwo}{1000}{\@NumberToConvert}%
    \fi 
    \CheckRange{\@NumberToConvert}{0}{999}%
        {\string\NumberToText: internal error 1}%
    \@NumberToText
}
\newcount\@NumberToTextTmp
\def\@NumberToText{%
    \ifnum\@NumberToConvert > 99
        \ValueOfDecimalPosition{\@NumberToConvert}{2}% 
            {\@NumberToTextTmp}%
        \@OneDigitNumberText{1}{\@NumberToTextTmp}% 
        \space hundred and
        \IModN{\@NumberToConvert}{100}{\@NumberToConvert}%
    \fi
    \ValueOfDecimalPosition{\@NumberToConvert}{1}%
        {\@NumberToTextTmp}%
    \ifnum\@NumberToTextTmp > 1
        \ifcase\@NumberToTextTmp
                \errmessage{\string\@NumberToText:
                    internal error 1.}%
            \or
                \errmessage{\string\@NumberToText:
                    internal error 2.}%
            \or
            twenty\or
            thirty\or
            forty\or
            fifty\or
            sixty\or
            seventy\or
            eighty\or
            ninety%
        \else
            \errmessage{\string\@NumberToText:
                internal error 4.}%
        \fi
        \IModN{\@NumberToConvert}{10}{\@NumberToTextTmp}%
            \@OneDigitNumberText{0}{\@NumberToTextTmp}%
    \else
        \ifnum\@NumberToTextTmp = 1
            \advance\@NumberToConvert by -10
            \ifcase\@NumberToConvert
                ten\or
                eleven\or
                twelve\or
                thirteen\or
                fourteen\or
                fifteen\or
                sixteen\or
                seventeen\or
                eighteen\or
                nineteen%
            \fi
        \else
            \@OneDigitNumberText{1}{\@NumberToConvert}%
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-ntotext.tip}{}
\catcode`\@ = 11
\newcount\@NumberConditionalCounter
\def\@NumberConditional #1#2;{%
    \@NumberConditionalCounter = `#1\relax
}
\def\NumberConditional #1{%
    TT\fi
    \edef\@NumberConditionalString{#1}%
    \expandafter\@NumberConditional\@NumberConditionalString ;
    \if\InRangeConditional{\@NumberConditionalCounter}{`\0}{`\9}%
}
\catcode`\@ = 12
\NameDef{@InputD-numcond.tip}{}
\catcode`\@ = 11
\newcount\@WhileNesting
\@WhileNesting = 0
\def\WhileNum #1#2{%
    \global\advance\@WhileNesting by 1
    \edef\@WhileArgOne{{\the\@WhileNesting}}%
    \expandafter\@WhileNum\@WhileArgOne{#1}{#2}%
    \global\advance\@WhileNesting by -1
}
\def\@WhileNum #1#2#3{%
    \ifnum #2\relax
        #3\relax
        \NameDef{@WhileNum-#1}{\@WhileNum{#1}{#2}{#3}}% 
    \else
        \NameDef{@WhileNum-#1}{}%
    \fi
    \NameUse{@WhileNum-#1}{}%
}
\catcode`\@ = 12
\NameDef{@InputD-numwhile.tip}{}
\catcode`\@ = 11
\def\ObeyLines{% 
    \catcode`\^^M = \active
    \@EnableActiveEndOfLine
}
{
    \catcode`\^^M=\active           % Lines must end with '%'.
    \gdef\@EnableActiveEndOfLine{%
        \def
        {\leavevmode\par}% 
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-oblines.tip}{}
\catcode`\@ = 11
\def\ObeySpaces{% 
    \catcode`\ = \active
    \@InitActiveSpace
}
{\catcode`\ = \active
\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}}
\catcode`\@ = 12
\NameDef{@InputD-obspaces.tip}{}
\def\Oct #1{%
    {%
        \count4 = #1%
        \count0 = \count4
        \divide\count0 by 8
        \ifnum \count0 > 0
            \Oct{\count0}% 
        \fi
        \count2 = \count0
        \multiply \count2 by -8
        \advance \count4 by \count2
        \the\count4
    }% 
}
\NameDef{@InputD-oct.tip}{}
\def\PrintOdd #1{% 
    \ifodd #1\relax
        Number #1 is odd.
    \fi
}
\NameDef{@InputD-oddprin.tip}{}
\def\PrintOddEven #1{% 
    \ifodd #1\relax
        The number #1 is odd.
    \else
        The number #1 is even.
    \fi
}
\NameDef{@InputD-oeprin.tip}{}
\catcode`\@ = 11
\def\OptArgX #1#2{% 
    \let\@OptArgXTemp = #1%
    \def\@OptArgXDefault{[#2]}%
    \DoLongFutureLet{\ifx}{[}{\@OptArgXTemp}{\@OptArgXB}%
}
\def\@OptArgXB{\expandafter\@OptArgXTemp\@OptArgXDefault}
\catcode`\@ = 12
\NameDef{@InputD-optargx.tip}{}
\def\ParFl #1#2\par{%
    \par
    $$
        \vbox{
            \setbox 0 = \hbox{#1}
            \hsize = \wd0
            \noindent
            \unhbox 0
            \space
            #2
        }
    $$
    \par
}
\NameDef{@InputD-par-fl.tip}{}
\def\PickFirstOfTwo #1#2{#1}
\def\PickSecondOfTwo #1#2{#2}
\NameDef{@InputD-pickfs.tip}{}
\catcode`\@ = 11
\newif\if@LabelsOk
\def\@LabelRefPrefix{@REF-}
\def\@LabelIsDefined #1{%
    TT\fi
    \if\NameDefinedConditional{\@LabelRefPrefix#1}%
}
\def\@NewLabel #1#2#3{% 
    \if\@LabelIsDefined{#1}%
        \wlog{\string\@NewLabel: warning: label "#1"
            already defined.}%
    \fi
    \NameGdef{\@LabelRefPrefix #1}{{#2}{#3}}% 
}
\let\Saved@NewLabel = \@NewLabel
\def\Ref #1{% 
    \@ref{0}{#1}%
    \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
        {??}%
    \else
        \@TheExpandedLabel
    \fi
    \@PrintAfterLabel
}
\def\PageRef #1{% 
    \@ref{1}{#1}%
    \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
        {??}%
    \else
        \@TheExpandedLabel
    \fi
    \@PrintAfterLabel
}
\def\@MostRecentLabel{}
\def\@ref #1#2{%
    \xdef\@PrintAfterLabel{}%
    \DefaultArg{\@ThisLabel}{#2}{\@MostRecentLabel}% 
    \if\StringsEqualConditional{\@ThisLabel}{.}% 
        \xdef\@ThisLabel{\@MostRecentLabel}%
        \xdef\@PrintAfterLabel{.}%
    \fi
    \if\StringsEqualConditional{\@ThisLabel}{,}% 
        \xdef\@ThisLabel{\@MostRecentLabel}%
        \xdef\@PrintAfterLabel{,}%
    \fi
    \if\StringsEqualConditional{\@ThisLabel}{)}% 
        \xdef\@ThisLabel{\@MostRecentLabel}%
        \xdef\@PrintAfterLabel{)}%
    \fi
    \if\StringsEqualConditional{\@ThisLabel}{;}%
        \xdef\@ThisLabel{\@MostRecentLabel}%
        \xdef\@PrintAfterLabel{;}%
    \fi
    \xdef\@MostRecentLabel{\@ThisLabel}% 
    \if\@LabelIsDefined{\@ThisLabel}%
        \edef\@CrefTemp{\NameUse{\@LabelRefPrefix\@ThisLabel}}%
        \ifcase #1\relax 
            \edef\@TheExpandedLabel{%
                \expandafter\PickFirstOfTwo\@CrefTemp}%
        \or
            \edef\@TheExpandedLabel{%
                \expandafter\PickSecondOfTwo\@CrefTemp}%
        \fi
    \else
        \def\@TheExpandedLabel{??}
        \wlog{\string\@ref: Label \@ThisLabel\space undefined.}%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-part-cr.tip}{}
\def\PrintInDollar #1{%
    {%
        \ifnum #1 < 0
            $-$%
            \count0 = -#1\relax
        \else
            \count0 = #1\relax
        \fi
        \count2 = \count0
        \divide\count0 by 100
        \the\count0.%
        \multiply\count0 by 100
        \advance\count2 by -\count0
        \ifnum\count2 < 10
            0%
        \fi
        \the\count2
    }%
}
\NameDef{@InputD-pdollars.tip}{}
\catcode`\@ = 11
\def\PartSourceFileNameExtension{tex}
\def\AuxFileNameExtension{aux}
\def\TocFileNameExtension{toc}
\def\LofFileNameExtension{lof}
\def\LotFileNameExtension{lot}
\def\TmpFileNameExtension{tmp}
\newwrite\@PartAuxStream
\newwrite\@TmpFileStream
\def\i@write{\immediate\write}
\def\i@openout{\immediate\openout}
\def\i@closeout{\immediate\closeout}

\def\@ip@write{\i@write\@PartAuxStream}
\def\@p@write{\write\@PartAuxStream}
\def\@IgnoreAuxStuff{%
    \let\@NewLabel = \GobbleThree
    \let\@SetCounter = \GobbleTwo
    \let\@ForSpecialFile = \GobbleFive
}
\def\@ReadInAuxFiles{% 
    {%
        \def\\##1{\InputCWithAt{##1.aux}}%
        \@AllPartsOfDocumentList
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-pm-bas.tip}{}
\catcode`\@ = 11
\def\WriteAuxFileComment #1{%
    \@p@write{\PercentSignPure\space #1.}%
}
\catcode`\@ = 12
\NameDef{@InputD-pm-auxco.tip}{}
\catcode`\@ = 11
\NewCounter{PageNo}{\arabic}{\TheCounter{PageNo}}% 
    {\TheCounter{PageNo}}
\NewCounter{SWPageNo}{\arabic}%
    {\TheCounter{SWPageNo}}{\TheCounter{SWPageNo}}
\def\@PageNumbersToCounterRegs{%
    \CounterToRegister{\global\pageno}{PageNo}%
}
\SetCounter{PageNo}{1}
\@PageNumbersToCounterRegs
\def\advancepageno{%
    \StepCounter{PageNo}%
    \StepCounter{SWPageNo}%
    \@PageNumbersToCounterRegs
}
\def\folio{% 
    \PrintCounter{PageNo}% 
}
\catcode`\@ = 12
\NameDef{@InputD-pm-pagen.tip}{}
\catcode`\@ = 11
\def\WriteCountersToAuxFile{%
    \@WriteCounter{ChapterNo}% 
    \@WriteCounter{SectionNo}%
    \@WriteCounter{PageNo}%
}
\def\@WriteCounter #1{% 
    \@ip@write{% 
        \noexpand\@SetCounter
        {#1}% 
        {\expandafter\the\csname @C-#1\endcsname}}% 
}
\catcode`\@ = 12
\NameDef{@InputD-pm-wrc.tip}{}
\def\BoldfaceFake #1#2{%
    \hbox{%
        \hbox to #2{#1\hss}%
        \hbox to #2{#1\hss}%
        \hbox {#1}%     % Last time print text with reg. width.
    }%
}
\NameDef{@InputD-poorbold.tip}{}
\def\PrintAlph #1{%
    {%
        \count0 = #1%
        \advance\count0 by -1
        \advance\count0 by `\a
        \char\count0
    }%
}
\NameDef{@InputD-pralph.tip}{}
\def\ShowBoxAll #1{% 
    {% 
        \nonstopmode
        \showboxdepth = 10000
        \showboxbreadth = 10000
        \showbox #1%
    }%
}
\def\ShowBoxDepthOne #1{% 
    {% 
        \nonstopmode
        \showboxdepth = 1
        \showboxbreadth = 10000
        \showbox #1%
    }%
}
\def\ShowBoxDepthTwo #1{% 
    {% 
        \nonstopmode
        \showboxdepth = 2
        \showboxbreadth = 10000
        \showbox #1%
    }%
}
\NameDef{@InputD-shboxes.tip}{}
\def\PrintHyphens #1{%
    {%
        \setbox 0 = \vbox{%
            \pretolerance = -1
            \hyphenpenalty = -10000
            \hsize = 0pt
            \leftskip = 0pt
            \rightskip = 0pt
            \parfillskip = 0pt
            \parindent = 0pt
            \hfuzz = \maxdimen
            \interlinepenalty = 0
            \clubpenalty = 0
            \widowpenalty = 0
            \brokenpenalty = 0
            \hskip 0pt
            #1
        }% 
        \setbox2 = \hbox{}%
        \setbox 9 = \vbox{% 
            \unvbox 0
            \loop
                \unskip
                \setbox 1 = \lastbox
                \ifhbox 1
                    \global\setbox 2 = \hbox{% 
                        \unhbox 1
                        \discretionary{}{}{}% 
                        \unhbox 2
                    }% 
            \repeat
        }%
        \unhbox 2
    }%
}
\NameDef{@InputD-prhyph.tip}{}
\def\PrimitiveMarker{% 
    \leavevmode
    {%
        \footnotesize\tt
        \llap{*}%
    }%
}
\NameDef{@InputD-primmark.tip}{}
\newcount\AstCount
\def\PrintAsterisk #1{% 
    \AstCount = #1
    \ifnum\AstCount < 0
        \errmessage{\string\PrintAsterisk: negative counter.}%
        \AstCount = 0
    \fi
    \PrintAsteriskRec
}
\def\PrintAsteriskRec{% 
    *%
    \advance\AstCount by -1
    \ifnum\AstCount = 0
        \let\next = \relax
    \else
        \let\next = \PrintAsteriskRec
    \fi
    \next
}
\NameDef{@InputD-printast.tip}{}
\def\PrintRegister #1{% 
    The current value of {\tt\string #1} is \the#1.% 
}
\def\LogRegister #1{% 
    \message{The current value of \string#1 is \the#1.}
}
\NameDef{@InputD-printreg.tip}{}
\def\PrintMode{%
    \ifinner
        \ifvmode \message{Current mode: inner vertical}\fi
        \ifhmode \message{Current mode: restricted horizontal}\fi
        \ifmmode \message{Current mode: (inline) math}\fi
    \else
        \ifvmode \message{Current mode: (regular) vertical}\fi
        \ifhmode \message{Current mode: (regular) horizontal}\fi
        \ifmmode \message{Current mode: display math}\fi
    \fi
}
\NameDef{@InputD-prmode.tip}{}
\catcode`\@ = 11
\newif\ifProtWrite
\ProtWritetrue
\newcount\@ProtCount
\newcount\@ProtCountX
\newwrite\@ProtWrite
\def\InitProtWrite{% 
    \ifProtWrite
        \immediate\openout\@ProtWrite = \jobname.prt
    \fi
}
\def\CloseProtWrite{% 
    \immediate\closeout\@ProtWrite
}
\def\WriteProtocol #1#2{%
    \ifProtWrite
        {% 
            \@ProtCount = #1\relax
            \def\@WriteSpace{}%
            \DoLoop{\count1}{1}{1}{\@ProtCount}% 
                {\edef\@WriteSpace{\@WriteSpace\FourSpaces}}%
            \immediate\write\@ProtWrite{\@WriteSpace #2}%
        }%
    \fi
}
\def\BoxToProtocol #1#2#3{% 
    \ifProtWrite
        {%
            \WriteProtocol {#1}{\string\BoxToProtocol: #3}%
            \@ProtCountX = #1\relax
            \advance\@ProtCountX by 1
            \ifvoid #2%
                \WriteProtocol{\@ProtCountX}{Box register #2
                    is void.}%
            \else
                \ifhbox #2%
                    \WriteProtocol{\@ProtCountX}{Box register #2
                        is an hbox.}%
                \else
                    \WriteProtocol{\@ProtCountX}{Box register #2
                        is a vbox.}%
                \fi
            \fi
            \ifvoid #2%
            \else
                \WriteProtocol{\@ProtCountX}% 
                    {Dimensions: (\the\ht#2+\the\dp#2)*\the\wd#2.}%
            \fi
        }%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-prot.tip}{}
\def\ReportBoxType #1{%
    \message{\string\ReportBoxType: }%
    \ifvoid #1\message{Box register #1 is void.}\fi
    \ifhbox #1\message{Box register #1 contains a horizontal box.}\fi
    \ifvbox #1\message{Box register #1 contains a vertical box.}\fi
}
\NameDef{@InputD-rboxt.tip}{}
\catcode`\@ = 11
\newread\@ReadNumberStream
\newcount\ReadANumberResult
\def\InitReadNumbers #1{% 
    \openin\@ReadNumberStream = #1
}
\def\@ReadANumberPar{\par}
\def\ReadANumber{% 
    \ifeof\@ReadNumberStream
        \ReadANumberResult = -1
    \else
        \read\@ReadNumberStream to \@ReadANumberTemp
        \ifx\@ReadANumberTemp\@ReadANumberPar
            \ReadANumberResult = -1
        \else
            \ReadANumberResult = \@ReadANumberTemp
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-readnu.tip}{}
\catcode`\@ = 11
\newbox\@ReduceToStrutBox
\def\ReduceToStrut #1{% 
    \setbox\@ReduceToStrutBox = \hbox{#1}%
    \vrule height \ht\@ReduceToStrutBox
           depth  \dp\@ReduceToStrutBox
           width 0pt
}
\catcode`\@ = 12
\NameDef{@InputD-redtost.tip}{}
\catcode`\@ = 11
\def\MakeRobust{}
\def\TreatAsRobust #1{%
    \def #1{%
        \noexpand #1% 
    }%
}
\newtoks\@RobustTokenList
\@RobustTokenList = {}
\def\AddToRobustList #1{%
    \@RobustTokenList = \expandafter{\the\@RobustTokenList #1}% 
}
\def\Robusting{%
    \ForEachToken{\@RobustTokenList}{\TreatAsRobust}%
}
\catcode`\@ = 12
\NameDef{@InputD-robust.tip}{}
\catcode`\@ = 11
\newcount\@SampleParCounter
\newcount\@SampleParSentenceCounter
\@SampleParCounter = 1
\def\SamplePar #1#2{%
    \@SampleParSentenceCounter = 0
    Identification of this paragraph: {\it #1}.
    {\it Sample paragraph~\the\@SampleParCounter,
    with~#2 sentences}. So here we go,
    and when you check the number of sentences, then note
    that these first two sentences do {\it not\/} count.
    \loop
        \advance\@SampleParSentenceCounter by 1
        This is one of the many sentences this macro
        generates, to be more specific it is sentence
        number~\the\@SampleParSentenceCounter\space of~#2.
        \ifnum\@SampleParSentenceCounter < #2
    \repeat
    \par
    \global\advance\@SampleParCounter by 1
}
\catcode`\@ = 12
\NameDef{@InputD-samplepa.tip}{}
\catcode`\@ = 11
\newdimen\@StrutBaseDimension
\newdimen\@StrutSkipTemp
\def\ComputeStrut{%
    \@StrutBaseDimension = \baselineskip
    \ifdim\baselineskip < 0pt
        \errhelp = {You probably called \string\offinterlineskip
                before \string\ComputeStrut}
        \errmessage{\string\ComputeStrut: negative
                \string\baselineskip (\the\baselineskip)}% 
    \fi
}
\def\MyStrut{% 
    \vrule height 0.7\@StrutBaseDimension
           depth 0.3\@StrutBaseDimension
           width 0pt
}
\def\HigherStrut #1{% 
    \@StrutSkipTemp = 0.7\@StrutBaseDimension
    \advance\@StrutSkipTemp by #1% 
    \vrule height \@StrutSkipTemp
           depth 0.3\@StrutBaseDimension
           width 0pt
}
\def\DeeperStrut #1{% 
    \@StrutSkipTemp = 0.3\@StrutBaseDimension
    \advance\@StrutSkipTemp by #1% 
    \vrule height 0.7\@StrutBaseDimension
           depth \@StrutSkipTemp
           width 0pt
}
\ComputeStrut
\catcode`\@ = 12
\NameDef{@InputD-setstrut.tip}{}
\def\ShiftRefPointUpOrDown #1#2{%
    \AdvanceBoxDimension{\ht#1}{#2}%
    \ifdim\ht#1 < 0pt
        \ht#1 = 0pt
    \fi
    \AdvanceBoxDimension{\dp#1}{-#2}%
    \ifdim\dp#1 < 0pt
        \dp#1 = 0pt
    \fi
}
\NameDef{@InputD-shiftudb.tip}{}
\catcode`\@ = 11
\newif\ifShowPlainLists
\ShowPlainListsfalse
\def\@ShowPlainLists{%
    \ifShowPlainLists
        \wlog{*** \string\@ShowPlainLists: main vertical list ***}%
        \wlog{*** Page number (\string\count0): \the\count0
                \space***}%
        \ShowBoxDepthOne{255}%
        \ifvoid\footins
            \wlog{\string\@ShowPlainLists: no footnotes.}% 
        \else
            \wlog{*** \string\@ShowPlainLists: footnote box ***}%
            \ShowBoxDepthOne{\footins}%
        \fi
        \ifvoid\topins
            \wlog{\string\@ShowPlainLists: no topinserts.}% 
        \else
            \wlog{*** \string\@ShowPlainLists: top inserts ***}%
            \ShowBoxDepthTwo{\topins}%
        \fi
        \wlog{*** \string\@ShowPlainLists: end dump of
            page: \the\count0 \space ***}%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-showpll.tip}{}
\def\SignatureLine #1#2{% 
    \hbox{%
        \hbox to 0pt{% 
            \vrule width #1 height 0.6pt depth 0pt
            \hss        % Equivalent to \hskip -#1.
        }% 
        \lower 10pt \hbox to #1{\hfil #2\hfil}% 
    }% 
}
\NameDef{@InputD-sigline.tip}{}
\catcode`\@ = 11
\def\SaveSpaceFactor{% 
    \xdef\@SavedSpaceFactor{%
        \spacefactor = \the\spacefactor
    }%
}
\def\RestoreSpaceFactor{%
    \@SavedSpaceFactor
}
\catcode`\@ = 12
\NameDef{@InputD-spacefac.tip}{}
\catcode`\@ = 11
\newcount\@PPLineNumber
\newbox\@PrintParWithLinesBox
\newbox\@PrintParWithLinesTemp
\def\PrintParWithLineNumbers #1{%
    \par
    \@PPLineNumber = 1
    \splittopskip = 0.6666\baselineskip
    \setbox\@PrintParWithLinesBox = \vbox{#1}
    \@PrintParWithLineNumbers
}
\def\@PrintParWithLineNumbers{
    \ifvoid\@PrintParWithLinesBox
        \let\@PPNext = \relax
    \else
        \setbox\@PrintParWithLinesTemp =
            \vsplit\@PrintParWithLinesBox to 0.666\baselineskip
        \hbox{%
            \llap{% 
                \the\@PPLineNumber:% 
                \hskip 10pt
            }% 
            \box \@PrintParWithLinesTemp
        }% 
        \advance\@PPLineNumber by 1
        \wlog{Line \the\@PPLineNumber}%
        \let\@PPNext = \@PrintParWithLineNumbers
    \fi
    \@PPNext
}
\catcode`\@ = 12
\NameDef{@InputD-splitpar.tip}{}
\def\SameSizeMath{
    \textfont0 = \tenrm
    \scriptfont0 = \tenrm
    \scriptscriptfont0 = \tenrm
    \textfont1 = \tenit
    \scriptfont1 = \tenit
    \scriptscriptfont1 = \tenit
    \textfont2 = \tensy
    \scriptfont2 = \tensy
    \scriptscriptfont2 = \tensy
    \textfont3 = \tenex
    \scriptfont3 = \tenex
    \scriptscriptfont3 = \tenex
    \textfont\itfam = \tenit
    \textfont\slfam = \tensl
    \textfont\bffam = \tenbf
    \scriptfont\bffam = \tenbf
    \scriptscriptfont\bffam = \tenbf
    \textfont\ttfam = \tentt
}
\NameDef{@InputD-ssmath.tip}{}
\catcode`\@ = 11
\newcount\@StringSwitchMatchCount
\def\StringSwitch #1#2{%
    \edef\@StringSwitchMasterString{#1}%
    \if\EmptyStringConditional{#1}%
        \errmessage{\string\StringSwitch: master string
            must not be the empty string.}%
    \fi
    \def\@StringSwitchMatchCommonCode{#2}%
    \@StringSwitchMatchCount = 0
    \@StringSwitch  
}
\def\@StringSwitchOne #1#2{%
    \def\@StringSwitchString{#1}%
    \def\@StringSwitchAction{#2}%
}
\def\@StringSwitch #1{%
    \@StringSwitchOne #1%
    \if\EmptyStringConditional{\@StringSwitchString}%
        \ifcase\@StringSwitchMatchCount
            \@StringSwitchAction
        \or
        \else
            \errmessage{\string\StringSwitch: double match.}%
        \fi
        \def\@StringSwitchNext{}%
    \else
        \if\StringsEqualConditional{\@StringSwitchMasterString}%
            {\@StringSwitchString}%
            \advance\@StringSwitchMatchCount by 1
            \@StringSwitchMatchCommonCode
            \@StringSwitchAction
        \fi
        \def\@StringSwitchNext{\@StringSwitch}%
    \fi 
    \@StringSwitchNext
}
\catcode`\@ = 12
\NameDef{@InputD-stswitch.tip}{}
\def\SubstituteFontX #1#2#3#4{% 
    \def#1{% 
        \message{%
            \string\SubstituteFontX: No \string#2 font of
            #3pt, using \noexpand\rm instead.%
        }%
        \global\let #1 = #4% 
        #1% 
    }%
}
\NameDef{@InputD-substf.tip}{}
\catcode`\@ = 11
\newbox\@SwapBox
\def\SwapBoxRegs #1#2{% 
    \setbox\@SwapBox = \box#1% 
    \setbox#1 = \box#2% 
    \setbox#2 = \box\@SwapBox
}
\catcode`\@ = 12
\NameDef{@InputD-swapbox.tip}{}
\def\TableBeginCentered{% 
    $$
        \vbox\bgroup
            \offinterlineskip
                                \tabskip = 0pt
            \halign\bgroup
}
\def\TableEndCentered{% 
            \crcr
            \egroup
        \egroup
    $$
}
\NameDef{@InputD-tabcent.tip}{}
\catcode`\@ = 11
\newbox\@WidthSavingBox
\def\WidthSavingBox #1#2{% 
    \setbox\@WidthSavingBox = \hbox{#1}% 
    \MaxDimen{#2}{#2}{\wd\@WidthSavingBox}{\global}% 
    \box\@WidthSavingBox
}
\catcode`\@ = 12
\NameDef{@InputD-tabswb.tip}{}
\catcode`\@ = 11
\newcount\@GenTocEntryLevel
\def\GenTocEntry #1#2#3#4{%
    \par
    \bgroup
    \global\@GenTocEntryLevel = #1
    \leftskip = #4
    \parindent = #2
    \advance\parindent by -#4
    \dimen0 = #3
    \advance\dimen0 by -#2
    \@GenTocEntry
}
\def\@GenTocEntry #1#2#3#4#5#6#7#8{%
    \rightskip = #1 plus 1in
    \parfillskip = #2
    \advance\parfillskip by -#1
    #7
    \ifdim #3 > 0pt
        \setbox0 = \hbox to #3{\hfil.\hfil}
    \else
        \setbox0 = \box\voidb@x
    \fi
    \leavevmode
    \hbox to \dimen0 {#5\hfil}%
    {% 
        #6% 
        \unskip
    }%
    \ifvoid 0
        \hfill
    \else
        \nobreak\leaders\copy0\hskip #4plus 1fil
    \fi
    #8%
    \par
    \egroup
}
\catcode`\@ = 12
\NameDef{@InputD-toc-mac.tip}{}
\def\Today{% 
    \the\month/\the\day/\the\year
}
\NameDef{@InputD-today.tip}{}
\catcode`\@ = 11
\def\EndInsertTopInsFix{% 
    \ifdim\dp0 > 10pt
        \wlog{\string\endinsert: \string\topinsert
            material deeper than 10pt}%
        \dp0 = 10pt
    \fi
    \MaxDimen{\dimen0}{\dp0}{0pt}{}
    \dimen1 = \vsize
    \advance\dimen1 by -\dimen0
    \advance\dimen1 by -12pt
    \ifdim\ht0 > \dimen1
        \wlog{\string\endinsert: \noexpand\topinsert
            material too long (\the\ht0),}%
        \wlog{\EightSpaces shortened to \the\dimen1.}%
        \ht0 = \dimen1
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-topinfix.tip}{}
\def\Bref #1#2#3{% 
    #1 (19#2#3)% 
}
\NameDef{@InputD-ts-brefm.tip}{}
\def\td{%
    \hskip 0.5em plus 0.1em minus 0.1em
    $\bullet$%
    \hskip 0.5em plus 0.1em minus 0.1em
}
\NameDef{@InputD-ts-bul.tip}{}
\def\ChapterHeadingTeXIP #1#2{%
    \setbox 1 = 
    \vbox to 13pc{
        \hyphenpenalty = 10000
        \parindent = 0pt
        \huge
        \bf
        \baselineskip = 21pt
        \AlwaysBaselineskip
        \setbox 0 = \hbox{#1}%
        \copy0
        \parskip = 3pc
        \advance\parskip by -\dp0
        \advance\parskip by -\ht0
        \advance\parskip by -\baselineskip
        \wlog{\string\ChapterHeadingTeXIP: computed value
            of \noexpand\parskip is \the\parskip.}%
        \spaceskip = 0.3333em
        \xspaceskip = \spaceskip
        \rightskip = 0pt plus 4em
        #2
        \par
        \vfil
    }
    \box 1
    \SuppressNextParIndent
}
\NameDef{@InputD-ts-chhe.tip}{}
\catcode`\@ = 11
\NewCounter{ChapterNo}{\arabic}% 
    {\TheCounter{ChapterNo}}{\TheCounter{ChapterNo}}
\def\Chapter{\DblArg{\@Chapter}}%
\def\@Chapter [#1]#2{% 
    \ShouldBeRightHandPage
    \StepCounter{ChapterNo}%
    \gdef\@LeftRunningHead{#2}%
    \SetPageLayout{4}
    \ChapterHeadingTeXIP{\PrintCounter{ChapterNo}}{#2}
    \WriteToAuxSpecial{toc}{1}% 
        {\PrintCounter{ChapterNo}}{#1}{\PrintCounter{PageNo}}%
    \WriteToAuxSpecial{lof}{0}{}{}{}%
    \WriteToAuxSpecial{lot}{0}{}{}{}%
    \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}%
}
\NewCounter{AppendixNo}{\Alph}% 
    {\TheCounter{AppendixNo}}{\TheCounter{AppendixNo}}
\AddCounterToResetList{SectionNo}{AppendixNo}
\AddCounterToResetList{AppendixNo}{VolumeNo}
\def\Appendix{\DblArg{\@Appendix}}%
\def\@Appendix [#1]#2{% 
    \NewPageRightHand
    \StepCounter{AppendixNo}%
    \ReassignCounter{SectionNo}{\arabic}% 
        {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}% 
        {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}%
    \SetPageLayout{4}
    \ChapterHeadingTeXIP{Appendix \PrintCounter{AppendixNo}}{#2}
    \WriteToAuxSpecial{toc}{1}% 
        {\PrintCounter{AppendixNo}}{#1}{\PrintCounter{PageNo}}%
    \def\Label ##1{\@Label{##1}{\RefCounter{AppendixNo}}{1}}%
    \ignorespaces
}
\def\DoneWithAppendices{%
    \ReassignCounter{SectionNo}{\alph}%
        {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}% 
        {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}
    \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-chap.tip}{}
\catcode`\@ = 11
\def\@PageRef #1{% 
    \def\@PageRefResult{}%
    \@ref{1}{#1}%
    \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
        \def\@PageRefResult{??}%
    \else
        \if\PrefixConditional{\@TheExpandedLabel}%
                            {\TheCounter{VolumeNo}-}%
            \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}%
                       {\@TheShortenedLabel}%
            \edef\@PageRefResult{\@TheShortenedLabel}%
        \else
            \edef\@PageRefResult{\@TheExpandedLabel}%
        \fi
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-ts-pager.tip}{}
\catcode`\@ = 11
\newcount\@PageRefLimitLow
\newcount\@PageRefLimitHigh
\newif\if@CloseByReference
\newcount\@PageCloseRefCount
\newcount\@PageNumberActual
\def\NoSpecialPageRef{%
    \global\@NoSpecialPageReftrue
}
\newif\if@NoSpecialPageRef
\@NoSpecialPageReffalse
\def\@PageRef #1{% 
    \def\@PageRefResult{}%
    \global\@CloseByReferencefalse
    \StepCounter{CloseByReferenceCount}%
    \CounterToRegister{\global\@PageCloseRefCount}%
        {CloseByReferenceCount}%
    \@ref{1}{#1}%
    \if\StringsEqualConditional{\@TheExpandedLabel}{??}%
        \def\@PageRefResult{??}%
    \else
        \if\PrefixConditional
            {\@TheExpandedLabel}%
            {\TheCounter{VolumeNo}-}%
            \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}%
                       {\@TheShortenedLabel}%
            \def\@PageRefResult{\@TheShortenedLabel}%
            \Label{@READ@-%
                \@ThisLabel-\the\@PageCloseRefCount}%
            \@PageRefLimitLow = \@TheShortenedLabel
            \advance\@PageRefLimitLow by -1
            \@PageRefLimitHigh = \@TheShortenedLabel
            \advance\@PageRefLimitHigh by 1
            \edef\@Ref@Temp@Name{%
                \@LabelRefPrefix @READ@-% 
                \@ThisLabel-\the\@PageCloseRefCount
            }%
            \if\NameDefinedConditional{\@Ref@Temp@Name}%
                \edef\@Ref@Temp@NameTwo{% 
                    \NameUse{\@Ref@Temp@Name}% 
                }%
                \wlog{@READ@: 1 \@Ref@Temp@Name / 
                    \@Ref@Temp@NameTwo}%
                    \edef\@Ref@Temp@NameThree{%
                        \expandafter\PickSecondOfTwo
                            \@Ref@Temp@NameTwo
                    }%
                \wlog{@READ@ 1a: \@Ref@Temp@NameThree}% 
                \DropPrefix
                    {\@Ref@Temp@NameThree}%
                    {\TheCounter{VolumeNo}-}%
                    {\@ResultLocalRef}%
                \@PageNumberActual = \@ResultLocalRef
            \else
                \wlog{@READ@ 2}%
                \@PageNumberActual = \count0
                \@PageRefLimitLow = -10
                \@PageRefLimitHigh = -10
            \fi
            \if\InRangeConditional
                {\@PageNumberActual}%
                {\@PageRefLimitLow}%
                {\@PageRefLimitHigh}%
                \wlog{@READ@ 3}%
                \@CloseByReferencetrue
                \if@NoSpecialPageRef
                    \@CloseByReferencefalse
                \fi
            \else
                \wlog{@READ@ 4}%
                \@CloseByReferencefalse
            \fi
            \global\@NoSpecialPageReffalse
            \if@CloseByReference
                \ifnum\@PageNumberActual = \@PageRefLimitLow
                    \wlog{\string\PageRef: Reference "\@ThisLabel,"
                        on page \the\@PageNumberActual
                        \space refers to the next page.}%
                    \def\@PageRefResult{the next}%
                \fi
                \ifnum\@PageNumberActual = \@TheShortenedLabel
                    \wlog{\string\PageRef: Reference "\@ThisLabel"
                        on page \the\@PageNumberActual
                        \space refers to the current page.}%
                    \def\@PageRefResult{this}%
                \fi
                \ifnum\@PageNumberActual = \@PageRefLimitHigh
                    \wlog{\string\PageRef: Reference "\@ThisLabel"
                        on page \the\@PageNumberActual
                        \space refers to the preceding page.}%
                    \def\@PageRefResult{the previous}%
                \fi
            \fi
        \else
            \def\@PageRefResult{\@TheExpandedLabel}%
        \fi
    \fi
    \edef\@PageRefResult{\@PageRefResult}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-page2.tip}{}
\catcode`\@ = 11
\def\PageRef   #1{% 
    \@PageRef{#1}%
    \@PageRefResult
    \@PrintAfterLabel
}
\def\Page      #1{% 
    \PageShortForm~\@PageRef{#1}%
    \@PageRefResult
    \@PrintAfterLabel
}
\def\OnPage #1{%
    \@PageRef{#1}%
    \if@CloseByReference
        on \@PageRefResult\space page%
    \else
        on \PageShortForm~\@PageRefResult
    \fi
    \@PrintAfterLabel
}
\def\AtPage #1{%
    \@PageRef{#1}%
    \if@CloseByReference
        at \@PageRefResult\space page%
    \else
        at \PageShortForm~\@PageRefResult
    \fi
    \@PrintAfterLabel
}
\def\CommaPage #1{%
    \@PageRef{#1}%
    \if@CloseByReference
        \space on \@PageRefResult\space page%
        \@PrintAfterLabel
    \else
        ,\space
        \PageShortForm~\@PageRefResult
        \@PrintAfterLabel
    \fi
}
\def\CommaPageComma{%
    \@PageRef{,}%
    \if@CloseByReference
        \space on \@PageRefResult\space page\space
    \else
        ,\space
        \PageShortForm~\@PageRefResult
        \@PrintAfterLabel
        \space
    \fi
}
\def\PageShortForm{p.}
\def\PagesShortForm{pp.}
\def\see #1#2{% 
    see \@SeeSee{#1}{#2}%
}
\def\See #1#2{% 
    See \@SeeSee{#1}{#2}%
}
\def\@SeeSee #1#2{%
    \SectionRef{#1}%
    \if\StringsEqualConditional{#2}{,}%
        \CommaPageComma
        \let\@SeeSeeEnd = \ignorespaces
    \else
        \CommaPage
        #2%
        \let\@SeeSeeEnd = \relax
    \fi
    \@SeeSeeEnd
}
\def\ChapterRef #1{% 
    Chapter~\Ref{#1}%
}
\def\SectionRef #1{% 
    \Ref{#1}%
}
\def\ItemRef #1{% 
    item~\Ref{#1}%
}
\def\FigRef #1{% 
    Fig.~\Ref{#1}%
}
\def\FigureRef #1{% 
    Figure~\Ref{#1}%
}
\def\TableRef #1{% 
    Table~\Ref{#1}%
}
\def\AppendixRef #1{% 
    Appendix~\Ref{#1}%
}
\def\PagesRef #1#2{% 
    \PagesShortForm~\PageRef{#1}--\PageRef{#2}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-crm.tip}{}
\newdimen\HsizeTeXIP
\newdimen\VsizeTeXIP
\newcount\ClubPenalty
\newcount\WidowPenalty
\newcount\InterlinePenalty
\newcount\BrokenPenalty
\NameDef{@InputD-ts-dime1.tip}{}
\newif\ifWritePageLog
\WritePageLogfalse
\newwrite\PageLogStream
\def\WritePageLogFile{%
    \immediate\openout\PageLogStream = \jobname.plog
    \WritePageLogtrue
}
\newcount\BadnessSave
\ShowPlainListsfalse
\catcode`\@ = 11
\newcount\@PageLayoutCode
\def\SetPageLayout #1{% 
    \global\@PageLayoutCode = #1
    \CheckRange{\@PageLayoutCode}{0}{5}%
        {\string\SetPageLayout: }
}
\SetPageLayout{0}%
\def\@LeftRunningHead{}
\def\@RightRunningHead{}
\newcount\@SavedPageLayoutCode
\def\NewPageRightHandSpecial{% 
    \vfill
    \supereject
    \ifodd\count0
        \wlog{\string\NewPageRightHandSpecial: no empty
            page to generate (\string\count0 = \the\count0)}%
    \else
        \hbox{}
        \@SavedPageLayoutCode = \@PageLayoutCode
        \SetPageLayout{1}%
        \wlog{\string\NewPageRightHandSpecial: empty page
            generated,
            (\string\count0 = \the\count0).}%
        \vfill
        \eject
        \SetPageLayout{\@SavedPageLayoutCode}%
    \fi
}
\newdimen\OddPagesHorizontalShift
\newdimen\EvenPagesHorizontalShift
\newdimen\CurrentPageShift
\def\plainoutput{% 
    \@ShowPlainLists
    \edef\@LeftRunningHead{\@LeftRunningHead}%
    \edef\@RightRunningHead{\@RightRunningHead}%
    \ifnum\@PageLayoutCode = 0
    \else
        \headline = {}
        \footline = {}
    \fi
    \ifcase\@PageLayoutCode
    \or
    \or
        \global\@PageLayoutCode = 3
    \or
        \@PageLayoutCodeThree
    \or
        \global\@PageLayoutCode = 5
    \or
        \ifodd\count0
            \headline = {% 
                \small\rm
                \hfil
                \botmark
                \hskip 18pt
                \PrintCounter{PageNo}%
            }%
        \else
            \headline = {% 
                \small\rm
                \PrintCounter{PageNo}%
                \hskip 18pt
                \@LeftRunningHead
                \hfil
            }%
        \fi
    \else
        \errmessage{\string\plainoutput: \string\@PageLayoutCode
            out of range.}%
    \fi
    \setbox 4 = \vbox{%
        \pagebody
    }%
    \ifWritePageLog
        \immediate\write\PageLogStream{%
            Part name: \CurrentPartName, Page \the\count0
        }%
        \immediate\write\PageLogStream{%
            Page \the\count0:
            stretch: \the\pagestretch,
            shrink: \the\pageshrink,
            outputpenalty: \the\outputpenalty
        }%
        \immediate\write\PageLogStream{%
            pagefilstretch: \the\pagefilstretch,
            pagefillstretch: \the\pagefillstretch
        }%
        \immediate\write\PageLogStream{%
            ht 255: \the\ht255,
            dp 255: \the\dp255
        }%
        \NaturalHeight{\dimen0}{255}%
        \NaturalDepth{\dimen1}{255}%
        \immediate\write\PageLogStream{%
            Natural height: \the\dimen0,
            Natural depth:  \the\dimen1
        }%
        \dimen2 = \vsize
        \advance\dimen2 by -\dimen0
        \immediate\write\PageLogStream{%
            Ideal height: \the\vsize,
            Difference:  \the\dimen2
        }%
        \immediate\write\PageLogStream{%
            badness: \the\BadnessSave,
            height: \the\ht4,
            depth: \the\dp4
        }%
        \immediate\write\PageLogStream{}%
    \fi
    \setbox 5 = \vbox{%
        \makeheadline
        \box 4
        \makefootline
    }%
    \@MakeRobustMacros
    \ifodd\count0
        \CurrentPageShift = \OddPagesHorizontalShift
    \else
        \CurrentPageShift = \EvenPagesHorizontalShift
    \fi
    \wlog{Redefined \string\plainoutput (ts-outpu.tip):
        Shifting: shift amount is \the\CurrentPageShift\space\space
        (page is \the\pageno).}%
    \setbox 6 = \vbox{%
        \moveright\CurrentPageShift \box5
    }%
    \shipout\box6
    \advancepageno
    \ifnum\outputpenalty > -10000
    \else
        \dosupereject
    \fi
}
\def\@PageLayoutCodeThree{%
    \ifodd\count0
        \headline = {% 
            \small\rm
            \hfil
            \@RightRunningHead
            \hskip 18pt
            \PrintCounter{PageNo}%
        }%
    \else
        \headline = {% 
            \small\rm
            \PrintCounter{PageNo}%
            \hskip 18pt
            \@LeftRunningHead
            \hfil
        }%
    \fi
}
\catcode`\@ = 12
\NameDef{@InputD-ts-outpu.tip}{}
\def\SetUpTeXIPValues #1#2#3#4#5#6#7#8#9{%
    \HsizeTeXIP = #1\relax
    \hsize = \HsizeTeXIP
    \VsizeTeXIP = #2\relax
    \vsize = \VsizeTeXIP
    \SetParIndent{20pt}
    \ClubPenalty = #4\relax
    \clubpenalty = \ClubPenalty
    \WidowPenalty = #5\relax
    \widowpenalty = \WidowPenalty
    \InterlinePenalty = #6\relax
    \interlinepenalty = \InterlinePenalty
    \BrokenPenalty = #7\relax
    \brokenpenalty = \BrokenPenalty
    \OddPagesHorizontalShift = 0pt
    \EvenPagesHorizontalShift = 0pt
    \overfullrule = #8\relax
    \parskip = #9\relax
}
\SetUpTeXIPValues{6.5in}{8.9in}{20pt}{100}{100}{100}{100}% 
    {5pt}{0pt plus 1pt}
\NameDef{@InputD-ts-dime2.tip}{}
\def\SubstituteFont #1#2#3#4{% 
    \expandafter\newifOF \csname if-\string#1\endcsname
    \csname if-\string#1true\endcsname
    \def#1{% 
        \csname if-\string#1\endcsname
            \message{%
                \string\SubstituteFont: No \string#2 font at
                size #3pt, using \noexpand\rm instead.%
            }%
            \global\csname if-\string#1false\endcsname
        \fi
        #4% 
    }%
}
\NameDef{@InputD-ts-subst.tip}{}
\font\RmLargerThanLife = cmr17 scaled \magstep5
\NewFont\Vrm = cmr5
\NewFont\Vit = cmti7 at 5pt
\NewFont\Vbf = cmbx5
\NewFont\Vsc = cmcsc10 at 5pt
\SubstituteFont{\Vtt}{\tt}{7}{\VIIrm}
\SubstituteFont{\Vsc}{\sc}{7}{\VIIrm}
\SubstituteFont{\Vsl}{\sl}{7}{\VIIrm}
\NewFont\VIIrm = cmr7
\NewFont\VIIit = cmti7
\NewFont\VIIbf = cmbx7
\NewFont\VIIsc = cmcsc10 at 7pt
\SubstituteFont{\VIItt}{\tt}{7}{\VIIrm}
\SubstituteFont{\VIIsl}{\sl}{7}{\VIIrm}
\NewFont\VIIIrm = cmr8
\NewFont\VIIIit = cmti8
\NewFont\VIIIbf = cmbx8
\NewFont\VIIItt = cmtt8
\NewFont\VIIIsc = cmcsc10 at 8pt
\SubstituteFont{\VIIIsl}{\sl}{8}{\VIIIrm}
\NewFont\IXrm = cmr9
\NewFont\IXit = cmti9
\NewFont\IXbf = cmbx9
\NewFont\IXtt = cmtt9
\NewFont\IXsc = cmcsc10 at 9pt
\SubstituteFont{\IXsl}{\sl}{9}{\IXrm}
\NewFont\Xrm = cmr10
\NewFont\Xit = cmti10
\NewFont\Xbf = cmbx10
\NewFont\Xtt = cmtt10
\NewFont\Xsc = cmcsc10
\NewFont\Xsl = cmcsc10
\NewFont\XIIrm = cmr12
\NewFont\XIIit = cmti12
\NewFont\XIIbf = cmbx12
\NewFont\XIItt = cmtt12
\NewFont\XIIsc = cmcsc10 scaled \magstep 1
\NewFont\XIIsl = cmcsc10 scaled \magstep 1
\NewFont\XIIIrm = cmr12 scaled \magstephalf
\NewFont\XIIIit = cmti12 scaled \magstephalf
\NewFont\XIIIbf = cmbx12 scaled \magstephalf
\NewFont\XIIItt = cmtt12 scaled \magstephalf
\NewFont\XIIIsc = cmcsc10 scaled \magstephalf
\NewFont\XIIIsl = cmcsc10 scaled \magstephalf
\NewFont\XVIIrm = cmr12 scaled \magstep 2
\NewFont\XVIIit = cmti12 scaled \magstep 2
\NewFont\XVIIbf = cmbx12 scaled \magstep 2
\NewFont\XVIItt = cmtt12 scaled \magstep 2
\NewFont\XVIIsc = cmcsc10 scaled \magstep 3
\NewFont\XVIIsl = cmcsc10 scaled \magstep 3
\NewFont\XXIrm = cmr17 scaled \magstep 1
\NewFont\XXIit = cmti12 scaled \magstep 3
\NewFont\XXIbf = cmbx12 scaled \magstep 3
\NewFont\XXIsc = cmcsc10 scaled \magstep 4
\LoadFontOnDemand{\XXItt}{cmtt12 scaled \magstep 3}
\SubstituteFont{\XXIsl}{\sl}{20.74}{\XXIrm}
\NewFont\XXVrm = cmr17 scaled \magstep 2
\NewFont\XXVit = cmti12 scaled \magstep 4
\NewFont\XXVbf = cmbx12 scaled \magstep 4
\NewFont\XXVsc = cmcsc10 at 5pt
\LoadFontOnDemand{\XXVtt}{cmtt12 scaled \magstep 4}
\SubstituteFont{\XXVsl}{\sl}{20.74}{\XXVrm}
\DefineFontSizeGroup{V}{5}
\DefineFontSizeGroup{VII}{7}
\DefineFontSizeGroup{VIII}{8}
\DefineFontSizeGroup{IX}{9}
\DefineFontSizeGroup{X}{10}
\DefineFontSizeGroup{XII}{12}
\DefineFontSizeGroup{XIII}{13.14}
\DefineFontSizeGroup{XVII}{17.28}
\DefineFontSizeGroup{XXI}{20.74}
\DefineFontSizeGroup{XXV}{24.88}
\let\tiny = \FontSizeV
\let\scriptsize = \FontSizeVII
\let\footnotesize = \FontSizeVIII
\let\small = \FontSizeIX
\let\normalsize = \FontSizeX
\let\large = \FontSizeXII
\let\Large = \FontSizeXIII
\let\LARGE = \FontSizeXVII
\let\huge  = \FontSizeXXI
\let\Huge  = \FontSizeXXV
\def\LineSpaceMultFactor{1.2}
\normalsize
\NameDef{@InputD-ts-fonts.tip}{}
\catcode`\@ = 11
\newcount\@WidestLoopCounter
\newbox\@WidestLoopBox
\def\FindWidestChar #1#2#3#4{% 
    #1 = 0pt
    \DoLoop{\@WidestLoopCounter}{#3}{1}{#4}{%
        \setbox\@WidestLoopBox = \hbox{% 
            #2%
            \char\@WidestLoopCounter
        }%
        \MaxDimen{#1}{#1}{\wd\@WidestLoopBox}{}%
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-widestc.tip}{}
\catcode`\@ = 11
\newdimen\@WidthLevelOneLabels
\FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}%
    {`\0}{`\9}
\setbox 0 = \hbox{.\hskip 1em}
\advance\@WidthLevelOneLabels by \wd0
\def\@BeginEnumerateLevelOne{% 
    \BeginAList{\@WidthLevelOneLabels}{0pt}{1em}%
        {12pt}{0pt}%
        {0pt}{15pt}%
}
\newdimen\@WidthLevelTwoLabels
\FindWidestChar{\@WidthLevelTwoLabels}{\normalsize\rm}%
    {`\a}{`\j}
\setbox 0 = \hbox{()\hskip 1em}
\advance\@WidthLevelTwoLabels by \wd0
\def\@BeginEnumerateLevelTwo{%
    \BeginAList{\@WidthLevelTwoLabels}{0pt}{10pt}%
        {6pt}{0pt}%
        {0pt}{15pt}%
}
\newdimen\@WidthLevelThreeLabels
\setbox 0 = \hbox{viii.\hskip 1em}
\@WidthLevelThreeLabels = \wd0
\def\@BeginEnumerateLevelThree{%
    \BeginAList{\@WidthLevelThreeLabels}{0pt}{10pt}%
        {6pt}{0pt}%
        {0pt}{15pt}%
}
\newdimen\@WidthLevelFourLabels
\FindWidestChar{\@WidthLevelFourLabels}{\normalsize\rm}%
    {`\A}{`\J}
\setbox0 = \hbox{()\hskip 1em}
\advance\@WidthLevelFourLabels by \wd0
\def\@BeginEnumerateLevelFour{%
    \BeginAList{\@WidthLevelFourLabels}{0pt}{10pt}%
        {6pt}{0pt}%
        {0pt}{15pt}%
}
\def\EnumerateLevelOneExtended{% 
    \par
    \FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}%
    {`\0}{`\9}
    \multiply\@WidthLevelOneLabels by 2
    \setbox 0 = \hbox{.\hskip 1em}%
    \advance\@WidthLevelOneLabels by \wd0
}
\catcode`\@ = 12
\NameDef{@InputD-ts-enum.tip}{}
\catcode`\@ = 11
\NewCounter{FigureNo}{\arabic}% 
    {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}% 
    {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}%
\NewCounter{TableNo}{\arabic}% 
    {\TheCounter{ChapterNo}.\TheCounter{TableNo}}% 
    {\TheCounter{ChapterNo}.\TheCounter{TableNo}}%
\AddCounterToResetList{FigureNo}{ChapterNo}
\AddCounterToResetList{TableNo}{ChapterNo}
\def\Caption{\DblArg{\@Caption}}
\def\@Caption [#1]#2{%
    \errmessage{\string\@Caption: caption out of place, caption
        text = #1.}%
}
\def\BeginFigure{% 
    \DoFutureLet{\ifx}{[}{\@BeginFigure}{\@BeginFigure[t]}%
}
\newif\if@FigureInsertOk
\def\@BeginFigure[#1]{% 
    \begingroup
    \def\@UseThisInsert{}%
    \@FigureInsertOkfalse
    \if\StringsEqualConditional{#1}{t}%
        \def\@UseThisInsert{\topinsert}%
        \@FigureInsertOktrue
    \fi
    \if\StringsEqualConditional{#1}{p}%
        \def\@UseThisInsert{\pageinsert}%
        \@FigureInsertOktrue
    \fi
    \if@FigureInsertOk
    \else
        \errmessage{\string\@BeginFigure: illegal argument
            "#1." Use [t] instead.}%
        \def\@UseThisInsert{\topinsert}%
    \fi
    \gdef\FigureCaptionText{}%
    \gdef\FigureCaptionTextLof{}%
    \StepCounter{FigureNo}%
    \def\Label ##1{\@Label{##1}{\RefCounter{FigureNo}}{0}}%
    \def\@Caption [##1]##2{% 
        \gdef\FigureCaptionTextLof{##1}%
        \gdef\FigureCaptionText{##2}%
        \wlog{\noexpand\@Caption (figures), caption text saved:
                        ##2.}%
    }%
    \setbox 0 = \vbox\bgroup
}
\def\EndFigure{%
    \egroup
    \@UseThisInsert
        \box0
        \if\EmptyStringConditional{\FigureCaptionText}%
        \else
            \bigskip
            \CenterOrParagraph{% 
                \small
                Figure~\PrintCounter{FigureNo}.
                \FigureCaptionText
            }%
            \WriteToAuxSpecial{lof}{1}{\PrintCounter{FigureNo}}% 
                {\FigureCaptionTextLof}{\PrintCounter{PageNo}}%
        \fi
    \endinsert
    \endgroup
}
\def\BeginTable{% 
    \begingroup
    \gdef\TableCaptionText{}%
    \gdef\TableCaptionTextLot{}%
    \StepCounter{TableNo}%
    \def\Label ##1{\@Label{##1}{\RefCounter{TableNo}}{0}}%
    \def\@Caption [##1]##2{% 
        \gdef\TableCaptionText{##2}%
        \gdef\TableCaptionTextLot{##1}%
        \wlog{\noexpand\@Caption for tables: ##2}%
    }%
    \setbox 0 = \vbox\bgroup
}
\def\EndTable{%
    \egroup
    \topinsert
        \if\EmptyStringConditional{\TableCaptionText}%
        \else
            \smallskip
            \CenterOrParagraph{% 
                \small
                Table~\PrintCounter{TableNo}.
                \TableCaptionText}%
            \WriteToAuxSpecial{lot}{1}{\PrintCounter{TableNo}}% 
                {\TableCaptionTextLot}{\PrintCounter{PageNo}}%
            \smallskip
        \fi
        \box0
    \endinsert
    \endgroup
}
\catcode`\@ = 12
\NameDef{@InputD-ts-float.tip}{}
\catcode`\@ = 11
\NewCounter{FootNote}{\arabic}% 
    {\TheCounter{FootNote}}%
    {\PrintCounter{FootNote}}
\AddCounterToResetList{FootNote}{ChapterNo}
\def\FootNote #1{% 
    \StepCounter{FootNote}%
    \footnote{$^{\PrintCounter{FootNote}}$}% 
        {% 
            \small
            \baselineskip = 9pt
            #1% 
        }%
}
\skip\footins = 18.4pt
\def\@PrintFootnotePlain{%
    \vskip 12pt plus 2pt minus 1pt
    \hrule width 5pc height 0.4pt depth 0pt
    \vskip 6pt plus 1pt minus 0.5pt
    \unvbox\footins
}
\catcode`\@ = 12
\NameDef{@InputD-ts-foot.tip}{}
\NewCounter{VolumeNo}{\Roman}% 
    {\TheCounter{VolumeNo}}{\TheCounter{VolumeNo}}
\ReassignCounter{PageNo}{\arabic}% 
    {\TheCounter{PageNo}}% 
    {\TheCounter{VolumeNo}-\TheCounter{PageNo}}
\NameDef{@InputD-ts-vol.tip}{}
\catcode`\@ = 11
\NewCounter{SectionNo}{\arabic}% 
    {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}%
    {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}%
\NewCounter{SubSectionNo}{\arabic}%
    {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}%
    {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}%
\NewCounter{SubSubSectionNo}{\arabic}%
    {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}%
    {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}%
\NewCounter{CloseByReferenceCount}{\arabic}%
    {\PrintCounter{CloseByReferenceCount}}%
    {\PrintCounter{CloseByReferenceCount}}%
\AddCounterToResetList{SectionNo}{ChapterNo}%
\AddCounterToResetList{SubSectionNo}{SectionNo}%
\AddCounterToResetList{SubSubSectionNo}{SubSectionNo}%
\def\Section{\DblArg{\@Section}}%
\def\@Section [#1]#2{% 
    \StepCounter{SectionNo}%
    \def\Label ##1{\@Label{##1}{\RefCounter{SectionNo}}{1}}%
    \GenericHeading{2}{36pt plus 10pt minus 2pt}% 
        {1}{1}{1}{24pt}{0}%
        {\Large\baselineskip = 15pt}{-13pt}% 
        {\PrintCounter{SectionNo}}{#2}{#1}% 
    \gdef\EveryParB{%
        {%
            \@MakeRobustMacros
            \def\LineBreakToc{ }%
            \def\LineBreakHeading{ }%
            \def\IgnoreInRunningHead ####1{%
                \relax$\ldots$%
            }%
            \mark{#2}%
        }%
    }%
}
\def\SubSection{\DblArg{\@SubSection}}%
\def\@SubSection [#1]#2{% 
    \StepCounter{SubSectionNo}%
    \def\Label ##1{\@Label{##1}{\RefCounter{SubSectionNo}}{1}}%
    \GenericHeading{3}{30pt plus 8pt minus 2pt}% 
        {1}{1}{1}{18pt}{0}% 
        {\large\baselineskip = 14pt}{-12pt}% 
        {\PrintCounter{SubSectionNo}}{#2}{#1}% 
}
\def\SubSubSection{\DblArg{\@SubSubSection}}%
\def\@SubSubSection [#1]#2{% 
    \ifnum\TheCounter{SubSectionNo} = 0
        \errhelp = {The reason is probably that \string\Section
            occurred directly followed by \string\SubSubSection
            (that is you forgot a \string\SubSection in between).}%
        \errmessage{\string\@SubSubSection: Counter "SubSectionNo"
            is zero.}%
    \fi
    \StepCounter{SubSubSectionNo}%
    \def\Label ##1{\@Label{##1}{\RefCounter{SubSubSectionNo}}{1}}%
    \GenericHeading{4}{24pt plus 6pt minus 1pt}% 
        {1}{1}{1}{18pt}{0}% 
        {\normalsize}{-10pt}% 
        {\PrintCounter{SubSubSectionNo}}{#2}{#1}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-shead.tip}{}
\NameDef{@InputD-ts-hall.tip}{}
\catcode`\@ = 11
\def\label{\Label}
\def\WriteCountersToAuxFile{%
    \@WriteCounter{VolumeNo}%
    \@WriteCounter{ChapterNo}%
    \@WriteCounter{AppendixNo}%
    \@WriteCounter{SectionNo}%
    \@WriteCounter{SubSectionNo}%
    \@WriteCounter{SubSubSectionNo}%
    \@WriteCounter{PageNo}%
    \@WriteCounter{SWPageNo}%
    \@WriteCounter{FigureNo}%
    \@WriteCounter{TableNo}%
    \@WriteCounter{CloseByReferenceCount}%
}
\def\Label #1{% 
    \message{\noexpand\Label currently undefined,
        label "#1" ignored.}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-hmore.tip}{}
\lefthyphenmin  = 2
\righthyphenmin = 3
\hyphenation{Ado-be}
\hyphenation{after}
\hyphenation{base-line-skip}
\hyphenation{man-u-script}
\hyphenation{obey-lines}
\hyphenation{obey-spaces}
\hyphenation{other-wise}
\NameDef{@InputD-ts-hyph.tip}{}
\catcode`\@ = 11
\def\@BeginItemizeLevelOne{% 
    \BeginAList
        {15pt}{0pt}{15pt}% 
        {12pt}{0pt}%
        {0pt}{15pt}%
}
\def\@BeginItemizeLevelTwo{% 
    \BeginAList
        {15pt}{0pt}{15pt}% 
        {6pt}{0pt}%
        {0pt}{15pt}%
}
\def\@BeginItemizeLevelThree{%
    \BeginAList
        {15pt}{0pt}{15pt}% 
        {4pt}{0pt}%
        {0pt}{15pt}%
}
\def\@BeginItemizeLevelFour{%
    \BeginAList
        {15pt}{0pt}{15pt}% 
        {4pt}{0pt}%
        {0pt}{15pt}%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-itize.tip}{}
\def\TeXIP{%
    \TeX{} in Practice%
}
\def\WEB{% 
    {\tt WEB}% 
}
\NameDef{@InputD-ts-lazy.tip}{}
\def\EntryIntolof #1#2#3#4{% 
    \ifcase #1
        \MaxVskip{12pt}%
    \or
        \GenTocEntry{#1}{10pt}{50pt}{50pt}{25pt}%
            {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
    \else
        \errmessage{\string\EntryIntolof/lot: illegal level.}%
    \fi
}
\let\EntryIntolot = \EntryIntolof
\NameDef{@InputD-ts-loft.tip}{}
\def\PS{{\sc Post\-Script}}
\font\MetafontLogoFont = logo10 scaled \magstep0
\def\MF{{\MetafontLogoFont METAFONT}}
\def\textfontii{\the\textfont2}
\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox
    {\textfontii M}\kern-.125em{\textfontii S}-\TeX}
\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\NameDef{@InputD-ts-logo.tip}{}
\catcode`\@ = 11
\def\@MakeRobustMacros{% 
    \TreatAsRobust\rm
    \TreatAsRobust\bf
    \TreatAsRobust\it
    \TreatAsRobust\tt
    \TreatAsRobust\sc
    \TreatAsRobust\mac
    \TreatAsRobust\break
    \TreatAsRobust\dots
    \TreatAsRobust\MF
    \TreatAsRobust\TeX
    \TreatAsRobust\LaTeX
    \TreatAsRobust\PS
    \TreatAsRobust\AmSTeX
    \TreatAsRobust\ldots
    \TreatAsRobust\cdots
    \TreatAsRobust\dots
    \def\MakeRobust ##1{%
        \noexpand\MakeRobust
        \noexpand##1%
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-robst.tip}{}
\def\TeXIPVersionNumber{1.0}
\NameDef{@InputD-ts-vers.tip}{}
\def\MyNarrower{\narrower\narrower}
\frenchspacing
\NameDef{@InputD-ts-set.tip}{}
\def\EntryIntotoc #1#2#3#4{% 
    \par
    \ifcase #1
        \bigskip
    \or
        \bigskip
    \else
        \relax
    \fi
    \ifcase #1
        \GenTocEntry{0}{0pt}{20pt}{20pt}{30pt}% 
            {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
    \or
        \GenTocEntry{1}{0pt}{40pt}{40pt}{30pt}% 
            {0pt}{10pt}{0.5in}{#2}{#3}{\bf}{#4}
    \or
        \GenTocEntry{2}{10pt}{50pt}{50pt}{30pt}% 
            {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
    \or
        \GenTocEntry{#1}{20pt}{60pt}{60pt}{30pt}% 
            {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4}
    \or
    \else
        \errmessage{\string\EntryIntotoc: no level #1 subdivision
            in this series.}
    \fi
}
\NameDef{@InputD-ts-toc.tip}{}
\newdimen\LeftSkipVerbatim
\LeftSkipVerbatim = 0.3in
\def\VerbatimFont{\tt}
\newcount\VerbatimTab
\VerbatimTab = 8
\newif\ifVerbLineNum
\VerbLineNumtrue
\newskip\DisplayVerbatimVskip
\DisplayVerbatimVskip = 0pt plus 2pt minus 1pt
\newif\ifCaretTab
\CaretTabfalse
\newtoks\VerbatimTokBegin   \VerbatimTokBegin = {}
\newtoks\VerbatimTokLine    \VerbatimTokLine = {}
\newtoks\VerbatimTokEnd     \VerbatimTokEnd = {}
\catcode`\@ = 11
\newdimen\@VerbatimLr
\@VerbatimLr = 1.5pt
\newif\if@IgnoreFirstNewLine
\if\FormatIsLaTeXConditional
    \def\@VerbatimPar{\par\@@par}% 
    \def\@VerbatimNlf{\tiny}% 
\else
    \def\@VerbatimPar{\par}% 
    \def\@VerbatimNlf{\tiny}% 
\fi
\newcount\@VerbatimLineNumber
\newif\if@VerbatimL
\newdimen\Verb@TabSize
\def\@VObeySpaces{% 
    \MakeActive{\ }% 
    \@@VObeySpaces
}
{%
\MakeActive{\ }%
\gdef\@@VObeySpaces{%
\def {\VerbControlSpace}% 
}%
}
\def\@VObeyTabs{% 
    \MakeTabActive
    \@@VObeyTabs
}
{
    \MakeTabActive
    \gdef\@@VObeyTabs{% 
        \def^^I{\Verb@Tab}%
    }
}
\def\Verb@Tab{% 
    \leavevmode
    \egroup
    \dimen0 = \wd0
    \divide\dimen0 by \Verb@TabSize
    \advance\dimen0 by 1sp
    \multiply\dimen0 by \Verb@TabSize
    \wd0 = \dimen0
    \box0
    \setbox 0 = \hbox\bgroup
}
\def\@VObeyEol{% 
    \MakeEolActive % 
    \@@VObeyEol
}
{
    \MakeEolActive % 
    \gdef\@@VObeyEol{% 
        \let^^M = \Verb@Eol% 
    }% 
}
\def\Verb@Eol{%
    \if@IgnoreFirstNewLine
    \else
        \leavevmode
        \egroup
        \box 0
        \endgraf
    \fi
    \@IgnoreFirstNewLinefalse
}
\def\@VCaret{% 
    \MakeActive{\^}% 
    \@@VCaret
}
{
    \MakeActive{\^}% 
    \gdef\@@VCaret{% 
        \def^{% 
            \futurelet\@VSymbol\@@VCaretTwo
        }% 
        \def\@@VCaretTwo{%
            \ifx \@VSymbol^%
                \let\@VerbNext = \@@VCaretThree
            \else
                \CaretText
                \let\@VerbNext = \relax
            \fi
            \@VerbNext
        }% 
        \def\@@VCaretThree ^{%
            \futurelet\@VSymbol\@@VCaretFour
        }%
        \def\@@VCaretFour{% 
            \ifx \@VSymbol I%
                \Verb@Tab
            \else
                \CaretText\CaretText\@VSymbol
            \fi
            \GobbleOne
        }% 
    }% 
}
\def\@StartVerbatim #1{% 
    \begingroup
    \@VerbatimPar
    \vskip\DisplayVerbatimVskip
    \if\FormatIsLaTeXConditional
    \else
        \CancelSuppressNextParIndent
    \fi
    \setbox0 = \hbox{\VerbatimFont X}
    \Verb@TabSize = \wd0
    \multiply\Verb@TabSize by \VerbatimTab
    \parskip = 0pt
    \parindent = 0pt
    \leftskip = \LeftSkipVerbatim
    \rightskip = 0pt
    \parfillskip = 0pt plus 1fil
    \spaceskip = 0pt
    \xspaceskip = 0pt
    \VerbatimFont
    \if@VerbatimL
    \else
        \global\@VerbatimLineNumber = 0
    \fi
    \global\@VerbatimLfalse
    \ifnum #1 = 0
        \@IgnoreFirstNewLinetrue
    \else
        \@IgnoreFirstNewLinefalse
    \fi
    \if\FormatIsLaTeXConditional
        \everypar = {\EveryParZ}%
    \fi
    \def\EveryParZ{% 
        \the\VerbatimTokLine
        \global\advance\@VerbatimLineNumber by 1
        \ifVerbLineNum
            \raise \@VerbatimLr \hbox to 0pt{% 
                \hss
                \@VerbatimNlf
                \the\@VerbatimLineNumber
                \hskip 10pt
            }% 
        \fi
        \setbox 0 = \hbox\bgroup
    }%
    \MkOthers
    \@VObeySpaces
    \@VObeyTabs
    \@VObeyEol
    \ifCaretTab
        \@VCaret
    \fi
}
\def\@DoneVerbatim{%
    \endgroup
    \vskip\DisplayVerbatimVskip
    \def\@VerbatimEndSpecialDeal{}%
    \if\FormatIsLaTeXConditional
    \else
        \def\@VerbatimEndSpecialDeal{%
            \ParLookAhead
                {\SuppressNextParIndent}%
                {}
        }%
    \fi
    \@VerbatimEndSpecialDeal
}
\def\BeginVerbatim{% 
    \@StartVerbatim{0}% 
    \@BeginVerbatim
}
{   \catcode `| = 0 % | becomes escape character.
    \catcode`\\ =12 % \ becomes regular character.
    |gdef|@BeginVerbatim #1\EndVerbatim{% 
        #1% 
        |@DoneVerbatim
    }
}
\def\BVerB{% 
    \@StartVerbatim{0}% 
    \@BVerB
}
{
    \catcode `| = 0 % | becomes escape character.
    \catcode`\\ =12 % \ becomes regular character.
    |gdef|@BVerB #1\EVerB{% 
        #1% 
        |@DoneVerbatim
    }
}
\def\AppendVerbatimL #1{% 
    \global\@VerbatimLtrue
    \global\advance\@VerbatimLineNumber by #1\relax
}
\def\StartVerbatimL #1{% 
    \global\@VerbatimLtrue
    \global\@VerbatimLineNumber = #1\relax
}
\newcount\@SaveVerbatimLineNumber
\def\PushVerbatimL{%
    \global\@SaveVerbatimLineNumber = \@VerbatimLineNumber  
    \global\VerbLineNumfalse
}
\def\PopVerbatimL{%
    \global\@VerbatimLineNumber = \@SaveVerbatimLineNumber
    \global\VerbLineNumtrue
}
\catcode`\@ = 12
\NameDef{@InputD-verbdisp.tip}{}
\catcode`\@ = 11
\def\ListVerb #1{% 
    \@StartVerbatim{1}% 
    \input #1
    \@DoneVerbatim
}
\def\ListVerbIfFileExists #1{% 
    \par
    \if\FileExistsConditional{#1}%
        \ListVerb{#1}% 
    \else
        \centerline{$\bullet$ File {\tt #1} not found. $\bullet$}%
        \wlog{\string\ListVerbIfFileExists: no file "#1".}%
    \fi
}
\def\ListVerbAndSource #1{% 
    \ListVerb{#1}% 
    \input #1
}
\catcode`\@ = 12
\NameDef{@InputD-verb-mac.tip}{}
\catcode`\@ = 11
{\catcode`\ = \active
\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}}
\newif\if@VerbSpaceControl
\def\Verb{%
    \NextCharTest{*}{\@VerbSpaceControltrue \@VerbA}%
                    {\@VerbSpaceControlfalse\@VerbA}%
}
\def\@VerbA #1{%
    \bgroup
    \tt
    \MkOthers
    \if@VerbSpaceControl
    \else
        \catcode`\ = \active
        \@InitActiveSpace
    \fi
    \def\@VerbTemp ##1#1{%
        ##1%        % Simply print the argument.
        \egroup     % Undo font change and category code changes.
    }% 
    \@VerbTemp
}
\catcode`\@ = 12
\NameDef{@InputD-verb.tip}{}
\catcode`\@ = 11
\newwrite\@VStream
\newif\if@VStreamOpen
\@VStreamOpenfalse
\newcount\@VerbWriteCount
\@VerbWriteCount = 0
\def\BeginVerbWrite #1#2{%
    \global\advance\@VerbWriteCount by 1
    \wlog{\string\BeginVerbWrite: [\the\@VerbWriteCount]}%
    \DefaultArg{\@VerbWriteBaseName}{#1}{\jobname}%
    \DefaultArg{\@VerbWriteFileExt}{#2}{ver}% 
    \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}%
    \if@VStreamOpen
        \errmessage{\string\BeginVerbWrite: ERROR, file still open.}%
    \fi
    \OpenVerbWrFile{\@VerbWriteBaseName}{\@VerbWriteFileExt}% 
                    {\@VStream}%
    \global\@VStreamOpentrue
    \BeginVerbWr{\@VStream}{\EndVerbWrite}%
}
\def\CloseVerbWriteFile{% 
    \if@VStreamOpen
        \CloseVerbWrFile{\@VStream}%
        \global\@VStreamOpenfalse
    \fi
}
\def\AppendVerbWrite{%
    \wlog{\string\AppendVerbWrite: [\the\@VerbWriteCount]}%
    \if@VStreamOpen
    \else
        \errmessage{\string\AppendVerbWrite: no file open.}%
    \fi
    \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}%
    \BeginVerbWr{\@VStream}{\EndVerbWrite}%
}
\def\VerbAsVerb{%
    \CloseVerbWriteFile
    {%
        \CaretTabtrue
        \ListVerb{\@VerbWriteFileName}%
    }%
}
\def\VerbAsSource{%
    \CloseVerbWriteFile
    \input \@VerbWriteFileName \relax
}
\catcode`\@ = 12
\NameDef{@InputD-vwrt-mac.tip}{}
\catcode`\@ = 11
\def\@btex{% 
    \par
    \bgroup
    \small
}
\def\@etex{%
    \nobreak
    \egroup
    \if\FormatIsLaTeXConditional
        \def\@EtexEnd{}%
    \else   
        \def\@EtexEnd{%
            \ParLookAhead 
                {}%
                {\SuppressNextParIndent}%
        }%
    \fi
    \@EtexEnd
}
\def\btex{% 
    \@btex
    \@StartVerbatim{0}% 
    \btex@more
}
{
    \catcode `| =  0 % | becomes escape character.
    \catcode`\\ = 12 % \ now prints.
    |gdef|btex@more #1\etex{% 
        #1% 
        |@DoneVerbatim
        |@etex
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-verb1.tip}{}
\catcode`\@ = 11
\def\Btexalt{% 
    \@btex
    \@StartVerbatim{0}% 
    \btex@morealt
}
{
    \catcode `| =  0 % | becomes escape character.
    \catcode`\\ = 12 % \ now prints.
    |gdef|btex@morealt #1\Etexalt{% 
        #1% 
        |@DoneVerbatim
        |@etex
    }%
}
\catcode`\@ = 12
\NameDef{@InputD-ts-verb2.tip}{}
\catcode`\@ = 11
\def\verb{\Verb}
\VerbLineNumtrue
\VerbatimTab = 4
\DisplayVerbatimVskip = 5pt
\def\VerbatimFont{\small\tt}%
\def\ListVerbTeXIP #1{%
    \par
    \medskip
    \vskip 60pt
    \vskip -60pt
    \def\ListAsFileName{#1}% 
    \def\LabelName{code-#1}% 
    \if\SuffixConditional{#1}{.flf}% 
        \def\ListAsFileName ##1.flf{\def\ListAsFileName{##1.log}}%
        \ListAsFileName #1% 
        \def\LabelName{}%
    \else
    \if\SuffixConditional{#1}{.flf2}%
        \def\ListAsFileName ##1.flf2{\def\ListAsFileName{##1.log}}%
        \ListAsFileName #1% 
        \def\LabelName{}%
    \fi
    \fi
    \if\StringsEqualConditional{#1}{\jobname.ver}%
        \def\ListAsFileName{}%
        \def\LabelName{}%
    \fi
    \if\StringsEqualConditional{#1}{ex-verbwr.ver}
        \def\LabelName{}% 
    \fi
    \if\EmptyStringConditional{\LabelName}% 
    \else
        \Label{code-#1}% 
    \fi
    \if\EmptyStringConditional{\ListAsFileName}
    \else
        \centerline{% 
            $\bullet$% 
            \space
            \tt\ListAsFileName
            \space
            $\bullet$% 
        }%
    \fi
    \@btex
    \@StartVerbatim{1}% 
    \wlog{[\string\ListVerbTeXIP:}%
    \input #1
    \wlog{]}%   svb: this was \message before
    \@DoneVerbatim
    \@etex
}
\catcode`\@ = 12
\NameDef{@InputD-ts-verb.tip}{}
\newif\ifIndexSpecial
\IndexSpecialfalse
\catcode`\@ = 11
\newwrite\IdxStream
\newwrite\IdxStreamSource
\newif\if@IndexFilesOpen
\@IndexFilesOpenfalse
\def\OpenIndexFiles #1{%
    \if\EmptyStringConditional{#1}%
        \gdef\@IndexFileBaseName{\jobname}%
    \else
        \gdef\@IndexFileBaseName{#1}%
    \fi
    \if@IndexFilesOpen
        \message{\string\OpenIndexFiles: index files
            already open.}%
        \message{\string\OpenIndexFiles: will close
            old files, open new ones with basename
            "\@IndexFileBaseName".}%
        \immediate\closeout\IdxStream
        \immediate\closeout\IdxStreamSource
    \fi
    \@IndexFilesOpentrue
    \immediate\openout\IdxStream = \@IndexFileBaseName.idx
    \immediate\openout\IdxStreamSource = \@IndexFileBaseName.idx2
    \SetIndexStream{\IdxStream}%
}
\def\CloseIndexFiles{%
    \if@IndexFilesOpen
        \immediate\closeout\IdxStream
        \immediate\closeout\IdxStreamSource
        \@IndexFilesOpenfalse
    \fi
}
\def\SetIndexStream #1{%
    \let\IdxStreamUse = #1%
}
\def\Index{% 
    \begingroup
    \MkOthersNoCB
    \@Index
}
\xdef\@IndexSuffixMod{}%
\def\@Index #1{%
    \let\PrintCounter = \relax
    \xdef\IndexTemp{%
        \write\IdxStreamUse{%
            \string\indexentry{#1\@IndexSuffixMod}%
                {\PrintCounter{SWPageNo}}}%
    }%
    \ifIndexSpecial
        \SideNoteText{I: #1}%
    \fi
    \xdef\@IndexSuffixMod{}%
    \endgroup
    \IndexTemp
}
\def\IndexP #1{% 
    \Index{#1}%
    #1%
}
\def\IndexCS #1{% 
    \CSToString{\@IndexCSTemp}{#1}%
    \expandafter\expandafter\expandafter
        \Index{% 
            \@IndexCSTemp
            @% 
            {% 
                \string\tt
                \string\string
                \string#1% 
            }% 
        }%
}
\def\IndexCSX #1{% 
    \CSToString{\@IndexCSTemp}{#1}%
    \expandafter\expandafter\expandafter
        \Index{% 
            #1% 
            @% 
            {% 
                \string\tt
                \string\string
                \Backslash#1% 
            }% 
        }%
}
\def\IndexCSP #1{%
    \IndexCS{#1}%
    {\tt\string#1}%
}
\def\IndexPrim #1{% 
    \CSToString{\@IndexCSTemp}{#1}%
    \expandafter\expandafter\expandafter
        \Index{\@IndexCSTemp @%
            {\string\tt\string\string\string#1}|PRIMITIVE}%
}
\def\IndexPrimP #1{%
    \IndexPrim{#1}%
    {\tt\string #1}%
}
\def\IndexPar{\Index{par@\string\PrintParPrimitive}}
\def\PrintParPrimitive{\BackslashTt{\tt par}}
\def\IndexBye{\Index{bye@\string\PrintByePrimitive}}
\def\PrintByePrimitive{\BackslashTt{\tt bye}}
\def\IndexIf{\Index{if@\string\PrintIf|PRIMITIVE}}
\def\PrintIf{{\tt\string\if}}
\def\IndexElse{\Index{else@\string\PrintElse|PRIMITIVE}}
\def\PrintElse{{\tt\string\else}}
\def\IndexFi{\Index{fi@\string\PrintFi|PRIMITIVE}}
\def\PrintFi{{\tt\string\fi}}
\def\IndexIfCase{\Index{ifcase@\string\PrintIfCase|PRIMITIVE}}
\def\PrintIfCase{{\tt\string\ifcase}}
\def\IndexIfCat{\Index{ifcat@\string\PrintIfCat|PRIMITIVE}}
\def\PrintIfCat{{\tt\string\ifcat}}
\def\IndexIfX{\Index{ifx@\string\PrintIfX|PRIMITIVE}}
\def\PrintIfX{{\tt\string\ifx}}
\def\IndexIfOdd{\Index{ifodd@\string\PrintIfOdd|PRIMITIVE}}
\def\PrintIfOdd{{\tt\string\ifodd}}
\def\IndexIfHbox{\Index{ifhbox@\string\PrintIfHbox|PRIMITIVE}}
\def\PrintIfHbox{{\tt\string\ifhbox}}
\def\IndexIfVbox{\Index{ifvbox@\string\PrintIfVbox|PRIMITIVE}}
\def\PrintIfVbox{{\tt\string\ifvbox}}
\def\IndexIfVoid{\Index{ifvoid@\string\PrintIfVoid|PRIMITIVE}}
\def\PrintIfVoid{{\tt\string\ifvoid}}
\def\IndexIfNum{\Index{ifnum@\string\PrintIfNum|PRIMITIVE}}
\def\PrintIfNum{{\tt\string\ifnum}}
\def\IndexIfDim{\Index{ifdim@\string\PrintIfDim|PRIMITIVE}}
\def\PrintIfDim{{\tt\string\ifdim}}
\def\IndexIfHmode{\Index{ifhmode@\string\PrintIfHmode|PRIMITIVE}}
\def\PrintIfHmode{{\tt\string\ifhmode}}
\def\IndexIfVmode{\Index{ifvmode@\string\PrintIfVmode|PRIMITIVE}}
\def\PrintIfVmode{{\tt\string\ifvmode}}
\def\IndexIfMmode{\Index{ifvmode@\string\PrintIfMmode|PRIMITIVE}}
\def\PrintIfMmode{{\tt\string\ifvmode}}
\def\IndexIfInner{\Index{ifinner@\string\PrintIfInner|PRIMITIVE}}
\def\PrintIfInner{{\tt\string\ifinner}}
\def\IndexIfEof{\Index{ifeof@\string\PrintIfEof|PRIMITIVE}}
\def\PrintIfEof{{\tt\string\ifeof}}%
\def\IndexIfTrue{\Index{iftrue@\string\PrintIfTrue|PRIMITIVE}}
\def\PrintIfTrue{{\tt\string\iftrue}}%
\def\IndexIfFalse{\Index{iffalse@\string\PrintIfFalse|PRIMITIVE}}
\def\PrintIfFalse{{\tt\string\iffalse}}%
\def\IndexRepeat{\Index{repeat@\string\PrintRepeat}}
\def\PrintRepeat{{\tt\string\repeat}}%
\xdef\@IndexSuffixMod{}%
\def\IndexPSet #1{%
    \CSToString{\@IndexPSetResult}{#1}%
    \xdef\@IndexSuffixMod{|IndexP\@IndexPSetResult}%
}
\def\IndexPit #1{{\it #1}}
\def\IndexPbf #1{{\bf #1}}
\catcode`\@ = 12
\NameDef{@InputD-ts-wind.tip}{}
\def\WriteCounterOutImmediately #1#2{%
    \OpenGenericOStream{#1}%
    \immediate\write\GenericOStream
        {\PrintCounter{#2}}%
    \CloseGenericOStream
}
\NameDef{@InputD-ts-writc.tip}{}
\catcode`\@ = 11
\newdimen\@VtboxDim
\newbox\@VtboxBox
\def\Vtbox #1#2{%
    \@VtboxDim = \ht#1%
    \advance\@VtboxDim by \dp#1%
    \setbox\@VtboxBox = \vbox{\unvcopy #1}%
    \advance\@VtboxDim by -\ht\@VtboxBox
    \advance\@VtboxDim by -\dp\@VtboxBox
    #2\setbox #1 = \vtop spread \@VtboxDim {\unvbox #1}%
}
\catcode`\@ = 12
\NameDef{@InputD-vtbox.tip}{}
\def\WritingParShape{%
    \wlog{\string\WritingParShape: begin}%
    \wlog{}%
    \wlog{\string\pretolerance: \the\pretolerance}%
    \wlog{\string\tolerance: \the\tolerance}%
    \wlog{\string\prevgraf: \the\prevgraf}%
    \wlog{}%
    \wlog{\string\parskip: \the\parskip}%
    \wlog{\string\baselineskip: \the\baselineskip}%
    \wlog{\string\lineskip: \the\lineskip}%
    \wlog{\string\lineskiplimit: \the\lineskiplimit}%
    \wlog{}%
    \wlog{\string\parindent: \the\parindent}%
    \wlog{\string\hsize: \the\hsize}%
    \wlog{\string\leftskip: \the\leftskip}%
    \wlog{\string\rightskip: \the\rightskip}%
    \wlog{\string\parfillskip: \the\parfillskip}%
    \wlog{\string\spaceskip: \the\spaceskip}%
    \wlog{\string\xspaceskip: \the\xspaceskip}%
    \wlog{}%
    \wlog{\string\hyphenpenalty: \the\hyphenpenalty}%
    \wlog{\string\exhyphenpenalty: \the\exhyphenpenalty}%
    \wlog{\string\lefthyphenmin: \the\lefthyphenmin}%
    \wlog{\string\righthyphenmin: \the\righthyphenmin}%
    \wlog{\string\lefthyphenmin: \the\lefthyphenmin}%
    \wlog{}%
    \wlog{\string\adjdemerits: \the\adjdemerits}%
    \wlog{\string\doublehyphendemerits: \the\doublehyphendemerits}%
    \wlog{\string\finalhyphendemerits: \the\finalhyphendemerits}%
    \wlog{\string\linepenalty: \the\linepenalty}%
    \wlog{\string\sfcode\string\`.: \the\sfcode`\.}%
    \wlog{\string\hyphenchar: \the\hyphenchar\tenrm}%
    \wlog{}%
    \wlog{\string\binoppenalty: \the\binoppenalty}%
    \wlog{\string\relpenalty: \the\relpenalty}%
    \wlog{}%
    \wlog{\string\everypar: \the\everypar}%
    \wlog{\string\WritingParShape: end}%
}
\NameDef{@InputD-wl-parcp.tip}{}
\catcode`\@ = 11
\newwrite\@VerbArgStream
\def\WriteVerbatimArgument #1#2{%
    \immediate\openout\@VerbArgStream = #1
    \def\@AfterWriteVerbatimArgument{#2}%
    \begingroup
        \MkOthersNoCB
        \@WriteVerbatimArgument
}
\def\@WriteVerbatimArgument #1{%
        \immediate\write\@VerbArgStream{#1}%
        \immediate\closeout\@VerbArgStream
    \endgroup
    \@AfterWriteVerbatimArgument
}
\catcode`\@ = 12
\NameDef{@InputD-wrverbar.tip}{}
\catcode`\@ = 11
\newcount\X@ParShapeCountA
\newcount\X@ParShapeCountB
\newcount\X@ParShapeCountC
\newdimen\X@ParShapeDimenA
\newdimen\X@ParShapeDimenB
\def\XParShape{%
    \def\X@ParShapeCollect{ }%
    \X@ParShapeCountC = 0
    \afterassignment\X@ParShapeB
    \X@ParShapeCountA
}
\def\X@ParShapeB{%
    \ifnum\X@ParShapeCountA = 0
        \let\@XParShapeNext = \X@ParShapeD
    \else
        \advance\X@ParShapeCountA by -1
        \let\@XParShapeNext = \X@ParShapeC
    \fi
    \@XParShapeNext
}
\def\X@ParShapeD{%
    \parshape = \X@ParShapeCountC\X@ParShapeCollect
}
\def\X@ParShapeC #1 #2 #3 #4 #5 {%
    \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}%
    \X@ParShapeDimenA = #2% 
    \X@ParShapeDimenB = #4% 
    \DoLoop{\X@ParShapeCountB}{1}{1}{#1}%
        {% 
            \edef\X@ParShapeCollect{%
                \space
                \X@ParShapeCollect
                \the\X@ParShapeDimenA
                \space
                \the\X@ParShapeDimenB
                \space
            }%
            \advance\X@ParShapeCountC by 1
            \advance\X@ParShapeDimenA by #3\relax
            \advance\X@ParShapeDimenB by #5\relax
        }%
    \X@ParShapeB
}
\catcode`\@ = 12
\NameDef{@InputD-x-parsh.tip}{}
\newif\ifInputDVerbose
\InputDVerbosefalse
\catcode`\@ = 11
\newif\if@InputDList
\@InputDListfalse
\def\@InputDPrefix{@InputD-}
\NameDef{\@InputDPrefix namedef.tip}{}
\def\InputD #1{% 
    \if\NameDefinedConditional{\@InputDPrefix #1}%
        \ifInputDVerbose
            \wlog{\string\InputD: file "#1" was read-in before.}%
        \fi
    \else
        \NameDef{\@InputDPrefix #1}{}% 
        \input #1
        \if@InputDList
            \immediate\write\@InputDStream{#1}% 
        \fi
    \fi
}
\catcode`\@ = 12
\dump
