%%
%% This is file `ebezier.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ebezier.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from ebezier.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file ebezier.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.)
\ProvidesPackage{ebezier}
  [2005/03/01 v4]
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{calc}
%%
\newfont{\vrm}{cmr5}
\newfont{\virm}{cmr6}
\newfont{\viirm}{cmr7}
\newfont{\viiirm}{cmr8}
\newfont{\ixrm}{cmr9}
\newfont{\xrm}{cmr10}
\newfont{\xiirm}{cmr12}
\newfont{\xviirm}{cmr17}
\newfont{\xirm}{cmr10 scaled \magstephalf}
\newfont{\xivrm}{cmr10 scaled \magstep2}
\newfont{\xxrm}{cmr10 scaled \magstep4}
\newfont{\xxvrm}{cmr10 scaled \magstep5}
%%
\newcounter{@cnta}\newcounter{@cntb}\newcounter{@cntc}\newcounter{@cntd}
%%
%% \@TempDim#1#2#3{"count"|"dimen"|"box"|"skip"}{\myname}{\realname}
%%  allocate new one or alias is defined, so use it
%%
\def\@TempDim#1#2#3{%
  \ifx\@und@fined#3\csname new#1\endcsname#2%
  \else\let#2#3\fi}
%%
\@TempDim{dimen}\@X\@ovxx
\@TempDim{dimen}\@Xa\@ovdx
\@TempDim{dimen}\@Xb\@ovyy
\@TempDim{dimen}\@Xc\@ovdy
\@TempDim{dimen}\@Y\@ovro
\@TempDim{dimen}\@Ya\@ovri
\@TempDim{dimen}\@Yb\@xdim
\@TempDim{dimen}\@Yc\@ydim
\@TempDim{dimen}\@Z\@clnht
\@TempDim{dimen}\@Za\@clnwd
\@TempDim{dimen}\@Zb\@dashdim
\@TempDim{dimen}\@Zc\@tempdima
\@TempDim{dimen}\@Zd\@tempdimb
\@TempDim{dimen}\@Ze\@tempdimc
%%
\newlength{\@Zf}\newlength{\@Zg}\newlength{\@Zh}
\newlength{\@Zi}\newlength{\@Zj}
\newlength{\magicnum}
\newcommand\set@magic{%
 \setlength{\magicnum}{0.55228474983\unitlength}}
%%
\newlength{\eps}
\setlength{\eps}{1sp}
%%
\newlength{\PathLength}
%%
\chardef\x@=10
\newcommand{\pathmax}{50}
%%
\newsavebox{\@pt}
%%
\newif\if@other@symbol
\newif\if@standard@symbol
\newcommand{\DefStandardPlotSymbol}{%
 \@other@symbolfalse\@standard@symboltrue
 \setbox\@pt\hbox{\hskip -.5\wd0\vrule height\@halfwidth
 depth\@halfwidth width\@wholewidth}}
\newcommand{\DefOldPlotSymbol}{%
 \@other@symbolfalse\@standard@symbolfalse
 \setbox\@pt\hbox{\vrule height\@halfwidth
 depth\@halfwidth width\@wholewidth}}
\newcommand{\DefPlotSymbol}[1]{\setbox0=\hbox{#1}\@X\ht0\advance\@X-\dp0
 \@halfwidth.5\ht0\@wholewidth\ht0
 \@other@symboltrue\@standard@symbolfalse
 \setbox\@pt\hbox{\hskip -.5\wd0\lower.5\@X\copy0}}
\newcommand{\DefShiftedPlotSymbol}[4]{\setbox0=\hbox{#1}\@X #2\@Y #3
 \@wholewidth #4\@halfwidth.5\@wholewidth
 \@other@symboltrue\@standard@symbolfalse
 \setbox\@pt\hbox{\hskip-\@X\lower\@Y\copy0}}
\newcommand{\set@width}{%
 \if@other@symbol
  \relax
 \else
  \if@standard@symbol
    \@X-.5\@wholewidth
  \else
    \@X\z@
  \fi
  \setbox\@pt\hbox{\hskip\@X\vrule height\@halfwidth
  depth\@halfwidth width\@wholewidth}%
 \fi}
%%
\DefStandardPlotSymbol
%%
\def\lbezier{\@ifnextchar [{\@lbezier}{\@lbezier[0]}}
\def\@lbezier[#1](#2,#3)(#4,#5){%
 \c@@cntc#1\relax
 \ifnum \c@@cntc<\@ne
  \multiply\eps\x@
  \Length(#2,#3)(#4,#5){\PathLength}%
  \divide\eps\x@
  \c@@cntc\PathLength
  \@X.5\@halfwidth \divide\c@@cntc\@X
  \ifnum \c@@cntc>\qbeziermax%
    \PackageInfo{ebezier}{\the\c@@cntc\space points needed exceeding %
                          qbeziermax=\qbeziermax!}\fi
 \fi
 \ifnum \c@@cntc>\qbeziermax
 \c@@cntc\qbeziermax\relax
   \PackageWarning{ebezier}{Counter reset to qbeziermax=\qbeziermax!}\fi
 \c@@cnta\c@@cntc\relax\advance\c@@cnta\@ne
 \@Xa #4\unitlength \advance\@Xa-#2\unitlength \divide\@Xa\c@@cntc
 \@Ya #5\unitlength \advance\@Ya-#3\unitlength \divide\@Ya\c@@cntc
 \c@@cntb\z@\relax
 \set@width
 \put(#2,#3){\@whilenum{\c@@cntb<\c@@cnta}\do
    {\@X\c@@cntb \@Xa\@Y \c@@cntb\@Ya
    \raise\@Y\hbox to\z@{\hskip\@X\unhcopy\@pt\hss}%
    \advance\c@@cntb\@ne}}}
%%
\def\Lbezier{\@ifnextchar [{\@Lbezier}{\@Lbezier[0]}}
\def\@Lbezier[#1](#2,#3)(#4,#5){\c@@cntc#1\relax
 \@Xb\@wholewidth
 \@X #4\unitlength \advance\@X-#2\unitlength \AbsLen{\@X}%
 \@Y #5\unitlength \advance\@Y-#3\unitlength \AbsLen{\@Y}%
 \LenNorm{\@X}{\@Y}{\@Xc}\LenMult{\@Xc}{\@wholewidth}{\@Yb}%
 \LenDiv{\@Yb}{\@X+\@Y}{\@wholewidth}\@halfwidth .5\@wholewidth
 \ifnum \c@@cntc<\@ne
  \multiply\eps\x@
  \Length(#2,#3)(#4,#5){\PathLength}%
  \divide\eps\x@
  \c@@cntc\PathLength
  \@X.5\@halfwidth \divide\c@@cntc\@X
  \ifnum \c@@cntc>\qbeziermax%
    \PackageInfo{ebezier}{\the\c@@cntc\space points needed exceeding %
                          qbeziermax=\qbeziermax!}\fi
 \fi
 \ifnum \c@@cntc>\qbeziermax
 \c@@cntc\qbeziermax\relax
    \PackageWarning{ebezier}{Counter reset to qbeziermax=\qbeziermax!}\fi
 \c@@cnta\c@@cntc\relax \advance\c@@cnta\@ne
 \@Xa #4\unitlength \advance\@Xa-#2\unitlength \divide\@Xa\c@@cntc
 \@Ya #5\unitlength \advance\@Ya-#3\unitlength \divide\@Ya\c@@cntc
 \c@@cntb\z@\relax
 \set@width
 \put(#2,#3){\@whilenum{\c@@cntb<\c@@cnta}\do
    {\@X\c@@cntb \@Xa\@Y \c@@cntb\@Ya
    \raise\@Y\hbox to\z@{\hskip\@X\unhcopy\@pt\hss}%
    \advance\c@@cntb\@ne}}
 \@wholewidth\@Xb \@halfwidth .5\@Xb}
%%
\def\ljoin{\@ifnextchar [{\@ljoin}{\@ljoin[0]}}
\def\@ljoin[#1](#2,#3){\@ifnextchar ({\l@join[#1](#2,#3)}{\relax}}
\def\l@join[#1](#2,#3)(#4,#5){%
 \lbezier[#1](#2,#3)(#4,#5)%
 \ljoin[#1](#4,#5)}
%%
\def\Ljoin{\@ifnextchar [{\@Ljoin}{\@Ljoin[0]}}
\def\@Ljoin[#1](#2,#3){\@ifnextchar ({\L@join[#1](#2,#3)}{\relax}}
\def\L@join[#1](#2,#3)(#4,#5){%
 \Lbezier[#1](#2,#3)(#4,#5)%
 \Ljoin[#1](#4,#5)}
%%
\def\Qbezier{\@ifnextchar [{\@Qbezier}{\@Qbezier[0]}}
\def\@Qbezier[#1](#2,#3)(#4,#5)(#6,#7){\c@@cntc#1\relax
 \ifnum \c@@cntc<\@ne
  \multiply\eps\x@
  \PathLengthQ[5](#2,#3)(#4,#5)(#6,#7)%
  \divide\eps\x@
  \c@@cntc\PathLength
  \@X.5\@halfwidth \divide\c@@cntc\@X
  \ifnum \c@@cntc>\qbeziermax%
    \PackageInfo{ebezier}{\the\c@@cntc\space points needed exceeding %
                          qbeziermax=\qbeziermax!}\fi
 \fi
 \ifnum \c@@cntc>\qbeziermax
 \c@@cntc\qbeziermax\relax
    \PackageWarning{ebezier}{Counter reset to qbeziermax=\qbeziermax!}\fi
 \c@@cnta\c@@cntc\relax \advance\c@@cnta\@ne
 \@Xa #4\unitlength \advance\@Xa-#2\unitlength \multiply\@Xa\tw@
 \@Xb #6\unitlength \advance\@Xb-#2\unitlength
 \advance\@Xb-\@Xa \divide\@Xb\c@@cntc
 \@Ya #5\unitlength \advance\@Ya-#3\unitlength \multiply\@Ya\tw@
 \@Yb #7\unitlength \advance\@Yb-#3\unitlength
 \advance\@Yb-\@Ya \divide\@Yb\c@@cntc
 \c@@cntb\z@\relax
 \set@width
 \put(#2,#3){\@whilenum{\c@@cntb<\c@@cnta}\do
     {\@X\c@@cntb \@Xb\@Y \c@@cntb\@Yb
      \advance\@X\@Xa \advance\@Y\@Ya
      \divide\@X\c@@cntc \divide\@Y\c@@cntc
      \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
      \raise \@Y \hb@xt@\z@{\kern\@X\unhcopy\@pt\hss}%
      \advance\c@@cntb\@ne}}}
%%
\def\cbezier{\@ifnextchar [{\@cbezier}{\@cbezier[0]}}
\def\@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){%
 \c@@cntc#1\relax
 \ifnum \c@@cntc<\@ne
  \multiply\eps\x@
  \PathLengthC[5](#2,#3)(#4,#5)(#6,#7)(#8,#9)%
  \divide\eps\x@
  \c@@cntc\PathLength
  \@X = 0.5\@halfwidth
  \divide\c@@cntc\@X
  \ifnum \c@@cntc>\qbeziermax%
    \PackageInfo{ebezier}{\the\c@@cntc\space  points needed exceeding %
                          qbeziermax=\qbeziermax!}\fi
 \fi
 \ifnum \c@@cntc>\qbeziermax
 \c@@cntc\qbeziermax\relax
   \PackageWarning{ebezier}{Counter reset to qbeziermax=\qbeziermax!}\fi
  \c@@cnta\c@@cntc\relax \advance\c@@cnta\@ne
  \@Xa #4\unitlength \advance\@Xa-#2\unitlength \multiply\@Xa\thr@@
  \@Xb #6\unitlength \advance\@Xb-#2\unitlength \multiply\@Xb\thr@@
  \advance\@Xb -2\@Xa
  \@Xc #8\unitlength \advance\@Xc-#2\unitlength
  \advance\@Xc-\@Xa \advance\@Xc-\@Xb
  \@Ya #5\unitlength \advance\@Ya-#3\unitlength \multiply\@Ya\thr@@
  \@Yb #7\unitlength \advance\@Yb-#3\unitlength \multiply\@Yb\thr@@
  \advance\@Yb-2\@Ya
  \@Yc #9\unitlength \advance\@Yc-#3\unitlength
  \advance\@Yc-\@Ya \advance\@Yc-\@Yb
  \divide\@Xc\c@@cntc \divide\@Yc\c@@cntc
  \c@@cntb\z@\relax
 \set@width
  \put(#2,#3){\@whilenum{\c@@cntb<\c@@cnta}\do
      {\@X\c@@cntb \@Xc\@Y \c@@cntb\@Yc
      \advance\@X\@Xb \advance\@Y\@Yb
      \divide\@X\c@@cntc \divide\@Y\c@@cntc
      \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
      \advance\@X\@Xa  \advance\@Y\@Ya
      \divide\@X\c@@cntc \divide\@Y\c@@cntc
      \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
      \raise \@Y \hbox to \z@{\hskip \@X\unhcopy\@pt\hss}%
      \advance\c@@cntb\@ne}}}
%%
\def\Cbezier{\@ifnextchar [{\@Cbezier}{\@Cbezier[0]}}
\def\@Cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){%
 \cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9)%
 \c@@cntc#1\relax\divide\c@@cntc\thr@@
 \lbezier[\c@@cntc](#2,#3)(#4,#5)%
 \lbezier[\c@@cntc](#4,#5)(#6,#7)%
 \lbezier[\c@@cntc](#6,#7)(#8,#9)%
 \DefPlotSymbol{$\bullet$}
 \lbezier[1](#2,#3)(#2,#3)
 \lbezier[1](#4,#5)(#4,#5)
 \lbezier[1](#6,#7)(#6,#7)
 \lbezier[1](#8,#9)(#8,#9)
 \DefStandardPlotSymbol
 \thinlines}
%%
\long\gdef\l@put(#1,#2)#3{%
 \@killglue\raise#2\hb@xt@\z@{\kern#1#3\hss}\ignorespaces}
%%
\long\gdef\l@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){%
 \c@@cntc#1\relax
 \dimen1#2\dimen3#3
%%
 \@Xa #4 \advance\@Xa-#2 \multiply\@Xa\thr@@
 \@Xb #6 \advance\@Xb-#2 \multiply\@Xb\thr@@
 \advance\@Xb-2\@Xa
 \@Xc #8 \advance\@Xc-#2
 \advance\@Xc-\@Xa \advance\@Xc-\@Xb
 \@Ya #5 \advance\@Ya-#3 \multiply\@Ya\thr@@
 \@Yb #7 \advance\@Yb-#3 \multiply\@Yb\thr@@
 \advance\@Yb-2\@Ya
 \@Yc #9 \advance\@Yc-#3
 \advance\@Yc-\@Ya \advance\@Yc-\@Yb
%%
%% assume half arc
%%
 \ifnum \c@@cntc <\@ne
  \multiply\eps\x@
  \dimen5#2 \advance\dimen5-#8 \AbsLen{\dimen5}%
  \dimen7#3 \advance\dimen7-#9 \AbsLen{\dimen7}%
  \LenNorm{\dimen5}{\dimen7}{\PathLength}%
  \divide\eps\x@
  \c@@cntc\PathLength
  \dimen5.5\@halfwidth
  \divide\c@@cntc\dimen5
%%
%%  11/7 \approx \pi/2
%%
  \divide\c@@cntc 7 \multiply\c@@cntc 11
  \ifnum \c@@cntc>\qbeziermax
    \PackageInfo{ebezier}{\the\c@@cntc\space points needed exceeding %
                          qbeziermax=\qbeziermax!}\fi
 \fi
 \ifnum\c@@cntc>\qbeziermax
   \c@@cntc\qbeziermax\relax
     \PackageWarning{ebezier}{Counter reset to qbeziermax=\qbeziermax!}\fi
 \c@@cnta\c@@cntc\relax\advance\c@@cnta\@ne%
 \divide\@Xc\c@@cntc \divide\@Yc\c@@cntc
 \c@@cntb\z@\relax
 \set@width
 \l@put(\dimen1,\dimen3){\@whilenum{\c@@cntb<\c@@cnta}\do
      {\@X\c@@cntb \@Xc\@Y \c@@cntb\@Yc
      \advance\@X\@Xb \advance\@Y\@Yb
      \divide\@X\c@@cntc \divide\@Y\c@@cntc
      \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
      \advance\@X\@Xa \advance\@Y\@Ya
      \divide\@X\c@@cntc \divide\@Y\c@@cntc
      \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
      \raise\@Y\hbox to\z@{\hskip\@X\unhcopy\@pt\hss}%
      \advance\c@@cntb\@ne}}}
%%
\def\@circle@rt[#1](#2,#3)#4{%
 \set@magic
 \@Z #4\magicnum\@Za #2\unitlength\@Zb #3\unitlength
 \@Zc #2\unitlength \advance\@Zc\@Z
 \@Zd #3\unitlength \advance\@Zd\@Z
 \@Ze #4\unitlength \advance\@Ze\@Za
 \@Zf #4\unitlength \advance\@Zf\@Zb
 \l@cbezier[#1](\@Ze,\@Zb)(\@Ze,\@Zd)(\@Zc,\@Zf)(\@Za,\@Zf)}
%%
\def\@circle@lt[#1](#2,#3)#4{%
 \set@magic
 \@Z #4\magicnum\@Za #2\unitlength\@Zb #3\unitlength
 \@Zc #2\unitlength \advance\@Zc-\@Z
 \@Zd #3\unitlength \advance\@Zd\@Z
 \@Ze -#4\unitlength \advance\@Ze\@Za
 \@Zf #4\unitlength \advance\@Zf\@Zb
 \l@cbezier[#1](\@Za,\@Zf)(\@Zc,\@Zf)(\@Ze,\@Zd)(\@Ze,\@Zb)}
%%
\def\@circle@rb[#1](#2,#3)#4{%
 \set@magic
 \@Z #4\magicnum\@Za #2\unitlength\@Zb #3\unitlength
 \@Zc #2\unitlength \advance\@Zc\@Z
 \@Zd #3\unitlength \advance\@Zd-\@Z
 \@Ze #4\unitlength \advance\@Ze\@Za
 \@Zf -#4\unitlength \advance\@Zf\@Zb
 \l@cbezier[#1](\@Za,\@Zf)(\@Zc,\@Zf)(\@Ze,\@Zd)(\@Ze,\@Zb)}
%%
\def\@circle@lb[#1](#2,#3)#4{%
 \set@magic
 \@Z #4\magicnum\@Za #2\unitlength\@Zb #3\unitlength
 \@Zc #2\unitlength \advance\@Zc-\@Z
 \@Zd #3\unitlength \advance\@Zd-\@Z
 \@Ze -#4\unitlength \advance\@Ze\@Za
 \@Zf -#4\unitlength \advance\@Zf\@Zb
 \l@cbezier[#1](\@Ze,\@Zb)(\@Ze,\@Zd)(\@Zc,\@Zf)(\@Za,\@Zf)}
%%
\newif\if@ovf
\def\cCircle{\@ifnextchar [{\@cCircle}{\@cCircle[0]}}
\def\@cCircle[#1](#2,#3)#4[#5]{%
 \@ovtfalse\@ovbfalse\@ovlfalse\@ovrfalse\@ovffalse
 \c@@cnta#1\relax
 \@tfor\reserved@a:=#5\do{\csname @ov\reserved@a true\endcsname}%
 \if@ovf\@ovttrue \divide\c@@cnta\tw@\fi
 \if@ovt
  \if@ovr
     \@circle@rt[\c@@cnta](#2,#3){#4}
  \else\if@ovl
     \@circle@lt[\c@@cnta](#2,#3){#4}
  \else\divide\c@@cnta\tw@
     \@circle@rt[\c@@cnta](#2,#3){#4}
     \@circle@lt[\c@@cnta](#2,#3){#4}
  \fi\fi
  \if@ovf
     \@circle@rb[\c@@cnta](#2,#3){#4}
     \@circle@lb[\c@@cnta](#2,#3){#4}
  \fi
  \else\if@ovb
  \if@ovr
     \@circle@rb[\c@@cnta](#2,#3){#4}
  \else\if@ovl
     \@circle@lb[\c@@cnta](#2,#3){#4}
  \else\divide\c@@cnta\tw@
     \@circle@rb[\c@@cnta](#2,#3){#4}
     \@circle@lb[\c@@cnta](#2,#3){#4}
  \fi\fi
 \else
   \divide\c@@cnta\tw@
   \if@ovr
     \@circle@rb[\c@@cnta](#2,#3){#4}
     \@circle@rt[\c@@cnta](#2,#3){#4}
  \else
  \if@ovl
     \@circle@lb[\c@@cnta](#2,#3){#4}
     \@circle@lt[\c@@cnta](#2,#3){#4}
  \else
   \PackageError{Ebezier}{Missing or illegal position specifier in cCircle}
  \fi\fi\fi\fi}
%%
\def\cArc{\@ifnextchar [{\@cArc}{\@cArc[0]}}
\def\@cArc[#1](#2,#3)(#4,#5){%
 \c@@cntc#1\relax
 \@X #2\unitlength \@Y #3\unitlength
 \@Za #4\unitlength \@Zb #5\unitlength
 \@Zc 2\@X \advance\@Zc-\@Za \@Zd 2\@Y \advance\@Zd-\@Zb
 \@Xa\@Y \advance\@Xa-\@Zb \@Ya\@Za \advance\@Ya-\@X
 \multiply\@Xa 4 \divide\@Xa\thr@@ \multiply\@Ya 4 \divide\@Ya\thr@@
 \@Ze\@Za \advance\@Ze\@Xa \@Zf\@Zb \advance\@Zf\@Ya
 \@Zg\@Zc \advance\@Zg\@Xa \@Zh\@Zd \advance\@Zh\@Ya
 \l@cbezier[#1](\@Za,\@Zb)(\@Ze,\@Zf)(\@Zg,\@Zh)(\@Zc,\@Zd)}
%%
\def\LenMult#1#2#3{\setlength{#3}{#1*\ratio{#2}{\unitlength}}}
%%
\def\LenDiv#1#2#3{\setlength{#3}{\unitlength*\ratio{#1}{#2}}}
%%
\def\AbsLen#1{\ifdim#1<\z@\setlength{#1}{-#1}\fi}
%%
\def\LenSqrt#1#2{%
 \setlength{\@Za}{#1}%
 \ifdim\@Za>\eps\loop\setlength{\@Zb}{(\@Za+\unitlength*\ratio{#1}{\@Za})/2}%
 \setlength{\@Zc}{\@Za-\@Zb}\AbsLen{\@Zc}%
 \ifdim\@Zc>\eps\setlength{\@Za}{\@Zb}\repeat\fi%
 \setlength{#2}{\@Za}}
%%
\def\Length(#1,#2)(#3,#4)#5{%
 \setlength{\@Zd}{#3\unitlength-#1\unitlength}%
 \setlength{\@Ze}{#4\unitlength-#2\unitlength}%
 \setcounter{@cntd}{1}%
 \setlength{\@Zf}{\@Zd}\ifdim\@Ze>\@Zd\setlength{\@Zf}{\@Ze}\fi
 \loop\setlength{\@Zd}{\@Zd/2}\setlength{\@Ze}{\@Ze/2}\setlength{\@Zf}{\@Zf/2}%
  \multiply\c@@cntd\tw@\ifdim\@Zf>\x@ pt\repeat
 \LenMult{\@Zd}{\@Zd}{\@Zg}\LenMult{\@Ze}{\@Ze}{\@Zh}\setlength{\@Zf}{\@Zg+\@Zh}%
 \LenSqrt{\@Zf}{\@Zg}\setlength{#5}{\@Zg*\value{@cntd}}}
%%
\def\LenNorm#1#2#3{%
 \setlength{\@Zd}{#1}\setlength{\@Ze}{#2}\setcounter{@cntd}{1}%
 \setlength{\@Zf}{\@Zd}\ifdim\@Ze>\@Zd\setlength{\@Zf}{\@Ze}\fi
 \loop\setlength{\@Zd}{\@Zd/2}\setlength{\@Ze}{\@Ze/2}\setlength{\@Zf}{\@Zf/2}%
  \multiply\c@@cntd\tw@\ifdim\@Zf>\x@ pt\repeat
 \LenMult{\@Zd}{\@Zd}{\@Zg}\LenMult{\@Ze}{\@Ze}{\@Zh}\setlength{\@Zf}{\@Zg+\@Zh}%
 \LenSqrt{\@Zf}{\@Zg}\setlength{#3}{\@Zg*\value{@cntd}}}
%%
\def\PathLengthQ[#1](#2,#3)(#4,#5)(#6,#7){%
 \PathLength\z@\c@@cntc#1\relax
 \ifnum \c@@cntc<\@ne \c@@cntc\pathmax\relax\fi
 \ifnum \c@@cntc>\pathmax \c@@cntc\pathmax\relax
    \PackageWarning{ebezier}{Counter reset to pathmax=\pathmax!}\fi
 \@Za\z@ \@Zb\z@ \c@@cntb\c@@cntc\relax \advance\c@@cntb\@ne
 \@Xb #4\unitlength \advance\@Xb-#2\unitlength \multiply\@Xb\tw@
 \@Yb #5\unitlength \advance\@Yb-#3\unitlength \multiply\@Yb\tw@
 \@Xa #6\unitlength \advance\@Xa-#2\unitlength
 \advance\@Xa-\@Xb \divide\@Xa\c@@cntc
 \@Ya #7\unitlength \advance\@Ya-#3\unitlength
 \advance\@Ya-\@Yb \divide\@Ya\c@@cntc \c@@cnta\@ne\relax
 \@whilenum{\c@@cnta<\c@@cntb}\do
  {\@X\c@@cnta\@Xa \advance\@X\@Xb \divide\@X\c@@cntc \multiply\@X\c@@cnta
  \@Y\c@@cnta\@Ya \advance\@Y\@Yb \divide\@Y\c@@cntc \multiply\@Y\c@@cnta
  \@Zi\@X\@Zj\@Y
  \advance\@X-\@Za \advance\@Y-\@Zb \LenNorm{\@X}{\@Y}{\@Z}%
  \advance\PathLength\@Z
  \@Za\@Zi\@Zb\@Zj \advance\c@@cnta\@ne}}
%%
\def\PathLengthC[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){%
  \PathLength\z@ \c@@cntc#1\relax
 \ifnum \c@@cntc<\@ne \c@@cntc\pathmax\relax\fi
 \ifnum \c@@cntc>\pathmax \c@@cntc\pathmax\relax
    \PackageWarning{ebezier}{Counter reset to pathmax=\pathmax!}\fi
 \@Za\z@ \@Zb\z@ \c@@cnta\c@@cntc\relax \advance\c@@cnta\@ne
 \@Xa #4\unitlength \advance\@Xa-#2\unitlength \multiply\@Xa\thr@@
 \@Xb #6\unitlength \advance\@Xb-#2\unitlength \multiply\@Xb\thr@@
 \advance\@Xb-2\@Xa
 \@Xc #8\unitlength \advance\@Xc-#2\unitlength
 \advance\@Xc-\@Xa \advance\@Xc-\@Xb
 \@Ya #5\unitlength \advance\@Ya-#3\unitlength \multiply\@Ya\thr@@
 \@Yb #7\unitlength \advance\@Yb-#3\unitlength \multiply\@Yb\thr@@
 \advance\@Yb-2\@Ya
 \@Yc #9\unitlength \advance\@Yc-#3\unitlength
 \advance\@Yc-\@Ya \advance\@Yc-\@Yb
 \divide\@Xc\c@@cntc \divide\@Yc\c@@cntc
 \c@@cntb\@ne\relax
 \@whilenum{\c@@cntb<\c@@cnta}\do
  {\@X\c@@cntb\@Xc \@Y\c@@cntb\@Yc \advance\@X\@Xb \advance\@Y\@Yb
  \divide\@X\c@@cntc \divide\@Y\c@@cntc
  \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
  \advance\@X\@Xa \advance\@Y\@Ya
  \divide\@X\c@@cntc \divide\@Y\c@@cntc
  \multiply\@X\c@@cntb \multiply\@Y\c@@cntb
  \@Zi\@X\@Zj\@Y
  \advance\@X-\@Za \advance\@Y-\@Zb \LenNorm{\@X}{\@Y}{\@Z}%
  \advance\PathLength\@Z
  \@Za\@Zi\@Zb\@Zj\advance\c@@cntb\@ne}}
%%
\def\cArcs{\@ifnextchar [{\@cArcs}{\@cArcs[0]}}
\def\@cArcs[#1](#2,#3)(#4,#5)(#6,#7){%
 \c@@cntc#1\relax
 \@ovffalse
 \@X#2\unitlength\@Y#3\unitlength
 \@Zi#6\unitlength\@Zj#7\unitlength
 \setlength{\@Xa}{\@X-\@Zi}\setlength{\@Ya}{\@Y-\@Zj}%
 \LenNorm{\@Xa}{\@Ya}{\@Xb}%
 \@Xa#4\unitlength \advance\@Xa\@Zi \advance\@Xa-2\@X
 \@Ya#5\unitlength \advance\@Ya\@Zj \advance\@Ya-2\@Y
 \@Xc\@Xa\AbsLen{\@Xc}\@Yc\@Ya\AbsLen{\@Yc}%
 \ifdim\@Xc<\eps\ifdim\@Yc<\eps\@ovftrue\fi\fi
 \if@ovf
  \cArc[#1](#2,#3)(#4,#5)%
 \else
  \LenNorm{\@Xa}{\@Ya}{\@Yb}%
  \setlength{\@Xc}{\unitlength*\ratio{\@Xb}{\@Yb}}%
  \setlength{\@Yc}{(-\unitlength+\@Xc*2)*4/3}%
  \@Xb-#5\unitlength \advance\@Xb\@Zj
  \@Z\@Xb\AbsLen{\@Z}%
  \ifdim\@Z<100\eps \@Xb#4\unitlength \advance\@Xb-\@Zi \@Xa\@Ya\fi
  \setlength{\@Z}{\@Yc*\ratio{\@Xa}{\@Xb}}%
  \@Xa#4\unitlength\@Ya#5\unitlength
  \setlength{\@Za}{\@Y-\@Ya}\setlength{\@Zb}{\@Xa-\@X}%
  \setlength{\@Zc}{\@Zj-\@Y}\setlength{\@Zd}{\@X-\@Zi}%
  \@Xb\@Xa \LenMult{\@Z}{\@Za}{\@Zh}\advance\@Xb\@Zh
  \@Yb\@Ya\LenMult{\@Z}{\@Zb}{\@Zh}\advance\@Yb\@Zh
  \@Xc\@Zi\LenMult{\@Z}{\@Zc}{\@Zh}\advance\@Xc\@Zh
  \@Yc\@Zj\LenMult{\@Z}{\@Zd}{\@Zh}\advance\@Yc\@Zh
  \@Z\@Xa\@Za\@Ya\@Zb\@Xb\@Zc\@Yb\@Zd\@Xc\@Ze\@Yc
  \l@cbezier[#1](\@Z,\@Za)(\@Zb,\@Zc)(\@Zd,\@Ze)(\@Zi,\@Zj)%
 \fi}
\endinput
%%
%% End of file `ebezier.sty'.
