summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pstricks
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pstricks')
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/Changes38
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/dvipsone.con36
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-char.tex91
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-coil.tex136
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-eps.tex251
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-fill.tex471
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-grad.tex112
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-key.tex100
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-node.tex1133
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-plot.tex647
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-text.tex98
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-tree.tex1010
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.con44
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex3065
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/textures.con29
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/vtex.con74
16 files changed, 7335 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pstricks/Changes b/Master/texmf-dist/tex/generic/pstricks/Changes
new file mode 100644
index 00000000000..f34f21b2105
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/Changes
@@ -0,0 +1,38 @@
+pstricks.sty --------
+0.24 2005-08-30 drop support for \scalebox check, it is now renamed
+ in pstricks.tex (hv)
+0.23 2005-06-02 Option DIA to prevent a clash with \scalebox (hv)
+0.22 2005-02-25 changes were done in the wrong version
+0.21 2005-02-21 fix problem with \newrgbcolor (RN,hv)
+
+
+pstricks.tex --------
+1.12 2005-10-25 - spurious blank for \multirput
+ - shift only for an absolute length
+ - add the missing arrows ]-[)-(
+1.11 2005-09-08 - rename \rotateleft | right | down to
+ \psrotateleft | right | down to be consistant to the
+ other PSTricks macro names
+ - new fillstyle options
+ - move the code for arcs of an ellipse into pstricks.pro
+1.10 2005-08-13 - fix bug with \multips (spurious blank) (hv)
+ - allow empty optional arrow argument \psline[..]{}(2,2)
+ - redefined \psarc@iv for negative loops of \nccircle
+ - introduce new options shift and showgrid for the
+ main pspicture environment
+ - rename \scalebox and \scaleboxto to
+ \psscalebox(to) to be consistant to the
+ other PSTricks macro names
+1.08 2005-06-02 fix bug with \multips (spurious blank) (hv)
+1.07 2005-05-06 make \nccircle working for counter-clockwise
+ orientation (hv)
+1.06 2005-02-24 fix spurious blank in doublestroke (hv)
+
+
+---- pstricks.pro
+1.00 2005-09-19 (hv) move the code for arcs of an ellipse from
+ the main pstricks.tex into this pro
+97, patch 7 2005-09-11 (hv) added new fillstyles
+97, patch 6 2005-05-17 (hv) added some helper stuff
+ RadtoDeg, DegtoRad, Pi, TwoPi, ATAN
+97, patch 5 2005-03-08 (hv) bugfix for DashLine
diff --git a/Master/texmf-dist/tex/generic/pstricks/dvipsone.con b/Master/texmf-dist/tex/generic/pstricks/dvipsone.con
new file mode 100644
index 00000000000..9f8fa4f87e9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/dvipsone.con
@@ -0,0 +1,36 @@
+%% BEGIN pstricks.con (for DVIPSONE driver)
+%%
+%% Configuration file for PSTricks 97: must be renamed `pstricks.con'
+%%
+%% Version 97 (1994/03/29)
+%%
+%% For use with DVIPSONE. (May require the -j flag with dvipsone)
+
+\def\pstdriver{DVIPSONE}
+\def\pstunit{1bp}
+{\catcode`\"=12 \gdef\pstverb#1{\special{" #1}} }
+\def\pstVerb#1{\special{ps:: #1}}
+\def\pstverbscale{1 dviscl div dup neg scale}
+\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET}
+\def\pstheader#1{\special{header=#1}}
+
+\pstcustomize
+
+\endinput
+
+%% To get PSTricks charpath and textpath to work:
+----------- pst-show.pro ------------------------------------------
+%!
+% Patch for dvipsone to get PSTricks' charpath and textpath to work.
+% Save as pst-show.pro, put it with your other PSTricks .pro files.
+% Add "\pstheader{pst-show.pro}" to the beginning of your document.
+%
+% We unbind show:
+dvidict begin
+/S {show dup 0 rmoveto} def
+/T {show 2 index 0 rmoveto} def
+/s {show} def
+end
+------------- end pst-show.pro ------------------------------------
+%%
+%% END: pstricks.con
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-char.tex b/Master/texmf-dist/tex/generic/pstricks/pst-char.tex
new file mode 100644
index 00000000000..3ffe88d2ed6
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-char.tex
@@ -0,0 +1,91 @@
+%% BEGIN pst-char.tex
+%%
+%% Stroking and filling characters with line and fill styles with PSTricks 97.
+%% See the PSTricks User's Guide for description.
+%% See chartest.tex for sample input.
+%%
+\def\fileversion{97 patch 3}
+\def\filedate{1999/03/11}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+
+\csname PSTcharpathLoaded\endcsname
+\let\PSTcharpathLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex}
+ \expandafter\next
+\fi
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+\def\tx@CharPathShow{%
+ /tx@CharPathSavedShow /show load def
+ /show {
+ % These 3 lines check whether charpath yields anything interesting.
+ dup gsave newpath 0 0 moveto
+ true charpath pathbbox grestore
+ 3 -1 roll eq 3 1 roll eq and
+ % If not, just use show.
+ { tx@CharPathSavedShow }
+ % Otherwise, use charpath.
+ { true charpath }
+ ifelse }
+ def }
+
+\def\pscharpath{\def\pst@par{}\pst@object{pscharpath}}
+\def\pscharpath@i{\pst@makebox\pscharpath@ii}
+\def\pscharpath@ii{%
+ \leavevmode\hbox{%
+ \pstVerb{\tx@CharPathShow}%
+ \box\pst@hbox
+ \pstVerb{/show /tx@CharPathSavedShow load def}%
+% DG/SR modification begin - Nov. 26, 1998 - Patch 2
+% \if@star is true but \solid@star must not be executed in \begin@ClosedObj !
+% \begin@ClosedObj
+ \let\solid@starOLD\solid@star
+ \let\solid@star\relax
+ \begin@ClosedObj
+ \let\solid@star\solid@starOLD
+% DG/SR modification end
+ \def\pst@linetype{1}%
+ \psdashadjustfalse
+ \showpointsfalse
+ \let\pst@newpath\@empty
+ \def\use@pscode{%
+ \pst@Verb{%
+ gsave
+ \tx@STV
+ \pst@code
+ grestore
+% DG/SR modification begin - Jul. 3, 1998 / Mar. 11, 1999 - Patches 1 and 3
+% \if@star\else CP newpath moveto \fi}}%
+ \if@star\else CP newpath moveto \fi}%
+ \gdef\pst@code{}}%
+% DG/SR modification end
+ \end@ClosedObj}}
+
+\def\pscharclip{\def\pst@par{}\pst@object{pscharclip}}
+\def\pscharclip@i{\pst@makebox\pscharclip@ii}
+\def\pscharclip@ii{%
+ \leavevmode
+ \begingroup
+ \begin@psclip
+ {\@startrue\pscharpath@ii}%
+ \pstVerb{clip \if@star\else currentpoint newpath moveto\fi}%
+ \def\endpscharclip{\end@psclip\endgroup}%
+ \ignorespaces}
+\def\endpscharclip{\pst@misplaced\endpscharclip}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-char.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-coil.tex b/Master/texmf-dist/tex/generic/pstricks/pst-coil.tex
new file mode 100644
index 00000000000..aeac0179afd
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-coil.tex
@@ -0,0 +1,136 @@
+%% BEGIN pst-coil.tex
+%%
+%% Coils and zigzags with PSTricks 97.
+%% See the PSTricks User's Guide for documentation.
+%% For use with the PostScript header file `pst-coil.pro'.
+%%
+\def\fileversion{97 patch 2}
+\def\filedate{1998/03/19}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+\csname PSTcoilsLoaded\endcsname
+\let\PSTcoilsLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else
+\def\next{\input pstricks.tex}\expandafter\next
+\fi
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pstheader{pst-coil.pro}
+\edef\pst@theheaders{\pst@theheaders,pst-coil.pro}
+\def\pst@coildict{tx@CoilDict begin }
+\def\psset@coilwidth#1{\pst@getlength{#1}\psk@coilwidth}
+\psset@coilwidth{1cm}
+\def\psset@coilheight#1{\pst@checknum{#1}\pscoilheight}
+\psset@coilheight{1}
+\def\psset@coilarmA#1{\pst@getlength{#1}\psk@coilarmA}
+\def\psset@coilarmB#1{\pst@getlength{#1}\psk@coilarmB}
+\def\psset@coilarm#1{%
+\pst@getlength{#1}\psk@coilarmA
+\let\psk@coilarmB\psk@coilarmA}
+\psset@coilarm{.5cm}
+\def\psset@coilaspect#1{\pst@getangle{#1}\psk@coilaspect}
+\psset@coilaspect{45}
+\def\psset@coilinc#1{\pst@getangle{#1}\psk@coilinc}
+\psset@coilinc{10}
+\def\pscoil{\def\pst@par{}\pst@object{pscoil}}
+\def\pscoil@i{\pst@getarrows\pscoil@ii}
+\def\pscoil@ii(#1){%
+\@ifnextchar(%
+{\pscoil@iii{1}(#1)}%
+{\pscoil@iii{\z@}(0,0)(#1)}}
+\def\pscoil@iii#1(#2)(#3){%
+\begin@OpenObj
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#3}\pst@tempb
+\pst@optcp{#1}\pst@tempa
+\addto@pscode{%
+\pst@tempa \pst@tempb
+\psk@coilwidth \pscoilheight
+\psk@coilarmA \psk@coilarmB
+\psk@coilaspect \psk@coilinc
+\pst@coildict \tx@Coil end}%
+\showpointsfalse
+\end@OpenObj}
+\def\tx@CoilLoop{CoilLoop }
+\def\tx@Coil{Coil }
+\def\psCoil{\def\pst@par{}\pst@object{psCoil}}
+\def\psCoil@i#1#2{%
+\begin@AltOpenObj
+\showpointsfalse
+\pst@getangle{#1}\pst@tempa
+\pst@getangle{#2}\pst@tempb
+\addto@pscode{%
+\pst@tempa
+\pst@tempb
+\psk@coilwidth
+\pscoilheight
+\psk@coilaspect
+\psk@coilinc
+\pst@coildict \tx@AltCoil end
+\@nameuse{psls@\pslinestyle}}%
+\end@OpenObj}
+\def\tx@AltCoil{AltCoil }
+\def\pszigzag{\def\pst@par{}\pst@object{pszigzag}}
+\def\pszigzag@i{\pst@getarrows\pszigzag@ii}
+\def\pszigzag@ii(#1){%
+\@ifnextchar({\pszigzag@iii{1}(#1)}{\pszigzag@iii{\z@}(0,0)(#1)}}
+\def\pszigzag@iii#1(#2)(#3){%
+\begin@OpenObj
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#3}\pst@tempb
+\pst@optcp{#1}\pst@tempa
+\addto@pscode{%
+\pst@tempa
+\pst@tempb
+\pscoilheight
+\psk@coilwidth
+\psk@coilarmA
+\psk@coilarmB
+\pst@coildict \tx@ZigZag end
+\psline@iii
+\tx@Line}%
+\end@OpenObj}
+\def\tx@ZigZag{ZigZag }
+\def\nccoil{\pst@object{nccoil}}
+\def\nccoil@i{\check@arrow{\nccoil@ii}}
+\def\nccoil@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+\tx@NCCoor
+tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 2
+4 2 roll
+% DG/SR modification end
+\psk@coilwidth \pscoilheight
+\psk@coilarmA \psk@coilarmB
+\psk@coilaspect \psk@coilinc
+\pst@coildict \tx@Coil end
+end}}
+\def\pccoil{\def\pst@par{}\pst@object{pccoil}}
+\def\pccoil@i{\pc@object\nccoil@ii}
+\def\nczigzag{\pst@object{nczigzag}}
+\def\nczigzag@i{\check@arrow{\nczigzag@ii}}
+\def\nczigzag@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+\tx@NCCoor
+tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 2
+4 2 roll
+% DG/SR modification end
+\pscoilheight
+\psk@coilwidth
+\psk@coilarmA
+\psk@coilarmB
+\pst@coildict \tx@ZigZag end
+\psline@iii
+\tx@Line
+end}}
+\def\pczigzag{\def\pst@par{}\pst@object{pczigzag}}
+\def\pczigzag@i{\pc@object\nczigzag@ii}
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-coil.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-eps.tex b/Master/texmf-dist/tex/generic/pstricks/pst-eps.tex
new file mode 100644
index 00000000000..b38ec5973dd
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-eps.tex
@@ -0,0 +1,251 @@
+%% BEGIN pst-eps.tex
+%%
+%% Writing EPS files with PSTricks 97.
+%% See the PSTricks User's Guide for description.
+%%
+\def\fileversion{97 patch 1}
+\def\filedate{1997/05/05}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+
+\csname PSTfilesLoaded\endcsname
+\let\PSTfilesLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex}
+ \expandafter\next
+\fi
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% Exporting PostScript files
+
+% DG/SR modification begin - May 5, 1997 - Patch 1
+% With LaTeX 2e, we must force now inclusion of header files
+%\def\TeXtoEPS{\begingroup\pst@makebox{}\bgroup\ignorespaces}
+\def\TeXtoEPS{%
+\ifx\documentclass\@undefined\else\@begindvi\fi
+\begingroup\pst@makebox{}\bgroup\ignorespaces}
+% DG/SR modification end
+\def\endTeXtoEPS{%
+ \egroup
+% Get contents of page, in case it contains special's:
+ \begingroup
+ \global\setbox\pst@boxg\box\voidb@x
+ \output{\global\setbox\pst@boxg\box\@cclv}%
+ \par\hbox{}\penalty-10000
+ \endgroup
+ \dp\pst@boxg\z@
+ \ht\pst@boxg\z@
+ \wd\pst@boxg\z@
+ \pst@dimg=3pt
+ \shipout\hbox{%
+ \box\pst@boxg
+ \pst@Verb{gsave CM \tx@STV CP newpath moveto
+ \pst@number\pst@dimg neg 0 rmoveto clip setmatrix}%
+ \vrule width \wd\pst@hbox height \ht\pst@hbox depth \dp\pst@hbox
+ \pstVerb{currentpoint grestore moveto}%
+ \kern -\wd\pst@hbox
+ \unhbox\pst@hbox}%
+ \endgroup
+ \typeout{PSTricks: Converting TeX box to EPS.}%
+ \typeout{\@spaces\@spaces\space\space With dvips, use -E option.}}
+
+
+% Writing PSTricks graphics to EPS files
+
+\newwrite\pst@epsout
+\newwrite\pst@tempout
+
+\def\pst@getbp#1#2#3{%
+ \csname psset#1length\endcsname\pst@dimg{#2}%
+ \advance\pst@dimg .49bp
+ \pst@cntg=\pst@dimg
+ \multiply\pst@cntg 5
+ \divide\pst@cntg 328909
+ \edef#3{\the\pst@cntg}}
+
+\def\psset@bbllx#1{\pst@getbp{x}{#1}\psk@bbllx}
+\psset@bbllx{-1pt}
+
+\def\psset@bblly#1{\pst@getbp{y}{#1}\psk@bblly}
+\psset@bblly{-1pt}
+
+\def\psset@bburx#1{\pst@getbp{x}{#1}\psk@bburx}
+\psset@bburx{1pt}
+
+\def\psset@bbury#1{\pst@getbp{y}{#1}\psk@bbury}
+\psset@bbury{1pt}
+
+\def\pst@getboolean#1#2{%
+ \def\pst@tempg##1##2\@nil{%
+ \ifx t##1\relax\def#2{1\relax}\else\def#2{\z@}\fi}
+ \pst@expandafter\pst@tempg{#1}\relax\@nil}
+
+\def\psset@headers#1{%
+ \def\pst@tempg##1##2\@nil{%
+ \ifx u##1\relax
+ \def\psk@headers{1\relax}%
+ \else
+ \ifx a#1\relax
+ \def\psk@headers{2\relax}%
+ \else
+ \def\psk@headers{\z@}%
+ \fi
+ \fi}%
+ \pst@expandafter\pst@tempg{#1}\relax\@nil}
+\psset@headers{none}
+
+\def\psset@checkfile#1{\pst@getboolean{#1}\psk@checkfile}
+\psset@checkfile{true}
+
+\def\psset@makeeps#1{%
+ \def\pst@tempg{#1}%
+ \ifx\pst@tempg\@none
+ \def\psk@makeeps{\z@}%
+ \else
+ \def\pst@temph{all}%
+ \ifx\pst@tempg\pst@temph
+ \def\psk@makeeps{3\relax}%
+ \else
+ \def\pst@temph{all*}%
+ \ifx\pst@tempg\pst@temph
+ \def\psk@makeeps{2\relax}%
+ \else
+ \def\psk@makeeps{1\relax}%
+ \fi
+ \fi
+ \fi}
+\psset@makeeps{new}
+
+\def\psset@headerfile#1{\def\psk@headerfile{#1}}
+\psset@headerfile{}
+
+\def\pst@checkfile#1{%
+ \ifcase\psk@makeeps
+ \@pstfalse
+ \or
+ \immediate\openin1=#1
+ \ifeof1\relax\@psttrue\else\@pstfalse\fi
+ \immediate\closein1
+ \or
+ \immediate\openin1=#1
+ \ifeof1
+ \@psttrue
+ \else
+ \typeout{^^J%
+ PSTricks warning:^^J%
+ !! File `#1' exists and will be erased if in current directory!^^J%
+ !! Make `#1'? (y=yes; n=no)}
+ \read16 to \pst@tempg
+ \if y\pst@tempg\relax\@psttrue\else\@pstfalse\fi
+ \fi
+ \immediate\closein1=#1
+ \or
+ \@psttrue
+ \fi}
+
+\def\PSTtoEPS{\def\pst@par{}\pst@object{PSTtoEPS}}
+\begingroup
+\catcode`\%=12
+\catcode`\"=14
+\long\gdef\PSTtoEPS@i#1#2{"
+ \begingroup
+ \use@par
+ \newlinechar`\^^J"
+ \pst@checkfile{#1}"
+ \if@pst
+ \immediate\openout\pst@epsout=#1
+ \def\write@eps##1{\immediate\write\pst@epsout{##1}}"
+ \def\addto@pscode##1{"
+ \begingroup
+ \newlinechar`\ "
+ \write@eps{##1}"
+ \endgroup}
+ \write@eps{"
+ %!PS-Adobe-3.0 EPSF-3.0^^J"
+ %%Creator: PSTricks^^J"
+ %%Title: #1^^J"
+ %%CreationDate: \the\year/\the\month/\the\day^^J"
+ %%BoundingBox:
+ \psk@bbllx\space\psk@bblly\space\psk@bburx\space\psk@bbury^^J"
+ %%EndComments}"
+ \ifcase\psk@headers
+ \def\pst@tempg{}"
+ \or
+ \let\pst@tempg\psk@headerfile
+ \or
+ \edef\pst@tempg{\pst@theheaders,\psk@headerfile}"
+ \fi
+ \ifx\pst@tempg\@empty\else
+ \expandafter\pst@writeheaders\pst@tempg,\@nil
+ \fi
+ \write@eps{%%BeginSetup}"
+ \addto@pscode\pst@dict
+ \write@eps{%%EndSetup}"
+ \ifdim\pstunit=1bp\else
+ \pst@dimg=\pstunit\relax
+ \write@eps{\number\pst@dimg\space 65781.8 div dup scale}"
+ \fi
+ \addto@pscode{"
+ \tx@STP
+ 0 setlinecap
+ 0 setlinejoin
+ 10 setmiterlimit
+ [] 0 setdash
+ newpath}"
+ \setbox\pst@hbox=\hbox{"
+ \def\init@pscode{"
+ \write@eps{"
+ gsave
+ \psk@origin
+ \psk@swapaxes
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor}}"
+ \def\use@pscode{\write@eps{grestore}}"
+ \let\pst@rawfile\pst@filetoeps
+ \def\psclip#1{\pst@misplaced\psclip}"
+ \let\endpsclip\relax
+ \def\pstextpath@@@[##1](##2,##3)##4{\pst@misplaced\pstextpath}"
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}"
+ \def\PSTtoEPS@i##1##2{\pst@misplaced\PSTtoEPS}"
+ #2}"
+ \write@eps{"
+ %%Trailer^^J"
+ end^^J"
+ %%EOF}"
+ \immediate\closeout\pst@epsout
+ \fi
+ \endgroup
+ \ignorespaces}
+
+\gdef\pst@writeheaders#1,{"
+ \def\pst@tempg{#1}"
+ \ifx\pst@tempg\@empty\else
+ \write@eps{%%BeginProcSet: #1}"
+ \pst@filetoeps{#1}"
+ \write@eps{%%EndProcSet}"
+ \fi
+ \@ifnextchar\@nil{\let\pst@tempg}{\pst@writeheaders}}
+\endgroup
+
+\def\pst@filetoeps#1{%
+ \begingroup
+ \def\do##1{\catcode`##1=12\relax}%
+ \dospecials
+ \def\addto@pscode##1{\write@eps{##1}}%
+ \pst@@rawfile{#1}%
+ \endgroup}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-eps.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-fill.tex b/Master/texmf-dist/tex/generic/pstricks/pst-fill.tex
new file mode 100644
index 00000000000..bf980598931
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-fill.tex
@@ -0,0 +1,471 @@
+%% BEGIN pst-fill.tex
+%%
+%% Filling and tiling with PSTricks 97.
+%%
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%%
+%% Note (hv - August 17, 04 ):
+%% merge the VTeX and TeX versions (patch 4)
+%% Note (hv - June 22, 04 ):
+%% * delete the Pst@Debug option and use the
+%% the one from pstricks to prevent a clash with pst-gr3d
+%% * Patched by MV 09-10-2001 to make it work with VTeX.
+%% Note (D.G. - April 8, 97 and November / December 97):
+%% * With a \PstTiling macro defined (or "tiling" optional parameter
+%% on \usepackage[tiling]{pst-fill}), this file run exactly as
+%% the original boxfill.tex file from Timothy, version 0.94,
+%% except a correction in \pst@ManualFillCycle to avoid a division by 0.
+%% It's the default.
+%% * With a \PstTiling macro defined (or "tiling" optional parameter
+%% on \usepackage[tiling]{pst-fill}) there are several add-ons
+%% and changes to do `tiling' rather than `filling' in "automatic" mode :
+%% - we fix the position of the beginning of tiling,
+%% - we allow normally the framing of the area as expected, using
+%% the line.... parameters
+%% - we define move parameters fillmovex, fillmovey and fillmove,
+%% - we define fillcyclex as previous fillcycle parameter, and add the
+%% fillcycley and fillcycle (both fillcyclex and fillcycley) ones
+%% - we can extend the tiling area using fillloopaddx, fillloopaddy and
+%% fillloopadd parameters,
+%% - we can debug and see the whole tiling area without clipping using
+%% PstDebug parameter,
+%% - for names consistancy, we can use fillangle in place of boxfillangle
+%% and fillsize in place of boxfillsize,
+%% - default value for fillsep is 0 and for fillsize is auto.
+
+% Preliminaries:
+
+\csname PSTboxfillLoaded\endcsname
+\let\PSTboxfillLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex}
+ \expandafter\next
+\fi
+
+\def\fileversion{97 patch 4}
+\def\filedate{2004/08/18}
+\message{ v\fileversion, \filedate}
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% The box:
+
+\newbox\pst@fillbox
+\def\psboxfill{\pst@killglue\pst@makebox\psboxfill@i}
+\def\psboxfill@i{\setbox\pst@fillbox\box\pst@hbox\ignorespaces}
+
+% Parameters:
+
+\def\psset@boxfillsize#1{%
+ \def\pst@tempg{#1}\def\pst@temph{auto}%
+ \ifx\pst@tempg\pst@temph
+ \let\psk@boxfillsize\relax
+ \else
+ \psset@@boxfillsize#1(\z@,\z@)\@empty(\z@,\z@)(\@nil
+ \fi}
+\def\psset@@boxfillsize#1(#2,#3)#4(#5,#6)#7(#8\@nil{%
+ \begingroup
+ \ifx\@empty#7\relax
+ \pst@dima\z@
+ \pst@dimb\z@
+ \pssetxlength\pst@dimc{#2}%
+ \pssetylength\pst@dimd{#3}%
+ \else
+ \pssetxlength\pst@dima{#2}%
+ \pssetylength\pst@dimb{#3}%
+ \pssetxlength\pst@dimc{#5}%
+ \pssetylength\pst@dimd{#6}%
+ \fi
+ \xdef\pst@tempg{%
+ \pst@dima=\number\pst@dima sp
+ \pst@dimb=\number\pst@dimb sp
+ \pst@dimc=\number\pst@dimc sp
+ \pst@dimd=\number\pst@dimd sp }%
+ \endgroup
+ \let\psk@boxfillsize\pst@tempg}
+
+\psset{boxfillsize={(-15cm,-15cm)(15cm,15cm)}}
+
+\def\psset@boxfillcolor#1{\pst@getcolor{#1}\psboxfillcolor}
+%\def\psboxfillcolor{\black}
+\psset@boxfillcolor{black}% hv
+
+\def\psset@boxfillangle#1{\pst@getangle{#1}\psk@boxfillangle}
+\psset@boxfillangle{0}
+
+\def\psset@fillsepx#1{\pst@getlength{#1}\psk@fillsepx}
+\def\psset@fillsepy#1{\pst@getlength{#1}\psk@fillsepy}
+\def\psset@fillsep#1{\psset@fillsepx{#1}\let\psk@fillsepy\psk@fillsepx}
+\psset@fillsep{2pt}
+
+% DG addition begin - Apr. 8, 1997 and Nov. 1997 - Patch 2
+\ifx\PstTiling\@undefined
+ \def\psset@fillcycle#1{\pst@getint{#1}\psk@fillcycle}
+ \psset@fillcycle{0}
+\else
+% For consistancy, use "fill" as prefix for angle and size
+ \def\psset@fillangle#1{\psset@boxfillangle{#1}}
+ \def\psset@fillsize#1{\psset{boxfillsize={#1}}}
+% Change some default values with better ones for tilings
+ \psset@fillsep{0}
+ \psset{fillsize=auto}
+% Define fillcyclex (previously fillcycle), fillcycley and fillcycle for both
+ \def\psset@fillcyclex#1{\pst@getint{#1}\psk@fillcyclex}
+ \def\psset@fillcycley#1{\pst@getint{#1}\psk@fillcycley}
+ \def\psset@fillcycle#1{%
+ \psset@fillcyclex{#1}\let\psk@fillcycley\psk@fillcyclex}
+ \psset@fillcycle{0}
+% Define fillmove, fillmovex and fillmovey parameters
+ \def\psset@fillmovex#1{\pst@getlength{#1}\psk@fillmovex}
+ \def\psset@fillmovey#1{\pst@getlength{#1}\psk@fillmovey}
+ \def\psset@fillmove#1{\psset@fillmovex{#1}\psset@fillmovey{#1}}
+ \psset@fillmove{0pt}
+% Define fillloopaddx, fillloopaddy and fillloopadd parameters
+% if tiling is not complete
+ \def\psset@fillloopaddx#1{\pst@getint{#1}\psk@fillloopaddx}
+ \def\psset@fillloopaddy#1{\pst@getint{#1}\psk@fillloopaddy}
+ \def\psset@fillloopadd#1{%
+ \psset@fillloopaddx{#1}\let\psk@fillloopaddy\psk@fillloopaddx}
+ \psset@fillloopadd{0}
+% For debugging (to debug, set PstDebug=1)
+% we now use the one from pstricks to prevent a clash with package
+% pst-gr3d 2004-06-22
+% \def\psset@PstDebug#1{\pst@getint{#1}\psk@PstDebug}
+ \psset@PstDebug{0}
+\fi
+% DG addition end
+
+% Main macro:
+
+\def\psfs@boxfill{%
+ \ifvoid\pst@fillbox
+ \@pstrickserr{Fill box is empty. Use \string\psboxfill\space first.}\@ehpa
+ \else
+ \ifx\psk@boxfillsize\relax
+ \pst@AutoBoxFill
+ \else
+ \pst@ManualBoxFill
+ \fi
+ \fi}
+
+% Manual box fill:
+
+\def\pst@ManualBoxFill{%
+ \leavevmode
+ \begingroup
+ \pst@FlushCode
+ \begin@psclip
+ \pstVerb{clip}%
+ \expandafter\pst@AddFillBox\psk@boxfillsize
+ \end@psclip
+ \endgroup}
+
+\def\pst@FlushCode{%
+ \pst@Verb{%
+ /mtrxc CM def
+ CP CP T
+ \tx@STV
+ \psk@origin
+ \psk@swapaxes
+ \pst@newpath
+ \pst@code
+ mtrxc setmatrix
+ moveto
+ 0 setgray}%
+ \gdef\pst@code{}}
+
+\def\pst@AddFillBox#1 #2 #3 #4 {%
+ \begingroup
+ \setbox\pst@fillbox=\vbox{%
+ \hbox{\unhcopy\pst@fillbox\kern\psk@fillsepx\p@}%
+ \vskip\psk@fillsepy\p@}%
+ \psk@boxfillsize
+ \pst@cnta=\pst@dimc
+ \advance\pst@cnta-\pst@dima
+ \divide\pst@cnta\wd\pst@fillbox
+ \pst@cntb=\pst@dimd
+ \advance\pst@cntb-\pst@dimb
+ \pst@dimd=\ht\pst@fillbox
+ \divide\pst@cntb\pst@dimd
+ \def\pst@tempa{%
+ \pst@tempg
+ \copy\pst@fillbox
+ \advance\pst@cntc\@ne
+ \ifnum\pst@cntc<\pst@cntd\expandafter\pst@tempa\fi}%
+ \let\pst@tempg\relax
+ \pst@cntc-\tw@
+ \pst@cntd\pst@cnta
+ \setbox\pst@fillbox=\hbox to \z@{%
+ \kern\pst@dima
+ \kern-\wd\pst@fillbox
+ \pst@tempa
+ \hss}%
+ \pst@cntd\pst@cntb
+% DG modification begin - Dec. 11, 1997 - Patch 2
+ \ifx\PstTiling\@undefined
+ \ifnum\psk@fillcycle=\z@\pst@ManualFillCycle\fi
+ \else
+ \ifnum\psk@fillcyclex=\z@\pst@ManualFillCycle\fi
+ \fi
+% DG modification end
+ \global\setbox\pst@boxg=\vbox to\z@{%
+ \offinterlineskip
+ \vss
+ \pst@tempa
+ \vskip\pst@dimb}%
+ \endgroup
+ \setbox\pst@fillbox\box\pst@boxg
+ \pst@rotate\psk@boxfillangle\pst@fillbox
+ \box\pst@fillbox}
+
+\def\pst@ManualFillCycle{%
+% DG modification begin - Dec. 11, 1997 - Patch 2
+ \ifx\PstTiling\@undefined
+ \pst@cntg=\psk@fillcycle
+ \else
+ \pst@cntg=\psk@fillcyclex
+ \fi
+% DG modification end
+ \pst@dimg=\wd\pst@fillbox
+% DG modification begin - Mar. 20, 1997 - Patch 1 (to avoid division by 0)
+% \divide\pst@dimg\pst@cntg
+ \ifnum\pst@cntg=\z@
+ \else
+ \divide\pst@dimg\pst@cntg
+ \fi
+% DG modification end
+ \ifnum\pst@cntg<\z@\pst@cntg=-\pst@cntg\fi
+ \advance\pst@cntg\m@ne
+ \pst@cnth=\pst@cntg
+ \def\pst@tempg{%
+ \ifnum\pst@cnth<\pst@cntg\advance\pst@cnth\@ne\else\pst@cnth\z@\fi
+ \moveright\pst@cnth\pst@dimg}}
+
+% Auto box fill: !! Fix dictionary
+
+% DG addition begin - Apr. 8, 1997 and Dec. 1997 - Patch 2
+\ifx\PstTiling\@undefined
+% DG addition end
+% Original version
+\pst@def{AutoFillCycle}<%
+ /c ED
+ /n 0 def
+ /s {
+ /x x w c div n mul add def
+ /n n c abs 1 sub lt { n 1 add } { 0 } ifelse def
+ } def>
+
+\pst@def{BoxFill}<%
+ gsave
+ gsave \tx@STV CM grestore dtransform CM idtransform
+ abs /h ED abs /w ED
+ pathbbox
+ h div round 2 add cvi /y2 ED
+ w div round 2 add cvi /x2 ED
+ h div round 2 sub cvi /y1 ED
+ w div round 2 sub cvi /x1 ED
+ /y2 y2 y1 sub def
+ /x2 x2 x1 sub def
+ CP
+ y1 h mul sub neg /y1 ED
+ x1 w mul sub neg /x1 ED
+ clip
+ y2 {
+ /x x1 def
+ s
+ x2 {
+ save CP x y1
+% patch 4 hv --------------
+ \ifx\VTeXversion\undefined
+ \else
+%============ mv: 09-10-01 ??? this is likely to be a right change
+ neg
+%============
+ \fi
+% end patch 4
+ T moveto Box restore
+ /x x w add def
+ } repeat
+ /y1 y1 h add def
+ } repeat
+ % Next line not useful... To see that, suppress clipping (DG)
+ CP x y1 T moveto Box
+ currentpoint currentfont grestore setfont moveto>
+\else
+% DG modification begin - Apr. 8, 1997 and Nov. / Dec. 1997 - Patch 2
+\pst@def{AutoFillCycleX}<%
+ /cX ED
+ /nX 0 def
+ /CycleX {
+ /x x w cX div nX mul add def
+ /nX nX cX abs 1 sub lt { nX 1 add } { 0 } ifelse def
+ } def>
+\pst@def{AutoFillCycleY}<%
+ /cY ED
+ /mY 0 def
+ /nY 0 def
+ /CycleY {
+ /y1 y1 h cY div mY mul sub def
+ nY cY abs 1 sub lt { /nY nY 1 add def /mY 1 def }
+ { /nY 0 def /mY cY abs 1 sub neg def } ifelse
+ } def>
+
+\pst@def{BoxFill}<%
+ gsave
+ gsave \tx@STV CM grestore dtransform CM idtransform
+ abs /h ED abs /w ED
+ pathbbox
+ h div round 2 add cvi /y2 ED
+ w div round 2 add cvi /x2 ED
+ h div round 2 sub cvi /y1 ED
+ w div round 2 sub cvi /x1 ED
+% We must enlarge the area if fillangle, fillcycle, fillmove or fillsep are used
+ /CoefLoopX 0 def
+ /CoefLoopY 0 def
+ /CoefMoveX 0 def
+ /CoefMoveY 0 def
+ \psk@boxfillangle 0 ne {/CoefLoopX 8 def /CoefLoopY 8 def} if
+ \psk@fillcyclex 0 ne {/CoefLoopX CoefLoopX 1 add def} if
+ \psk@fillcycley 0 ne {/CoefLoopY CoefLoopY 1 add def} if
+ \psk@fillmovex 0 ne
+ {/CoefLoopX CoefLoopX 2 add def
+ \psk@fillmovex 0 gt {/CoefMoveX CoefLoopX def}
+ {/CoefMoveX CoefLoopX neg def} ifelse} if
+ \psk@fillmovey 0 ne
+ {/CoefLoopY CoefLoopY 2 add def
+ \psk@fillmovey 0 gt {/CoefMoveY CoefLoopY def}
+ {/CoefMoveY CoefLoopY neg def} ifelse} if
+ \psk@fillsepx 0 ne {/CoefLoopX CoefLoopX 1 add def} if
+ \psk@fillsepy 0 ne {/CoefLoopY CoefLoopY 1 add def} if
+ /CoefLoopX CoefLoopX \psk@fillloopaddx add def
+ /CoefLoopY CoefLoopY \psk@fillloopaddy add def
+%
+ /x2 x2 x1 sub 4 sub CoefLoopX 2 mul add def
+ /y2 y2 y1 sub 4 sub CoefLoopY 2 mul add def
+% We must fix the origin of tiling, as it must not vary according other stuff
+% in the page!
+ w x1 CoefLoopX add CoefMoveX add mul
+ h y1 y2 add 1 sub CoefLoopY sub CoefMoveY sub mul moveto
+%
+ CP
+ y1 h mul sub neg /y1 ED
+ x1 w mul sub neg /x1 ED
+% hv 2004-06-22 to prevent clash with pst-gr3d
+% \psk@PstDebug 0 eq {clip} if
+ \Pst@Debug 0 eq {clip} if
+% end hv
+ \psk@fillmovex \psk@fillmovey
+ gsave \tx@STV CM grestore dtransform CM idtransform
+ /hmove ED /wmove ED
+%
+ /row 0 def
+ y2 {
+ /row row 1 add def
+ /column 0 def
+ /x x1 def
+ CycleX
+ save
+ x2 {
+ /column column 1 add def
+ CycleY
+ save CP x y1
+% patch 4 hv --------------
+ \ifx\VTeXversion\undefined
+ \else
+%============ mv: 09-10-01 ??? this is likely to be a right change
+ neg
+%============
+ \fi
+% end patch 4
+ T moveto Box restore
+ /x x w add def
+ 0 hmove translate
+ } repeat
+ restore
+ /y1 y1 h add def
+ wmove 0 translate
+ } repeat
+ currentpoint currentfont grestore setfont moveto>
+\fi
+% DG modification end
+
+\def\pst@AutoBoxFill{%
+ \leavevmode
+ \begingroup
+% DG addition begin - Dec. 2, 1997 - Patch 2
+ \pst@stroke
+% DG addition end
+ \pst@FlushCode
+ \pst@Verb{\psk@boxfillangle \tx@RotBegin}%
+ \pstVerb{\pst@dict /Box \pslbrace end}%
+% DG addition begin - Apr. 8, 1997 and Nov. 5, 1997 - Patch 2
+% Useful when the starting point is not (0,0)
+ \ifx\PstTiling\@undefined
+ \else
+ \ifx\pst@tempa\@undefined % Undefined for instance for \pscharpath
+ \else
+ \def\pst@temph{0}%
+ \ifx\pst@tempa\pst@temph
+ \else
+ \pstVerb{/TR {pop pop currentpoint translate \pst@tempa\space translate } def}%
+ \fi
+ \fi
+ \fi
+% DG addition end
+ \hbox to \z@{\vbox to\z@{\vss\copy\pst@fillbox\vskip-\dp\pst@fillbox}\hss}%
+% DG addition begin - Dec. 8, 1997 - Patch 2
+ \ifx\PstTiling\@undefined
+% DG addition end
+ \pstVerb{%
+ tx@Dict begin \psrbrace def
+ \ifnum\psk@fillcycle=\z@
+ /s {} def
+ \else
+ \psk@fillcycle \tx@AutoFillCycle
+ \fi
+ \pst@number{\wd\pst@fillbox}%
+ \psk@fillsepx add
+ \pst@number{\ht\pst@fillbox}%
+ \pst@number{\dp\pst@fillbox}%
+ \psk@fillsepy add add
+ \tx@BoxFill
+ end}%
+% DG modification begin - Dec. 8, 1997 - Patch 2
+ \else
+ \pstVerb{%
+ tx@Dict begin \psrbrace def
+ \ifnum\psk@fillcyclex=\z@
+ /CycleX {} def
+ \else
+ \psk@fillcyclex \tx@AutoFillCycleX
+ \fi
+ \ifnum\psk@fillcycley=\z@
+ /CycleY {} def
+ \else
+ \psk@fillcycley \tx@AutoFillCycleY
+ \fi
+ \pst@number{\wd\pst@fillbox}%
+ \psk@fillsepx add
+ \pst@number{\ht\pst@fillbox}%
+ \pst@number{\dp\pst@fillbox}%
+ \psk@fillsepy add add
+ \tx@BoxFill
+ end}%
+ \fi
+% DG modification end
+ \pst@Verb{\tx@RotEnd}%
+ \endgroup}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-fill.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-grad.tex b/Master/texmf-dist/tex/generic/pstricks/pst-grad.tex
new file mode 100644
index 00000000000..279b11c26ed
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-grad.tex
@@ -0,0 +1,112 @@
+%% BEGIN pst-grad.tex
+%%
+%% Gradient fillstyle with PSTricks.
+%% See the PSTricks User's Guide for description.
+%% This uses the header file `pst-grad.pro'.
+%%
+%% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).
+%%
+\def\fileversion{1.04}
+\def\filedate{2004/06/24}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% version 1.04 prepared by Herbert Voss <voss _at_ pstricks.de>
+%%
+%% This defines a new fill style, "gradient", for use with PSTricks,
+%% which has gradiated color. The following parameters are used:
+%%
+%% gradbegin=color : Beginning color.
+%% gradend=color : Final color.
+%% gradlines=int : Number of lines to use. The higher the number,
+%% the slower the rendering.
+%% gradmidpoint=num : Gradient color goes from gradbegin to gradend,
+%% and then back to beginning. Midpoint (point
+%% where "gradend" color appears, is gradmidpoint
+%% from the top. (0 <= Gmidpoint <= 1).
+%% gradangle=angle : Rotate image by angle.
+%% GradientCircle=true : Instead of a linear a circled gradient is build.
+%% (version 1.04)
+%% GradientPos=(x,y) : the center of the circled gradient
+%% (version 1.04)
+%% GradientScale=float : scaling factor of the circled gradient
+%% (version 1.04)
+%%
+\message{ v\fileversion, \filedate}
+
+\csname GradientLoaded\endcsname
+\let\GradientLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex }\expandafter\next
+\fi
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+\pstheader{pst-grad.pro}
+
+\newrgbcolor{gradbegin}{0 .1 .95}
+\def\psset@gradbegin#1{\pst@getcolor{#1}\psgradbegin}
+\psset@gradbegin{gradbegin}
+
+\newrgbcolor{gradend}{0 1 1}
+\def\psset@gradend#1{\pst@getcolor{#1}\psgradend}
+\psset@gradend{gradend}
+
+\def\psset@gradlines#1{%
+ \pst@getint{#1}\psgradlines
+ \ifnum\psgradlines<2
+ \@pstrickserr{gradlines must be at least 2}\@epha
+ \def\psgradlines{2 }%
+ \fi}
+\psset@gradlines{300}
+
+\def\psset@gradmidpoint#1{\pst@checknum{#1}\psgradmidpoint}
+\psset@gradmidpoint{.9}
+
+\def\psset@gradangle#1{\pst@getangle{#1}\psk@gradangle}
+\psset@gradangle{0}
+
+% Denis Girou - April 1998 ------- patch 2 (hv)
+% To define the gradient as linear or as circle
+\newif\ifGradientCircle
+\def\psset@GradientCircle#1{\@nameuse{GradientCircle#1}}
+\psset@GradientCircle{false}
+
+% Position of the center of the gradient
+\def\psset@GradientPos#1{\psset@@GradientPos#1}
+\def\psset@@GradientPos(#1){\edef\ps@GradientPos{#1}}
+\psset@GradientPos{(0,0)}
+
+% Scale factor
+\def\psset@GradientScale#1{\edef\ps@GradientScale{#1}}
+\psset@GradientScale{1}
+
+\def\psfs@gradient{%
+% D.G. modification begin - Apr. 9, 1998
+ %\addto@pscode{gsave
+ \pst@getcoor{\ps@GradientPos}{\pst@tempa}% <- "%" hv 2004-06-23
+ \addto@pscode{gsave
+ \ifGradientCircle true \else false \fi
+ \ps@GradientScale\space
+ \pst@tempa
+% D.G. modification end
+ gsave \pst@usecolor\psgradbegin currentrgbcolor grestore
+ gsave \pst@usecolor\psgradend currentrgbcolor grestore
+ \psgradlines
+ \psgradmidpoint
+ \psk@gradangle
+ tx@GradientDict begin GradientFill end grestore
+ }%
+}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-grad.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-key.tex b/Master/texmf-dist/tex/generic/pstricks/pst-key.tex
new file mode 100644
index 00000000000..06fa572ac8d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-key.tex
@@ -0,0 +1,100 @@
+%%
+%% This is file `pst-key.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% keyval.dtx (with options: `package,plain,pstricks')
+%%
+%% This file is based on keyval.dtx from the LaTeX tools distribution.
+%% It may be distributed and used with the conditions applying to the
+%% PSTricks distribution. See the comments in pstricks.tex for details.
+%%
+%% File: keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 David Carlisle
+\def\next[#1]{\catcode`\@=11
+ \expandafter\let\csname ver@keyval.sty\endcsname\empty
+ \wlog{keyval: #1}}\next
+ [1998/07/23 v1.11 key=value parser (DPC)]
+\def\setkeys{%
+ \@ifnextchar[%
+ \KV@list
+ {\let\KV@undefined\KV@error
+ \KV@setkeys}}
+\def\KV@psset{psset}
+\def\KV@setkeys#1#2{%
+ \def\@tempa{#1}%
+ \edef\KV@prefix{%
+ \ifx\@tempa\KV@psset\else
+ KV@%
+ \fi
+ #1@}%
+ \KV@do#2,\relax,}
+\def\psset#1{%
+ \def\KV@prefix{psset@}%
+ \KV@do#1,\relax,}
+\def\use@par{\expandafter\psset\expandafter{\pst@par}%
+ \let\pst@par\@empty}
+\def\KV@list[#1]{%
+ \def\KV@undefined{\KV@add#1}%
+ \ifx#1\@undefined
+ \let#1\@empty
+ \fi
+ \KV@setkeys}
+\def\KV@do#1,{%
+ \ifx\relax#1\empty\else
+ \KV@split#1==\relax
+ \expandafter\KV@do\fi}
+\def\KV@split#1=#2=#3\relax{%
+ \KV@@sp@def\@tempa{#1}%
+ \ifx\@tempa\@empty\else
+ \expandafter\let\expandafter\@tempc
+ \csname\KV@prefix\@tempa\endcsname
+ \ifx\@tempc\relax
+ \KV@undefined{#2}{#3}%
+ \else
+ \ifx\@empty#3\@empty
+ \KV@default
+ \else
+ \KV@@sp@def\@tempb{#2}%
+ \expandafter\@tempc\expandafter{\@tempb}\relax
+ \fi
+ \fi
+ \fi}
+\def\KV@default{%
+ \expandafter\let\expandafter\@tempb
+ \csname\KV@prefix\@tempa @default\endcsname
+ \ifx\@tempb\relax
+ \KV@err{No value specified for \@tempa}%
+ \else
+ \@tempb\relax
+ \fi}
+\def\KV@add#1#2#3{%
+ \toks2\expandafter{#1}%
+ \KV@@sp@def\@tempb{#2}%
+ \toks4\expandafter{\@tempb}%
+ \edef#1{\the\toks2
+ \ifx#1\@empty\else,\fi
+ \@tempa
+ \ifx\KV@add#3\KV@add\else={\the\toks4}\fi}}
+\def\KV@err#1{\errmessage{keyval: #1}}
+\def\KV@error#1#2{\KV@err{\@tempa\space undefined}}
+\def\@tempa#1{%
+\def\KV@@sp@def##1##2{\KV@@sp@b##2\@nil\@nil#1\@nil\relax##1}}
+\@tempa{ }
+\def\KV@@sp@b#1#2 \@nil{\KV@@sp@c#1#2}
+\def\KV@@sp@c#1\@nil#2\relax#3{\def#3{#1}}
+\def\define@key#1#2{%
+ \def\KV@prefix{#1}%
+ \edef\KV@prefix{%
+ \ifx\KV@prefix\KV@psset\else
+ KV@%
+ \fi
+ #1@#2}%
+ \@ifnextchar[\KV@def{\@namedef\KV@prefix####1}}
+\def\KV@def[#1]{%
+ \@namedef{\KV@prefix @default\expandafter}\expandafter
+ {\csname \KV@prefix\endcsname{#1}}%
+ \@namedef\KV@prefix##1}
+\endinput
+%%
+%% End of file `pst-key.tex'.
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex
new file mode 100644
index 00000000000..234e94e642e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex
@@ -0,0 +1,1133 @@
+%% BEGIN pst-node.tex
+%%
+%% Nodes with PSTricks 97.
+%% See the betadoc documentation for usage.
+%% This uses the header file `pst-node.pro'.
+%%
+\def\fileversion{97 patch 11}
+\def\filedate{2000/11/09}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+\csname PSTnodesLoaded\endcsname
+\let\PSTnodesLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi\relax
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pstheader{pst-node.pro}
+\def\pst@nodedict{tx@NodeDict begin }
+\def\pst@zapspace#1 #2{%
+#1%
+\ifx#2\@empty\else\expandafter\pst@zapspace\fi
+#2}
+\def\pst@getnode#1#2{%
+\pst@expandafter\pst@@getnode{#1},,\@nil#2}
+\def\pst@@getnode#1,#2,#3\@nil#4{%
+\ifx\@empty#3\@empty
+\edef#4{/N@\pst@zapspace#1 \@empty\space}%
+\else
+\pst@cntg=#1\relax
+\pst@cnth=#2\relax
+\edef#4{/N@M-\ifnum\psmatrixcnt=\z@ 1\else\the\psmatrixcnt\fi
+-\the\pst@cntg-\the\pst@cnth\space}%
+\fi}
+\def\tx@NewNode{NewNode }
+\def\pst@newnode#1#2#3#4{%
+% DG/SR modification begin - Nov. 9, 2000 - Patch 11
+\pst@killglue
+% DG/SR modification end
+\leavevmode
+\pst@getnode{#1}\pst@thenode
+\pst@Verb{%
+\pst@nodedict
+{#3}
+\ifx\psk@name\relax false \else \psk@name true \fi
+\pst@thenode
+#2
+{#4}
+\tx@NewNode
+end}%
+\global\let\psk@name\relax
+\pstree@nodehook
+\global\let\pstree@nodehook\relax}
+\let\pstree@nodehook\relax
+\newif\ifnodealign
+\def\psset@nodealign#1{\@nameuse{nodealign#1}}
+\psset@nodealign{false}
+\def\pst@nodealign{%
+\pst@dimg=\ht\pst@hbox
+\advance\pst@dimg-\dp\pst@hbox
+\divide\pst@dimg2
+\lower\pst@dimg}
+\def\tx@InitPnode{InitPnode }
+\def\pnode{\@ifnextchar({\pnode@}{\pnode@(0,0)}}
+\def\pnode@(#1)#2{%
+\pst@@getcoor{#1}%
+\pst@newnode{#2}{10}{\pst@coor}{\tx@InitPnode}%
+\ignorespaces}
+\def\tx@InitCnode{InitCnode }
+\def\cnode{\pst@object{cnode}}
+\def\cnode@i{\@ifnextchar({\cnode@ii}{\cnode@ii(0,0)}}
+\def\cnode@ii(#1)#2#3{%
+\leavevmode
+\hbox{%
+\use@par
+\pst@@getcoor{#1}%
+\pssetlength\pst@dimc{#2}%
+\pst@dimg=\psk@dimen\pslinewidth
+\advance\pst@dimc-\pst@dimg
+\advance\pst@dimc.5\pslinewidth
+\ifnodealign
+\kern\pst@dimc
+\vrule width\z@ height \pst@dimc depth \pst@dimc
+\fi
+\pscircle@do(#1){#2}%
+\pst@newnode{#3}{11}{\pst@coor \pst@number\pst@dimc}{\tx@InitCnode}%
+% DG/SR modification begin - Jul. 30, 1997 - Patch 2
+%\ifnodealign \kern\pst@dimc\egroup \fi}%
+\ifnodealign\kern\pst@dimc\fi}%
+% DG/SR modification end
+\ignorespaces}
+\def\Cnode{\pst@object{Cnode}}
+\def\Cnode@i{\@ifnextchar({\Cnode@ii}{\Cnode@ii(0,0)}}
+\def\Cnode@ii(#1)#2{\cnode@ii(#1){\psk@radius}{#2}}%
+\def\cnodeput{\pst@object{cnodeput}}
+\def\cnodeput@i{\@ifnextchar({\cnodeput@iii}{\cnodeput@ii}}
+\def\cnodeput@ii#1{%
+\addto@par{rot={#1}}%
+\@ifnextchar({\cnodeput@iii}{\cnodeput@iii(\z@,\z@)}}
+\def\cnodeput@iii(#1)#2{%
+\pst@killglue
+\@fixedradiusfalse
+\def\pst@nodehook{\cnodeput@iv{#2}}%
+\pst@makebox{\cput@v{#1}}}
+\def\cnodeput@iv#1{%
+\pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}%
+{\tx@InitCnode}%
+\global\let\pst@nodehook\relax}
+\def\Cnodeput{\pst@object{Cnodeput}}
+\def\Cnodeput@i{\@ifnextchar({\Cnodeput@iii}{\Cnodeput@ii}}
+\def\Cnodeput@ii#1{%
+\addto@par{rot={#1}}%
+\@ifnextchar({\Cnodeput@iii}{\Cnodeput@iii(\z@,\z@)}}
+\def\Cnodeput@iii(#1)#2{%
+\pst@killglue
+\@fixedradiustrue
+\def\pst@nodehook{\Cnodeput@iv{#2}}%
+\pst@makebox{\cput@iv{#1}}}
+\def\Cnodeput@iv#1{%
+\pst@newnode{#1}{11}{%
+\pst@number{\wd\pst@hbox} 2 div \pst@number\pst@dima % x y
+\pst@number\pst@dimb \pst@number\pslinewidth \psk@dimen .5 sub mul sub }% r
+{\tx@InitCnode}%
+\global\let\pst@nodehook\relax}
+\def\circlenode{\pst@object{circlenode}}
+\def\circlenode@i#1{\pst@makebox{\circlenode@ii{#1}}}
+\def\circlenode@ii#1{%
+\begingroup
+\pst@useboxpar
+\setbox\pst@hbox=\hbox{%
+\cnodeput@iv{#1}%
+\pscirclebox@iii
+\box\pst@hbox}%
+\ifnodealign \psboxseptrue \fi
+\ifpsboxsep \pscirclebox@sep \fi
+\leavevmode
+\ifnodealign\pst@nodealign\fi
+\box\pst@hbox
+\endgroup}
+\def\Circlenode{\pst@object{Circlenode}}
+\def\Circlenode@i#1{\pst@makebox{\Circlenode@ii{#1}}}
+\def\Circlenode@ii#1{%
+\begingroup
+\pst@useboxpar
+\pst@dima=\ht\pst@hbox
+\advance\pst@dima\dp\pst@hbox
+\divide\pst@dima\tw@
+\pssetlength\pst@dimb\psk@radius
+\setbox\pst@hbox=\hbox{%
+\Cnodeput@iv{#1}%
+\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}%
+\box\pst@hbox}%
+\ifnodealign \psboxseptrue \fi
+\ifpsboxsep \psCirclebox@sep \fi
+\leavevmode
+\ifnodealign\pst@nodealign\fi
+\box\pst@hbox
+\endgroup}
+\def\tx@GetRnodePos{GetRnodePos }
+\def\tx@InitRnode{InitRnode }
+\def\rnode{\@ifnextchar[{\rnode@i}{\def\pst@par{}\rnode@ii}}
+\def\rnode@i[#1]{\def\pst@par{ref=#1}\rnode@ii}
+\def\rnode@ii#1{\pst@makebox{\rnode@iii\rnode@iv{#1}}}
+\def\rnode@iii#1#2{%
+% DG modification begin - Jan. 1997
+\leavevmode
+% DG modification end
+\begingroup
+% DG/SR modification begin - Apr. 28, 1998 - Patch 6
+\pst@useboxpar
+% DG/SR modification end
+#1%
+\if@star\pst@starbox\fi
+\ifnodealign\lower\pst@dimb\fi
+\hbox{%
+\pst@newnode{#2}{16}{%
+\pst@number{\ht\pst@hbox}%
+\pst@number{\dp\pst@hbox}%
+\pst@number{\wd\pst@hbox}%
+\pst@number\pst@dima
+\pst@number\pst@dimb}%
+{\tx@InitRnode}%
+\box\pst@hbox}%
+\endgroup}
+\def\rnode@iv{%
+\pst@dima=\psk@xref\wd\pst@hbox
+\ifx\psk@yref\relax
+\pst@dimb=\z@
+\else
+\pst@dimb=\ht\pst@hbox
+\advance\pst@dimb\dp\pst@hbox
+\pst@dimb=\psk@yref\pst@dimb
+\advance\pst@dimb-\dp\pst@hbox
+\fi}
+\def\psset@href#1{\pst@checknum{#1}\psk@href}
+\psset@href{0}
+\def\psset@vref#1{\def\psk@vref{#1}}
+\psset@vref{.7ex}
+\def\Rnode{\pst@object{Rnode}}
+\def\Rnode@i#1{\pst@makebox{\rnode@iii\Rnode@ii{#1}}}
+\def\Rnode@ii{%
+% DG modification begin - Jan. 1997
+% - \begingroup removed as it seems to doesn't work any more
+% - \Rnode doesn't process the optional parameter changes
+%\begingroup
+\use@par
+% DG modification end
+\pst@dima=\psk@href\wd\pst@hbox
+\advance\pst@dima\wd\pst@hbox
+\divide\pst@dima 2
+\pssetlength\pst@dimb{\psk@vref}}
+\def\tx@DiaNodePos{DiaNodePos }
+\def\dianode{\pst@object{dianode}}
+\def\dianode@i#1{\pst@makebox{\dianode@ii{#1}}}
+\def\dianode@ii#1{%
+\begingroup
+\pst@useboxpar
+\psdiabox@iii
+\setbox\pst@hbox=\hbox{%
+\pst@newnode{#1}{14}{}{%
+/X \pst@number\pst@dima def
+/Y \pst@number\pst@dimb def
+/w \pst@number\pst@dimc 2 mul def
+/h \pst@number\pst@dimd 2 mul def
+/NodePos { \tx@DiaNodePos } def}%
+\box\pst@hbox}%
+\ifnodealign\psboxseptrue\fi
+\ifpsboxsep\psdiabox@sep\fi
+% DG/SR modification begin - Sep. 2, 1997 - Patch 3
+\leavevmode
+% DG/SR modification end
+\ifnodealign\lower\pst@dimb\fi
+\box\pst@hbox
+\endgroup}
+\def\tx@TriNodePos{TriNodePos }
+\def\tx@InitTriNode{InitTriNode }
+\def\trinode{\pst@object{trinode}}
+\def\trinode@i#1{\pst@makebox{\trinode@ii{#1}}}
+\def\trinode@ii#1{%
+\begingroup
+\pst@useboxpar
+\pstribox@iii
+\setbox\pst@hbox=\hbox{%
+\pst@newnode{#1}{14}{}{%
+\pst@number\pst@dimc
+\pst@number\pst@dimd
+\ifodd\psk@trimode
+exch
+\pst@number\pst@dima
+\else
+\pst@number\pst@dimb
+\fi
+\psk@trimode
+\pst@number{\wd\pst@hbox}%
+\pst@number{\ht\pst@hbox}%
+\pst@number{\dp\pst@hbox}%
+\tx@InitTriNode}%
+\box\pst@hbox}%
+\ifnodealign\psboxseptrue\fi
+\ifpsboxsep\pstribox@sep\fi
+% DG/SR modification begin - Sep. 2, 1997 - Patch 3
+\leavevmode
+% DG/SR modification end
+\ifnodealign\lower\pst@tempa\fi
+\box\pst@hbox
+\endgroup}
+\def\tx@OvalNodePos{OvalNodePos }
+\def\ovalnode{\pst@object{ovalnode}}
+\def\ovalnode@i#1{\pst@makebox{\ovalnode@ii{#1}}}
+\def\ovalnode@ii#1{%
+\begingroup
+\pst@useboxpar
+\psovalbox@iii
+\setbox\pst@hbox=\hbox{%
+\pst@newnode{#1}{14}{}{%
+/X \pst@number\pst@dima def
+/Y \pst@number\pst@dimb def
+/w \pst@number\pst@dimc def
+/h \pst@number\pst@dimd def
+/NodePos { \tx@OvalNodePos } def}%
+\unhbox\pst@hbox}%
+\ifnodealign\psboxseptrue\fi
+\ifpsboxsep\psovalbox@sep\fi
+% DG/SR modification begin - Sep. 2, 1997 - Patch 3
+\leavevmode
+% DG/SR modification end
+\ifnodealign\lower\pst@dimb\fi
+\box\pst@hbox
+\endgroup}
+\def\dotnode{\pst@object{dotnode}}
+\def\dotnode@i{\@ifnextchar({\dotnode@ii}{\dotnode@ii(\z@,\z@)}}
+\def\dotnode@ii(#1)#2{%
+\leavevmode
+\hbox{%
+\use@par
+\pst@@getcoor{#1}%
+\pst@getdotsize
+\pstree@nodehook
+\ifnodealign
+\pst@dima=\pst@dimg
+\kern\pst@dima
+\vrule width\z@ height \pst@dimh depth \pst@dimh
+\fi
+\pst@newnode{#2}{14}{}{%
+\pst@coor
+/Y ED /X ED
+/w \pst@number\pst@dimg def
+/h \pst@number\pst@dimh def
+/NodePos { \tx@OvalNodePos } def}%
+\psdot@ii(#1)%
+\ifnodealign\kern\pst@dima\fi}%
+\ignorespaces}
+\def\psset@framesize#1{\pst@expandafter\psset@@framesize{#1} \@nil}
+\def\psset@@framesize#1 #2\@nil{%
+\pssetlength\pst@dimg{#1}%
+\divide\pst@dimg2
+\edef\psk@framewidth{\pst@number\pst@dimg}%
+\ifx\@empty#2\@empty
+\let\psk@frameheight\psk@framewidth
+\else
+\pssetlength\pst@dimg{#2}%
+\divide\pst@dimg2
+\edef\psk@frameheight{\pst@number\pst@dimg}%
+\fi}
+\psset@framesize{10pt}
+\def\fnode{\pst@object{fnode}}
+\def\fnode@i{\@ifnextchar({\fnode@ii}{\fnode@ii(\z@,\z@)}}
+\def\fnode@ii(#1)#2{%
+\leavevmode
+\pst@killglue
+\hbox{%
+\use@par
+\begin@ClosedObj
+\ifnodealign
+\kern\psk@framewidth\p@
+\vrule width\z@ height \psk@frameheight\p@ depth \psk@frameheight\p@
+\edef\pst@coor{0 0 }%
+\else
+\pst@@getcoor{#1}%
+\fi
+\pst@newnode{#2}{14}{}{%
+\pst@coor
+/Y ED /X ED
+/d \psk@dimen .5 sub CLW mul neg def
+/r \psk@framewidth d add def
+/l r neg def
+/u \psk@frameheight d add def
+/d u neg def
+/NodePos { \tx@GetRnodePos } def}%
+\addto@pscode{%
+/x2 \psk@framewidth CLW \psk@dimen mul sub def
+/y2 \psk@frameheight CLW \psk@dimen mul sub def
+\pst@coor 2 copy
+y2 sub /y1 ED
+x2 sub /x1 ED
+y2 add /y2 ED
+x2 add /x2 ED
+\psk@cornersize
+1 index 0 eq { pop pop \tx@Rect } { \tx@OvalFrame } ifelse}%
+\def\pst@linetype{2}%
+\showpointsfalse
+\end@ClosedObj
+\ifnodealign\kern\psk@framewidth\p@\fi}%
+\ignorespaces}
+\def\psset@nodesepA#1{%
+\pst@getlength{#1}\psk@nodesepA
+\def\psk@nodeseptypeA{0 }}
+\def\psset@nodesepB#1{%
+\pst@getlength{#1}\psk@nodesepB
+\def\psk@nodeseptypeB{0 }}
+\def\psset@nodesep#1{%
+\pst@getlength{#1}\psk@nodesepA
+\let\psk@nodesepB\psk@nodesepA
+\def\psk@nodeseptypeA{0 }%
+\def\psk@nodeseptypeB{0 }}
+\psset@nodesep{0pt}
+\def\psset@XnodesepA#1{%
+\pst@getlength{#1}\psk@nodesepA
+\def\psk@nodeseptypeA{1 }}
+\def\psset@XnodesepB#1{%
+\pst@getlength{#1}\psk@nodesepB
+\def\psk@nodeseptypeB{1 }}
+\def\psset@Xnodesep#1{%
+\pst@getlength{#1}\psk@nodesepA
+\let\psk@nodesepB\psk@nodesepA
+\def\psk@nodeseptypeA{1 }%
+\def\psk@nodeseptypeB{1 }}
+\def\psset@YnodesepA#1{%
+\pst@getlength{#1}\psk@nodesepA
+\def\psk@nodeseptypeA{2 }}
+\def\psset@YnodesepB#1{%
+\pst@getlength{#1}\psk@nodesepB
+\def\psk@nodeseptypeB{2 }}
+\def\psset@Ynodesep#1{%
+\pst@getlength{#1}\psk@nodesepA
+\let\psk@nodesepB\psk@nodesepA
+\def\psk@nodeseptypeA{2 }%
+\def\psk@nodeseptypeB{2 }}
+\def\psset@armA#1{%
+\pst@getlength{#1}\psk@armA
+\def\psk@armtypeA{0 }}
+\def\psset@armB#1{%
+\pst@getlength{#1}\psk@armB
+\def\psk@armtypeB{0 }}
+\def\psset@arm#1{%
+\pst@getlength{#1}\psk@armA
+\let\psk@armB\psk@armA
+\def\psk@armtypeA{0 }%
+\def\psk@armtypeB{0 }}
+\psset@arm{10pt}
+\def\psset@XarmA#1{%
+\pst@getlength{#1}\psk@armA
+\def\psk@armtypeA{1 }}
+\def\psset@XarmB#1{%
+\pst@getlength{#1}\psk@armB
+\def\psk@armtypeB{1 }}
+\def\psset@Xarm#1{%
+\pst@getlength{#1}\psk@armA
+\let\psk@armB\psk@armA
+\def\psk@armtypeA{1 }%
+\def\psk@armtypeB{1 }}
+\def\psset@YarmA#1{%
+\pst@getlength{#1}\psk@armA
+\def\psk@armtypeA{2 }}
+\def\psset@YarmB#1{%
+\pst@getlength{#1}\psk@armB
+\def\psk@armtypeB{2 }}
+\def\psset@Yarm#1{%
+\pst@getlength{#1}\psk@armA
+\let\psk@armB\psk@armA
+\def\psk@armtypeA{2 }%
+\def\psk@armtypeB{2 }}
+\def\psset@offsetA#1{\pst@getlength{#1}\psk@offsetA}
+\def\psset@offsetB#1{\pst@getlength{#1}\psk@offsetB}
+\def\psset@offset#1{\psset@offsetA{#1}\let\psk@offsetB\psk@offsetA}
+\psset@offset{0pt}
+\def\psset@angleA#1{\pst@getangle{#1}\psk@angleA}
+\def\psset@angleB#1{\pst@getangle{#1}\psk@angleB}%
+\def\psset@angle#1{%
+\pst@getangle{#1}\psk@angleA
+\let\psk@angleB\psk@angleA}
+\psset@angle{0}
+\def\psset@arcangleA#1{\pst@getangle{#1}\psk@arcangleA}
+\def\psset@arcangleB#1{\pst@getangle{#1}\psk@arcangleB}%
+\def\psset@arcangle#1{%
+\pst@getangle{#1}\psk@arcangleA
+\let\psk@arcangleB\psk@arcangleA}
+\psset@arcangle{8}
+\def\psset@ncurvA#1{\pst@checknum{#1}\psk@ncurvA}
+\def\psset@ncurvB#1{\pst@checknum{#1}\psk@ncurvB}%
+\def\psset@ncurv#1{\psset@ncurvA{#1}\let\psk@ncurvB\psk@ncurvA}
+\psset@ncurv{.67}
+\def\tx@GetCenter{GetCenter }
+\def\tx@XYPos{XYPos }
+\def\tx@GetEdge{GetEdge }
+\def\tx@AddOffset{AddOffset }
+\def\tx@GetEdgeA{GetEdgeA }
+\def\tx@GetEdgeB{GetEdgeB }
+\def\tx@GetArmA{GetArmA }
+\def\tx@GetArmB{GetArmB }
+\def\check@arrow#1#2{%
+\check@@arrow#2-\@nil
+\if@pst
+\addto@par{arrows=#2}%
+\def\next{#1}%
+\else
+\def\next{#1{#2}}%
+\fi
+\next}
+\def\check@@arrow#1-#2\@nil{%
+\ifx\@nil#2\@nil\@pstfalse\else\@psttrue\fi}
+\def\tx@InitNC{InitNC }
+\def\nc@object#1#2#3#4#5{%
+\csname begin@#1Obj\endcsname
+\showpointsfalse
+\pst@getnode{#2}\pst@tempa
+\pst@getnode{#3}\pst@tempb
+\gdef\npos@default{#4 }%
+\addto@pscode{%
+/NCLW CLW def
+\pst@nodedict
+\psk@offsetA
+\psk@offsetB neg
+\psk@nodesepA
+\psk@nodesepB
+\psk@nodeseptypeA
+\psk@nodeseptypeB
+\pst@tempa
+\pst@tempb
+\tx@InitNC { #5 } if
+end}%
+\def\use@pscode{%
+\pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}%
+\gdef\pst@code{}}%
+\csname end@#1Obj\endcsname
+\pst@shortput}
+\def\npos@default{.5 }
+\def\pc@object#1{%
+\@ifnextchar({\pc@@object#1}{\pst@getarrows{\pc@@object#1}}}
+\def\pc@@object#1(#2)(#3){%
+\pnode(#2){@@A}\pnode(#3){@@B}%
+#1{@@A}{@@B}}
+\def\tx@LPutLine{LPutLine }
+\def\tx@LPutLines{LPutLines }
+\def\tx@BezierMidpoint{BezierMidpoint }
+\def\tx@HPosBegin{HPosBegin }
+\def\tx@HPosEnd{HPosEnd }
+\def\tx@HPutLine{HPutLine }
+\def\tx@HPutLines{HPutLines }
+\def\tx@VPosBegin{VPosBegin }
+\def\tx@VPosEnd{VPosEnd }
+\def\tx@VPutLine{VPutLine }
+\def\tx@VPutLines{VPutLines }
+\def\tx@HPutCurve{HPutCurve }
+\def\tx@NCCoor{NCCoor }
+\def\tx@NCLine{NCLine }
+\def\ncline{\pst@object{ncline}}
+\def\ncline@i{\check@arrow{\ncline@ii}}
+\def\ncline@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{\tx@NCLine}}
+\def\pcline{\pst@object{pcline}}
+\def\pcline@i{\pc@object\ncline@ii}
+\def\ncLine{\pst@object{ncLine}}
+\def\ncLine@i{\check@arrow{\ncLine@ii}}
+\def\ncLine@ii#1#2{\nc@object{Open}{#1}{#2}{.5}%
+% DG/SR modification begin - Apr. 14, 1999 - Patch 9
+%{\tx@NCLine /LPutPos { xB xA yB yA \tx@LPutLine } def}}
+{\tx@NCLine /LPutPos { xB yB xA yA \tx@LPutLine } def}}
+% DG/SR modification end
+\def\tx@NCLines{NCLines }
+\def\nclines{\pst@object{nclines}}
+\def\nclines@i{\check@arrow\nclines@ii}
+\def\nclines@ii#1#2{%
+\begingroup
+\use@par
+\def\pst@aftercoors{\nclines@iii{#1}{#2}}%
+\def\pst@coors{}%
+\pst@@getcoors}
+\def\nclines@iii#1#2{%
+\nc@object{Open}{#1}{#2}{.5}{%
+tx@Dict begin \psline@iii pop end
+mark \pst@coors \tx@NCLines}%
+\endgroup
+\ignorespaces}
+\def\tx@NCCurve{NCCurve }
+\def\nccurve{\pst@object{nccurve}}
+\def\nccurve@i{\check@arrow{\nccurve@ii}}
+\def\nccurve@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def
+\psk@ncurvB\space \psk@ncurvA\space
+\tx@NCCurve}}
+\def\pccurve{\pst@object{pccurve}}
+\def\pccurve@i{\pc@object\nccurve@ii}
+\def\ncarc{\pst@object{ncarc}}
+\def\ncarc@i{\check@arrow{\ncarc@ii}}
+\def\ncarc@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+yB yA sub xB xA sub \tx@Atan dup
+\psk@arcangleA\space add /AngleA ED
+\psk@arcangleB\space sub 180 add /AngleB ED
+\psk@ncurvB\space \psk@ncurvA\space
+\tx@NCCurve}}
+\def\pcarc{\pst@object{pcarc}}
+\def\pcarc@i{\pc@object\ncarc@ii}
+\def\tx@NCAngles{NCAngles }
+\def\ncangles{\pst@object{ncangles}}
+\def\ncangles@i{\check@arrow{\ncangles@ii}}
+\def\ncangles@ii#1#2{%
+\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}}
+\def\ncangles@iii{%
+tx@Dict begin \psline@iii pop end
+/AngleA \psk@angleA def
+/AngleB \psk@angleB def
+/ArmA \psk@armA def
+/ArmB \psk@armB def
+/ArmTypeA \psk@armtypeA def
+/ArmTypeB \psk@armtypeB def }
+\def\pcangles{\pst@object{pcangles}}
+\def\pcangles@i{\pc@object\ncangles@ii}
+\def\tx@NCAngle{NCAngle }
+\def\ncangle{\pst@object{ncangle}}
+\def\ncangle@i{\check@arrow{\ncangle@ii}}
+\def\ncangle@ii#1#2{%
+\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngle}}
+\def\pcangle{\pst@object{pcangle}}
+\def\pcangle@i{\pc@object\ncangle@ii}
+\def\tx@NCBar{NCBar }
+\def\ncbar{\pst@object{ncbar}}
+\def\ncbar@i{\check@arrow{\ncbar@ii}}
+\def\ncbar@ii#1#2{\nc@object{Open}{#1}{#2}{1.5}{%
+\ncangles@iii /AngleB \psk@angleA def \tx@NCBar}}
+\def\pcbar{\pst@object{pcbar}}
+\def\pcbar@i{\pc@object\ncbar@ii}
+\def\tx@NCDiag{NCDiag }
+\def\ncdiag{\pst@object{ncdiag}}
+\def\ncdiag@i{\check@arrow{\ncdiag@ii}}
+\def\ncdiag@ii#1#2{%
+\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCDiag}}
+\def\pcdiag{\pst@object{pcdiag}}
+\def\pcdiag@i{\pc@object\ncdiag@ii}
+\def\tx@NCDiagg{NCDiagg }
+\def\ncdiagg{\pst@object{ncdiagg}}
+\def\ncdiagg@i{\check@arrow{\ncdiagg@ii}}
+\def\ncdiagg@ii#1#2{%
+\nc@object{Open}{#1}{#2}{.5}{\ncangles@iii \tx@NCDiagg}}
+\def\pcdiagg{\pst@object{pcdiagg}}
+\def\pcdiagg@i{\pc@object\ncdiagg@ii}
+\def\tx@NCLoop{NCLoop }
+\def\psset@loopsize#1{\pst@getlength{#1}\psk@loopsize}
+\psset@loopsize{1cm}
+\def\ncloop{\pst@object{ncloop}}
+\def\ncloop@i{\check@arrow{\ncloop@ii}}
+\def\ncloop@ii#1#2{%
+\nc@object{Open}{#1}{#2}{2.5}%
+{\ncangles@iii /loopsize \psk@loopsize def \tx@NCLoop}}
+\def\pcloop{\pst@object{pcloop}}
+\def\pcloop@i{\pc@object\ncloop@ii}
+\def\tx@NCCircle{NCCircle }
+\def\nccircle{\pst@object{nccircle}}
+\def\nccircle@i{\check@arrow{\nccircle@ii}}
+\def\nccircle@ii#1#2{%
+\pssetlength\pst@dima{#2}%
+\nc@object{Open}{#1}{#1}{.5}{%
+/AngleA \psk@angleA def
+/r \pst@number\pst@dima def
+\tx@NCCircle \psarc@v end}}
+\def\tx@NCBox{NCBox }
+\def\ncbox{\pst@object{ncbox}}
+\def\ncbox@i{\check@arrow{\ncbox@ii}}
+\def\ncbox@ii#1#2{%
+\def\pst@linetype{2}%
+\nc@object{Closed}{#1}{#2}{.5}{%
+tx@Dict begin \psline@iii pop end
+\psk@boxheight \psk@boxdepth
+\tx@NCBox}}
+\def\pcbox{\pst@object{pcbox}}
+\def\pcbox@i{\pc@object\ncbox@ii}
+\def\tx@NCArcBox{NCArcBox }
+\def\psset@boxheight#1{\pst@getlength{#1}\psk@boxheight}
+\def\psset@boxdepth#1{\pst@getlength{#1}\psk@boxdepth}
+\def\psset@boxsize#1{%
+\psset@boxheight{#1}%
+\let\psk@boxdepth\psk@boxheight}
+\psset@boxsize{.4cm}
+\def\ncarcbox{\pst@object{ncarcbox}}
+\def\ncarcbox@i{\check@arrow{\ncarcbox@ii}}
+\def\ncarcbox@ii#1#2{%
+\def\pst@linetype{1}%
+\nc@object{Closed}{#1}{#2}{.5}{%
+\psk@arcangleA \psk@boxheight \psk@boxdepth \pst@number\pslinearc
+\tx@NCArcBox}}
+\def\pcarcbox{\pst@object{pcarcbox}}
+\def\pcarcbox@i{\pc@object\ncarcbox@ii}
+\def\tx@Tfan{Tfan }
+% Changed according pst-beta.bug December 3, 1993
+% nrot=:<angle> does not work when : is active.
+\begingroup
+\catcode`\:=13
+\gdef\pst@activerot{\def:{\string:}}
+\endgroup
+\def\psset@nrot#1{%
+\begingroup
+\pst@activerot
+\pst@expandafter{\@ifnextchar:{\psset@@nrot}{\psset@@rot}}{#1}\@nil
+\global\let\pst@tempg\psk@rot
+\endgroup
+\let\psk@nrot\pst@tempg}
+\def\psset@@nrot:#1\@nil{%
+\psset@@rot#1\@nil
+\edef\psk@rot{NAngle \ifx\psk@rot\@empty\else\psk@rot add \fi}}
+\psset@nrot{0}
+\def\tx@LPutCoor{LPutCoor }
+\def\tx@LPut{LPut }
+\def\psset@npos#1{%
+\def\pst@tempa{#1}%
+\ifx\pst@tempa\@empty
+\def\psk@npos{\npos@default}%
+\else
+\pst@checknum{#1}\psk@npos
+\fi}
+\psset@npos{}
+\def\ncput{\pst@object{ncput}}
+\def\ncput@i{\pst@killglue\pst@makebox{\ncput@ii}}
+\def\ncput@ii{%
+\begingroup
+\use@par
+\if@star\pst@starbox\fi
+\pst@makesmall\pst@hbox
+\pst@rotate\psk@nrot\pst@hbox
+\ncput@iii
+\endgroup
+\pst@shortput}
+\def\ncput@iii{%
+\leavevmode
+\hbox{%
+\pst@Verb{%
+\pst@nodedict
+/t \psk@npos def
+\tx@LPut
+end
+\tx@PutBegin}%
+\box\pst@hbox
+\pst@Verb{\tx@PutEnd}}}
+\def\naput{\pst@object{naput}}
+\def\naput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 add}}}
+\def\naput@ii#1{%
+\begingroup
+\use@par
+\if@star\pst@starbox\fi
+\def\psk@refangle{#1 }%
+\let\psk@rot\psk@nrot
+\uput@vii
+{exch pop add a \tx@PtoC h1 add exch w1 add exch }%
+{tx@Dict /NCLW known { NCLW add } if }%
+\ncput@iii
+\endgroup
+\pst@shortput}
+\def\nbput{\pst@object{nbput}}
+\def\nbput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 sub}}}
+\def\psset@tpos#1{%
+\pst@checknum{#1}\psk@tpos
+\ifdim\psk@tpos \p@<\z@
+\def\psk@tpos{.5}%
+% DG/SR modification begin - Sep. 23, 1998 - Patch 7
+%\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha
+\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa
+% DG/SR modification end
+\else
+\ifdim\psk@tpos \p@>\p@
+\def\psk@tpos{.5}%
+% DG/SR modification begin - Sep. 23, 1998 - Patch 7
+%\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha
+\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa
+% DG/SR modification end
+\fi
+\fi}
+\psset@tpos{.5}
+\def\tvput{\pst@object{tvput}}
+\def\tvput@i{\pst@makebox{\psput@tput{H}{1}}}
+\def\tlput{\pst@object{tlput}}
+\def\tlput@i{\pst@makebox{\psput@tput{H}{true}}}
+\def\trput{\pst@object{trput}}
+\def\trput@i{\pst@makebox{\psput@tput{H}{false}}}
+\def\thput{\pst@object{thput}}
+\def\thput@i{\pst@makebox{\psput@tput{V}{1}}}
+\def\taput{\pst@object{taput}}
+\def\taput@i{\pst@makebox{\psput@tput{V}{true}}}
+\def\tbput{\pst@object{tbput}}
+\def\tbput@i{\pst@makebox{\psput@tput{V}{false}}}
+\def\tx@HPutAdjust{HPutAdjust }
+\def\tx@VPutAdjust{VPutAdjust }
+\def\psput@tput#1#2{%
+\begingroup
+\use@par
+\pst@tputmakesmall
+\leavevmode
+\hbox{%
+\pst@Verb{%
+\pst@nodedict
+/t \psk@tpos \pst@tposflip def
+tx@NodeDict /HPutPos known
+{ #1PutPos }
+{ CP /Y ED /X ED /NAngle 0 def /NCLW 0 def }
+ifelse
+/Sin NAngle sin def
+/Cos NAngle cos def
+/s \pst@number\pslabelsep NCLW add def
+/l \pst@number\pst@dima def
+/r \pst@number\pst@dimb def
+/h \pst@number\pst@dimc def
+/d \pst@number\pst@dimd def
+% DG/SR modification begin - Sep. 26, 1997 - Patch 4
+%\ifnum1=0#2\else
+\ifnum1=0#2 \else
+% DG/SR modification end
+/flag #2 def
+\csname tx@#1PutAdjust\endcsname
+\fi
+\tx@LPutCoor
+end
+\tx@PutBegin}%
+\box\pst@hbox
+\pst@Verb{\tx@PutEnd}}%
+\endgroup
+\pst@shortput}
+\def\pst@tposflip{}
+\def\pst@tputmakesmall{%
+\pst@dima=\wd\pst@hbox
+\divide\pst@dima 2
+\pst@dimg=\psk@href\pst@dimg
+\pst@dimb\pst@dima
+\advance\pst@dima\pst@dimg % leftsize
+\advance\pst@dimb-\pst@dimg % rightsize
+\pst@dimd=\psk@vref\relax
+\pst@dimc=\ht\pst@hbox
+\advance\pst@dimc-\pst@dimd % height
+\advance\pst@dimd\dp\pst@hbox % depth
+\setbox\pst@hbox=\hbox to\z@{%
+\kern-\pst@dima\vbox to\z@{\vss\box\pst@hbox\vskip-\pst@dimd}\hss}}
+\def\MakeShortNab#1#2{%
+ \def\pst@shortput@nab{%
+ \def\pst@tempg{\next}%
+ \ifx#1\next
+ \let\pst@tempg\naput
+ \else
+ \ifx#2\next
+ \let\pst@tempg\nbput
+ \else
+ \ifx\@sptoken\next
+ \let\pst@tempg\pst@shortput
+ \fi
+ \fi
+ \fi
+ \pst@tempg}}
+\MakeShortNab{^}{_}
+\def\MakeShortTablr#1#2#3#4{%
+ \def\pst@shortput@tablr{%
+ \def\pst@tempg{\next}%
+ \ifx#1\next
+ \let\pst@tempg\taput
+ \else
+ \ifx#2\next
+ \let\pst@tempg\tbput
+ \else
+ \ifx#3\next
+ \let\pst@tempg\tlput
+ \else
+ \ifx#4\next
+ \let\pst@tempg\trput
+ \else
+ \ifx\@sptoken\next
+ \let\pst@tempg\pst@shortput
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \pst@tempg}}
+\MakeShortTablr{^}{_}{<}{>}
+\def\MakeShortTab#1#2{%
+ \def\pst@shortput@tab{%
+ \def\pst@tempg{\next}%
+ \ifx#1\next
+ \def\pst@tempg{%
+ \@nameuse{%
+ t\ifodd\psk@treemode\ifpstreeflip b\else a\fi
+ \else\ifpstreeflip r\else l\fi\fi put}}%
+ \else
+ \ifx#2\next
+ \def\pst@tempg{%
+ \@nameuse{%
+ t\ifodd\psk@treemode\ifpstreeflip a\else b\fi
+ \else\ifpstreeflip l\else r\fi\fi put}}%
+ \else
+ \ifx\@sptoken\next
+ \let\pst@tempg\pst@shortput
+ \fi
+ \fi
+ \fi
+ \pst@tempg}}
+\MakeShortTab{^}{_}
+\def\psset@shortput#1{%
+\def\pst@tempg{#1}%
+\ifx\pst@tempg\@none
+\let\pst@shortput\ignorespaces
+\else
+\@ifundefined{pst@shortput@#1}%
+{\@pstrickserr{Bad short put: `#1'}\@ehpa}%
+{\edef\pst@shortput{\noexpand\afterassignment\expandafter\noexpand
+\csname pst@shortput@#1\endcsname\noexpand\let\noexpand\next}}%
+\fi}
+\psset@shortput{none}
+\def\lput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\lput@i}{\lput@ii}}}
+\def\lput@i[#1]{\addto@par{ref=#1}\lput@ii}
+\def\lput@ii{\@ifnextchar({\lput@iv}{\lput@iii}}
+\def\lput@iii#1{\addto@par{nrot=#1}\@ifnextchar({\lput@iv}{\ncput@i}}
+\def\lput@iv(#1){\addto@par{npos=#1}\ncput@i}
+\def\mput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\mput@i}{\ncput@i}}}
+\def\mput@i[#1]{\addto@par{ref=#1}\ncput@i}
+\def\Lput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Lput@ii}{\Lput@i}}}
+\def\Lput@i#1{\addto@par{labelsep=#1}\Lput@ii}
+\def\Lput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Lput@iv}{\Lput@iii}}
+\def\Lput@iii#1{\addto@par{nrot={#1}}\@ifnextchar({\Lput@iv}{\Lput@v}}
+\def\Lput@iv(#1){\addto@par{npos=#1}\Lput@v}
+\def\Lput@v{\pst@killglue\pst@makebox{\Lput@vi}}
+\def\Lput@vi{%
+\begingroup
+\use@par
+\if@star\pst@starbox\fi
+\Rput@vi
+\pst@makesmall\pst@hbox
+\pst@rotate\psk@nrot\pst@hbox
+\ncput@iii
+\endgroup
+\pst@shortput}
+\def\Mput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Mput@ii}{\Mput@i}}}
+\def\Mput@i#1{\addto@par{labelsep=#1}\Mput@ii}
+\def\Mput@ii[#1]{\addto@par{ref={#1}}\Lput@v}
+\def\aput@#1{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\aput@i#1}{\aput@ii#1}}}
+\def\aput@i#1[#2]{\addto@par{labelsep=#2}\aput@ii#1}
+\def\aput@ii#1{\@ifnextchar({\aput@iv#1}{\aput@iii#1}}
+\def\aput@iii#1#2{\addto@par{nrot=#2}\@ifnextchar({\aput@iv#1}{#1}}
+\def\aput@iv#1(#2){\addto@par{npos=#2}#1}
+\def\aput{\aput@\naput@i}
+\def\bput{\aput@\nbput@i}
+\def\Aput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Aput@i}{\naput@i}}}
+\def\Aput@i[#1]{\addto@par{labelsep=#1}\naput@i}
+\def\Bput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Bput@i}{\nbput@i}}}
+\def\Bput@i[#1]{\addto@par{labelsep=#1}\nbput@i}
+\def\node@coor#1;#2\@nil{%
+\pst@getnode{#1}\pst@tempg
+\edef\pst@coor{%
+\pst@nodedict
+tx@NodeDict \pst@tempg known
+{ \pst@tempg load \tx@GetCenter }
+{ 0 0 }
+ifelse
+end }}
+\def\Node@coor[#1]#2;#3\@nil{%
+\begingroup
+\psset{#1}%
+\@ifnextchar\bgroup{\Node@@@coor}{\Node@@coor}#2\@nil
+\endgroup
+\let\pst@coor\pst@tempg}
+\def\Node@@coor#1\@nil{%
+\pst@getnode{#1}\pst@tempg
+\xdef\pst@tempg{%
+\pst@nodedict
+tx@NodeDict \pst@tempg known
+{ \psk@nodesepA \psk@angleA
+\pst@tempg load \psk@nodeseptypeA \tx@GetEdge
+\psk@offsetA \psk@angleA \tx@AddOffset
+\pst@tempg load \tx@GetCenter
+3 -1 roll add 3 1 roll add exch }
+{ CP }
+ifelse
+end }}%
+\def\Node@@@coor#1{%
+\pst@@getcoor{#1}%
+\def\psk@angleA{%
+\pst@tempg load \tx@GetCenter \pst@coor
+3 -1 roll sub 3 1 roll sub neg \tx@Atan}%
+\Node@@coor}
+\def\nput{\pst@object{nput}}
+\def\nput@i#1#2{\pst@killglue\pst@makebox{\nput@ii{#1}{#2}}}
+\def\nput@ii#1#2{%
+\begingroup
+\use@par
+\psset@refangle{#1}%
+\let\psk@angleA\psk@refangle
+\edef\psk@nodesepA{\pst@number\pslabelsep}%
+\def\psk@nodeseptypeA{0 }%
+\pslabelsep\z@
+\uput@vi
+\Node@@coor#2\@nil
+\let\pst@coor\pst@tempg
+\leavevmode
+\psput@special\pst@hbox
+\endgroup
+\ignorespaces}
+\newcount\psrow
+\newcount\pscol
+\newcount\psmatrixcnt
+\newskip\psrowsep
+\newskip\pscolsep
+\def\psset@colsep#1{\pssetlength\pscolsep{#1}}
+\def\psset@rowsep#1{\pssetlength\psrowsep{#1}}
+\psset@colsep{1.5cm}
+\psset@rowsep{1.5cm}
+\newif\ifpsmatrix
+% DG/SR modification begin - Nov. 27, 1998 - Patch 8
+%\let\mscount\@multicnt
+\ifx\mscount\@undefined\let\mscount\@multicnt\fi
+% DG/SR modification end
+\def\psmatrix{%
+ \begingroup
+{\ifnum0=`}\fi % Don't want to expand any &.
+\@ifnextchar[{\psmatrix@i}{\ifnum0=`{\fi}{}\psmatrix@ii}}
+\def\psmatrix@i[#1]{%
+\ifnum0=`{\fi}{}%
+\psset{#1}%
+\psmatrix@ii}
+\def\psmatrix@ii{%
+\KillGlue
+\edef\psm@beginmath{%
+\ifmmode$\m@th\ifinner\textstyle\else\displaystyle\fi\fi}%
+\edef\psm@endmath{\ifmmode$\fi}%
+\let\\\psm@cr
+\advance\psmatrixcnt 1
+\def\psm@thenode{M-\the\psmatrixcnt-\the\psrow-\the\pscol}%
+\tabskip\z@
+\psrow1
+\pscol\z@
+\psset@shortput{tablr}%
+\leavevmode
+\vbox\bgroup\halign\bgroup&%
+\begingroup
+\global\advance\pscol 1
+\csname psrowhook\romannumeral\psrow\endcsname
+\csname pscolhook\romannumeral\pscol\endcsname
+\psm@beginnode##\psm@endnode\endgroup
+\cr}
+\def\endpsmatrix{%
+\crcr\egroup\unskip\egroup
+\endgroup}
+\def\psm@cr{{\ifnum0=`}\fi\@ifnextchar[{\psm@@cr}{\psm@@@cr{}}}
+\def\psm@@cr[#1]{\psm@@@cr{\vskip#1\relax}}
+\def\psm@@@cr#1{%
+\ifnum0=`{\fi}{}\cr
+\noalign{%
+\global\advance\psrow 1
+\global\pscol\z@
+\vskip\psrowsep
+#1}}
+\def\psm@beginnode{%
+\@ifnextchar\psm@endnode
+{\let\psm@endnode@i\relax\setbox\pst@hbox=\hbox{}}%
+{\pst@object{psm@beginnode}}}
+\def\psm@beginnode@i{%
+\setbox\pst@hbox=\hbox\bgroup
+\psm@beginmath
+\begingroup
+\ignorespaces}
+\def\psm@endnode@i{%
+\unskip
+\endgroup
+\psm@endmath
+\egroup
+\use@par
+\@psttrue}
+\def\psm@endnode{%
+\@pstfalse
+\psm@endnode@i
+\ifnum\pscol>1 \hskip\pscolsep \fi
+\psk@mnodesize
+\hfil
+\nodealigntrue
+\if@pst
+\csname mnode@\psk@mnode\endcsname
+\else
+\csname mnode@\psk@emnode\endcsname
+\fi
+\psk@mcol
+\psk@@mnodesize}
+% DG/SR modification begin - Sep. 3, 1999 - Patch 10 - From Michael Sharpe
+%\def\psspan#1{\mscount#1\relax\loop\ifnum\mscount>\@ne \sp@n\repeat}
+\def\psspan#1{\global\mscount#1\relax\pstloop\ifnum\mscount>\@ne\sp@n\repeat}
+\def\pstloop#1\repeat{\gdef\pstiterate{#1\relax\expandafter\pstiterate\fi}%
+\pstiterate
+\let\pstiterate\relax}
+% DG/SR modification end
+\def\psset@name#1{\pst@getnode{#1}\psk@name}
+\let\psk@name\relax
+\def\psset@mcol#1{%
+\ifx r#1\relax
+\let\psk@mcol\relax
+\else
+\ifx l#1\relax
+\let\psk@mcol\hfill
+\else
+\let\psk@mcol\hfil
+\fi
+\fi}
+\psset@mcol{c}
+\def\psset@mnodesize#1{%
+\pssetlength\pst@dimg{#1}%
+\ifdim\pst@dimg<\z@
+\let\psk@mnodesize\relax
+\let\psk@@mnodesize\relax
+\else
+\edef\psk@mnodesize{\noexpand\hbox to\number\pst@dimg sp\noexpand\bgroup}%
+\let\psk@@mnodesize\egroup
+\fi}
+\psset@mnodesize{-1pt}
+\def\mnode@R{\rnode@iii\Rnode@ii{\psm@thenode}}
+\def\mnode@r{\rnode@iii\rnode@iv{\psm@thenode}}
+\def\mnode@oval{\ovalnode@ii{\psm@thenode}}
+\def\mnode@tri{\trinode@ii{\psm@thenode}}
+\def\mnode@dia{\dianode@ii{\psm@thenode}}
+\def\mnode@C{{\nodealigntrue\cnode@ii(\z@,\z@){\psk@radius}{\psm@thenode}}}
+\def\mnode@f{{\nodealigntrue\fnode@ii(\z@,\z@){\psm@thenode}}}
+\def\mnode@circle{\circlenode@ii{\psm@thenode}}
+\def\mnode@p{\pnode(\z@,\z@){\psm@thenode}}
+% DG/SR modification begin - Jul. 22, 1997 - Patch 1
+\def\mnode@dot{\dotnode@ii(\z@,\z@){\psm@thenode}}
+% DG/SR modification end
+\def\mnode@none{\box\pst@hbox}
+\def\psset@mnode#1{%
+\@ifundefined{mnode@#1}%
+{\@pstrickserr{\string\psmatrix\space node `#1' not defined.}\@ehpa}%
+{\edef\psk@mnode{#1}}}
+\def\psset@emnode#1{%
+\@ifundefined{mnode@#1}%
+{\@pstrickserr{\string\psmatrix\space node `#1' not defined.}\@ehpa}%
+{\edef\psk@emnode{#1}}}
+\psset@mnode{R}
+\psset@emnode{none}
+%%%% FROM pst-coil.tex
+\def\nccoil{\pst@object{nccoil}}
+\def\nccoil@i{\check@arrow{\nccoil@ii}}
+\def\nccoil@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+\tx@NCCoor
+tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 5
+4 2 roll
+% DG/SR modification end
+\psk@coilwidth \pscoilheight
+\psk@coilarmA \psk@coilarmB
+\psk@coilaspect \psk@coilinc
+\pst@coildict \tx@Coil end
+end}}
+\def\nczigzag{\pst@object{nczigzag}}
+\def\nczigzag@i{\check@arrow{\nczigzag@ii}}
+\def\nczigzag@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+\tx@NCCoor
+tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 5
+4 2 roll
+% DG/SR modification end
+\pscoilheight
+\psk@coilwidth
+\psk@coilarmA
+\psk@coilarmB
+\pst@coildict \tx@ZigZag end
+\psline@iii
+\tx@Line
+end}}
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-node.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex
new file mode 100644
index 00000000000..93284cc9823
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex
@@ -0,0 +1,647 @@
+%% BEGIN pst-plot.tex
+%%
+%% Plots and axes with PSTricks 97.
+%% See the PSTricks User's Guide for documentation.
+%%
+\def\fileversion{97 patch 2}
+\def\filedate{1999/12/12}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+
+\csname PSTplotLoaded\endcsname
+\let\PSTplotLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex }
+ \expandafter\next
+\fi
+
+\ifx\MultidoLoaded\endinput\else
+ \def\next{\input multido.tex }
+ \expandafter\next
+\fi
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% Using lists of data is optimized for \dataplot and \fileplot
+% Here is the tricky part. As each line is read from file,
+% we want to ignore trailing delimiters, and convert arbitrary
+% strings of non-trailing delimiters to _D_.
+% We end up with
+% D x1 D y1 D x2 D y2 ... D xn D yn
+%
+\begingroup
+\catcode`\{=13
+\catcode`\}=13
+\catcode`\(=13
+\catcode`\)=13
+\catcode`\,=13
+\catcode`\!=1
+\catcode`\*=2
+\catcode`\ =13
+\catcode`\_=13
+\catcode`\^^M=13
+\gdef\pst@datadelimiters!% Begin def
+\catcode`\{=13%
+\catcode`\}=13%
+\catcode`\(=13%
+\catcode`\)=13%
+\catcode`\,=13%
+\catcode`\ =13%
+\catcode`\^^M=13%
+\def,##1!%
+\ifcat\noexpand,\noexpand##1%
+\expandafter##1%
+\else\space%
+D\space##1%
+\fi*%
+\let(,\let),\let{,\let},\let ,\let^^M,\let_\@empty*% End def
+\endgroup
+\begingroup
+\catcode`\,=13
+\catcode`\_=13
+\gdef\savedata@#1[#2]{%
+ \xdef\pst@tempg{#2_}%
+ \endgroup
+ \let#1\pst@tempg
+ \global\let\pst@tempg\relax
+ \ignorespaces}
+\gdef\readdata@{%
+ \read1 to \pst@tempa
+ \expandafter\readdata@@\pst@tempa_\@nil
+ \ifeof1\else\expandafter\readdata@\fi}
+\gdef\pst@@readfile#1#2\@nil{\addto@pscode{,#1#2}}%
+\gdef\readdata@@#1#2\@nil{\xdef\pst@tempg{\pst@tempg,#1#2}}%
+\endgroup
+
+\def\readdata#1#2{%
+ \openin1=#2
+ \begingroup
+ \def\pst@tempg{}%
+ \ifeof1
+ \@pstrickserr{Data file `#2' not found.}\@ehpa
+ \else
+ \pst@datadelimiters
+ \catcode`\[=1
+ \catcode`\]=2
+ \readdata@%
+ \fi
+ \endgroup
+ \let#1\pst@tempg
+ \global\let\pst@tempg\relax
+ \ignorespaces}
+
+\def\pst@readfile#1{{\let\readdata@@\pst@@readfile\readdata\pst@tempg{#1}}}
+\def\pst@altreadfile#1{%
+ \openin1=#1
+ \ifeof1
+ \@pstrickserr{Data file `#1' not found.}\@ehpa
+ \else
+ \catcode`\{=10
+ \catcode`\}=10
+ \catcode`\(=10
+ \catcode`\)=10
+ \catcode`\,=10
+ \catcode`\^^M=10
+ \catcode`\[=1
+ \catcode`\]=2
+ \pst@@altreadfile
+ \fi}
+\def\pst@@altreadfile{%
+ \read1 to \pst@tempg
+ \expandafter\pst@@@altreadfile\pst@tempg\@empty\@nil
+ \ifeof1\else\expandafter\pst@@@altreadfile\fi}
+\def\pst@@@altreadfile#1#2\@nil{\addto@pscode{#1#2}}%
+
+\def\savedata#1{\begingroup\pst@datadelimiters\savedata@{#1}}
+
+\def\beginplot@line{\begin@OpenObj}
+\def\endplot@line{\psline@ii}
+\def\beginplot@polygon{\begin@ClosedObj}
+\def\endplot@polygon{\pspolygon@ii}
+\def\beginplot@curve{\begin@OpenObj}
+\def\endplot@curve{\pscurve@ii}
+\def\beginplot@ecurve{\begin@OpenObj}
+\def\endplot@ecurve{\psecurve@ii}
+\def\beginplot@ccurve{\begin@ClosedObj}
+\def\endplot@ccurve{\psccurve@ii}
+\def\beginplot@dots{\begin@SpecialObj}
+\def\endplot@dots{\psdots@ii}
+\def\beginplot@bezier{\begin@OpenObj}
+\def\endplot@bezier{\psbezier@ii}
+\def\beginplot@cbezier{\begin@ClosedObj}
+\def\endplot@cbezier{\pscbezier@ii}
+
+\def\psset@plotstyle#1{%
+ \@ifundefined{beginplot@#1}%
+ {\@pstrickserr{Plot style `#1' not defined}\@eha}%
+ {\edef\psplotstyle{#1}}}
+\psset@plotstyle{line}
+
+\def\psset@plotpoints#1{%
+ \pst@cntg=#1\relax
+ \ifnum\pst@cntg<2
+ \@pstrickserr{plotpoints parameter must be at least 2}\@ehpa
+ \else
+ \advance\pst@cntg-1
+ \edef\psk@plotpoints{\the\pst@cntg\space}%
+ \fi}
+\psset@plotpoints{50}
+
+% For quick plots, define:
+% \beginqp@<foo> : What to do to first point (PS code only).
+% \doqp@<foo> : What to do to subsequent points (PS code only).
+% \endqp@<foo> : How to end plot.
+% \testqp@<foo> : Set \@psttrue if OK to use quick plot.
+
+\def\beginqp@line{\pst@oplineto}
+\def\doqp@line{L }
+\def\endqp@line{\end@OpenObj}%
+\def\testqp@line{%
+ \ifdim\pslinearc>\z@\else
+ \ifshowpoints\else
+ \ifx\psk@arrowA\@empty
+ \ifx\psk@arrowB\@empty
+ \@psttrue
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\beginqp@polygon{moveto }
+\def\doqp@polygon{L }
+\def\endqp@polygon{%
+ \addto@pscode{closepath}%
+ \end@ClosedObj}
+\def\testqp@polygon{%
+ \ifdim\pslinearc>\z@\else
+ \ifshowpoints\else
+ \@psttrue
+ \fi
+ \fi}
+
+\def\beginqp@dots{%
+ \psk@dotsize
+ \@nameuse{psds@\psk@dotstyle}
+% DG/SR modification begin - Dec. 12, 1999 - Patch 2
+% /TheDot { gsave \psk@dotangle \psk@dotscale Dot grestore } def
+% TheDot }
+ Dot }
+%\def\doqp@dots{TheDot }
+\def\doqp@dots{Dot }
+% DG/SR modification end
+\def\endqp@dots{\end@SpecialObj}
+\def\testqp@dots{\@psttrue}
+
+\def\beginqp@bezier{/n 0 def \pst@oplineto}
+\def\doqp@bezier{/n n 1 add def n 3 mod 0 eq { curveto } if }
+\def\endqp@bezier{%
+ \addto@pscode{n 3 mod { pop pop } repeat}
+ \end@OpenObj}%
+\def\testqp@bezier{%
+ \ifshowpoints\else
+ \ifx\psk@arrowA\@empty
+ \ifx\psk@arrowB\@empty
+ \@psttrue
+ \fi
+ \fi
+ \fi}
+
+\def\beginqp@cbezier{/n 0 def moveto }
+\def\doqp@cbezier{\doqp@bezier}
+\def\endqp@cbezier{%
+ \addto@pscode{n 3 mod { pop pop } repeat closepath}
+ \end@ClosedObj}%
+\def\testqp@cbezier{\ifshowpoints\else\@psttrue\fi}
+
+\def\dataplot{\def\pst@par{}\pst@object{dataplot}}
+\def\dataplot@i#1{%
+ \pst@killglue
+ \begingroup
+ \use@par
+ \@pstfalse
+ \@nameuse{testqp@\psplotstyle}%
+ \if@pst
+ \dataplot@ii{\addto@pscode{#1}}%
+ \else
+ \listplot@ii{\addto@pscode{#1}}%
+ \fi
+ \endgroup
+ \ignorespaces}
+\def\dataplot@ii#1{%
+ \@nameuse{beginplot@\psplotstyle}%
+ \addto@pscode{%
+ /Dx { \pst@number\psxunit mul /D { Dy } def } def
+ /Dy { \pst@number\psyunit mul Do /D { Dx } def } def
+ /D { /D { Dx } def } def
+ /Do {
+ \@nameuse{beginqp@\psplotstyle}%
+ /Do { \@nameuse{doqp@\psplotstyle}} def
+ } def}%
+ #1%
+ \addto@pscode{D}%
+ \@nameuse{endqp@\psplotstyle}}
+
+\def\fileplot{\def\pst@par{}\pst@object{fileplot}}
+\def\fileplot@i#1{%
+ \pst@killglue
+ \begingroup
+ \use@par
+ \@pstfalse
+ \@nameuse{testqp@\psplotstyle}%
+ \if@pst
+ \dataplot@ii{\pst@readfile{#1}}%
+ \else
+ \listplot@ii{\pst@altreadfile{#1}}%
+ \fi
+ \endgroup
+ \ignorespaces}
+
+\pst@def{ScalePoints}<%
+ /y ED /x ED
+ counttomark dup dup cvi eq not { exch pop } if
+ /m exch def /n m 2 div cvi def
+ n { y mul m 1 roll x mul m 1 roll /m m 2 sub def } repeat>
+
+\def\listplot{\def\pst@par{}\pst@object{listplot}}
+\def\listplot@i#1{\listplot@ii{\addto@pscode{#1}}}
+\def\listplot@ii#1{%
+ \@nameuse{beginplot@\psplotstyle}%
+ \addto@pscode{/D {} def mark}%
+ #1%
+ \addto@pscode{\pst@number\psxunit \pst@number\psyunit \tx@ScalePoints}%
+ \@nameuse{endplot@\psplotstyle}}
+
+% \psplot
+
+\def\psplotinit#1{\xdef\psplot@init{#1 }}
+\def\psplot@init{}
+
+\def\psplot{\def\pst@par{}\pst@object{psplot}}
+\def\psplot@i#1#2#3{%
+ \pst@killglue
+ \begingroup
+ \use@par
+ \@nameuse{beginplot@\psplotstyle}%
+ \addto@pscode{%
+ \psplot@init
+ /x #1 def
+ /x1 #2 def
+ /dx x1 x sub \psk@plotpoints div def
+ /xy {
+ x \pst@number\psxunit mul
+ #3 \pst@number\psyunit mul
+ } def}%
+ \gdef\psplot@init{}%
+ \@pstfalse
+ \@nameuse{testqp@\psplotstyle}%
+ \if@pst
+ \psplot@ii
+ \else
+ \psplot@iii
+ \fi
+ \endgroup
+ \ignorespaces}
+\def\psplot@ii{%
+ \addto@pscode{%
+ xy \@nameuse{beginqp@\psplotstyle}
+ \psk@plotpoints 1 sub {
+ /x x dx add def
+ xy \@nameuse{doqp@\psplotstyle}
+ } repeat
+ /x x1 def
+ xy \@nameuse{doqp@\psplotstyle}}%
+ \@nameuse{endqp@\psplotstyle}}
+\def\psplot@iii{%
+ \addto@pscode{%
+ mark
+ /n 2 def
+ \psk@plotpoints {
+ xy
+ n 2 roll
+ /n n 2 add def
+ /x x dx add def
+ } repeat
+ /x x1 def
+ xy
+ n 2 roll}%
+ \@nameuse{endplot@\psplotstyle}}
+
+\def\parametricplot{\def\pst@par{}\pst@object{parametricplot}}
+\def\parametricplot@i#1#2#3{%
+ \pst@killglue
+ \begingroup
+ \use@par
+ \@nameuse{beginplot@\psplotstyle}%
+ \addto@pscode{%
+ \psplot@init
+ /t #1 def
+ /t1 #2 def
+ /dt t1 t sub \psk@plotpoints div def
+ /xy {
+ #3
+ \pst@number\psyunit mul exch
+ \pst@number\psxunit mul exch
+ } def}%
+ \gdef\psplot@init{}%
+ \@pstfalse
+ \@nameuse{testqp@\psplotstyle}%
+ \if@pst
+ \parametricplot@ii
+ \else
+ \parametricplot@iii
+ \fi
+ \endgroup
+ \ignorespaces}
+\def\parametricplot@ii{%
+ \addto@pscode{%
+ xy \@nameuse{beginqp@\psplotstyle}
+ \psk@plotpoints 1 sub {
+ /t t dt add def
+ xy \@nameuse{doqp@\psplotstyle}
+ } repeat
+ /t t1 def
+ xy \@nameuse{doqp@\psplotstyle}}%
+ \@nameuse{endqp@\psplotstyle}}
+\def\parametricplot@iii{%
+ \addto@pscode{%
+ mark
+ /n 2 def
+ \psk@plotpoints {
+ xy
+ n 2 roll
+ /n n 2 add def
+ /t t dt add def
+ } repeat
+ /t t1 def
+ xy
+ n 2 roll}%
+ \@nameuse{endplot@\psplotstyle}}
+
+% These axes macros are complicated. Be careful.
+
+% \pst@ticks{angle}{dx}{n}{int}
+% int=1 if ticks appear on top of axes, 0 otherwise.
+\def\pst@ticks#1#2#3#4{%
+ \begin@SpecialObj
+ \addto@pscode{%
+ #1 rotate
+ /n #3 def
+ /dx #2 def
+ n 0 lt { /dx dx neg def /n n neg def } if
+ /y2 \psk@ticksize CLW 2 div add def
+ /y1 y2 neg def
+ \ifnum\psk@tickstyle=1
+ \ifdim#4<\z@ /y2 \else /y1 \fi 0 def
+ \else
+ \ifnum\psk@tickstyle=-1
+ \ifdim#4<\z@ /y1 \else /y2 \fi 0 def
+ \fi
+ \fi
+ /x dx def
+ n { x y1 moveto x y2 lineto stroke /x x dx add def } repeat}%
+ \end@SpecialObj}
+
+
+\def\psset@ticksize#1{\pst@getlength{#1}\psk@ticksize}
+\psset@ticksize{3pt}
+
+\def\psset@tickstyle#1{\pst@expandafter\psset@@tickstyle{#1}\@nil}
+\def\psset@@tickstyle#1#2\@nil{%
+ \ifx#1f\let\psk@tickstyle\z@\else
+ \ifx#1t\let\psk@tickstyle\@ne\else
+ \ifx#1b\let\psk@tickstyle\m@ne\else
+ \@pstrickserr{Bad tick style: `#1#2'}\@ehpa
+ \fi\fi\fi}
+\psset@tickstyle{full}
+
+\def\psset@ticks#1{\pst@expandafter\psset@@ticks{#1}\@nil\psk@ticks}
+\def\psset@@ticks#1#2\@nil#3{%
+ \ifx#1a\let#3\z@\else
+ \ifx#1x\let#3\@ne\else
+ \ifx#1y\let#3\tw@\else
+ \ifx#1n\let#3\thr@@\else
+ \@pstrickserr{Bad argument: `#1#2'}\@ehpa
+ \fi\fi\fi\fi}
+\psset@ticks{all}
+
+\def\psset@labels#1{\pst@expandafter\psset@@ticks{#1}\@nil\psk@labels}
+\psset@labels{all}
+
+\def\psset@Ox#1{\edef\psk@Ox{#1}}
+\psset@Ox{0}
+\def\psset@Dx#1{\edef\psk@Dx{#1}}
+\psset@Dx{1}
+\def\psset@dx#1{%
+ \pssetxlength\pst@dimg{#1}%
+ \edef\psk@dx{\number\pst@dimg}}
+\psset@dx{0}
+
+\def\psset@Oy#1{\edef\psk@Oy{#1}}
+\psset@Oy{0}
+\def\psset@Dy#1{\edef\psk@Dy{#1}}
+\psset@Dy{1}
+\def\psset@dy#1{%
+ \pssetylength\pst@dimg{#1}%
+ \edef\psk@dy{\number\pst@dimg}}
+\psset@dy{0}
+
+\newif\ifshoworigin
+\def\psset@showorigin#1{\@nameuse{showorigin#1}}
+\psset@showorigin{true}
+
+
+\def\psaxes{\def\pst@par{}\pst@object{psaxes}}
+\def\psaxes@i{\pst@getarrows\psaxes@ii}
+\def\psaxes@ii(#1){\@ifnextchar({\psaxes@iii(#1)}{\psaxes@iv(0,0)(0,0)(#1)}}
+\def\psaxes@iii(#1)(#2){%
+ \@ifnextchar(%
+ {\psaxes@iv(#1)(#2)}%
+ {\psaxes@iv(#1)(#1)(#2)}}
+\def\psaxes@iv(#1,#2)(#3,#4)(#5,#6){%
+ \setbox\pst@hbox=\hbox\bgroup
+ \use@par
+ \pssetxlength\pst@dimg{#1}% o-x
+ \pssetylength\pst@dimh{#2}% o-y
+ \pssetxlength\pst@dima{#3}% bl-x
+ \pssetylength\pst@dimb{#4}% bl-y
+ \pssetxlength\pst@dimc{#5}% ur-x
+ \pssetylength\pst@dimd{#6}% ur-y
+% Whole thing will be translated to origin:
+ \advance\pst@dima-\pst@dimg % Dist. from bl-x to o-x
+ \advance\pst@dimb-\pst@dimh % Dist. from bl-y to o-y
+ \advance\pst@dimc-\pst@dimg % Dist. from ur-x to o-x
+ \advance\pst@dimd-\pst@dimh % Dist. from ur-y to o-y
+% Make lines/arrows or frame:
+ \@nameuse{psxs@\psk@axesstyle}%
+% "\pslabelsep" should be from the edge of the axis.
+ \advance\pslabelsep.5\pslinewidth
+% Now the ticks and labels. Start by checking for "\multido".
+% !!Need to fix this so that does nothing when there are 0 ticks.!!
+ \begingroup
+ \ifdim\pst@dimb=\z@\else\showoriginfalse\fi
+ \ifnum\psk@dx=\z@
+ \pst@dimg=\psk@Dx\psxunit
+ \edef\psk@dx{\number\pst@dimg}%
+ \fi
+ \ifnum\psk@ticks<\tw@
+ \ifnum\psk@tickstyle>\z@\else
+ \advance\pslabelsep\psk@ticksize\p@
+ \fi
+ \fi
+ \pst@hlabels\pst@dimc\psk@arrowB
+ \pst@hlabels\pst@dima\psk@arrowA
+ \endgroup
+ \begingroup
+ \ifdim\pst@dima=\z@\else\showoriginfalse\fi
+ \ifnum\psk@dy=\z@
+ \pst@dimg=\psk@Dy\psyunit
+ \edef\psk@dy{\number\pst@dimg}%
+ \fi
+ \ifodd\psk@ticks\else
+ \ifnum\psk@tickstyle>\z@\else
+ \advance\pslabelsep\psk@ticksize\p@
+ \fi
+ \fi
+ \pst@vlabels\pst@dimd\psk@arrowB
+ \pst@vlabels\pst@dimb\psk@arrowA
+ \endgroup
+% Now close "\pst@hbox" (which is 0-dimensional), and put it at the origin.
+ \egroup
+ \pssetxlength\pst@dimg{#1}%
+ \pssetylength\pst@dimh{#2}%
+ \leavevmode\psput@cartesian\pst@hbox
+ \ignorespaces}
+
+\def\psxs@axes{%
+ \psxs@@axes\pst@dima\pst@dimc{}%
+ \psxs@@axes\pst@dimb\pst@dimd{exch}}
+\def\psxs@@axes#1#2#3{%
+ \begin@SpecialObj
+ \ifdim#1=\z@
+ \def\psk@arrowA{C}%
+ \else
+ \ifdim#2=\z@
+ \def\psk@arrowB{C}%
+ \fi
+ \fi
+ \let\pst@linetype\pst@arrowtype
+ \pst@addarrowdef
+ \addto@pscode{%
+ \pst@number#2 0 #3
+ \pst@number#1 0 #3
+ ArrowA
+ CP 4 2 roll
+ ArrowB
+ L
+ pop pop}%
+ \pst@stroke
+ \end@SpecialObj}
+
+\def\psxs@frame{%
+ \begin@SpecialObj
+ \addto@pscode{%
+ 0 0 moveto \pst@number\pst@dimc 0 L
+ 0 \pst@number\pst@dimd 2 copy rlineto L closepath}%
+ \pst@stroke
+ \psk@fillstyle
+ \end@SpecialObj
+ \let\psk@arrowA\@empty
+ \let\psk@arrowB\@empty}
+
+\def\psset@axesstyle#1{%
+ \@ifundefined{psxs@#1}%
+ {\@pstrickserr{Axes style `#1' not defined}\@eha}%
+ {\edef\psk@axesstyle{#1}}}
+\psset@axesstyle{axes}
+
+\def\psxs@none{\let\psk@arrowA\@empty\let\psk@arrowB\@empty}
+
+% The origin is never the only label.
+\def\pst@hlabels#1#2{%
+ \ifdim#1=\z@\else
+ \ifx#2\empty\else
+ \advance#1\ifdim#1>\z@-\fi7\pslinewidth
+ \fi
+ \pst@cnta=#1\relax % Distance (in sp) to end.
+ \divide\pst@cnta\psk@dx\relax % Number of ticks/labels
+ \ifnum\pst@cnta=\z@\else
+ \pst@dimb=\psk@dx sp % Space between ticks.
+ \ifnum\psk@ticks<\tw@
+ \pst@ticks{0}{\pst@number\pst@dimb}{\the\pst@cnta}{\pst@dimd}%
+ \fi
+ \ifnum\psk@labels<\tw@ \pst@@hlabels\fi
+ \showoriginfalse
+ \fi
+ \fi}
+
+% Knows \pst@dimb and \pst@cnta
+\def\pst@@hlabels{%
+ \vbox to\z@{%
+ \ifdim\pst@dimd>\z@\vskip\pslabelsep\else\vss\fi
+ \ifnum\pst@cnta<\z@
+ \pst@dimb=-\pst@dimb
+ \fi
+ \hbox to\z@{%
+ \ifshoworigin\hbox to \z@{\hss\pshlabel{\psk@Ox}\hss}\fi
+ \mmultido
+ {\n=\psk@Ox+\psk@Dx}%
+ {\pst@cnta}%
+ {\hskip\pst@dimb\hbox to \z@{\hss\pshlabel{\n}\hss}}%
+ \hss}%
+ \ifdim\pst@dimd>\z@\vss\else\vskip\pslabelsep\fi}}%
+
+\def\pshlabel#1{$#1$}
+
+\def\pst@vlabels#1#2{%
+ \ifdim#1=\z@\else
+ \ifx#2\empty\else
+ \advance#1\ifdim#1>\z@-\fi7\pslinewidth
+ \fi
+ \pst@cnta=#1\relax % Distance (in sp) to end.
+ \divide\pst@cnta\psk@dy\relax % Number of ticks/labels
+ \ifnum\pst@cnta=\z@\else
+ \pst@dima=\psk@dy sp % Space between ticks.
+ \ifodd\psk@ticks\else
+ \pst@ticks{90}{\pst@number\pst@dima}{\the\pst@cnta}{-\pst@dimc}%
+ \fi
+ \ifodd\psk@labels\else\pst@@vlabels\fi
+ \showoriginfalse
+ \fi
+ \fi}
+
+% Knows \pst@dima and \pst@cnta
+\def\pst@@vlabels{%
+ \vbox to\z@{%
+ \ifnum\pst@cnta>\z@
+ \pst@dima=-\pst@dima
+ \fi
+ \offinterlineskip
+ \ifshoworigin
+ \vbox to \z@{\vss\hbox to\z@{%
+ \ifdim\pst@dimc>\z@\hss\else\hskip\pslabelsep\fi
+ \psvlabel{\psk@Oy}%
+ \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}%
+ \fi
+ \mmultido
+ {\n=\psk@Oy+\psk@Dy}%
+ {\pst@cnta}%
+ {\vbox to\pst@dima{\vss}\vbox to \z@{\vss\hbox to\z@{%
+ \ifdim\pst@dimc>\z@\hss\else\hskip\pslabelsep\fi
+ \psvlabel{\n}%
+ \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}}%
+ \vss}}
+
+\def\psvlabel#1{$#1$}
+
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-plot.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-text.tex b/Master/texmf-dist/tex/generic/pstricks/pst-text.tex
new file mode 100644
index 00000000000..b0a7b5c5afe
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-text.tex
@@ -0,0 +1,98 @@
+%% BEGIN pst-text.tex
+%%
+%% Placing text on a path with PSTricks 97.
+%% See the PSTricks User's Guide for description.
+%% See tp-test.tex for sample input and tp-test.ps for sample output.
+%% This uses the header file `pst-text.pro'.
+%%
+\def\fileversion{97}
+\def\filedate{1997/03/25}
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+
+\csname PSTextPathLoaded\endcsname
+\let\PSTextPathLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex}\expandafter\next
+\fi
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+\pstheader{pst-text.pro}
+
+\def\pstextpath{\@ifnextchar[{\pstextpath@}{\pstextpath@[l]}}
+\def\pstextpath@[#1]{%
+ \@ifnextchar({\pstextpath@@[#1]}{\pstextpath@@[#1](0,\TPoffset)}}
+\def\pstextpath@@[#1](#2)#3{\pst@makebox{\pstextpath@@@[#1](#2){#3}}}
+\def\pstextpath@@@[#1](#2,#3)#4{%
+ \pst@killglue
+ \begingroup
+ \ifx c#1\relax
+ \def\pst@tempa{.5}%
+ \else
+ \ifx r#1\relax
+ \def\pst@tempa{1}%
+ \else
+ \def\pst@tempa{0}%
+ \fi
+ \fi
+ \def\use@pscode{%
+ \pst@Verb{%
+ /mtrxc CM def
+ \tx@STV
+ CP translate
+ newpath
+ \pst@code\space
+ mtrxc setmatrix
+ 0 setgray}%
+ \gdef\pst@code{}}%
+ \def\psclip#1{\pst@misplaced\psclip}%
+ \let\endpsclip\relax
+ \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
+ \def\PSTtoEPS@i##1##2{\pst@misplaced\PSTtoEPS}%
+ \pssetlength\pst@dima{#2}%
+ \pssetlength\pst@dimb{#3}%
+ \setbox\pst@hbox\hbox{%
+ \hbox to\z@{%
+ \kern -\wd\pst@hbox
+ % BoxWidth = CurrX - Hoffset.
+ \pstVerb{tx@TextPathDict begin
+ currentpoint pop /Hoffset exch def end}%
+ \kern\pst@dima
+ % XOffset = Voffset - Hoffset (extra horizontal skip)
+ \pstVerb{tx@TextPathDict begin
+ currentpoint pop /Voffset exch def end}%
+ \hss
+ \pstVerb{%
+ /tx@TextPathSavedShow /show load def
+ \pst@dict \tx@PathLength end
+ dup 0 gt
+ { tx@TextPathDict begin \pst@tempa\space InitTextPath end
+ /show { tx@TextPathDict begin TextPathShow end } def
+ }
+ { pop }
+ ifelse}}%
+ \raise\pst@dimb\box\pst@hbox
+ \pstVerb{%
+ currentpoint newpath moveto
+ /show /tx@TextPathSavedShow load def}}%
+ \wd\pst@hbox=\z@ \dp\pst@hbox=\z@ \ht\pst@hbox=\z@
+ \leavevmode
+ \hbox{{#4}\box\pst@hbox}%
+ \endgroup\ignorespaces}
+\def\TPoffset{-.7ex}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-text.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex b/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex
new file mode 100644
index 00000000000..33c1275d9c7
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-tree.tex
@@ -0,0 +1,1010 @@
+%% pst-tree.tex
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% COPYRIGHT 2000-2003 by Denis Girou.
+%% Copyright 2004 Herbert Voss
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Herbert Voss
+%
+% This work consists of the file pstricks.tex, PostScript macros
+% for Generic TeX.
+% See the PSTricks User's Guide for description.
+%
+\csname PSTreeLoaded\endcsname
+\let\PSTreeLoaded\endinput
+\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi\relax
+\def\fileversion{97 patch 6}
+\def\filedate{2004/07/24}
+\message{ v\fileversion, \filedate}
+%
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+%
+\newbox\pstree@rootbox
+\newbox\pstree@box
+\def\pstree@succrow{%
+\ifpstreeflip
+ \def\pssubtree@vertical{\pssubtree@vertical@vflip}%
+\else
+ \def\pssubtree@vertical{\pssubtree@vertical@v}%
+\fi
+\def\pstree@node{\pstree@node@v}%
+\def\pssubtree@horizontal{\pssubtree@horizontal@v}}%
+\def\pssubtree@vertical@v{%
+ \vrule height \pst@dimc depth \pst@dimd width \z@
+ \ifnum\psnodecnt=\z@
+ \global\let\pstree@theleftprofile\pstree@leftprofile
+ \global\let\pstree@therightprofile\pstree@rightprofile
+ \else
+ \psk@thistreefit\pstree@therightprofile\pstree@leftprofile
+ \kern\the\pst@cnth sp
+ \pstree@zip\pstree@therightprofile
+ \pstree@rightprofile\pstree@therightprofile
+ \global\advance\pstree@cnt\pst@cnth
+ \pst@cnth=\pstree@cnt
+ \pstree@zip\pstree@leftprofile
+ \pstree@theleftprofile\pstree@theleftprofile
+ \fi
+ \box\pstree@box
+ \global\advance\psnodecnt 1\relax%
+}%
+\def\pssubtree@vertical@vflip{%
+ \vrule height \pst@dimc depth \pst@dimd width \z@
+ \ifnum\psnodecnt=\z@
+ \global\let\pstree@theleftprofile\pstree@leftprofile
+ \global\let\pstree@therightprofile\pstree@rightprofile
+ \else
+ \psk@thistreefit\pstree@theleftprofile\pstree@rightprofile
+ \kern-\pst@cnth sp
+ \pstree@zip\pstree@theleftprofile
+ \pstree@leftprofile\pstree@theleftprofile
+ \global\advance\pstree@cnt\pst@cnth
+ \pst@cnth=\pstree@cnt
+ \pstree@zip\pstree@rightprofile
+ \pstree@therightprofile\pstree@therightprofile
+ \fi
+ \box\pstree@box
+ \global\advance\psnodecnt 1\relax%
+}%
+\def\pstree@node@v{%
+\edef\pstree@leftprofile{\psk@thistreenodesize\pst@dima,\pstree@stop,}%
+\edef\pstree@rightprofile{\psk@thistreenodesize\pst@dimb,\pstree@stop,}%
+\pssubtree@vertical}%
+\def\pssubtree@horizontal@v{%
+\pstree@max\pstree@upprofile\pst@cntg
+\pst@dimc=\pst@cntg sp
+\pstree@max\pstree@downprofile\pst@cntg
+\pst@dimd=\pst@cntg sp
+\pstree@treebboxadjust
+\edef\pstree@leftprofile{\number\pst@dima,\pstree@stop,}%
+\edef\pstree@rightprofile{\number\pst@dimb,\pstree@stop,}%
+\pssubtree@vertical}%
+\def\pstree@tightfit#1#2{%
+\pst@cnth=\z@
+\edef\next{\noexpand\pstree@@tightfit#1\noexpand\@nil#2\noexpand\@nil}%
+\next
+\advance\pst@cnth\psk@thistreesep\relax
+\advance\pst@cnth\pstree@tspace\relax
+\gdef\pstree@tspace{\z@}}
+\def\pstree@@tightfit#1,#2\@nil#3,#4\@nil{%
+\ifnum#1=\pstree@stop
+\let\next\relax
+\else
+\ifnum#3=\pstree@stop
+\let\next\relax
+\else
+\pst@cntg=#1
+\advance\pst@cntg#3
+\ifnum\pst@cntg>\pst@cnth
+\pst@cnth=\pst@cntg
+\fi
+\def\next{\pstree@@tightfit#2\@nil#4\@nil}%
+\fi
+\fi
+\next}
+\def\pstree@loosefit#1#2{%
+\pstree@max{#1}\pst@cnth
+\pstree@max{#2}\pst@cntg
+\advance\pst@cnth\pst@cntg
+\advance\pst@cnth\psk@thistreesep\relax
+\advance\pst@cnth\pstree@tspace\relax
+\gdef\pstree@tspace{\z@}}
+\def\tspace#1{%
+\pst@@killglue
+\pssetlength\pst@dimg{#1}%
+\xdef\pstree@tspace{\number\pst@dimg}%
+\ignorespaces}
+\def\psset@treefit#1{%
+\@ifundefined{pstree@#1fit}%
+{\@pstrickserr{Bad `treefit' parameter value: `#1'}\@ehpa}%
+{\expandafter\let\expandafter\psk@treefit\csname pstree@#1fit\endcsname}}
+\psset@treefit{tight}
+\def\psset@thistreefit#1{%
+\@ifundefined{pstree@#1fit}%
+{\@pstrickserr{Bad `treefit' parameter value: `#1'}\@ehpa}%
+{\expandafter\let\expandafter\psk@thistreefit
+\csname pstree@#1fit\endcsname}}
+\psset@treefit{tight}
+\def\pstree@zip#1#2#3{%
+\def\pst@tempg{}%
+\edef\next{\noexpand\pstree@@zip#1\noexpand\@nil#2\noexpand\@nil}%
+\next
+\global\let#3\pst@tempg}
+\def\pstree@@zip#1,#2\@nil#3,#4\@nil{%
+\ifnum#1=\pstree@stop
+\edef\pst@tempg{\pst@tempg#3,#4}%
+\let\next\relax
+\else
+\ifnum#3=\pstree@stop
+\pst@cntg=#1
+\advance\pst@cntg-\pst@cnth
+\edef\pst@tempg{\pst@tempg\the\pst@cntg,}%
+\def\next{\pstree@@zip#2\@nil\pstree@stop,\@nil}%
+\else
+\edef\pst@tempg{\pst@tempg#3,}%
+\def\next{\pstree@@zip#2\@nil#4\@nil}%
+\fi
+\fi
+\next}
+\def\pstree@max#1#2{%
+\pst@cntg=\z@
+\expandafter\pstree@@max#1%
+#2=\pst@cntg}%
+\def\pstree@@max#1,{%
+\ifnum#1=\pstree@stop\else
+\ifnum#1>\pst@cntg \pst@cntg=#1 \fi
+\expandafter\pstree@@max
+\fi}
+\def\pstree@add#1{%
+\def\pst@tempg{}%
+\expandafter\pstree@@add#1%
+\xdef#1{\pst@tempg\pstree@stop,}}
+\def\pstree@@add#1,{%
+\ifnum#1=\pstree@stop\else
+\pst@cnth=#1
+\advance\pst@cnth\pst@cntg
+\xdef\pst@tempg{\pst@tempg\the\pst@cnth,}%
+\expandafter\pstree@@add
+\fi}
+\newcount\psnodecnt
+\let\c@psnodecnt\psnodecnt
+\newcount\pstreelevel
+\let\c@pstreelevel\pstreelevel
+\newcount\pstreecnt
+\let\c@pstreecnt\pstreecnt
+\newcount\pstree@cnt
+\def\pstree{\def\pst@par{}\pst@object{pstree}}
+\def\pstree@i{\def\pstree@makebox{\pst@@makebox}\pstree@ii}
+\def\psTree{\def\pst@par{}\pst@object{psTree}}
+\def\psTree@i{\def\pstree@makebox{\pst@makelongbox}\pstree@ii}
+\def\endpsTree{\pst@endlongbox\ignorespaces}
+\def\pstree@ii{%
+\ifnum\pstreelevel=\z@
+\let\pstree@savedshortput\pst@shortput
+\psset@shortput{tab}%
+\else
+\pst@@killglue
+\fi
+\begingroup
+\begingroup
+\def\pstree@node{%
+\xdef\pstree@next{%
+\noexpand\@psttrue
+\noexpand\def\noexpand\pst@tempa{\number\pst@dima}%
+\noexpand\def\noexpand\pst@tempb{\number\pst@dimb}%
+\noexpand\def\noexpand\pst@tempc{\number\pst@dimc}%
+\noexpand\def\noexpand\pst@tempd{\number\pst@dimd}}%
+\box\pstree@box}%
+\def\pssubtree@horizontal{\pssubtree@horizontal@o}%
+\def\pssubtree@vertical{\pssubtree@vertical@o}%
+\global\let\pstree@next\relax
+\pst@makebox\pstree@iii}
+\def\pstree@iii{%
+\global\setbox\pst@boxg=\box\pst@hbox
+\endgroup
+\setbox\pstree@rootbox=\box\pst@boxg
+\@pstfalse
+\pstree@next
+\if@pst
+\ifdim\wd\pstree@rootbox=\z@\else
+\@pstrickserr{Extraneous space in root node}\@ehpa
+\wd\pstree@rootbox=\z@
+\fi
+\else
+\@pstrickserr{Missing or bad root node
+(level \the\pstreelevel, node \the\psnodecnt)}\@ehpa
+\def\pstree@next{%
+\def\pst@tempa{0}%
+\def\pst@tempb{0}%
+\def\pst@tempc{0}%
+\def\pst@tempd{0}}%
+\wd\pstree@rootbox=\z@
+\fi
+\pstree@savevalues
+\begingroup
+\pstree@initsuccvalues
+\pstree@setlevelpar
+\pstree@do}
+\def\pstree@setlevelpar{%
+\advance\pstreelevel1
+\let\psk@thislevelsep\relax
+\let\psk@thistreesep\relax
+\let\psk@thistreefit\relax
+\let\psk@thistreenodesize\relax
+\csname pstreehook\romannumeral\pstreelevel\endcsname
+\use@par
+\ifx\psk@thistreesep\relax
+\let\psk@thistreesep\psk@treesep
+\fi
+\ifx\psk@thistreenodesize\relax
+\let\psk@thistreenodesize\psk@treenodesize
+\fi
+\ifx\psk@thistreefit\relax
+\let\psk@thistreefit\psk@treefit
+\fi
+\ifx\psk@thislevelsep\relax
+\let\psk@thislevelsep\psk@levelsep
+\let\psk@thislevelsepmode\psk@levelsepmode
+\fi
+\ifnum\psk@treemode=\pstree@predmode\else
+\global\advance\pstreecnt1
+\edef\pstree@thetree{\the\pstreecnt}%
+\let\pstree@predmode\psk@treemode
+\fi
+\ifx\psk@thislevelsepmode\relax
+\pst@dimg=\psk@thislevelsep\relax
+\pst@cntg=0\@nameuse{%
+pstree@levelsepadjust-\pstree@thetree-\the\pstreelevel}%
+\advance\pst@dimg\pst@cntg sp
+\edef\psk@thislevelsep{\number\pst@dimg sp}%
+\fi
+\ifnum\psk@treemode>1
+\def\pst@tposflip{1 sub neg }%
+\else
+\def\pst@tposflip{}%
+\fi
+\ifx\pstree@bboxadjust\@empty\else
+\xdef\pstree@treebboxadjust{%
+\pstree@bboxadjust
+\ifpsshowbbox\noexpand\pstree@showbbox\fi}%
+\gdef\pstree@bboxadjust{}%
+\fi
+\let\pst@thispsbox\@skiplevelfalse}
+\def\pstree@predmode{-1}
+\def\pstree@savevalues{%
+\edef\pstree@restorevalues{%
+\noexpand\gdef\noexpand\pstree@theleftprofile{\pstree@theleftprofile}%
+\noexpand\gdef\noexpand\pstree@therightprofile{\pstree@therightprofile}%
+\noexpand\gdef\noexpand\pstree@theupprofile{\pstree@theupprofile}%
+\noexpand\gdef\noexpand\pstree@thedownprofile{\pstree@thedownprofile}%
+\noexpand\gdef\noexpand\pstree@tspace{\pstree@tspace}%
+\noexpand\gdef\noexpand\pssucc{\pssucc}%
+\global\psnodecnt=\the\psnodecnt\relax
+\global\pstree@cnt=\the\pstree@cnt\relax}%
+\let\pstree@savebboxadjust\pstree@treebboxadjust}
+\def\pstree@initsuccvalues{%
+\def\pstree@therightprofile{\pstree@stop,}%
+\let\pstree@theleftprofile\pstree@therightprofile
+\let\pstree@theupprofile\pstree@therightprofile
+\let\pstree@thedownprofile\pstree@therightprofile
+\psnodecnt=\z@
+\pstree@cnt\z@
+\gdef\pstree@tspace{\z@}%
+\let\pspred\pssucc}
+\def\pssucc{T}
+\pstree@initsuccvalues
+\def\pstree@down{%
+\pstree@succrow
+\pstree@makebox{\pstree@vertical{\lower}}}
+\def\pstree@up{%
+\pstree@succrow
+\pstree@makebox{\pstree@vertical{\raise}}}
+\def\pstree@levelsepadjust#1#2{%
+% DG/SR modification begin - May 14, 1997 - Patch 1
+% Problem with levelsep=*...
+%\pst@cntg=0\@nameuse{pstree@levelsepadjust-#1}%
+\pst@cntg=0\@nameuse{pstree@levelsepadjust-#1}
+% DG/SR modification end
+\ifnum#2>\pst@cntg
+\expandafter\xdef\csname pstree@levelsepadjust-#1\endcsname
+{#2}%
+\fi}
+% DG/SR modification begin - October 28, 1999 - Patch 5 - For plain TeX
+\ifx\@undefined\@auxout\newwrite\@auxout\fi
+% DG/SR modification end
+\def\pstree@initlevelsepadjust{%
+\@ifundefined{@latexerr}{%
+\immediate\openin1 \jobname.pst
+\ifeof1 \else
+\input \jobname.pst
+\fi
+\immediate\closein1
+\csname newwrite\endcsname\pstree@auxout
+\immediate\openout\pstree@auxout \jobname.pst }%
+{\let\pstree@auxout\@auxout}%
+\global\let\pstree@initlevelsepadjust\relax}
+\newcount\pstree@stop
+\pstree@stop=-987654321
+\def\pstree@vertical#1{%
+\pst@cntg=\ifpstreeflip-\fi\wd\pst@hbox
+\divide\pst@cntg 2
+\pstree@add\pstree@theleftprofile
+\pstree@add\pstree@therightprofile
+\pst@dimg=\psk@thislevelsep\relax
+\ifx\psk@thislevelsepmode\relax
+\pstree@vertlevelsepadjust{#1}%
+\fi
+\global\setbox\pstree@box=\hbox{%
+\vrule height \pst@tempc sp depth \pst@tempd sp width \z@
+\unhbox\pstree@rootbox
+#1\pst@dimg\hbox to\z@{\hss\unhbox\pst@hbox\hss}}%
+\if@skiplevel
+\skiplevel@vertical
+\else
+\endgroup
+\fi
+\edef\pstree@leftprofile{\pst@tempa,\pstree@theleftprofile}%
+\edef\pstree@rightprofile{\pst@tempb,\pstree@therightprofile}%
+\pst@dimc=\ht\pstree@box
+\pst@dimd=\dp\pstree@box
+\ifpsshowbbox
+\pstree@max\pstree@leftprofile\pst@cntg
+\pst@dima=\pst@cntg sp
+\pstree@max\pstree@rightprofile\pst@cntg
+\pst@dimb=\pst@cntg sp
+\pstree@showbbox
+\fi
+\dp\pstree@box=\z@
+\ht\pstree@box=\z@
+\pstree@restorevalues
+\pssubtree@vertical
+\global\let\pstree@treebboxadjust\pstree@savebboxadjust
+\endgroup
+\ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+\def\pstree@vertlevelsepadjust#1{%
+\ifx\if@filesw\iffalse\else
+\ifx#1\lower
+\pst@dimh=\pst@tempd sp
+\advance\pst@dimh\ht\pst@hbox
+\else
+\pst@dimh=\pst@tempc sp
+\advance\pst@dimh\dp\pst@hbox
+\fi
+\immediate\write\@auxout{%
+\string\pstree@levelsepadjust
+{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
+\fi}
+\def\pstree@succcolumn{%
+\def\pssubtree@vertical{\pssubtree@vertical@h}%
+\def\pssubtree@horizontal{\pssubtree@horizontal@h}%
+\def\pstree@node{\pstree@node@h}}%
+\def\pssubtree@horizontal@h{%
+\xdef\pstree@theleftprofile{\number\pst@dima,\pstree@theleftprofile}%
+\xdef\pstree@therightprofile{\number\pst@dimb,\pstree@therightprofile}%
+\ifnum\psnodecnt=\z@
+\global\let\pstree@theupprofile\pstree@upprofile
+\global\let\pstree@thedownprofile\pstree@downprofile
+\box\pstree@box
+\else
+\ifpstreeflip
+\pssubtree@horizontal@@hflip
+\else
+\pssubtree@horizontal@@h
+\fi
+\fi
+\global\advance\psnodecnt 1\relax}
+\def\pssubtree@horizontal@@h{%
+\psk@thistreefit\pstree@thedownprofile\pstree@upprofile
+\global\advance\pstree@cnt\pst@cnth
+\lower\the\pstree@cnt sp\box\pstree@box
+\pstree@zip\pstree@thedownprofile\pstree@downprofile\pstree@thedownprofile
+\pst@cnth=\pstree@cnt
+\pstree@zip\pstree@upprofile\pstree@theupprofile\pstree@theupprofile}
+\def\pssubtree@horizontal@@hflip{%
+\psk@thistreefit\pstree@theupprofile\pstree@downprofile
+\global\advance\pstree@cnt\pst@cnth
+\raise\the\pstree@cnt sp\box\pstree@box
+\pstree@zip\pstree@theupprofile\pstree@upprofile\pstree@theupprofile
+\pst@cnth=\pstree@cnt
+\pstree@zip\pstree@downprofile\pstree@thedownprofile\pstree@thedownprofile}
+\def\pstree@node@h{%
+\edef\pstree@upprofile{\psk@thistreenodesize\pst@dimc,\pstree@stop,}%
+\edef\pstree@downprofile{\psk@thistreenodesize\pst@dimd,\pstree@stop,}%
+\pssubtree@horizontal@h}%
+\def\pssubtree@vertical@h{%
+\pstree@max\pstree@leftprofile\pst@cntg
+\pst@dima=\pst@cntg sp
+\pstree@max\pstree@rightprofile\pst@cntg
+\pst@dimb=\pst@cntg sp
+\pstree@treebboxadjust
+\edef\pstree@upprofile{\number\pst@dimc,\pstree@stop,}%
+\edef\pstree@downprofile{\number\pst@dimd,\pstree@stop,}%
+\pssubtree@horizontal@h}%
+\newif\if@psrighttree
+\def\pstree@right{%
+\@psrighttreetrue
+\pstree@succcolumn
+\pstree@makebox\pstree@horizontal}
+\def\pstree@left{%
+\@psrighttreefalse
+\pstree@succcolumn
+\pstree@makebox\pstree@horizontal}
+\def\pstree@horizontal{%
+\ifdim\wd\pst@hbox=\z@\else
+\@pstrickserr{Extraneous space in tree successors}\@ehpa
+\fi
+\pst@cntg=\ifpstreeflip\ht\else\dp\fi\pst@hbox
+\divide\pst@cntg 2
+\pstree@add\pstree@theupprofile
+\pstree@add\pstree@thedownprofile
+% DG/SR modification begin - Sep. 24, 1997 - Patch 3
+%\ifx\psk@thislevelsepmode\relax
+%\pstree@horizlevelsepadjust
+%\fi
+% DG/SR modification end
+\pst@dimg\psk@thislevelsep\relax
+\global\setbox\pstree@box=\hbox{%
+\unhbox\pstree@rootbox
+\kern\if@psrighttree\else-\fi\pst@dimg
+\ifpstreeflip\lower\else\raise\fi\pst@cntg sp\box\pst@hbox}%
+% DG/SR modification begin - Sep. 24, 1997 - Patch 3
+\ifx\psk@thislevelsepmode\relax
+\pstree@horizlevelsepadjust
+\fi
+% DG/SR modification end
+\if@psrighttree
+\pst@dimh=\pst@dimg
+\pstree@max\pstree@therightprofile\pst@cntg
+\global\advance\pst@dimh\pst@cntg sp
+\global\pst@dimg=\pst@tempa sp
+\else
+\pstree@max\pstree@theleftprofile\pst@cntg
+\global\advance\pst@dimg\pst@cntg sp
+\global\pst@dimh=\pst@tempb sp
+\fi
+\if@skiplevel
+\skiplevel@horizontal
+\else
+\endgroup
+\fi
+\pst@dima=\pst@dimg
+\pst@dimb=\pst@dimh
+\edef\pstree@upprofile{\pst@tempc,\pstree@theupprofile}%
+\edef\pstree@downprofile{\pst@tempd,\pstree@thedownprofile}%
+\dp\pstree@box=\z@
+\ht\pstree@box=\z@
+\wd\pstree@box=\z@
+\ifpsshowbbox
+\pstree@max\pstree@upprofile\pst@cntg
+\pst@dimc=\pst@cntg sp
+\pstree@max\pstree@downprofile\pst@cntg
+\pst@dimd=\pst@cntg sp
+\pstree@showbbox
+\fi
+\pstree@restorevalues
+\pssubtree@horizontal
+\endgroup
+\ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+% DG/SR modification begin - Sep. 24, 1997 - Patch 2
+%\def\pstree@horizlevelsepadjust#1{%
+\def\pstree@horizlevelsepadjust{%
+% DG/SR modification end
+\ifx\if@filesw\iffalse\else
+\if@psrighttree
+\pst@dimh=\pst@tempb sp
+\pstree@max\pstree@theleftprofile\pst@cntg
+\advance\pst@dimh\pst@cntg sp
+\else
+\pst@dimh=\pst@tempa sp
+\pstree@max\pstree@therightprofile\pst@cntg
+\advance\pst@dimh\pst@cntg sp
+\fi
+\immediate\write\@auxout{%
+\string\pstree@levelsepadjust
+{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
+\fi}
+\def\psset@treemode#1{%
+\pst@cntg=
+\ifx#1U\@empty2\else\ifx#1R\@empty1\else\ifx#1L\@empty3\else0\fi\fi\fi
+\relax
+\edef\psk@treemode{\the\pst@cntg}%
+\ifcase\pst@cntg
+\let\pstree@do\pstree@down
+\or
+\let\pstree@do\pstree@right
+\or
+\let\pstree@do\pstree@up
+\or
+\let\pstree@do\pstree@left
+\fi}
+\def\psk@treemode{0}
+\let\pstree@do\pstree@down
+\def\psset@treesep#1{%
+\pssetlength\pst@dimg{#1}%
+\edef\psk@treesep{\number\pst@dimg}}%
+\psset@treesep{.75cm}
+\def\psset@thistreesep#1{%
+\pssetlength\pst@dimg{#1}%
+\edef\psk@thistreesep{\number\pst@dimg}}%
+\def\psset@treenodesize#1{%
+\pssetlength\pst@dimg{#1}%
+\ifdim\pst@dimg<\z@
+\let\psk@treenodesize\number
+\else
+\edef\psk@treenodesize{\number\pst@dimg\noexpand\@gobble}%
+\fi}
+\psset@treenodesize{-1pt}
+\def\psset@thistreenodesize#1{%
+\pssetlength\pst@dimg{#1}%
+\ifdim\pst@dimg<\z@
+\let\psk@thistreenodesize\number
+\else
+\edef\psk@thistreenodesize{\number\pst@dimg\noexpand\@gobble}%
+\fi}
+\def\psset@levelsep#1{%
+\pst@expandafter{\pst@ifstar\psset@@levelsep}{#1}\@nil}
+\def\psset@@levelsep#1\@nil{%
+\pst@@getlength{#1}\psk@levelsep
+\if@star
+\pstree@initlevelsepadjust
+\let\psk@levelsepmode\relax
+\else
+\def\psk@levelsepmode{}%
+\fi}
+\psset@levelsep{2cm}
+\def\psset@thislevelsep#1{%
+\pst@expandafter{\pst@ifstar\psset@@thislevelsep}{#1}\@nil}
+\def\psset@@thislevelsep#1\@nil{%
+\pst@@getlength{#1}\psk@thislevelsep
+\if@star
+\pstree@initlevelsepadjust
+\let\psk@thislevelsepmode\relax
+\else
+\def\psk@thislevelsepmode{}%
+\fi}
+\newif\ifpstreeflip
+\def\psset@treeflip#1{\@nameuse{pstreeflip#1}}
+\psset@treeflip{false}
+\def\pstree@node@o{%
+\leavevmode
+\hbox{%
+\vrule height \pst@dimc depth \pst@dimd width \z@
+\kern\pst@dima
+\box\pstree@box
+\kern\pst@dimb}}
+\def\pssubtree@vertical@o{%
+\pstree@max\pstree@leftprofile\pst@cntg
+\pst@dima=\pst@cntg sp
+\pstree@max\pstree@rightprofile\pst@cntg
+\pst@dimb=\pst@cntg sp
+\pstree@treebboxadjust
+\pstree@node}
+\def\pssubtree@horizontal@o{%
+\pstree@max\pstree@upprofile\pst@cntg
+\pst@dimc=\pst@cntg sp
+\pstree@max\pstree@downprofile\pst@cntg
+\pst@dimd=\pst@cntg sp
+\pstree@treebboxadjust
+\pstree@node}
+\def\pstree@outer{%
+\def\pstree@node{\pstree@node@o}%
+\def\pssubtree@vertical{\pssubtree@vertical@o}%
+\def\pssubtree@horizontal{\pssubtree@horizontal@o}%
+\pstreelevel=\z@
+\def\pstree@predmode{-1}%
+\def\pst@tposflip{}%
+\let\pst@thisbox\relax
+\let\pst@shortput\pstree@savedshortput}
+\let\pstree@savedshortput\ignorespaces
+\pstree@outer
+\newif\ifpsshowbbox
+\def\psset@showbbox#1{\@nameuse{psshowbbox#1}}%
+\psset@showbbox{false}
+\def\pstree@showbbox{%
+\setbox\pstree@box=\hbox{%
+\psframe[linewidth=0,linecolor=black,linestyle=solid,fillstyle=none]%
+(-\pst@dima,-\pst@dimd)(\pst@dimb,\pst@dimc)%
+\box\pstree@box}}%
+\def\psset@edge#1{%
+\def\psedge{#1}%
+\ifx\psedge\@none
+\def\psedge##1##2{}%
+\fi}
+\psset@edge{\ncline}
+\def\pspred{T}
+\def\pstree@makenodebox{%
+\pst@@killglue
+\let\pst@thispsbox\pstree@outer
+\pst@makebox}
+\def\begin@treenode{%
+\pst@@killglue
+\begingroup
+\use@par
+\global\let\pstree@edge\psedge
+\xdef\pssucc{\pspred-\the\psnodecnt}}
+\def\MakeShortTnput#1{%
+\def\end@treenode{\@ifnextchar#1{\tnput@}{\end@@treenode}}}
+\MakeShortTnput{~}
+\def\end@@treenode{%
+\pstree@bboxadjust
+\gdef\pstree@bboxadjust{}%
+\ifpsshowbbox\pstree@showbbox\fi
+\pstree@node
+\endgroup
+\ifnum\pstreelevel>\z@
+\pstree@edge{\pspred}{\pssucc}%
+\expandafter\pst@shortput
+\else
+\expandafter\ignorespaces
+\fi}
+\def\pstree@bboxadjust{}
+\def\pstree@setbboxadjust#1#2{%
+\pssetlength\pst@dimg{#1}%
+\xdef\pstree@bboxadjust{%
+\pstree@bboxadjust
+#2\number\pst@dimg sp\relax}}
+\def\psset@bbl#1{\pstree@setbboxadjust{#1}{\pst@dima=}}
+\def\psset@bbr#1{\pstree@setbboxadjust{#1}{\pst@dimb=}}
+\def\psset@bbh#1{\pstree@setbboxadjust{#1}{\pst@dimc=}}
+\def\psset@bbd#1{\pstree@setbboxadjust{#1}{\pst@dimd=}}
+\def\psset@xbbl#1{\pstree@setbboxadjust{#1}{\advance\pst@dima}}
+\def\psset@xbbr#1{\pstree@setbboxadjust{#1}{\advance\pst@dimb}}
+\def\psset@xbbh#1{\pstree@setbboxadjust{#1}{\advance\pst@dimc}}
+\def\psset@xbbd#1{\pstree@setbboxadjust{#1}{\advance\pst@dimd}}
+\let\pstree@treebboxadjust\relax
+\def\Tn{\def\pst@par{}\pst@object{Tn}}
+\def\Tn@i{%
+\pst@@killglue
+\global\let\pssucc\pspred
+\begingroup
+\pst@dima=\z@
+\pst@dimb=\z@
+\pst@dimc=\z@
+\pst@dimd=\z@
+\setbox\pstree@box=\hbox{}%%
+\pstree@node
+\endgroup
+\ignorespaces}
+\def\Tp{\def\pst@par{}\pst@object{Tp}}
+\def\Tp@i{%
+\begin@treenode
+\pst@dima=\z@
+\pst@dimb=\z@
+\pst@dimc=\z@
+\pst@dimd=\z@
+\setbox\pstree@box=\hbox{%
+\pst@newnode{\pssucc}{10}{0 0 }{\tx@InitPnode}}%
+\end@treenode}
+\def\Tc{\def\pst@par{}\pst@object{Tc}}
+\def\Tc@i#1{%
+\begin@treenode
+\pssetlength\pst@dima{#1}%
+\pst@dimb=\pst@dima
+\pst@dimc=\pst@dima
+\pst@dimd=\pst@dima
+\nodealignfalse
+\setbox\pstree@box=\hbox{\cnode@ii(\z@,\z@){#1}{\pssucc}}%
+\end@treenode}
+\def\TC{\def\pst@par{}\pst@object{TC}}
+\def\TC@i{\Tc@i{\psk@radius}}
+\def\Toval{\def\pst@par{}\pst@object{Toval}}
+\def\Toval@i{\pstree@makenodebox{\Toval@ii\ovalnode@ii}}
+\def\Toval@ii#1{%
+ \begin@treenode
+ \nodealigntrue
+ \setbox\pstree@box=\hbox{#1\pssucc}%
+ \pst@dima=\wd\pstree@box
+ \divide\pst@dima 2
+ \pst@dimb=\pst@dima
+ \pst@dimc=\ht\pstree@box
+ \pst@dimd=\dp\pstree@box
+ \setbox\pstree@box=\hbox to\z@{\hss\unhbox\pstree@box\hss}%
+ \dp\pstree@box=\z@
+ \ht\pstree@box=\z@
+ \end@treenode%
+}
+%
+\def\Tcircle{\def\pst@par{}\pst@object{Tcircle}}
+\def\Tcircle@i{\pstree@makenodebox{\Toval@ii\circlenode@ii}}
+% DG/SR modification begin - Mar. 7, 2003 - Patch 6
+\def\TCircle{\pst@object{TCircle}}
+\def\TCircle@i{\pst@@killglue\pst@makebox{\Toval@ii\Circlenode@ii}}
+% DG/SR modification end
+%
+\def\Tf{\def\pst@par{}\pst@object{Tf}}
+\def\Tf@i{\Toval@ii{\fnode@ii()}}
+\def\Tdia{\def\pst@par{}\pst@object{Tdia}}
+\def\Tdia@i{\pstree@makenodebox{\Toval@ii\dianode@ii}}
+\def\Ttri{\def\pst@par{}\pst@object{Ttri}}
+\def\Ttri@i{\pstree@makenodebox{\Ttri@ii}}
+\def\Ttri@ii{%
+ \begin@treenode
+ \nodealigntrue
+ \setbox\pstree@box=\hbox{\trinode@ii\pssucc}%
+ \pst@dima=\pst@dimg % Set by \pst@triboxsep
+ \pst@dimb=\wd\pstree@box
+ \advance\pst@dimb-\pst@dima
+ \pst@dimc=\ht\pstree@box
+ \pst@dimd=\dp\pstree@box
+ \setbox\pstree@box=\hbox to\z@{\hss\unhbox\pstree@box\hss}%
+ \dp\pstree@box=\z@
+ \ht\pstree@box=\z@
+ \end@treenode%
+}
+\def\Tr{\def\pst@par{}\pst@object{Tr}}
+% SR modification begin - Oct. 27, 1996
+%\def\Tr@i{\pstree@makenodebox{\Tr@ii{\begingroup\rnode@ii}}}
+\def\Tr@i{\pstree@makenodebox{\Tr@ii{\rnode@iii\rnode@iv}}}
+% SR modification end
+\def\Tr@ii#1{%
+\begin@treenode
+\def\pstree@nodehook{%
+\xdef\pstree@next{\pst@dima=\number\pst@dima sp\relax}}%
+\nodealigntrue
+\setbox\pstree@box\hbox{#1\pssucc}%
+\pstree@next
+\pst@dimb=\wd\pstree@box
+\advance\pst@dimb-\pst@dima
+\pst@dimc=\ht\pstree@box
+\pst@dimd=\dp\pstree@box
+\setbox\pstree@box\hbox to\z@{\kern-\pst@dima\unhbox\pstree@box\hss}%
+\ht\pstree@box=\z@
+\dp\pstree@box=\z@
+\end@treenode}
+\def\TR{\def\pst@par{}\pst@object{TR}}
+% DG modification begin - Oct. 25, 1996
+%\def\TR@i{\pstree@makenodebox{\Tr@ii{\Rnode@ii}}}
+\def\TR@i{\pstree@makenodebox{\Tr@ii{\rnode@iii\Rnode@ii}}}
+% DG modification end
+\def\Tdot{\def\pst@par{}\pst@object{Tdot}}
+\def\Tdot@i{%
+\begin@treenode
+\def\pstree@nodehook{\xdef\pstree@next{%
+\pst@dima=\number\pst@dima sp\relax
+\pst@dimc=\number\pst@dimb sp\relax}}%
+\nodealignfalse
+\setbox\pstree@box=\hbox{\dotnode@ii(\z@,\z@)\pssucc}%
+\pstree@next
+\pst@dimb=\pst@dima
+\pst@dimd=\pst@dimc
+\end@treenode}
+\def\psset@fansize#1{\pst@@getlength{#1}\psk@fansize}
+\psset@fansize{1cm}
+\def\Tfan{\def\pst@par{}\pst@object{Tfan}}
+\def\Tfan@i{%
+\addto@par{edge=none}%
+\begin@treenode
+\solid@star
+\pst@dimb=\psk@fansize
+\pst@dimd=\pslinewidth
+\advance\pst@dimb-\pst@dimd
+\divide\pst@dimb 2
+\divide\pst@dimd 2
+\ifodd\psk@treemode\relax
+\pst@dima=\pst@dimd
+\pst@dimc=\pst@dimb
+\else
+\pst@dima=\pst@dimb
+\pst@dimc=\pst@dimd
+\fi
+\setbox\pstree@box=\hbox{%
+\pst@newnode{\pssucc}{16}{}{%
+/Y 0 def
+/X 0 def
+/l \pst@number\pst@dima def
+/r l def
+/u \pst@number\pst@dimc def
+/d u def
+/NodePos { \tx@GetRnodePos } def}%
+\def\pst@linetype{1}%
+\nc@object{Closed}{\pspred}{\pssucc}{.5}{%
+tx@Dict begin \psline@iii pop end
+/w \pst@number\pst@dimb CLW 2 div sub def
+/m \ifodd\psk@treemode false \else true \fi def
+\tx@Tfan}}%
+\pst@dimb=\pst@dima
+\pst@dimd=\pst@dimc
+\end@treenode}
+\def\psset@tnsep#1{%
+\def\pst@tempg{#1}%
+\ifx\pst@tempg\@empty
+\def\psk@tnsep{\number\pslabelsep sp}%
+\else
+\pst@@getlength{#1}\psk@tnsep
+\fi}
+\psset@tnsep{}
+\def\psset@tnyref#1{\def\psk@tnyref{#1}}%
+\psset@tnyref{}
+\def\psset@tnheight#1{\edef\psk@tnheight{#1}}
+\psset@tnheight{\ht\strutbox}
+\def\psset@tndepth#1{\edef\psk@tndepth{#1}}
+\psset@tndepth{\dp\strutbox}
+\def\psset@tnpos#1{%
+\def\pst@tempg{#1}%
+\ifx\pst@tempg\@empty
+\def\psk@tnpos{%
+\ifcase\psk@treemode b\or r\or a\or l\fi}%
+\else
+\@ifundefined{pstree@tnput@#1}%
+{\@pstrickserr{Bad tnpos: `#1'}\@ehpa}%
+{\edef\psk@tnpos{#1}}%
+\fi}
+\psset@tnpos{}
+\def\tnput@#1{\def\pst@par{}\pst@object{tnput}}
+\def\tnput@i{\pstree@makenodebox{\tnput@ii}}
+\def\tnput@ii{%
+\begingroup
+\use@par
+\xdef\next{%
+\if@star\noexpand\pst@starbox\fi
+\noexpand\def\noexpand\psk@thistndepth{\psk@tndepth}%
+\noexpand\def\noexpand\psk@thistnheight{\psk@tnheight}%
+\noexpand\def\noexpand\psk@thistnyref{\psk@tnyref}%
+\noexpand\def\noexpand\psk@thistnsep{\psk@tnsep}%
+\expandafter\noexpand\csname pstree@tnput@\psk@tnpos\endcsname}%
+\endgroup
+\next
+\end@treenode}
+\@namedef{pstree@tnput@b}{%
+\pstree@tnput@@v\pst@dimd\ht\dp\lower\psk@thistnheight}
+\@namedef{pstree@tnput@a}{%
+\pstree@tnput@@v\pst@dimc\dp\ht\raise\psk@thistndepth}
+\def\pstree@tnput@@v#1#2#3#4#5{%
+\pst@dimh=\wd\pst@hbox
+\pst@dimg=\psk@href\pst@dimh
+\advance\pst@dimg\pst@dimh
+\divide\pst@dimg 2
+\advance\pst@dimh-\pst@dimg
+\ifdim\pst@dimg>\pst@dima
+\pst@dima=\pst@dimg
+\fi
+\ifdim\pst@dimh>\pst@dimb
+\pst@dimb=\pst@dimh
+\fi
+\pst@dimh=\psk@thistnsep\relax
+\ifdim\pst@dimh<\z@
+\pst@dimh=-\pst@dimh
+\else
+\advance\pst@dimh#1%
+\fi
+\pssetlength\dimen@{#5}%
+\ifdim\dimen@>#2\pst@hbox
+\advance\pst@dimh\dimen@\relax
+\else
+\advance\pst@dimh#2\pst@hbox
+\fi
+\setbox\pstree@box=\hbox{%
+\box\pstree@box
+#4\pst@dimh\hbox to\z@{\kern-\pst@dimg\unhbox\pst@hbox\hss}}%
+#1=#3\pstree@box
+\dp\pstree@box=\z@
+\ht\pstree@box=\z@}
+\@namedef{pstree@tnput@l}{%
+\pstree@tnput@@h\pst@dima{%
+\hss
+\lower\pst@dimg\box\pst@hbox
+\kern\pst@dimh
+\box\pstree@box}}
+\@namedef{pstree@tnput@r}{%
+\pstree@tnput@@h\pst@dimb{%
+\box\pstree@box
+\kern\pst@dimh
+\lower\pst@dimg\box\pst@hbox
+\hss}}%
+\def\pstree@tnput@@h#1#2{%
+\ifx\psk@thistnyref\@empty
+\pssetlength\pst@dimg\psk@vref
+\else
+\pst@dimg=\ht\pst@hbox
+\advance\pst@dimg\dp\pst@hbox
+\pst@dimg=\psk@thistnyref\pst@dimg
+\advance\pst@dimg-\dp\pst@hbox
+\fi
+\pst@dimh=\psk@thistnsep\relax
+\ifdim\pst@dimh<\z@
+\pst@dimh=-\pst@dimh
+\else
+\advance\pst@dimh#1%
+\fi
+#1=\pst@dimh
+\advance#1\wd\pst@hbox
+\setbox\pstree@box=\hbox to\z@{#2}%
+\ifdim\ht\pstree@box>\pst@dimc
+\pst@dimc=\ht\pstree@box
+\fi
+\ifdim\dp\pstree@box>\pst@dimd
+\pst@dimd=\dp\pstree@box
+\fi
+\dp\pstree@box=\z@
+\ht\pstree@box=\z@}
+\newif\if@skiplevel
+\def\skiplevel{\def\pst@par{}\pst@object{skiplevel}}
+\def\skiplevel@i{\def\pstree@makebox{\pst@@makebox}\skiplevel@ii}
+\def\skiplevel@ii{%
+\pst@@killglue
+\begingroup
+\let\pssucc\pspred
+\def\pst@tempa{0}%
+\def\pst@tempb{0}%
+\def\pst@tempc{0}%
+\def\pst@tempd{0}%
+\setbox\pstree@rootbox=\hbox{}%
+\pstree@savevalues
+\begingroup
+\pstree@initsuccvalues
+\pstree@setlevelpar
+\@skipleveltrue
+\pstree@do}
+% DG/SR modification begin - Aug. 31, 1999 - Patch 4
+%\def\pstree@gettop#1{\expandafter\pstree@@gettop#1\@nil}
+%\def\pstree@@gettop#1,#2\@nil{#1}
+% DG/SR modification end
+\def\skiplevel@horizontal{%
+% DG/SR modification begin - Aug. 31, 1999 - Patch 4
+%\pst@dimc=\pstree@gettop\pstree@theupprofile sp
+%\pst@dimd=\pstree@gettop\pstree@thedownprofile sp
+\edef\pstree@upprofile{\pst@tempc,\pstree@theupprofile}%
+\edef\pstree@downprofile{\pst@tempd,\pstree@thedownprofile}%
+\pstree@max\pstree@upprofile\pst@cntg
+\pst@dimc=\pst@cntg sp
+\pstree@max\pstree@downprofile\pst@cntg
+\pst@dimd=\pst@cntg sp
+% DG/SR modification end
+\pstree@treebboxadjust
+\gdef\pstree@treebboxadjust{}%
+\xdef\pstree@next{%
+\noexpand\def\noexpand\pst@tempc{\number\pst@dimc}%
+\noexpand\def\noexpand\pst@tempd{\number\pst@dimd}}%
+\endgroup
+\pstree@next}
+\def\skiplevel@vertical{%
+% DG/SR modification begin - Aug. 31, 1999 - Patch 4
+%\pst@dima=\pstree@gettop\pstree@theleftprofile sp
+%\pst@dimb=\pstree@gettop\pstree@therightprofile sp
+\edef\pstree@leftprofile{\pst@tempa,\pstree@theleftprofile}%
+\edef\pstree@rightprofile{\pst@tempb,\pstree@therightprofile}%
+\pstree@max\pstree@leftprofile\pst@cntg
+\pst@dima=\pst@cntg sp
+\pstree@max\pstree@rightprofile\pst@cntg
+\pst@dimb=\pst@cntg sp
+% DG/SR modification end
+\pstree@treebboxadjust
+\gdef\pstree@treebboxadjust{}%
+\xdef\pstree@next{%
+\noexpand\def\noexpand\pst@tempa{\number\pst@dima}%
+\noexpand\def\noexpand\pst@tempb{\number\pst@dimb}}%
+\endgroup
+\pstree@next}
+\def\skiplevels{\def\pst@par{}\pst@object{skiplevels}}
+\def\skiplevels@i#1{%
+\pst@@killglue
+\begingroup
+\pst@cnta=#1\relax
+\edef\skiplevels@num{\the\pst@cnta}%
+\def\pstree@makebox{\pst@makelongbox}%
+\def\endskiplevels{}%
+\loop
+\ifnum\pst@cnta>\z@
+\advance\pst@cnta-1
+\expandafter\def\expandafter\endskiplevels\expandafter{%
+\endskiplevels\pst@endlongbox}
+\skiplevel@ii
+\repeat
+\expandafter\def\expandafter\endskiplevels\expandafter{%
+\endskiplevels\endgroup\ignorespaces}
+\ignorespaces}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END: pst-tree.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.con b/Master/texmf-dist/tex/generic/pstricks/pstricks.con
new file mode 100644
index 00000000000..a477a0fcbe0
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.con
@@ -0,0 +1,44 @@
+%% BEGIN: pstricks.con (for dvips driver)
+%%
+%% Configuration file for PSTricks 97
+%%
+%% Version 97 patch 2 (1997/04/28)
+%%
+%% For use with Rokicki's dvips (tested with v5.74 and older)
+
+\def\pstdriver{Rokicki's dvips}
+{\catcode`\"=12\gdef\pstverb#1{\special{" #1}}} % Check catcode of "
+\def\pstunit{1bp}%
+\def\pstVerb#1{\special{ps: #1}}
+\def\pstverbscale{SDict begin normalscale end}
+% DG/SR modification begin - Apr. 28, 1997 (D. Carlisle + S. Rahtz)
+% \def\pstheader#1{\special{header=#1}}
+% We used to check for |\AtBeginDvi|, but that was broken in early release
+% so we now check for the existence of |\textsuperscript| (added 1995/05/16)
+\ifx\textsuperscript\@undefined
+ \def\pstheader#1{\special{header=#1}}
+\else
+ \ifx\Gin@PS@file@header\@undefined
+ \def\pstheader#1{\AtBeginDvi{\special{header=#1}}}
+ \else
+ \let\pstheader\Gin@PS@file@header
+ \fi
+\fi
+% DG/SR modification end
+%%
+%% In the following, CP is short for currentpoint.
+%% The neg is necessary because dvips scales the coordinates by 1 -1.
+%% \tx@NET means neg exch neg exch translate.
+\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET}
+%%
+%% ****************** END Rokicki's dvips *****************************
+
+%%%%%%%%%%%%%%%%%%% !! CUSTOMIZATION STUFF GOES HERE: !! %%%%%%%%%%%%%%%%%%
+%% If you want to include your own customizations to pstricks.tex, then
+%% uncomment the \pstcustomize command, and include your modifications
+%% after \pstcustomize. These will be read in after pstricks.tex.
+%\pstcustomize
+
+\endinput
+%%
+%% END: pstricks.con
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
new file mode 100644
index 00000000000..dc3ea08413c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
@@ -0,0 +1,3065 @@
+%% pstricks.tex
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% COPYRIGHT 2000-2003 by Denis Girou.
+%% Copyright 2004-2005 Herbert Voss
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Herbert Voss
+%
+% This work consists of the file pstricks.tex, PostScript macros
+% for Generic TeX.
+% See the PSTricks User's Guide for description.
+% This uses the header file `pstricks.pro'.
+%
+\def\fileversion{1.12}
+\def\filedate{2005/10/25}
+%
+\csname PSTricksLoaded\endcsname
+\let\PSTricksLoaded\endinput
+\edef\PstAtCode{\the\catcode`\@}
+\catcode`\@=11\relax
+\expandafter\ifx\csname @latexerr\endcsname\relax
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+\def\@namedef#1{\expandafter\def\csname #1\endcsname}
+\def\@nameuse#1{\csname #1\endcsname}
+\def\@eha{%
+ Your command was ignored.^^J
+ Type \space I <command> <return> \space to replace
+ it with another command,^^J
+ or \space <return> \space to continue without it.}
+\def\@spaces{\space\space\space\space}
+\def\typeout#1{\immediate\write\@unused{#1}}
+\alloc@7\write\chardef\sixt@@n\@unused
+\def\@empty{}
+\def\@gobble#1{}
+\def\@nnil{\@nil}
+\def\@ifnextchar#1#2#3{%
+\let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch}
+\def\@ifnch{%
+ \ifx\@tempc\@sptoken
+ \let\@tempd\@xifnch
+ \else
+ \ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi
+ \fi
+ \@tempd}
+\begingroup
+\def\:{\global\let\@sptoken= } \:
+\def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch}
+\endgroup
+\fi
+\typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)}
+\def\@pstrickserr#1#2{%
+ \begingroup
+ \newlinechar`\^^J
+ \edef\pst@tempc{#2}%
+ \expandafter\errhelp\expandafter{\pst@tempc}%
+ \typeout{%
+ PSTricks error. \space See User's Guide for further information.^^J
+ \@spaces\@spaces\@spaces\@spaces
+ Type \space H <return> \space for immediate help.}%
+ \errmessage{#1}%
+ \endgroup}
+\def\@ehpa{%
+ Your command was ignored. Default value substituted.^^J
+ Type \space <return> \space to procede.}
+\def\@ehpb{%
+ Your command was ignored. Will recover best I can.^^J
+ Type \space <return> \space to procede.}
+\def\@ehpc{%
+ You better fix this before proceding.^^J
+ See the PSTricks User's Guide or ask your system administrator for help.^^J
+ Type \space X <return> \space to quit.}
+\def\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb}
+\newdimen\pst@dima
+\newdimen\pst@dimb
+\newdimen\pst@dimc
+\newdimen\pst@dimd
+\newdimen\pst@dimg
+\newdimen\pst@dimh
+\newbox\pst@hbox
+\newbox\pst@boxg
+\newcount\pst@cnta
+\newcount\pst@cntb
+\newcount\pst@cntc
+\newcount\pst@cntd
+\newcount\pst@cntg
+\newcount\pst@cnth
+\newif\if@pst
+\newtoks\pst@toks
+\newif\if@star
+\def\pst@ifstar#1{%
+ \@ifnextchar*{\@startrue\def\next*{#1}\next}{\@starfalse#1}}
+\def\pst@expandafter#1#2{%
+ \def\next{#1}%
+ \edef\@tempa{#2}%
+ \ifx\@tempa\@empty
+ \@pstrickserr{Unexpected empty argument!}\@ehpb
+ \def\@tempa{\@empty}%
+ \fi
+ \expandafter\next\@tempa}
+\def\pst@dimtonum#1#2{\edef#2{\pst@@dimtonum#1}}
+\def\pst@@dimtonum#1{\expandafter\pst@@@dimtonum\the#1}
+{\catcode`\p=12 \catcode`\t=12 \global\@namedef{pst@@@dimtonum}#1pt{#1}}
+%
+\def\pst@pyth#1#2#3{% from pst-3d
+ \begingroup
+ \pst@dima=#1\relax
+ \ifnum\pst@dima<\z@\pst@dima=-\pst@dima\fi % dima=abs(x)
+ \pst@dimb=#2\relax
+ \ifnum\pst@dimb<\z@\pst@dimb=-\pst@dimb\fi % dimb=abs(y)
+ \advance\pst@dimb\pst@dima % dimb=s=abs(x)+abs(y)
+ \ifnum\pst@dimb=\z@
+ \global\pst@dimg=\z@ % dimg=z=sqrt(x^2+y^2)
+ \else
+ \multiply\pst@dima 8\relax % dima= 8abs(x)
+ \pst@@divide\pst@dima\pst@dimb % dimg =8t=8abs(x)/s
+ \advance\pst@dimg -4pt % dimg = 4tau = (8t-4)
+ \multiply\pst@dimg 2
+ \pst@dimtonum\pst@dimg\pst@tempa
+ \pst@dima=\pst@tempa\pst@dimg % dima=(8tau)^2
+ \advance\pst@dima 64pt % dima=u=[64+(8tau)^2]/2
+ \divide\pst@dima 2\relax % =(8f)^2
+ \pst@dimd=7pt % initial guess at sqrt(u)
+ \pst@@pyth\pst@@pyth\pst@@pyth % dimd=sqrt(u)
+ \pst@dimtonum\pst@dimd\pst@tempa
+ \pst@dimg=\pst@tempa\pst@dimb
+ \global\divide\pst@dimg 8 % dimg=z=(8f)*s/8
+ \fi
+ \endgroup
+ #3=\pst@dimg}
+\def\pst@@pyth{% dimd = g <-- (g + u/g)/2
+ \pst@@divide\pst@dima\pst@dimd
+ \advance\pst@dimd\pst@dimg
+ \divide\pst@dimd 2\relax}
+%
+% ----- the old pst@pyth begin -----
+\iffalse
+\def\pst@pyth#1#2#3{\ifdim#1>#2\pst@@pyth#1#2#3\else\pst@@pyth#2#1#3\fi}
+\def\pst@@pyth#1#2#3{%
+ \ifdim4#1>9#2%
+ #3=#1\advance#3 .2122#2%
+ \else
+ #3=.8384#1\advance#3 .5758#2%
+ \fi%
+}
+\fi
+% ----- the old pst@pyth end -----
+%
+\def\pst@divide#1#2#3{%
+ \pst@@divide{#1}{#2}%
+ \pst@dimtonum\pst@dimg{#3}%
+}
+\def\pst@@divide#1#2{%
+ \pst@dimg=#1\relax
+ \pst@dimh=#2\relax
+ \pst@cntg=\pst@dimh
+ \pst@cnth=67108863
+ \pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide
+ \divide\pst@dimg\pst@cntg%
+}
+\def\pst@@@divide{%
+ \ifnum
+ \ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cnth
+ \multiply\pst@dimg\sixt@@n
+ \else
+ \divide\pst@cntg\sixt@@n
+ \fi%
+}
+\def\pst@configerr#1{%
+ \@pstrickserr{\string#1 not defined in pstricks.con}\@ehpc}
+%
+\def\pstVerb#1{\pst@configerr\pstVerb}
+\def\pstverb#1{\pst@configerr\pstverb}
+\def\pstverbscale{\pst@configerr\pstverbscale}
+\def\pstrotate{\pst@configerr\pstrotate}
+\def\pstheader#1{\pst@configerr\pstheader}
+\def\pstdriver{\pst@configerr\pstdriver}
+\@ifundefined{pstcustomize}%
+{\def\pstcustomize{\endinput\let\pstcustomize\relax}}{}
+\input pstricks.con
+\newif\ifPSTricks
+\PSTrickstrue
+\def\PSTricksOff{%
+ \def\pstheader##1{}%
+ \def\pstverb##1{}%
+ \def\pstVerb##1{}%
+ \PSTricksfalse%
+}
+\@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{}
+\@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{}
+\pstheader{pstricks.pro}
+\def\pst@dict{tx@Dict begin }
+\def\pst@theheaders{pstricks.pro}
+\def\pst@Verb#1{\pstVerb{\pst@dict #1 end}}
+\def\tx@Atan{Atan }
+\def\tx@Div{Div }
+\def\tx@NET{NET }
+\def\tx@Pyth{Pyth }
+\def\tx@PtoC{PtoC }
+\def\tx@PathLength@{PathLength@ }
+\def\tx@PathLength{PathLength }
+\pst@dimg=\pstunit\relax
+\ifdim\pst@dimg=1bp
+\def\pst@stp{.996264 dup scale}
+\else
+\edef\pst@stp{1 \pst@@dimtonum\pst@dimg\space div dup scale}
+\fi
+\def\tx@STP{STP }
+\def\tx@STV{STV }
+\def\pst@number#1{\pst@@dimtonum#1\space}
+\def\pst@checknum#1#2{%
+ \edef\next{#1}%
+ \ifx\next\@empty
+ \let\pst@num\z@
+ \else
+ \expandafter\pst@@checknum\next..\@nil
+ \fi
+ \ifnum\pst@num=\z@
+ \@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa
+ \def#2{0 }%
+ \else
+ \edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.%
+ \expandafter\@gobble\the\pst@cnth\space}%
+ \fi}
+\def\pst@@checknum{%
+ \@ifnextchar-%
+ {\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}%
+ {\let\pst@num\@ne\pst@@@checknum}%
+}
+\def\pst@@@checknum#1.#2.#3\@nil{%
+\afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil
+\afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil}
+\def\pst@@@@checknum#1\relax\@nil{%
+\ifx\@nil#1\@nil\else\let\pst@num\z@\fi}
+\def\pst@getnumii#1 #2 #3\@nil{%
+\pst@checknum{#1}\pst@tempg
+\pst@checknum{#2}\pst@temph}
+\def\pst@getnumiii#1 #2 #3 #4\@nil{%
+\pst@checknum{#1}\pst@tempg
+\pst@checknum{#2}\pst@temph
+\pst@checknum{#3}\pst@tempi}
+\def\pst@getnumiv#1 #2 #3 #4 #5\@nil{%
+\pst@checknum{#1}\pst@tempg
+\pst@checknum{#2}\pst@temph
+\pst@checknum{#3}\pst@tempi
+\pst@checknum{#4}\pst@tempj}
+\def\pst@getdimnum#1 #2 #3\@nil{%
+ \pssetlength\pst@dimg{#1}%
+ \pst@checknum{#2}\pst@tempg%
+}
+% DG/SR modification begin - Jan. 7, 1998 - Patch 9
+% Missing from pstricks.bug 0.93
+%\def\pst@getscale#1#2{%
+%\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil
+%\@psttrue
+%\ifdim\pst@tempg\p@=\z@
+%\@pstrickserr{Bad scaling argument `#1'}\@ehpa
+%\def\pst@tempg{1 }%
+%\@pstfalse
+%\fi
+%\ifdim\pst@temph\p@=\z@
+%\if@pst\@pstrickserr{Bad scaling argument `#1'}\@ehpa\fi
+%\def\pst@temph{1 }%
+%\fi
+%\edef#2{\pst@tempg\space \pst@temph\space scale }%
+%\ifdim\pst@tempg\p@=\p@ \ifdim\pst@temph\p@=\p@
+%\def#2{}%
+%\fi\fi}
+\def\pst@getscale#1#2{%
+ \edef\pst@tempg{#1}%
+ \ifx\pst@tempg\@none
+ \def#2{}%
+ \else
+ \pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil
+ \ifdim\pst@tempg\p@=\z@
+ \@pstrickserr{Bad scaling argument `#1'}\@ehpa
+ \def#2{}%
+ \else
+ \ifdim\pst@temph\p@=\z@
+ \@pstrickserr{Bad scaling argument `#1'}\@ehpa
+ \def#2{}%
+ \else
+ \edef#2{\pst@tempg\space \pst@temph\space scale }%
+ \fi
+ \fi
+ \fi%
+}
+% DG/SR modification end
+\def\pst@getint#1#2{%
+ \pst@cntg=#1\relax
+ \edef#2{\the\pst@cntg\space}%
+}
+\begingroup
+\catcode`\{=12
+\catcode`\}=12
+\catcode`\[=1
+\catcode`\]=2
+\gdef\pslbrace[{ ]
+\gdef\psrbrace[} ]
+\endgroup
+\def\@newcolor#1#2{%
+\expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}%
+\expandafter\edef\csname color@#1\endcsname{#2}%
+\ignorespaces}
+\def\pst@color#1{%
+\def\pst@currentcolor{#1}\pstVerb{#1}\aftergroup\pst@endcolor}
+\def\pst@endcolor{\pstVerb{\pst@currentcolor}}
+\def\pst@currentcolor{0 setgray}
+\def\altcolormode{%
+\def\pst@color##1{%
+\pstVerb{gsave ##1}\aftergroup\pst@endcolor}%
+\def\pst@endcolor{\pstVerb{\pst@grestore}}}
+\def\pst@grestore{%
+ currentpoint
+ matrix currentmatrix
+ currentfont
+ grestore
+ setfont
+ setmatrix
+ moveto
+}
+\def\pst@usecolor#1{\csname color@#1\endcsname\space}
+\def\newgray#1#2{%
+ \pst@checknum{#2}\pst@tempg
+ \@newcolor{#1}{\pst@tempg setgray}%
+}
+\def\newrgbcolor#1#2{%
+ \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
+ \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}%
+}
+\def\newhsbcolor#1#2{%
+ \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
+ \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}%
+}
+\def\newcmykcolor#1#2{%
+ \pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil
+ \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}%
+}
+\newgray{black}{0}
+\newgray{darkgray}{.25}
+\newgray{gray}{.5}
+\newgray{lightgray}{.75}
+\newgray{white}{1}
+\newrgbcolor{red}{1 0 0}
+\newrgbcolor{green}{0 1 0}
+\newrgbcolor{blue}{0 0 1}
+\newrgbcolor{yellow}{1 1 0}
+\newrgbcolor{cyan}{0 1 1}
+\newrgbcolor{magenta}{1 0 1}
+\def\psset#1{\@psset#1,\@nil\ignorespaces}
+\def\@psset#1,{%
+ \@@psset#1==\@nil%
+ \@ifnextchar\@nil{\@gobble}{\@psset}%
+}
+\def\@@psset#1=#2=#3\@nil{%
+ \@ifundefined{psset@#1}%
+ {\@pstrickserr{Graphics parameter `#1' not defined.}\@ehpa}%
+ {\@nameuse{psset@#1}{#2}}%
+}%
+\def\psset@style#1{%
+ \@ifundefined{pscs@#1}%
+ {\@pstrickserr{Custom style `#1' undefined}\@ehpa}%
+ {\@nameuse{pscs@#1}}%
+}
+%\def\newpsstyle#1#2{\@namedef{pscs@#1}{\psset{#2}}}
+%------------ hv 1.10 beg -------------------
+\def\newpsstyle#1#2{\@namedef{pscs@#1}{%
+ \def\pst@tempa{#2}%
+ \ifx\pst@tempa\@empty\else\psset{#2}\fi}}
+%------------ hv 1.10 end -------------------
+\def\@none{none}
+\def\pst@getcolor#1#2{%
+ \@ifundefined{color@#1}%
+ {\@pstrickserr{Color `#1' not defined}\@eha}%
+ {\edef#2{#1}}%
+}
+\newdimen\psunit \psunit 1cm
+\newdimen\psxunit \psxunit 1cm
+\newdimen\psyunit \psyunit 1cm
+\let\psrunit\psunit
+\def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces}
+\def\pssetlength#1#2{%
+ \let\@psunit\psunit
+ \afterassignment\pstunit@off
+ #1 #2\@psunit%
+}
+\def\psaddtolength#1#2{%
+ \let\@psunit\psunit
+ \afterassignment\pstunit@off
+ \advance#1 #2\@psunit%
+}
+\def\pssetxlength#1#2{%
+ \let\@psunit\psxunit
+ \afterassignment\pstunit@off
+ #1 #2\@psunit%
+}
+\def\pssetylength#1#2{%
+ \let\@psunit\psyunit
+ \afterassignment\pstunit@off
+ #1 #2\@psunit%
+}
+\def\psset@unit#1{%
+ \pssetlength\psunit{#1}%
+ \psxunit=\psunit
+ \psyunit=\psunit%
+}
+\def\psset@runit#1{\pssetlength\psrunit{#1}}
+\def\psset@xunit#1{\pssetxlength\psxunit{#1}}
+\def\psset@yunit#1{\pssetylength\psyunit{#1}}
+% v 1.05 begin
+\def\psset@PstDebug#1{\pst@getint{#1}{\Pst@Debug}}% hv 2004-06-22
+\psset{PstDebug=0}
+% end
+\def\pst@getlength#1#2{%
+ \pssetlength\pst@dimg{#1}%
+ \edef#2{\pst@number\pst@dimg}%
+}
+\def\pst@@getlength#1#2{%
+ \pssetlength\pst@dimg{#1}%
+ \edef#2{\number\pst@dimg sp}%
+}
+\def\pst@getcoor#1#2{\pst@@getcoor{#1}\let#2\pst@coor}
+\def\pst@coor{0 0 }
+\def\pst@getcoors#1#2{%
+ \def\pst@aftercoors{\addto@pscode{#1 \pst@coors }#2}%
+ \def\pst@coors{}%
+ \pst@@getcoors%
+}
+\def\pst@@getcoors(#1){%
+ \pst@@getcoor{#1}%
+ \edef\pst@coors{\pst@coor\pst@coors}%
+ \@ifnextchar({\pst@@getcoors}{\pst@aftercoors}%
+}
+\def\pst@getangle#1#2{\pst@@getangle{#1}\let#2\pst@angle}
+\def\pst@angle{0 }
+\def\cartesian@coor#1,#2,#3\@nil{%
+ \pssetxlength\pst@dimg{#1}%
+ \pssetylength\pst@dimh{#2}%
+ \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}%
+}
+\def\NormalCoor{%
+ \def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}%
+ \def\pst@@getangle##1{%
+ \pst@checknum{##1}\pst@angle
+ \edef\pst@angle{\pst@angle \pst@angleunit}%
+ }%
+ \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}%
+}
+\NormalCoor
+\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}}
+\def\@degrees[#1]{%
+\pst@checknum{#1}\pst@tempg
+\edef\pst@angleunit{360 \pst@tempg div mul }%
+\ignorespaces}
+\def\radians{\def\pst@angleunit{57.2956 mul }}
+\def\pst@angleunit{}
+\def\SpecialCoor{%
+ \def\pst@@getcoor##1{%
+ \begingroup
+ \pst@activecoor
+ \xdef\pst@tempg{##1}%
+ \endgroup
+ \expandafter\special@coor\pst@tempg||\@nil%
+ }%
+ \def\pst@@getangle##1{%
+ \begingroup
+ \pst@activecoor
+ \xdef\pst@tempg{##1}%
+ \endgroup
+ \expandafter\special@angle\pst@tempg\@empty)\@nil%
+ }%
+ \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}%
+}
+\begingroup
+\catcode`\|=13
+\catcode`\;=13
+\catcode`\!=13
+\gdef\pst@activecoor{%
+ \def|{\string|}%
+ \def;{\string;}%
+ \def!{\string!}%
+}
+\endgroup
+\def\special@coor#1|#2|#3\@nil{%
+ \ifx#3|\relax
+ \mixed@coor{#1}{#2}%
+ \else
+ \special@@coor#1;;\@nil
+ \fi%
+}
+\def\special@@coor#1{%
+ \ifcat#1a\relax
+ \def\next{\node@coor#1}%
+ \else
+ \ifx#1[\relax
+ \def\next{\Node@coor[}%
+ \else
+ \ifx#1!\relax
+ \def\next{\raw@coor}%
+ \else
+ \def\next{\special@@@coor#1}%
+ \fi
+ \fi
+ \fi
+ \next%
+}
+\def\special@@@coor#1;#2;#3\@nil{%
+ \ifx#3;\relax
+ \polar@coor{#1}{#2}%
+ \else
+ \cartesian@coor#1,\relax,\@nil
+ \fi%
+}
+\def\mixed@coor#1#2{%
+ \begingroup
+% DG/SR modification begin - Oct. 27, 1997 - Patch 6
+%\specialcoor@ii#1;;\@nil
+%\let\pst@tempa\pst@coor
+%\specialcoor@ii#2;;\@nil
+ \special@@coor#1;;\@nil
+ \let\pst@tempa\pst@coor
+ \special@@coor#2;;\@nil
+% DG/SR modification end
+ \xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }%
+ \endgroup
+ \let\pst@coor\pst@tempg%
+}
+\def\polar@coor#1#2{%
+ \pssetlength\pst@dimg{#1}%
+ \pst@@getangle{#2}%
+ \edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}%
+}
+\def\raw@coor#1;#2\@nil{%
+ \edef\pst@coor{%
+ #1 \pst@number\psyunit mul exch \pst@number\psxunit mul exch }%
+}
+\def\node@coor#1\@nil{%
+ \@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps
+ \def\pst@coor{0 0 }%
+}
+\def\Node@coor{\node@coor}
+\def\special@angle#1#2)#3\@nil{%
+\ifx!#1\relax
+\edef\pst@angle{#2 \pst@angleunit}%
+\else
+\ifx(#1\relax
+\pst@@getcoor{#2}%
+\edef\pst@angle{\pst@coor exch \tx@Atan}%
+\else
+\pst@checknum{#1#2}\pst@angle
+\edef\pst@angle{\pst@angle \pst@angleunit}%
+\fi
+\fi}
+\def\Cartesian{%
+ \def\cartesian@coor##1,##2,##3\@nil{%
+ \pssetxlength\pst@dimg{##1}%
+ \pssetylength\pst@dimh{##2}%
+ \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}%
+ }%
+ \@ifnextchar({\Cartesian@}{}%
+}
+\def\Cartesian@(#1,#2){%
+ \pssetxlength\psxunit{#1}%
+ \pssetylength\psyunit{#2}%
+ \ignorespaces%
+}
+\def\Polar{%
+ \def\psput@cartesian{\psput@special}%
+ \def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}%
+}%
+\def\psset@origin#1{%
+ \pst@@getcoor{#1}%
+% ----------- 1.10 beg hv -------------------
+% \edef\psk@origin{\pst@coor \tx@NET }}
+ \edef\psk@origin{\pst@coor T }}
+% ----------- 1.10 end hv -------------------
+\def\psk@origin{}
+%
+\newif\ifswapaxes
+\def\psset@swapaxes#1{%
+ \@nameuse{@pst#1}%
+ \if@pst\def\psk@swapaxes{-90 rotate -1 1 scale }%
+ \else\def\psk@swapaxes{}%
+ \fi%
+}
+\psset@swapaxes{false}
+\newif\ifshowpoints
+\def\psset@showpoints#1{\@nameuse{showpoints#1}}
+\psset@showpoints{false}
+\let\pst@setrepeatarrowsflag\relax
+\def\psset@border#1{%
+\pst@getlength{#1}\psk@border
+\pst@setrepeatarrowsflag}
+\psset@border{0pt}
+\def\psset@bordercolor#1{\pst@getcolor{#1}\psbordercolor}
+\psset@bordercolor{white}
+\newif\ifpsdoubleline
+\def\psset@doubleline#1{%
+ \@nameuse{psdoubleline#1}%
+ \pst@setrepeatarrowsflag}
+\psset@doubleline{false}
+\def\psset@doublesep#1{\def\psdoublesep{#1}}
+\psset@doublesep{1.25\pslinewidth}
+\def\psset@doublecolor#1{\pst@getcolor{#1}\psdoublecolor}
+\psset@doublecolor{white}
+\newif\ifpsshadow
+\def\psset@shadow#1{%
+ \@nameuse{psshadow#1}%
+ \pst@setrepeatarrowsflag}
+\psset@shadow{false}
+\def\psset@shadowsize#1{\pst@getlength{#1}\psk@shadowsize}
+\psset@shadowsize{3pt}
+\def\psset@shadowangle#1{\pst@getangle{#1}\psk@shadowangle}
+\psset@shadowangle{-45}
+\def\psset@shadowcolor#1{\pst@getcolor{#1}\psshadowcolor}
+\psset@shadowcolor{darkgray}
+\def\pst@repeatarrowsflag{\z@}
+\def\pst@setrepeatarrowsflag{%
+ \edef\pst@repeatarrowsflag{%
+ \ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else
+ \ifpsshadow 1\else \z@\fi\fi\fi}}
+\def\psls@none{}
+\newdimen\pslinewidth
+\def\psset@linewidth#1{\pssetlength\pslinewidth{#1}}
+\psset@linewidth{.8pt}
+\def\psset@linecolor#1{\pst@getcolor{#1}\pslinecolor}
+\psset@linecolor{black}
+\def\psls@solid{0 setlinecap stroke }
+\def\pst@missing{%
+ \z@
+ \@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa}
+%
+%%------------------- begin patch 15 HV 2004-05-15 -------------
+%\def\psset@dash#1{%
+% \pst@expandafter\psset@@dash{#1} {\pst@missing} {\pst@missing} {}\@nil
+% \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh}%
+%}
+%\def\psset@@dash#1 #2 #3\@nil{%
+%\pssetlength\pst@dimg{#1}%
+%\pssetlength\pst@dimh{#2}}
+%\psset@dash{5pt 3pt}
+\def\pst@empty{\z@}
+\def\psset@dash#1{% black white [ black white ]
+ \pst@expandafter\psset@@dash{#1} {\pst@empty} {\pst@empty} %
+ {\pst@missing} {\pst@missing} {}\@nil
+ \edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh
+ \pst@number\pst@dimc \pst@number\pst@dimd}%
+}
+\def\psset@@dash#1 #2 #3 #4 #5\@nil{%
+ \pssetlength\pst@dimg{#1}%
+ \pssetlength\pst@dimh{#2}%
+ \pssetlength\pst@dimc{#3}%
+ \pssetlength\pst@dimd{#4}%
+}
+\psset@dash{5pt 3pt 0pt 0pt}% black white black white
+%%------------------- end patch 15 HV 2004-05-15 -------------
+\newif\ifpsdashadjust
+\def\psset@dashadjust#1{\@nameuse{psdashadjust#1}}
+\psset@dashadjust{true}
+\def\tx@DashLine{DashLine }
+\def\psls@dashed{%
+ \ifpsdashadjust
+% \psk@dash \pst@linetype\space \tx@DashLine
+ \psk@dash \@ifundefined\pst@linetype{2}{\pst@linetype}\space \tx@DashLine
+ \else
+ [ \psk@dash ] 0 setdash stroke
+ \fi}
+\def\psset@dotsep#1{\pst@getlength{#1}\psk@dotsep}
+\psset@dotsep{3pt}
+\def\tx@DotLine{DotLine }
+\def\psls@dotted{%
+ \ifpsdashadjust
+ \psk@dotsep \pst@linetype\space \tx@DotLine
+ \else
+ [ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke
+ \fi%
+}
+\def\psset@linestyle#1{%
+ \@ifundefined{psls@#1}%
+ {\@pstrickserr{Line style `#1' not defined}\@eha}%
+ {\edef\pslinestyle{#1}}%
+}
+\psset@linestyle{solid}
+\def\psfs@none{}
+\def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor}
+\psset@fillcolor{white}
+\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor fill}}
+%-------------- hv begin patch 15 (2004-05-10)---------------%%
+\def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor eofill}}
+%-------------- hv end patch 15 (2004-05-10)---------------%%
+\def\psset@hatchwidth#1{\pst@getlength{#1}\psk@hatchwidth}
+\psset@hatchwidth{.8pt}
+\def\psset@hatchsep#1{\pst@getlength{#1}\psk@hatchsep}
+\psset@hatchsep{4pt}
+\def\psset@hatchcolor#1{\pst@getcolor{#1}\pshatchcolor}
+\psset@hatchcolor{black}
+\def\psset@hatchangle#1{\pst@getangle{#1}\psk@hatchangle}
+\psset@hatchangle{45}
+% ------------ hv 1.11 ------------
+\def\psset@hatchsepinc#1{\pst@getlength{#1}\psk@hatchsepinc}
+\def\psset@hatchwidthinc#1{\pst@getlength{#1}\psk@hatchwidthinc}
+\psset@hatchwidthinc{0pt}
+\psset@hatchsepinc{0pt}
+%
+\def\pst@linefill{%
+ \psk@hatchangle rotate
+ \psk@hatchwidth SLW
+ \pst@usecolor\pshatchcolor
+ \psk@hatchsep
+ \psk@hatchsepinc
+ \psk@hatchwidthinc
+ \tx@LineFill }
+% ------------ hv 1.11 ------------
+%
+\def\psfs@vlines{\pst@fill\pst@linefill}
+\@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines}
+\def\psfs@hlines{\pst@fill{90 rotate \pst@linefill}}
+\@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines}
+\def\psfs@crosshatch{\psfs@vlines \psfs@hlines}
+\@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines}
+\def\tx@LineFill{LineFill }
+\def\psset@fillstyle#1{%
+ \edef\pst@tempg{#1}\def\pst@temph{none}%
+ \ifx\pst@tempg\pst@temph
+ \let\psk@fillstyle\relax
+ \else
+ \@ifundefined{psfs@#1}%
+ {\@pstrickserr{Undefined fill style: `#1'}\@eha}%
+ {\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}%
+ \fi%
+}
+\def\psset@addfillstyle#1{%
+ \@ifundefined{psfs@#1}%
+ {\@pstrickserr{Undefined fill style: `#1'}\@eha}%
+ {\edef\psk@fillstyle{%
+ \expandafter\noexpand\psk@fillstyle
+ \expandafter\noexpand\csname psfs@#1\endcsname}%
+ }%
+}
+\psset@fillstyle{none}
+\def\psset@arrows#1{%
+ \begingroup
+ \pst@activearrows
+ \xdef\pst@tempg{#1}%
+ \endgroup
+ \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil
+ \if@pst\else
+ \@pstrickserr{Bad arrows specification: #1}\@ehpa
+ \fi%
+}
+\def\psset@@arrows#1-#2\@empty#3\@nil{%
+ \@psttrue
+ \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
+ \expandafter\next\pst@arrowtable,#1-#1,\@nil
+ \@ifundefined{psas@\pst@tempg}%
+ {\@pstfalse\def\psk@arrowA{}}%
+ {\let\psk@arrowA\pst@tempg}%
+ \@ifundefined{psas@#2}%
+ {\@pstfalse\def\psk@arrowB{}}%
+ {\def\psk@arrowB{#2}}%
+}
+\def\psk@arrowA{}
+\def\psk@arrowB{}
+%\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-]}
+\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|} % hv --1.12
+\begingroup
+ \catcode`\<=13
+ \catcode`\>=13
+ \catcode`\|=13
+ \gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}}
+\endgroup
+\def\tx@BeginArrow{BeginArrow }
+\def\tx@EndArrow{EndArrow }
+% Redefininition of \psset@arrowscale to store value of X scale factor hv --1.12
+%\def\psset@arrowscale#1{\pst@getscale{#1}\psk@arrowscale}
+\def\psset@arrowscale#1{% hv --1.12
+ \pst@@arrowscale@i#1 \@nil% hv -- 1.12
+ \pst@getscale{\pst@arrowscale}\psk@arrowscale}% hv --1.12
+\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12
+\psset@arrowscale{1}
+%
+\def\psset@arrowsize#1{%
+ \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
+ \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}%
+}
+\psset@arrowsize{1.5pt 2}
+\def\psset@arrowlength#1{\pst@checknum{#1}\psk@arrowlength}
+\psset@arrowlength{1.4}
+\def\psset@arrowinset#1{\pst@checknum{#1}\psk@arrowinset}%
+\psset@arrowinset{.4}
+\def\tx@Arrow{Arrow }
+% new definitions of the missing arrows ---- hv 1.1.2
+\@namedef{psas@<|}{%
+ \psk@tbarsize\space \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ true \psk@arrowinset\space \psk@arrowlength\space \psk@arrowsize\space \tx@Arrow%
+}
+% ]-[ arrow
+\def\tx@BracketOut{BracketOut }
+\@namedef{psas@[}{%
+ /BracketOut {%
+ CLW mul add dup CLW sub 2 div
+%/x ED mul CLW add
+ /x ED mul neg
+ /y ED
+ /z CLW 2 div def
+ x neg y moveto
+ x neg CLW 2 div L x CLW 2 div L x y L stroke 0 CLW moveto } def
+ \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut
+}
+% )-( arrow
+\def\tx@RoundBracketOut{RoundBracketOut }
+\@namedef{psas@(}{%
+ /RoundBracketOut {%
+ CLW mul add dup 2 div
+%/x ED mul
+ /x ED mul neg
+ /y ED
+ /mtrx CM def
+ 0 CLW
+ 2 div T x y mul 0 ne { x y scale } if
+ 1 1 moveto
+ .85 .5 .35 0 0 0 curveto
+ -.35 0 -.85 .5 -1 1 curveto
+ mtrx setmatrix stroke 0 CLW moveto } def
+ \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut
+}
+% end of new definitions of the missing arrows ---- hv 1.1.2
+\@namedef{psas@>}{%
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\@namedef{psas@>>}{%
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h T
+ gsave
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ CP
+ grestore
+ CP newpath moveto
+ 2 copy
+ L
+ stroke
+ moveto
+}
+\@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
+\@namedef{psas@<<}{%
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ CP newpath moveto 0 a neg L stroke 0 h neg T
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\def\psset@tbarsize#1{%
+ \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
+ \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}%
+}
+\psset@tbarsize{2pt 5}
+\def\tx@Tbar{Tbar }
+\@namedef{psas@|}{\psk@tbarsize \tx@Tbar}
+\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar}
+\@namedef{psas@>|}{%
+ \psk@tbarsize \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\@namedef{psas@>|*}{%
+ 0 CLW -2 div T
+ \psk@tbarsize \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|}
+\def\psset@bracketlength#1{\pst@checknum{#1}\psk@bracketlength}
+\psset@bracketlength{.15}
+\def\tx@Bracket{Bracket }
+\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket}
+\def\psset@rbracketlength#1{\pst@checknum{#1}\psk@rbracketlength}
+\psset@rbracketlength{.15}
+\def\tx@RoundBracket{RoundBracket }
+\@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket}
+\def\psas@c{1 \psas@@c}
+\def\psas@cc{0 CLW 2 div T 1 \psas@@c}
+\def\psas@C{2 \psas@@c}
+\def\psas@@c{%
+ setlinecap
+ 0 0 moveto
+%%-------------------- v.1.04 begin HV 2004-05-18 ----------------
+% 0 CLW 2 div L
+ 0 0.1 L % changed value from 0.5 to 0.1
+%%-------------------- v. 1.04 end HV 2004-05-18 ----------------
+ stroke
+ 0 0 moveto
+}
+\def\psas@{}
+\psset@arrows{-}
+\def\tx@SD{SD }
+\def\tx@EndDot{EndDot }
+\def\psas@oo{{\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot}
+\def\psas@o{{\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot}
+\@namedef{psas@**}{{false} true \psk@dotsize \tx@EndDot}
+\@namedef{psas@*}{{false} false \psk@dotsize \tx@EndDot}
+\def\pst@par{}
+\def\addto@par#1{%
+\ifx\pst@par\@empty
+\def\pst@par{#1}%
+\else
+\expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}%
+\fi}
+\def\addbefore@par#1{%
+\ifx\pst@par\@empty
+\def\pst@par{#1}%
+\else
+\toks@{#1}%
+\pst@toks\expandafter{\pst@par}%
+\edef\pst@par{\the\toks@,\the\pst@toks}%
+\fi}
+\def\use@par{%
+ \ifx\pst@par\@empty\else
+ \expandafter\@psset\pst@par,\@nil
+ \def\pst@par{}%
+ \fi%
+}
+\def\pst@object#1{%
+ \pst@ifstar{%
+ \@ifnextchar[{\pst@@object{#1}}{\def\pst@par{}\@nameuse{#1@i}}}%
+}
+\def\pst@@object#1[#2]{%
+ \def\pst@par{#2}%
+ \@ifnextchar+{\@nameuse{#1@i}}{\@nameuse{#1@i}}}
+\def\newpsobject#1#2#3{%
+\@ifundefined{#2@i}%
+{\@pstrickserr{Graphics object `#2' not defined}\@eha}{%
+\@namedef{#1}{\pst@object{#1}}%
+\@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}%
+\ignorespaces}
+\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}}
+% ------------------------- hv 1.10 beg ------------------------
+%\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1}
+\def\pst@@getarrows#1#2{%
+ \def\pst@tempa{#2}% prevent empty arrow arguments, to allow \psline{}(...)(...)
+ \ifx\pst@tempa\@empty\addto@par{arrows=-}\else\addto@par{arrows=#2}\fi#1}
+% ------------------------- hv 1.10 end ------------------------
+%
+\def\begin@ClosedObj{%
+ \leavevmode
+ \pst@killglue
+ \begingroup
+ \use@par
+ \solid@star
+ \ifpsdoubleline \pst@setdoublesep \fi
+ \init@pscode%
+}
+\def\end@ClosedObj{%
+ \ifpsshadow \pst@closedshadow \fi
+ \ifdim\psk@border\p@>\z@ \pst@addborder \fi
+ \psk@fillstyle
+ \pst@stroke
+ \ifpsdoubleline \pst@doublestroke \fi
+ \ifshowpoints
+% DG modification begin - Mar. 4, 1995
+%\addto@pscode{Points aload length 2 div cvi /N ED \psdots@iii}%
+ \pst@OpenShowPoints
+% DG modification end
+ \fi
+ \use@pscode
+ \endgroup
+ \ignorespaces%
+}
+\def\begin@OpenObj{%
+ \begin@ClosedObj
+ \let\pst@linetype\pst@arrowtype
+ \pst@addarrowdef%
+}
+\def\begin@AltOpenObj{%
+ \begin@ClosedObj
+ \def\pst@repeatarrowsflag{\z@}%
+ \def\pst@linetype{0}}
+\def\end@OpenObj{%
+ \ifpsshadow \pst@openshadow \fi
+ \ifdim\psk@border\p@>\z@ \pst@addborder \fi
+ \psk@fillstyle
+ \pst@stroke
+ \ifpsdoubleline \pst@doublestroke \fi
+ \ifnum\pst@repeatarrowsflag>\z@ \pst@repeatarrows \fi
+ \ifshowpoints \pst@OpenShowPoints \fi
+ \use@pscode
+ \endgroup
+ \ignorespaces}
+\def\begin@SpecialObj{%
+\leavevmode
+\pst@killglue
+\begingroup
+\use@par
+\init@pscode}
+\def\end@SpecialObj{%
+\use@pscode
+\endgroup
+\ignorespaces}
+\def\pst@code{}%
+\def\init@pscode{%
+ \addto@pscode{%
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor}%
+}
+\def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}}
+\def\use@pscode{%
+ \pstverb{%
+ \pst@dict
+ \tx@STP
+ \pst@newpath
+ \psk@origin
+ \psk@swapaxes
+ \pst@code
+ end
+ }%
+ \gdef\pst@code{}%
+}
+\def\pst@newpath{newpath }
+\def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi}
+\def\KillGlue{\let\pst@killglue\pst@@killglue}
+\def\DontKillGlue{\let\pst@killglue\relax}
+\DontKillGlue
+\def\solid@star{%
+ \if@star
+ \pslinewidth=\z@
+ \psdoublelinefalse
+ \def\pslinestyle{none}%
+ \def\psk@fillstyle{\psfs@solid}%
+ \let\psfillcolor\pslinecolor
+ \fi}
+\def\pst@setdoublesep{%
+\pst@getlength\psdoublesep\psdoublesep
+\pslinewidth=2\pslinewidth
+\advance\pslinewidth\psdoublesep\p@
+\let\pst@setdoublesep\relax}
+\def\tx@Shadow{Shadow }
+\def\pst@closedshadow{%
+ \addto@pscode{%
+ gsave
+ \psk@shadowsize \psk@shadowangle \tx@PtoC
+ \tx@Shadow
+ \pst@usecolor\psshadowcolor
+ gsave fill grestore
+ stroke
+ grestore
+ gsave
+ \pst@usecolor\psfillcolor
+ gsave fill grestore
+ stroke
+ grestore}}
+\def\pst@openshadow{%
+ \addto@pscode{%
+ gsave
+ \psk@shadowsize \psk@shadowangle \tx@PtoC
+ \tx@Shadow
+ \pst@usecolor\psshadowcolor
+ \ifx\psk@fillstyle\relax\else
+ gsave fill grestore
+ \fi
+ stroke}%
+ \pst@repeatarrows%
+ \addto@pscode{grestore}%
+ \ifx\psk@fillstyle\relax\else
+ \addto@pscode{%
+ gsave
+ \pst@usecolor\psfillcolor
+ gsave fill grestore
+ stroke
+ grestore}%
+ \fi}
+\def\pst@addborder{%
+ \addto@pscode{%
+ gsave
+ \psk@border 2 mul
+ CLW add SLW
+ \pst@usecolor\psbordercolor
+ stroke
+ grestore}}
+\def\pst@stroke{%
+ \ifx\pslinestyle\@none\else
+ \addto@pscode{%
+ gsave
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor
+ \@nameuse{psls@\pslinestyle}
+ grestore}%
+ \fi}
+\def\pst@fill#1{\addto@pscode{gsave #1 grestore}}%
+\def\pst@doublestroke{%
+ \addto@pscode{%
+ gsave
+ \psdoublesep SLW
+ \pst@usecolor\psdoublecolor
+ stroke
+ grestore
+ }}
+\def\pst@arrowtype{%
+\ifx\psk@arrowB\@empty 0 \else -2 \fi
+\ifx\psk@arrowA\@empty 0 \else -1 \fi
+add}
+\def\pst@addarrowdef{%
+\addto@pscode{%
+/ArrowA {
+\ifx\psk@arrowA\@empty
+ \pst@oplineto
+\else
+ \pst@arrowdef{A}
+moveto
+\fi
+} def
+/ArrowB {
+\ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi
+} def}}
+\def\pst@arrowdef#1{%
+\ifnum\pst@repeatarrowsflag>\z@
+/Arrow#1c [ 6 2 roll ] cvx def Arrow#1c
+\fi
+\tx@BeginArrow
+\psk@arrowscale
+\@nameuse{psas@\@nameuse{psk@arrow#1}}
+\tx@EndArrow}
+\def\pst@repeatarrows{%
+\addto@pscode{%
+gsave
+\ifx\psk@arrowA\@empty\else
+ArrowAc ArrowA pop pop
+\fi
+\ifx\psk@arrowB\@empty\else
+ArrowBc ArrowB pop pop pop pop
+\fi
+grestore}}
+\def\pst@OpenShowPoints{%
+ \addto@pscode{%
+ gsave
+ \psk@dotsize
+ \@nameuse{psds@\psk@dotstyle}
+ newpath
+ Points aload length 2 div 2 sub cvi /N ED
+ N 0 ge
+ { \ifx\psk@arrowA\@empty Dot \else pop pop \fi
+ N { Dot } repeat
+ \ifx\psk@arrowB\@empty Dot \else pop pop \fi }
+ { N 2 mul { pop } repeat } ifelse
+ grestore
+}}
+\def\pscustom{\pst@object{pscustom}}
+\long\def\pscustom@i#1{%
+ \begin@SpecialObj
+ \solid@star
+ \let\pst@ifcustom\iftrue
+ \let\begin@ClosedObj\begin@CustomObj
+ \let\end@ClosedObj\endgroup
+ \def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}%
+ \let\end@OpenObj\endgroup
+ \let\begin@AltOpenObj\begin@CustomObj
+ \def\begin@SpecialObj{%
+ \begingroup
+ \pst@misplaced{special graphics object}%
+ \def\addto@pscode####1{}
+ \let\end@SpecialObj\endgroup}%
+ \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
+ \def\psclip##1{\pst@misplaced\psclip}%
+ \def\pst@repeatarrowsflag{\z@}%
+ \let\pst@setrepeatarrowsflag\relax
+ \showpointsfalse
+ \let\showpointstrue\relax
+ \def\pst@linetype{\pslinetype}%
+ \let\psset@liftpen\psset@@liftpen
+ \psset@liftpen{\z@}%
+ \def\pst@cp{/currentpoint load stopped pop }%
+ \def\pst@oplineto{/lineto load stopped { moveto } if }%
+ \def\pst@optcp##1##2{%
+ \ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}%
+ \let\caddto@pscode\addto@pscode
+ \def\cuse@par##1{{\use@par##1}}%
+ \the\pst@customdefs
+ \setbox\pst@hbox=\hbox{#1}%
+ \psk@fillstyle
+ \pst@stroke
+ \end@SpecialObj}
+\def\begin@CustomObj{%
+ \begingroup
+ \use@par
+ \addto@pscode{%
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor
+ }%
+}
+\def\pst@oplineto{moveto }
+\def\pst@cp{}
+\def\pst@optcp#1#2{}
+\def\psset@liftpen#1{}
+\def\psset@@liftpen#1{%
+ \ifcase#1\relax
+ \def\psk@liftpen{\z@}%
+ \def\pst@cp{/currentpoint load stopped pop }%
+ \def\pst@oplineto{/lineto load stopped { moveto } if }%
+ \or
+ \def\psk@liftpen{1}%
+ \def\pst@cp{}%
+ \def\pst@oplineto{/lineto load stopped { moveto } if }%
+ \or
+ \def\psk@liftpen{2}%
+ \def\pst@cp{}%
+ \def\pst@oplineto{moveto }%
+ \fi%
+}
+\psset@liftpen{0}
+\def\psk@liftpen{-1}
+%
+\def\psset@linetype#1{%
+ \pst@getint{#1}\pslinetype
+ \ifnum\pst@dimg<-3
+ \@pstrickserr{linetype must be greater than -3}\@ehpa
+%----------------- hv begin 2004-05-07 ------------- patch 15
+% \def\pslinetype{0}%
+ \def\pslinetype{2}%
+ \fi%
+}
+%\psset@linetype{0}
+\psset@linetype{2}% otherwise there is a problem when using e.g.
+% \psaxes[axesstyle=frame,linestyle=dashed]{->}(3,-2)
+%----------------- hv end 2004-05-07 ------------- patch 15
+%
+\def\caddto@pscode#1{%
+ \@pstrickserr{Command can only be used in \string\pscustom}\@ehpa%
+}
+\let\cuse@par\caddto@pscode
+%
+\def\tx@MSave{%
+ /msavematrx
+ [ tx@Dict /msavematrx known % does msavematrix exists?
+ { msavematrx aload pop } if
+ CM % matrix currentmatrix
+ ]
+ def
+%----------------- hv begin 2004-05-07 ------------- patch 15
+ msavematrx
+%----------------- hv end 2004-05-07 ------------- patch 15
+}
+\def\tx@MRestore{% a typo in pstricks with msavematrx
+ tx@Dict /msavematrx known { length 0 gt } { false } ifelse
+ { msavematrx aload pop setmatrix } if
+}
+%
+\newtoks\pst@customdefs
+\pst@customdefs{%
+ \def\newpath{\addto@pscode{newpath}}%
+ \def\moveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}%
+ \def\closepath{\addto@pscode{closepath}}%
+ \def\gsave{\begingroup\addto@pscode{gsave}}%
+ \def\grestore{\endgroup\addto@pscode{grestore}}%
+% DG/SR modification begin - May 12, 1997 - Patch 2
+% \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}%
+ \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor translate}}%
+% DG/SR modification end
+ \def\rotate#1{\pst@@getangle{#1}\addto@pscode{\pst@angle rotate}}%
+ \def\scale#1{\pst@getscale{#1}\pst@tempg\addto@pscode{\pst@tempg}}%
+ \def\msave{\addto@pscode{\tx@MSave}}%
+ \def\mrestore{\addto@pscode{\tx@MRestore}}%
+ \def\swapaxes{\addto@pscode{-90 rotate -1 1 scale}}%
+ \def\stroke{\pst@object{stroke}}%
+ \def\fill{\pst@object{fill}}%
+ \def\openshadow{\pst@object{openshadow}}%
+ \def\closedshadow{\pst@object{closedshadow}}%
+% DG/SR modification begin - Jan. 7, 1998 - Patch 8
+% \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor tx@Shadow}}%
+ \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor \tx@Shadow}}%
+% DG/SR modification end
+ \def\lineto{\pst@onecoor{lineto}}%
+ \def\rlineto{\pst@onecoor{rlineto}}%
+ \def\curveto{\pst@threecoor{curveto}}%
+ \def\rcurveto{\pst@threecoor{rcurveto}}%
+ \def\code#1{\addto@pscode{#1}}%
+ \def\coor(#1){\pst@@getcoor{#1}\addto@pscode\pst@coor\@ifnextchar({\coor}{}}%
+ \def\rcoor{\pst@getcoors{}{}}%
+ \def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}%
+ \def\setcolor#1{%
+% ----------------hv begin 2004-05-07-------------------- patch 15
+% \@ifundefined{color@#1}{}{\addto@pscode{\use@color{#1}}}}%
+ \@ifundefined{color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}%
+% ----------------hv end 2004-05-07--------------------
+ \def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}%
+ \let\file\pst@rawfile
+} % END \pst@customdefs
+\def\closedshadow@i{\cuse@par\pst@closedshadow}
+\def\openshadow@i{\cuse@par\pst@openshadow}
+\def\stroke@i{\cuse@par\pst@stroke}%
+\def\fill@i{\cuse@par\psk@fillstyle}%
+\def\pst@onecoor#1(#2){%
+\pst@@getcoor{#2}%
+\addto@pscode{\pst@coor #1}}
+\def\pst@threecoor#1(#2)#3(#4)#5(#6){%
+\begingroup
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#4}\pst@tempb
+% DG/SR modification begin - Aug. 4, 1999 - Patch 11
+%\pst@getcoor{#6}\pst@tembc
+\pst@getcoor{#6}\pst@tempc
+% DG/SR modification end
+\addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}%
+\endgroup}
+\def\pst@rawfile#1{%
+\begingroup
+\def\do##1{\catcode`##1=12\relax}"
+\dospecials
+\catcode`\%=14
+\pst@@rawfile{#1}%
+\endgroup}
+\def\pst@@rawfile#1{%
+\immediate\openin1 #1
+\ifeof1
+\@pstrickserr{File `#1' not found}\@ehpa
+\else
+\immediate\read1 to \pst@tempg
+\loop
+\ifeof1 \@pstfalse\else\@psttrue\fi
+\if@pst
+\addto@pscode\pst@tempg
+\immediate\read1 to \pst@tempg
+\repeat
+\fi
+\immediate\closein1\relax}
+\def\tx@NArray{NArray }
+\def\tx@NArray{NArray }
+\def\tx@Line{Line }
+\def\tx@Arcto{Arcto }
+\def\tx@CheckClosed{CheckClosed }
+\def\tx@Polygon{Polygon }
+\def\psset@gangle#1{\pst@getangle{#1}\psk@gangle}
+\psset@gangle{0}
+\def\tx@Diamond{Diamond }
+\def\psdiamond{\pst@object{psdiamond}}
+\def\psdiamond@i(#1){%
+\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}}
+\def\psdiamond@ii(#1)(#2){%
+ \begin@ClosedObj
+ \pst@getcoor{#1}\pst@tempa
+ \pst@getcoor{#2}\pst@tempb
+ \addto@pscode{%
+ \psline@iii
+ pop
+ \psk@dimen
+ \pst@tempb
+ \psk@gangle
+ \pst@tempa
+ \tx@Diamond
+ }%
+ \def\pst@linetype{4}%
+ \end@ClosedObj}
+%
+\def\tx@Triangle{Triangle }
+\def\pstriangle{\pst@object{pstriangle}}
+\def\pstriangle@i(#1){%
+ \@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}}
+\def\pstriangle@ii(#1)(#2){%
+ \begin@ClosedObj
+ \pst@getcoor{#1}\pst@tempa% the center of the baseline
+ \pst@getcoor{#2}\pst@tempb% the height of the triangle
+ \addto@pscode{%
+ \psline@iii
+ pop % no showpoints option
+ \psk@dimen % outer/inner/middle
+ \pst@tempb
+ \psk@gangle % rotating angle
+ \pst@tempa
+ \tx@Triangle
+ }%
+ \def\pst@linetype{2}%
+ \end@ClosedObj}
+%
+\def\tx@CCA{CCA }
+\def\tx@CCA{CCA }
+\def\tx@CC{CC }
+\def\tx@IC{IC }
+\def\tx@BOC{BOC }
+\def\tx@NC{NC }
+\def\tx@EOC{EOC }
+\def\tx@BAC{BAC }
+\def\tx@NAC{NAC }
+\def\tx@EAC{EAC }
+\def\tx@OpenCurve{OpenCurve }
+\def\tx@AltCurve{AltCurve }
+\def\tx@ClosedCurve{ClosedCurve }
+\def\psset@curvature#1{%
+\edef\pst@tempg{#1 }%
+\expandafter\psset@@curvature\pst@tempg * * * \@nil}
+\def\psset@@curvature#1 #2 #3 #4\@nil{%
+\pst@checknum{#1}\pst@tempg
+\pst@checknum{#2}\pst@temph
+\pst@checknum{#3}\pst@tempi
+\edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}}
+\psset@curvature{1 .1 0}
+\def\pscurve{\pst@object{pscurve}}
+\def\pscurve@i{%
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors[\pscurve@ii%
+ }%
+}
+\def\pscurve@ii{%
+ \addto@pscode{%
+ \pst@cp
+ \psk@curvature\space /c ED /b ED /a ED
+ \ifshowpoints true \else false \fi
+ \tx@OpenCurve%
+ }%
+ \end@OpenObj%
+}
+\def\psecurve{\pst@object{psecurve}}
+\def\psecurve@i{%
+\pst@getarrows{%
+\begin@OpenObj
+\pst@getcoors[\psecurve@ii}}
+\def\psecurve@ii{%
+\addto@pscode{%
+\psk@curvature\space /c ED /b ED /a ED
+\ifshowpoints true \else false \fi
+\tx@AltCurve}%
+\end@OpenObj}
+\def\psccurve{\pst@object{psccurve}}
+\def\psccurve@i{%
+\begin@ClosedObj
+\pst@getcoors[\psccurve@ii}
+\def\psccurve@ii{%
+\addto@pscode{%
+\psk@curvature\space /c ED /b ED /a ED
+\ifshowpoints true \else false \fi
+\tx@ClosedCurve}%
+\def\pst@linetype{1}%
+\end@ClosedObj}
+\def\psset@dotsize#1{%
+\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
+\edef\psk@@dotsize{\pst@number\pst@dimg}%
+\let\psk@@@dotsize\pst@tempg
+\edef\psk@dotsize{%
+/DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }}
+\psset@dotsize{2pt 2}
+\def\psset@dotscale#1{%
+\pst@getscale{#1}\psk@dotscale
+\ifx\psk@dotscale\@empty
+\def\psk@xdotscale{1 }%
+\def\psk@ydotscale{1 }%
+\else
+\let\psk@xdotscale\pst@tempg
+\let\psk@ydotscale\pst@temph
+\fi}
+% DG/SR modification begin - Oct. 17, 1997 - Patch 5
+%\psset@dotscale{1}
+% DG/SR modification end
+\def\pst@Getangle#1#2{%
+\pst@getangle{#1}\pst@tempg
+\def\pst@temph{0. }%
+\ifx\pst@tempg\pst@temph
+\def#2{}%
+\else
+\edef#2{\pst@tempg\space rotate }%
+\fi}
+\def\psset@dotangle#1{%
+\pst@getangle{#1}\psk@@dotangle
+\ifdim\psk@@dotangle\p@=\z@
+\let\psk@dotangle\@empty
+\else
+% DG/SR modification begin - Aug. 8, 1997 - Patch 4
+%\edef\psk@dotangle{\psk@@dotangle rotate }
+\edef\psk@dotangle{\psk@@dotangle rotate }%
+% DG/SR modification end
+\fi}
+\psset@dotangle{0}
+\def\pst@getdotsize{%
+\pst@dimg=\psk@@@dotsize\pslinewidth
+\advance\pst@dimg\psk@@dotsize\p@
+\pst@dimh=\psk@ydotscale\pst@dimg
+\pst@dimg=\psk@xdotscale\pst@dimg
+\divide\pst@dimh 2
+\divide\pst@dimg 2\relax}
+% DG/SR modification begin - Oct. 17, 1997 - Patch 5
+\psset@dotscale{1}
+% DG/SR modification end
+\def\psdot{\pst@object{psdot}}
+\def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}}
+\def\psdot@ii(#1){%
+ \begin@SpecialObj
+ \pst@@getcoor{#1}%
+ \addto@pscode{%
+ \psk@dotsize
+ \@nameuse{psds@\psk@dotstyle}%
+ \pst@coor Dot}%
+ \end@SpecialObj}
+\def\psdots{\pst@object{psdots}}
+\def\psdots@i{%
+\begin@SpecialObj
+\pst@getcoors[\psdots@ii}
+\def\psdots@ii{%
+\addto@pscode{false \tx@NArray \psdots@iii}%
+\end@SpecialObj}
+\def\psdots@iii{%
+\psk@dotsize
+\@nameuse{psds@\psk@dotstyle}
+newpath
+n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat}
+% DG: dead code (to suppress until \psset@dotstyle) ? - Aug. 4, 1997
+\def\tx@SQ{SQ }
+\def\tx@ST{ST }
+\def\tx@SP{SP }
+\def\pst@gdot#1{/Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def }
+\@namedef{psds@*}{\pst@gdot{0 0 DS \tx@SD}}
+\@namedef{psds@o}{%
+/r2 DS CLW sub def
+\pst@gdot{0 0 DS \tx@SD \pst@usecolor\psfillcolor 0 0 r2 \tx@SD}}
+\@namedef{psds@square*}{%
+/r1 DS .886 mul def
+\pst@gdot{r1 \tx@SQ}}
+\@namedef{psds@square}{%
+/r1 DS .886 mul def /r2 r1 CLW sub def
+\pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}}
+\@namedef{psds@triangle*}{%
+/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
+\pst@gdot{x1 y1 \tx@ST}}
+\@namedef{psds@triangle}{%
+/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
+/y2 y1 CLW add def /x2 y2 1.732 mul neg def
+\pst@gdot{x1 y1 \tx@ST \pst@usecolor\psfillcolor x2 y2 \tx@ST}}
+\@namedef{psds@pentagon*}{%
+/r1 DS 1.149 mul def
+\pst@gdot{r1 \tx@SP}}
+\@namedef{psds@pentagon}{%
+DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED
+\pst@gdot{r1 \tx@SP \pst@usecolor\psfillcolor r2 \tx@SP}}
+\@namedef{psds@+}{%
+/DS DS 1.253 mul def
+\pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}}
+\@namedef{psds@|}{%
+\psk@tbarsize CLW mul add 2 div /DS ED
+\pst@gdot{0 DS moveto 0 DS neg L stroke}}
+% DG: end dead code?
+\def\psset@dotstyle#1{%
+\@ifundefined{psds@#1}%
+{\@pstrickserr{Dot style `#1' not defined}\@eha}%
+{\edef\psk@dotstyle{#1}}}
+\psset@dotstyle{*}
+\def\tx@FontDot{FontDot }
+\def\newpsfontdot#1[#2]#3#4{%
+ \@namedef{psds@#1}{%
+ /#3 \psk@@dotangle [#2] \tx@FontDot
+% DG/SR modification begin - Dec. 12, 1999 - Patch 14
+%/Dot { moveto #4 show } bind def }}
+ /Dot { moveto gsave \psk@dotscale #4 show grestore } bind def
+ }%
+}
+% DG/SR modification end
+\def\newpsfontdotH#1[#2]#3#4#5{%
+ \@namedef{psds@#1}{%
+ /#3 \psk@@dotangle [#2] \tx@FontDot
+ /Dot {
+ moveto
+ \iftrue
+% DG/SR modification begin - Dec. 23, 1999 - Patch 14
+%gsave \pst@usecolor\psfillcolor #5 show grestore
+%\fi
+%#4 show
+ gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore
+ \fi
+ gsave \psk@dotscale #4 show grestore
+% DG/SR modification end
+ } bind def
+ }%
+}
+\pstheader{pst-dots.pro}
+\newpsfontdot{*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)}
+\newpsfontdotH{o}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)}
+\newpsfontdotH{Bo}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)}
+\newpsfontdotH{triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)}
+\newpsfontdotH{Btriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)}
+\newpsfontdot{triangle*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)}
+\newpsfontdotH{square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)}
+\newpsfontdotH{Bsquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)}
+\newpsfontdot{square*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)}
+\newpsfontdotH{pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)}
+\newpsfontdotH{Bpentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)}
+\newpsfontdot{pentagon*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)}
+% DG/SR modification begin - Mar. 18, 1997 and Dec. 16, 1999 - Patch 14
+%\newpsfontdot{diamond*}%
+%[1.9 0.0 0.0 1.9 -0.4598 -0.70775]{Symbol}{<E0>}
+%\newpsfontdot{diamond}%
+%[2.3 0.0 0.0 2.3 -0.8533 -0.5336]{Symbol}{<A8>}
+% D.G. modification begin - Jan. 17, 2000
+\newpsfontdotH{diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)}
+\newpsfontdotH{Bdiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)}
+\newpsfontdot{diamond*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)}
+% DG/SR modification end
+\newpsfontdot{oplus}[1.44928 0.0 0.0 1.44928 -0.562319 -0.478261]{Symbol}{<C5>}
+\newpsfontdot{otimes}[1.44928 0.0 0.0 1.44928 -0.562319 -0.475362]{Symbol}{<C4>}
+\newpsfontdot{x}[1.8 0.0 0.0 1.8 -0.495 -0.4788]{Symbol}{<B4>}
+\newpsfontdot{+}[2.3 0.0 0.0 2.3 -0.6486 -0.5819]{Times-Roman}{<2B>}
+\newpsfontdot{asterisk}[2.43309 0.0 0.0 2.43309 -0.609489 -1.14477]{Times-Roman}{<2A>}
+\newpsfontdot{B+}[2.3 0.0 0.0 2.3 -0.6555 -0.5819]{Times-Bold}{<2B>}
+\newpsfontdot{Basterisk}[2.29358 0.0 0.0 2.29358 -0.576835 -1.08486]{Times-Bold}{<2A>}
+\newpsfontdot{|}%
+% DG/SR modification begin - Oct. 27, 1997 - Patch 7
+%[1.98413 0.0 0.0 1.98413 -0.258929 -0.712302]{Helvetica}{(|)}
+[1.98413 0.0 0.0 1.38 -0.258929 -0.5]{Helvetica}{(|)}
+% DG/SR modification end
+\newpsfontdot{B|}%
+% DG/SR modification begin - Oct. 27, 1997 - Patch 7
+%[1.98413 0.0 0.0 1.98413 -0.277778 -0.78302]{Helvetica-Bold}{(|)}
+[1.98413 0.0 0.0 1.38 -0.277778 -0.5]{Helvetica-Bold}{(|)}
+% DG/SR modification end
+\iffalse
+\newpsfontdot{*}[2.77778 0.0 0.0 2.77778 -0.638889 -0.813889]{Symbol}{<B7>}
+\newpsfontdot{o}[3.33333 0.0 0.0 3.33333 -0.666667 -1.78167]{Symbol}{<B0>}
+\newpsfontdot{Bo}[4.69484 0.0 0.0 4.69484 -0.78169 -2.97418]{Times-Bold}{<CA>}
+\fi
+\newdimen\pslinearc
+\def\psset@linearc#1{\pssetlength\pslinearc{#1}}
+\psset@linearc{0pt}
+\def\psline{\pst@object{psline}}
+\def\psline@i{%
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors[\psline@ii%
+ }%
+}
+\def\psline@ii{%
+ \addto@pscode{\pst@cp \psline@iii \tx@Line}%
+ \end@OpenObj%
+}
+\def\psline@iii{%
+ \ifdim\pslinearc>\z@
+ /r \pst@number\pslinearc def
+ /Lineto { \tx@Arcto } def
+ \else
+ /Lineto /lineto load def
+ \fi
+ \ifshowpoints true \else false \fi
+}
+\def\qline(#1)(#2){%
+ \def\pst@par{}%
+ \begin@SpecialObj
+ \def\pst@linetype{0}%
+ \pst@getcoor{#1}\pst@tempa
+ \pst@@getcoor{#2}%
+ \addto@pscode{%
+ \pst@tempa moveto \pst@coor L
+ \@nameuse{psls@\pslinestyle}%
+ }%
+ \end@SpecialObj}
+\def\pspolygon{\pst@object{pspolygon}}
+\def\pspolygon@i{%
+ \begin@ClosedObj%
+ \def\pst@cp{}%
+ \pst@getcoors[\pspolygon@ii%
+}
+\def\pspolygon@ii{%
+ \addto@pscode{\psline@iii \tx@Polygon}%
+ \def\pst@linetype{1}%
+ \end@ClosedObj%
+}
+\def\psset@framearc#1{\pst@checknum{#1}\psk@framearc}
+\psset@framearc{0}
+\def\psset@cornersize#1{%
+\pst@expandafter\psset@@cornersize{#1}\@nil}
+\def\psset@@cornersize#1#2\@nil{%
+\if #1a\relax
+\def\psk@cornersize{\pst@number\pslinearc false }%
+\else
+\def\psk@cornersize{\psk@framearc true }%
+\fi}
+\psset@cornersize{relative}
+\def\tx@Rect{Rect }
+\def\tx@OvalFrame{OvalFrame }
+\def\tx@Frame{Frame }
+%
+\def\psset@dimen#1{\pst@expandafter\psset@@dimen{#1}\@nil}
+\def\psset@@dimen#1#2\@nil{%
+ \if #1o\relax% outer
+ \def\psk@dimen{.5 }%
+ \else
+ \if #1m\relax% middle
+ \def\psk@dimen{0 }%
+ \else
+ \if #1i\relax% inner
+ \def\psk@dimen{-.5 }%
+ \fi\fi\fi}
+\psset@dimen{outer}
+%
+\def\psframe{\pst@object{psframe}}
+\def\psframe@i(#1){%
+ \@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}}
+\def\psframe@ii(#1)(#2){%
+ \begin@ClosedObj
+ \pst@getcoor{#1}\pst@tempa
+ \pst@@getcoor{#2}%
+ \addto@pscode{\psk@cornersize \pst@tempa \pst@coor \psk@dimen \tx@Frame}%
+ \def\pst@linetype{2}%
+ \showpointsfalse
+ \end@ClosedObj%
+}
+\def\tx@BezierNArray{BezierNArray }
+\def\tx@OpenBezier{OpenBezier }
+\def\tx@ClosedBezier{ClosedBezier }
+\def\tx@BezierShowPoints{BezierShowPoints }
+\def\psbezier{\pst@object{psbezier}}
+\def\psbezier@i{%
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors[\psbezier@ii%
+ }%
+}
+\def\psbezier@ii{%
+ \addto@pscode{%
+% DG/SR modification begin - Apr. 28, 1997 - Patch 1
+% \psbezier doesn't work inside \pscustom
+%\pst@cp
+% DG/SR modification end
+ \ifshowpoints true \else false \fi
+ \tx@OpenBezier
+ \ifshowpoints \tx@BezierShowPoints \fi}%
+ \end@OpenObj}
+\def\pscbezier{\pst@object{pscbezier}}
+\def\pscbezier@i{%
+ \begin@ClosedObj
+ \pst@getcoors[\pscbezier@ii}
+\def\pscbezier@ii{%
+ \addto@pscode{%
+ \ifshowpoints true \else false \fi
+ \tx@ClosedBezier
+ \ifshowpoints \tx@BezierShowPoints \fi}%
+ \chardef\pst@linetype=1
+ \end@ClosedObj}
+\def\tx@Parab{Parab }
+\def\parabola{\pst@object{parabola}}
+\def\parabola@i{\pst@getarrows\parabola@ii}
+\def\parabola@ii#1(#2)#3(#4){%
+\begin@OpenObj
+\pst@getcoor{#2}\pst@tempa
+\pst@@getcoor{#4}%
+\addto@pscode{\pst@tempa \pst@coor \tx@Parab}%
+\end@OpenObj}
+%
+\def\psset@gridwidth#1{\pst@getlength{#1}\psk@gridwidth}
+\psset@gridwidth{.8pt}
+\def\psset@griddots#1{%
+ \pst@cntg=#1\relax
+ \edef\psk@griddots{\the\pst@cntg}}
+\psset@griddots{0}
+\def\psset@gridcolor#1{\pst@getcolor{#1}\psgridcolor}
+\psset@gridcolor{black}
+\def\psset@subgridwidth#1{\pst@getlength{#1}\psk@subgridwidth}
+\psset@subgridwidth{.4pt}
+\def\psset@subgridcolor#1{\pst@getcolor{#1}\pssubgridcolor}
+\psset@subgridcolor{gray}
+\def\psset@subgriddots#1{%
+ \pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}}
+\psset@subgriddots{0}
+\def\psset@subgriddiv#1{%
+ \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}}
+\psset@subgriddiv{5}
+\def\psset@gridlabels#1{\pst@getlength{#1}\psk@gridlabels}
+\psset@gridlabels{10pt}
+\def\psset@gridlabelcolor#1{\pst@getcolor{#1}\psgridlabelcolor}
+\psset@gridlabelcolor{black}
+\def\tx@Grid{Grid }
+\def\psgrid{\pst@object{psgrid}}
+\def\psgrid@i{\@ifnextchar(%
+ {\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}}
+\def\psgrid@ii(#1){\@ifnextchar(%
+ {\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}}
+\def\psgrid@iii(#1)(#2){\@ifnextchar(%
+ {\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}}
+\def\psgrid@iv(#1)(#2)(#3){%
+ \begin@SpecialObj
+ \pst@getcoor{#1}\pst@tempA% hv 1.11
+ \pst@getcoor{#2}\pst@tempB % hv 1.11
+ \pst@@getcoor{#3}%
+ \ifnum\psk@subgriddiv>1
+ \addto@pscode{
+ gsave
+ \psk@subgridwidth SLW \pst@usecolor\pssubgridcolor
+ \pst@tempB \pst@coor \pst@tempA % hv 1.11
+% \pst@number\psxunit \pst@number\psyunit % hv 1.11
+ \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
+ \psk@subgriddiv\space \psk@subgriddots\space
+ {} 0 \tx@Grid
+ grestore
+ }%
+ \fi
+ \addto@pscode{%
+ gsave
+ \psk@gridwidth SLW \pst@usecolor\psgridcolor
+ \pst@tempB \pst@coor \pst@tempA % hv 1.11
+ \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
+% \pst@number\psxunit \pst@number\psyunit % hv 1.11
+ 1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor }
+ \psk@gridlabels \tx@Grid
+ grestore
+ }%
+ \end@SpecialObj%
+}
+%
+\newif\ifpsmathbox
+\psmathboxtrue
+\def\pst@mathflag{\z@}
+\newtoks\everypsbox
+\let\pst@thisbox\relax
+\long\def\pst@makenotverbbox#1#2{%
+ \edef\pst@mathflag{%
+ \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}%
+ \setbox\pst@hbox=\hbox{%
+ \ifcase\pst@mathflag\or$\m@th\textstyle\or$\m@th\displaystyle\fi
+ {\pst@thisbox\the\everypsbox#2}%
+ \ifnum\pst@mathflag>\z@$\fi% $
+ }%
+ #1%
+}
+\def\pst@makeverbbox#1{%
+ \def\pst@afterbox{#1}%
+ \edef\pst@mathflag{%
+ \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi%
+ }%
+ \afterassignment\pst@beginbox
+ \setbox\pst@hbox\hbox%
+}
+\def\pst@beginbox{%
+ \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi
+ \bgroup\aftergroup\pst@endbox
+ \pst@thisbox
+ \the\everypsbox%
+}
+\def\pst@endbox{%
+ \ifnum\pst@mathflag>\z@$\fi
+ \egroup
+ \pst@afterbox%
+}
+\def\pst@makebox{\pst@@makebox}
+\def\psverbboxtrue{\def\pst@@makebox{\pst@makeverbbox}}
+\def\psverbboxfalse{\def\pst@@makebox{\pst@makenotverbbox}}
+\psverbboxfalse
+\def\pst@longbox{%
+ \def\pst@makebox{%
+ \gdef\pst@makebox{\pst@@makebox}%
+ \pst@makelongbox%
+ }%
+}
+\def\pst@makelongbox#1{%
+ \def\pst@afterbox{#1}%
+ \edef\pst@mathflag{%
+ \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi%
+ }%
+ \setbox\pst@hbox\hbox\bgroup
+ \aftergroup\pst@afterbox
+ \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi
+ \begingroup
+ \pst@thisbox
+ \the\everypsbox%
+}
+\def\pst@endlongbox{%
+ \endgroup
+ \ifnum\pst@mathflag>\z@$\fi
+ \egroup%
+}
+\def\pslongbox#1#2{%
+%--------------- hv begin 2004-05-07 ---------- patch 15
+ \@namedef{#1}{\pst@longbox#2\ignorespaces}%
+% \@namedef{#1}{\pst@longbox#2}%
+%--------------- hv end 2004-05-07 ---------- patch 15
+ \@namedef{end#1}{\pst@endlongbox}%
+}
+\newdimen\psframesep
+\def\psset@framesep#1{\pssetlength\psframesep{#1}}
+\psset@framesep{3pt}
+\newif\ifpsboxsep
+\def\psset@boxsep#1{\@nameuse{psboxsep#1}}
+\psset@boxsep{true}
+\def\pst@useboxpar{%
+ \use@par
+ \if@star
+ \let\pslinecolor\psfillcolor
+ \solid@star
+ \let\solid@star\relax
+ \fi
+ \ifpsdoubleline \pst@setdoublesep \fi%
+}
+\def\psframebox{\pst@object{psframebox}}
+\def\psframebox@i{\pst@makebox\psframebox@ii}
+\def\psframebox@ii{%
+ \begingroup
+ \pst@useboxpar
+ \pst@dima=\pslinewidth
+ \advance\pst@dima by \psframesep
+ \pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima
+ \pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima
+ \pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima
+ \setbox\pst@hbox=\hbox{%
+ \ifpsboxsep\kern\pst@dima\fi
+ \begin@ClosedObj
+ \addto@pscode{%
+ \psk@cornersize
+ \pst@number\pst@dima neg
+ \pst@number\pst@dimb neg
+ \pst@number\pst@dimc
+ \pst@number\pst@dimd
+ .5
+ \tx@Frame%
+ }%
+ \def\pst@linetype{2}%
+ \showpointsfalse
+ \end@ClosedObj
+ \box\pst@hbox
+ \ifpsboxsep\kern\pst@dima\fi%
+ }%
+ \ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi
+ \leavevmode\box\pst@hbox
+ \endgroup%
+}
+\def\psdblframebox{\pst@object{psdblframebox}}
+\def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i}
+\def\psclip#1{%
+ \leavevmode
+ \begingroup
+ \begin@psclip
+ \begingroup
+ \def\use@pscode{%
+ \pstVerb{%
+ \pst@dict
+ /mtrxc CM def
+ CP CP T
+ \tx@STV
+ \psk@origin
+ \psk@swapaxes
+ newpath
+ \pst@code
+ clip
+ newpath
+ mtrxc setmatrix
+ moveto
+ 0 setgray
+ end
+ }%
+ \gdef\pst@code{}}%
+ \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
+ \hbox to\z@{#1}%
+ \endgroup
+ \def\endpsclip{%
+ \end@psclip
+ \endgroup}%
+ \ignorespaces}
+\def\endpsclip{\pst@misplaced\endpsclip}
+\let\begin@psclip\relax
+\def\end@psclip{\pstVerb{currentpoint initclip moveto}}
+\def\AltClipMode{%
+\def\end@psclip{\pstVerb{\pst@grestore}}%
+\def\begin@psclip{\pstVerb{gsave}}}
+\def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}}
+% DG modification begin - Apr. 3, 1997
+% From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus)
+%\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}}
+\def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}}
+% DG modification end
+\def\clipbox@@#1{%
+ \pssetlength\pst@dimg{#1}%
+ \leavevmode\hbox{%
+ \begin@psclip
+ \pst@Verb{%
+ CM \tx@STV CP T newpath
+ /a \pst@number\pst@dimg def
+ /w \pst@number{\wd\pst@hbox}a add def
+ /d \pst@number{\dp\pst@hbox}a add neg def
+ /h \pst@number{\ht\pst@hbox}a add def
+ a neg d moveto
+ a neg h L
+ w h L
+ w d L
+ closepath
+ clip
+ newpath
+ 0 0 moveto
+ setmatrix}%
+\unhbox\pst@hbox
+\end@psclip}}
+\def\psshadowbox{\pst@object{psshadowbox}}
+\def\psshadowbox@i{\pst@makebox\psshadowbox@ii}
+\def\psshadowbox@ii{%
+\begingroup
+\pst@useboxpar
+\psshadowtrue
+\psboxseptrue
+\def\psk@shadowangle{-45 }%
+\setbox\pst@hbox=\hbox{\psframebox@ii}%
+\pst@dimh=\psk@shadowsize\p@
+\pst@dimh=.7071\pst@dimh
+\pst@dimg=\dp\pst@hbox
+\advance\pst@dimg\pst@dimh
+\dp\pst@hbox=\pst@dimg
+\pst@dimg=\wd\pst@hbox
+\advance\pst@dimg\pst@dimh
+\wd\pst@hbox=\pst@dimg
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\pscirclebox{\pst@object{pscirclebox}}
+\def\pscirclebox@i{\pst@makebox\pscirclebox@ii}
+\def\pscirclebox@ii{%
+\begingroup
+\pst@useboxpar
+\setbox\pst@hbox=\hbox{%
+\pst@nodehook
+\pscirclebox@iii
+\box\pst@hbox}%
+\ifpsboxsep \pscirclebox@sep \fi
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\pscirclebox@iii{%
+\if@star
+\pslinewidth\z@
+\pstverb{\pst@dict \tx@STP \pst@usecolor\psfillcolor
+newpath \pscirclebox@iv \tx@SD end}%
+\else
+\begin@ClosedObj
+\def\pst@linetype{4}\showpointsfalse
+\addto@pscode{%
+\pscirclebox@iv CLW 2 div add 0 360 arc closepath}%
+\end@ClosedObj
+\fi}
+\def\pscirclebox@iv{%
+\pst@number{\wd\pst@hbox}2 div
+\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div
+2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll
+\tx@Pyth \pst@number\psframesep add }
+\def\pscirclebox@sep{%
+\pst@dimb=\ht\pst@hbox
+\advance\pst@dimb\dp\pst@hbox
+\divide\pst@dimb 2
+\pst@dima=.5\wd\pst@hbox
+\pst@pyth\pst@dima\pst@dimb\pst@dimc
+\advance\pst@dimc\pslinewidth
+\advance\pst@dimc\psframesep
+\advance\pst@dimb-\pst@dimc
+\setbox\pst@hbox=\hbox to2\pst@dimc{%
+\hss
+\vbox{\kern-\pst@dimb\box\pst@hbox}%
+\hss}%
+\advance\pst@dimb-\dp\pst@hbox
+\dp\pst@hbox=-\pst@dimb}
+\let\pst@nodehook\relax
+\def\psCirclebox{\pst@object{psCirclebox}}
+\def\psCirclebox@i{\pst@makebox\psCirclebox@ii}
+\def\psCirclebox@ii{%
+\begingroup
+\pst@useboxpar
+\pst@dima=\ht\pst@hbox
+\advance\pst@dima\dp\pst@hbox
+\divide\pst@dima\tw@
+\pssetlength\pst@dimb\psk@radius
+\setbox\pst@hbox=\hbox{%
+\pst@nodehook
+\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}%
+\box\pst@hbox}%
+\ifpsboxsep \psCirclebox@sep \fi
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\psCirclebox@sep{%
+\pst@dimc=\pst@dimb
+\advance\pst@dimb-\pst@dima
+\advance\pst@dima\pst@dimc
+\setbox\pst@hbox=\hbox to\tw@\pst@dimc{%
+\hss
+\vrule width \z@ depth \pst@dimb height \pst@dima
+\box\pst@hbox
+\hss}}%
+\def\psovalbox{\pst@object{psovalbox}}
+\def\psovalbox@i{\pst@makebox{\psovalbox@ii}}
+\def\psovalbox@ii{%
+\begingroup
+\pst@useboxpar
+\psovalbox@iii
+\ifpsboxsep\psovalbox@sep\fi
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\psovalbox@iii{%
+\psovalbox@iv
+\setbox\pst@hbox=\hbox{%
+\begin@ClosedObj
+\addto@pscode{%
+0 360
+\pst@number\pst@dimc CLW 2 div sub
+\pst@number\pst@dimd CLW 2 div sub
+\pst@number\pst@dima
+\pst@number\pst@dimb
+\tx@Ellipse
+closepath}%
+\def\pst@linetype{2}%
+\end@ClosedObj
+\unhbox\pst@hbox}}
+\def\psovalbox@iv{%
+\pst@dimc=\pslinewidth\advance\pst@dimc\psframesep
+\pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox
+\pst@dima=.5\wd\pst@hbox
+\pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox
+\pst@dimd=.707\pst@dimd
+\advance\pst@dimd\pst@dimc
+\advance\pst@dimc.707\wd\pst@hbox}
+\def\psovalbox@sep{%
+\setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}%
+\pst@dimg=\pst@dimd
+\advance\pst@dimg-\pst@dimb
+\dp\pst@hbox=\pst@dimg
+\advance\pst@dimd\pst@dimb
+\ht\pst@hbox=\pst@dimd}
+\def\psdiabox{\pst@object{psdiabox}}
+\def\psdiabox@i{\pst@makebox{\psdiabox@ii}}
+\def\psdiabox@ii{%
+\begingroup
+\pst@useboxpar
+\psdiabox@iii
+\ifpsboxsep\psdiabox@sep\fi
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\psdiabox@iv{%
+\pst@dimg=.707\pslinewidth
+\advance\pst@dimg.707\psframesep
+\pst@dima=\wd\pst@hbox
+\divide\pst@dima 2
+\pst@dimc=\pst@dima
+\advance\pst@dimc\pst@dimg
+\pst@dimd=\ht\pst@hbox
+\advance\pst@dimd\dp\pst@hbox
+\divide\pst@dimd 2
+\pst@dimb=\pst@dimd
+\advance\pst@dimb-\dp\pst@hbox
+\advance\pst@dimd\pst@dimg}
+\def\psdiabox@iii{%
+\psdiabox@iv
+\setbox\pst@hbox=\hbox{%
+\begin@ClosedObj
+\addto@pscode{%
+\psline@iii
+pop
+.5
+\pst@number\pst@dimc 2 mul \pst@number\pst@dimd 2 mul
+0
+\pst@number\pst@dima \pst@number\pst@dimb
+\tx@Diamond}%
+\def\pst@linetype{4}%
+\end@ClosedObj
+\box\pst@hbox}}
+\def\psdiabox@sep{%
+\setbox\pst@hbox\hbox to 4\pst@dimc{\hss\unhbox\pst@hbox\hss}%
+\multiply\pst@dimd 2
+\advance\pst@dimd\pst@dimb
+\ht\pst@hbox\pst@dimd
+\advance\pst@dimd-2\pst@dimb
+\dp\pst@hbox\pst@dimd}
+\def\psset@trimode#1{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil}
+\def\psset@@trimode#1#2#3\@nil{%
+\let\pst@tempg#1\relax
+\ifx\pst@tempg*%
+\let\psk@@trimode\@empty
+\let\pst@tempg#2\relax
+\else
+\let\psk@@trimode\relax
+\fi
+\edef\psk@trimode{%
+\ifx R\pst@tempg 1 \else\ifx D\pst@tempg 2
+\else\ifx L\pst@tempg 3 \else 0 \fi\fi\fi}}
+\psset@trimode{U}
+\def\pstribox{\pst@object{pstribox}}
+\def\pstribox@i{\pst@makebox{\pstribox@ii}}
+\def\pstribox@ii{%
+\begingroup
+\pst@useboxpar
+\pstribox@iii
+\ifpsboxsep\pstribox@sep\fi
+\leavevmode
+\box\pst@hbox
+\endgroup}
+\def\pstribox@iii{%
+\pstribox@iv
+\setbox\pst@hbox=\hbox{%
+\begin@ClosedObj
+\addto@pscode{%
+\psline@iii
+pop
+.5
+\pst@number\pst@dimc \pst@number\pst@dimd
+\ifodd\psk@trimode exch \fi
+\psk@trimode -90 mul
+\pst@number\pst@dima \pst@number\pst@dimb
+\tx@Triangle}%
+\def\pst@linetype{2}%
+\end@ClosedObj
+\box\pst@hbox}}
+\def\pstribox@iv{%
+\pst@dimh=\pslinewidth
+\advance\pst@dimh\psframesep
+\pst@dimg=\ht\pst@hbox
+\advance\pst@dimg-\dp\pst@hbox
+\divide\pst@dimg 2
+\edef\pst@tempa{\number\pst@dimg sp}% For use by nodes.
+\ifodd\psk@trimode
+\pst@dimb\pst@dimg
+\else
+\pst@dima=\wd\pst@hbox
+\divide\pst@dima 2
+\fi
+\ifcase\psk@trimode
+\pst@dimb=-\dp\pst@hbox
+\advance\pst@dimb-\pst@dimh
+\or
+\pst@dima=-\pst@dimh
+\or
+\pst@dimb=\ht\pst@hbox
+\advance\pst@dimb\pst@dimh
+\or
+\pst@dima=\wd\pst@hbox
+\advance\pst@dima\pst@dimh
+\fi
+\pst@dimd=\dp\pst@hbox
+\advance\pst@dimd\ht\pst@hbox
+\ifx\psk@@trimode\relax
+\pst@dimc=\wd\pst@hbox
+\advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh
+\multiply\pst@dimc 2
+\advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh
+\multiply\pst@dimd 2
+\else
+\ifodd\psk@trimode
+\advance\pst@dimd 1.1547\wd\pst@hbox
+\advance\pst@dimd 3.4641\pst@dimh
+\pst@dimc=.866\pst@dimd
+\else
+\advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2)
+\advance\pst@dimd 3\pst@dimh
+\pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3))
+\fi
+\fi}
+\def\pstribox@sep{%
+\ifodd\psk@trimode
+\advance\pst@dimb.5\pst@dimd
+\ht\pst@hbox=\pst@dimb
+\advance\pst@dimd-\pst@dimb
+\dp\pst@hbox=\pst@dimd
+\else
+\setbox\pst@hbox\hbox to \pst@dimc{\hss\unhbox\pst@hbox\hss}%
+\global\pst@dimg=.5\pst@dimc
+\fi
+\ifcase\psk@trimode
+\dp\pst@hbox-\pst@dimb
+\advance\pst@dimd\pst@dimb
+\ht\pst@hbox\pst@dimd
+\or
+\pst@dimg=.5\wd\pst@hbox
+\global\advance\pst@dimg-\pst@dima
+\setbox\pst@hbox\hbox to \pst@dimc{\kern-\pst@dima\box\pst@hbox\hss}%
+\or
+\ht\pst@hbox\pst@dimb
+\advance\pst@dimd-\pst@dimb
+\dp\pst@hbox\pst@dimd
+\or
+\pst@dimg=\pst@dimc
+\advance\pst@dimg-\pst@dima
+\global\advance\pst@dimg.5\wd\pst@hbox
+\setbox\pst@hbox\hbox to \pst@dimc{%
+\hss\box\pst@hbox\kern\psframesep\kern\pslinewidth}%
+\fi}
+\def\psset@arcsepA#1{\pst@getlength{#1}\psk@arcsepA}
+\def\psset@arcsepB#1{\pst@getlength{#1}\psk@arcsepB}
+\def\psset@arcsep#1{%
+\psset@arcsepA{#1}\let\psk@arcsepB\psk@arcsepA}
+\psset@arcsep{0}
+\def\tx@ArcArrow{ArcArrow }
+\def\psarc{\pst@object{psarc}}
+\def\psarc@i{\@ifnextchar({\psarc@iii}{\psarc@ii}}
+\def\psarc@ii#1{\addto@par{arrows=#1}%
+ \@ifnextchar({\psarc@iii}{\psarc@iii(0,0)}%
+}
+\def\psarc@iii(#1)#2#3#4{%
+ \begin@OpenObj
+ \pst@getangle{#3}\pst@tempa
+ \pst@getangle{#4}\pst@tempb
+ \pst@@getcoor{#1}%
+ \pssetlength\pst@dima{#2}%
+ \addto@pscode{\psarc@iv \psarc@v}%
+ \gdef\psarc@type{0}%
+ \showpointsfalse
+ \end@OpenObj%
+}
+\def\psarc@iv{%
+ \pst@coor /y ED /x ED
+ /r \pst@number\pst@dima def
+ /c 57.2957 r \tx@Div def
+ /angleA
+ \pst@tempa
+ \psk@arcsepA c mul 2 div
+ \ifcase \psarc@type add \or sub \fi
+ def
+ /angleB
+ \pst@tempb
+ \psk@arcsepB c mul 2 div
+ \ifcase \psarc@type sub \or add \fi
+ def
+ \ifshowpoints\psarc@showpoints\fi
+ \ifx\psk@arrowA\@empty
+ \ifnum\psk@liftpen=2
+ r angleA \tx@PtoC
+ y add exch x add exch moveto
+ \fi
+ \fi}
+% hv ---- 1.10 2005-05-05 ----------------------> hv begin
+\def\psarc@v{%
+ x y r
+ angleA
+ \ifx\psk@arrowA\@empty\else
+ { ArrowA CP }
+ r 0 gt \pslbrace
+ { \ifcase\psarc@type add \or sub \fi } \psrbrace\pslbrace
+ { \ifcase\psarc@type sub \or add \fi } \psrbrace ifelse
+% { \ifcase\psarc@type add \or sub \fi }
+ \tx@ArcArrow
+ \fi
+ angleB
+ \ifx\psk@arrowB\@empty\else
+ { ArrowB }
+ r 0 gt \pslbrace
+ { \ifcase\psarc@type sub \or add \fi } \psrbrace\pslbrace
+ { \ifcase\psarc@type add \or sub \fi } \psrbrace ifelse
+% { \ifcase\psarc@type sub \or add \fi }
+ \tx@ArcArrow
+ \fi
+\ifcase\psarc@type arc \or arcn \fi}
+% hv ----- 1.10 2005-05-05 ------------------------> end
+%
+\def\psarc@type{0}
+\def\psarc@showpoints{%
+ gsave
+ newpath
+ x y moveto
+ x y r \pst@tempa \pst@tempb
+ \ifcase\psarc@type arc \or arcn \fi
+ closepath
+ CLW 2 div SLW
+ [ \psk@dash\space ] 0 setdash stroke
+ grestore }
+\def\psarcn{\pst@object{psarcn}}
+\def\psarcn@i{\def\psarc@type{1}\psarc@i}
+%
+%------------------ tvz/DG/hv (2004-05-10) begin -------------------%%
+% from Denis Giroux: http://www.tug.org/pipermail/pstricks/2001/000507.html
+%
+% I - Definition of \psellipticwedge, a generalization of \pswedge for wedges
+% of ellipses (from the code of \pswedge and \psellipse)
+%
+\def\psellipticwedge{\def\pst@par{}\pst@object{psellipticwedge}}
+\def\psellipticwedge@i(#1){%
+ \@ifnextchar({\psellipticwedge@ii(#1)}{\psellipticwedge@ii(0,0)(#1)}}
+\def\psellipticwedge@ii(#1)(#2)#3#4{%
+ \begin@ClosedObj
+ \pst@getangle{#3}\pst@tempa
+ \pst@getangle{#4}\pst@tempb
+ \pst@getcoor{#1}\pst@tempc
+ \pst@@getcoor{#2}%
+ \def\pst@linetype{1}%
+ \addto@pscode{%
+ \pst@tempa \pst@tempb
+ \pst@coor
+ \pst@tempc moveto
+ \ifdim\psk@dimen\p@=\z@\else
+ \psk@dimen CLW mul dup 3 1 roll
+ sub 3 1 roll sub exch
+ \fi
+ \pst@tempc
+ \tx@Ellipse
+ closepath%
+ }%
+ \showpointsfalse
+ \end@ClosedObj%
+}
+%
+% Code mainly from "pstricks.tex'' 0.94 beta (TvZ)
+%
+\def\psellipticarcn{\def\pst@par{}\pst@object{psellipticarcn}}
+\def\psellipticarcn@i{\let\if@psarcn\iftrue\psellipticarc@ii}
+%
+\def\psellipticarc{\def\pst@par{}\pst@object{psellipticarc}}
+\def\psellipticarc@i{\let\if@psarcn\iffalse\psellipticarc@ii}
+%
+\let\if@psarcn\iffalse
+\def\psellipticarc@ii{\pst@getarrows\psellipticarc@iii}
+\def\psellipticarc@iii(#1){%
+ \@ifnextchar({\psellipticarc@iv(#1)}{\psellipticarc@iv(0,0)(#1)}}
+\def\psellipticarc@iv(#1)(#2)#3#4{%
+ \begin@OpenObj
+ \pst@getcoor{#1}\pst@tempa
+ \pst@getcoor{#2}\pst@tempb
+ \pst@getangle{#3}\pst@tempc
+ \pst@getangle{#4}\pst@tempd
+ \addto@pscode{\psellipticarc@definearg \psellipticarc@draw}%
+ \showpointsfalse
+ \end@OpenObj%
+}
+\def\psellipticarc@definearg{%
+ \pst@tempa /y ED /x ED % Origin
+ \pst@tempb % radii. Now adjust:
+ \ifdim\psk@dimen\p@=\z@\else
+ \psk@dimen CLW mul dup 3 1 roll
+ sub 3 1 roll sub exch
+ \fi
+ /ry ED /rx ED
+ /angleA
+ /d { \if@psarcn sub \else add \fi } def
+ \pst@tempc \psk@arcsepA 2 div
+ ArcAdjust
+ def
+ /angleB
+ /d { \if@psarcn add \else sub \fi } def
+ \pst@tempd \psk@arcsepB 2 div
+ ArcAdjust
+ def
+ \ifshowpoints\psellipticarc@showpoints\fi
+ \ifx\psk@arrowA\@empty
+ \ifnum\psk@liftpen=2
+ angleA cos rx mul x add
+ angleA sin ry mul y add
+ moveto
+ \fi
+ \fi%
+}
+\def\psellipticarc@draw{%
+ 0 0 1
+ angleA
+ \ifx\psk@arrowA\@empty\else
+ { ArrowA CP }
+ { \if@psarcn sub \else add \fi }
+ EllipticArcArrow
+ \fi
+ angleB
+ \ifx\psk@arrowB\@empty\else
+ { ArrowB }
+ { \if@psarcn add \else sub \fi }
+ EllipticArcArrow
+ \fi
+ /mtrx CM def
+ x y T
+ rx ry scale
+ \if@psarcn arcn \else arc \fi
+ mtrx setmatrix%
+}
+\def\psellipticarc@showpoints{%
+ gsave
+ /mtrx CM def
+ x y T
+ rx ry scale
+ 0 0 moveto
+ 0 0 1 \pst@tempc \pst@tempd
+ \ifcase\psarc@type arc \or arcn \fi
+ closepath
+ mtrx setmatrix
+ CLW 2 div SLW
+ [ \psk@dash\space ] 0 setdash stroke
+ grestore %
+}
+\def\pscircle{\pst@object{pscircle}}
+\def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}}
+\def\pscircle@do(#1)#2{%
+\if@star
+{\use@par\qdisk(#1){#2}}%
+\else
+\begin@ClosedObj
+\pst@@getcoor{#1}%
+\pssetlength\pst@dimc{#2}%
+\def\pst@linetype{4}%
+\addto@pscode{%
+\pst@coor
+\pst@number\pst@dimc
+\psk@dimen CLW mul sub
+0 360 arc
+closepath}%
+\showpointsfalse
+\end@ClosedObj
+\fi
+\ignorespaces}
+\def\qdisk(#1)#2{%
+\def\pst@par{}%
+\begin@SpecialObj
+\pst@@getcoor{#1}%
+\pssetlength\pst@dimg{#2}%
+\addto@pscode{\pst@coor \pst@number\pst@dimg \tx@SD}%
+\end@SpecialObj}
+\def\psset@radius#1{\pst@@getlength{#1}\psk@radius}
+\psset@radius{.25cm}
+\def\psCircle{\pst@object{psCircle}}
+\def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}}
+\def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}}
+\def\pswedge{\pst@object{pswedge}}
+\def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}}
+\def\pswedge@ii(#1)#2#3#4{%
+ \begin@ClosedObj
+ \pssetlength\pst@dimc{#2}
+ \pst@getangle{#3}\pst@tempa
+ \pst@getangle{#4}\pst@tempb
+ \pst@@getcoor{#1}%
+ \def\pst@linetype{1}%
+ \addto@pscode{%
+ \pst@coor
+ 2 copy
+ moveto
+ \pst@number\pst@dimc \psk@dimen CLW mul sub % Adjusted radius
+ \pst@tempa \pst@tempb
+ arc
+ closepath}%
+ \showpointsfalse
+ \end@ClosedObj%
+}
+\def\tx@Ellipse{Ellipse }
+\def\psellipse{\pst@object{psellipse}}
+\def\psellipse@i(#1){\@ifnextchar({\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}}
+\def\psellipse@ii(#1)(#2){%
+ \begin@ClosedObj
+ \pst@getcoor{#1}\pst@tempa
+ \pst@@getcoor{#2}%
+ \addto@pscode{%
+ 0 360
+ \pst@coor
+ \ifdim\psk@dimen\p@=\z@\else
+ \psk@dimen CLW mul
+ dup 4 -1 roll sub neg 3 1 roll sub
+ \fi
+ \pst@tempa
+ \tx@Ellipse
+ closepath%
+ }%
+ \def\pst@linetype{2}%
+ \end@ClosedObj%
+}
+\def\multips{\@ifnextchar({\def\pst@par{}\multips@ii}{\multips@i}}
+\def\multips@i#1{\def\pst@par{rot=#1}\multips@ii}
+\def\multips@ii(#1){\@ifnextchar({\multips@iii(#1)}{\multips@iii(\z@,\z@)(#1)}}
+\long\def\multips@iii(#1)(#2)#3#4{%
+ \begingroup
+%----------------- hv 1.10 ------------------
+ \pst@killglue
+%----------------- hv 1.10 ------------------
+ \use@par
+ \pst@getcoor{#1}\pst@tempa
+ \pst@@getcoor{#2}%
+ \pst@cnta=#3\relax
+ \init@pscode
+ \addto@pscode{%
+ \pst@tempa T \the\pst@cnta\space \pslbrace
+ gsave \ifx\psk@rot\@empty\else\psk@rot rotate \fi}%
+ \hbox to\z@{%
+ \def\init@pscode{%
+ \addto@pscode{%
+ gsave
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor}}%
+ \def\use@pscode{\addto@pscode{grestore}}%
+ \def\psclip##1{\pst@misplaced\psclip}%
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
+ #4%
+ }%
+ \addto@pscode{grestore \pst@coor T \psrbrace repeat}%
+ \leavevmode
+ \use@pscode
+ \endgroup
+ \ignorespaces}
+\def\psscalebox#1{\pst@makebox{\ps@scalebox{#1}}}
+\def\ps@scalebox#1{%
+ \begingroup
+ \pst@getscale{#1}\pst@tempa
+ \let\pst@tempc\pst@tempg
+ \let\pst@tempd\pst@temph
+ \ps@@scalebox
+ \endgroup}
+\def\ps@@scalebox{%
+ \leavevmode
+ \hbox{%
+ \ifdim\pst@tempd\p@<\z@
+ \pst@dimg=\pst@tempd\ht\pst@hbox
+ \pst@dimh=\pst@tempd\dp\pst@hbox
+ \dp\pst@hbox=-\pst@dimg
+ \ht\pst@hbox=-\pst@dimh
+ \else
+ \ht\pst@hbox=\pst@tempd\ht\pst@hbox
+ \dp\pst@hbox=\pst@tempd\dp\pst@hbox
+ \fi
+ \pst@dima=\pst@tempc\wd\pst@hbox
+ \ifdim\pst@dima<\z@\kern-\pst@dima\fi
+ \pst@Verb{CP CP translate \pst@tempa \tx@NET}%
+ \hbox to \z@{\box\pst@hbox\hss}%
+ \pst@Verb{%
+ CP CP translate
+ 1 \pst@tempc div 1 \pst@tempd div scale
+ \tx@NET}%
+ \ifdim\pst@dima>\z@\kern\pst@dima\fi%
+ }%
+}
+\pslongbox{Scalebox}{\psscalebox}
+%
+\def\psscaleboxto(#1,#2){\pst@makebox{\ps@scaleboxto(#1,#2)}}
+\def\ps@scaleboxto(#1,#2){%
+ \begingroup
+ \pssetlength\pst@dima{#1}%
+ \pssetlength\pst@dimb{#2}%
+ \ifdim\pst@dima=\z@\else
+ \pst@divide{\pst@dima}{\wd\pst@hbox}\pst@tempc
+ \edef\pst@tempc{\pst@tempc\space}%
+ \fi
+ \ifdim\pst@dimb=\z@
+ \ifdim\pst@dima=\z@
+ \@pstrickserr{%
+ \string\psscaleboxto\space dimensions cannot both be zero}\@ehpa
+ \def\pst@tempa{}%
+ \def\pst@tempc{1 }%
+ \def\pst@tempd{1 }%
+ \else
+ \let\pst@tempd\pst@tempc
+ \fi
+ \else
+ \pst@dimc=\ht\pst@hbox
+ \advance\pst@dimc\dp\pst@hbox
+ \pst@divide{\pst@dimb}{\pst@dimc}\pst@tempd
+ \edef\pst@tempd{\pst@tempd\space}%
+ \ifdim\pst@dima=\z@ \let\pst@tempc\pst@tempd \fi
+ \fi
+ \edef\pst@tempa{\pst@tempc \pst@tempd scale }%
+ \ps@@scalebox
+ \endgroup}
+\pslongbox{Scaleboxto}{\psscaleboxto}
+%
+\def\tx@Rot{Rot }
+\def\psrotateleft{\pst@makebox{\ps@rotateleft\pst@hbox}}
+\def\ps@rotateleft#1{%
+\leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
+\pst@Verb{90 \tx@Rot}
+\vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}%
+\pst@Verb{-90 \tx@Rot}}}}
+\def\psrotateright{\pst@makebox{\ps@rotateright\pst@hbox}}
+\def\ps@rotateright#1{%
+% ----------- hv begin 2004-05-07 ----------- patch 15
+% \hbox{%
+ \leavevmode\hbox{%
+% ----------- hv end 2004-05-07 ----------- patch 15
+ \hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
+ \pst@Verb{-90 \tx@Rot}
+ \vbox to \z@{\hbox to \z@{\hss\box#1}\vss}%
+ \pst@Verb{90 \tx@Rot}}}}
+\def\psrotatedown{\pst@makebox{\ps@rotatedown\pst@hbox}}
+\def\ps@rotatedown#1{%
+\hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1%
+\pst@Verb{180 \tx@Rot}%
+\vbox to \z@{\hbox to \z@{\box#1\hss}\vss}%
+\pst@Verb{-180 \tx@Rot}}}}
+\pslongbox{Rotateleft}{\psrotateleft}
+\pslongbox{Rotateright}{\psrotateright}
+\pslongbox{Rotatedown}{\psrotatedown}
+% ----------- hv begin 2004-09-23 ----------- 1.11
+% compatibility stuff
+\let\rotateleft\psrotateleft
+\let\rotateright\psrotateright
+\let\rotatedown\psrotatedown
+% ----------- hv end 2005-09-23 ----------- 1.11
+\def\pst@starbox{%
+\setbox\pst@hbox\hbox{\psframebox*[boxsep=false]{\unhbox\pst@hbox}}}
+\def\pst@@makesmall#1{%
+\setbox#1=\hbox to\z@{\hss\vbox to \z@{\vss\box#1\vss}\hss}}
+\def\pst@@@makesmall#1{%
+\pst@dimh=\psk@xref\wd#1%
+\ifx\psk@yref\relax
+\pst@dimg=\dp#1%
+\else
+\pst@dimg=\psk@yref\ht#1%
+\advance\pst@dimg\psk@yref\dp#1%
+\fi
+\setbox#1=\hbox to\z@{%
+\kern-\pst@dimh\vbox to\z@{\vss\box#1\kern-\pst@dimg}\hss}}
+\def\psset@ref#1{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil}
+\def\psset@@ref#1#2,#3,#4\@nil{%
+\def\psk@xref{.5}%
+\def\psk@yref{.5}%
+\let\pst@makesmall\pst@@@makesmall
+\ifx\@empty#3\@empty
+\@nameuse{getref@#1}%
+\@nameuse{getref@#2}%
+\else
+\pst@checknum{#1#2}\psk@xref
+\pst@checknum{#3}\psk@yref
+\fi}
+\def\getref@c{\let\pst@makesmall\pst@@makesmall}
+\def\getref@t{\def\psk@yref{1}}
+\def\getref@b{\def\psk@yref{0}}
+\def\getref@B{\let\psk@yref\relax}
+\def\getref@l{\def\psk@xref{0}}
+\def\getref@r{\def\psk@xref{1}}
+\psset@ref{c}
+\def\psset@rot#1{%
+\pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil}
+\def\psset@@rot#1\@nil{%
+\def\next##1@#1=##2@##3\@nil{%
+\ifx\relax##2%
+\pst@getangle{#1}\psk@rot
+\else
+\def\psk@rot{##2}%
+\fi}%
+\expandafter\next\pst@rottable @#1=\relax @\@nil}
+\def\psset@@@rot#1#2\@nil{%
+\psset@@rot#2\@nil
+\edef\psk@rot{\pst@rotlist \ifx\psk@rot\@empty\else\psk@rot add \fi}}
+\def\pst@rotlist{mark RAngle /a ED cleartomark a neg }
+\def\pst@rottable{%
+@0=%
+@U=%
+@L=90 %
+@D=180 %
+@R=-90 %
+@N=\pst@rotlist
+@W=\pst@rotlist 90 add %
+@S=\pst@rotlist 180 add %
+@E=\pst@rotlist 90 sub }
+\psset@rot{0}
+\def\tx@RotBegin{RotBegin }
+\def\tx@RotEnd{RotEnd }
+\def\pst@rotate#1#2{%
+ \ifx#1\@empty\else
+ \setbox#2=\hbox{\pst@Verb{#1 \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}%
+ \fi%
+}
+\def\psput@cartesian#1{%
+ \hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}%
+}
+\def\psput@special#1{%
+ \hbox{%
+ \pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin}%
+ \box#1%
+ \pst@Verb{\tx@PutEnd}%
+ }%
+}
+\def\tx@PutCoor{PutCoor }
+\def\tx@PutBegin{PutBegin }
+\def\tx@PutEnd{PutEnd }
+\def\rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\rput@i}{\rput@ii}}}
+\def\rput@i[#1]{\addto@par{ref={#1}}\rput@ii}
+\def\rput@ii{\@ifnextchar({\rput@iv}{\rput@iii}}
+\def\rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\rput@iv}{\rput@iv(\z@,\z@)}}
+\def\rput@iv(#1){\pst@killglue\pst@makebox{\rput@v{#1}}}
+\def\rput@v#1{%
+ \begingroup
+ \use@par
+ \if@star\pst@starbox\fi
+ \pst@makesmall\pst@hbox
+ \pst@rotate\psk@rot\pst@hbox
+ \psput@{#1}\pst@hbox
+ \endgroup
+ \ignorespaces%
+}
+\def\multirput{%
+ \def\pst@par{}%
+ \pst@ifstar{\@ifnextchar[{\multirput@i}{\multirput@ii}}%
+}
+\def\multirput@i[#1]{\addto@par{ref={#1}}\multirput@ii}
+\def\multirput@ii{\@ifnextchar({\multirput@iv}{\multirput@iii}}
+\def\multirput@iii#1{\addto@par{rot={#1}}\multirput@iv}
+\def\multirput@iv(#1){%
+ \@ifnextchar({\multirput@v(#1)}{\multirput@v(\z@,\z@)(#1)}%
+}
+\def\multirput@v(#1,#2)(#3,#4)#5{%
+ \pst@makebox{\multirput@vi(#1,#2)(#3,#4){#5}}%
+}
+\def\multirput@vi(#1,#2)(#3,#4)#5{%
+ \pst@killglue
+ \begingroup
+ \use@par
+ \if@star\pst@starbox\fi
+ \pst@makesmall\pst@hbox
+ \pst@rotate\psk@rot\pst@hbox
+ \pssetxlength\pst@dima{#1}%
+ \pssetylength\pst@dimb{#2}%
+ \pssetxlength\pst@dimc{#3}%
+ \pssetylength\pst@dimd{#4}%
+ \pst@cntg=#5\relax
+ \pst@cnth=\@ne
+ \leavevmode
+ \loop
+ \vbox to \z@{%
+ \vss
+ \hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}%
+ \vskip\pst@dimb%
+ }%
+ \ifnum\pst@cntg>\pst@cnth
+ \advance\pst@dima\pst@dimc
+ \advance\pst@dimb\pst@dimd
+ \advance\pst@cnth\@ne
+ \repeat
+ \endgroup
+ \ignorespaces%
+}
+\newif\if@fixedradius
+\def\cput{\pst@object{cput}}
+\def\cput@i{\@fixedradiusfalse\cput@ii}
+\def\cput@ii{\pst@killglue\@ifnextchar({\cput@iv}{\cput@iii}}
+\def\cput@iii#1{%
+ \addto@par{rot={#1}}%
+ \@ifnextchar({\cput@iv}{\cput@iv(\z@,\z@)}%
+}
+\def\cput@iv(#1){\pst@makebox{\cput@v{#1}}}
+ \def\cput@v#1{%
+ \begingroup
+ \use@par
+ \setbox\pst@hbox=\hbox{%
+ \psboxsepfalse
+ \if@fixedradius\psCirclebox@ii\else\pscirclebox@ii\fi%
+ }%
+ \pst@@makesmall\pst@hbox
+ \pst@rotate\psk@rot\pst@hbox
+ \psput@{#1}\pst@hbox
+ \endgroup
+ \ignorespaces%
+}
+\def\Cput{\pst@object{Cput}}
+\def\Cput@i{\@fixedradiustrue\cput@ii}
+\newdimen\pslabelsep
+\def\psset@labelsep#1{\pssetlength\pslabelsep{#1}}
+\psset@labelsep{5pt}
+\def\psset@refangle#1{\pst@expandafter\psset@@refangle{#1}\@nil}
+\def\psset@@refangle#1\@nil{%
+\def\next##1@#1=##2"##3@##4\@nil{%
+\ifx\relax##2%
+\pst@getangle{#1}\psk@refangle
+\def\psk@uputref{}%
+\else
+\def\psk@refangle{##2 }%
+\def\psk@uputref{##3}%
+\fi}%
+\expandafter\next\pst@refangletable @#1=\relax"@\@nil}
+\def\pst@refangletable{%
+@r=0"20%
+@u=90"02%
+@l=180"10%
+@d=-90"01%
+@ur=45"22%
+@ul=135"12%
+@dr=-135"21%
+@dl=-45"11}
+\psset@refangle{0}
+% DG/SR modification begin - Mar. 24, 1999 - Patch 10
+%\def\uput{\def\pst@par{}\@ifnextchar[{\uput@ii}{\uput@i}}
+\def\uput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\uput@ii}{\uput@i}}}
+% DG/SR modification end
+\def\uput@i#1{\addto@par{labelsep=#1}\uput@ii}
+\def\uput@ii[#1]{%
+\addto@par{refangle={#1}}%
+\@ifnextchar({\uput@iv}{\uput@iii}}
+\def\uput@iii#1{%
+\addto@par{rot={#1}}%
+\@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}}
+\def\uput@iv(#1){\pst@killglue\pst@makebox{\uput@v{#1}}}
+\def\uput@v#1{%
+\begingroup
+\use@par
+\if@star\pst@starbox\fi
+\uput@vi
+\psput@{#1}\pst@hbox
+\endgroup
+\ignorespaces}
+\def\uput@vi{%
+\ifx\psk@uputref\@empty
+\uput@vii\tx@UUput{}%
+\else
+\ifx\psk@rot\@empty
+\expandafter\uput@viii\psk@uputref
+\else
+\uput@vii\tx@UUput{}%
+\fi
+\fi}
+\def\uput@vii#1#2{%
+ \edef\pst@coor{%
+ \pst@number\pslabelsep
+ #2%
+ \pst@number{\wd\pst@hbox}%
+ \pst@number{\ht\pst@hbox}%
+ \pst@number{\dp\pst@hbox}%
+ \psk@refangle\space \ifx\psk@rot\@empty\else\psk@rot\space sub \fi
+ \tx@Uput #1}%
+ \setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}%
+ \setbox\pst@hbox=\psput@special\pst@hbox
+ \ifx\psk@rot\@empty\else\pst@rotate\psk@rot\pst@hbox\fi}
+\def\uput@viii#1#2{%
+ \ifnum#1>\z@\ifnum#2>\z@\pslabelsep=.707\pslabelsep\fi\fi
+ \setbox\pst@hbox=\vbox to\z@{%
+ \ifnum#2=1 \vskip\pslabelsep\else\vss\fi
+ \hbox to\z@{%
+ \ifnum#1=2 \hskip\pslabelsep\else\hss\fi
+ \box\pst@hbox
+ \ifnum#1=1 \hskip\pslabelsep\else\hss\fi}%
+ \ifnum#2=2 \vskip\pslabelsep\else\vss\fi}}
+\def\tx@Uput{Uput }
+\def\tx@UUput{UUput }
+\def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}}
+\def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii}
+\def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}}
+\def\Rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\Rput@iv}{\Rput@iv(\z@,\z@)}}
+\def\Rput@iv(#1){\pst@killglue\pst@makebox{\Rput@v{#1}}}
+\def\Rput@v#1{%
+\begingroup
+\use@par
+\if@star\pst@starbox\fi
+\Rput@vi
+\pst@makesmall\pst@hbox
+\pst@rotate\psk@rot\pst@hbox
+\psput@{#1}\pst@hbox
+\endgroup
+\ignorespaces}
+\def\Rput@vi{%
+\pst@dimg=\dp\pst@hbox
+\advance\pst@dimg\pslabelsep
+\dp\pst@hbox=\pst@dimg
+\pst@dimg=\ht\pst@hbox
+\advance\pst@dimg\pslabelsep
+\ht\pst@hbox=\pst@dimg
+\setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}%
+\def\oldpsput{%
+\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}}
+\def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii}
+\def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}}
+\def\oldpsput@iii<#1>{\rput@iii{#1}}
+\def\OldPsput{\let\psput\oldpsput}
+\def\NewPsput{\let\psput\rput}
+%
+% ----------- 1.10/12 beg hv -------------------
+\newpsstyle{gridstyle}{subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt}
+\newif\ifshowgrid
+\def\psset@showgrid#1{\@nameuse{showgrid#1}}
+\psset@showgrid{false}
+\newdimen\psk@shift
+\def\psset@shift#1{\pssetlength\pst@dimg{#1}%
+ \psk@shift\pst@dimg}
+% \global\psk@shift\pst@dimg}
+\psset@shift{0}
+% ----------- 1.10/12 end hv -------------------
+%
+\def\pspicture{\begingroup\pst@ifstar\pst@picture}
+\def\pst@picture{%
+\@ifnextchar[{\pst@@picture}{\pst@@picture[]}}
+\def\pst@@picture[#1]#2(#3,#4){%
+\@ifnextchar({\pst@@@picture[#1](#3,#4)}%
+{\pst@@@picture[#1](0,0)(#3,#4)}}
+%
+\def\pst@@@picture[#1](#2,#3)(#4,#5){%
+ \pssetxlength\pst@dima{#2}%
+ \pssetylength\pst@dimb{#3}%
+ \pssetxlength\pst@dimc{#4}%
+ \pssetylength\pst@dimd{#5}%
+ \ifdim\pst@dima>\pst@dimc%
+ \pst@dimg=\pst@dima%
+ \pst@dima=\pst@dimc%
+ \pst@dimc=\pst@dimg%
+ \fi%
+ \ifdim\pst@dimb>\pst@dimd%
+ \pst@dimg=\pst@dimb%
+ \pst@dimb=\pst@dimd%
+ \pst@dimd=\pst@dimg%
+ \fi%
+ \setbox\pst@hbox=\hbox\bgroup%
+ \begingroup\KillGlue%
+ \@ifundefined{@latexerr}{}{\let\unitlength\psunit}%
+ \edef\pic@coor{(#2,#3)(#2,#3)(#4,#5)}%
+% ----------- 1.10/12 beg hv -------------------
+ \psset{showgrid=false}% % for nested pspicture environemnets
+ \def\pst@tempA{#1}%
+ \ifx\pst@tempA\@empty\else\psset{#1}\fi% sets the shift and grid option
+ \ifshowgrid\psgrid[style=gridstyle]\fi%
+% ----------- 1.10/12 end hv -------------------
+% \ignorespaces%
+}
+\def\pic@coor{(0,0)(0,0)(10,10)}
+\newdimen\pst@shift
+\def\endpspicture{%
+ \pst@killglue
+ \global\pst@shift=\psk@shift% in fact of the following endgroup
+ \endgroup
+ \egroup
+ \ifdim\wd\pst@hbox=\z@\else
+ %\@pstrickserr{Extraneous space in the pspicture environment}%
+ %{Type \space <return> \space to procede.}%
+ \fi
+ \ht\pst@hbox=\pst@dimd
+ \dp\pst@hbox=-\pst@dimb
+ \setbox\pst@hbox=\hbox{%
+ \kern-\pst@dima
+% ----------- 1.10/12 beg hv -------------------
+% \advance\pst@dimd-\pst@dimb%
+% \pst@dimd=\pst@shift\pst@dimd%
+% \advance\pst@dimd\pst@dimb
+ \pst@dimd-\pst@shift
+% ----------- 1.10/12 end hv -------------------
+ \advance\pst@dimd\pst@dimb
+ \lower\pst@dimd%
+ \box\pst@hbox%
+ \kern\pst@dimc}%
+ \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi
+ \leavevmode\box\pst@hbox
+ \endgroup%
+ \global\psk@shift\z@% restore value
+}
+\@namedef{pspicture*}{\pspicture*}
+\@namedef{endpspicture*}{\endpspicture}
+%
+\def\tx@BeginOL{BeginOL }
+\def\tx@InitOL{InitOL }
+\def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}}
+\def\AltOverlayMode{%
+ \def\pst@initoverlay##1{%
+ \pst@Verb{%
+ \tx@InitOL
+ /Visible { initclip } def
+ /Invisible {
+ CP newpath OLUnit itransform moveto clip newpath moveto
+ } def
+ /TheOL (##1) def}}}
+\def\pst@overlay#1{%
+ \edef\curr@overlay{#1}%
+ \pst@Verb{(#1) BOL}%
+ \aftergroup\pst@endoverlay}
+\def\pst@endoverlay{%
+ \pst@Verb{(\curr@overlay) BOL}}
+\def\curr@overlay{all}
+\newbox\theoverlaybox
+\def\overlaybox{%
+ \global\setbox\theoverlaybox=\hbox\bgroup
+ \begingroup
+ \let\psoverlay\pst@overlay
+ \def\overlaybox{%
+ \@pstrickserr{Overlays cannot be nested}\@eha}%
+ \def\putoverlaybox{%
+ \@pstrickserr{You must end the overlay box
+ before using \string\putoverlaybox}}%
+ \psoverlay{main}%
+ \ignorespaces}
+\def\endoverlaybox{\endgroup\egroup}
+\def\putoverlaybox#1{%
+\hbox{\pst@initoverlay{#1}\copy\theoverlaybox}}
+\def\psoverlay{\@pstrickserr{\string\psoverlay\space
+can only be used after \string\overlaybox}}
+\ifx\pstcustomize\relax \input pstricks.con \fi
+\catcode`\@=\PstAtCode\relax
+%
+\endinput
+%%
+%% END: pstricks.tex
diff --git a/Master/texmf-dist/tex/generic/pstricks/textures.con b/Master/texmf-dist/tex/generic/pstricks/textures.con
new file mode 100644
index 00000000000..3a2b622f17c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/textures.con
@@ -0,0 +1,29 @@
+%% BEGIN pstricks.con (for Textures 1.7 and 1.8 driver)
+%%
+%% Configuration file for PSTricks 97: must be renamed `pstricks.con'
+%%
+%% Version 97 (1997/03/01)
+%%
+%% For use with Textures, v1.7 and v1.8.
+
+\def\pstdriver{Textures-V1.7}
+%\def\pstdriver{Textures-V1.8}
+\def\pstunit{1bp}
+\def\pstverb#1{\special{postscript #1 }}
+\def\pstVerb#1{\special{rawpostscript #1}}
+\def\pstverbscale{Mag 72.27 72 div mul dup neg scale}
+\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET}
+\def\pstheader#1{\special{prePostScriptfile #1}}%
+
+\pstcustomize
+
+\special{prePostScript
+ tx@Dict begin /sps {moveto /Mag ED pop tx@Dict begin} def /eps {} def end}
+\def\pst@Verb#1{%
+ \special{rawpostscript tx@Dict begin}%
+ \special{postscript #1}%
+ \special{rawpostscript end}}
+
+\endinput
+%%
+%% END: pstricks.con
diff --git a/Master/texmf-dist/tex/generic/pstricks/vtex.con b/Master/texmf-dist/tex/generic/pstricks/vtex.con
new file mode 100644
index 00000000000..430f35a50fd
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/vtex.con
@@ -0,0 +1,74 @@
+%% BEGIN: pstricks.con (for VTeX)
+%%
+%% Configuration file for PSTricks 97
+%%
+%% Version 97 patch 4 (11-17-99)
+%%
+%% For use with VTeX PostScript driver v 6.61+
+%% [MV, MK, special thanks to Denis Girou for help]
+%%
+%% Requires vtex.def 6.61 or newer
+%%
+%% For support and possible updates, check
+%% http://www.micropress-inc.com
+%%
+
+\def\pstdriver{VTeX}
+{\catcode`\"=12\gdef
+\pstverb#1{%
+\ifnum\OpMode=1
+ \special{pS*#1}% //Raw: PDFmode only.
+\else
+ \special{pS: GS }%
+ \special{pS: #1}%
+ \special{pS: GR }%
+\fi
+ }}
+\def\pstunit{1bp}%
+\def\pstVerb#1{\special{pS: #1}}
+\def\pstVerb#1{%
+ \special{pS: #1}%
+ }
+\def\pstverbscale{SDict begin normalscale end}
+\ifx\textsuperscript\@undefined
+ \def\pstheader#1{\special{header=#1}}
+\else
+ \ifx\Gin@PS@file@header\@undefined
+ \def\pstheader#1{\AtBeginDvi{\special{header=#1}}}
+ \else
+ \let\pstheader\Gin@PS@file@header
+ \fi
+\fi
+\def\pstrotate{CP CP translate 3 -1 roll neg rotate \tx@NET}
+%%
+%% ****************** END VTeX *****************************
+
+%%%%%%%%%%%%%%%%%%% !! CUSTOMIZATION STUFF GOES HERE: !! %%%%%%%%%%%%%%%%%%
+%% If you want to include your own customizations to pstricks.tex, then
+%% uncomment the \pstcustomize command, and include your modifications
+%% after \pstcustomize. These will be read in after pstricks.tex.
+%
+% Some customization needed for VTeX since the coordinate system
+% is different.
+\newif\if@colorstack
+\ifnum\OpMode>-1
+\ifnum\OpMode<3
+\@colorstacktrue
+% D.G. modification begin - Nov. 17, 1999
+\let\vtex@pspicture=\pspicture
+\def\pspicture{\@colorstackfalse\vtex@pspicture}
+\let\vtex@endpspicture=\endpspicture
+\def\endpspicture{\vtex@endpspicture\@colorstacktrue}
+% D.G. modification end
+\fi
+\fi
+
+\pstcustomize
+\def\tx@RotBegin{neg RotBegin }
+% D.G. modification begin - Oct. 6, 1999
+\def\tx@Rot{neg Rot }
+% D.G. modification end
+
+\endinput
+%%
+%% END: pstricks.con