%%
%% This is file `xint.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xint.dtx  (with options: `xint')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from xint.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.05 of May 1st, 2013)
%% xint: Expandable operations on long numbers
%% 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   % :
  \expandafter\let\expandafter\x\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{xint}{\numexpr not available, aborting input}%
     \aftergroup\endinput
  \else
    \ifx\x\relax % plain-TeX, first loading
    \else
      \def\empty {}%
      \ifx\x\empty % LaTeX, first loading,
      % variable is initialized, but \ProvidesPackage not yet seen
      \else
        \y{xint}{I was already loaded, aborting input}%
        \aftergroup\endinput
      \fi
    \fi
  \fi
  \def\ChangeCatcodesIfInputNotAborted
  {%
      \endgroup
      \edef\XINT@restorecatcodes@endinput
      {%
        \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\relax   % =
        \noexpand\endinput
      }%
      \def\XINT@setcatcodes
      {%
        \catcode61=12   % =
        \catcode32=10   % space
        \catcode13=5    % ^^M
        \endlinechar=13 %
        \catcode123=1   % {
        \catcode125=2   % }
        \catcode64=11   % @
        \catcode35=6    % #
        \catcode44=12   % ,
        \catcode45=12   % -
        \catcode46=12   % .
        \catcode58=11   % : (made letter for error cs)
        \catcode60=12   % <
        \catcode62=12   % >
        \catcode43=12   % +
        \catcode42=12   % *
        \catcode40=12   % (
        \catcode41=12   % )
        \catcode47=12   % /
      }%
      \XINT@setcatcodes
  }%
\ChangeCatcodesIfInputNotAborted
\begingroup
  \catcode91=12 % [
  \catcode93=12 % ]
  \catcode58=12 % : (does not really matter, was letter)
  \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@xint.sty\endcsname
\ProvidesPackage{xint}%
  [2013/05/01 v1.05 Expandable operations on long numbers (jfB)]%
\def\xint@gobble       #1{}%
\def\xint@gobble@one   #1{}%
\def\xint@gobble@two   #1#2{}%
\def\xint@gobble@three #1#2#3{}%
\def\xint@gobble@four  #1#2#3#4{}%
\def\xint@gobble@five  #1#2#3#4#5{}%
\def\xint@gobble@six   #1#2#3#4#5#6{}%
\def\xint@gobble@seven #1#2#3#4#5#6#7{}%
\def\xint@gobble@eight #1#2#3#4#5#6#7#8{}%
\def\xint@firstoftwo   #1#2{#1}%
\def\xint@secondoftwo  #1#2{#2}%
\def\xint@firstoftwo@andstop  #1#2{ #1}%
\def\xint@secondoftwo@andstop #1#2{ #2}%
\def\xint@exchangetwo@keepbraces #1#2{{#2}{#1}}%
\def\xint@exchangetwo@keepbraces@andstop #1#2{ {#2}{#1}}%
\def\xint@xpxp@andstop {\expandafter\expandafter\expandafter\space }%
\def\xint@minus@andstop { -}%
\def\xint@r     #1\R {}%
\def\xint@w     #1\W {}%
\def\xint@z     #1\Z {}%
\def\xint@zero  #10{}%
\def\xint@one   #11{}%
\def\xint@minus #1-{}%
\def\xint@relax #1\relax {}%
\def\xint@quatrezeros #10000{}%
\def\xint@bracedundef {\xint@undef }%
\def\xint@UDzerofork      #10\dummy  #2#3\xint@UDkrof {#2}%
\def\xint@UDsignfork      #1-\dummy  #2#3\xint@UDkrof {#2}%
\def\xint@UDwfork         #1\W\dummy #2#3\xint@UDkrof {#2}%
\def\xint@UDzerosfork     #100\dummy #2#3\xint@UDkrof {#2}%
\def\xint@UDonezerofork   #110\dummy #2#3\xint@UDkrof {#2}%
\def\xint@UDzerominusfork #10-\dummy #2#3\xint@UDkrof {#2}%
\def\xint@UDsignsfork     #1--\dummy #2#3\xint@UDkrof {#2}%
\def\xint@afterfi #1#2\fi {\fi #1}%
\def\xintRev {\romannumeral0\xintrev }%
\def\xintrev #1%
{%
    \expandafter\expandafter\expandafter
      \xint@rev
    \expandafter\expandafter\expandafter
      {#1}%
}%
\def\xint@rev #1%
{%
    \XINT@rev@fork #1\Z
}%
\def\XINT@rev@fork #1#2%
{%
    \xint@UDsignfork
      #1\dummy \XINT@rev@negative
       -\dummy \XINT@rev@nonnegative
    \xint@UDkrof
    #1#2%
}%
\def\XINT@rev@negative #1#2\Z
{%
    \expandafter\xint@minus@andstop\romannumeral0\XINT@rev {#2}%
}%
\def\XINT@rev@nonnegative #1\Z
{%
    \XINT@rev {#1}%
}%
\def\XINT@Rev {\romannumeral0\XINT@rev }%
\let\xintReverseOrder \XINT@Rev
\def\XINT@rev #1%
{%
    \XINT@rord@main {}#1%
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF
}%
\def\XINT@rord@main #1#2#3#4#5#6#7#8#9%
{%
    \XINT@strip@undef #9\XINT@rord@cleanup\xint@undef
    \XINT@rord@main {#9#8#7#6#5#4#3#2#1}%
}%
\def\XINT@rord@cleanup\xint@undef\XINT@rord@main #1#2\xint@UNDEF
{%
    \expandafter\space\XINT@strip@UNDEF #1%
}%
\def\XINT@strip@undef #1\xint@undef {}%
\def\XINT@strip@UNDEF #1\xint@UNDEF {}%
\def\XINT@RQ #1#2#3#4#5#6#7#8#9%
{%
    \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}%
}%
\def\XINT@RQ@end\R\XINT@RQ #1#2\Z
{%
    \XINT@RQ@end@ #1\Z
}%
\def\XINT@RQ@end@ #1#2#3#4#5#6#7#8%
{%
    \xint@r #8\XINT@RQ@end@viii
            #7\XINT@RQ@end@vii
            #6\XINT@RQ@end@vi
            #5\XINT@RQ@end@v
            #4\XINT@RQ@end@iv
            #3\XINT@RQ@end@iii
            #2\XINT@RQ@end@ii
            \R\XINT@RQ@end@i
            \Z #2#3#4#5#6#7#8%
}%
\def\XINT@RQ@end@viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}%
\def\XINT@RQ@end@vii  #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}%
\def\XINT@RQ@end@vi   #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}%
\def\XINT@RQ@end@v    #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}%
\def\XINT@RQ@end@iv   #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}%
\def\XINT@RQ@end@iii  #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}%
\def\XINT@RQ@end@ii   #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}%
\def\XINT@RQ@end@i      \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}%
\def\xint@cleanupzeros@andstop #1#2#3#4%
{%
    \expandafter\space\the\numexpr #1#2#3#4\relax
}%
\def\xint@cleanupzeros@nospace #1#2#3#4%
{%
    \the\numexpr #1#2#3#4\relax
}%
\def\XINT@rev@andcuz #1%
{%
    \expandafter\xint@cleanupzeros@andstop
    \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
}%
\def\XINT@cuz #1%
{%
    \XINT@cuz@loop #1\W\W\W\W\W\W\W\Z%
}%
\def\XINT@cuz@loop #1#2#3#4#5#6#7#8%
{%
    \xint@w #8\xint@cuz@enda\W
    \xint@z #8\xint@cuz@endb\Z
    \XINT@cuz@checka {#1#2#3#4#5#6#7#8}%
}%
\def\xint@cuz@enda #1\XINT@cuz@checka #2%
{%
    \xint@cuz@endaa #2%
}%
\def\xint@cuz@endaa #1#2#3#4#5\Z
{%
    \expandafter\space\the\numexpr #1#2#3#4\relax
}%
\def\xint@cuz@endb\Z\XINT@cuz@checka #1{ 0}%
\def\XINT@cuz@checka #1%
{%
    \expandafter \XINT@cuz@checkb \the\numexpr #1\relax
}%
\def\XINT@cuz@checkb #1%
{%
    \xint@zero #1\xint@cuz@backtoloop 0\XINT@cuz@Stop #1%
}%
\def\XINT@cuz@Stop #1\W #2\Z{ #1}%
\def\xint@cuz@backtoloop 0\XINT@cuz@Stop 0{\XINT@cuz@loop }%
\def\XINT@isOne #1{\romannumeral0\XINT@isone #1\W\Z }%
\def\XINT@isone #1#2%
{%
    \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2%
}%
\def\XINT@isone@b #1\xint@z #2%
{%
   \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z
}%
\def\XINT@isone@yes #1\Z{ 1}%
\def\xintiNum {\romannumeral0\xintinum }%
\def\xintinum #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@num
    \expandafter\expandafter\expandafter
    {#1}%
}%
\let\xintNum\xintiNum \let\xintnum\xintinum
\def\XINT@Num {\romannumeral0\XINT@num }%
\def\XINT@num #1{\XINT@num@loop #1\R\R\R\R\R\R\R\R\Z }%
\def\XINT@num@loop #1#2#3#4#5#6#7#8%
{%
    \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8%
}%
\def\XINT@num@end\R\XINT@num@NumEight #1\R #2\Z
{%
    \expandafter\space\the\numexpr #1+0\relax
}%
\def\XINT@num@NumEight #1#2#3#4#5#6#7#8%
{%
    \ifnum \numexpr #1#2#3#4#5#6#7#8+0\relax = 0
      \xint@afterfi {\expandafter\XINT@num@keepsign@a
                     \the\numexpr #1#2#3#4#5#6#7#81\relax}%
    \else
      \xint@afterfi {\expandafter\XINT@num@finish
                     \the\numexpr #1#2#3#4#5#6#7#8\relax}%
    \fi
}%
\def\XINT@num@keepsign@a #1%
{%
    \xint@one#1\XINT@num@gobacktoloop 1\XINT@num@keepsign@b
}%
\def\XINT@num@gobacktoloop 1\XINT@num@keepsign@b {\XINT@num@loop }%
\def\XINT@num@keepsign@b #1{\XINT@num@loop -}%
\def\XINT@num@finish #1\R #2\Z { #1}%
\def\xintiLen {\romannumeral0\xintilen }%
\def\xintilen #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@length@fork #1\R\R\R\R\R\R\R\R\Z
}%
\let\xintLen\xintiLen \let\xintlen\xintilen
\def\XINT@Len #1{\romannumeral0\XINT@length@fork #1\R\R\R\R\R\R\R\R\Z }%
\def\XINT@length@fork #1%
{%
    \expandafter\XINT@length@loop
    \xint@UDsignfork
      #1\dummy {{0}}%
       -\dummy {{0}#1}%
    \xint@UDkrof
}%
\def\XINT@Length #1{\romannumeral0\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }%
\def\XINT@length #1{\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }%
\let\xintLength\XINT@Length
\def\XINT@length@loop #1#2#3#4#5#6#7#8#9%
{%
    \xint@r  #9\XINT@length@end {#2#3#4#5#6#7#8#9}\R
    \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}%
}%
\def\XINT@length@end #1\R\expandafter\XINT@length@loop\expandafter #2#3\Z
{%
    \XINT@length@end@ #1\W\W\W\W\W\W\W\W\Z {#2}%
}%
\def\XINT@length@end@ #1\R #2#3#4#5#6#7#8#9\Z
{%
    \xint@w #2\XINT@length@end@i
            #3\XINT@length@end@ii
            #4\XINT@length@end@iii
            #5\XINT@length@end@iv
            #6\XINT@length@end@v
            #7\XINT@length@end@vi
            #8\XINT@length@end@vii
            \W\XINT@length@end@viii
}%
\def\XINT@length@end@viii #1%
    {\expandafter\space\the\numexpr #1-8\relax}%
\def\XINT@length@end@vii  #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-7\relax}%
\def\XINT@length@end@vi   #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-6\relax}%
\def\XINT@length@end@v    #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-5\relax}%
\def\XINT@length@end@iv   #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-4\relax}%
\def\XINT@length@end@iii  #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-3\relax}%
\def\XINT@length@end@ii   #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-2\relax}%
\def\XINT@length@end@i    #1\XINT@length@end@viii #2%
    {\expandafter\space\the\numexpr #2-1\relax}%
\def\xintAssign #1\to
{%
    \expandafter\expandafter\expandafter
    \XINT@assign@a #1{}\to
}%
\def\XINT@assign@a #1% attention to the # at the beginning of next line
#{%
    \def\xint@temp {#1}%
    \ifx\empty\xint@temp
        \expandafter\XINT@assign@b
    \else
        \expandafter\XINT@assign@B
    \fi
}%
\def\XINT@assign@b #1#2\to #3%
{%
    \edef #3{#1}\def\xint@temp {#2}%
    \ifx\empty\xint@temp
      \else
      \xint@afterfi{\XINT@assign@a #2\to }%
    \fi
}%
\def\XINT@assign@B #1\to #2%
{%
    \edef #2{\xint@temp}%
}%
\def\xintRelaxArray #1%
{%
    \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}%
    \escapechar -1
    \edef\xint@arrayname {\string #1}%
    \XINT@restoreescapechar
    \expandafter\let\expandafter\xint@temp
                \csname\xint@arrayname 0\endcsname
    \count 255 0
    \loop
      \global\expandafter\let
             \csname\xint@arrayname\the\count255\endcsname\relax
      \ifnum \count 255 < \xint@temp
      \advance\count 255 1
    \repeat
    \global\expandafter\let\csname\xint@arrayname 00\endcsname\relax
    \global\let #1\relax
}%
\def\xintAssignArray #1\to #2%
{%
    \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}%
    \escapechar -1
    \edef\xint@arrayname {\string #1}%
    \XINT@restoreescapechar
    \count 255 0
        \expandafter\expandafter\expandafter
    \XINT@assignarray@loop #1\xint@undef
    \csname\xint@arrayname 00\endcsname
    \csname\xint@arrayname 0\endcsname
    {\xint@arrayname}%
    #2%
}%
\def\XINT@assignarray@loop #1%
{%
    \def\xint@temp {#1}%
    \ifx\xint@bracedundef\xint@temp
       \edef\xint@temp{\the\count 255 }%
       \expandafter\let\csname\xint@arrayname0\endcsname\xint@temp
       \expandafter\XINT@assignarray@end
    \else
       \advance\count 255 1
       \expandafter\edef
          \csname\xint@arrayname\the\count 255\endcsname{\xint@temp}%
       \expandafter\XINT@assignarray@loop
    \fi
}%
\def\XINT@assignarray@end {\expandafter\XINT@assignarray@@end  }%
\def\XINT@assignarray@@end #1%
{%
    \expandafter\XINT@assignarray@@@end\expandafter #1%
}%
\def\XINT@assignarray@@@end #1#2#3%
{%
    \expandafter\XINT@assignarray@@@@end
    \expandafter #1\expandafter #2\expandafter{#3}%
}%
\def\XINT@assignarray@@@@end #1#2#3#4%
{%
    \def #4##1%
    {\romannumeral0%
        \expandafter\expandafter\expandafter
          #1%
        \expandafter\expandafter\expandafter
          {##1}%
    }%
    \def #1##1%
    {%
        \ifnum ##1< 0
            \xint@afterfi {\xintError:ArrayIndexIsNegative
                           \expandafter\space 0}%
        \else
            \xint@afterfi {%
              \ifnum ##1> #2
                  \xint@afterfi {\xintError:ArrayIndexBeyondLimit
                                 \expandafter\space 0}%
              \else
                  \xint@afterfi
                  {\expandafter\expandafter\expandafter
                   \space\csname #3##1\endcsname}%
              \fi}%
        \fi
     }%
}%
\let\xintDigitsOf\xintAssignArray
\def\xintApply {\romannumeral0\xintapply }%
\def\xintapply #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@apply
    \expandafter\expandafter\expandafter
    {#2}{#1}%
}%
\def\XINT@apply #1#2%
{%
    \XINT@apply@loop@a {}{#2}#1\Z
}%
\def\XINT@apply@loop@a #1#2#3%
{%
    \xint@z #3\XINT@apply@end\Z
    \expandafter\expandafter\expandafter
    \XINT@apply@loop@b
    \expandafter\expandafter\expandafter {#2{#3}}{#1}{#2}%
}%
\def\XINT@apply@loop@b #1#2{\XINT@apply@loop@a {#2{#1}}}%
\def\XINT@apply@end\Z
    \expandafter\expandafter\expandafter
    \XINT@apply@loop@b
    \expandafter\expandafter\expandafter #1#2#3{ #2}%
\def\xintListWithSep {\romannumeral0\xintlistwithsep }%
\long\def\xintlistwithsep #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@lws
    \expandafter\expandafter\expandafter
    {#2}{#1}%
}%
\long\def\XINT@lws #1#2%
{%
    \XINT@lws@start {#2}#1\Z
}%
\long\def\XINT@lws@start #1#2%
{%
    \xint@z #2\XINT@lws@dont\Z
    \XINT@lws@loop@a {#2}{#1}%
}%
\long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ #2}%
\long\def\XINT@lws@loop@a #1#2#3%
{%
    \xint@z #3\XINT@lws@end\Z
    \XINT@lws@loop@b {#1}{#2#3}{#2}%
}%
\long\def\XINT@lws@loop@b #1#2{\XINT@lws@loop@a {#1#2}}%
\long\def\XINT@lws@end\Z\XINT@lws@loop@b #1#2#3{ #1}%
\def\xintiSgn {\romannumeral0\xintisgn }%
\def\xintisgn #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@sgn #1\Z%
}%
\let\xintSgn\xintiSgn \let\xintsgn\xintisgn
\def\XINT@Sgn #1{\romannumeral0\XINT@sgn #1\Z }%
\def\XINT@sgn #1#2\Z
{%
    \xint@UDzerominusfork
      #1-\dummy  { 0}%
      0#1\dummy  { -1}%
       0-\dummy  { 1}%
    \xint@UDkrof
}%
\def\xintiOpp {\romannumeral0\xintiopp }%
\def\xintiopp #1%
{%
    \expandafter\expandafter\expandafter
        \XINT@opp #1%
}%
\let\xintOpp\xintiOpp \let\xintopp\xintiopp
\def\XINT@Opp #1{\romannumeral0\XINT@opp #1}%
\def\XINT@opp #1%
{%
    \expandafter\space
    \xint@UDzerominusfork
      #1-\dummy  0%      zero
      0#1\dummy  {}%     negative
       0-\dummy  {-#1}%  positive
    \xint@UDkrof
}%
\def\xintiAbs {\romannumeral0\xintiabs }%
\def\xintiabs #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@abs #1%
}%
\let\xintAbs\xintiAbs \let\xintabs\xintiabs
\def\XINT@Abs #1{\romannumeral0\XINT@abs #1}%
\def\XINT@abs #1%
{%
    \xint@UDsignfork
      #1\dummy  \space
       -\dummy  { #1}%
    \xint@UDkrof
}%
\def\XINT@add@A #1#2#3#4#5#6%
{%
    \xint@w #3\xint@add@az\W\XINT@add@AB #1{#3#4#5#6}{#2}%
}%
\def\xint@add@az\W\XINT@add@AB #1#2%
{%
    \XINT@add@AC@checkcarry #1%
}%
\def\XINT@add@AB #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \xint@w #5\xint@add@bz\W
    \XINT@add@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
}%
\def\XINT@add@ABE #1#2#3#4#5#6%
{%
    \expandafter\XINT@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
}%
\def\XINT@add@ABEA #1#2#3.#4%
{%
    \XINT@add@A  #2{#3#4}%
}%
\def\xint@add@bz\W\XINT@add@ABE #1#2#3#4#5#6%
{%
    \expandafter\XINT@add@CC\the\numexpr #1+10#5#4#3#2\relax.%
}%
\def\XINT@add@CC #1#2#3.#4%
{%
    \XINT@add@AC@checkcarry  #2{#3#4}% on va examiner et \'eliminer #2
}%
\def\XINT@add@AC@checkcarry #1%
{%
    \xint@zero #1\xint@add@AC@nocarry 0\XINT@add@C
}%
\def\xint@add@AC@nocarry 0\XINT@add@C #1#2\W\X\Y\Z
{%
    \expandafter
    \xint@cleanupzeros@andstop
    \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\XINT@add@C #1#2#3#4#5%
{%
    \xint@w #2\xint@add@cz\W\XINT@add@CD {#5#4#3#2}{#1}%q
}%
\def\XINT@add@CD #1%
{%
    \expandafter\XINT@add@CC\the\numexpr 1+10#1\relax.%
}%
\def\xint@add@cz\W\XINT@add@CD #1#2{ 1#2}%
\def\XINT@addr@A #1#2#3#4#5#6%
{%
    \xint@w #3\xint@addr@az\W\XINT@addr@B #1{#3#4#5#6}{#2}%
}%
\def\xint@addr@az\W\XINT@addr@B #1#2%
{%
    \XINT@addr@AC@checkcarry #1%
}%
\def\XINT@addr@B #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \xint@w #5\xint@addr@bz\W\XINT@addr@E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
}%
\def\XINT@addr@E #1#2#3#4#5#6%
{%
    \expandafter\XINT@addr@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax
}%
\def\XINT@addr@ABEA #1#2#3#4#5#6#7%
{%
    \XINT@addr@A  #2{#7#6#5#4#3}%
}%
\def\xint@addr@bz\W\XINT@addr@E #1#2#3#4#5#6%
{%
    \expandafter\XINT@addr@CC\the\numexpr #1+10#5#4#3#2\relax
}%
\def\XINT@addr@CC #1#2#3#4#5#6#7%
{%
    \XINT@addr@AC@checkcarry  #2{#7#6#5#4#3}%
}%
\def\XINT@addr@AC@checkcarry #1%
{%
    \xint@zero #1\xint@addr@AC@nocarry 0\XINT@addr@C
}%
\def\xint@addr@AC@nocarry 0\XINT@addr@C #1#2\W\X\Y\Z { #1#2}%
\def\XINT@addr@C #1#2#3#4#5%
{%
    \xint@w #2\xint@addr@cz\W\XINT@addr@D {#5#4#3#2}{#1}%
}%
\def\XINT@addr@D #1%
{%
    \expandafter\XINT@addr@CC\the\numexpr 1+10#1\relax
}%
\def\xint@addr@cz\W\XINT@addr@D #1#2{ #21000}%
\def\XINT@addm@A #1#2#3#4#5#6%
{%
    \xint@w #3\xint@addm@az\W\XINT@addm@AB #1{#3#4#5#6}{#2}%
}%
\def\xint@addm@az\W\XINT@addm@AB #1#2%
{%
    \XINT@addm@AC@checkcarry #1%
}%
\def\XINT@addm@AB #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \XINT@addm@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
}%
\def\XINT@addm@ABE #1#2#3#4#5#6%
{%
    \expandafter\XINT@addm@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
}%
\def\XINT@addm@ABEA #1#2#3.#4%
{%
    \XINT@addm@A  #2{#3#4}%
}%
\def\XINT@addm@AC@checkcarry #1%
{%
    \xint@zero #1\xint@addm@AC@nocarry 0\XINT@addm@C
}%
\def\xint@addm@AC@nocarry 0\XINT@addm@C #1#2\W\X\Y\Z
{%
    \expandafter
    \xint@cleanupzeros@andstop
    \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\XINT@addm@C #1#2#3#4#5%
{%
    \xint@w
    #5\xint@addm@cw
    #4\xint@addm@cx
    #3\xint@addm@cy
    #2\xint@addm@cz
    \W\XINT@addm@CD {#5#4#3#2}{#1}%
}%
\def\XINT@addm@CD #1%
{%
    \expandafter\XINT@addm@CC\the\numexpr 1+10#1\relax.%
}%
\def\XINT@addm@CC #1#2#3.#4%
{%
    \XINT@addm@AC@checkcarry  #2{#3#4}%
}%
\def\xint@addm@cw
    #1\xint@addm@cx
    #2\xint@addm@cy
    #3\xint@addm@cz
    \W\XINT@addm@CD
{%
    \expandafter\XINT@addm@CDw\the\numexpr 1+#1#2#3\relax.%
}%
\def\XINT@addm@CDw #1.#2#3\X\Y\Z
{%
    \XINT@addm@end #1#3%
}%
\def\xint@addm@cx
    #1\xint@addm@cy
    #2\xint@addm@cz
    \W\XINT@addm@CD
{%
    \expandafter\XINT@addm@CDx\the\numexpr 1+#1#2\relax.%
}%
\def\XINT@addm@CDx #1.#2#3\Y\Z
{%
    \XINT@addm@end #1#3%
}%
\def\xint@addm@cy
    #1\xint@addm@cz
    \W\XINT@addm@CD
{%
    \expandafter\XINT@addm@CDy\the\numexpr 1+#1\relax.%
}%
\def\XINT@addm@CDy  #1.#2#3\Z
{%
    \XINT@addm@end #1#3%
}%
\def\xint@addm@cz\W\XINT@addm@CD #1#2#3{\XINT@addm@end #1#3}%
\def\XINT@addm@end #1#2#3#4#5%
    {\expandafter\space\the\numexpr #1#2#3#4#5\relax}%
\def\XINT@addp@A #1#2#3#4#5#6%
{%
    \xint@w #3\xint@addp@az\W\XINT@addp@AB #1{#3#4#5#6}{#2}%
}%
\def\xint@addp@az\W\XINT@addp@AB #1#2%
{%
    \XINT@addp@AC@checkcarry #1%
}%
\def\XINT@addp@AC@checkcarry #1%
{%
    \xint@zero #1\xint@addp@AC@nocarry 0\XINT@addp@C
}%
\def\xint@addp@AC@nocarry 0\XINT@addp@C
{%
    \XINT@addp@F
}%
\def\XINT@addp@AB #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \XINT@addp@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
}%
\def\XINT@addp@ABE #1#2#3#4#5#6%
{%
    \expandafter\XINT@addp@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax
}%
\def\XINT@addp@ABEA #1#2#3#4#5#6#7%
{%
   \XINT@addp@A  #2{#7#6#5#4#3}%<-- attention on met donc \`a droite
}%
\def\XINT@addp@C #1#2#3#4#5%
{%
    \xint@w
    #5\xint@addp@cw
    #4\xint@addp@cx
    #3\xint@addp@cy
    #2\xint@addp@cz
    \W\XINT@addp@CD   {#5#4#3#2}{#1}%
}%
\def\XINT@addp@CD #1%
{%
    \expandafter\XINT@addp@CC\the\numexpr 1+10#1\relax
}%
\def\XINT@addp@CC #1#2#3#4#5#6#7%
{%
    \XINT@addp@AC@checkcarry  #2{#7#6#5#4#3}%
}%
\def\xint@addp@cw
    #1\xint@addp@cx
    #2\xint@addp@cy
    #3\xint@addp@cz
    \W\XINT@addp@CD
{%
    \expandafter\XINT@addp@CDw\the\numexpr 1+10#1#2#3\relax
}%
\def\XINT@addp@CDw #1#2#3#4#5#6%
{%
    \xint@quatrezeros #2#3#4#5\XINT@addp@endDw@zeros
                          0000\XINT@addp@endDw #2#3#4#5%
}%
\def\XINT@addp@endDw@zeros 0000\XINT@addp@endDw 0000#1\X\Y\Z{ #1}%
\def\XINT@addp@endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}%
\def\xint@addp@cx
    #1\xint@addp@cy
    #2\xint@addp@cz
    \W\XINT@addp@CD
{%
    \expandafter\XINT@addp@CDx\the\numexpr 1+100#1#2\relax
}%
\def\XINT@addp@CDx #1#2#3#4#5#6%
{%
    \xint@quatrezeros #2#3#4#5\XINT@addp@endDx@zeros
                          0000\XINT@addp@endDx #2#3#4#5%
}%
\def\XINT@addp@endDx@zeros 0000\XINT@addp@endDx 0000#1\Y\Z{ #1}%
\def\XINT@addp@endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}%
\def\xint@addp@cy
    #1\xint@addp@cz
    \W\XINT@addp@CD
{%
    \expandafter\XINT@addp@CDy\the\numexpr 1+1000#1\relax
}%
\def\XINT@addp@CDy #1#2#3#4#5#6%
{%
    \xint@quatrezeros #2#3#4#5\XINT@addp@endDy@zeros
                          0000\XINT@addp@endDy #2#3#4#5%
}%
\def\XINT@addp@endDy@zeros 0000\XINT@addp@endDy 0000#1\Z{ #1}%
\def\XINT@addp@endDy #1#2#3#4#5\Z{ #5#4#3#2#1}%
\def\xint@addp@cz\W\XINT@addp@CD #1#2{ #21000}%
\def\XINT@addp@F #1#2#3#4#5%
{%
    \xint@w
    #5\xint@addp@Gw
    #4\xint@addp@Gx
    #3\xint@addp@Gy
    #2\xint@addp@Gz
    \W\XINT@addp@G   {#2#3#4#5}{#1}%
}%
\def\XINT@addp@G #1#2%
{%
    \XINT@addp@F {#2#1}%
}%
\def\xint@addp@Gw
    #1\xint@addp@Gx
    #2\xint@addp@Gy
    #3\xint@addp@Gz
    \W\XINT@addp@G #4%
{%
    \xint@quatrezeros  #3#2#10\XINT@addp@endGw@zeros
                          0000\XINT@addp@endGw #3#2#10%
}%
\def\XINT@addp@endGw@zeros 0000\XINT@addp@endGw 0000#1\X\Y\Z{ #1}%
\def\XINT@addp@endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}%
\def\xint@addp@Gx
    #1\xint@addp@Gy
    #2\xint@addp@Gz
    \W\XINT@addp@G #3%
{%
    \xint@quatrezeros  #2#100\XINT@addp@endGx@zeros
                         0000\XINT@addp@endGx #2#100%
}%
\def\XINT@addp@endGx@zeros 0000\XINT@addp@endGx 0000#1\Y\Z{ #1}%
\def\XINT@addp@endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}%
\def\xint@addp@Gy
    #1\xint@addp@Gz
    \W\XINT@addp@G #2%
{%
    \xint@quatrezeros   #1000\XINT@addp@endGy@zeros
                         0000\XINT@addp@endGy #1000%
}%
\def\XINT@addp@endGy@zeros 0000\XINT@addp@endGy 0000#1\Z{ #1}%
\def\XINT@addp@endGy #1#2#3#4#5\Z{ #5#1#2#3#4}%
\def\xint@addp@Gz\W\XINT@addp@G #1#2{ #2}%
\def\xintiAdd {\romannumeral0\xintiadd }%
\def\xintiadd #1%
{%
    \expandafter\expandafter\expandafter
           \xint@add
    \expandafter\expandafter\expandafter
           {#1}%
}%
\let\xintAdd\xintiAdd \let\xintadd\xintiadd
\def\xint@add #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@add@fork #2\Z #1\Z
}%
\def\XINT@Add #1#2{\romannumeral0\XINT@add@fork #2\Z #1\Z }%
\def\XINT@add #1#2{\XINT@add@fork #2\Z #1\Z }%
\def\XINT@add@fork #1#2\Z #3#4\Z
{%
    \xint@UDzerofork
      #1\dummy \XINT@add@secondiszero
      #3\dummy \XINT@add@firstiszero
       0\dummy
        {\xint@UDsignsfork
          #1#3\dummy \XINT@add@minusminus          % #1 = #3 = -
           #1-\dummy \XINT@add@minusplus           % #1 = -
           #3-\dummy \XINT@add@plusminus           % #3 = -
            --\dummy \XINT@add@plusplus
         \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@add@secondiszero #1#2#3#4{ #4#2}%
\def\XINT@add@firstiszero #1#2#3#4{ #3#1}%
\def\XINT@add@minusminus #1#2#3#4%
{%
    \expandafter\xint@minus@andstop%
    \romannumeral0\XINT@add@pre {#2}{#1}%
}%
\def\XINT@add@minusplus #1#2#3#4%
{%
    \XINT@sub@pre {#4#2}{#1}%
}%
\def\XINT@add@plusminus #1#2#3#4%
{%
    \XINT@sub@pre {#3#1}{#2}%
}%
\def\XINT@add@plusplus #1#2#3#4%
{%
    \XINT@add@pre {#4#2}{#3#1}%
}%
\def\XINT@add@pre #1%
{%
  \expandafter\XINT@add@@pre\expandafter{%
  \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
  }%
}%
\def\XINT@add@@pre #1#2%
{%
    \expandafter\XINT@add@A
        \expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
        \W\X\Y\Z #1\W\X\Y\Z
}%
\def\xintiSub {\romannumeral0\xintisub }%
\def\xintisub #1%
{%
    \expandafter\expandafter\expandafter
           \xint@sub
    \expandafter\expandafter\expandafter
           {#1}%
}%
\let\xintSub\xintiSub \let\xintsub\xintisub
\def\xint@sub #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@sub@fork #2\Z #1\Z
}%
\def\XINT@Sub #1#2{\romannumeral0\XINT@sub@fork #2\Z #1\Z }%
\def\XINT@sub #1#2{\XINT@sub@fork #2\Z #1\Z }%
\def\XINT@sub@fork #1#2\Z #3#4\Z
{%
    \xint@UDsignsfork
          #1#3\dummy \XINT@sub@minusminus
           #1-\dummy \XINT@sub@minusplus   % attention, #3=0 possible
           #3-\dummy \XINT@sub@plusminus   % attention, #1=0 possible
            --\dummy {\xint@UDzerofork
                      #1\dummy \XINT@sub@secondiszero
                      #3\dummy \XINT@sub@firstiszero
                       0\dummy \XINT@sub@plusplus
                      \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@sub@secondiszero #1#2#3#4{ #4#2}%
\def\XINT@sub@firstiszero  #1#2#3#4{ -#3#1}%
\def\XINT@sub@plusplus #1#2#3#4%
{%
    \XINT@sub@pre {#4#2}{#3#1}%
}%
\def\XINT@sub@minusminus #1#2#3#4%
{%
    \XINT@sub@pre {#1}{#2}%
}%
\def\XINT@sub@minusplus #1#2#3#4%
{%
    \xint@zero #4\xint@sub@mp0\XINT@add@pre {#4#2}{#1}%
}%
\def\xint@sub@mp0\XINT@add@pre #1#2{ #2}%
\def\XINT@sub@plusminus #1#2#3#4%
{%
    \xint@zero #3\xint@sub@pm0\expandafter\xint@minus@andstop%
    \romannumeral0\XINT@add@pre {#2}{#3#1}%
}%
\def\xint@sub@pm #1\XINT@add@pre #2#3{ -#2}%
\def\XINT@sub@pre #1%
{%
  \expandafter\XINT@sub@@pre\expandafter{%
  \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
  }%
}%
\def\XINT@sub@@pre #1#2%
{%
    \expandafter\XINT@sub@A
        \expandafter1\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
        \W\X\Y\Z #1 \W\X\Y\Z
}%
\def\XINT@sub@A #1#2#3\W\X\Y\Z #4#5#6#7%
{%
    \xint@w
    #4\xint@sub@az
    \W\XINT@sub@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z
}%
\def\XINT@sub@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@sub@bz
    \W\XINT@sub@onestep #1#2{#7#6#5#4}{#3}%
}%
\def\XINT@sub@onestep #1#2#3#4#5#6%
{%
    \expandafter\XINT@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.%
}%
\def\XINT@sub@backtoA #1#2#3.#4%
{%
    \XINT@sub@A #2{#3#4}%
}%
\def\xint@sub@bz
    \W\XINT@sub@onestep #1#2#3#4#5#6#7%
{%
    \xint@UDzerofork
      #1\dummy  \XINT@sub@C   % une retenue
       0\dummy  \XINT@sub@D   % pas de retenue
    \xint@UDkrof
    {#7}#2#3#4#5%
}%
\def\XINT@sub@D #1#2\W\X\Y\Z
{%
    \expandafter
    \xint@cleanupzeros@andstop
    \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\XINT@sub@C #1#2#3#4#5%
{%
    \xint@w
    #2\xint@sub@cz
    \W\XINT@sub@AC@onestep {#5#4#3#2}{#1}%
}%
\def\XINT@sub@AC@onestep #1%
{%
    \expandafter\XINT@sub@backtoC\the\numexpr 11#1-1\relax.%
}%
\def\XINT@sub@backtoC #1#2#3.#4%
{%
    \XINT@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee
}%
\def\XINT@sub@AC@checkcarry #1%
{%
    \xint@one #1\xint@sub@AC@nocarry 1\XINT@sub@C
}%
\def\xint@sub@AC@nocarry 1\XINT@sub@C #1#2\W\X\Y\Z
{%
    \expandafter
    \XINT@cuz@loop
    \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\W\W\W\W\W\W\W\Z
}%
\def\xint@sub@cz\W\XINT@sub@AC@onestep #1%
{%
    \XINT@cuz
}%
\def\xint@sub@az\W\XINT@sub@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@sub@ez
    \W\XINT@sub@Eenter #1{#3}#4#5#6#7%
}%
\def\XINT@sub@Eenter #1#2%
{%
    \expandafter
    \XINT@sub@E\expandafter1\expandafter{\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
    \W\X\Y\Z #1%
}%
\def\XINT@sub@E #1#2#3#4#5#6%
{%
    \xint@w #3\xint@sub@F\W\XINT@sub@Eonestep
    #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Eonestep #1#2%
{%
    \expandafter\XINT@sub@backtoE\the\numexpr 109999-#2+#1\relax.%
}%
\def\XINT@sub@backtoE #1#2#3.#4%
{%
    \XINT@sub@E #2{#3#4}%
}%
\def\xint@sub@F\W\XINT@sub@Eonestep #1#2#3#4%
{%
    \xint@UDonezerofork
      #4#1\dummy {\XINT@sub@Fdec 0}% soustraire  1. Et faire signe -
      #1#4\dummy {\XINT@sub@Finc 1}% additionner 1. Et faire signe -
        10\dummy  \XINT@sub@DD     % terminer. Mais avec signe -
    \xint@UDkrof
    {#3}%
}%
\def\XINT@sub@DD {\expandafter\xint@minus@andstop\romannumeral0\XINT@sub@D }%
\def\XINT@sub@Fdec #1#2#3#4#5#6%
{%
    \xint@w
    #3\xint@sub@Fdec@finish\W\XINT@sub@Fdec@onestep
    #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Fdec@onestep #1#2%
{%
    \expandafter\XINT@sub@backtoFdec\the\numexpr 11#2+#1-1\relax.%
}%
\def\XINT@sub@backtoFdec #1#2#3.#4%
{%
    \XINT@sub@Fdec #2{#3#4}%
}%
\def\xint@sub@Fdec@finish\W\XINT@sub@Fdec@onestep #1#2%
{%
    \expandafter\xint@minus@andstop\romannumeral0\XINT@cuz
}%
\def\XINT@sub@Finc #1#2#3#4#5#6%
{%
    \xint@w
    #3\xint@sub@Finc@finish\W\XINT@sub@Finc@onestep
    #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Finc@onestep #1#2%
{%
    \expandafter\XINT@sub@backtoFinc\the\numexpr 10#2+#1\relax.%
}%
\def\XINT@sub@backtoFinc #1#2#3.#4%
{%
    \XINT@sub@Finc #2{#3#4}%
}%
\def\xint@sub@Finc@finish\W\XINT@sub@Finc@onestep #1#2#3%
{%
    \xint@UDzerofork
     #1\dummy {\expandafter\xint@minus@andstop%
               \xint@cleanupzeros@nospace}%
      0\dummy { -1}%
    \xint@UDkrof
    #3%
}%
\def\xint@sub@ez\W\XINT@sub@Eenter #1%
{%
    \xint@UDzerofork
      #1\dummy \XINT@sub@K % il y a une retenue
       0\dummy \XINT@sub@L % pas de retenue
    \xint@UDkrof
}%
\def\XINT@sub@L #1\W\X\Y\Z
   {\XINT@cuz@loop #1\W\W\W\W\W\W\W\Z }%
\def\XINT@sub@K #1%
{%
    \expandafter
    \XINT@sub@KK\expandafter1\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
}%
\def\XINT@sub@KK #1#2#3#4#5#6%
{%
    \xint@w
    #3\xint@sub@KK@finish\W\XINT@sub@KK@onestep
    #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@KK@onestep #1#2%
{%
    \expandafter\XINT@sub@backtoKK\the\numexpr 109999-#2+#1\relax.%
}%
\def\XINT@sub@backtoKK #1#2#3.#4%
{%
    \XINT@sub@KK #2{#3#4}%
}%
\def\xint@sub@KK@finish\W\XINT@sub@KK@onestep #1#2#3%
{%
    \expandafter\xint@minus@andstop\romannumeral
    0\XINT@cuz@loop #3\W\W\W\W\W\W\W\Z
}%
\def\xintiCmp {\romannumeral0\xinticmp }%
\def\xinticmp #1%
{%
    \expandafter\expandafter\expandafter
        \xint@cmp
    \expandafter\expandafter\expandafter
        {#1}%
}%
\let\xintCmp\xintiCmp \let\xintcmp\xinticmp
\def\xint@cmp #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@cmp@fork #2\Z #1\Z
}%
\def\XINT@Cmp #1#2{\romannumeral0\XINT@cmp@fork #2\Z #1\Z }%
\def\XINT@cmp@fork #1#2\Z #3#4\Z
{%
    \xint@UDsignsfork
          #1#3\dummy \XINT@cmp@minusminus
           #1-\dummy \XINT@cmp@minusplus
           #3-\dummy \XINT@cmp@plusminus
            --\dummy {\xint@UDzerosfork
                      #1#3\dummy \XINT@cmp@zerozero
                       #10\dummy \XINT@cmp@zeroplus
                       #30\dummy \XINT@cmp@pluszero
                        00\dummy \XINT@cmp@plusplus
                      \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@cmp@minusplus #1#2#3#4{ 1}%
\def\XINT@cmp@plusminus #1#2#3#4{ -1}%
\def\XINT@cmp@zerozero  #1#2#3#4{ 0}%
\def\XINT@cmp@zeroplus  #1#2#3#4{ 1}%
\def\XINT@cmp@pluszero  #1#2#3#4{ -1}%
\def\XINT@cmp@plusplus #1#2#3#4%
{%
    \XINT@cmp@pre {#4#2}{#3#1}%
}%
\def\XINT@cmp@minusminus #1#2#3#4%
{%
    \XINT@cmp@pre {#1}{#2}%
}%
\def\XINT@cmp@pre #1%
{%
  \expandafter\XINT@cmp@@pre\expandafter{%
  \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
  }%
}%
\def\XINT@cmp@@pre #1#2%
{%
    \expandafter\XINT@cmp@A
    \expandafter1\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
        \W\X\Y\Z #1\W\X\Y\Z
}%
\def\XINT@cmp@A #1#2#3\W\X\Y\Z #4#5#6#7%
{%
    \xint@w
    #4\xint@cmp@az
    \W\XINT@cmp@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z
}%
\def\XINT@cmp@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@cmp@bz
    \W\XINT@cmp@onestep #1#2{#7#6#5#4}{#3}%
}%
\def\XINT@cmp@onestep #1#2#3#4#5#6%
{%
    \expandafter\XINT@cmp@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.%
}%
\def\XINT@cmp@backtoA #1#2#3.#4%
{%
    \XINT@cmp@A #2{#3#4}%
}%
\def\xint@cmp@bz
    \W\XINT@cmp@onestep #1\Z { 1}%
\def\xint@cmp@az\W\XINT@cmp@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@cmp@ez
    \W\XINT@cmp@Eenter #1{#3}#4#5#6#7%
}%
\def\XINT@cmp@Eenter #1\Z { -1}%
\def\xint@cmp@ez\W\XINT@cmp@Eenter #1%
{%
    \xint@UDzerofork
      #1\dummy \XINT@cmp@K             %     il y a une retenue
       0\dummy \XINT@cmp@L             %     pas de retenue
    \xint@UDkrof
}%
\def\XINT@cmp@K #1\Z { -1}%
\def\XINT@cmp@L #1{\XINT@OneIfPositive@main #1}%
\def\XINT@OneIfPositive #1%
{%
    \XINT@OneIfPositive@main #1\W\X\Y\Z%
}%
\def\XINT@OneIfPositive@main #1#2#3#4%
{%
    \xint@z #4\xint@OneIfPositive@terminated\Z\XINT@OneIfPositive@onestep
    #1#2#3#4%
}%
\def\xint@OneIfPositive@terminated\Z\XINT@OneIfPositive@onestep\W\X\Y\Z { 0}%
\def\XINT@OneIfPositive@onestep #1#2#3#4%
{%
    \expandafter\XINT@OneIfPositive@check
    \the\numexpr #1#2#3#4\relax
}%
\def\XINT@OneIfPositive@check #1%
{%
    \xint@zero
    #1\xint@OneIfPositive@backtomain 0\XINT@OneIfPositive@finish #1%
}%
\def\XINT@OneIfPositive@finish #1\W\X\Y\Z{ 1}%
\def\xint@OneIfPositive@backtomain 0\XINT@OneIfPositive@finish 0%
                   {\XINT@OneIfPositive@main }%
\def\xintiGeq {\romannumeral0\xintigeq }%
\def\xintigeq #1%
{%
    \expandafter\expandafter\expandafter
      \xint@geq
    \expandafter\expandafter\expandafter
      {#1}%
}%
\let\xintGeq\xintiGeq \let\xintgeq\xintigeq
\def\xint@geq #1#2%
{%
    \expandafter\expandafter\expandafter\XINT@geq@fork #2\Z #1\Z
}%
\def\XINT@Geq #1#2{\romannumeral0\XINT@geq@fork #2\Z #1\Z }%
\def\XINT@geq@fork #1#2\Z #3#4\Z
{%
    \xint@UDzerofork
      #1\dummy \XINT@geq@secondiszero % |#1#2|=0
      #3\dummy \XINT@geq@firstiszero % |#1#2|>0
       0\dummy {\xint@UDsignsfork
                  #1#3\dummy \XINT@geq@minusminus
                   #1-\dummy \XINT@geq@minusplus
                   #3-\dummy \XINT@geq@plusminus
                    --\dummy \XINT@geq@plusplus
                \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@geq@secondiszero     #1#2#3#4{ 1}%
\def\XINT@geq@firstiszero      #1#2#3#4{ 0}%
\def\XINT@geq@plusplus  #1#2#3#4%
         {\XINT@geq@pre {#4#2}{#3#1}}%
\def\XINT@geq@minusminus  #1#2#3#4%
         {\XINT@geq@pre {#2}{#1}}%
\def\XINT@geq@minusplus #1#2#3#4%
         {\XINT@geq@pre {#4#2}{#1}}%
\def\XINT@geq@plusminus #1#2#3#4%
         {\XINT@geq@pre {#2}{#3#1}}%
\def\XINT@geq@pre #1%
{%
  \expandafter\XINT@geq@@pre\expandafter{%
  \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
  }%
}%
\def\XINT@geq@@pre #1#2%
{%
    \expandafter\XINT@geq@A
    \expandafter1\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
        \W\X\Y\Z #1 \W\X\Y\Z
}%
\def\XINT@geq@A #1#2#3\W\X\Y\Z #4#5#6#7%
{%
    \xint@w
    #4\xint@geq@az
    \W\XINT@geq@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z
}%
\def\XINT@geq@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@geq@bz
    \W\XINT@geq@onestep #1#2{#7#6#5#4}{#3}%
}%
\def\XINT@geq@onestep #1#2#3#4#5#6%
{%
    \expandafter\XINT@geq@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.%
}%
\def\XINT@geq@backtoA #1#2#3.#4%
{%
    \XINT@geq@A #2{#3#4}%
}%
\def\xint@geq@bz\W\XINT@geq@onestep #1\W\X\Y\Z { 1}%
\def\xint@geq@az\W\XINT@geq@B #1#2#3#4#5#6#7%
{%
    \xint@w
    #4\xint@geq@ez
    \W\XINT@geq@Eenter #1%
}%
\def\XINT@geq@Eenter #1\W\X\Y\Z { 0}%
\def\xint@geq@ez\W\XINT@geq@Eenter #1%
{%
    \xint@UDzerofork
      #1\dummy { 0}             %     il y a une retenue
       0\dummy { 1}             %     pas de retenue
    \xint@UDkrof
}%
\def\xintiMax {\romannumeral0\xintimax }%
\def\xintimax #1%
{%
    \expandafter\expandafter\expandafter
        \xint@max
    \expandafter\expandafter\expandafter
        {#1}%
}%
\let\xintMax\xintiMax \let\xintmax\xintimax
\def\xint@max #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@max@pre
    \expandafter\expandafter\expandafter {#2}{#1}%
}%
\def\XINT@max@pre #1#2{\XINT@max@fork #1\Z #2\Z {#2}{#1}}%
\def\XINT@Max #1#2{\romannumeral0\XINT@max@fork #2\Z #1\Z {#1}{#2}}%
\def\XINT@max@fork #1#2\Z #3#4\Z
{%
    \xint@UDsignsfork
          #1#3\dummy \XINT@max@minusminus  % A < 0, B < 0
           #1-\dummy \XINT@max@minusplus   % B < 0, A >= 0
           #3-\dummy \XINT@max@plusminus   % A < 0, B >= 0
            --\dummy {\xint@UDzerosfork
                      #1#3\dummy \XINT@max@zerozero % A = B = 0
                       #10\dummy \XINT@max@zeroplus % B = 0, A > 0
                       #30\dummy \XINT@max@pluszero % A = 0, B > 0
                        00\dummy \XINT@max@plusplus % A, B > 0
                      \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@max@zerozero  #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@max@zeroplus  #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@max@pluszero  #1#2#3#4{\xint@secondoftwo@andstop }%
\def\XINT@max@minusplus #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@max@plusminus #1#2#3#4{\xint@secondoftwo@andstop }%
\def\XINT@max@plusplus  #1#2#3#4%
{%
    \ifodd\XINT@Geq {#4#2}{#3#1}
      \expandafter\xint@firstoftwo@andstop
    \else
      \expandafter\xint@secondoftwo@andstop
    \fi
}%
\def\XINT@max@minusminus #1#2#3#4%
{%
    \ifodd\XINT@Geq {#1}{#2}
      \expandafter\xint@firstoftwo@andstop
    \else
      \expandafter\xint@secondoftwo@andstop
    \fi
}%
\def\xintiMin {\romannumeral0\xintimin }%
\def\xintimin #1%
{%
    \expandafter\expandafter\expandafter
        \xint@min
    \expandafter\expandafter\expandafter
        {#1}%
}%
\let\xintMin\xintiMin \let\xintmin\xintimin
\def\xint@min #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@min@pre
    \expandafter\expandafter\expandafter {#2}{#1}%
}%
\def\XINT@min@pre #1#2{\XINT@min@fork #1\Z #2\Z {#2}{#1}}%
\def\XINT@Min #1#2{\romannumeral0\XINT@min@fork #2\Z #1\Z {#1}{#2}}%
\def\XINT@min@fork #1#2\Z #3#4\Z
{%
    \xint@UDsignsfork
          #1#3\dummy \XINT@min@minusminus  % A < 0, B < 0
           #1-\dummy \XINT@min@minusplus   % B < 0, A >= 0
           #3-\dummy \XINT@min@plusminus   % A < 0, B >= 0
            --\dummy {\xint@UDzerosfork
                      #1#3\dummy \XINT@min@zerozero % A = B = 0
                       #10\dummy \XINT@min@zeroplus % B = 0, A > 0
                       #30\dummy \XINT@min@pluszero % A = 0, B > 0
                        00\dummy \XINT@min@plusplus % A, B > 0
                      \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3%
}%
\def\XINT@min@zerozero  #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@min@zeroplus  #1#2#3#4{\xint@secondoftwo@andstop }%
\def\XINT@min@pluszero  #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@min@minusplus #1#2#3#4{\xint@secondoftwo@andstop }%
\def\XINT@min@plusminus #1#2#3#4{\xint@firstoftwo@andstop }%
\def\XINT@min@plusplus #1#2#3#4%
{%
    \ifodd\XINT@Geq {#4#2}{#3#1}
      \expandafter\xint@secondoftwo@andstop
    \else
      \expandafter\xint@firstoftwo@andstop
    \fi
}%
\def\XINT@min@minusminus #1#2#3#4%
{%
    \ifodd\XINT@Geq {#1}{#2}
      \expandafter\xint@secondoftwo@andstop
    \else
      \expandafter\xint@firstoftwo@andstop
    \fi
}%
\def\xintiSum {\romannumeral0\xintisum }%
\def\xintisum #1{\xintisumexpr #1\relax }%
\def\xintiSumExpr {\romannumeral0\xintisumexpr }%
\def\xintisumexpr
{%
    \expandafter\expandafter\expandafter\XINT@sumexpr
}%
\let\xintSum\xintiSum \let\xintsum\xintisum
\let\xintSumExpr\xintiSumExpr \let\xintsumexpr\xintisumexpr
\def\XINT@sumexpr {\XINT@sum@loop {0000}{0000}}%
\def\XINT@sum@loop #1#2#3%
{%
    \expandafter\expandafter\expandafter\XINT@sum@checksign #3\Z {#1}{#2}%
}%
\def\XINT@sum@checksign #1%
{%
    \xint@relax #1\XINT@sum@finished\relax
    \xint@zero #1\XINT@sum@skipzeroinput0%
    \xint@UDsignfork
      #1\dummy \XINT@sum@N
       -\dummy {\XINT@sum@P #1}%
    \xint@UDkrof
}%
\def\XINT@sum@finished #1\Z #2#3%
{%
    \XINT@sub@A 1{}#3\W\X\Y\Z #2\W\X\Y\Z
}%
\def\XINT@sum@skipzeroinput #1\xint@UDkrof #2\Z {\XINT@sum@loop }%
\def\XINT@sum@P #1\Z #2%
{%
    \expandafter\XINT@sum@loop\expandafter
    {\romannumeral0\expandafter
     \XINT@addr@A\expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
    \W\X\Y\Z #2\W\X\Y\Z }%
}%
\def\XINT@sum@N #1\Z #2#3%
{%
    \expandafter\XINT@sum@NN\expandafter
    {\romannumeral0\expandafter
     \XINT@addr@A\expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
    \W\X\Y\Z #3\W\X\Y\Z }{#2}%
}%
\def\XINT@sum@NN #1#2{\XINT@sum@loop {#2}{#1}}%
\def\xintiMul {\romannumeral0\xintimul }%
\def\xintimul #1%
{%
    \expandafter\expandafter\expandafter
        \xint@mul
    \expandafter\expandafter\expandafter
        {#1}%
}%
\let\xintMul\xintiMul \let\xintmul\xintimul
\def\xint@mul #1#2%
{\expandafter\expandafter\expandafter
       \XINT@mul@fork #2\Z #1\Z
}%
\def\XINT@Mul #1#2{\romannumeral0\XINT@mul@fork #2\Z #1\Z }%
\def\XINT@mul@fork #1#2\Z #3#4\Z
{%
    \xint@UDzerofork
      #1\dummy \XINT@mul@zero
      #3\dummy \XINT@mul@zero
       0\dummy
        {\xint@UDsignsfork
          #1#3\dummy \XINT@mul@minusminus          % #1 = #3 = -
           #1-\dummy {\XINT@mul@minusplus #3}%          % #1 = -
           #3-\dummy {\XINT@mul@plusminus #1}%          % #3 = -
            --\dummy {\XINT@mul@plusplus #1#3}%
         \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}%
}%
\def\XINT@mul@zero #1#2{ 0}%
\def\XINT@mul@minusminus #1#2%
{%
      \expandafter\XINT@mul@choice@a
      \expandafter{\romannumeral0\XINT@length {#2}}%
      {\romannumeral0\XINT@length {#1}}{#1}{#2}%
}%
\def\XINT@mul@minusplus #1#2#3%
{%
      \expandafter\xint@minus@andstop\romannumeral0\expandafter
      \XINT@mul@choice@a
      \expandafter{\romannumeral0\XINT@length {#1#3}}%
      {\romannumeral0\XINT@length {#2}}{#2}{#1#3}%
}%
\def\XINT@mul@plusminus #1#2#3%
{%
      \expandafter\xint@minus@andstop\romannumeral0\expandafter
      \XINT@mul@choice@a
      \expandafter{\romannumeral0\XINT@length {#3}}%
      {\romannumeral0\XINT@length {#1#2}}{#1#2}{#3}%
}%
\def\XINT@mul@plusplus #1#2#3#4%
{%
    \expandafter\XINT@mul@choice@a
    \expandafter{\romannumeral0\XINT@length {#2#4}}%
    {\romannumeral0\XINT@length {#1#3}}{#1#3}{#2#4}%
}%
\def\XINT@mul@choice@a #1#2%
{%
    \expandafter\XINT@mul@choice@b\expandafter{#2}{#1}%
}%
\def\XINT@mul@choice@b #1#2%
{%
    \ifnum #1<5
       \expandafter\XINT@mul@choice@littlebyfirst
    \else
    \ifnum #2<5
      \expandafter\expandafter\expandafter\XINT@mul@choice@littlebysecond
      \else
      \expandafter\expandafter\expandafter\XINT@mul@choice@compare
      \fi
    \fi
    {#1}{#2}%
}%
\def\XINT@mul@choice@littlebyfirst #1#2#3#4%
{%
    \expandafter\XINT@mul@M
    \expandafter{\the\numexpr #3\expandafter}%
    \romannumeral0\XINT@RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z
}%
\def\XINT@mul@choice@littlebysecond #1#2#3#4%
{%
    \expandafter\XINT@mul@M
    \expandafter{\the\numexpr #4\expandafter}%
    \romannumeral0\XINT@RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z
}%
\def\XINT@mul@choice@compare #1#2%
{%
    \ifnum #1>#2
        \expandafter \XINT@mul@choice@i
    \else
        \expandafter \XINT@mul@choice@ii
    \fi
    {#1}{#2}%
}%
\def\XINT@mul@choice@i #1#2%
{%
   \ifcase \numexpr (#2-3)/4\relax
   \or \xint@afterfi {\ifnum #1<330 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \or \xint@afterfi {\ifnum #1<168 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \or \xint@afterfi {\ifnum #1<109 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \or \xint@afterfi {\ifnum #1<80 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \or \xint@afterfi {\ifnum #1<66 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \or \xint@afterfi {\ifnum #1<52 \expandafter \XINT@mul@choice@same
                      \else  \expandafter \XINT@mul@choice@permute \fi}%
   \else \expandafter \XINT@mul@choice@permute
   \fi
}%
\def\XINT@mul@choice@ii #1#2%
{%
   \ifcase \numexpr (#1-3)/4\relax
   \or \xint@afterfi {\ifnum #2<330 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \or \xint@afterfi {\ifnum #2<168 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \or \xint@afterfi {\ifnum #2<109 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \or \xint@afterfi {\ifnum #2<80 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \or \xint@afterfi {\ifnum #2<66 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \or \xint@afterfi {\ifnum #2<52 \expandafter \XINT@mul@choice@permute
                      \else  \expandafter \XINT@mul@choice@same \fi}%
   \else \expandafter \XINT@mul@choice@same
   \fi
}%
\def\XINT@mul@choice@same #1#2%
{%
    \expandafter\XINT@mul@enter
    \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
    \W\X\Y\Z #2\W\X\Y\Z
}%
\def\XINT@mul@choice@permute #1#2%
{%
    \expandafter\XINT@mul@enter
    \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
    \W\X\Y\Z #1\W\X\Y\Z
}%
\def\XINT@mul@Ar #1#2#3#4#5#6%
{%
    \xint@z #6\xint@mul@br\Z\XINT@mul@Br #1{#6#5#4#3}{#2}%
}%
\def\xint@mul@br\Z\XINT@mul@Br #1#2%
{%
     \XINT@addr@AC@checkcarry #1%
}%
\def\XINT@mul@Br #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \expandafter\XINT@mul@ABEAr
    \the\numexpr #1+10#2+#8#7#6#5\relax.{#3}#4\W\X\Y\Z
}%
\def\XINT@mul@ABEAr #1#2#3#4#5#6.#7%
{%
    \XINT@mul@Ar #2{#7#6#5#4#3}%
}%
\def\XINT@mul@Mr #1%
{%
    \expandafter\XINT@mul@Mr@checkifzeroorone
    \expandafter{\the\numexpr #1}%
}%
\def\XINT@mul@Mr@checkifzeroorone #1%
{%
    \ifcase #1
      \expandafter\XINT@mul@Mr@zero
    \or
      \expandafter\XINT@mul@Mr@one
    \else
      \expandafter\XINT@mul@Nr
    \fi
    {0000}{}{#1}%
}%
\def\XINT@mul@Mr@zero #1\Z\Z\Z\Z { 0000}%
\def\XINT@mul@Mr@one #1#2#3#4\Z\Z\Z\Z { #4}%
\def\XINT@mul@Nr #1#2#3#4#5#6#7%
{%
    \xint@z #4\xint@mul@pr\Z\XINT@mul@Pr {#1}{#3}{#7#6#5#4}{#2}{#3}%
}%
\def\XINT@mul@Pr #1#2#3%
{%
    \expandafter\XINT@mul@Lr\the\numexpr 10000#1+#2*#3\relax
}%
\def\XINT@mul@Lr 1#1#2#3#4#5#6#7#8#9%
{%
    \XINT@mul@Nr {#1#2#3#4}{#9#8#7#6#5}%
}%
\def\xint@mul@pr\Z\XINT@mul@Pr #1#2#3#4#5%
{%
    \xint@quatrezeros #1\XINT@mul@Mr@end@nocarry 0000\XINT@mul@Mr@end@carry
    #1{#4}%
}%
\def\XINT@mul@Mr@end@nocarry 0000\XINT@mul@Mr@end@carry 0000#1{ #1}%
\def\XINT@mul@Mr@end@carry #1#2#3#4#5{ #5#4#3#2#1}%
\def\XINT@mul@M #1%
{%
    \expandafter\XINT@mul@M@checkifzeroorone
    \expandafter{\the\numexpr #1}%
}%
\def\XINT@mul@M@checkifzeroorone #1%
{%
    \ifcase #1
      \expandafter\XINT@mul@M@zero
    \or
      \expandafter\XINT@mul@M@one
    \else
      \expandafter\XINT@mul@N
    \fi
    {0000}{}{#1}%
}%
\def\XINT@mul@M@zero #1\Z\Z\Z\Z { 0}%
\def\XINT@mul@M@one #1#2#3#4\Z\Z\Z\Z
{%
    \expandafter\xint@cleanupzeros@andstop
    \romannumeral0\XINT@rev{#4}%
}%
\def\XINT@mul@N #1#2#3#4#5#6#7%
{%
    \xint@z #4\xint@mul@p\Z\XINT@mul@P {#1}{#3}{#7#6#5#4}{#2}{#3}%
}%
\def\XINT@mul@P #1#2#3%
{%
    \expandafter\XINT@mul@L\the\numexpr 10000#1+#2*#3\relax
}%
\def\XINT@mul@L 1#1#2#3#4#5#6#7#8#9%
{%
    \XINT@mul@N {#1#2#3#4}{#5#6#7#8#9}%
}%
\def\xint@mul@p\Z\XINT@mul@P #1#2#3#4#5%
{%
    \XINT@mul@M@end #1#4%
}%
\def\XINT@mul@M@end #1#2#3#4#5#6#7#8%
{%
    \expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax
}%
\def\XINT@mul@enter #1\W\X\Y\Z #2#3#4#5%
{%
    \xint@w
    #5\xint@mul@enterw
    #4\xint@mul@enterx
    #3\xint@mul@entery
    #2\xint@mul@enterz
    \W\XINT@mul@start {#2#3#4#5}#1\W\X\Y\Z
}%
\def\xint@mul@enterw
    #1\xint@mul@enterx
    #2\xint@mul@entery
    #3\xint@mul@enterz
    \W\XINT@mul@start  #4#5\W\X\Y\Z \X\Y\Z
{%
    \XINT@mul@M {#3#2#1}#5\Z\Z\Z\Z
}%
\def\xint@mul@enterx
    #1\xint@mul@entery
    #2\xint@mul@enterz
    \W\XINT@mul@start  #3#4\W\X\Y\Z \Y\Z
{%
    \XINT@mul@M {#2#1}#4\Z\Z\Z\Z
}%
\def\xint@mul@entery
    #1\xint@mul@enterz
    \W\XINT@mul@start  #2#3\W\X\Y\Z \Z
{%
    \XINT@mul@M {#1}#3\Z\Z\Z\Z
}%
\def\XINT@mul@start #1#2\W\X\Y\Z
{%
    \expandafter\XINT@mul@main\expandafter
    {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z
}%
\def\XINT@mul@main #1#2\W\X\Y\Z #3#4#5#6%
{%
    \xint@w
    #6\xint@mul@mainw
    #5\xint@mul@mainx
    #4\xint@mul@mainy
    #3\xint@mul@mainz
    \W\XINT@mul@compute {#1}{#3#4#5#6}#2\W\X\Y\Z
}%
\def\XINT@mul@compute #1#2#3\W\X\Y\Z
{%
    \expandafter\XINT@mul@main\expandafter
    {\romannumeral0\expandafter
     \XINT@mul@Ar\expandafter0\expandafter{\expandafter}%
     \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z
     \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z
}%
\def\xint@mul@mainw
    #1\xint@mul@mainx
    #2\xint@mul@mainy
    #3\xint@mul@mainz
    \W\XINT@mul@compute  #4#5#6\W\X\Y\Z \X\Y\Z
{%
    \expandafter\XINT@addm@A \expandafter0\expandafter{\expandafter}%
          \romannumeral0%
    \XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z
                 \W\X\Y\Z 000#4\W\X\Y\Z
}%
\def\xint@mul@mainx
    #1\xint@mul@mainy
    #2\xint@mul@mainz
    \W\XINT@mul@compute  #3#4#5\W\X\Y\Z \Y\Z
{%
    \expandafter\XINT@addm@A\expandafter
    0\expandafter{\expandafter}%
    \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z
    \W\X\Y\Z 00#3\W\X\Y\Z
}%
\def\xint@mul@mainy
    #1\xint@mul@mainz
    \W\XINT@mul@compute  #2#3#4\W\X\Y\Z \Z
{%
    \expandafter\XINT@addm@A\expandafter
    0\expandafter{\expandafter}%
    \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z
     \W\X\Y\Z 0#2\W\X\Y\Z
}%
\def\xint@mul@mainz\W\XINT@mul@compute #1#2#3\W\X\Y\Z
{%
    \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#1}%
}%
\def\XINT@mulr@enter #1\W\X\Y\Z #2#3#4#5%
{%
    \xint@w
    #5\xint@mulr@enterw
    #4\xint@mulr@enterx
    #3\xint@mulr@entery
    #2\xint@mulr@enterz
    \W\XINT@mulr@start {#2#3#4#5}#1\W\X\Y\Z
}%
\def\xint@mulr@enterw
    #1\xint@mulr@enterx
    #2\xint@mulr@entery
    #3\xint@mulr@enterz
    \W\XINT@mulr@start  #4#5\W\X\Y\Z \X\Y\Z
{%
    \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z
}%
\def\xint@mulr@enterx
    #1\xint@mulr@entery
    #2\xint@mulr@enterz
    \W\XINT@mulr@start  #3#4\W\X\Y\Z \Y\Z
{%
    \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z
}%
\def\xint@mulr@entery
    #1\xint@mulr@enterz
    \W\XINT@mulr@start  #2#3\W\X\Y\Z \Z
{%
    \XINT@mul@Mr {#1}#3\Z\Z\Z\Z
}%
\def\XINT@mulr@start #1#2\W\X\Y\Z
{%
    \expandafter\XINT@mulr@main\expandafter
    {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z
}%
\def\XINT@mulr@main #1#2\W\X\Y\Z #3#4#5#6%
{%
    \xint@w
    #6\xint@mulr@mainw
    #5\xint@mulr@mainx
    #4\xint@mulr@mainy
    #3\xint@mulr@mainz
    \W\XINT@mulr@compute {#1}{#3#4#5#6}#2\W\X\Y\Z
}%
\def\XINT@mulr@compute #1#2#3\W\X\Y\Z
{%
    \expandafter\XINT@mulr@main\expandafter
    {\romannumeral0\expandafter
       \XINT@mul@Ar \expandafter0\expandafter{\expandafter}%
       \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z
    }#3\W\X\Y\Z
}%
\def\xint@mulr@mainw
    #1\xint@mulr@mainx
    #2\xint@mulr@mainy
    #3\xint@mulr@mainz
    \W\XINT@mulr@compute #4#5#6\W\X\Y\Z \X\Y\Z
{%
    \expandafter\XINT@addp@A
    \expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z
                 \W\X\Y\Z 000#4\W\X\Y\Z
}%
\def\xint@mulr@mainx
    #1\xint@mulr@mainy
    #2\xint@mulr@mainz
    \W\XINT@mulr@compute  #3#4#5\W\X\Y\Z \Y\Z
{%
    \expandafter\XINT@addp@A
    \expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z
                 \W\X\Y\Z 00#3\W\X\Y\Z
}%
\def\xint@mulr@mainy
    #1\xint@mulr@mainz
    \W\XINT@mulr@compute #2#3#4\W\X\Y\Z \Z
{%
    \expandafter\XINT@addp@A
    \expandafter0\expandafter{\expandafter}%
    \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z
                 \W\X\Y\Z 0#2\W\X\Y\Z
}%
\def\xint@mulr@mainz\W\XINT@mulr@compute #1#2#3\W\X\Y\Z { #1}%
\def\xintiSqr {\romannumeral0\xintisqr }%
\def\xintisqr #1%
{%
    \expandafter\expandafter\expandafter
    \XINT@sqr
    \expandafter\expandafter\expandafter
    {\xintiAbs{#1}}% fait l'expansion de #1 et se d\'ebarrasse du signe
}%
\let\xintSqr\xintiSqr \let\xintsqr\xintisqr
\def\XINT@sqr #1%
{%
    \expandafter\XINT@mul@enter
          \romannumeral0%
          \XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
          \W\X\Y\Z #1\W\X\Y\Z
}%
\def\xintiPrd {\romannumeral0\xintiprd }%
\def\xintiprd #1{\xintiproductexpr #1\relax }%
\let\xintPrd\xintiPrd
\let\xintprd\xintiprd
\def\xintiProductExpr {\romannumeral0\xintiproductexpr }%
\def\xintiproductexpr
{%
    \expandafter\expandafter\expandafter\XINT@productexpr
}%
\let\xintProductExpr\xintiProductExpr
\let\xintproductexpr\xintiproductexpr
\def\XINT@productexpr {\XINT@prod@loop@a 1\Z }%
\def\XINT@prod@loop@a #1\Z #2%
{%
    \expandafter\expandafter\expandafter\XINT@prod@loop@b #2\Z #1\Z \Z
}%
\def\XINT@prod@loop@b #1%
{%
   \xint@relax #1\XINT@prod@finished\relax
   \XINT@prod@loop@c #1%
}%
\def\XINT@prod@loop@c
{%
    \expandafter\XINT@prod@loop@a\romannumeral0\XINT@mul@fork
}%
\def\XINT@prod@finished #1\Z #2\Z \Z { #2}%
\def\xintFac {\romannumeral0\xintfac }%
\def\xintfac #1%
{%
    \expandafter\expandafter\expandafter
        \XINT@fac@fork
    \expandafter\expandafter\expandafter
        {#1}%
}%
\def\XINT@Fac {\romannumeral0\XINT@fac@fork }%
\def\XINT@fac@fork #1%
{%
    \ifcase\XINT@Sgn {#1}
       \xint@afterfi{\expandafter\space\expandafter 1\xint@gobble }%
    \or
       \expandafter\XINT@fac@checklength
    \else
       \xint@afterfi{\xintError:FactorialOfNegativeNumber
                \expandafter\space\expandafter 1\xint@gobble }%
    \fi
    {#1}%
}%
\def\XINT@fac@checklength #1%
{%
    \ifnum\numexpr #1\relax>999999
         \xint@afterfi{\xintError:FactorialOfTooBigNumber
                       \expandafter\space\expandafter 1\xint@gobble }%
    \else
         \xint@afterfi{\ifnum #1>9999
                          \expandafter\XINT@fac@big@loop
                       \else
                          \expandafter\XINT@fac@loop
                       \fi }%
    \fi
    {#1}%
}%
\def\XINT@fac@big@loop #1{\XINT@fac@big@loop@main {10000}{#1}{}}%
\def\XINT@fac@big@loop@main #1#2#3%
{%
    \ifnum #1<#2
        \expandafter
            \XINT@fac@big@loop@main
        \expandafter
           {\the\numexpr #1+1\expandafter }%
    \else
        \expandafter\XINT@fac@big@docomputation
    \fi
    {#2}{#3{#1}}%
}%
\def\XINT@fac@big@docomputation #1#2%
{%
    \expandafter \XINT@fac@bigcompute@loop \expandafter
    {\romannumeral0\XINT@fac@loop {9999}}#2\relax
}%
\def\XINT@fac@bigcompute@loop #1#2%
{%
    \xint@relax #2\XINT@fac@bigcompute@end\relax
    \expandafter\XINT@fac@bigcompute@loop\expandafter
    {\expandafter\XINT@mul@enter
     \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
     \W\X\Y\Z #1\W\X\Y\Z }%
}%
\def\XINT@fac@bigcompute@end #1#2#3#4#5%
{%
    \XINT@fac@bigcompute@end@ #5%
}%
\def\XINT@fac@bigcompute@end@ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}%
\def\XINT@fac@loop #1{\XINT@fac@loop@main 1{1000}{#1}}%
\def\XINT@fac@loop@main #1#2#3%
{%
    \ifnum #3>#1
    \else
        \expandafter\XINT@fac@loop@exit
    \fi
    \expandafter\XINT@fac@loop@main\expandafter
    {\the\numexpr #1+1\expandafter }\expandafter
    {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }%
    {#3}%
}%
\def\XINT@fac@loop@exit #1#2#3#4#5#6#7%
{%
    \XINT@fac@loop@exit@ #6%
}%
\def\XINT@fac@loop@exit@ #1#2#3%
{%
    \XINT@mul@M
}%
\def\xintiPow {\romannumeral0\xintipow }%
\def\xintipow #1%
{%
    \expandafter\expandafter\expandafter\xint@pow
       #1\Z%
}%
\let\xintPow\xintiPow \let\xintpow\xintipow
\def\xint@pow #1#2\Z
{%
    \xint@UDsignfork
      #1\dummy \XINT@pow@Aneg
       -\dummy \XINT@pow@Anonneg
    \xint@UDkrof
       #1{#2}%
}%
\def\XINT@pow@Aneg #1#2#3%
{%
   \expandafter\expandafter\expandafter
      \XINT@pow@Aneg@
   \expandafter\expandafter\expandafter
      {#3}{#2}%
}%
\def\XINT@pow@Aneg@ #1%
{%
   \ifcase\XINT@Odd{#1}
   \or \expandafter\XINT@pow@Aneg@Bodd
   \fi
   \XINT@pow@Anonneg@ {#1}%
}%
\def\XINT@pow@Aneg@Bodd #1%
{%
    \expandafter\XINT@opp\romannumeral0\XINT@pow@Anonneg@
}%
\def\XINT@pow@Anonneg #1#2#3%
{%
   \expandafter\expandafter\expandafter
      \XINT@pow@Anonneg@
   \expandafter\expandafter\expandafter
   {#3}{#1#2}%
}%
\def\XINT@pow@Anonneg@ #1#2%
{%
    \ifcase\XINT@Cmp {#2}{1}
        \expandafter\XINT@pow@AisOne
    \or
        \expandafter\XINT@pow@AatleastTwo
    \else
        \expandafter\XINT@pow@AisZero
    \fi
    {#1}{#2}%
}%
\def\XINT@pow@AisOne #1#2{ 1}%
\def\XINT@pow@AisZero #1#2%
{%
     \ifcase\XINT@Sgn {#1}
         \xint@afterfi { 1}%
     \or
         \xint@afterfi { 0}%
     \else
         \xint@afterfi {\xintError:DivisionByZero\space 0}%
     \fi
}%
\def\XINT@pow@AatleastTwo #1%
{%
    \ifcase\XINT@Sgn {#1}
        \expandafter\XINT@pow@BisZero
    \or
        \expandafter\XINT@pow@checkBlength
    \else
        \expandafter\XINT@pow@BisNegative
    \fi
    {#1}%
}%
\def\XINT@pow@BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}%
\def\XINT@pow@BisZero #1#2{ 1}%
\def\XINT@pow@checkBlength #1#2%
{%
    \ifnum\numexpr #1\relax >999999999
        \expandafter\XINT@pow@BtooBig
    \else
        \expandafter\XINT@pow@loop
    \fi
    {#1}{#2}\XINT@pow@posprod
      \xint@UNDEF
        \xint@undef\xint@undef\xint@undef\xint@undef
        \xint@undef\xint@undef\xint@undef\xint@undef
      \xint@UNDEF
}%
\def\XINT@pow@BtooBig #1\xint@UNDEF #2\xint@UNDEF
                       {\xintError:ExponentTooBig\space 0}%
\def\XINT@pow@loop #1#2%
{%
    \ifnum #1 = 1
        \expandafter\XINT@pow@loop@end
    \else
        \xint@afterfi{\expandafter\XINT@pow@loop@a
            \expandafter{\the\numexpr 2*(#1/2)-#1\expandafter }% b mod 2
            \expandafter{\the\numexpr #1-#1/2\expandafter }%     [b/2]
            \expandafter{\romannumeral0\xintisqr{#2}}}%
    \fi
    {{#2}}%
}%
\def\XINT@pow@loop@end {\romannumeral0\XINT@rord@main {}\relax }%
\def\XINT@pow@loop@a #1%
{%
    \ifnum #1 = 1
        \expandafter\XINT@pow@loop
    \else
        \expandafter\XINT@pow@loop@throwaway
    \fi
}%
\def\XINT@pow@loop@throwaway #1#2#3%
{%
   \XINT@pow@loop {#1}{#2}%
}%
\def\XINT@pow@posprod #1%
{%
    \XINT@pow@pprod@checkifempty #1\Z
}%
\def\XINT@pow@pprod@checkifempty #1%
{%
    \xint@relax #1\XINT@pow@pprod@emptyproduct\relax
    \XINT@pow@pprod@RQfirst #1%
}%
\def\XINT@pow@pprod@emptyproduct #1\Z { 1}%
\def\XINT@pow@pprod@RQfirst #1\Z
{%
    \expandafter\XINT@pow@pprod@getnext\expandafter
    {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z}%
}%
\def\XINT@pow@pprod@getnext #1#2%
{%
    \XINT@pow@pprod@checkiffinished #2\Z {#1}%
}%
\def\XINT@pow@pprod@checkiffinished #1%
{%
    \xint@relax #1\XINT@pow@pprod@end\relax
    \XINT@pow@pprod@compute #1%
}%
\def\XINT@pow@pprod@compute #1\Z #2%
{%
    \expandafter\XINT@pow@pprod@getnext\expandafter
    {\romannumeral0\XINT@mulr@enter #2\W\X\Y\Z #1\W\X\Y\Z}%
}%
\def\XINT@pow@pprod@end\relax\XINT@pow@pprod@compute #1\Z #2%
{%
    \expandafter\xint@cleanupzeros@andstop
    \romannumeral0\XINT@rev {#2}%
}%
\def\xintiQuo {\romannumeral0\xintiquo }%
\def\xintiRem {\romannumeral0\xintirem }%
\def\xintiquo {\expandafter\xint@firstoftwo@andstop
               \romannumeral0\xintidivision }%
\def\xintirem {\expandafter\xint@secondoftwo@andstop
               \romannumeral0\xintidivision }%
\let\xintQuo\xintiQuo \let\xintquo\xintiquo
\let\xintRem\xintiRem \let\xintrem\xintirem
\def\xintiDivision {\romannumeral0\xintidivision }%
\def\xintidivision #1%
{%
    \expandafter\expandafter\expandafter
        \xint@division
    \expandafter\expandafter\expandafter
        {#1}%
}%
\let\xintDivision\xintiDivision \let\xintdivision\xintidivision
\def\xint@division #1#2%
{%
    \expandafter\expandafter\expandafter
    \XINT@div@fork #2\Z #1\Z
}%
\def\XINT@Division #1#2{\romannumeral0\XINT@div@fork #2\Z #1\Z }%
\def\XINT@div@fork #1#2\Z #3#4\Z
{%
    \xint@UDzerofork
      #1\dummy \XINT@div@BisZero
      #3\dummy \XINT@div@AisZero
       0\dummy
        {\xint@UDsignfork
           #1\dummy \XINT@div@BisNegative  % B < 0
           #3\dummy \XINT@div@AisNegative  % A < 0, B > 0
            -\dummy \XINT@div@plusplus     % B > 0, A > 0
         \xint@UDkrof }%
    \xint@UDkrof
    {#2}{#4}#1#3% #1#2=B, #3#4=A
}%
\def\XINT@div@BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}%
\def\XINT@div@AisZero #1#2#3#4{ {0}{0}}%
\def\XINT@div@plusplus #1#2#3#4%
{%
    \XINT@div@prepare {#3#1}{#4#2}%
}%
\def\XINT@div@BisNegative #1#2#3#4%
{%
    \expandafter\XINT@div@BisNegative@post
    \romannumeral0\XINT@div@fork #1\Z #4#2\Z
}%
\def\XINT@div@BisNegative@post #1%
{%
    \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}%
}%
\def\XINT@div@AisNegative #1#2#3#4%
{%
    \expandafter\XINT@div@AisNegative@post
    \romannumeral0\XINT@div@prepare {#3#1}{#2}{#3#1}%
}%
\def\XINT@div@AisNegative@post #1#2%
{%
    \ifcase\XINT@Sgn {#2}
       \expandafter \XINT@div@AisNegative@zerorem
    \or
       \expandafter \XINT@div@AisNegative@posrem
    \fi
    {#1}{#2}%
}%
\def\XINT@div@AisNegative@zerorem #1#2#3%
{%
    \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}{0}%
}%
\def\XINT@div@AisNegative@posrem #1%
{%
    \expandafter \XINT@div@AisNegative@posrem@b \expandafter
       {\romannumeral0\xintiopp{\xintiAdd {#1}{1}}}%
}%
\def\XINT@div@AisNegative@posrem@b #1#2#3%
{%
    \expandafter \xint@exchangetwo@keepbraces@andstop \expandafter
    {\romannumeral0\XINT@sub {#3}{#2}}{#1}%
}%
\def\XINT@div@prepare #1%
{%
    \expandafter \XINT@div@prepareB@aa \expandafter
        {\romannumeral0\XINT@length {#1}}{#1}% B > 0 ici
}%
\def\XINT@div@prepareB@aa #1%
{%
    \ifnum #1=1
      \expandafter\XINT@div@prepareB@ab
    \else
      \expandafter\XINT@div@prepareB@a
    \fi
    {#1}%
}%
\def\XINT@div@prepareB@ab #1#2%
{%
    \ifnum #2=1
      \expandafter\XINT@div@prepareB@BisOne
    \else
      \xint@afterfi{\XINT@div@prepareB@e {000}{3}{4}{#2}}%
    \fi
}%
\def\XINT@div@prepareB@BisOne #1{ {#1}{0}}%
\def\XINT@div@prepareB@a #1%
{%
    \expandafter \XINT@div@prepareB@b \expandafter
        {\the\numexpr 4*((#1+1)/4)}{#1}%
}%
\def\XINT@div@prepareB@b #1#2%
{%
    \expandafter \XINT@div@prepareB@c \expandafter
       {\the\numexpr #1-#2}{#1}%
}%
\def\XINT@div@prepareB@c #1%
{%
    \ifcase #1
          \expandafter\XINT@div@prepareB@di
    \or   \expandafter\XINT@div@prepareB@dii
    \or   \expandafter\XINT@div@prepareB@diii
    \else \expandafter\XINT@div@prepareB@div
    \fi
}%
\def\XINT@div@prepareB@di   {\XINT@div@prepareB@e {}{0}}%
\def\XINT@div@prepareB@dii  {\XINT@div@prepareB@e {0}{1}}%
\def\XINT@div@prepareB@diii {\XINT@div@prepareB@e {00}{2}}%
\def\XINT@div@prepareB@div  {\XINT@div@prepareB@e {000}{3}}%
\def\XINT@div@prepareB@e #1#2#3#4%
{%
    \XINT@div@prepareB@f #4#1\Z {#3}{#2}{#1}%
}%
\def\XINT@div@prepareB@f #1#2#3#4#5\Z
{%
    \expandafter \XINT@div@prepareB@g \expandafter
        {\romannumeral0\XINT@rev {#1#2#3#4#5}}{#1#2#3#4}%
}%
\def\XINT@div@prepareB@g #1#2#3#4#5#6%
{%
    \XINT@div@prepareA@a {#6#5}{#2}{#3}{#1}{#4}%
}%
\def\XINT@div@prepareA@a #1%
{%
    \expandafter \XINT@div@prepareA@b \expandafter
       {\romannumeral0\XINT@length {#1}}{#1}% A >0 ici
}%
\def\XINT@div@prepareA@b #1%
{%
    \expandafter\XINT@div@prepareA@c\expandafter
    {\the\numexpr 4*((#1+1)/4)}{#1}%
}%
\def\XINT@div@prepareA@c #1#2%
{%
    \expandafter\XINT@div@prepareA@d \expandafter
       {\the\numexpr #1-#2}{#1}%
}%
\def\XINT@div@prepareA@d #1%
{%
    \ifcase #1
          \expandafter\XINT@div@prepareA@di
    \or   \expandafter\XINT@div@prepareA@dii
    \or   \expandafter\XINT@div@prepareA@diii
    \else \expandafter\XINT@div@prepareA@div
    \fi
}%
\def\XINT@div@prepareA@di   {\XINT@div@prepareA@e {}}%
\def\XINT@div@prepareA@dii  {\XINT@div@prepareA@e {0}}%
\def\XINT@div@prepareA@diii {\XINT@div@prepareA@e {00}}%
\def\XINT@div@prepareA@div  {\XINT@div@prepareA@e {000}}%
\def\XINT@div@prepareA@e #1#2#3%
{%
    \XINT@div@startswitch {#1#3}{#2}%
}%
\def\XINT@div@startswitch #1#2#3#4%
{%
    \ifnum #2 > #4
      \expandafter\XINT@div@body@a
    \else
    \ifnum #2 = #4
      \expandafter\expandafter\expandafter\XINT@div@final@a
    \else
      \expandafter\expandafter\expandafter\XINT@div@finished@a
    \fi\fi {#1}{#4}{#3}{0000}{#2}%
}%
\def\XINT@div@finished@a #1#2#3%
{%
    \expandafter \XINT@div@finished@b \expandafter
      {\romannumeral0\XINT@cuz {#1}}%
}%
\def\XINT@div@finished@b #1#2#3#4#5%
{%
    \ifcase \XINT@Sgn {#1}
       \xint@afterfi {\XINT@div@finished@c {0}}%
    \or
       \xint@afterfi {\expandafter\XINT@div@finished@c
                      \expandafter
         {\romannumeral0\XINT@dsh@checksignx #5\Z {#1}}}%
    \fi
    {#2}%
}%
\def\XINT@div@finished@c #1#2%
{%
    \expandafter\space\expandafter
                {\romannumeral0\XINT@rev@andcuz {#2}}{#1}%
}%
\def\XINT@div@final@a #1%
{%
    \XINT@div@final@b #1\Z
}%
\def\XINT@div@final@b #1#2#3#4#5\Z
{%
    \xint@quatrezeros #1#2#3#4\xint@div@final@c0000%
    \XINT@div@final@c {#1#2#3#4}{#1#2#3#4#5}%
}%
\def\xint@div@final@c0000\XINT@div@final@c #1{\XINT@div@finished@a }%
\def\XINT@div@final@c #1#2#3#4%
{%
    \expandafter \XINT@div@final@da \expandafter
    {\the\numexpr #1-(#1/#4)*#4\expandafter }\expandafter
    {\the\numexpr #1/#4\expandafter }\expandafter
    {\romannumeral0\xint@cleanupzeros@andstop #2}%
}%
\def\XINT@div@final@da #1%
{%
    \ifnum #1>9
       \expandafter\XINT@div@final@dP
    \else
       \xint@afterfi
       {\ifnum #1<0
        \expandafter\XINT@div@final@dN
        \else
        \expandafter\XINT@div@final@db
        \fi }%
    \fi
}%
\def\XINT@div@final@dN #1%
{%
    \expandafter\XINT@div@final@dP\the\numexpr #1-1\relax
}%
\def\XINT@div@final@dP #1#2#3#4#5% q,A,Q,L,B (puis c)
{%
    \expandafter \XINT@div@final@f \expandafter
    {\romannumeral0\xintisub {#2}%
        {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}%
    {\romannumeral0\XINT@add@A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }%
}%
\def\XINT@div@final@db #1#2#3#4#5% q,A,Q,L,B (puis c)
{%
    \expandafter\XINT@div@final@dc\expandafter
    {\romannumeral0\xintisub {#2}%
        {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}%
    {#1}{#2}{#3}{#4}{#5}%
}%
\def\XINT@div@final@dc #1#2%
{%
    \ifnum\XINT@Sgn{#1}<0
    \xint@afterfi {\expandafter\XINT@div@final@dP\the\numexpr #2-1\relax}%
    \else \xint@afterfi {\XINT@div@final@e {#1}#2}%
    \fi
}%
\def\XINT@div@final@e #1#2#3#4#5#6% A final, q, trash, Q, L, B
{%
    \XINT@div@final@f {#1}%
    {\romannumeral0\XINT@add@A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }%
}%
\def\XINT@div@final@f #1#2#3% R,Q à développer,c
{%
    \ifcase \XINT@Sgn {#1}
       \xint@afterfi {\XINT@div@final@end {0}}%
    \or
       \xint@afterfi {\expandafter\XINT@div@final@end
                      \expandafter % pas de leading zeros dans #1=R
                      {\romannumeral0\XINT@dsh@checksignx #3\Z {#1}}}%
    \fi
    {#2}%
}%
\def\XINT@div@final@end #1#2%
{%
    \expandafter\space\expandafter {#2}{#1}%
}%
\def\XINT@div@body@a #1%
{%
    \XINT@div@body@b #1\Z {#1}%
}%
\def\XINT@div@body@b #1#2#3#4#5#6#7#8#9\Z
{%
    \XINT@div@body@c {#1#2#3#4#5#6#7#8}%
}%
\def\XINT@div@body@c #1#2#3%
{%
    \XINT@div@body@d {#3}{}#2\Z {#1}{#3}%
}%
\def\XINT@div@body@d #1#2#3#4#5#6%
{%
    \ifnum #1 > 0
        \expandafter\XINT@div@body@d
        \expandafter{\the\numexpr #1-4\expandafter }%
    \else
        \expandafter\XINT@div@body@e
    \fi
    {#6#5#4#3#2}%
}%
\def\XINT@div@body@e #1#2\Z #3%
{%
    \XINT@div@body@f {#3}{#1}{#2}%
}%
\def\XINT@div@body@f #1#2#3#4#5#6#7#8%
{%
    \expandafter\XINT@div@body@gg
    \the\numexpr (#1+(#5+1)/2)/(#5+1)+99999\relax
    {#8}{#2}{#8}{#4}{#5}{#3}{#6}{#7}{#8}%
}%
\def\XINT@div@body@gg #1#2#3#4#5#6%
{%
    \xint@UDzerofork
      #2\dummy \XINT@div@body@gk
       0\dummy {\XINT@div@body@ggk #2}%
    \xint@UDkrof
    {#3#4#5#6}%
}%
\def\XINT@div@body@gk #1#2#3%
{%
    \expandafter\XINT@div@body@h
    \romannumeral0\XINT@div@sub@xpxp
    {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}%
}%
\def\XINT@div@body@ggk #1#2#3%
{%
    \expandafter \XINT@div@body@gggk \expandafter
    {\romannumeral0\XINT@mul@Mr {#1}0000#3\Z\Z\Z\Z }%
    {\romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z }%
    {#1#2}%
}%
\def\XINT@div@body@gggk #1#2#3#4%
{%
    \expandafter\XINT@div@body@h
    \romannumeral0\XINT@div@sub@xpxp
    {\romannumeral0\expandafter\XINT@mul@Ar
     \expandafter0\expandafter{\expandafter}#2\W\X\Y\Z #1\W\X\Y\Z }%
    {#4}\Z {#3}%
}%
\def\XINT@div@body@h #1#2#3#4#5#6#7#8#9\Z
{%
    \ifnum #1#2#3#4>0
        \xint@afterfi{\XINT@div@body@i {#1#2#3#4#5#6#7#8}}%
    \else
        \expandafter\XINT@div@body@k
    \fi
    {#1#2#3#4#5#6#7#8#9}%
}%
\def\XINT@div@body@k #1#2#3%
{%
    \XINT@div@body@l {#1}{#2}%
}%
\def\XINT@div@body@i #1#2#3#4#5#6%
{%
    \expandafter\XINT@div@body@j
    \expandafter{\the\numexpr (#1+(#6+1)/2)/(#6+1)-1}%
       {#2}{#3}{#4}{#5}{#6}%
}%
\def\XINT@div@body@j #1#2#3#4%
{%
    \expandafter \XINT@div@body@l \expandafter
    {\romannumeral0\XINT@div@sub@xpxp
       {\romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z }{\XINT@Rev{#2}}}%
    {#3+#1}%
}%
\def\XINT@div@body@l #1#2#3#4#5#6#7%
{%
   \expandafter\XINT@div@body@m
   \the\numexpr 100000000+#2\relax
       {#6}{#3}{#7}{#1#5}{#4}%
}%
\def\XINT@div@body@m #1#2#3#4#5#6#7#8#9%
{%
    \ifnum #2#3#4#5>0
       \xint@afterfi {\XINT@div@body@n {#9#8#7#6#5#4#3#2}}%
    \else
       \xint@afterfi {\XINT@div@body@n {#9#8#7#6}}%
    \fi
}%
\def\XINT@div@body@n #1#2%
{%
    \expandafter\XINT@div@body@o\expandafter
    {\romannumeral0\XINT@addr@A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }%
}%
\def\XINT@div@body@o #1#2#3#4%
{%
    \XINT@div@body@p {#3}{#2}{}#4\Z {#1}%
}%
\def\XINT@div@body@p #1#2#3#4#5#6#7%
{%
    \ifnum #1 > #2
        \xint@afterfi
        {\ifnum #4#5#6#7 > 0
           \expandafter\XINT@div@body@q
         \else
           \expandafter\XINT@div@body@repeatp
         \fi }%
    \else
        \expandafter\XINT@div@gotofinal@a
    \fi
    {#1}{#2}{#3}#4#5#6#7%
}%
\def\XINT@div@body@repeatp #1#2#3#4#5#6#7%
{%
    \expandafter\XINT@div@body@p\expandafter{\the\numexpr #1-4}{#2}{0000#3}%
}%
\def\XINT@div@body@q #1#2#3#4\Z #5#6%
{%
    \XINT@div@body@b #4\Z {#4}{#2}{#6}{#3#5}{#1}%
}%
\def\XINT@div@gotofinal@a #1#2#3#4\Z %
{%
    \XINT@div@gotofinal@b #3\Z {#4}{#1}%
}%
\def\XINT@div@gotofinal@b 0000#1\Z #2#3#4#5%
{%
    \XINT@div@final@a {#2}{#3}{#5}{#1#4}{#3}%
}%
\def\XINT@div@sub@xpxp #1%
{%
    \expandafter \XINT@div@sub@xpxp@  \expandafter{#1}%
}%
\def\XINT@div@sub@xpxp@ #1#2%
{%
    \expandafter\expandafter\expandafter\XINT@div@sub@xpxp@@
     #2\W\X\Y\Z #1\W\X\Y\Z
}%
\def\XINT@div@sub@xpxp@@
{%
    \XINT@div@sub@A 1{}%
}%
\def\XINT@div@sub@A #1#2#3#4#5#6%
{%
    \xint@w #3\xint@div@sub@az\W
    \XINT@div@sub@B #1{#3#4#5#6}{#2}%
}%
\def\XINT@div@sub@B #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
    \xint@w #5\xint@div@sub@bz\W
    \XINT@div@sub@onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
}%
\def\XINT@div@sub@onestep #1#2#3#4#5#6%
{%
    \expandafter\XINT@div@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.%
}%
\def\XINT@div@sub@backtoA #1#2#3.#4%
{%
    \XINT@div@sub@A #2{#3#4}%
}%
\def\xint@div@sub@bz\W\XINT@div@sub@onestep #1#2#3#4#5#6#7%
{%
    \xint@UDzerofork
      #1\dummy  \XINT@div@sub@C   %
       0\dummy  \XINT@div@sub@D   % pas de retenue
    \xint@UDkrof
    {#7}#2#3#4#5%
}%
\def\XINT@div@sub@D #1#2\W\X\Y\Z
{%
    \expandafter\space
    \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\XINT@div@sub@C #1#2#3#4#5%
{%
    \xint@w #2\xint@div@sub@cz\W
    \XINT@div@sub@AC@onestep {#5#4#3#2}{#1}%
}%
\def\XINT@div@sub@AC@onestep #1%
{%
    \expandafter\XINT@div@sub@backtoC\the\numexpr 11#1-1\relax.%
}%
\def\XINT@div@sub@backtoC #1#2#3.#4%
{%
    \XINT@div@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee
}%
\def\XINT@div@sub@AC@checkcarry #1%
{%
    \xint@one #1\xint@div@sub@AC@nocarry 1\XINT@div@sub@C
}%
\def\xint@div@sub@AC@nocarry 1\XINT@div@sub@C #1#2\W\X\Y\Z
{%
    \expandafter\space
    \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\xint@div@sub@cz\W\XINT@div@sub@AC@onestep #1#2{ #2}%
\def\xint@div@sub@az\W\XINT@div@sub@B #1#2#3#4\Z { #3}%
\def\xintiFDg {\romannumeral0\xintifdg }%
\def\xintifdg #1%
{%
    \expandafter\expandafter\expandafter\XINT@fdg #1\W\Z
}%
\let\xintFDg\xintiFDg \let\xintfdg\xintifdg
\def\XINT@FDg #1{\romannumeral0\XINT@fdg #1\W\Z }%
\def\XINT@fdg #1#2#3\Z
{%
    \xint@UDzerominusfork
      #1-\dummy  { 0}%   zero
      0#1\dummy  { #2}%  negative
       0-\dummy  { #1}%  positive
    \xint@UDkrof
}%
\def\xintiLDg {\romannumeral0\xintildg }%
\def\xintildg #1%
{%
    \expandafter\expandafter\expandafter
        \XINT@ldg
    \expandafter\expandafter\expandafter
    {#1}%
}%
\let\xintLDg\xintiLDg \let\xintldg\xintildg
\def\XINT@LDg #1{\romannumeral0\XINT@ldg {#1}}%
\def\XINT@ldg #1%
{%
    \expandafter\XINT@ldg@\romannumeral0\XINT@rev {#1}\Z
}%
\def\XINT@ldg@ #1#2\Z{ #1}%
\def\xintiMON {\romannumeral0\xintimon }%
\def\xintimon #1%
{%
    \ifodd\xintiLDg {#1}
        \xint@afterfi{ -1}%
    \else
        \xint@afterfi{ 1}%
    \fi
}%
\def\xintiMMON {\romannumeral0\xintimmon }%
\def\xintimmon #1%
{%
    \ifodd\xintiLDg {#1}
        \xint@afterfi{ 1}%
    \else
        \xint@afterfi{ -1}%
    \fi
}%
\let\xintMON\xintiMON \let\xintmon\xintimon
\let\xintMMON\xintiMMON \let\xintmmon\xintimmon
\def\xintiOdd {\romannumeral0\xintiodd }%
\def\xintiodd #1%
{%
    \ifodd\xintiLDg{#1}
        \xint@afterfi{ 1}%
    \else
        \xint@afterfi{ 0}%
    \fi
}%
\def\XINT@Odd #1%
{\romannumeral0%
    \ifodd\XINT@LDg{#1}
        \xint@afterfi{ 1}%
    \else
        \xint@afterfi{ 0}%
    \fi
}%
\let\xintOdd\xintiOdd \let\xintodd\xintiodd
\def\xintDSL {\romannumeral0\xintdsl }%
\def\xintdsl #1%
{%
    \expandafter\expandafter\expandafter\XINT@dsl #1\Z
}%
\def\XINT@DSL #1{\romannumeral0\XINT@dsl #1\Z }%
\def\XINT@dsl #1%
{%
    \xint@zero #1\xint@dsl@zero 0\XINT@dsl@ #1%
}%
\def\xint@dsl@zero 0\XINT@dsl@ 0#1\Z { 0}%
\def\XINT@dsl@ #1\Z { #10}%
\def\xintDSR {\romannumeral0\xintdsr }%
\def\xintdsr #1%
{%
    \expandafter\expandafter\expandafter
       \XINT@dsr@a
    \expandafter\expandafter\expandafter
    {#1}\W\Z
}%
\def\XINT@DSR #1{\romannumeral0\XINT@dsr@a {#1}\W\Z }%
\def\XINT@dsr@a
{%
    \expandafter\XINT@dsr@b
    \romannumeral0\XINT@rev
}%
\def\XINT@dsr@b #1#2#3\Z
{%
    \xint@w #2\xint@dsr@onedigit\W
    \xint@minus #2\xint@dsr@onedigit-%
    \expandafter\XINT@dsr@removew
    \romannumeral0\XINT@rev {#2#3}%
}%
\def\xint@dsr@onedigit #1\XINT@rev #2{ 0}%
\def\XINT@dsr@removew #1\W { }%
\def\xintDSHr {\romannumeral0\xintdshr }%
\def\xintdshr #1%
{%
    \expandafter\expandafter\expandafter\XINT@dshr@checkxpositive #1\Z
}%
\def\XINT@dshr@checkxpositive #1%
{%
    \xint@UDzerominusfork
      0#1\dummy \XINT@dshr@xzeroorneg
      #1-\dummy \XINT@dshr@xzeroorneg
       0-\dummy \XINT@dshr@xpositive
    \xint@UDkrof #1%
}%
\def\XINT@dshr@xzeroorneg #1\Z #2{ 0}%
\def\XINT@dshr@xpositive #1\Z
{%
    \expandafter\xint@secondoftwo@andstop
    \romannumeral0\xintdsx {#1}%
}%
\def\xintDSH {\romannumeral0\xintdsh }%
\def\xintdsh #1#2%
{%
    \expandafter\expandafter\expandafter
      \xint@dsh
    \expandafter\expandafter\expandafter
      {#2}{#1}%
}%
\def\xint@dsh #1#2%
{%
    \expandafter\expandafter\expandafter
        \XINT@dsh@checksignx #2\Z {#1}%
}%
\def\XINT@dsh@checksignx #1%
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@dsh@xiszero
      0#1\dummy  \XINT@dsx@xisNeg@checkA     % on passe direct dans DSx
       0-\dummy  {\XINT@dsh@xisPos #1}%
    \xint@UDkrof
}%
\def\XINT@dsh@xiszero #1\Z #2{ #2}%
\def\XINT@dsh@xisPos #1\Z #2%
{%
    \expandafter\xint@firstoftwo@andstop
    \romannumeral0\XINT@dsx@checksignA #2\Z {#1}% via DSx
}%
\def\xintDSx {\romannumeral0\xintdsx }%
\def\xintdsx #1#2%
{%
    \expandafter\expandafter\expandafter
        \xint@dsx
    \expandafter\expandafter\expandafter
    {#2}{#1}%
}%
\def\xint@dsx #1#2%
{%
    \expandafter\expandafter\expandafter\XINT@dsx@checksignx #2\Z {#1}%
}%
\def\XINT@DSx #1#2{\romannumeral0\XINT@dsx@checksignx #1\Z {#2}}%
\def\XINT@dsx #1#2{\XINT@dsx@checksignx #1\Z {#2}}%
\def\XINT@dsx@checksignx #1%
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@dsx@xisZero
      0#1\dummy  \XINT@dsx@xisNeg@checkA
       0-\dummy  {\XINT@dsx@xisPos #1}%
    \xint@UDkrof
}%
\def\XINT@dsx@xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0
\def\XINT@dsx@xisNeg@checkA #1\Z #2%
{%
    \XINT@dsx@xisNeg@checkA@ #2\Z {#1}%
}%
\def\XINT@dsx@xisNeg@checkA@ #1#2\Z #3%
{%
    \xint@zero #1\XINT@dsx@xisNeg@Azero 0\expandafter
    \XINT@dsx@xisNeg@checkx\expandafter
    {\romannumeral0\XINT@length {#3}}{#3}\Z {#1#2}%
}%
\def\XINT@dsx@xisNeg@Azero #1#2#3#4#5#6#7#8{ 0}%
\def\XINT@dsx@xisNeg@checkx #1%
{%
    \ifnum #1> 9
       \xint@afterfi {\xintError:TooBigDecimalShift
                      \XINT@dsx@toobigx }%
    \else
       \expandafter \XINT@dsx@zeroloop
    \fi
}%
\def\XINT@dsx@toobigx #1#2#3{ 0}%
\def\XINT@dsx@zeroloop #1%
{%
    \ifcase #1
        \XINT@dsx@exit
    \or
        \XINT@dsx@exiti
    \or
        \XINT@dsx@exitii
    \or
        \XINT@dsx@exitiii
    \or
        \XINT@dsx@exitiv
    \or
        \XINT@dsx@exitv
    \or
        \XINT@dsx@exitvi
    \or
        \XINT@dsx@exitvii
    \else
        \xint@afterfi
         {\expandafter
          \XINT@dsx@zeroloop
          \expandafter {\the\numexpr #1-8}00000000%
         }%
    \fi
}%
\def\XINT@dsx@exit #1\fi #2\Z {\fi \XINT@dsx@addzeros {#2}}%
\def\XINT@dsx@exiti #1\fi #2\Z {\fi \XINT@dsx@addzeros {0#2}}%
\def\XINT@dsx@exitii #1\fi #2\Z {\fi \XINT@dsx@addzeros {00#2}}%
\def\XINT@dsx@exitiii #1\fi #2\Z {\fi \XINT@dsx@addzeros {000#2}}%
\def\XINT@dsx@exitiv #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000#2}}%
\def\XINT@dsx@exitv #1\fi #2\Z {\fi \XINT@dsx@addzeros {00000#2}}%
\def\XINT@dsx@exitvi #1\fi #2\Z {\fi \XINT@dsx@addzeros {000000#2}}%
\def\XINT@dsx@exitvii #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000000#2}}%
\def\XINT@dsx@addzeros #1#2{ #2#1}%
\def\XINT@dsx@xisPos #1\Z #2%
{%
    \XINT@dsx@checksignA #2\Z {#1}%
}%
\def\XINT@dsx@checksignA #1%
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@dsx@AisZero
      0#1\dummy  \XINT@dsx@AisNeg
       0-\dummy  {\XINT@dsx@AisPos #1}%
    \xint@UDkrof
}%
\def\XINT@dsx@AisZero #1\Z #2{ {0}{0}}%
\def\XINT@dsx@AisNeg #1\Z #2%
{%
    \expandafter\XINT@dsx@AisNeg@dosplit@andcheckfirst
    \romannumeral0\XINT@split@checksizex {#2}{#1}%
}%
\def\XINT@dsx@AisNeg@dosplit@andcheckfirst #1%
{%
    \XINT@dsx@AisNeg@checkiffirstempty #1\Z
}%
\def\XINT@dsx@AisNeg@checkiffirstempty #1%
{%
    \xint@z #1\XINT@dsx@AisNeg@finish@zero\Z
    \XINT@dsx@AisNeg@finish@notzero #1%
}%
\def\XINT@dsx@AisNeg@finish@zero\Z
    \XINT@dsx@AisNeg@finish@notzero\Z #1%
{%
    \expandafter\XINT@dsx@end
    \expandafter {\romannumeral0\XINT@num {-#1}}{0}%
}%
\def\XINT@dsx@AisNeg@finish@notzero #1\Z #2%
{%
    \expandafter\XINT@dsx@end
    \expandafter {\romannumeral0\XINT@num {#2}}{-#1}%
}%
\def\XINT@dsx@AisPos #1\Z #2%
{%
    \expandafter\XINT@dsx@AisPos@finish
    \romannumeral0\XINT@split@checksizex {#2}{#1}%
}%
\def\XINT@dsx@AisPos@finish #1#2%
{%
    \expandafter\XINT@dsx@end
    \expandafter {\romannumeral0\XINT@num {#2}}%
                 {\romannumeral0\XINT@num {#1}}%
}%
\def\XINT@dsx@end #1#2%
{%
    \expandafter\space\expandafter{#2}{#1}%
}%
\def\xintDecSplitL {\romannumeral0\xintdecsplitl }%
\def\xintDecSplitR {\romannumeral0\xintdecsplitr }%
\def\xintdecsplitl
{%
    \expandafter\xint@firstoftwo@andstop
    \romannumeral0\xintdecsplit
}%
\def\xintdecsplitr
{%
    \expandafter\xint@secondoftwo@andstop
    \romannumeral0\xintdecsplit
}%
\def\xintDecSplit {\romannumeral0\xintdecsplit }%
\def\xintdecsplit #1#2%
{%
    \expandafter \xint@split \expandafter
    {\romannumeral0\xintiabs {#2}}{#1}%  fait expansion de A
}%
\def\xint@split #1#2%
{%
    \expandafter\expandafter\expandafter
        \XINT@split@checksizex
    \expandafter\expandafter\expandafter
    {#2}{#1}%
}%
\def\XINT@split@checksizex #1%
{%
    \ifnum\XINT@Len {#1} > 9
       \xint@afterfi {\xintError:TooBigDecimalSplit
                     \XINT@split@bigx }%
    \else
       \expandafter\XINT@split@xfork
    \fi
    #1\Z
}%
\def\XINT@split@bigx  #1\Z #2%
{%
    \ifcase\XINT@Sgn {#1}
    \or \xint@afterfi { {}{#2}}% positive big x
    \else
        \xint@afterfi { {#2}{}}% negative big x
    \fi
}%
\def\XINT@split@xfork #1%
{%
    \xint@UDzerominusfork
      #1-\dummy  \XINT@split@zerosplit
      0#1\dummy  \XINT@split@fromleft
       0-\dummy  {\XINT@split@fromright #1}%
    \xint@UDkrof
}%
\def\XINT@split@zerosplit #1\Z #2{ {#2}{}}%
\def\XINT@split@fromleft #1\Z #2%
{%
    \XINT@split@fromleft@loop {#1}{}#2\W\W\W\W\W\W\W\W\Z
}%
\def\XINT@split@fromleft@loop #1%
{%
    \ifcase #1
        \XINT@split@fromleft@endsplit
    \or
        \XINT@split@fromleft@one@andend
    \or
        \XINT@split@fromleft@two@andend
    \or
        \XINT@split@fromleft@three@andend
    \or
        \XINT@split@fromleft@four@andend
    \or
        \XINT@split@fromleft@five@andend
    \or
        \XINT@split@fromleft@six@andend
    \or
        \XINT@split@fromleft@seven@andend
    \else
        \expandafter \XINT@split@fromleft@loop@perhaps
        \expandafter
            {\the\numexpr #1-8\expandafter\expandafter\expandafter }%
        \expandafter
        \XINT@split@fromleft@eight
    \fi
}%
\def\XINT@split@fromleft@endsplit #1\fi #2#3\W #4\Z
                       {\expandafter\space\fi {#2}{#3}}%
\def\XINT@split@fromleft@eight #1#2#3#4#5#6#7#8#9%
{%
    #9{#1#2#3#4#5#6#7#8#9}%
}%
\def\XINT@split@fromleft@loop@perhaps #1#2%
{%
    \xint@w #2\XINT@split@fromleft@toofar\W \XINT@split@fromleft@loop
    {#1}%
}%
\def\XINT@split@fromleft@toofar\W \XINT@split@fromleft@loop #1#2#3\Z
{%
    \XINT@split@fromleft@toofar@b #2\Z
}%
\def\XINT@split@fromleft@toofar@b #1\W #2\Z { {#1}{}}%
\def\XINT@split@fromleft@one@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@one }%
\def\XINT@split@fromleft@one #1#2{#2{#1#2}}%
\def\XINT@split@fromleft@two@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@two }%
\def\XINT@split@fromleft@two #1#2#3{#3{#1#2#3}}%
\def\XINT@split@fromleft@three@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@three }%
\def\XINT@split@fromleft@three #1#2#3#4{#4{#1#2#3#4}}%
\def\XINT@split@fromleft@four@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@four }%
\def\XINT@split@fromleft@four #1#2#3#4#5{#5{#1#2#3#4#5}}%
\def\XINT@split@fromleft@five@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@five }%
\def\XINT@split@fromleft@five #1#2#3#4#5#6{#6{#1#2#3#4#5#6}}%
\def\XINT@split@fromleft@six@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@six }%
\def\XINT@split@fromleft@six #1#2#3#4#5#6#7{#7{#1#2#3#4#5#6#7}}%
\def\XINT@split@fromleft@seven@andend #1\fi
{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@seven }%
\def\XINT@split@fromleft@seven #1#2#3#4#5#6#7#8{#8{#1#2#3#4#5#6#7#8}}%
\def\XINT@split@fromleft@checkiftoofar #1#2#3\W #4\Z
{%
    \xint@w #1\XINT@split@fromleft@wenttoofar\W
    \space {#2}{#3}%
}%
\def\XINT@split@fromleft@wenttoofar\W\space #1%
{%
    \XINT@split@fromleft@wenttoofar@b #1\Z
}%
\def\XINT@split@fromleft@wenttoofar@b #1\W #2\Z { {#1}}%
\def\XINT@split@fromright #1\Z #2%
{%
    \expandafter \XINT@split@fromright@a \expandafter
    {\romannumeral0\XINT@rev {#2}}{#1}{#2}%
}%
\def\XINT@split@fromright@a #1#2%
{%
    \XINT@split@fromright@loop {#2}{}#1\W\W\W\W\W\W\W\W\Z
}%
\def\XINT@split@fromright@loop #1%
{%
    \ifcase #1
        \expandafter\XINT@split@fromright@endsplit
    \or
        \XINT@split@fromright@one@andend
    \or
        \XINT@split@fromright@two@andend
    \or
        \XINT@split@fromright@three@andend
    \or
        \XINT@split@fromright@four@andend
    \or
        \XINT@split@fromright@five@andend
    \or
        \XINT@split@fromright@six@andend
    \or
        \XINT@split@fromright@seven@andend
    \else
        \expandafter \XINT@split@fromright@loop@perhaps
        \expandafter
            {\the\numexpr
            #1-8\expandafter\expandafter\expandafter }%
        \expandafter
        \XINT@split@fromright@eight
    \fi
}%
\def\XINT@split@fromright@endsplit #1#2\W #3\Z #4%
{%
    \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}%
}%
\def\XINT@split@fromright@eight #1#2#3#4#5#6#7#8#9%
{%
    #9{#9#8#7#6#5#4#3#2#1}%
}%
\def\XINT@split@fromright@loop@perhaps #1#2%
{%
    \xint@w #2\XINT@split@fromright@toofar\W\XINT@split@fromright@loop
    {#1}%
}%
\def\XINT@split@fromright@toofar\W\XINT@split@fromright@loop #1#2#3\Z { {}}%
\def\XINT@split@fromright@one@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@one }%
\def\XINT@split@fromright@one #1#2{#2{#2#1}}%
\def\XINT@split@fromright@two@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@two }%
\def\XINT@split@fromright@two #1#2#3{#3{#3#2#1}}%
\def\XINT@split@fromright@three@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@three }%
\def\XINT@split@fromright@three #1#2#3#4{#4{#4#3#2#1}}%
\def\XINT@split@fromright@four@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@four }%
\def\XINT@split@fromright@four #1#2#3#4#5{#5{#5#4#3#2#1}}%
\def\XINT@split@fromright@five@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@five }%
\def\XINT@split@fromright@five #1#2#3#4#5#6{#6{#6#5#4#3#2#1}}%
\def\XINT@split@fromright@six@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@six }%
\def\XINT@split@fromright@six #1#2#3#4#5#6#7{#7{#7#6#5#4#3#2#1}}%
\def\XINT@split@fromright@seven@andend #1\fi {\fi\expandafter
      \XINT@split@fromright@checkiftoofar\XINT@split@fromright@seven }%
\def\XINT@split@fromright@seven #1#2#3#4#5#6#7#8{#8{#8#7#6#5#4#3#2#1}}%
\def\XINT@split@fromright@checkiftoofar #1%
{%
    \xint@w #1\XINT@split@fromright@wenttoofar\W
    \XINT@split@fromright@endsplit
}%
\def\XINT@split@fromright@wenttoofar\W\XINT@split@fromright@endsplit #1\Z #2%
    { {}{#2}}%
\XINT@restorecatcodes@endinput%
\endinput
%%
%% End of file `xint.sty'.
