%%
%% This is file `xintfrac.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xint.dtx  (with options: `xintfrac')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from xintfrac.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file xint.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
%% The xint bundle (version 1.04 of April 25, 2013)
%% xintfrac: Expandable operations on fractions
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
%%
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5    % ^^M
  \endlinechar=13 %
  \catcode123=1   % {
  \catcode125=2   % }
  \catcode64=11   % @
  \catcode35=6    % #
  \catcode44=12   % ,
  \catcode45=12   % -
  \catcode46=12   % .
  \catcode58=12   % :
  \def\space { }%
  \let\z\endgroup
  \expandafter\let\expandafter\x\csname ver@xintfrac.sty\endcsname
  \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
  \expandafter
    \ifx\csname PackageInfo\endcsname\relax
      \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
    \else
      \def\y#1#2{\PackageInfo{#1}{#2}}%
    \fi
  \expandafter
  \ifx\csname numexpr\endcsname\relax
     \y{xintfrac}{\numexpr not available, aborting input}%
     \aftergroup\endinput
  \else
    \ifx\x\relax   % plain-TeX, first loading of xintfrac.sty
      \ifx\w\relax % but xint.sty not yet loaded.
         \y{xintfrac}{Package xint is required}%
         \y{xintfrac}{Will try \string\input\space xint.sty}%
         \def\z{\endgroup\input xint.sty\relax}%
      \fi
    \else
      \def\empty {}%
      \ifx\x\empty % LaTeX, first loading,
      % variable is initialized, but \ProvidesPackage not yet seen
          \ifx\w\relax % xint.sty not yet loaded.
            \y{xintfrac}{Package xint is required}%
            \y{xintfrac}{Will try \string\RequirePackage{xint}}%
            \def\z{\endgroup\RequirePackage{xint}}%
          \fi
      \else
        \y{xintfrac}{I was already loaded, aborting input}%
        \aftergroup\endinput
      \fi
    \fi
  \fi
\z%
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5    % ^^M
  \endlinechar=13 %
  \catcode123=1   % {
  \catcode125=2   % }
  \catcode64=11   % @
  \catcode35=6    % #
  \catcode44=12   % ,
  \catcode45=12   % -
  \catcode46=12   % .
  \catcode58=12   % :
  \expandafter
    \ifx\csname PackageInfo\endcsname\relax
      \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
    \else
      \def\y#1#2{\PackageInfo{#1}{#2}}%
    \fi
  \def\empty {}%
  \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
  \ifx\w\relax % Plain TeX, user gave a file name at the prompt
      \y{xintfrac}{Loading of package xint failed, aborting input}%
      \aftergroup\endinput
  \fi
  \ifx\w\empty % LaTeX, user gave a file name at the prompt
      \y{xintfrac}{Loading of package xint failed, aborting input}%
      \aftergroup\endinput
  \fi
\endgroup%
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5    % ^^M
  \endlinechar=13 %
  \catcode123=1   % {
  \catcode125=2   % }
  \catcode64=11   % @
  \def\x
  {%
      \endgroup
      \edef\XINT@frac@restorecatcodes@endinput
      {%
        \catcode94=\the\catcode94   % ^
        \catcode93=\the\catcode93   % ]
        \catcode91=\the\catcode91   % [
        \catcode47=\the\catcode47   % /
        \catcode41=\the\catcode41   % )
        \catcode40=\the\catcode40   % (
        \catcode42=\the\catcode42   % *
        \catcode43=\the\catcode43   % +
        \catcode62=\the\catcode62   % >
        \catcode60=\the\catcode60   % <
        \catcode58=\the\catcode58   % :
        \catcode46=\the\catcode46   % .
        \catcode45=\the\catcode45   % -
        \catcode44=\the\catcode44   % ,
        \catcode35=\the\catcode35   % #
        \catcode64=\the\catcode64   % @
        \catcode125=\the\catcode125 % }
        \catcode123=\the\catcode123 % {
        \endlinechar=\the\endlinechar
        \catcode13=\the\catcode13   % ^^M
        \catcode32=\the\catcode32   %
        \catcode61=\the\catcode61   % =
        \noexpand\endinput
      }%
      \XINT@setcatcodes
      \catcode91=12 % [
      \catcode93=12 % ]
      \catcode94=7  % ^
  }%
\x
\begingroup
  \catcode58=12 % :
  \expandafter\ifx\csname ProvidesPackage\endcsname\relax
    \def\x#1#2#3[#4]{\endgroup
      \immediate\write-1{Package: #3 #4}%
      \xdef#1{#4}%
    }%
  \else
    \def\x#1#2[#3]{\endgroup
      #2[{#3}]%
      \ifx#1\@undefined
        \xdef#1{#3}%
      \fi
      \ifx#1\relax
        \xdef#1{#3}%
      \fi
    }%
  \fi
\expandafter\x\csname ver@xintfrac.sty\endcsname
\ProvidesPackage{xintfrac}%
  [2013/04/25 v1.04 Expandable operations on fractions (jfB)]%
\def\xintLen {\romannumeral0\xintlen }%
\def\xintlen #1%
{%
    \expandafter\XINT@flen\romannumeral0\XINT@infrac {#1}%
}%
\def\XINT@flen #1#2#3%
{%
    \expandafter\space
    \the\numexpr -1+\XINT@Abs {#1}+\XINT@Len {#2}+\XINT@Len {#3}\relax
}%
\def\XINT@outfrac #1#2#3%
{%
    \ifcase\XINT@Sgn{#3}
        \expandafter \XINT@outfrac@divisionbyzero
    \or
        \expandafter \XINT@outfrac@P
    \else
        \expandafter \XINT@outfrac@N
    \fi
    {#2}{#3}[#1]%
}%
\def\XINT@outfrac@divisionbyzero #1#2%
    {\xintError:DivisionByZero\space #1/0}%
\def\XINT@outfrac@P #1#2%
{%
    \ifcase\XINT@Sgn{#1}
        \expandafter\XINT@outfrac@Zero
    \fi
    \space #1/#2%
}%
\def\XINT@outfrac@Zero #1[#2]{ 0[0]}%
\def\XINT@outfrac@N #1#2%
{%
    \expandafter\XINT@outfrac@N@a\expandafter
    {\romannumeral0\XINT@opp #2}{\romannumeral0\XINT@opp #1}%
}%
\def\XINT@outfrac@N@a #1#2%
{%
    \expandafter\XINT@outfrac@P\expandafter {#2}{#1}%
}%
\def\xintRaw {\romannumeral0\xintraw }%
\def\xintraw
{%
    \expandafter\XINT@raw\romannumeral0\XINT@infrac
}%
\def\XINT@raw #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@raw@Ba
    \or
      \expandafter\XINT@raw@A
    \else
      \expandafter\XINT@raw@Ba
    \fi
    {#1}%
}%
\def\XINT@raw@A  #1#2#3{\xint@dsh {#2}{-#1}/#3}%
\def\XINT@raw@Ba #1#2#3{\expandafter\XINT@raw@Bb
                        \expandafter{\romannumeral0\xint@dsh {#3}{#1}}{#2}}%
\def\XINT@raw@Bb #1#2{ #2/#1}%
\def\xintNumerator {\romannumeral0\xintnumerator }%
\def\xintnumerator
{%
    \expandafter\XINT@numer\romannumeral0\XINT@infrac
}%
\def\XINT@numer #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@numer@B
    \or
      \expandafter\XINT@numer@A
    \else
      \expandafter\XINT@numer@B
    \fi
    {#1}%
}%
\def\XINT@numer@A #1#2#3{\xint@dsh {#2}{-#1}}%
\def\XINT@numer@B #1#2#3{ #2}%
\def\xintDenominator {\romannumeral0\xintdenominator }%
\def\xintdenominator
{%
    \expandafter\XINT@denom\romannumeral0\XINT@infrac
}%
\def\XINT@denom #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@denom@B
    \or
      \expandafter\XINT@denom@A
    \else
      \expandafter\XINT@denom@B
    \fi
    {#1}%
}%
\def\XINT@denom@A #1#2#3{ #3}%
\def\XINT@denom@B #1#2#3{\xint@dsh {#3}{#1}}%
\def\xintFrac {\romannumeral0\xintfrac }%
\def\xintfrac #1%
{%
    \expandafter\XINT@@frac@A\romannumeral0\XINT@infrac {#1}%
}%
\def\XINT@@frac@A #1{\XINT@@frac@B #1\Z }%
\def\XINT@@frac@B #1#2\Z
{%
    \xint@zero #1\XINT@@frac@C 0\XINT@@frac@D {10^{#1#2}}%
}%
\def\XINT@@frac@C #1#2#3#4#5%
{%
    \ifcase\XINT@isOne {#5}
    \or \xint@afterfi {\expandafter\xint@firstoftwo@andstop\xint@gobble@two }%
    \fi
    \space
    \frac {#4}{#5}%
}%
\def\XINT@@frac@D #1#2#3%
{%
    \ifcase\XINT@isOne {#3}
    \or \XINT@@frac@E
    \fi
    \space
    \frac {#2}{#3}#1%
}%
\def\XINT@@frac@E \fi #1#2#3#4{\fi \space #3\cdot }%
\def\xintSignedFrac {\romannumeral0\xintsignedfrac }%
\def\xintsignedfrac #1%
{%
    \expandafter\XINT@sgnfrac@a\romannumeral0\XINT@infrac {#1}%
}%
\def\XINT@sgnfrac@a #1#2%
{%
    \XINT@sgnfrac@b #2\Z {#1}%
}%
\def\XINT@sgnfrac@b #1%
{%
    \xint@UDsignfork
      #1\dummy \XINT@sgnfrac@N
       -\dummy {\XINT@sgnfrac@P #1}%
    \xint@UDkrof
}%
\def\XINT@sgnfrac@P #1\Z #2%
{%
    \XINT@@frac@A {#2}{#1}%
}%
\def\XINT@sgnfrac@N
{%
    \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfrac@P
}%
\def\xintFwOver {\romannumeral0\xintfwover }%
\def\xintfwover #1%
{%
    \expandafter\XINT@fwover@A\romannumeral0\XINT@infrac {#1}%
}%
\def\XINT@fwover@A #1{\XINT@fwover@B #1\Z }%
\def\XINT@fwover@B #1#2\Z
{%
    \xint@zero #1\XINT@fwover@C 0\XINT@fwover@D {10^{#1#2}}%
}%
\def\XINT@fwover@C #1#2#3#4#5%
{%
    \ifcase\XINT@isOne {#5}
       \xint@afterfi { {#4\over #5}}%
    \or
       \xint@afterfi { #4}%
    \fi
}%
\def\XINT@fwover@D #1#2#3%
{%
    \ifcase\XINT@isOne {#3}
      \xint@afterfi { {#2\over #3}}%
    \or
      \xint@afterfi { #2\cdot }%
    \fi
    #1%
}%
\def\xintSignedFwOver {\romannumeral0\xintsignedfwover }%
\def\xintsignedfwover #1%
{%
    \expandafter\XINT@sgnfwover@a\romannumeral0\XINT@infrac {#1}%
}%
\def\XINT@sgnfwover@a #1#2%
{%
    \XINT@sgnfwover@b #2\Z {#1}%
}%
\def\XINT@sgnfwover@b #1%
{%
    \xint@UDsignfork
      #1\dummy \XINT@sgnfwover@N
       -\dummy {\XINT@sgnfwover@P #1}%
    \xint@UDkrof
}%
\def\XINT@sgnfwover@P #1\Z #2%
{%
    \XINT@fwover@A {#2}{#1}%
}%
\def\XINT@sgnfwover@N
{%
    \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfwover@P
}%
\def\xintSum {\romannumeral0\xintsum }%
\def\xintsum #1{\xintsumexpr #1\relax }%
\def\xintSumExpr {\romannumeral0\xintsumexpr }%
\def\xintsumexpr {\expandafter\expandafter\expandafter\XINT@fsumexpr }%
\def\XINT@fsumexpr {\XINT@fsum@loop@a {0[0]}}%
\def\XINT@fsum@loop@a #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@fsum@loop@b #2\Z {#1}%
}%
\def\XINT@fsum@loop@b #1%
{%
    \xint@relax #1\XINT@fsum@finished\relax
    \XINT@fsum@loop@c #1%
}%
\def\XINT@fsum@loop@c #1\Z #2%
{%
    \expandafter\XINT@fsum@loop@a\expandafter
         {\romannumeral0\xintadd {#2}{#1}}%
}%
\def\XINT@fsum@finished #1\Z #2{ #2}%
\def\xintPrd {\romannumeral0\xintprd }%
\def\xintprd #1{\xintproductexpr #1\relax }%
\def\xintProductExpr {\romannumeral0\xintproductexpr }%
\def\xintproductexpr{\expandafter\expandafter\expandafter\XINT@fproductexpr }%
\def\XINT@fproductexpr {\XINT@fprod@loop@a {1[0]}}%
\def\XINT@fprod@loop@a #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@fprod@loop@b #2\Z {#1}%
}%
\def\XINT@fprod@loop@b #1%
{%
    \xint@relax #1\XINT@fprod@finished\relax
    \XINT@fprod@loop@c #1%
}%
\def\XINT@fprod@loop@c #1\Z #2%
{%
    \expandafter\XINT@fprod@loop@a\expandafter
         {\romannumeral0\xintmul {#1}{#2}}%
}%
\def\XINT@fprod@finished #1\Z #2{ #2}%
\def\XINT@inFrac {\romannumeral0\XINT@infrac }%
\def\XINT@infrac #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@infrac@ #1[\W]\Z\T
}%
\def\XINT@infrac@ #1[#2#3]#4\Z
{%
    \xint@UDwfork
      #2\dummy \XINT@infrac@A
      \W\dummy \XINT@infrac@B
    \xint@UDkrof
    #1[#2#3]#4%
}%
\def\XINT@infrac@A #1[\W]\T
{%
    \XINT@frac #1/\W\Z
}%
\def\XINT@infrac@B #1%
{%
    \xint@zero #1\XINT@infrac@Zero0\XINT@infrac@BB #1%
}%
\def\XINT@infrac@BB #1[\W]\T {\XINT@infrac@BC #1/\W\Z }%
\def\XINT@infrac@BC #1/#2#3\Z
{%
    \xint@UDwfork
     #2\dummy \XINT@infrac@BCa
     \W\dummy {\expandafter\expandafter\expandafter\XINT@infrac@BCb #2}%
    \xint@UDkrof
    #3\Z #1\Z
}%
\def\XINT@infrac@BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}%
\def\XINT@infrac@BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}%
\def\XINT@infrac@Zero #1\T { {0}{0}{1}}%
\def\XINT@frac #1/#2#3\Z
{%
    \xint@UDwfork
     #2\dummy \XINT@frac@A
     \W\dummy {\expandafter\expandafter\expandafter\XINT@frac@B #2}%
    \xint@UDkrof
    #3.\W\Z #1.\W\Z
}%
\def\XINT@frac@B #1.#2#3\Z
{%
    \xint@UDwfork
      #2\dummy \XINT@frac@Ba
      \W\dummy {\XINT@frac@Bb #2}%
    \xint@UDkrof
    #3\Z #1\Z
}%
\def\XINT@frac@Bb #1/\W.\W\Z #2\Z
{%
    \expandafter \XINT@frac@C \expandafter
    {\romannumeral0\XINT@length {#1}}{#2#1}%
}%
\def\XINT@frac@Ba \Z #1/\W\Z {\XINT@frac@C {0}{#1}}%
\def\XINT@frac@A .\W\Z {\XINT@frac@C {0}{1}}%
\def\XINT@frac@C #1#2#3.#4#5\Z
{%
    \xint@UDwfork
      #4\dummy \XINT@frac@Ca
      \W\dummy {\XINT@frac@Cb #4}%
    \xint@UDkrof
    #5\Z #3\Z {#1}{#2}%
}%
\def\XINT@frac@Ca \Z #1\Z {\XINT@frac@D {0}{#1}}%
\def\XINT@frac@Cb #1.\W\Z #2\Z
{%
    \expandafter \XINT@frac@D \expandafter
    {\romannumeral0\XINT@length {#1}}{#2#1}%
}%
\def\XINT@frac@D #1#2#3#4%
{%
    \expandafter \XINT@frac@E \expandafter
    {\the\numexpr -#1+#3\expandafter}\expandafter
    {\romannumeral0\XINT@num@loop #2\R\R\R\R\R\R\R\R\Z }%
    {\romannumeral0\XINT@num@loop #4\R\R\R\R\R\R\R\R\Z }%
}%
\def\XINT@frac@E #1#2#3%
{%
   \expandafter \XINT@frac@F  #3\Z {#2}{#1}%
}%
\def\XINT@frac@F #1%
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@frac@Gdivisionbyzero
      0#1\dummy  \XINT@frac@Gneg
       0-\dummy  {\XINT@frac@Gpos #1}%
    \xint@UDkrof
}%
\def\XINT@frac@Gdivisionbyzero #1\Z #2#3%
{%
   \xintError:DivisionByZero
   \expandafter\space {0}{#2}{0}%
}%
\def\XINT@frac@Gneg #1\Z #2#3%
{%
    \expandafter\XINT@frac@H \expandafter
    {\romannumeral0\XINT@opp #2}{#3}{#1}%
}%
\def\XINT@frac@H #1#2{ {#2}{#1}}%
\def\XINT@frac@Gpos #1\Z #2#3{ {#3}{#2}{#1}}%
\def\XINT@factortens #1%
{%
    \expandafter\XINT@cuz@cnt@loop\expandafter
    {\expandafter}\romannumeral0\XINT@rord@main {}#1%
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF
    \R\R\R\R\R\R\R\R\Z
}%
\def\XINT@cuz@cnt #1%
{%
    \XINT@cuz@cnt@loop {}#1\R\R\R\R\R\R\R\R\Z
}%
\def\XINT@cuz@cnt@loop #1#2#3#4#5#6#7#8#9%
{%
    \xint@r #9\XINT@cuz@cnt@toofara \R
    \expandafter\XINT@cuz@cnt@checka\expandafter
    {\the\numexpr #1+8\relax}{#2#3#4#5#6#7#8#9}%
}%
\def\XINT@cuz@cnt@toofara #1#2#3#4#5#6%
{%
    \XINT@cuz@cnt@toofarb {#5}#6%
}%
\def\XINT@cuz@cnt@toofarb #1#2\Z
    {\XINT@cuz@cnt@toofarc #2\Z {#1}}%
\def\XINT@cuz@cnt@toofarc #1#2#3#4#5#6#7#8%
{%
    \xint@r #2\XINT@cuz@cnt@toofard 7%
            #3\XINT@cuz@cnt@toofard 6%
            #4\XINT@cuz@cnt@toofard 5%
            #5\XINT@cuz@cnt@toofard 4%
            #6\XINT@cuz@cnt@toofard 3%
            #7\XINT@cuz@cnt@toofard 2%
            #8\XINT@cuz@cnt@toofard 1%
            \Z #1#2#3#4#5#6#7#8%
}%
\def\XINT@cuz@cnt@toofard #1#2\Z #3\R #4\Z #5%
{%
    \expandafter\XINT@cuz@cnt@toofare
    \the\numexpr #3\relax \R\R\R\R\R\R\R\R\Z
    {\the\numexpr #5-#1\relax}\R\Z
}%
\def\XINT@cuz@cnt@toofare #1#2#3#4#5#6#7#8%
{%
    \xint@r #2\XINT@cuz@cnt@stopc 1%
            #3\XINT@cuz@cnt@stopc 2%
            #4\XINT@cuz@cnt@stopc 3%
            #5\XINT@cuz@cnt@stopc 4%
            #6\XINT@cuz@cnt@stopc 5%
            #7\XINT@cuz@cnt@stopc 6%
            #8\XINT@cuz@cnt@stopc 7%
            \Z #1#2#3#4#5#6#7#8%
}%
\def\XINT@cuz@cnt@checka #1#2%
{%
    \expandafter\XINT@cuz@cnt@checkb\the\numexpr #2\relax \Z {#1}%
}%
\def\XINT@cuz@cnt@checkb #1%
{%
    \xint@zero #1\expandafter\XINT@cuz@cnt@loop\xint@z
    0\XINT@cuz@cnt@stopa #1%
}%
\def\XINT@cuz@cnt@stopa #1\Z
{%
    \XINT@cuz@cnt@stopb #1\R\R\R\R\R\R\R\R\Z %
}%
\def\XINT@cuz@cnt@stopb #1#2#3#4#5#6#7#8#9%
{%
    \xint@r #2\XINT@cuz@cnt@stopc 1%
            #3\XINT@cuz@cnt@stopc 2%
            #4\XINT@cuz@cnt@stopc 3%
            #5\XINT@cuz@cnt@stopc 4%
            #6\XINT@cuz@cnt@stopc 5%
            #7\XINT@cuz@cnt@stopc 6%
            #8\XINT@cuz@cnt@stopc 7%
            #9\XINT@cuz@cnt@stopc 8%
            \Z #1#2#3#4#5#6#7#8#9%
}%
\def\XINT@cuz@cnt@stopc #1#2\Z #3\R #4\Z #5%
{%
    \expandafter\XINT@cuz@cnt@stopd\expandafter
    {\the\numexpr #5-#1\relax}#3%
}%
\def\XINT@cuz@cnt@stopd #1#2\R #3\Z
{%
    \expandafter\space\expandafter
     {\romannumeral0\XINT@rord@main {}#2%
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF }{#1}%
}%
\def\xintREZ {\romannumeral0\xintrez }%
\def\xintrez
{%
    \expandafter\XINT@rez@A\romannumeral0\XINT@infrac
}%
\def\XINT@rez@A #1#2%
{%
    \XINT@rez@AB #2\Z {#1}%
}%
\def\XINT@rez@AB #1%
{%
    \xint@UDzerominusfork
      #1-\dummy \XINT@rez@zero
      0#1\dummy \XINT@rez@neg
       0-\dummy {\XINT@rez@B #1}%
    \xint@UDkrof
}%
\def\XINT@rez@zero #1\Z #2#3{ 0/1[0]}%
\def\XINT@rez@neg
{\expandafter\space\expandafter-\romannumeral0\XINT@rez@B }%
\def\XINT@rez@B #1\Z
{%
    \expandafter\XINT@rez@C\romannumeral0\XINT@factortens {#1}%
}%
\def\XINT@rez@C #1#2#3#4%
{%
    \expandafter\XINT@rez@D\romannumeral0\XINT@factortens {#4}{#3}{#2}{#1}%
}%
\def\XINT@rez@D #1#2#3#4#5%
{%
    \expandafter\XINT@rez@E\expandafter
    {\the\numexpr #3+#4-#2}{#1}{#5}%
}%
\def\XINT@rez@E #1#2#3{ #3/#2[#1]}%
\def\xintIrr {\romannumeral0\xintirr }%
\def\xintirr
{%
    \expandafter\XINT@irr@putsign
    \romannumeral0\expandafter\XINT@irr
    \romannumeral0\XINT@infrac
}%
\def\XINT@irr@putsign #1#2#3%
{%
    \ifcase\XINT@isOne {#2}
      \xint@afterfi {#3#1/#2}%
    \or
      \xint@afterfi {#3#1}%
    \fi
}%
\def\XINT@irr #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@irr@B
    \or
      \expandafter\XINT@irr@A
    \else
      \expandafter\XINT@irr@B
    \fi
    {#1}%
}%
\def\XINT@irr@A #1#2%
{%
    \expandafter \XINT@irr@C
    \romannumeral0\xint@dsh {#2}{-#1}\Z
}%
\def\XINT@irr@B #1#2#3%
{%
    \expandafter \XINT@irr@BC \expandafter
    {\romannumeral0\xint@dsh {#3}{#1}}{#2}%
}%
\def\XINT@irr@BC #1#2{\XINT@irr@C #2\Z {#1}}%
\def\XINT@irr@C #1#2\Z
{%
    \xint@UDsignfork
       #1\dummy \XINT@irr@negative
        -\dummy {\XINT@irr@nonneg #1}%
    \xint@UDkrof
    #2\Z
}%
\def\XINT@irr@negative #1\Z #2{\XINT@irr@D #1\Z #2\Z \XINT@opp}%
\def\XINT@irr@nonneg #1\Z #2{\XINT@irr@D #1\Z #2\Z \space}%
\def\XINT@irr@D #1#2\Z #3#4\Z
{%
    \xint@UDzerosfork
       #3#1\dummy \XINT@irr@indeterminate
       #30\dummy  \XINT@irr@divisionbyzero
       #10\dummy  \XINT@irr@zero
        00\dummy  \XINT@irr@nonzero@checkifone
    \xint@UDkrof
    {#3#4}{#1#2}{#3#4}{#1#2}%
}%
\def\XINT@irr@indeterminate #1#2#3#4{\expandafter\xintError:ZeroOverZero
                                 \space 00}%
\def\XINT@irr@divisionbyzero #1#2#3#4{\expandafter\xintError:DivisionByZero
                                  \space {#2}0}%
\def\XINT@irr@zero #1#2#3#4{ 01}%
\def\XINT@irr@nonzero@checkifone #1%
{%
    \ifcase\XINT@isOne {#1}
      \xint@afterfi {\XINT@irr@loop@a {#1}}%
    \or
      \expandafter \XINT@irr@denomisone
    \fi
}%
\def\XINT@irr@denomisone #1#2#3{ {#1}1}%
\def\XINT@irr@loop@a #1#2%
{%
    \expandafter\XINT@irr@loop@d
    \romannumeral0\XINT@div@prepare {#1}{#2}{#1}%
}%
\def\XINT@irr@loop@d #1#2%
{%
    \XINT@irr@loop@e #2\Z
}%
\def\XINT@irr@loop@e #1#2\Z
{%
    \xint@zero #1\xint@irr@loop@exit0\XINT@irr@loop@a {#1#2}%
}%
\def\xint@irr@loop@exit0\XINT@irr@loop@a #1#2#3#4%
{%
    \expandafter\XINT@irr@loop@exitb\expandafter
    {\romannumeral0\xintquo {#3}{#2}}%
    {\romannumeral0\xintquo {#4}{#2}}%
}%
\def\XINT@irr@loop@exitb #1#2%
{%
   \expandafter\space\expandafter {#2}{#1}%
}%
\def\xintJrr {\romannumeral0\xintjrr }%
\def\xintjrr
{%
    \expandafter\XINT@irr@putsign
    \romannumeral0\expandafter\XINT@jrr
    \romannumeral0\XINT@infrac
}%
\def\XINT@jrr #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@jrr@B
    \or
      \expandafter\XINT@jrr@A
    \else
      \expandafter\XINT@jrr@B
    \fi
    {#1}%
}%
\def\XINT@jrr@A #1#2%
{%
    \expandafter \XINT@jrr@C
    \romannumeral0\xint@dsh {#2}{-#1}\Z
}%
\def\XINT@jrr@B #1#2#3%
{%
    \expandafter \XINT@jrr@BC \expandafter
    {\romannumeral0\xint@dsh {#3}{#1}}{#2}%
}%
\def\XINT@jrr@BC #1#2{\XINT@jrr@C #2\Z {#1}}%
\def\XINT@jrr@C #1#2\Z
{%
    \xint@UDsignfork
       #1\dummy \XINT@jrr@negative
        -\dummy {\XINT@jrr@nonneg #1}%
    \xint@UDkrof
    #2\Z
}%
\def\XINT@jrr@negative #1\Z #2{\XINT@jrr@D #1\Z #2\Z \XINT@opp}%
\def\XINT@jrr@nonneg #1\Z #2{\XINT@jrr@D #1\Z #2\Z \space}%
\def\XINT@jrr@D #1#2\Z #3#4\Z
{%
    \xint@UDzerosfork
       #3#1\dummy \XINT@jrr@indeterminate
       #30\dummy  \XINT@jrr@divisionbyzero
       #10\dummy  \XINT@jrr@zero
        00\dummy  \XINT@jrr@nonzero@checkifone
    \xint@UDkrof
    {#3#4}{#1#2}1001%
}%
\def\XINT@jrr@indeterminate #1#2#3#4#5#6{\expandafter\xintError:ZeroOverZero
                                 \space 00}%
\def\XINT@jrr@divisionbyzero #1#2#3#4#5#6{\expandafter\xintError:DivisionByZero
                                  \space {#2}0}%
\def\XINT@jrr@zero #1#2#3#4#5#6{ 01}%
\def\XINT@jrr@nonzero@checkifone #1%
{%
    \ifcase\XINT@isOne {#1}
      \xint@afterfi {\XINT@jrr@loop@a {#1}}%
    \or
      \expandafter \XINT@jrr@denomisone
    \fi
}%
\def\XINT@jrr@denomisone #1#2#3#4#5{ {#1}1}%
\def\XINT@jrr@loop@a #1#2%
{%
    \expandafter\XINT@jrr@loop@b
    \romannumeral0\XINT@div@prepare {#1}{#2}{#1}%
}%
\def\XINT@jrr@loop@b #1#2#3#4#5#6#7%
{%
    \expandafter \XINT@jrr@loop@c \expandafter
        {\romannumeral0\xintiadd{\XINT@Mul{#4}{#1}}{#6}}%
        {\romannumeral0\xintiadd{\XINT@Mul{#5}{#1}}{#7}}%
    {#2}{#3}{#4}{#5}%
}%
\def\XINT@jrr@loop@c #1#2%
{%
    \expandafter \XINT@jrr@loop@d \expandafter
        {#2}{#1}%
}%
\def\XINT@jrr@loop@d #1#2#3#4%
{%
    \XINT@jrr@loop@e #3\Z {#4}{#2}{#1}%
}%
\def\XINT@jrr@loop@e #1#2\Z
{%
    \xint@zero #1\xint@jrr@loop@exit0\XINT@jrr@loop@a {#1#2}%
}%
\def\xint@jrr@loop@exit0\XINT@jrr@loop@a #1#2#3#4#5#6%
{%
    \space {#3}{#4}%
}%
\def\xintTrunc {\romannumeral0\xinttrunc }%
\def\xintiTrunc {\romannumeral0\xintitrunc }%
\def\xinttrunc #1%
{%
    \expandafter\expandafter\expandafter
       \XINT@trunc
    \expandafter\expandafter\expandafter
       {#1}%
}%
\def\XINT@trunc #1#2%
{%
    \expandafter\XINT@trunc@G
    \romannumeral0\expandafter\XINT@trunc@A
    \romannumeral0\XINT@infrac {#2}{#1}{#1}%
}%
\def\xintitrunc #1%
{%
    \expandafter\expandafter\expandafter
       \XINT@itrunc
    \expandafter\expandafter\expandafter
       {#1}%
}%
\def\XINT@itrunc #1#2%
{%
    \expandafter\XINT@itrunc@G
    \romannumeral0\expandafter\XINT@trunc@A
    \romannumeral0\XINT@infrac {#2}{#1}{#1}%
}%
\def\XINT@trunc@A #1#2#3#4%
{%
    \expandafter\XINT@trunc@checkifzero
    \expandafter{\the\numexpr #1+#4\relax}#2\Z {#3}%
}%
\def\XINT@trunc@checkifzero #1#2#3\Z
{%
    \xint@zero #2\XINT@trunc@iszero0\XINT@trunc@B {#1}{#2#3}%
}%
\def\XINT@trunc@iszero #1#2#3#4#5{ 0\Z 0}%
\def\XINT@trunc@B #1%
{%
    \ifcase\XINT@Sgn {#1}
      \expandafter\XINT@trunc@D
    \or
      \expandafter\XINT@trunc@D
    \else
      \expandafter\XINT@trunc@C
    \fi
    {#1}%
}%
\def\XINT@trunc@C #1#2#3%
{%
    \expandafter \XINT@trunc@E
    \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z
}%
\def\XINT@trunc@D #1#2%
{%
    \expandafter \XINT@trunc@DE \expandafter
    {\romannumeral0\xint@dsh {#2}{-#1}}%
}%
\def\XINT@trunc@DE #1#2{\XINT@trunc@E #2\Z #1\Z }%
\def\XINT@trunc@E #1#2\Z #3#4\Z
{%
    \xint@UDsignsfork
          #1#3\dummy \XINT@trunc@minusminus
           #1-\dummy {\XINT@trunc@minusplus #3}%
           #3-\dummy {\XINT@trunc@plusminus #1}%
            --\dummy {\XINT@trunc@plusplus  #3#1}%
    \xint@UDkrof
    {#4}{#2}%
}%
\def\XINT@trunc@minusminus #1#2{\xintquo {#1}{#2}\Z \space}%
\def\XINT@trunc@minusplus #1#2#3{\xintquo {#1#2}{#3}\Z \xint@minus@andstop}%
\def\XINT@trunc@plusminus #1#2#3{\xintquo {#2}{#1#3}\Z \xint@minus@andstop}%
\def\XINT@trunc@plusplus  #1#2#3#4{\xintquo {#1#3}{#2#4}\Z \space}%
\def\XINT@itrunc@G #1#2\Z #3#4%
{%
    \xint@zero #1\XINT@trunc@zero 0\xint@firstoftwo {#3#1#2}0%
}%
\def\XINT@trunc@G #1\Z #2#3%
{%
    \xint@zero #2\XINT@trunc@zero 0%
    \expandafter\XINT@trunc@H\expandafter
    {\the\numexpr\romannumeral0\XINT@length {#1}-#3\relax}{#3}{#1}#2%
}%
\def\XINT@trunc@zero 0#10{ 0}%
\def\XINT@trunc@H #1#2%
{%
    \ifnum #1 > 0
        \xint@afterfi {\XINT@trunc@Ha {#2}}%
    \else
        \xint@afterfi {\XINT@trunc@Hb {-#1}}%
    \fi
}%
\def\XINT@trunc@Ha
{%
  \expandafter\XINT@trunc@Haa\romannumeral0\xintdecsplit
}%
\def\XINT@trunc@Haa #1#2#3%
{%
    #3#1.#2%
}%
\def\XINT@trunc@Hb #1#2#3%
{%
  \expandafter #3\expandafter0\expandafter.%
  \romannumeral0\XINT@dsx@zeroloop {#1}\Z {}#2%
}%
\def\xintRound {\romannumeral0\xintround }%
\def\xintiRound {\romannumeral0\xintiround }%
\def\xintround #1%
{%
    \expandafter\expandafter\expandafter
       \XINT@round
    \expandafter\expandafter\expandafter
       {#1}%
}%
\def\XINT@round
{%
    \expandafter\XINT@trunc@G\romannumeral0\XINT@round@A
}%
\def\xintiround #1%
{%
    \expandafter\expandafter\expandafter
       \XINT@iround
    \expandafter\expandafter\expandafter
       {#1}%
}%
\def\XINT@iround
{%
    \expandafter\XINT@itrunc@G\romannumeral0\XINT@round@A
}%
\def\XINT@round@A #1#2%
{%
    \expandafter\XINT@round@B
    \romannumeral0\expandafter\XINT@trunc@A
    \romannumeral0\XINT@infrac {#2}{\the\numexpr #1+1\relax}{#1}%
}%
\def\XINT@round@B #1\Z
{%
    \expandafter\XINT@round@C
    \romannumeral0\XINT@rord@main {}#1%
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF
    \Z
}%
\def\XINT@round@C #1%
{%
    \ifnum #1<5
        \expandafter\XINT@round@Daa
    \else
        \expandafter\XINT@round@Dba
    \fi
}%
\def\XINT@round@Daa #1%
{%
    \xint@z #1\XINT@round@Daz\Z \XINT@round@Da #1%
}%
\def\XINT@round@Daz\Z \XINT@round@Da \Z { 0\Z }%
\def\XINT@round@Da #1\Z
{%
    \XINT@rord@main {}#1%
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF  \Z
}%
\def\XINT@round@Dba #1%
{%
    \xint@z #1\XINT@round@Dbz\Z \XINT@round@Db #1%
}%
\def\XINT@round@Dbz\Z \XINT@round@Db \Z { 1\Z }%
\def\XINT@round@Db #1\Z
{%
    \XINT@addm@A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z
}%
\def\xintMul {\romannumeral0\xintmul }%
\def\xintmul #1%
{%
    \expandafter\xint@fmul\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fmul #1#2%
   {\expandafter\XINT@fmul@A\romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fmul@A #1#2#3#4#5#6%
{%
    \expandafter\XINT@fmul@B
    \expandafter{\the\numexpr #1+#4\expandafter}%
    \expandafter{\romannumeral0\xintimul {#6}{#3}}%
    {\romannumeral0\xintimul {#5}{#2}}%
}%
\def\XINT@fmul@B #1#2#3%
{%
    \expandafter \XINT@fmul@C \expandafter{#3}{#1}{#2}%
}%
\def\XINT@fmul@C #1#2{\XINT@outfrac {#2}{#1}}%
\def\xintSqr {\romannumeral0\xintsqr }%
\def\xintsqr #1%
{%
    \expandafter\xint@fsqr\expandafter{\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fsqr #1{\XINT@fmul@A #1#1}%
\def\xintPow {\romannumeral0\xintpow }%
\def\xintpow #1%
{%
    \expandafter\xint@fpow\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fpow #1#2%
{%
    \expandafter\expandafter\expandafter
       \XINT@fpow@fork
    #2\Z #1%
}%
\def\XINT@fpow@fork #1#2\Z
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@fpow@zero
      0#1\dummy  \XINT@fpow@neg
       0-\dummy  {\XINT@fpow@pos #1}%
    \xint@UDkrof
    {#2}%
}%
\def\XINT@fpow@zero #1#2#3#4%
{%
    \space 1[0]%
}%
\def\XINT@fpow@pos #1#2#3#4#5%
{%
    \expandafter\XINT@fpow@pos@A\expandafter
    {\the\numexpr #1#2*#3\expandafter}\expandafter
    {\romannumeral0\xintipow {#5}{#1#2}}%
    {\romannumeral0\xintipow {#4}{#1#2}}%
}%
\def\XINT@fpow@neg #1#2#3#4%
{%
    \expandafter\XINT@fpow@pos@A\expandafter
    {\the\numexpr -#1*#2\expandafter}\expandafter
    {\romannumeral0\xintipow {#3}{#1}}%
    {\romannumeral0\xintipow {#4}{#1}}%
}%
\def\XINT@fpow@pos@A #1#2#3%
{%
    \expandafter\XINT@fpow@pos@B\expandafter {#3}{#1}{#2}%
}%
\def\XINT@fpow@pos@B #1#2{\XINT@outfrac {#2}{#1}}%
\def\xintDiv {\romannumeral0\xintdiv }%
\def\xintdiv #1%
{%
    \expandafter\xint@fdiv\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fdiv #1#2%
   {\expandafter\XINT@fdiv@A\romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fdiv@A #1#2#3#4#5#6%
{%
    \expandafter\XINT@fdiv@B
    \expandafter{\the\numexpr #4-#1\expandafter}%
    \expandafter{\romannumeral0\xintimul {#2}{#6}}%
    {\romannumeral0\xintimul {#3}{#5}}%
}%
\def\XINT@fdiv@B #1#2#3%
{%
    \expandafter\XINT@fdiv@C
    \expandafter{#3}{#1}{#2}%
}%
\def\XINT@fdiv@C #1#2{\XINT@outfrac {#2}{#1}}%
\def\xintAdd {\romannumeral0\xintadd }%
\def\xintadd #1%
{%
    \expandafter\xint@fadd\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fadd #1#2%
{\expandafter\XINT@fadd@A\romannumeral0\XINT@infrac{#2}#1}%
\def\XINT@fadd@A #1#2#3#4%
{%
    \ifnum #4 > #1
       \xint@afterfi {\XINT@fadd@B {#1}}%
    \else
       \xint@afterfi {\XINT@fadd@B {#4}}%
    \fi
    {#1}{#4}{#2}{#3}%
}%
\def\XINT@fadd@B #1#2#3#4#5#6#7%
{%
    \expandafter\XINT@fadd@C\expandafter
    {\romannumeral0\xintimul {#7}{#5}}%
    {\romannumeral0\xintiadd
    {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
    {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
    }%
    {#1}%
}%
\def\XINT@fadd@C #1#2#3%
{%
    \expandafter\XINT@fadd@D\expandafter {#2}{#3}{#1}%
}%
\def\XINT@fadd@D #1#2{\XINT@outfrac {#2}{#1}}%
\def\xintSub {\romannumeral0\xintsub }%
\def\xintsub #1%
{%
    \expandafter\xint@fsub\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fsub #1#2%
   {\expandafter\XINT@fsub@A\romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fsub@A #1#2#3#4%
{%
    \ifnum #4 > #1
       \xint@afterfi {\XINT@fsub@B {#1}}%
    \else
       \xint@afterfi {\XINT@fsub@B {#4}}%
    \fi
    {#1}{#4}{#2}{#3}%
}%
\def\XINT@fsub@B #1#2#3#4#5#6#7%
{%
    \expandafter\XINT@fsub@C\expandafter
    {\romannumeral0\xintimul {#7}{#5}}%
    {\romannumeral0\xintisub
    {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
    {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
    }%
    {#1}%
}%
\def\XINT@fsub@C #1#2#3%
{%
    \expandafter\XINT@fsub@D\expandafter {#2}{#3}{#1}%
}%
\def\XINT@fsub@D #1#2{\XINT@outfrac {#2}{#1}}%
\def\xintCmp {\romannumeral0\xintcmp }%
\def\xintcmp #1%
{%
    \expandafter\xint@fcmp\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fcmp #1#2{\expandafter\XINT@fcmp@A\romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fcmp@A #1#2#3#4%
{%
    \ifnum #4 > #1
       \xint@afterfi {\XINT@fcmp@B {#1}}%
    \else
       \xint@afterfi {\XINT@fcmp@B {#4}}%
    \fi
    {#1}{#4}{#2}{#3}%
}%
\def\XINT@fcmp@B #1#2#3#4#5#6#7%
{%
    \xinticmp
    {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
    {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
}%
\def\xintMax {\romannumeral0\xintmax }%
\def\xintmax #1%
{%
    \expandafter\xint@fmax\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fmax #1#2{\expandafter\XINT@outfrac
                    \romannumeral0\expandafter\XINT@fmax@A
                    \romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fmax@A #1#2#3#4#5#6%
{%
    \ifnum #4 > #1
       \xint@afterfi {\XINT@fmax@B {#1}}%
    \else
       \xint@afterfi {\XINT@fmax@B {#4}}%
    \fi
    {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}%
}%
\def\XINT@fmax@B #1#2#3#4#5#6#7%
{%
    \expandafter\XINT@fmax@C\expandafter
    {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
    {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
}%
\def\XINT@fmax@C #1#2%
{%
    \expandafter\XINT@max@fork #2\Z #1\Z
}%
\def\xintMin {\romannumeral0\xintmin }%
\def\xintmin #1%
{%
    \expandafter\xint@fmin\expandafter {\romannumeral0\XINT@infrac {#1}}%
}%
\def\xint@fmin #1#2{\expandafter\XINT@outfrac
                    \romannumeral0\expandafter\XINT@fmin@A
                    \romannumeral0\XINT@infrac {#2}#1}%
\def\XINT@fmin@A #1#2#3#4#5#6%
{%
    \ifnum #4 > #1
       \xint@afterfi {\XINT@fmin@B {#1}}%
    \else
       \xint@afterfi {\XINT@fmin@B {#4}}%
    \fi
    {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}%
}%
\def\XINT@fmin@B #1#2#3#4#5#6#7%
{%
    \expandafter\XINT@fmin@C\expandafter
    {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
    {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
}%
\def\XINT@fmin@C #1#2%
{%
    \expandafter\XINT@min@fork #2\Z #1\Z
}%
\def\xintSgn {\romannumeral0\xintsgn }%
\def\xintsgn #1%
{%
    \expandafter\xint@fsgn\romannumeral0\XINT@infrac {#1}%
}%
\def\xint@fsgn #1#2#3{\xintisgn {#2}}%
\def\xintOpp {\romannumeral0\xintopp }%
\def\xintopp #1%
{%
    \expandafter\xint@fopp\romannumeral0\XINT@infrac {#1}%
}%
\def\xint@fopp #1#2{\expandafter\XINT@outfrac\expandafter
                    {\the\numexpr #1\expandafter}\expandafter
                    {\romannumeral0\XINT@opp #2}}%
\def\xintAbs {\romannumeral0\xintabs }%
\def\xintabs #1%
{%
    \expandafter\xint@fabs\romannumeral0\XINT@infrac {#1}%
}%
\def\xint@fabs #1#2{\expandafter\XINT@outfrac\expandafter
                    {\the\numexpr #1\expandafter}\expandafter
                    {\romannumeral0\XINT@abs #2}}%
\XINT@frac@restorecatcodes@endinput%
\endinput
%%
%% End of file `xintfrac.sty'.
