summaryrefslogtreecommitdiff
path: root/graphics/texdraw
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/texdraw
Initial commit
Diffstat (limited to 'graphics/texdraw')
-rw-r--r--graphics/texdraw/ChangeLog51
-rw-r--r--graphics/texdraw/README81
-rw-r--r--graphics/texdraw/blockdiagram.tex198
-rw-r--r--graphics/texdraw/examples/txdexamp.latex514
-rw-r--r--graphics/texdraw/examples/txdexamp.tex485
-rw-r--r--graphics/texdraw/manual/Makefile22
-rw-r--r--graphics/texdraw/manual/texdraw.pdfbin0 -> 237149 bytes
-rw-r--r--graphics/texdraw/manual/texdraw.ps11360
-rw-r--r--graphics/texdraw/manual/texdraw.texi2922
-rw-r--r--graphics/texdraw/test/ttexdraw.tex204
-rw-r--r--graphics/texdraw/texdraw.sty45
-rw-r--r--graphics/texdraw/texdraw.tex1168
-rw-r--r--graphics/texdraw/txdps.tex52
-rw-r--r--graphics/texdraw/txdtools.tex142
14 files changed, 17244 insertions, 0 deletions
diff --git a/graphics/texdraw/ChangeLog b/graphics/texdraw/ChangeLog
new file mode 100644
index 0000000000..21bfad19bd
--- /dev/null
+++ b/graphics/texdraw/ChangeLog
@@ -0,0 +1,51 @@
+$Id: ChangeLog 2.4 2019/04/18 TeXdraw-v2r3 $
+
+v2r3 2019-04-18
+ - Repackaged with Creative Commons license
+
+v2r2 2000/05/04
+ - Internal modifications for compatibility with eplain, no changes to the
+ user interface
+
+v2r1 1999/11/15
+ - Internal modifications for better compatibility with amsmath, no changes
+ to the user interface
+
+v2r0a 1998/12/11
+ - Changed packaging - no changes to the TeX files
+
+V2R0 1995/12/17
+ - Interface to standard LaTeX2e graphics package
+
+V1R5c 1995/11/03
+ - Fix version number reporting
+ - Modify LaTeX example for LaTeX2e
+ - Fix compilation of texindex
+ - Remove longstanding spurious character in blockdiagram.tex
+
+V1R5 1993/04/10
+ - Fix \lpatt; it was only passing the first element of the pattern,
+ reported by Alex Stark (jas2@eng.cam.ac.uk).
+ - Added \fellip and \everytexdraw at the suggestion of Karl Berry
+ (karl@cs.umb.edu)
+ - Changes to documentation
+ - More docs on porting to other drivers
+
+V1R4a 1992/07/07
+ - Removed a lingering space in \pixtobp
+ - Fix incorrect position when "move pending" AND "path in prgress"
+ - Repackage \special for easier porting to other systems
+
+V1R3 1991/05/08
+ - Track pending moves to give a smaller PS file
+ - Added a path in progress flag
+
+V1R2 1991/04/21
+ - Improved \intdiv with more precise results
+
+V1R1 1991/04/16
+ - Macro names changed for compatibility with LaTeX
+ - EPSF style PostScript
+
+V1R0 1991/02/24
+ - First version with revision control
diff --git a/graphics/texdraw/README b/graphics/texdraw/README
new file mode 100644
index 0000000000..67403b05bb
--- /dev/null
+++ b/graphics/texdraw/README
@@ -0,0 +1,81 @@
+TeXdraw distribution
+
+$Id: README 2.8 2019/04/18 TeXdraw-v2r3 $
+
+The TeXdraw package consists of a set of macro definitions for the TeX
+typesetting program. These macros allow the user to produce PostScript
+drawings from within TeX and LaTeX.
+
+The main benefits of TeXdraw accrue from the ability to produce drawings
+from <within> TeX, using TeX fonts for labelling the drawing.
+
+Basic drawing features include:
+(1) moves, lines and arrow vectors
+ - selectable gray level, line width, pattern, arrowhead size and type
+(2) circles, ellipses, arcs, and Bezier curves
+(3) general fill command to fill a region defined by lines and Bezier
+ curves (selectable gray level)
+(4) TeX text, including mathematics, can be positioned and superimposed
+ on the drawing
+
+TeXdraw has been designed to be extensible. Drawing "segments" are
+relocatable, self-contained units. Using a combination of the begingroup/
+endgroup mechanism in TeX and the gsave/grestore mechanism in PostScript,
+drawing segments allow for local changes to the scaling and line
+parameters. Using TeX's macro definition capability, new drawing commands
+can be constructed from drawing segments.
+
+The extensibility features include,
+(1) relocatable drawing segments to keep changes local
+(2) local segment scaling
+(3) saving and restoring positions using symbolic positions
+
+The distribution as a compressed tar file is available from:
+ http://www-mmsp.ECE.McGill.CA/MMSP/Documents/Software
+
+=====
+Peter Kabal peter.kabal@McGill.CA
+Department of Electrical & Computer Engineering
+McGill University
+Montreal, Quebec
+
+=====
+The distribution consists of the TeXdraw macros themselves, files with
+auxiliary macros, and the TeXdraw manual (PosScript/PDF).
+
+Distribution Contents:
+----------------------
+
+Miscellaneous:
+ README - this file
+ ChangeLog - log of changes to TeXdraw
+
+TeXdraw macros (main directory):
+ texdraw.tex - TeXdraw macros for TeX
+ texdraw.sty - LaTeX2e interface to TeXdraw
+ txdtools.tex - TeXdraw toolbox for extending TeXdraw
+ txdps.tex - TeXdraw macros for accessing PostScript macros
+ blockdiagram.tex - Block diagram macros for TeXdraw
+
+TeXdraw examples (directory examples/):
+ txdexamp.tex - plain TeX code for the examples in the manual
+ txdexamp.latex - LaTeX2e code for the examples in the manual
+
+TeXdraw documentation (directory manual/):
+ texdraw.ps - PostScript version of the manual
+ texdraw.pdf - PDF version of the manual
+ texdraw.texi - Texinfo source file for the TeXdraw manual
+
+===============================================
+Initial Tests:
+
+(1) View the PostScript or pdf version of the manual ("texdraw.ps" or
+ "texdraw.pdf") to see the capabilities of TeXdraw.
+(2) Try TeX'ing the examples file. Assuming plain TeX is invoked with the
+ command "tex" and LaTeX2e is invoked with the command "latex"
+ % tex txdexamp
+ ... or ...
+ % latex texdexamp.latex
+(3) Printing the examples using the appropriate printer driver program
+ (only dvips can be used with the plain TeX version of the examples),
+ % dvips txdexamp
diff --git a/graphics/texdraw/blockdiagram.tex b/graphics/texdraw/blockdiagram.tex
new file mode 100644
index 0000000000..d800513c15
--- /dev/null
+++ b/graphics/texdraw/blockdiagram.tex
@@ -0,0 +1,198 @@
+% Block diagrams in TeXdraw
+
+% $Id: blockdiagram.tex 1.15 2019/04/18 TeXdraw-v2r3 $
+
+% Copyright (C) 1993-2019 Peter Kabal
+
+% This work is licensed under the Creative Commons Attribution (CC-BY)
+% License, any version. To view the licenses, visit
+% creativecommons.org/licenses/by or send a letter to
+% Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+
+% peter dot kabal at mcgill dot ca
+% http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/
+
+% ===============================================================
+
+\input txdtools
+
+% size of sum and product circles
+\def\cradius{0.08}
+
+% \bdot
+% big dot
+\def\bdot{\fcir f:0 r:0.02 }
+
+% centred, stacked items
+\def\hcp#1{$\vcenter{\halign{\hss ##\hss\cr #1\crcr}}$}
+
+% left justified, stacked items
+\def\hlp#1{$\vcenter{\halign{##\hss\cr #1\crcr}}$}
+
+% right justified, stacked items
+\def\hrp#1{$\vcenter{\halign{\hss ##\cr #1\crcr}}$}
+
+% signal labels - Top text, Bottom text, Left text, Right text,
+% and Center text
+\def\Ttext#1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){\hcp{#1}}
+ \esegment}
+\def\Btext#1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){\hcp{#1}}
+ \esegment}
+\def\Ltext#1{\bsegment
+ \textref h:R v:C \htext (-0.06 0){\hrp{#1}}
+ \esegment}
+\def\Rtext#1{\bsegment
+ \textref h:L v:C \htext (+0.06 0){\hlp{#1}}
+ \esegment}
+\def\Ctext#1{\bsegment
+ \textref h:C v:C \htext{\hcp{#1}}
+ \esegment}
+
+% ruled box (horizontal) with centered label,
+% position set to the end of the box
+% \Fbox W H text
+\def\Fbox#1#2#3{\bsegment
+ \bsegment
+ \setsegscale 0.5
+ \textref h:C v:C \htext (#1 0){\hcp{#3}}
+ \esegment
+ \setsegscale 0.5 \lvec (0 #2)
+ \setsegscale 1
+ \rlvec (#1 0) \rlvec (0 -#2) \rlvec (-#1 0) \lvec (0 0)
+ \savepos (#1 0)(*@x *@y)
+ \esegment
+ \move (*@x *@y)}
+
+% ruled box (vertical) with centered label, position set to the end of the box
+% \Gbox W H text
+\def\Gbox#1#2#3{\bsegment
+ \bsegment
+ \setsegscale 0.5
+ \textref h:C v:C \htext (0 #2){\hcp{#3}}
+ \esegment
+ \setsegscale 0.5 \lvec (#1 0)
+ \setsegscale 1
+ \rlvec (0 #2) \rlvec (-#1 0) \rlvec (0 -#2) \lvec (0 0)
+ \savepos (0 #2)(*@x *@y)
+ \esegment
+ \move (*@x *@y)}
+
+% ruled triangle (horizontal) with centered label,
+% position set to the end of the box
+% \Ftri W H text
+\def\Ftri#1#2#3{\bsegment
+ \bsegment
+ \setsegscale 0.3333
+ \textref h:C v:C \htext (#1 0){\hcp{#3}}
+ \esegment
+ \bsegment
+ \savepos (#1 0)(*@x *@y)
+ \esegment
+ \setsegscale 0.5 \lvec (0 #2)
+ \setsegscale 1 \lvec (#1 0)
+ \setsegscale 0.5 \lvec (0 -#2) \lvec (0 0)
+ \esegment
+ \move (*@x *@y)}
+
+% \pluss
+% plus sign
+\def\pluss {\bsegment
+ \setsegscale {\cradius}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \move (0 -0.5) \lvec (0 +0.5)
+ \esegment}
+
+% \minuss
+% minus sign
+\def\minuss {\bsegment
+ \setsegscale {\cradius}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \esegment}
+% \mults
+% multiplication sign
+\def\mults {\bsegment
+ \setsegscale {\cradius}
+ \realmult \cradius {0.354} \tmpa
+ \move (-0.354 -0.354) \lvec (+0.354 +0.354)
+ \move (-0.354 +0.354) \lvec (+0.354 -0.354)
+ \esegment}
+
+% \pcir
+% circle of given radius with a plus sign
+\def\pcir {\lcir r:{\cradius} \pluss}
+
+% \mcir
+% circle of given radius with a multiplication sign
+\def\mcir {\lcir r:{\cradius} \mults}
+
+% \putn, \putnne, etc
+% places text at an offset from the center of a circle, with
+% the position of the text specified in compass directions
+\def\puttext (#1 #2)#3{\bsegment
+ \setsegscale {\cradius}
+ \textref h:C v:C \htext (#1 #2){#3}
+ \esegment}
+\def\putn #1{\puttext ( 0 +2 ){#1}}
+\def\putnne #1{\puttext (+1.2 +1.7){#1}}
+\def\putene #1{\puttext (+1.7 +1.2){#1}}
+\def\putese #1{\puttext (+1.7 -1.2){#1}}
+\def\putsse #1{\puttext (+1.2 -1.7){#1}}
+\def\puts #1{\puttext ( 0 -2 ){#1}}
+\def\putssw #1{\puttext (-1.2 -1.7){#1}}
+\def\putwsw #1{\puttext (-1.7 -1.2){#1}}
+\def\putwnw #1{\puttext (-1.7 +1.2){#1}}
+\def\putnnw #1{\puttext (-1.2 +1.7){#1}}
+
+
+% \avectoc
+% arrow vector to a circle
+\def\avectoc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \savepos (#1 #2)(*@x *@y)%
+ \bsegment
+ \move (*@x *@y)%
+ \setsegscale {\cradius}
+ \rmove ({-\cosa} -\sina)%
+ \savecurrpos (*@x *@y)%
+ \esegment
+ \avec (*@x *@y)%
+ \move (#1 #2)}
+% \avecfrc
+% arrow vector from a circle
+\def\avecfrc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} \sina)%
+ \savecurrpos (*@x *@y)%
+ \esegment
+ \move (*@x *@y)%
+ \avec (#1 #2)}
+% \avecfrctoc
+% arrow vector from a circle to a circle
+\def\avecfrctoc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} \sina)%
+ \savecurrpos (*@x *@y)%
+ \esegment
+ \move (*@x *@y)%
+ \avectoc (#1 #2)}
+% \lvecfrc
+% line vector from a circle
+\def\lvecfrc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} {\sina})%
+ \savecurrpos (*@x *@y)%
+ \esegment
+ \move (*@x *@y)%
+ \lvec (#1 #2)}
diff --git a/graphics/texdraw/examples/txdexamp.latex b/graphics/texdraw/examples/txdexamp.latex
new file mode 100644
index 0000000000..c6477e617c
--- /dev/null
+++ b/graphics/texdraw/examples/txdexamp.latex
@@ -0,0 +1,514 @@
+% TeXdraw examples for latex
+
+% $Id: txdexamp.latex 2.1 1999/11/15 TeXdraw-v2r3 $
+
+% These examples are taken from the TeXdraw manual.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+% 3480 University
+% Montreal, Quebec
+% Canada H3A 2A7
+
+% kabal@ECE.McGill.CA
+
+\documentclass [11pt]{article}
+\usepackage {texdraw}
+
+\input txdtools
+\let\et=\etexdraw
+\def\etexdraw{\drawbb\et}
+
+\begin{document}
+
+\noindent
+TeXdraw examples using LaTeX.
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \avec (0 0.8) \textref h:C v:B \htext (0 0.9){\sl y}
+ \move (0 0) \avec (0.8 0) \textref h:L v:C \htext(0.9 0){\sl x}
+ \move (0 1.0)
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \drawdim{cm} \linewd 0.02
+ \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2)
+ \textref h:C v:C \htext(2 3){$\sum \rho_n$}
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \drawdim in
+ \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0.5 0.5)
+ \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(1.0 0.5)
+ \linewd 0.015 \lpatt(0.067 0.1) \lvec (1.5 0)
+ \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(2.0 0.5)
+ \arrowheadtype t:H \avec(2.5 0.5)
+ \setgray 0.4 \arrowheadtype t:W \avec(3.0 0)
+ \textref h:R v:T \htext (0.35 0.50){\tt t:F}
+ \textref h:R v:T \htext (1.0 0.43){\tt t:V}
+ \textref h:R v:T \htext (1.82 0.50){\tt t:T}
+ \textref h:R v:T \htext (2.5 0.43){\tt t:H}
+ \textref h:R v:B \htext (2.8 0){\tt t:W}
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \newcommand{\bdot}{\bsegment
+ \fcir f:0 r:0.02
+ \esegment}
+ \newcommand{\Ttext}[1]{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+ \newcommand{\Btext}[1]{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+ \newcommand{\Ltext}[1]{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \newcommand{\Rtext}[1]{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \move (-1.5 0)
+ \bsegment
+ \move (+1.55 +0.45) \move (-1.55 -0.45) \move (0 0)
+ \Ttext{Horizontal Text}
+ \bdot \Btext{\tt h:C v:C}
+ \move (-0.9 0) \bdot \Ltext{\tt h:L v:C}
+ \move (+0.9 0) \bdot \Rtext{\tt h:R v:C}
+ \move (0 +0.3) \bdot \Ttext{\tt h:C v:T}
+ \move (0 -0.3) \bdot \Btext{\tt h:C v:B}
+ \move (-0.9 -0.3) \bdot \Ltext{\tt h:L v:B}
+ \lvec (-0.9 +0.3) \bdot \Ltext{\tt h:L v:T}
+ \lvec (+0.9 +0.3) \bdot \Rtext{\tt h:R v:T}
+ \lvec (+0.9 -0.3) \bdot \Rtext{\tt h:R v:B}
+ \lvec (-0.9 -0.3)
+ \esegment
+ \newcommand{\atext}{\rtext td:45 }
+ \newcommand{\ATtext}[1]{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:B \atext (-0.06 +0.06){#1}
+ \esegment}
+ \newcommand{\ABtext}[1]{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:T \atext (+0.060 -0.06){#1}
+ \esegment}
+ \newcommand{\ALtext}[1]{\bsegment
+ \setsegscale 0.707
+ \textref h:R v:C \atext (-0.08 -0.08){#1}
+ \esegment}
+ \newcommand{\ARtext}[1]{\bsegment
+ \setsegscale 0.707
+ \textref h:L v:C \atext (+0.08 +0.08){#1}
+ \esegment}
+ \move (+1.5 0)
+ \bsegment
+ \move (+1.33 +1.33) \move (-1.33 -1.33) \move (0 0)
+ \setsegscale 0.707
+ \ATtext{Rotated Text}
+ \bdot \ABtext{\tt h:C v:C}
+ \move (-0.9 -0.9) \bdot \ALtext{\tt h:L v:C}
+ \move (+0.9 +0.9) \bdot \ARtext{\tt h:R v:C}
+ \move (-0.3 +0.3) \bdot \ATtext{\tt h:C v:T}
+ \move (+0.3 -0.3) \bdot \ABtext{\tt h:C v:B}
+ \move (-0.6 -1.2) \bdot \ALtext{\tt h:L v:B}
+ \lvec (-1.2 -0.6) \bdot \ALtext{\tt h:L v:T}
+ \lvec (+0.6 +1.2) \bdot \ARtext{\tt h:R v:T}
+ \lvec (+1.2 +0.6) \bdot \ARtext{\tt h:R v:B}
+ \lvec (-0.6 -1.2)
+ \esegment
+\end{texdraw}
+\end{center}
+
+\vfill
+\newpage
+
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \move(-0.75 -0.25) \lvec (-0.75 +0.5) \lvec (+0.75 +0.5)
+ \lvec(+0.75 -0.25) \ifill f:0.9 % fill the region
+ \move(0 0)
+ \avec(-0.75 -0.25) \textref h:R v:C \htext{H-text}
+ \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext{H-text}
+ \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext{V-text}
+ \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext{H-text}
+ \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext{H-text}
+ \move (-1.15 -0.3) \move (+1.15 +0.92) % increase the size of the drawing
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \linewd 0.02
+ \fcir f:0.7 r:1
+ \larc r:1 sd:45 ed:135
+ \lvec ( 0.707 0.707) \move (0 0) \lvec (-0.707 +0.707)
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+ \newcommand{\Ltext}[1]{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \newcommand{\Rtext}[1]{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \newcommand{\bdot}{\fcir f:0 r:0.02 }
+ \newcommand{\Ldot}[1]{\bdot \Ltext{#1}}
+ \newcommand{\Rdot}[1]{\bdot \Rtext{#1}}
+ \move (-2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 1) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 1)(1 0)
+ \esegment
+ \move (0 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0.5 0.8) \Ldot{1}
+ \lvec (1.5 0.8) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0.5 1)(1.5 1)(1 0)
+ \esegment
+ \move ( 2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 0) \Rdot{2} \lvec (1 1) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 0)(1 1)
+ \esegment
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+\move (0.5 0)
+\lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1)
+\lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0)
+\lfill f:0.8
+\end{texdraw}
+\end{center}
+
+\vfill
+\newpage
+
+
+\bigskip
+\newcommand{\tbox}[1]{\bsegment
+ \lvec (0 +0.25) \lvec (0.75 +0.25)
+ \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0)
+ \textref h:C v:C \htext (0.375 0){#1}
+ \savepos (0.75 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\begin{center}
+\begin{texdraw}
+ \ravec (1 0) \tbox{$H(z)$} \ravec (1 0)
+\end{texdraw}
+\end{center}
+
+\bigskip
+\def\cavec (#1 #2)(#3 #4)(#5 #6){
+ \clvec (#1 #2)(#3 #4)(#5 #6)
+ \cossin (#3 #4)(#5 #6)\cosa\sina
+ \rmove (0 0) % stroke the Bezier curve
+ \bsegment
+ \drawdim in \setsegscale 0.05
+ \move ({-\cosa} -\sina) \avec (0 0)
+ \esegment}
+
+\def\caw (#1 #2){
+ \currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+
+% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0)
+% Find the rotated offset (dx dy) -> (du dv)
+ \rotatecoord (0.4 0.1)\cosa\sina \du\dv
+
+% calculate the length of the vector
+ \vectlen ({\xa} \ya)(#1 #2)\len
+
+% draw the curve in normalized units
+ \bsegment
+ \setsegscale {\len}
+ \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb
+ \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina)
+ \esegment
+
+ \move (#1 #2)}
+
+% rotate a coordinate (x y)
+% arguments: (x y) cosa sina x' y'
+% x' = cosa * x - sina * y; y' = sina * x + cosa * y
+\def\rotatecoord (#1 #2)#3#4#5#6{
+ \getpos (#1 #2)\xarg\yarg
+ \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb
+ \realadd \tmpa {-\tmpb} #5
+ \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb
+ \realadd \tmpa \tmpb #6}
+
+\begin{center}
+\begin{texdraw}
+ \arrowheadtype t:W
+ \move (0 0)
+ \cavec (1.4 0.1)(-0.4 -0.1)(1 0)
+ \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)}
+ \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)}
+ \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)}
+ \move (0 1.13) \move (0 -0.04)
+\end{texdraw}
+\end{center}
+
+\vfill
+\newpage
+
+
+\bigskip
+\def\delay {\bsegment
+ \setsegscale 0.3
+ \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5)
+ \lvec (0 -0.5) \lvec (0 0)
+ \textref h:C v:C \htext (0.5 0){$z^{-1}$}
+ \savepos (1 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\def\bdot {\fcir f:0 r:0.02 }
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.06 0){#1}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.06 0){#1}
+ \esegment}
+\def\cradius {0.08}
+\def\pluss {\bsegment
+ \setsegscale {\cradius}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \move (0 -0.5) \lvec (0 +0.5)
+ \esegment}
+\def\pcir {\lcir r:{\cradius} \pluss}
+\def\puttext (#1 #2)#3{\bsegment
+ \setsegscale {\cradius}
+ \textref h:C v:C \htext (#1 #2){#3}
+ \esegment}
+\def\putwnw #1{\puttext (-1.7 +1.2){#1}}
+\def\putwsw #1{\puttext (-1.7 -1.2){#1}}
+\def\putn #1{\puttext ( 0 +2 ){#1}}
+\def\puts #1{\puttext ( 0 -2 ){#1}}
+\def\avectoc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \savepos (#1 #2)(*tx *ty)
+ \bsegment
+ \move (*tx *ty)
+ \setsegscale {\cradius}
+ \rmove ({-\cosa} -\sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \avec (*ex *ey)
+ \move (#1 #2)}
+\def\avecfrc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} \sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \move (*ex *ey)
+ \avec (#1 #2)}
+
+\begin{center}
+\begin{texdraw}
+\drawdim in
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$}
+
+\move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size
+
+% Input to the first stage
+\bsegment
+ \Ltext{$x(n)$}
+ \lvec (0.3 0) \bdot \lvec (0.3 +0.4)
+ \move (0.3 0) \lvec (0.3 -0.4)
+ \savepos (0.3 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% first lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.1 +0.4)
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_0(n)$}
+ \move (2.0 +0.42) \Ttext {$f_1(n)$}
+ \move (0.1 -0.4) \Btext {$b_0(n)$}
+ \move (2.0 -0.4) \Btext {$b_1(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_1$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_1$}
+ \savepos (2.1 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% center section
+\bsegment
+ \textref h:C v:C
+ \htext (0.3 +0.4){$\cdots$}
+ \htext (0.3 -0.4){$\cdots$}
+ \savepos (0.6 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% last lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.3 +0.4) \Rtext{$e(n)$}
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$}
+ \move (2.0 +0.42) \Ttext {$f_P(n)$}
+ \move (0.1 -0.4) \Btext {$b_{P-1}(n)$}
+ \move (2.0 -0.4) \Btext {$b_P(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_P$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_P$}
+\esegment
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\ds {\displaystyle}
+\def\ticklab (#1 #2)#3{\move(#1 #2)
+ \bsegment
+ \lvec (0 0.05)
+ \textref h:C v:T \htext (0 -0.05){#3}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext ( 0.08 0){#1}
+ \esegment}
+
+\move (2.4 -0.32) % move to set the size
+
+\move (0 0)
+% Axes
+\avec (0 1.4)
+\move (0 0) \avec (2.2 0) \Rtext{$\omega$}
+\ticklab (0 0) {0}
+\ticklab (0.8 0) {$\ds {\pi \over 2N} $}
+\ticklab (1.2 0) {$\omega_s$}
+\ticklab (1.6 0) {$\ds {\pi \over N} $}
+
+\linewd 0.025
+\move (0 1)
+\lvec (0.4 1)
+\lvec (0.44 0.998)
+\lvec (0.48 0.988)
+\lvec (0.52 0.973)
+\lvec (0.56 0.951)
+\lvec (0.60 0.923)
+\lvec (0.64 0.891)
+\lvec (0.68 0.852)
+\lvec (0.72 0.809)
+\lvec (0.76 0.760)
+\lvec (0.80 0.707)
+\lvec (0.84 0.649)
+\lvec (0.88 0.587)
+\lvec (0.92 0.522)
+\lvec (0.96 0.454)
+\lvec (1.00 0.382)
+\lvec (1.04 0.309)
+\lvec (1.08 0.233)
+\lvec (1.12 0.156)
+\lvec (1.16 0.078)
+\lvec (1.20 0)
+\lvec (1.9 0)
+\end{texdraw}
+\end{center}
+
+\bigskip
+\begin{center}
+\begin{texdraw}
+\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04
+\linewd 0.01
+\setunitscale 1.5 % circle will have radius 1.5 inches
+
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.04){#1}
+ \esegment}
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 0.04){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.04 0){#1}
+ \esegment}
+\def\bdot {\fcir f:0 r:0.0133 }
+\def\vtick {\bsegment
+ \move (0 -0.05) \lvec (0 0.05)
+ \esegment}
+\def\htick {\bsegment
+ \move (-0.05 0) \lvec ( 0.05 0)
+ \esegment}
+\def\Hlen #1#2{\bsegment
+ \vtick \avec ({#1} 0) \vtick \avec (0 0)
+ \relsegscale 0.5
+ \move ({#1} 0) \Ttext {#2}
+ \esegment}
+\def\Vlen #1#2{\bsegment
+ \htick \avec (0 {#1}) \htick \avec (0 0)
+ \relsegscale 0.5
+ \move (0 {#1}) \Ltext {#2}
+ \esegment}
+
+\lcir r:1 % circle
+\move (-1.05 0) \lvec ( 1.05 0) % axes
+\move (0 -1.05) \lvec (0 1.05)
+
+\move (0 0) \lvec (0.707 0.707) \bdot
+\rmove (0.02 0.02) \textref h:L v:B \htext {X}
+\move (0.707 -0.707) \bdot
+\textref h:R v:T \htext(-0.02 -0.02){O}
+
+\move (0.5 0) % center of ellipse
+\bsegment
+ \lellip rx:0.435 ry:0.804
+ \bdot \Btext {$\beta_2$}
+ \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$}
+ \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$}
+\esegment
+\end{texdraw}
+\end{center}
+
+\end{document}
diff --git a/graphics/texdraw/examples/txdexamp.tex b/graphics/texdraw/examples/txdexamp.tex
new file mode 100644
index 0000000000..19d2eba14b
--- /dev/null
+++ b/graphics/texdraw/examples/txdexamp.tex
@@ -0,0 +1,485 @@
+% TeXdraw examples
+
+% $Id: txdexamp.tex 2.1 1999/11/15 TeXdraw-v2r3 $
+
+% These examples are taken from the TeXdraw manual. Note that the fonts
+% for text will be different from those in the manual -- here we use the
+% plain TeX defaults.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+% 3480 University
+% Montreal, Quebec
+% Canada H3A 2A7
+
+% kabal@ECE.McGill.CA
+
+\input texdraw
+\input txdtools
+\let\et=\etexdraw
+\def\etexdraw{\drawbb\et}
+
+\noindent
+TeXdraw examples using plain TeX.
+
+\bigskip
+\centertexdraw{
+ \avec (0 0.8) \textref h:C v:B \htext (0 0.9){\sl y}
+ \move (0 0) \avec (0.8 0) \textref h:L v:C \htext(0.9 0){\sl x}
+ \move (0 1.0)}
+
+\bigskip
+\centertexdraw{
+ \drawdim{cm} \linewd 0.02
+ \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2)
+ \textref h:C v:C \htext(2 3){$\sum \rho_n$}
+}
+
+\bigskip
+\centertexdraw{
+ \drawdim in
+ \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0.5 0.5)
+ \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(1.0 0.5)
+ \linewd 0.015 \lpatt(0.067 0.1) \lvec (1.5 0)
+ \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(2.0 0.5)
+ \arrowheadtype t:H \avec(2.5 0.5)
+ \setgray 0.4 \arrowheadtype t:W \avec(3.0 0)
+ \textref h:R v:T \htext (0.35 0.50){\tt t:F}
+ \textref h:R v:T \htext (1.0 0.43){\tt t:V}
+ \textref h:R v:T \htext (1.82 0.50){\tt t:T}
+ \textref h:R v:T \htext (2.5 0.43){\tt t:H}
+ \textref h:R v:B \htext (2.8 0){\tt t:W}
+}
+
+\bigskip
+\centertexdraw{
+ \def\bdot {\bsegment
+ \fcir f:0 r:0.02
+ \esegment}
+ \def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+ \def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+ \def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \move (-1.5 0)
+ \bsegment
+ \move (+1.55 +0.45) \move (-1.55 -0.45) \move (0 0)
+ \Ttext{Horizontal Text}
+ \bdot \Btext{\tt h:C v:C}
+ \move (-0.9 0) \bdot \Ltext{\tt h:L v:C}
+ \move (+0.9 0) \bdot \Rtext{\tt h:R v:C}
+ \move (0 +0.3) \bdot \Ttext{\tt h:C v:T}
+ \move (0 -0.3) \bdot \Btext{\tt h:C v:B}
+ \move (-0.9 -0.3) \bdot \Ltext{\tt h:L v:B}
+ \lvec (-0.9 +0.3) \bdot \Ltext{\tt h:L v:T}
+ \lvec (+0.9 +0.3) \bdot \Rtext{\tt h:R v:T}
+ \lvec (+0.9 -0.3) \bdot \Rtext{\tt h:R v:B}
+ \lvec (-0.9 -0.3)
+ \esegment
+ \def\atext {\rtext td:45 }
+ \def\ATtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:B \atext (-0.06 +0.06){#1}
+ \esegment}
+ \def\ABtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:T \atext (+0.060 -0.06){#1}
+ \esegment}
+ \def\ALtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:R v:C \atext (-0.08 -0.08){#1}
+ \esegment}
+ \def\ARtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:L v:C \atext (+0.08 +0.08){#1}
+ \esegment}
+ \move (+1.5 0)
+ \bsegment
+ \move (+1.33 +1.33) \move (-1.33 -1.33) \move (0 0)
+ \setsegscale 0.707
+ \ATtext{Rotated Text}
+ \bdot \ABtext{\tt h:C v:C}
+ \move (-0.9 -0.9) \bdot \ALtext{\tt h:L v:C}
+ \move (+0.9 +0.9) \bdot \ARtext{\tt h:R v:C}
+ \move (-0.3 +0.3) \bdot \ATtext{\tt h:C v:T}
+ \move (+0.3 -0.3) \bdot \ABtext{\tt h:C v:B}
+ \move (-0.6 -1.2) \bdot \ALtext{\tt h:L v:B}
+ \lvec (-1.2 -0.6) \bdot \ALtext{\tt h:L v:T}
+ \lvec (+0.6 +1.2) \bdot \ARtext{\tt h:R v:T}
+ \lvec (+1.2 +0.6) \bdot \ARtext{\tt h:R v:B}
+ \lvec (-0.6 -1.2)
+ \esegment
+}
+
+\vfill
+\eject
+
+
+\bigskip
+\centertexdraw{
+ \move(-0.75 -0.25) \lvec (-0.75 +0.5) \lvec (+0.75 +0.5)
+ \lvec(+0.75 -0.25) \ifill f:0.9 % fill the region
+ \move(0 0)
+ \avec(-0.75 -0.25) \textref h:R v:C \htext{H-text}
+ \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext{H-text}
+ \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext{V-text}
+ \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext{H-text}
+ \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext{H-text}
+ \move (-1.15 -0.3) \move (+1.15 +0.92) % increase the size of the drawing
+}
+
+\bigskip
+\centertexdraw{
+ \linewd 0.02
+ \fcir f:0.7 r:1
+ \larc r:1 sd:45 ed:135
+ \lvec ( 0.707 0.707) \move (0 0) \lvec (-0.707 +0.707)
+}
+
+\bigskip
+\centertexdraw{
+ \def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \def\bdot {\fcir f:0 r:0.02 }
+ \def\Ldot #1{\bdot \Ltext{#1}}
+ \def\Rdot #1{\bdot \Rtext{#1}}
+ \move (-2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 1) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 1)(1 0)
+ \esegment
+ \move (0 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0.5 0.8) \Ldot{1}
+ \lvec (1.5 0.8) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0.5 1)(1.5 1)(1 0)
+ \esegment
+ \move ( 2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 0) \Rdot{2} \lvec (1 1) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 0)(1 1)
+ \esegment
+}
+
+\bigskip
+\centertexdraw{
+\move (0.5 0)
+\lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1)
+\lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0)
+\lfill f:0.8
+}
+
+\vfill
+\eject
+
+
+\bigskip
+\def\tbox #1{\bsegment
+ \lvec (0 +0.25) \lvec (0.75 +0.25)
+ \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0)
+ \textref h:C v:C \htext (0.375 0){#1}
+ \savepos (0.75 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\centertexdraw{
+ \ravec (1 0) \tbox{$H(z)$} \ravec (1 0)
+}
+
+\bigskip
+\def\cavec (#1 #2)(#3 #4)(#5 #6){
+ \clvec (#1 #2)(#3 #4)(#5 #6)
+ \cossin (#3 #4)(#5 #6)\cosa\sina
+ \rmove (0 0) % stroke the Bezier curve
+ \bsegment
+ \drawdim in \setsegscale 0.05
+ \move ({-\cosa} -\sina) \avec (0 0)
+ \esegment}
+
+\def\caw (#1 #2){
+ \currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+
+% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0)
+% Find the rotated offset (dx dy) -> (du dv)
+ \rotatecoord (0.4 0.1)\cosa\sina \du\dv
+
+% calculate the length of the vector
+ \vectlen ({\xa} \ya)(#1 #2)\len
+
+% draw the curve in normalized units
+ \bsegment
+ \setsegscale {\len}
+ \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb
+ \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina)
+ \esegment
+
+ \move (#1 #2)}
+
+% rotate a coordinate (x y)
+% arguments: (x y) cosa sina x' y'
+% x' = cosa * x - sina * y; y' = sina * x + cosa * y
+\def\rotatecoord (#1 #2)#3#4#5#6{
+ \getpos (#1 #2)\xarg\yarg
+ \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb
+ \realadd \tmpa {-\tmpb} #5
+ \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb
+ \realadd \tmpa \tmpb #6}
+
+\centertexdraw{
+ \arrowheadtype t:W
+ \move (0 0)
+ \cavec (1.4 0.1)(-0.4 -0.1)(1 0)
+ \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)}
+ \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)}
+ \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)}
+ \move (0 1.13) \move (0 -0.04)
+}
+
+\vfill
+\eject
+
+
+\bigskip
+\def\delay {\bsegment
+ \setsegscale 0.3
+ \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5)
+ \lvec (0 -0.5) \lvec (0 0)
+ \textref h:C v:C \htext (0.5 0){$z^{-1}$}
+ \savepos (1 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\def\bdot {\fcir f:0 r:0.02 }
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.06 0){#1}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.06 0){#1}
+ \esegment}
+\def\cradius {0.08}
+\def\pluss {\bsegment
+ \setsegscale {\cradius}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \move (0 -0.5) \lvec (0 +0.5)
+ \esegment}
+\def\pcir {\lcir r:{\cradius} \pluss}
+\def\puttext (#1 #2)#3{\bsegment
+ \setsegscale {\cradius}
+ \textref h:C v:C \htext (#1 #2){#3}
+ \esegment}
+\def\putwnw #1{\puttext (-1.7 +1.2){#1}}
+\def\putwsw #1{\puttext (-1.7 -1.2){#1}}
+\def\putn #1{\puttext ( 0 +2 ){#1}}
+\def\puts #1{\puttext ( 0 -2 ){#1}}
+\def\avectoc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \savepos (#1 #2)(*tx *ty)
+ \bsegment
+ \move (*tx *ty)
+ \setsegscale {\cradius}
+ \rmove ({-\cosa} -\sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \avec (*ex *ey)
+ \move (#1 #2)}
+\def\avecfrc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} \sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \move (*ex *ey)
+ \avec (#1 #2)}
+
+\centertexdraw{
+\drawdim in
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$}
+
+\move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size
+
+% Input to the first stage
+\bsegment
+ \Ltext{$x(n)$}
+ \lvec (0.3 0) \bdot \lvec (0.3 +0.4)
+ \move (0.3 0) \lvec (0.3 -0.4)
+ \savepos (0.3 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% first lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.1 +0.4)
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_0(n)$}
+ \move (2.0 +0.42) \Ttext {$f_1(n)$}
+ \move (0.1 -0.4) \Btext {$b_0(n)$}
+ \move (2.0 -0.4) \Btext {$b_1(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_1$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_1$}
+ \savepos (2.1 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% center section
+\bsegment
+ \textref h:C v:C
+ \htext (0.3 +0.4){$\cdots$}
+ \htext (0.3 -0.4){$\cdots$}
+ \savepos (0.6 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% last lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.3 +0.4) \Rtext{$e(n)$}
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$}
+ \move (2.0 +0.42) \Ttext {$f_P(n)$}
+ \move (0.1 -0.4) \Btext {$b_{P-1}(n)$}
+ \move (2.0 -0.4) \Btext {$b_P(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_P$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_P$}
+\esegment
+}
+
+\bigskip
+\centertexdraw{
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\ds {\displaystyle}
+\def\ticklab (#1 #2)#3{\move(#1 #2)
+ \bsegment
+ \lvec (0 0.05)
+ \textref h:C v:T \htext (0 -0.05){#3}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext ( 0.08 0){#1}
+ \esegment}
+
+\move (2.4 -0.32) % move to set the size
+
+\move (0 0)
+% Axes
+\avec (0 1.4)
+\move (0 0) \avec (2.2 0) \Rtext{$\omega$}
+\ticklab (0 0) {0}
+\ticklab (0.8 0) {$\ds {\pi \over 2N} $}
+\ticklab (1.2 0) {$\omega_s$}
+\ticklab (1.6 0) {$\ds {\pi \over N} $}
+
+\linewd 0.025
+\move (0 1)
+\lvec (0.4 1)
+\lvec (0.44 0.998)
+\lvec (0.48 0.988)
+\lvec (0.52 0.973)
+\lvec (0.56 0.951)
+\lvec (0.60 0.923)
+\lvec (0.64 0.891)
+\lvec (0.68 0.852)
+\lvec (0.72 0.809)
+\lvec (0.76 0.760)
+\lvec (0.80 0.707)
+\lvec (0.84 0.649)
+\lvec (0.88 0.587)
+\lvec (0.92 0.522)
+\lvec (0.96 0.454)
+\lvec (1.00 0.382)
+\lvec (1.04 0.309)
+\lvec (1.08 0.233)
+\lvec (1.12 0.156)
+\lvec (1.16 0.078)
+\lvec (1.20 0)
+\lvec (1.9 0)
+}
+
+\bigskip
+\centertexdraw{
+\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04
+\linewd 0.01
+\setunitscale 1.5 % circle will have radius 1.5 inches
+
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.04){#1}
+ \esegment}
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 0.04){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.04 0){#1}
+ \esegment}
+\def\bdot {\fcir f:0 r:0.0133 }
+\def\vtick {\bsegment
+ \move (0 -0.05) \lvec (0 0.05)
+ \esegment}
+\def\htick {\bsegment
+ \move (-0.05 0) \lvec ( 0.05 0)
+ \esegment}
+\def\Hlen #1#2{\bsegment
+ \vtick \avec ({#1} 0) \vtick \avec (0 0)
+ \relsegscale 0.5
+ \move ({#1} 0) \Ttext {#2}
+ \esegment}
+\def\Vlen #1#2{\bsegment
+ \htick \avec (0 {#1}) \htick \avec (0 0)
+ \relsegscale 0.5
+ \move (0 {#1}) \Ltext {#2}
+ \esegment}
+
+\lcir r:1 % circle
+\move (-1.05 0) \lvec ( 1.05 0) % axes
+\move (0 -1.05) \lvec (0 1.05)
+
+\move (0 0) \lvec (0.707 0.707) \bdot
+\rmove (0.02 0.02) \textref h:L v:B \htext {X}
+\move (0.707 -0.707) \bdot
+\textref h:R v:T \htext(-0.02 -0.02){O}
+
+\move (0.5 0) % center of ellipse
+\bsegment
+ \lellip rx:0.435 ry:0.804
+ \bdot \Btext {$\beta_2$}
+ \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$}
+ \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$}
+\esegment
+}
+
+\bye
diff --git a/graphics/texdraw/manual/Makefile b/graphics/texdraw/manual/Makefile
new file mode 100644
index 0000000000..589b302bf3
--- /dev/null
+++ b/graphics/texdraw/manual/Makefile
@@ -0,0 +1,22 @@
+# Makefile for texdraw.texi
+
+# $Id: Makefile 2.2 2019/04/18 TeXdraw-v2r3 $
+
+doc = texdraw
+
+pdf $(doc).pdf: $(doc).ps
+ ps2pdf $(doc).ps $(doc).pdf
+
+ps $(doc).ps: $(doc).texi Makefile
+ env TEXINPUTS=..: texi2dvi --ps $(doc).texi
+
+info $(doc).info: $(doc).texi
+ makeinfo $(doc).texi
+
+mostlyclean:
+ rm -f $(doc).ps? $(doc).p1?
+ rm -f $(doc).cp $(doc).cps $(doc).fn $(doc).fns
+ rm -f $(doc).aux $(doc).log $(doc).toc $(doc).dvi
+
+clean:
+ rm -f $(doc).?? $(doc).???
diff --git a/graphics/texdraw/manual/texdraw.pdf b/graphics/texdraw/manual/texdraw.pdf
new file mode 100644
index 0000000000..8d038256c0
--- /dev/null
+++ b/graphics/texdraw/manual/texdraw.pdf
Binary files differ
diff --git a/graphics/texdraw/manual/texdraw.ps b/graphics/texdraw/manual/texdraw.ps
new file mode 100644
index 0000000000..005799c729
--- /dev/null
+++ b/graphics/texdraw/manual/texdraw.ps
@@ -0,0 +1,11360 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
+%%Title: texdraw.dvi
+%%CreationDate: Thu Apr 18 18:48:59 2019
+%%Pages: 46
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: CMBX12 CMR10 CMSY10 CMTT10 CMMI12 CMMI10 CMSLTT10 CMR7
+%%+ CMR9 CMTT9 CMSL10 CMEX10 CMMI7 CMTI10 CMR5 CMSY5 CMSY7 CMMI9
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -o texdraw.ps texdraw.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2019.04.18:1448
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/@beginspecial{SDict begin/SpecialSave save N gsave
+normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount
+countdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto
+0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale
+ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}
+ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale
+llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly
+lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N
+/erasepage{}N/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{
+count ocount sub{pop}repeat countdictstack dcount sub{end}repeat
+grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginFont: CMMI9
+%!PS-AdobeFont-1.0: CMMI9 003.002
+%%Title: CMMI9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup
+/UniqueID get 5087384 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI9 def
+/FontBBox {-29 -250 1075 750 }readonly def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI9.) readonly def
+/FullName (CMMI9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 58 /period put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBD07FC5A8862A8DB
+7E2B90C16137614CDAFB584A32E50C0935109679E31306B8BDD29F1756946A67
+7A7C2D9BA6FAB9B20A424AA0E6F4BA64C2801C2FB5A1156CBEED0ACB95F697B8
+BC2A6E6AA7EB1F9FD8E3C9B1A16697EE1F0E7400421A7765AB218FC837A49365
+82DC6B2C877A7DA84A81E6126EE96DB25C17A207D3020A045DCDAA064360DFFC
+E3CD50E21ED239D2A6450D04F879A26443ADEB6A20ACC504989876476C7D1A74
+91564FEA1F4CC2C8C8FDF666DB537F315AE1886C73CB5B00E67E7B398A6C018E
+540EAEE98BB8136C4F044EDD63C33431D2CF9740F051DF365A4045D9D8782112
+7BB5D494D9235BA98CF2F30CB119F5A904C32AD04C960C43FC1F5FD8DA7D90D8
+93AFB59F3FF4F796481AE2A7548F948FECFC6C127C4D3F159B08F206AE8C296D
+EE470DB2F879EA79475E029D22D7A8535C09A18689DB0609CC233E5199C02756
+972CC9C94D9FCE264DEE5D75C8D651E4E2D1189AD9588CB815722BB5EE3C379A
+6F31C2E6AE1AE4CCEB29766190AFA20EA937114978752189F1A9F42B39483149
+796FCFA123BA9CCD1D9BE28289660BCAE16C40B5B504058D55CFCBFB4F4E3D94
+DDBF39F157E63946534DA81C018B1C01B9F10DDB55E0A5C2B3985ED1977C039B
+D6755EA42CD09E27751E159C30B93F376DBE61CD3AED34BA36A768F232EB3B80
+E3E6B77C4A48D408217818E398B83D995AB6BC871F20991DF57313D6EB0C793D
+0F28088EBDB7F38DAF7E01AAB3476EC24D7BB38A9889A7D3038D930FF4289B83
+F54A7BE1E2D98A3822098D2E4D067A0D400C20C0B2B4BBD74C13ED1B827490F9
+ECF48F8C3994C1C5AAC9CF783BFA4F307528F51EAB55F961808A42ED53F00C97
+72A432EAEDCFCFB622389BDA707B6ACC9433B065CF29EBFE93AD14B8ECD5F47F
+F073F11822C49B8BE924CDFA6348C3A75E9BB9BF3F31C41716B34794B28CDAC9
+4DB8B087E180A9B3B17680F73D9C12C8D86A922C948093629F5D7F542ED882A1
+692F4F6696865E53E3E2DD43B2D5E8C989CFAA5CA5C4C5999045E170BDE9921C
+BACD6F2863F5553EAB2BA2D4A9034729EC0C4201DE90DA89B0A27C5A5C974109
+4E37BFB3F46B3A506169FB0C68E1CAFC844419A8D261A1FD86A3BB78E33D5FB1
+CFC687A5975987CE45155E5FDFAF0CC5FD5568CB1C26212F92E88255F0549F59
+41B33125946DE43436BEC00804063FBF03EC796E3361B1C852EC3038D107F80A
+9198968265D5488B26D7670B22C2D75EDFFD1B7B4AAFA36DFD94640C9D0E2D20
+5BCA18683EFB91834A3939AB8EB60E2F09655BE003582634C52770DA9668C292
+2E02929D812EE2B0CC65F020064AD5BDAC5F5693B30508F40ED8E20E87149BD5
+8DD41AFF83FD1944804017DC5A04512E593549FFFAE501131CE2FDB65EFD0B8B
+33809CBAEE411B3941C241550B9C30DD28088708F1C0CC3125CBEDCD985EAD28
+03313741F67DB5744A87B381147D5BA70AE1145C27F794854628D87D6C1ECCA1
+749E3465B950175D3C3F40E344297BD92D3190041A4392033A79BEAEAABB8DBE
+CC14E39612F43721CFAE6F79074429221CA588AA2501DE520A464DE157A03AFE
+3C082FAE7628FC0C57FFC61D0330AE6332D20FDBB09BF36848FE05E782D6379F
+64F9C82C45402481B0A35989027F9756BF5A79DA2D96E10F39167ADB4305578F
+90B509B6891338FA1D67DCFD61804AA6621526B2EE4769589A2646581712AC05
+DA6E98D16494F07D612743058F54FEE516BD89A8EC3E03F9D7F905175D3412C8
+F7329077FD6EB25213F3CAC94BA0C3363B759401B6EF7548C7D709F3241D030D
+4EB46A1AE81863C412BDDAEA6084C37143A4C5E41BC646315B1CD09F934186CF
+49D1D8239E363A435307030BD79536B50B723A39DD763DB539F24A10DDA12BD4
+E467339D2D6DB177D6FC539FA77D2DE4118EBAC161E928749F7C753ADEF86117
+58619F1155C563DF2E11ACA8347908B98113AED58FCD0394150EEC94B7F986EE
+88BF7171D208D8F1774B1DD478F0C2958AE372D257E7EDF0F6B5D6059CC4D5D3
+B00FCBD2E9CBE79235B9A5A3E943CC27AABB58728C95C7DBD4F4A1F8A4DA99AE
+7377B0CC0BFBD454794398AE0D5F7281771FFE87B25A819F36E692286A42D776
+01794A43CA9BB30FB8FFDAAF014F909A369E34C2F6C75B7D4EB9DB0580E33F46
+19654443AFF8384B95600B86FF8E41FEFD032355626D60C7507C058EF832DF41
+194B48A36F11082D1DCF4723E21401E0C7447AABFAB4639B26E3D2730E348F55
+53EBFF39CDD03E06E2FA5FB379603C879EDB7E1A10F89695C9C47DEEE52BE0A3
+F446F187AB9D7E93E6F9387F21129034F36DF40605D28FD526AF82CA9D232BE4
+412567F06B38ECCD496EF40A7B243E46C9FEBA4F1BF4B1ECA029C5EC239353D6
+C0B100BF7E7DB33BD1277DE104F15AA19F37340A777741AD1AD693BC76DA48CC
+C6F83CD84591ECFEE375979972B0FAC4C10B625E4BFB261B9FFFA83C31DA0108
+4FFB6377466E9739E0EB64424BD9FC7239C7DD834EC6788A0F97FE714AF92831
+E1BA36A8A9E24739F1DC82DC26CC3CE28C210AA7C569B19E1784D663A0CA4E81
+AFF43E86D6F5F63778847700072CEB77A4EB946DC1F23DBC00BCE773203F76DF
+00F0B085F31420672974DDC642D885E95BA6BBE43E1CA8ABF464D9881CDECC7A
+E98E31B9754C9B72A8BD5CF6D4D214DBC3BA7A0CDF6635953F5AC1E7639C4A91
+C7AECE4C75CA3389C348F656FC2CC96C84C85A926237B6504DB51937C9CFCDAC
+B75C31ED570D180757884E27757783DB2D5F35ECC48C496CDA342D49AA947BF8
+2FDAD2F19DFE8CD1C76A8FA08F33681F3E12E229D7DAB45BE3A3F258B5ED4980
+F15340CF20D965252843E026803E8AEE736EC41CCA82167401977AB719AA2F50
+0B791EEAA82027B3C712D2EB9D14BF8F94FBDE2227609BCAC41EC08DE2BAC023
+28352F913F7DF08D4E1C66E83F764578B22B4EB7191E852B91ADCCB1BCFDB1F4
+E63DFD152E86FA9DE9BC8908130EFDE29CC4401339C05B5B9764CF8EFF14951A
+C6C13AF979546996BF22F2B96D3D585B90CD27DADEC78914DA48432C6ACBDD42
+20EF583FD41F2F6D6D10C3DF7DD077304B5940BB0462656E306CBD91EB9B756B
+7014B1884A36201EC582FC9345C386043DD2818FC301EF78791C1D7854F8FACE
+5DE9801DE9F59D5B4271E003AB897B2EF49501589D681D59CFFD9B03F722EEF4
+74ABD29997515DA3591496B62666744EA76DCA45504F8075C0652D6779DBEAE4
+90430C2945FBD60AD53B51DDBEFC7ED703C418B4B244C8FFA5A3C1B7600C5A55
+3EBDB93C16AC191C3A28EB2279BD3F0D67C826BC6A73D3C0AD02262368AB4621
+98A1605F2887BC5880E1AF2780330E0FD01D7CAACBB0F008A42C427F38236066
+54799594E515B289044BAC4DADF8B3686B4372C5110201221FDA923F131E07E7
+93C44BAD406838BA4D1C277EF74098B8C0EDC41EEDD58C195D7DFF5FEDBF96FC
+19CEBC6C3006DD2CBF76916B4298BB915663C2F61AFD7747E03A03BD7280197A
+9DA590E3D081C6F53DBF94E8D6FDDDD910A70AB18A0F6D48A590FFAB314D6CFD
+E3FB20C1F3C91063F00726A2C13A3D48323F9854839405E5A29D66A43E6E2B84
+A8B3765F1D817071D4D6FF42BC785C2D11AB2B9452F141696CE19C6AFB9777DB
+107D6E22D8CC6C26440BC48248AD8805C4329D46BF433741CB519B21663392DA
+5DC7FC9BF37E5BC396BFADD7263D09F6B4D69594AB386B7BDFCF3BACB97A0E08
+22013E716E642592A20136CF9CFD61D4E515D80E06A4CB4FC9D9B916C93CEA95
+B83B98C48CF36C1D02291D4F5C0419338D64E33C90C90EDD2BA3B96D70FAFE0D
+403A060CFF448D3E28A9B1E3916018465E86095BAAB4706CF7ED350D7C554789
+D7F4FE5F180767DE8739259E68CF142040BE1E2E8C6152DE3417C1FAEA7584B6
+20781DC4A9796431EE713DAC4E713C839D7A4FDC8AB6BFEFFE767AFD8B67FDA6
+943AD387E5D3BCB09039ADB64ECC2BE2620C6EC269E708DD06C311F450099E33
+AF46AEC644222E7DC4DBB9371EE12CFBC4F9B27AB46AD1DA96CE006E1DF8291F
+A550A93026CBFFC1087B134EC6EA76F5E109CDA58FF47338A0039A786A575F70
+B8A03A4F9C8D07A4C856C77D9BCC8E3EAA740172D0C2D0A15BA35C9E5717D7FA
+2691774DDE730BB9D7C70D7AE103DB8D35F3728470C76EBA0E670634E1A0BA84
+2FA102BAD7271DF2680D86A4CA6FC353869987700E5E3FD778165456033D624F
+E9B3E80EBF431ACC934AA0357E824B8AD73E222B510DE8445C55C07C8E5DE46D
+E478F832BDDECAF2EBB11941DCF84CCD887043FAED9AA90D12BC8CA9A0C8D94F
+8D3BF1F80B14B6CAE6BB1C6AA405AA64BB94D5A82CFEA548BA070796A02F9642
+87326D066101435AB9EB40BA9EA9E61B363F5F5E3B924369796E8B78DE3414A4
+2B79C6A13ECB2F34E6299658D07D2B3DEF3D4383CE009A927F0EF5C196652842
+D96B857AB5E905201E7E8BA21A5EBED1FC6863BA9A1A6E5390407F75055E2EEC
+512FBDB3E82CEA13663F1A1944DA072C765D8CED06AB461470C5723BDC1271D4
+4D1D049D3EB131743F1EC9A6ADDAA038ACA2C41D139DC6A84EC3C61AC7F1E559
+6155CC2F49171F6E07CF56D721D9728E87FC7DCBCAC46455A3694C765FE807E9
+9CBC2D304AF37E0F28CCB22F239541B53A4D24D09C662559267467EA487BD33A
+0BEFD4899B581D20582930703A868655C31BE935364CA6A95FBCB22CB714C040
+9718824DFE97929D0482430726CCB5A5307957DD2432A9B6271E849148DEB76B
+FAA290FF6D0B18DC5B76407852E81C105EC6CFAB0F620C6DC9DA555A33C167B1
+430A8BC338BFC7D75B7099CC906AD923FA107C74D3FBB719D77A4E5A685FF9D8
+56424EE4AA074434B809D894ED50F6A60A035C5223EA25DD8983B9B34210DABE
+718D7B2BEB293FF1B63CFB1CBDAFC69552963D90F5E3FF533A3FDBB626E9FAA3
+F3C119E5E01C7BFF832A033C3515BF049E29558B1DAD652F2888E339E67D15AE
+95F9BD14E3253DFE9072B24C0E7E85025B71096AF51C86AECB2921126A43156B
+EC812B32B1164BD9B2B947D503C015616DBF2024F5C8CB3236C1DCA653D661FE
+6B1C19A22D272A176B7F1B7F9E67AF40DB0EFD4940E58B2A050249CA4E55CAF7
+6ACFD84FB46FEF952D18552B3972D79D808B4C263B8C7E1BB647A2D03E102867
+630D5C3F2C917F765A4F6FB8106BA6A9D0093E27A4CB6049C2371287D94B5111
+6E7020776EBD744C6C920464BBBC0AC206033E8240017F8CCB112596ECD7CAFA
+89950CF43FD87ACA750C03A778A37FBCE9C82C2F5ABB135BB02DA8E8C0D24475
+3BEA9D79372D0022FF1ABD378C151417DBC69FE5C9CA38D23A3900E34BF924A2
+90777ACDC37930B67DD44A2E76DDBD9B89598D5F626BFD325A978D277265DA47
+38CFAF16E7FF1946E15F41CA73F7B4B02E5AE8FC4C37B115BC567E4EEEFEFC34
+EC8974B1465AE57759EDDA28DD38A9210871D35D331AE1BE6097C3EC21C770C9
+B25D040B2ECCC3AEB1EA1BF99E0C2C0F192C13BB9152CFCF75332E03F9CEC376
+9B8C285A35F53655BE38713E09AE34BA2DA9C06FA42A6FD2D00CBF2AFD2BADB9
+1571629C65DA38A431710CF5B01FCA68E8B8569922FBC3F9B64A5509B6F677AF
+1B97E91FFFEB6308AB68AC58F9BA43DB5E764021E75B56170EB44C2C0A7DB86C
+62B8982256D3621EBE3DB3994DBF5C5A14CF34B4AF3BD5697F8E3203085DE9D5
+84B0598169760B925463E93DC87CE70AF4C2DF0F4287D2F2069847BCCF7A37A2
+AD451D5ACE4DBCCB2E14D5DF38B226952E7446BF87BEC736EF3D5AE793304618
+D66D3299AB9F9CA1D13F134FAEDF36750046E27706C7CBD8E0877BB6276E5196
+BC2A355D109C0253644918E1CC11B717DE6FBDA201E769812752888CD66268F6
+4ACF4A9449378F9F9923D584BA1B51F33663BE7A306887BC14A37E3C5A4654E6
+531D6EB63DE3946BD8BA95CFB037991174F36D61D842071E6625605CAA350A24
+FE551025D10871FE0E2599A63900C8520EF4911C53A03897C8BEE152451708E2
+43FCF4E700C583A5E8DBCC03BF9CAB864DBD19E1760945DEA0EC0BA38BEA8256
+D3A8D4F70F6685A99C6BD2BA8B412A26C002D76138CFCC7DF6802931E5D97BA6
+0151F6A4C572235B4196B22B7B2D14B32886DF0D2CA8A277ABAAC53B63F64CE4
+E4C088192AAB674497E8AF81961359C389B51F4A257373D907C615030BFBEF53
+DBD99058FD06E352450B658478C10454AC8FC0232B70D5CB916981978053E358
+99D322A07294748BA427FFD1E45C909171017B52B7C742FD77A8560852D819DD
+8DD53211A14D7B2FD11E42941722FD3985D627FDAF87EB57326A0D290B5077D1
+8A4230BEB40523A8565F95E0D44F036A571DB698EDD9D94FEC9512369E5E5E73
+A3CA5C142617944F4F99C0697ED088ACAC007FCE06E5A6EDE7D0E03A3399DCE5
+362271BC31533866BA79FD1FB3F608B22CCD4111FFB1BA35D920A23AD157C6B3
+C3DAE11069D5E46DEDA7158C6478D8B8C0D9DC237CDF0CC6633911673C43FB79
+E4F9B7F27495201E5ADE66255BC2CBE9D9F237DECB62A19D62CB41A1C92432D2
+07F0629E913A71B3F1AAF8B8C5AC66D3C8605A48F8913E39C859E163DB1DBC8F
+0ACFEE80A40B6172032E95A76B752B873FB4DF23CF3A655AF1A1B88C8DC156C6
+190DE72973950565454C0A188A33395FD3D529A88F2B578356DE8EBBC12F04C4
+5B899F667D9E6F3A4EC6DD8DE71FD4C2E2B6D56823EE4E0526679D71FF1B868D
+F261489F06F97B010CCBE640E2F57BA3DC3332B329F7958394BA9777D833AB50
+005E8E9232547104065ACE33396772B0E0BD66D2C6CC54DEDD071E444D8C95F8
+6F88B31E20FDB80F77C83151B7E25BD3736B4F9BDC52EE78C41E9475E5A6D94C
+D348AB42F5E36B4F167D29EBDFBD43B03F77EB296B06A36880FF17D412E77EA9
+F2E7C25FD05E16BEC6732681EA21AC3FF6893B93FC09316A370CDDB86D9E6087
+F6042C3F9ECD742778389170F5F041329782FB9F9702F7533E51F355F71825AE
+2BF4F8FE50D413AC9A20C41B42537FDBE8DDC5A5C793D3760C1EE13716068752
+F0AF10812250BEDFB4D7133FD58F4587BACD572505C84A7D3802D27443175FE0
+0D89C3398B55176D8642AFBAB5CBCDFD6220C8488564B4306D74A58CD2921AAD
+73CF803C754DAC2F30A5324886E273064FA51781D5BC596BFEDDCE3982EA1AA2
+62CA7BAA1B16C6EBB99B2AAC4E6C9CEFB3D10F19987045C4918DB239E6E63D79
+5F44B9D097118D081153AFF96E5EB39CBFBB99A3BE30909F614869031358EB98
+F07A97EA78AE50375941B2474DB46AF3305F2B208D45921F93743A6CB8AC584F
+6BEBE25ECAADD5A789EF60C9F54446687E7B030DA3E5243189F02BA46BFD28B7
+DC14822E136AC7E40CE20458DDBF356488045C95907363864CD6943643BF0109
+EE027A3091C11EA392EA91320EBFEA3B857370AD8EB86D73F035A476F7058222
+E8CDE78CA1AA9EA69A8AA6EBFF3E67324C567B914134DE042D6F8F18A9373107
+536E8D90189917D343F5299024239E2EC1D2D177D82DC8E344A7CF2AC71AEC18
+36F139E7A4EB59A67192BCA9ED0EB25DE13032F6FEAFC3B1F4FC81BB0EDC41DF
+B9EB92618667C59EA499B788CD26C2137D70F1B0AF793AF5AD0D0941F2E746E3
+F5A7F0288BC1EE11E982EAAE763CA422D72FBBC0D754AD58FBF92629DC8866A0
+431213513744DB48E52EFC89C83FEB082588E4F30D7DA77BB598E51CAE7E4900
+5CD570C914EFBA426BAFF7A56FC775ECF5BE13F2C42E51EF96784E5201C0B64C
+074AC229FF0BFDF71E6D5E08D8755D2C12B770B6466A9C9C61C15582DCD2FF78
+E9E74DC2B1CAA344EC0339EBFF92CD2CC1D62E2FA8FF15E7459A83C6CFA58A77
+2F1A40BD276E76B675FD6834052B33BF9190F04DF6AA5FA3BB7D77A88DD5B600
+324C5E28216F47682EC29EABF35BA842BA2294A3D72B126EBB852AB741186C9F
+FC84B12DC4A6CEC08F2D03EE61B65C845841EE17F1B765649A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.0: CMSY10 003.002
+%%Title: CMSY10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY10 def
+/FontBBox {-29 -960 1116 775 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+dup 1 /periodcentered put
+dup 13 /circlecopyrt put
+dup 106 /bar put
+dup 110 /backslash put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4
+3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021
+91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2
+E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A
+11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97
+C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857
+D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20
+B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3
+93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F
+10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D
+7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF
+B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B
+491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB
+F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6
+019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6
+915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36
+356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0
+5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D
+9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64
+3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1
+FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252
+720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5
+D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726
+BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5
+7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377
+DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56
+AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7
+A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E
+0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743
+AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18
+CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023
+0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD
+5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B
+5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F
+E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB
+54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809
+E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F
+A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906
+4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378
+4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4
+038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4
+B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308
+5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC
+B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837
+A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD
+2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D
+CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246
+455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE
+FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03
+16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C
+16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F
+483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352
+67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2
+3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472
+1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770
+93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA
+051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B
+8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4
+8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436
+6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0
+06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7
+84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0
+D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6
+DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB
+0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD
+8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC
+C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34
+754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406
+1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05
+CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523
+1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F
+153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02
+905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718
+617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2
+8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A
+98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278
+53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B
+888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D
+052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A
+CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501
+A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F
+07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56
+B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672
+10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2
+CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D
+3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12
+D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F
+849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16
+648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE
+84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA
+2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD
+2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204
+9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0
+B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B
+D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7
+135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE
+EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939
+C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782
+7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0
+4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2
+9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171
+050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486
+3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271
+C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8
+843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342
+CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B
+B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50
+3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175
+19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946
+FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0
+17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6
+8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B
+CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003
+F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194
+1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E
+4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194
+2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929
+9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593
+E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB
+8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB
+BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027
+04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5
+C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404
+ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C
+4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909
+84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6
+C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6
+09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777
+D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503
+56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF
+035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB
+FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333
+CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663
+B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A
+F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD
+CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B
+0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C
+B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9
+33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6
+4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D
+F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E
+2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A
+CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5
+88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37
+17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0
+55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A
+A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50
+2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3
+406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8
+AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B
+60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388
+C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6
+5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50
+822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E
+94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02
+D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA
+343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE
+894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5
+DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327
+DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F
+8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324
+A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA
+DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270
+E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947
+DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC
+4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653
+5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1
+02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8
+88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A
+60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E
+71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52
+9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016
+A8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44
+AA30F4195FDFF64E5149810C51399C995C41F638C0159BA0273665F073BEE169
+9F55E98C04ADA341905B2783813BD1091D7C5C97486F8C06F00A26631DAA7900
+2373737F68044F28DA2CAAA7C622633467D05487681106FC98E79B4CA0258E41
+04C7AC3790B7A329ABCBF4B4C3D228FDF564A72E35E4C782FFE0BC7EEF479993
+795ECA6807710FD60653D616C6CA5B5EEBD0FA52D76C2748721A9C04016EDED7
+F26A2FDAADAC4DCDBFA37D4066303BACF1EF6CCFBD43C9E1E239A2DEC8E021F7
+41AD7BCFFE1FFF379176AA64AC70628E1BC3D06DA45196158ECAD65A0C098A90
+8BD57FAAD35A3A967A1D048A7B0F6DB8F5786C855492A2F496FCA872B8A3EBB9
+B5B13385666A5206B0D1D208E40F9474034BD4208A26FD4489DC77F0BA60AD2A
+3BAB8F2610C5D21AD697FA98B518316C082B07179B249D81615C6DCD633FF85A
+B833A7A0E7FEF38CBC52872B5F1D99F2BA1F2A23C37DC990D734A2A032DE22F1
+FAF603E721051F518B051FDF018EACA8F0A408B78A3C984C75760EE55A49FFD0
+09B25853AB0F25FC6FE9069ADE0BB5A349AAFD2889BF3C9A877E295398E460B1
+6527536DEC078A212C05F7AAC9FE85D28E8D9DA9C4CCFA768963F6AAACDEC154
+F8AD884352AC2482430D431F79E1237F7EAE75B82F8960419DDAF1C522F4D7F3
+6633A3F6E86477D191F622411E6289ACAADB6F675F1DCC34341B280ABA3AF07A
+7A2781B7231D356D9B4072D013FE7A5E274FEBD0A950C461ED91C146B7337271
+81F5E19A4E43D6
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMSY7
+%!PS-AdobeFont-1.0: CMSY7 003.002
+%%Title: CMSY7
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY7.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY7 known{/CMSY7 findfont dup/UniqueID known{dup
+/UniqueID get 5096648 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY7 def
+/FontBBox {-15 -951 1251 782 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY7.) readonly def
+/FullName (CMSY7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D9DAFF1B3EA76067
+C5493B69F73B89C8B61804A34FCEC826343337CCDFFCE17BF343EA8034BF95AA
+14C56862C2C052569AFB236E1F1795F05150C8F28DFEF6BF4BCBACB678D00036
+30EE84FEB44B1A8438185EB45654E6853C1159B073E54292D135F0961A64E8A5
+AAE49C4BA9C44156C123426212120F99F3E8B7425752A5FE384AAEF755A8464B
+51F015F9E2967477D57B22627D75CEF8AAAF0AEBD504EB46D0289DFC8D86C972
+F042BD88A90A53613DD93D8A7A8460E63D85F6C15C000C0AAEE4BD5130B6E668
+8C9B3F3FFD804745DA1D5EC0AB85C96E1724FA67F9324C59275415182AB48D57
+9722DCF602396AD4B5C075A5A89A5D005C9FE11273E5FBDDD1800F11BBDF6AEC
+6711C5633A73AC5DF038BA521AC492E138F7FFC7C5438FFD32FEAA1128C66E83
+0D3AA40665F05E62D7EF00B1B0596162C402A34B6BAE6300D43F3DFCC84860F5
+C0F0F1CE28FC60642BBFE9BC9102E80146774CDC88F9C250DE762D24A3484BCD
+1D26B6D9FE981CA5AAB2A4BEDC528115043DC18D7105735D7528C2C5DD89A812
+75B5D7B2E5A586FBB0C061E708F92C1552F64A296490BD0F20243986A4707FF9
+8AB3C917B8DB92F19DCA6B9D4A1DB57515E51DD85D5C9D2CAF7A036AA3F9E9B1
+5B5E099CC05A9126AB274C17D75CB4FAF78052366D2F21EDAADF84B22A2D645A
+3E65C4BC0F540B5D9609D88DD0E4CBEEF87C16447D43A5F98528FD45ADD10DE6
+41AEC411FD6929308F0E4F48A8D9C9EE386E920D41C1CC98A52073011DF5BD28
+5683F280B5CF7F27DC50930C81D344FF5A8A9258A207D2531AC21A735B14155B
+C22C752DD22AA33C52D6D4D053B3E46FD4C9129068DFF52695A3A9184D04E8EC
+93696A3FEC3AEB3814D9015EC14C22EC3ABD5070E8C28A3B42F5596D948212B4
+AFB9978A0A361135C9E18CBDC98E0D1E8BDC17E25DDB3D52E86127E5AAECC55D
+FEE61693190E378978EF1BBD4D1AF005D511C7607CCFA4BCBD3EC427CAD82809
+B725B25AE8A03EE88F80A7732A571A2317E0B6A0D072EE8CE2EB9E033CDCC899
+B64CF4FA1C708A885442062F08D3D8DAF44C066EE278714D1486EB709D327865
+A483F62709E89D08291F044325208EBA758DD459481334F5D9AE3BB61B3020F2
+A4538CFC2C94BE84C920BE80806FDCEE394230730E049333A7E16509207514FD
+695B5E0AEA9E4A9737311AA0B33B15F6769FF865D1ACB63DC6201C3F1062A3FD
+1B446C1857460745917A36289DD57C94FE6240F4A40FBDFC10E91B91B79029D9
+9F1B9C74E8E5AA011A0ECBEC660230AD5929F01D0325D15FDC0040406F124021
+02AE176F4C98BAC1706F03C2B5B40F325A50CA4683B2BB4605E68E72D0CBDC2D
+96B3BBCDD01201B650A7E7744D58D1E36D81FBF72E0A875FF29B4C109A1950FC
+9621B18D58806392EEE9841794DFD39E3C4E20D45384FE07F9D445F143B922D1
+AB350AA6DFC51FCF767B141A392D6A8B633AACBCEC9F56A0CF40AB08020EE63E
+08CC0BE01B40E86388A65F5869F2F4D022DD4B912031CB8CEDEDFC2473772569
+5B28F66AB74CD7902A0061AA3547D13C7F0C6EEEA7B0BD316694A94E4D672520
+EA044AB28D8D01076C486CE456EDA1811F7ACA75D27473080D27D3E681E35FC6
+447046120C6CC4C17674F0F051570A79DCA74848F3F300B58B19018430D99858
+CA5504084D6BB74CFDB635B6866974A9AF05DF201C69352B2663B0623E7828B9
+5EC5FFA8D8F10A7C28000F8C679B180067D5481D6315BF1C4194EB171C8F3CE2
+4CE319975B9E948D907F9F7EEAF07089844391555F329E331D52FF114668B8A4
+80704B3C6AC0CCAA2F5D043CE44E65EDA89A0CA854CFDCB11D549B7FA72EDB90
+D35353C34A771B1FAF96F83FCA5258AAB65384BAFFCE448690C1432A1F749C20
+5817205185F973FA098BA856584753E75EBEBF387FC155202885F5B67117DD7E
+70D1CD887183C5573B6FB607D4F6CC9F8B94B09B3F3AEC2EF1E6A320CF6D0112
+63046321941D1FB3F2140B59370AA9387E24D579D389A166A10C989497FE9549
+34E1AC2E546CC06C5308460DBEF3E1AEEB6CBB0FFDAC458E61DE3391480CF5CD
+34A647D4DE15B81131B7D1F9EED4C6837A32E89B0EAAD6A05F5F67518655E5DB
+224D4833CEC60D5DBBDB8A03FB1A9730589BB4F0FF56191D17E73B9562E0C356
+B188882B36F9505F6F42EB2644FEE125C2A7D12227ABC8ADB924E88B0A9E8DC2
+79762523B0B88DBBE6AC7968A46BD9E9F0C3F03F5F64724CA07782195F01F130
+30DBE895C212E0EE20162D863F46A674D85232FA0DEE69A8DF019794AF6873AD
+9CC2A5EEEF9393313CA519BF95C08ADF7A75B6F53EDCDC39851D20E58B97CA57
+A7523717AA1821DEA94C8A9F8B82346B16D92D15AEDC16F0011A45A44B09DE47
+08CBA46E8511D0C5CC83F952EEFA4ACFA7F3D7FA5E113EF6B70E5ABA6F1AD3B1
+E4D3B15AC6D5C3BC70A3946F411A7D965D6FA9D7B6C6ECE19B2C29A2FF476251
+EBF0CF3BF658A1D896323706172746F58B2DE49F8B7E431E20304A42694CCF73
+11C4E9E96260CC442E2938A1E27EE6744C7CAB01634C8210CE40488B9CBD757C
+4277B5E3E43C7560291D945F9128AF1F85924003418F96458ADDC5BB8EC431D5
+AC9093D20DEA69B92454613BC1A82DAD4FBF8E56084494D9D2FFABD82A7C9847
+171FE36B265B546F3072B0923840E6C6BB12CA53E05A99F0E8FD4F5109782746
+7CAB9B35B68050230736AE624B7862D1244C7D9BE4D1CAAE21B123D1E8372377
+F1FEF269A9A2EDF02CE0CC8BF92FD7EF09556987B8A3BF6D8C0A663DB6B9742B
+E9AC61A449106AF1EA7ACAD40AC6F59427CC51865E6A90CF2AEED8D6037BA70E
+4ADDAF622CDE877C98C3B2006B4721FC9BA18E30F0752BD4ACE36221F5CD1497
+8FEDA5D643BE2EE007970A68E53D85975116E6CC09F0039A09EBAF0CA4B0EED6
+A485CC0B69E526033FD1C1190BC5686739CE13D1AE8EBCABC01FCFF26141867C
+44ED291196E546369129B9F759FDD7DC21BAF0A528FC34BA9FA8937813953644
+C539F9DA4E55E83DB3D6DA309C562DA1330B157957B18F7618544AB738E25F16
+F0517CD13C1F11BB8EA056BDC575D77CDC526EF497639DD89C2098660C5C45B2
+D7CF715AC5E76847E0D3178360DAC1BAF6ACAEE72453B845B9F86621C166857B
+029CEF5AFE29D1EDB4CA3AD7D008B7550A779E0066D7312DD6C7AFE1C0BFFF25
+7B062B0DF30032EA2A2FE3CC46C96A3A0BA1888D1D2B05424A59ABE3EE928ED8
+B67F507EFA78AE128F58B54634C7F534B3D0F4AFC23E38FB56EB39CFA425FD37
+848545EAD03EDC5A9E796CEFB345F527615C785963F536972EBD9CFC4A6A4A07
+5A31A508CA147FBB762ADD198CE36DF86730FCE2B643D1E7DF0BDE800DE7AF89
+44A36B04193E44231E08919EE91A8B559646DC4DFAFF0AD891890A0A88FFA8EF
+B066BCB7AFCA409C51889E7FEB33F19A3CB1268BD0EA74AF29C1401BABD16F87
+ACF7DD65A8513DA9995C5092C36A774BC4260113360D29AF7ADF5D22B5B58E7E
+A9BEFC33B9A91D2C397B27A81087376CB623318A8362C3FA9CBE3026675723C2
+E711910DDB328E0EE3FCE219F44FE528B70E58B8E6CDB4AAB48237DD933D9639
+E9D4F9EADAA8D46537D964D75C27F210B0C2473CB60D65F61BBD91ADE01576BF
+77C49E31936138B0FBA066BE910DE1B1F0E4FFB5E81038E8656ABFF08DFD923E
+6BA2AFEDCE6998BBF7045393C34811501586A4846E5B942C8E99D4C481D3AE60
+2796ADBB5242D59F1116EBB828014BD903EF58B223DFD18BFBAAE4D348876B06
+CAC10B7AF0DC270E6702A3F75D4DCEF872F2CDB9470AC9A1DC1ABCB55636D26F
+9CB6BF27A0DAEB1F62AFEC12F55F78C9B59AC6DA9DB4B45444B0C582DB4DB8A4
+B31EF4AFB77988E92FC0B257374B4408406490D9AFCC495316D6C08BEC9A76C7
+12371E14417711EF802FB7151B3F6A2580C97527C9C3A0FAAB8D62FD992AA18F
+EBEB36F7910186CD5F70A55DFE932757C299D9D2289796769A00A0C6ABD18F82
+E0D4E95D6477E67B4C012DBBD098FE20E2F15C412DD2AD5471A65EACE05B3A1A
+0C9C430BAEF4887F2CCE668116B87FFD9DAB4B9B3605CD26E6B12488058AFA30
+8843791A95BB322DF5C47387F3EC72343855D6B23D72144EB5EB5157B8B238FD
+6C71DDDA64C9539F66A7DD569FFF43DBE4A8F0608A3CBD354DD9BAB5E3C756DD
+92C3C1B3E169D86A2230299432488BC04A87E08A80809F9968676DF9157B1C91
+27C664ABCCBA9997FAD8966F766B325086899D1FE44581FE07C97688B3E15B0C
+234A22646C32BB965B9BFD2CD34854D1488AAF021E169BF9CA9665CF040E25A8
+16156C80A2F47397CD370AAEDA731E0D14FBEE1E51A17DB972D96DBCCE33F937
+5CDBF1A650BF1D3536BA4CB7A1CACFD5CB457E2368A660A62AC26E64A631B2BA
+6B08EBE42E02D9B1B2E95BF9F0A6B59C96A122968FD46A4D17BA3D018CCBA0F9
+80BA3C1E6C683111AFF79303CF64F1D2CCBD7571C6E09DD9B27B8E101BE219F0
+E075880A0E367885AC94143E777DAE455B990383100EADF786300602C2CE28F2
+4F44662FDF03BD39A5181912D8F1243C36FF88882CFC4B34C1D4EBBC01D96A7D
+9CE5303042D1B21042E4FEAA455F22A01333FCAD7E4AACA5D3A5386331985F6B
+9B247EC6310BB07507321BEF3E4ECFC3B915AAA6E029B3999644C987640863B0
+5DCF58CE479497AFAD1208FEFD1796E74467E9F7867C313A3412E6923F4C9144
+C69EFA17965056DF043DB465BF2F1E191706D3AAB47E6AD5C9767E4A73B29F2D
+E2E579D0262237568F82B360ADB6D0219B7535EFD02DD0688CDD23D84FC4F308
+5D2D0010B1A9F4F0321A00C154672D21708B66B91ADCF98BAC7A2F94848E9A4E
+86CC82EDD0399BD9F13E43359E71F80086B9B0C3B6D08831D4479ED83E7892C4
+90C477BD1F06DFEBBF60F26516EECDEFE4787EEA8683754F2B257D0BAA607DBA
+35EC6D1618C2FDF3881827F92D793ECF152D761F2423A96210F582DC9B90120F
+26A33025414716A5E6F56D712E31BABE5047EC4855B767AC63D793995C9E074B
+6E35C7E5255FBF4C3F17E7AD7B2A6C5F7459794FC94306B581536910F244BF5A
+3158E821CE75F4B0565EBE985DF24DAA92F9C1D848EEC6B88E21FB6C51125872
+1752F7352291960E5BD36F78AABBCF6DAA4D07AF56E4B6058AAB13D41BCDAA14
+C0D63C6807FCD0E2B4B9CC892F224843173A75DC53A8F0FA396959C2E2CFE3F5
+9B1C8B62797F34E7A0BFCF0787C73FEF98442234A617CF161829498035D30B29
+ADFEAABD0B496E8A2E764D22DB7737F950FC5982F1C5F4FD414C1B0202F40FBA
+62C81B8F0E836CD73D79366FD62388B437B81FC673442EE34BF27454F72A08F3
+389E60CE28A050601A42FB4491C60DC02EC008E6B9DD2495522BBEC7293E2923
+120584E88412DA7137397B41A28706B1CC6BB0C80709A2A4BA79822D245757A4
+3EE454198942ED2316FAEB981F7615E642167620EBDDC5B271E273216EB119C6
+4F2F0412F0BA6E3BA396217597575C6739194E1F839232FF088FDDFD3695A5CB
+9A0E220389938596D8BDB183138E1F73F64512E4FAB5E1328F9B42364E3113B8
+004BE2CA0B074EE271BBE0260D31CE555D535C16EBB528747EBAFFF253E659DA
+3A377CBE0B296276AACF0294CF90FDAADB4EAD5E2F600E5B2A018DEFB86FF61C
+84296480A425687CCE37D671472537E897AFD4B8C6A6175E1ADDF9AD24DFC5C3
+A73E18AC2D9B28BDA2F17D51DB3521945850DAF0EE48B0FAC271544C1B4F3B2D
+53BFC8DE32BA366FB1FEC0DD6C0B1FEA374CBE2B96F5B235A1D83A240DB442C7
+1460980A3E5B96AE3D5784DE2C2DFFA671E0A856DB2FF4130E5905F3D5338856
+C11A468D867D0C6EC585F1AD3E7164B8598BB59973B9A952FAE819F052A6554D
+EDC342BCCB0525905D1D27ECB9EE43847B69AE116F494CB2DBBAFB2773F1A3E1
+C75FBDF8D66FA5AB4005757D631A0D9424FCDA91A1D2AC6FCE7CC7A23E84C65B
+3E92BC684F23467DCF8521E0E27CF1441C487EC6E3BCA0AB54BB137E83776009
+833D772FD225E88A8BD992FD69819B3BA90BAAD1DDF16E4326190CC4BF9C30F2
+AF7CA1FB38E6387D9745FC5E176B248B1581BF7A4CA2FCA8E423DF340EAE29AA
+7E07A25FF838F67378F9A6A9A0B404E01E86E64FEF71DD3D540D4711AEB1974D
+E2E0D485DAFFC74BA6B8E9AFDA245BC8997BB39BB6BD52B496A09C68F7A8E900
+8DB3007643416040FCEC85B407EA0A946827771FBBEE49A3DA5542CC5173A31A
+0280AB8E922C23C1BDD88D70627EF124633C318E7C9ACBC14AE216BFD41C0B6B
+3A0161757913CA1F7B6626963C09936A52E73DD9B3D86DEEE73C0293A646FCF1
+21D4C33DFF1671DA7A53E77E20233EDE51571549AACB7968602CD03EE67ACACA
+B231661CA9DA2BEC5795A83DFAF675E9B052C8BDD51490F7874C91EF5ED2E0A6
+BE9CBABB98A950F7E55DDA3823036437C11F614E27DA5BB8BC6D955FFE54B825
+0201275C2C49A3908BEF1DB3D87792DDFFED23DE7FD9CFC284F6255C77E54A39
+C2FDBCD28F2938E4CC135829AC1867CAA5705674062C9639FEEFBE49D6108091
+7C58585B80464F7E69966D7933C7019BF336B88B9E0E7073A85EAF297B71B303
+31EEE9121347A482D28CCE942AF53E94F88A97EF2F1860A92CE29A14495D67B7
+D37E207D42F3891E0423F5BCFFCAAC057FEC683696ED6FEEFA65C8FB6F1312C5
+24A1130192B4179F3B08DA1C951D988894E7FE7CFC28C56992A1CA82BF8BDBDA
+E021F16E630FF67201BA4DF5F3F4D6AA65B8347FC1575C142C6C1868E8472BD2
+CF191137AE1B36F32FD84DCAD50644AD55EBA2694C93BDF984A5C9E7C92B73A0
+26769F00831537266FD2E711AB3F8AFC5F3FDA3C9E6439FFC48C3D1B5527FC56
+1FEDE991E66E8465C0E395EAD0A22A2FDC001E449AB9C5E0EF187A1DE9B74696
+BEB6A525DBF3A60DA2FBF1579150DEE1C5D1B6F55FF2708CE23289803CE123BD
+C81E25DB96551A13AD713D5C7BFDD3F2E1D5C12463A195442B51909CC1724E50
+A1F6F4EADB3B7355908F36F88521F333C4E7C70B094209D1F883B961DFAC32BC
+8C5A2CAF77CA5E6AAB714CC0AF2B42FFF6F73301FC71AFFA9B33A2153F55C2DB
+C1C111874DEC37CB746BEC9A3A9A37A2DD098CE7C66B0FE38460ACD77A47D53C
+1550F857FFB733B5A8D02FB56790A09190B29CCB4F4A3058B1C82F0CC5E1B2EB
+2F8E06F2DE531E1EB81326A8EF0F82843A4AC59D267EEE45730895752820BA93
+A129C22A78C1AB28BCF67AD5DF372FECC9EE6719A02E499FD5CA866688E86089
+7EE8E5912087E0C4588DE38428114785E0CFEDB1E2EE24CC067D107DFDF1E2BD
+B1C4F9C6B740F3DEA0BD315581004E851ED5A9F66C4F9E95DE97D355DB06F482
+A43B565F1255A85710B15A281E2F034B1C23FEE6CDF3A043780CB6AB18A016F1
+9EAFE545CA5A5B5AAE2459D69D2151E99D029FB5C1649B9DA784BFDF7D177385
+4D8B16B9922D149FFF6B4F99311D52BEC9A9FC098E7192180DBB38767DA9B9C6
+E8CFC98615219EF3AD4A8157D14C72BA3F91C8B78381383E0BCA1A5319749E08
+D67D1208C693A6640D1BD6B9285AC0D3110CBF8F7747AD12585141C3248D0BB5
+BDE892F91A4B3291F21F30294693518E4629A3ADD7C8640E424FF615602C603E
+1E14DCB3B17D34C090BEAD2A523E260A599522329B698729A635CFB15BE7E79E
+6A34DAC7C3ED57340821A4E7A0C7F88F64BAA69BB80DFA8B659F4756878E3044
+E1DB7EE4FE60074AF97818B3D36CF51110191B4E10655F52CC5D11F56517CFF9
+04BA2676F4147DC8192C98C555B001D54301853030B2CF0C068ABE831158B1A3
+F30593ABD51F5996CE493E0622323FE93B292844521051C1D3799C07DC879EE7
+9D047DE1C7127E2DC6F94E30C34FF87FA03DB3A3D597697C133CFC5A9448E067
+51777DCFEC80352A92D9DEC0A2F40580A0242C063CD1086D38FF5C6FA1BDB0A5
+3EDB5499AA2322CC73A38FC826DC202679AF4A7B571509B715CB8BD1D0C5D1E5
+9F5B2D6DF5E9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMSY5
+%!PS-AdobeFont-1.0: CMSY5 003.002
+%%Title: CMSY5
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY5.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY5 known{/CMSY5 findfont dup/UniqueID known{dup
+/UniqueID get 5096646 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY5 def
+/FontBBox {21 -944 1448 791 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY5.) readonly def
+/FullName (CMSY5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D77D0DAC26A1FA54
+D2471EE9BE33D2E87853491D634A3F05B7672519E09291AC2D08D95BFB80CABC
+FA89042E94FED8DC9929ECEFAF741D273687B2127F5B80ED7D16F146894841D5
+1A80D8085E27114AC35CD5E578760D8982CF4D8587FD3385FE50E21A253A37E2
+AB628DF3500FD2C21BCCBC8C0B6AD3AE21DE63AE6586DB06B3FB1966625EBF52
+90FEBA873F819AB480FF994D80C01DE1E2F28C665E74FACFF98B2972CCCAD279
+96F2EFF1113CDA922985E095249765989A4C6A92A76340DCFA07AFF34AC5E177
+09B739A72D0D1EAE1A6164F3AA0DF1651EFED335B68C8465E1A61025235D4A5A
+C3661B9C0456C35C770242149B3B98A29784BF71030C7DBB2C13958E5CC263AE
+FEAEB9FBA84E06D772E94A494B60E32AB8FF862E57175DB17F6162DFFED60EF2
+D46FB78237E778C7321ED79FAC137945A46B2D90B778DA46308899577BC7844E
+3E09303AB2DD1F64D58756DAD62ADE22C62DE6C9BDA77CB12B1FCE3374CFA442
+E0CABC7C9AE699CD955077A7268FA0FD3FF5EEDE605990F0DF0078799F5CED44
+6ABDB2E7D9214BECB8B2CBCF328F7F5B8F346B55C9BA5C785A252DA59602B6DF
+186D23D5D90556EB52D7C0B44E4A9A189C180FA213E12E9838F0B2902779E289
+3E2B7DF45A01F36D88C9CB814AE5D41064030D37393DDD7D5974C1A27EBEC064
+B0403898996140AB14E6EF1B48D555A1C4DE29AD0C5D284988B92917442D2C61
+3B15E55CD91837B0496FEBB51486CEA7DFD9787AEB484BE887111903124340C0
+EB034A75292E59CC038E75E1DDB0027407492EEF92D70E0303BD7B2703E131FE
+BA91B289003B7E5BF85D2E5E130CB37949AEE51EA57FD424402B0BEEDEDEB5C3
+E23643F3100312F94C157C98939EA2312B11DE0A683D4018FFBA2864626C9449
+0D656EB0C79246A7F5ACDF442A55C9188D8F3FA64A9B6BFACD8F81D7546E0CD4
+3C5CC653CE9514306439AA2BD2FF2B965EA69A30331E8D65056D919476867463
+97DAFADD16BF9366E95C7C4276093B639541F7AFC9AF745260685D84DD3095D4
+1B925540372ABFB68CEF211D65756FE0E99733B5DB40D5A42016E8715208D4B0
+7A120EEB34147BD179FAFA94D0880121D1C6B27F94965ECC1A93D1B73AC1B3B7
+191B7B3CD4F2E0E52A3893255C4B3F1A70A0ED36DAD262538E02E8A227F6D6A1
+8A047A91ED6409F1E0D9B40698C817918AA47B95A082E3394AC42DE93BF9CB28
+68E63F3363FDCDB014E89990C50210750E8442D9555B0A796B243AB03190B2BD
+57C39F233318B6474F1B3CCE31C21BEF68FF5E3F866789041910B1B11ACEB75F
+146BB1A162AEFB268700C2DFBD9752BCF6F136ACAE815C0AA4147AA2CE61D282
+1BA716B693E2F713D0653B17C9381DA86E1CFCDD1B1FB9A72ABDA1AB2BCAD30E
+A4EAB601BE3F8EB95B32DCF5DD114683AA64E14F9A958D16CC6DAC7DC3ED651D
+603959B0265FD36F8DA41F3173A708D88C73EEA1533CE48C2AB26B4DB7CFA662
+A8A463CC178C31D342EF907B3B44751859F2BD510F1CA93D61AD39E8E5D7785D
+D465C47F3EDFAC22DC2B5DD93B2F752EB5482E138A0A1E5CD62747E0F524E29C
+A56E58A6BA543CB3AE051F4D90891B65712B63DB197E60275EAF5975007D09B7
+95F916615F97C50D8FDCFB67F1B677DC5139E6F46ABA079AC552F27F507CAE8E
+E5C04D31ECDD6CF5E8A447846375C1748651245EB9C780D87FFF162AEBCC9E0B
+155B318CBF420DF0CFBAA5669C2DBC81B55B5042514B05B7B82FCC827E21462B
+BC8F8FA96E2CC4441E07E0901EA72495013400453E49B7D243FEF528E4078AB6
+49277EE77C81B9167D2EE1961AE265A8C01F7562ECDC47D9FEC391097474EF8E
+54A5A7FE6C98A81ED29D42A3D54326219F638C92AF8A087607CA2A2A80CB1183
+8571CD40199FBDB9D70AD83979C739F533359FB2DF0AC4AE3A0E9DFE735ADE9D
+6E29B3F6DB9A5B11418E9C860EFDBCB0E49BB900BBCC85860100F1FFA5AC07B5
+14F37C5AE5E1A35168BC48BA7012A297C7771789302AF44765A6DBCFDD418172
+62DF3A4785385CC9D055A9B4FFF373041D9F5E9DA83BC1C5F3265E49BA624B82
+F15BC17B135D8723324865A9CCDD2EF3A0F64C17914F9B238C946FBCABD92B30
+AF90191996ABF2E4972AA9D0EF7B64AD0126D07714D4059CE032905BDF877D7C
+3440C374D7B5D0073E13ECDF3DEF2938EAC1908CC60D0E5EF5F52AE8A1B0BD34
+8A454CDA66E7340783A7152CCD74EAAD4112C7D70F3C867E140988BB610CCA20
+F1BF5E3DA8097509CAB419E01CA47D449C50EB8FC6DBB75AE2C5312BBCC5CA91
+86B221536517CAA6870429B65069FE3CBF3FFFB5631B57597E5C0C3E39199FF6
+4DC35B155A759CBFAA96409BAFC7EDFF03D2671F0396641446605843CA4AA36A
+15070DE52DDBFF487C5398CF7604DE843F32CAB26A96F8A9DCD03F3DCAA57E47
+6F0D36CDA34B96B7F4986275D79A1BC1954D2BC0BE1509709E40FF23B84F8D65
+3DE1D1D8A2AD94AE3DE202D62993EC4BC5AF66CE512EFFE7CF39028BCEC1667D
+8782111D9D503BFA45E4960E6197D8CB5697B1662BD2D991532074AF5491DDC3
+2EC52B4E5AF9B2DAA5D5E4CB644BED25DACC3F445E4C7D58A1E9737F4EC04A79
+238E3578311D88EE6D067725C580A146FF150871FAB2B366B5AFE5CE3B386EF2
+EFB540348505A1749BB34586851FB2FEDA92ECC395B618911E1D00B427251B05
+15B9E42AC1F0F239827B938EAB8CD20FF9705F4D7FB5F5F911CED9EE8FDABE8B
+3C3442DC3B716C3686E1B0573EAE3905C3964ACB336FA3C38B17F229EA10F036
+ADDE7FA5CFC01FAAD33F75A125F52AD395C7DBD3AB6F2321D7B5B55F0ED237CC
+61FA8278FFF9956C64B8ACBE357D4603CC4599BFA198AEC01E4F4AE047754C16
+E155C8FD09C996D9B5EECDB243FA48B0CED1F0882103729EAECDDB9523D6BC22
+0AA1545814579043F0DDA2D7F015E56C399EA3C644A15BA6B144361449609C40
+A4986E00918A7B44BB06E7090F73FFBE4EE3E051121939EAB0349EE84715DE36
+FB187C50AFD74C44C25BE4B7037466CD60F211FFD7044245159505196B0E181C
+0177F14D0B486CDFB767708C171FE513AAFA2B60665CA55B1E5F9E0304B63666
+3BF44EC4F5B7DA58891081F78B37BE8453E86AF3557B97D8B4969CCDE2DFD255
+91FB4D9CD41E5F931751BDF7FC8C700C633470064C0BB00FE5745918A69CE430
+D86FE46DEC014C019C06621B2EC6C3F196A8A5E1E613AD8B28A9D0B981C11A29
+4AD11CD3A46D089F8EF7D8298971A5F9F6F139CA794AB4BF0AAB2D4D428A8E4D
+B80EC134CC7CD74D3F08E7BC8AC5B1846E1E5DBFA97AE4DB885286C7D06B4CF8
+948E889ED85E8703CB97D7AE19E1201EEA205157BEEFAA3E17B8BDDFD01BDB17
+691010A662280C279942158F68BD351B235EA4EBE24D54C0055A19A3F230F353
+77202A1D7BE371010624CB741D4BA2E690B33FE582D666E9788A3E3348A0E100
+2843E0B2FDEE05DF75F4D49DFE2B69BE79E97DA1B3638289395444F1CF6CDAB5
+5E6EEBB6F907807B913290C25D8AA546B121EA90DD113588011DBF01B7F88AA9
+B9CA9731532478D3BA57786817C1D31D8C51C307D7F500F1B58C2CEC9594E5C4
+E5E7239D90C8B5B4A81F95C048272A2C05EF0613463E4094E922F7326815EF3E
+6E82D5A36840A76B1BB25185CD66B05FF2D140E0F22CFF73EB3F57732E935BA6
+8C64BB6809E1B45089273527834789637621793414B6853A1C301612920E3F91
+458D043CC1B6CDA271864FD4CCE585FDF025FAD217F975FC36FAF8B79A6551DE
+AC3863E25DE972E2A4AD997E77A2C05A1A14152BCFDEAF40072A0AD952A3944B
+AB12D66ED3C408DD104B8638D67417D2A95A87E226A03C28181047CF5BE58409
+7D07D2529BF867BB61ACFD68F817BCA73815F787162614EB926563EE2F8629FA
+6BEBC05465458A03C2A8673A3CFF7552855E082A7B5C2D4101A1B96449071485
+279C1EC56610507DF786427B4E4D949BDC9127C2802451F3B21D60D5827E5B7D
+0A683F4402725547EEBE27C38839876A3B1B7FE0D7107D6E2292631D1B9EFC79
+87D05342972EEE2C413568BA971AF56A2D4D89C7C0D0120AD504D444655CFF3C
+957D5EF19169401CAAA2C4C144FF87AC7DD3451A63CE796B8F6C600F913F55A5
+A74B928AD676ED097740BDA578DA299F42CB7B7334BD2281E403129866031EEA
+1219E7F9BBA230D049EEF401CEB412BF7FB58FB2F9B7D1E47F0D774956B803E2
+872A7A5A38E5B7EC4A225C73522EFCE6E98E3EDA3BB402BC5BBBA209074BD2A8
+C856290D01A092160E8FB0D9EF324776AD39D7016C63A500D0839E670009F4C0
+20F033554B6B7CCAB7BF60494431E4F2755E4CD966ADC7A078D434FA59E5E49B
+9903F4E722ED169CC3D0FADE874E3141CD47C69BAFA3183BEA4F37B388F4F48B
+7D143D4B79CC5E701EEB350447D9600D39A7C03A25B5B8B6A5A7284A8DB4969C
+CDE2C99C39EC07BD8559A45CB5AF23B849C1826713828F43DF265068950DDADF
+3B584B90748657609A89008187BDE4286F95694D01760260274A23A41FA66A78
+773902ADDAD18F98F045FF7D20AD20EB685C145D44237EDA272619EA9AB71497
+DC8BBE9EEED31EA77C9410FE650C65A6CA71F0E72E7D83BBCC0A59DCEDA6399D
+64A8F4865811A637838445D84D97204CA7A918DD476471A598D7536276C0F0D1
+F0A88D8BCCA56409342C1FF678CFF90FC7B287C36CE682E1B200B54B2CCB12DB
+D1DC9BB4E1CDE2B9B6BD4B80DC226E10FCF20A9E7878A16EDFF37FB874E4868B
+A9F1C452EAA7126E81763A2DE2B502132046322BE26140F04FEB0E7167920679
+FE8618E1AC5C03360AD3D8B5E913E1CF0C1BE9E446DFB050C3978165838278DD
+23D17DFDC85DC7B168F173D0945D110976084CB27B6F8AB2D22410DB05BD345D
+E4E38CC7EDCBAE36CCBAC590DA5C12D969D51B847A1460F4FAEE7D648818D26F
+20FFE485D842C2088258F4F0B1FDCA46A7110645C25E3A31C4E6986C220985A5
+DECCA30BAA3A4B5CE0152B8A9D68B1FD67F21050A87BDAE6B665036B9C73953A
+11B16AA3285456220D09A03DCD8402C06A2BB18717B1AEA7594F748817176E12
+87E685FE70E28C0382EAE8948A6E9FC2F46E2B70DAB208611DFD5A5D97D39CCA
+8F9AD9A171DF53CAA6E3E5AE87257561BE15E3BB21779397A30AD4B22A1A1EBA
+4B7235F59EEEC1FAB7294D521EC1E36723A4D7BA007DA4239C05F0E6DE546D5C
+7A58CCD00F6AC96C20B7182CCCE3E5937D7A64F7CCD52A107BB8092D5F95A8A0
+589B2DC542511DC89A0EEEF23E711C7444BDF95F64CF486F158CA162138A36DF
+5400A5D03AE62A945373E95840F6D6C7BCCC4FE65382584A4DB36D23FBA6562E
+1F3AFCDEF27AED61245EF880426B14B3DB5D9731039FB98F2F51094CD7D5EC78
+1F8B03F07064CED40D139BD04C868B1E51A994731EDBA98E7D678A07F7AF6E56
+92586848C58ABFEF378F5C1B4C3E20BA860BC7310B9AC48F2143B5495F9B3A35
+85C9AD5AFEB23DF6376EE78BCCE054C8FAA925965E38EEA6F68CE1B5329D9DD4
+DAB3F3342C6E6D9E0C70E63989DE8DD2D3C4C671233888ABF56C58F69D29A742
+B5AF39EBF1092C2C4A906B872310DE0E83372B1C7F6E295D8DFFEFF960DC0F4D
+83D7878BD8918B9BDFA17889D52AAF362B6162C07810672E23F66F8CF3BDBD6F
+0E016C4FBC8CBAA796057A6B9BDE3233909694110279F81259A5E628FBDF6159
+CA0CD6997EBD34C3038A02FA4B422A98AAF4297B998685D7080EAEBC22E27900
+8B0178A75E5E52363A2E56507B3E44A6F9A9DD81886317A07B4823558D3690C9
+8C722915FEFFED7F6CFF4E94DA744562835E29C97333CFE50D49A5EDB886F4D5
+279DD9CD35C15656F9329CA06A0CE1BD5986784A910EC3DC7AB1A068C8ED4829
+DDBC83091AAF21092234F614A6CA2C4A854B5049B5622BEBBA68AFC0AF9C6686
+74555347CD055BB13B5CD7B5B6954A5794AFCFAF9AAA3682C7333564660E7C1A
+8FB3DACF1ABACC3D68C26D07060C7D5B9AE9C9377A771C3BCD317F0ECE3CED11
+C0438A29708D99A1F3C02E67AA1D7BB57AA7D8C64A2028349BDDD4BF6DB3139E
+C1BB6D7D906699484EE2A5D83296BEE09644B62EB10658E06E4176C1E5E7BC4F
+36F3454F2DE69F0C5B51FD5874F67287294399923B19A40CBCA4B580BCDA347A
+9AFB7AE64C8E9070D5586086E6F42EDB8C0E9729649CDAF7C0337BE5E670DB9B
+D5C038262B65603C1CB1BD00D4ECE2BDAE5B77A8A129DDD79DC7D080AA89B7D7
+439A03568C2C826EF23C2ED7160B2F8F14C05F444E364DDE247748541CE7E265
+1414B5A15E7152C6E9056B0CD43421D4AA5EBF1EC2CC70516F920F08B0CDC38C
+DF480EEAF04D7F12638C9CF8DC4F827DB07256F4432345FCDA86CFCB637D04D8
+931A81D2DC47674AB435738871A65422D3FD46DFAE9049F27DF0DE33A0E3207F
+A6832153135BBE5A283CDFF46ABC74C78B3320EAB1E881E59E07C3134F3830B0
+8216AAD3995D3F8F6CC988C73B2B7A5B79E81C6E8377FFBDAB29B4CB6317B118
+84A437E14B0B213BE7ED610E9469405AB950965B2CFBD4CF0B3415BC9638771D
+C2D8265D4FF0018FCD3851E645A82C179FB4995A337C0A854999E0D91EE8C98A
+A9EB781A0DEAFAE1D666D2F5813BB2E79C232E5C96C686D414921DCF8EAD4C7D
+06F79EF5078C77556346283940EAEE347B06F756A800FEB7656DC02597A674DB
+6F8BAC8751BA046D7040B5BA0AC766522FF9657F71C7C89DC93E92000A00120F
+301DE3ADB5D7D62B57E0824B9BBED388A5CF1B39B034AE2E44BE27CC0F5F0223
+2A219166697692167403DC2083384A698551FBE48BEC89629820596FD569543E
+75174901415C56DCBCA012694D671655AA84A8D8307B34066F1AC149C8B4BE3F
+578F57A39B93DC454580C44B12D6D1BC653CCEACE809E5F3F7406B9F4A868D68
+ED4C5C23D7B2497668D718621A94AF4938A16FDACFC6E3B216BB615324375050
+24A7466E820435B11E93E91F673D609932BE884AA1CDB9D433A40D189A668498
+A1B708DA358F56A1F2CE297C61D9AC19ABF79539914749E5DEE0FD0DC998F4D8
+1A4CD93D0A06E68CC764308BCE69D4D53FB2F0AB742D7E9618321EE87EB1DEBF
+14561A916C8D58B9C6AFE80D586F5FCAC3C6489038178E77B515108E48C7AF9A
+AC9C3F93598A28CD03864C6A65659E8E6C782F50ECFBE2C27678ABF0978877FF
+C685386DF9D9D8F51EB5AA618D2B3F63FC6A0D6107469DA479D540447D785235
+2FBD6C4054C30D02DF3D2732031297F53AFC937F6CEEE01B2EF34D59FD0EBD21
+854C5CAD32C59F6D8F843795472ABE1F73107C0F5A5B9274CFF2346E7627355D
+5E7B3B3451C89DF5572F4E9BDCAF526425B34D71875B5109EE341F55C551DA50
+31E2EC3BCB7A79CA3F737D3CC23200160C76E29B9A5740BCFA0355AFE7930076
+1F621C801268E18B83A108068B8DB4ACF7079069AD73E37ACB779490900CB770
+326BA14A6CB1E7FF537AB11F432809968CC441F418AD1A36075D948D487C55B3
+C6FC12080681BC9685764E9348B28A29E6FA025EBE0C175AAA6CD60CE6E244F8
+B975C570A5D4B964B9A39EBC6D3327272589C6F61D91A7197B050F17C83BA988
+AA2C67FAC8D9E2AA0F906C839FAA8B50BBA0F69C642343D7FA1E55427D0A015D
+A9043C0A36BC4E02A6EAE35220C779D22FCA7F7DB374E0E3D066CCAE3C09162E
+8A4FC6CD4741B38836CB599DF98A21D0C90AE79806808157F97F850FE90EC0DB
+9F2D8036BFB4D379696E73B84B015B308EFB52EB7278A37676B96C607DC49759
+734D8F1EBBF10A7E363AFFEAC9E499BF4794FA3293666AF2774FCABCE014DB9E
+00021831DDAB3D794484C4A85B8F0097DEE9B526B4B344E16C267512E5FC9BBC
+0AD4559EA5F6B15BB495A284664053525980E3F4A5260951C57BA8503D129CBE
+58B1CACF6720EAAF7DEB7CB0D8252145CA0652F5C3F2404319A99B5D76C76F25
+9DB41F7DBDFE420CB9EB13E5841E0BD216209890529F3B2FC46B1A989528E177
+1D0331A9168FB51A1D06D2FA9ED0B021949D27D11B3486AEE2354BE594EA358F
+67A73EE6849DD9DF8543C7BC211C19F960CF974BA4AE210F945C9E9747763E7A
+AC30CA6BED67F1E42BB3D929D06999A6485FCB4BEB0BF72CB64A6C6E672B26ED
+D26DE7545923F7904AEF29BD9960F7ED64AECFA8F535D97B1C6B75D3ECA114AB
+866D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMR5
+%!PS-AdobeFont-1.0: CMR5 003.002
+%%Title: CMR5
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR5.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
+/UniqueID get 5000788 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR5 def
+/FontBBox {-10 -250 1304 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
+/FullName (CMR5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 43 /plus put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DAE26BF1F487876AD1
+16184ABCA7446A2352AB37C36E9C9BB67CEE105C612D36566FB459D6ACFB1DC3
+7A59448A06EBA21F8824266BDD0ACF9E356251A897A920C39F1AB236EE06C039
+8C4C0AE55FCED464E19AFAF548D454FCF73F6087102630AEA03E622AF2596870
+1353925801642BBDC11F09963F4ADF037671B73D48CD9C209DB4D5BE7F4CB381
+94887E8365D25C45D1F87EFFAE360104ABD3235E4D2F4BA163408448E814D49A
+3E7C171B8F1275D49937C3255326069007B302844EBF2BC1990DDFF1A34C2770
+A262ACCE874DA1E0002188D6A713C79D5E9226178EED27D6F4E4DC24ED2669B2
+3873F42A48E5C1365AAFC83FAD8B849E5D7E52BFBB01B281005A9EBEB4EA2F35
+B691489305BCFE5516DEFBA092F66ABCA2D739A9277AC69F74F786045E63B0F8
+66D545B12B0581AEB579D5E1E2A412DB8F66276E05F131EC3B9F543E11F40FBA
+8CC47071DB04A5D38A707C9F825527521CA1FC412FB54DBD72E912BA4EC8F747
+306A65040671237C8FE84AB6D6157D96EDE13B3A8FBF7140F1A9DA55B666953B
+C7FA638353F278D07066AB8DDF0DFFC832F7025DF1AF9F894D52E9FA95EBBEF5
+9D6B97768FEC26E845B87C6ACF5395C75B894B5A1F50B248BA33943C5AD6CC2A
+8D9AC65C08B3206E7F5E5913CD0D54C9FF741A4D92B628F85E43F52082397891
+66E6F922E0BFA2E45F0072217011D4B8EB40893F151E4E2E92ECE5862C467D4E
+3833311B08340AE1C0C692095AFB739E9B9A4F56BFA0F0B2AB8455A7470C22C2
+0C2EC285026195CB73EE2A713ABBDE4945AFEB92630BF852DD4845FB4C9A8C8A
+0C8C971F29440B4A786108D0DA1AEFDBE03568B6B2F3953B4D07A5B7D6FF564F
+6CC0D8C08CA459D556154A45133BD7AF70C7D8F474DE66E64FA112D776478A83
+B282EA4E941CE2FD6D8F7B68D129CE0093AAF7C1D345C3D65BE74EE9391C9B89
+2D4D31764F1BA81CB12CE46D15A6BF941C9F0EACB4A2DECC8F2F6B85FFF490D4
+ED7BB6C7CDED10F03F68282B2ED20809F95840A904020C98299E17C46243D9EF
+05B5B8173BB2E8CBAB3AA9B8207A9EFE6366C91A7674DBCD9FAF12A2EF4B5117
+5687F3DF1244F5439ECD8AB0587F492E990DD7B516C664AFAB76CE71084FDD70
+E7F5A38BD46926615659488D3548C5066C06E443016DD40275CFF3105573117E
+369C8C34E48BEE832D93F0ADA7674FC6F5A64183DB2B70FF166E02E044B7063A
+41D2F396A9158A26D3953F12982ACD1D7593F474DB98ECFD00EAF57FAAF17C7E
+C1E4775B37FCBCD6DB1B5BC6209162E57E21A6AF427043562D9854B430A0BAED
+20D31A9AC334C87875E53E0B956D33111955459DCD98D54E1BCC61BA58CDB41E
+03009979C0A541FA9F69B55D3F3750515E5F268A7B55254B8A44CA732F2B9242
+18F34C029665B31EB68331B0147607645983340D15E322E3D0532E6376D40FA2
+1041F7988EB9F56D83946757786737D8BB4A996EA7933E79BE61B4EA1115AA4C
+286B7AAFE80AB7C619329AD5FA772A6279FE85FA6B623138FAE1C6AE3FA45AB0
+95D8020D2EE2979E8A87D7E7C5DA2E6B701FEB4923F401F892D83A4928807152
+96CB664018AF24E829E582FA8B4F0E07387BAC53530AB3AADF74404EB2F311E6
+C6A70F960FA962E52A30CCC6E15097F9B7BF011626DAD38EDF78745B60C0818B
+34663683577D897B1B6AEB240F3A2AA29F1F1800FE0A5C205B35C6A6438259FF
+CCEC942AD2D7C3CFE01F956B795C0349DD5380D0140D3BB54FD99EEE5171DAF5
+4FA360A740589A1F8AB4FBC275CC06FF89A8350F4982F87E747501A74B7C81A0
+0F40FBA9D2875022DC3D417FD623D89FB6A0C0F1B930ACC2117C6CE94AAE5844
+0B5C9DAD579B7DDB73F2B26B05E1AAE30AF69937722E8360987AC0BDBE305B5B
+DDBEF5A6C03BE1743C518E6B7B58A85AC961B8755BF37688E37DE0632BBE06E0
+53FAFAFBE52EAF276365A0484A1A682C9B9486CDCFBFBC4F4A1D6BF71378F014
+56DDF9B15A5AE0276827ACBD9AB04D685F52A62BD3DA33BDC2A262B756B58C26
+4F3B552841B81CA60C951F400551166C72B8D357D8122685FE97D14AC22AB6FD
+2EE4CC429D580AD7B8D12A9C601FEE5D25C98BCBCF96C87FCFBF28419BEEFFA8
+7A4FC7B6E5FD377EBD5E743C3FDBB7554A1FB9663B648B15C4119CA952A8263B
+278E5845AB929942E1A0FC4CC413F36134884EAF3704865C1478D6988880EB54
+C5C5C1BDD7CB0548342B9C7B6F94DD6341C5744A9A3C4A866F620BB70575EABD
+AAA42E3B6E23AA029080B299294AF2E9388520367E964A3A66A84628D75F1BEB
+C7A58C92EF7335F30BD0A26D072A986635318E0473CE3CD5B4F1BBFF6E781938
+EE4E3C11AC27A1BE0C3B55586A4565E4B967ED2EE4674121A46DA1C32C5D278A
+44BEB43CCA246B730D337918AAA394728814C726DA4F9C40AC6EE877365976EE
+A53276A818CF25E995CAA34039339C55DDDE74B3C11742786C1E9FA5C432EAC4
+E184F35560EA31D687D005843B02F9252C2A16F9E4C31C18D0D45B7D5F63D589
+3C1FE3D33C912B9CD79DBCCF9FD8223FDC18D55762F0DB2DB241625B91DB17F6
+206120D6300D317E82F3DDE6D2D0825547C08BE7E6FF8FB54D4DFEF2F4E475F7
+F3838B4ADBE49F8C41409D85085DB5A030858AAEEA5AB9CD2D1172C8D0EE31AE
+507D8048E123AEAB05979C872ADBA4833D36626166BBB2A2CEF2F3E641DB429C
+AB15C97D7180E8E6AC0D871E20678516ABAA4D616B51C132F41E5661858B8C2C
+ECEE4A65A2B0FF310DFB531B213196D2E2AB015963246F44E22E603E741BBFF0
+16DBFC284906983A8C15278A36F5379F46C152304DADC8D90C313961E5F58180
+EEEC5A15131E5C48AD27F80B77EB0370482D528735FBA3E6C0548BB66CC222F7
+CCE87194F565B9EF7F32E656E6964501CE32462FFA6B87087EBAF45D454CFBA9
+ACA808C4397F3852158F1C0AE44772253ABEF6D278F726A03A9CBC4330EC80D0
+117F9131C5974445B81093C1D6E093C669CD285D1BFE864D53E5F140D40BE4CC
+2689C42C50C4137DE564374B2130609785D8F519E0083DD24A44DE24A68E4071
+4A2122AB8AB9649660D1C96DC58F37F88623528078BFDA3BA3085D527ED4CAF6
+25BA663A61AEC4938CA78C49623FE0EED33DA2D08CC78F86A807E791BC9CFCFE
+8FBFA55EC2259B64C31F6EBC45D2DF9B47EE09AA54011D40F55B6F12F49F2266
+EDDB09D44C521EC9568CA7E62283C483A436417B65B4FCBC7EA32AC6EB4E7B30
+080816F29F06D6B09E5506D3149C5D758BA85D820357D4955B0C1FFB383E10DA
+4D61774D3B23C84A339C7348ECA6078080FF8B436B2261091DBBDC02583E366A
+622ED9F95D2A85BDBA48DCE8BE45628A4ADFD5A48869800D9B54F530F43A8F53
+F765F5D5C44A9399FC1B9CEFA343966118DD11CB102423D46BA0F096795AF0D1
+BA33F089AD80A104DE7FDF8A6E7D935E6713963FE3C57CC673BCDD423DF3DCE0
+C57EADCA2AE4DBB30166C2CF1F7113DF96A27D4BBB23ABECC5A4795F1290F4F5
+5293B5870F892C9A32C776AAD06D78D0514F047373879CFC5AF9D624DCE5BC8F
+7CEA5055064050AAB2F24A1C792B2609FFDADC6AB8D0F31A12403CF3436A1E1E
+E24BA5F92587925C4D6795A3FB163245FBF054BB1B0FF01FD63DBF7C192D0F31
+33A17E7764699B669A3ACCF7C36849EEDA395E7F55174023A79904A766F21D58
+3DDB7B4C2808DE7FFB8717658084E70DBE046A13BBF1F9BB97B3AB527D68DE8E
+924DE65486C3B883CD65A95901B0DE57821CB6C6AE37644E02F5CB0163617113
+C91D2C649A0BA10736F3709BD504F22DA8831A09BD0B2D6790A498F2FBC2F642
+7845796E606ECAB2356238AAF40323D71B236CBD1E3E43BD5443F304D52F3CC0
+28DB5D33A732695AA09C0449C53C656704D820217AC035DF45F59AE445946481
+E5BFBE5D4EC0A42B5662FBEB9FF6ECFFB5E8517312F56C91A01824E401E7203E
+258C3BA073C1B2532B8312F5AE29E37F5EA71C52F171593B1370D4ED5D7341CD
+567390ED5B75D612D5873BAC518587525A591164E8D36D2BD89F792BD9EE6ACE
+99FB72B23CB2445F12B8A6A0876EE711166C9E34897D370174C17A2495D58B4D
+3DA19DBB1AF2E09C72FA42AA3D8047D05AC4F6A27F3EBF32ADD2AD2FF26EAE05
+A9AB34C9287EE00E8EC29C6603036D365AE08E00D1C7C410EA2551696954EC92
+92080C8FA5C9E67698BD7B895C82ED29391E015F83E0DA145384E223319CBA74
+19494F070649E03CE9FF905619C6CB40F562DA49C1EDD2CA221DD7D3DAFA8279
+AB50DE1C059CB8D5C9FA8137DA711B9D30F236526AA389B2F79F3D5BA6ED9534
+8852BF4448DC1B72E361A6A2B94CF865BC9C3401D995529E2A36DE755EE001FE
+C67B184AE8241D08AF88D626BD2D8AA12EE791AC4253D4761A21917C7F2F5AEC
+795CD14B33F59DD7080C7654DEFFFA669F50FB1AC8C0F2E60201673A78D03DFD
+DE0CB142F0F616C4051772BDB837CB4CE87A0C8D61E0FC7F90517EA0F5F6B1B4
+D57143CC0AE7CA9521C1536962867D6318DF1C9CE6476CEB9ADB21655D379B26
+7A0EAEC2D28430C14D38764C493BA4C06EF4BE6780131F2FEC066C4866E0B258
+51C48BEF77011A0B5763CB3D69A50BDD50C2D7EFBBF18BF42544B1AC196377FB
+4826BACB3C16DB805D38C34F9E92AA9AB5F9A9B317D8BF32AF8A758017269914
+DE3B748625D319E571187E1BFED9CCBE11ABC18C0C6123D24D2C7303DE998847
+0F6F644748ED225135CC3B957EDE8567AF3EE47F5E942EA9293F7BF74260D1D5
+A6F5E56705E12C8379DED158E66DF54349F0504EF584C6D05C44CDD8B720809E
+3DC36FF60BF55FDF1CA8C968E68346CF43C568E0B3175CB7D55343DE21CF9730
+C9DF918360036E4204CD024A67E764D3CC7677E5B229C1B909ECD1B9042134BB
+DD8E47FDBF63F212D401A797EF60011F52EAAFB88E3E70E007BF19826E40FE4A
+73B57D52FAB33A737B1341381EB2ED307E0B83B45D6911E04BE623DA82DD6BDB
+2DA096827E6A498A8D503668E45926525789D43D1BD5B896B487C0CE04FC9DAA
+CD9078D0C8A0639E27F0DCD82C552A7FABA42BFFEAD66CEBBD4D2E4B4A1B40A7
+B6FD119D37FA26C14C29A70E2EDB3253A1AAAC2650009CA3B97B430B1A05F2C6
+F2120C8981683D0976BC42FE98AB2D33014B983CE1E2F1E1AC4A524249C3CF13
+4B36652F96FCBD3660ACFC2F9778B729AFE2CE1BCF473DC5A846FCC3ACBE455E
+2C37853F5204085ABF3BEE50C28D99312A078CE2F6F4C1D2D3017F0E5BB5B614
+102BE45CAF8108407EA970111B5A97CA8C7A64C70D52D28D2EDCD27879B1003A
+6D168CD054E87C063744CDE097887CDF268D89180AF8BB4F170804AE5DA779B2
+1941775FC32FA189038D6050EC0E400BBED364E0CCD8DA571E902DAD812988E2
+4BF761F472EBEB411388FEB6F901777D090400F695D823C758882CC008D889E1
+02678FF81B252C33C89E3B04157C889D4F0F86D432F0B3DD7811BCF01C2FC041
+0D4B1DD9CB6F2433F9B34E7E8ED8BB1FA4F9F7CEB5354A8305C372C2EDEAFE5B
+4AE23CEF34AC457961B15CEA084E31B3741CF2EC317DF484736EDD688737C380
+6D868BDC02D1E63A52D21C8E7C1FD1BD8717612FC247293CC91E0EEA08D5F805
+70217761CFCA0F9C13996DE0F045F28DB67378221722416236E4DC00194E9C45
+A3839F4BB53E226919C2CD13A44E4F67334454DB7E133B2D308925CC2E275293
+F81AFEC4DCF49230F22EFA19F48CAB7E09FA727CC2E11E5A5CCF57307506D5E7
+6DD1D26BFD3DF97E73C2DC019B0A75B9D6386469ACF1A00A5AAB55F99BA1DE49
+9883DC4FB0E8AD9421B105E050519976705F7BC889FB3B6C2921D2E198FEA294
+E192DB3738EBEBF6485075728A0E16ABD53A25BB0795A21B65AFB6ABD7EAA3F7
+1DAE1BA012651B4BA0ABE02F3CCCEB9E92979F17A3338A376C57A1F13E3C90C7
+9DE8ADE421329A57369CCC2BA622840B79C0DF098EA42B810C596DE85F51EB9E
+C8F6FAA598C73F359FD7CB1D337E3B083833389846A99C87885A7537D35772DC
+A7EE51E8EEECF4E4F38AA04C3F4C447080386A41F1461599739D73C58CD02D65
+0899177F7D707AE793B4C915C590AFD6E6810700BC0C3D14B67E03129A4215E4
+953B88C7A9FF1AF4B6DA293E1DF2EF5667D408AD3F2DFDBA46EF95A1D8E1CA29
+FBFA01A4B965D1101CA6C0C2BF4670E94776753FF52C2751AE41872EBE3DC66D
+EE58BFD3BF8F543802C7614F64E7A9CC4474DAB5F4C59F8085FD523C91F0FCE2
+0CAEE1B9613064F9C9CE9556C841563A43660E0E71EE761F0448C41589AD0312
+958167F62FB166655800150F9E81A558949071F01BB11C9ACFB2ACA4F332D2AC
+598AD5ABD3D5EB17AFA97456C0DE4D3D872750F548C357FF34919A3EDCFF9658
+F3DBF53BB3D0A204E84702DF6FCF5022E753CA92323ABEDC81071ED44C306A7B
+C10D15F905672783BFCDF28D97EE156E293046C09595159C735A266ADAACB887
+7026C404951C27B88CC3EC1A6F15F016D55AE6B5DD739914DBD6861098977064
+762AE2867697967117DD7E3CDFC24D046F1D83856D49224191CBAE95C2E7B9DA
+4DC5ACB06B9F637312C1378941EF6B9D966E84DA69E66C43EDC0564D4A9B201E
+5CCD830900AC4D4EEDBBA4AD14ACBADA20179AE138CF35D6F830801D7F9D1F3A
+B48B6C2EA3B77E7EE42DC0A26C7FDA6EB64DF4136FC3AE0FADAB84CD30392E44
+49DD3F7DFAB77AC2E3A8D16C9BC002AA17A9C1E9166A21648AE2AD7F9DB250DD
+2F3F480844C93059796E89238B0DD470329C2AEC9F178B83D421063BCC18CC35
+2C562DAE86EBE6529D19066FAB70C8E73B260C71924B0B3DD652AE37DC2ADCD7
+A3E3E1936FDD259A3F32D669B6CD82D73436212D6CCBE436578139AE07BA8C5F
+07A8D2158C8F21007FC0B96E2B3588466A6FAB4F70363E994AC4FDC2CAB3A478
+9C98DE079DF219648A6219EC7040A8FA91BE9D9451BEA89906677866F50B6FAB
+E8FC00E826B115CD65FAF738492A919CCB657186BA12260C2816C44A632285CC
+25CA1D797DB0D901EECA675FFA1182AD6D48A8A96402D07A288CCC02F8A7CE0A
+39084DA379C5FD08743060851BD02A3C9CC298FFA0AEAC5F5E1928C46A6EBB42
+7D2AF9D32BD0117A8CD7B453C66FF39163092568B5A26F210900D466EA5CE01F
+14BC1F57BB0D3186BEE9BA1A5648887CAC06E23057199A31781C4C37B1A07C32
+B8AE8A40F5C481C8D2854AE5C2C3C746C4A2B48189A373A438F512642A55F2B2
+3CCD2D5A06A1859B50C1C3352B1B5B56E652F00EE79060842A33A8CBD002E777
+3CF6C051A6D5F02E35480569E9D00493C494F9FB977E665AAE4468E6DBBCC950
+33876A21B75095CF391E09E814D7A03EAA19BA0D7A560610CC36EC3A9CA39CD1
+4A359FBC14B07975379B68949C9FC2DFAF037C56C13802A7F66C809549EF2FC5
+25EF3F517F06F90EEDFA6F8A3E5F1F3531A5415F3191B8FA7B0F28950A20A1E0
+6E354480D09729E3A2D6796DB81825DADFA4580FDC7813B7989B18020C3AB1A2
+87E948890C25563CB26A068ABABD94F3D42213218F2ACBB2F5B317311474B222
+BE1844548554B37C97284940D5B7AF9E4CBD884D4994A76CC1ABF8E6AB0676A4
+0A8130F05B0ABAC088FE4F9FB536924A55451C8772B29087B8E5E649DA3B449B
+4A055214DF69D0218549440B3665E4D20C5A8660B3E0C3ABBA3426E7820E1A94
+5D273A6ACA180B8A4832B68D11C794B5DE97F8E087E31A187756642E71C9A742
+D5779CD52C76A7DA3F652FD48729981B74EF5789D429E634B5418F210BACAA8C
+2BBFE63BE9B2B5F282E05E1F4883E387052B63C7AD7D225056C3ABFF3F329E7E
+6776AAC504A707B77087FBB78F9181D9AAF81806B35D8FB280468C201F6E11B1
+6C8EA2503F277F4E67C50A0907040CE33D02448A476157E601611B1E45DC0DAD
+D886B21BD98E44344C2753F86EB054D40FC82BF5EDBE356E13095C57320E189A
+2D47FC853B31877978C251DD0D88702C54E64E61E86ACED4A83096B757FCD23B
+C907EE25127D5C50F1EDB70C4D5B242AB02F0A08FA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 44 /comma put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AFFEF215D00BFCAD02E45496D7C8F5E99EB9096FC4300D038C1AFD31EC4C
+5ACA6B72C1BE7204E37A4CBBCB1EC26AB87F2FF82DE20601025169A5FBD2D060
+62B5B2DBC288C79C33B596832AA18D730AD572C6EDFABCBD36DEA87C0F323C3D
+6E537AD3B43C6F3A905597570A8C6B0B4A5E08C08EAFF9731E745F2BA8ED0C0E
+1ADF7821CFCD4E38F3F4C243CAD31D9F8FC68B9043740852B4CCBDD37BF728E5
+648215961FA82A0C847ADCC5187331D0863A4573BE520C02CAE14AED4F06B3F1
+FB4A318AB54CD86DEC824707B29F858FD726A167F2333855C0575EAF4EBEA0B6
+754B1775F967140641FC06F82B191244186FF347A351FBD8FA62E8C978B21F6A
+E124929876488AFA97FAD1A68A0C3496BCA768F4AF8016D7A65BBA3AAFD7F5FE
+E75FE714FFF3D54D09C9747ACA01CEFD260985C6E87477C9C7843343C7E9E3F4
+0537D461EF019E046DB8B5BA258462B2FAEA1826B3410BA3333480CFE0DECE61
+CE2731FDDF7FCF2AEF7CC2B1EE7095F480B3B27932ADC486BD9CC130D94BBD05
+43872FEBA04FB8866ABCB4D379696E73B84BBE98FBC4A16CFF22F8A7AF754624
+2912C228030FF7EF23D51DD61BEB5171AD31E2B630475E16B6E0F3C78D44AC30
+712D165DB5ADED89056FBDA355CE0DE5DDF2A52DB851879E39085EE9D44EF757
+9B4BEE1ACDB865002ED4C5A98683AC13D9E1FD16CAEAE0CFC3F67282C8F268B6
+9BAD8C1AD693C08E7406CA9C3A761E932347ED06E925FD7F6A85BF80567F2743
+6EB969643D9FC49CADCCD1B65FF45BFAC75B4807080505FEECEEC9BCD52F1D9E
+67AAEA01C808C8F54B764B69CAC95889282F9F5BCD1AF47544BC3B17B55FF5C5
+240BDF21CE2F0B823654DE30D3782B16E20539AAA118C21E07DDD0D43A5AE652
+F3CFB8965D550D3EB62DEFCFF4C44766CC73DD7525A1F2DD42C27B2730AF729E
+4D9F8A4CD9819787E260B2B35345404D6D5D205B2A917AD9012FB07080650772
+320022545053FC7D0E129E0708CA6C96091718B1EDBB01BAEDEB17D9EFB987D1
+39E3EA9848C72C1BCD7239AD483CF7155ADC2F0A3AADD1CAD891FEB4ADF1FDE0
+FA8A54BA19AB9D4EBD8BEFCD731DEB2F1BD4E84F5DA0886141AFB9E6CF117F44
+8EAE29DF9513399E2E9FA91B26C95D61539AEE48D20BF8CC4A353BA9A243922C
+FD6729B1CB7E86DB552B6F84EB67DF81DB4D223A34A242769032060CC53DAB41
+EEC7914E10836A3C05ADFC71C5F898C4081B5B9606DC63124D501DB12D440F84
+F878F1996A1989EC0393B5C88EE2820492829B9302531505E2AD14FA45E5A706
+638D8CC7DDB55F99359FF07CD222E89F1247A08B1FECC004FDB9441F250DBEC4
+F11442133884EB5BFFE21EB6E58C90397D4ED82333E8D75604647CD5E36457F1
+D274C35EAE94067CFD3597432422DE1A0EA74A6F39E58816C7A848392A5C54B3
+0FD835493C65F856DAF46123D6924212B738B63522EBCB90F3DD0B1CF12FD99A
+AA6DB04FEDA47AD1AD8500B1BD1594D2E3EF2207CE28C66180B7CB4530C9D0BF
+8D4E37ED3C0EC9A802DCC84C4B8B6EAE428E9D18A077D92009C15242B32100D3
+690CAFD3D4066CEA5351592F66E730C3C5F64147A531A7DD27925ABE620A24F8
+E8761AB32DD9E069E4E49C94F6B06FD62099D325029B9D4BDBD41C4A677222A2
+2AFB72CB8EA249B31C36D6510857277FFECE02B8D3770C72EC1536554F8D26DF
+90C83B1689E6213FBDD739ED05E693EEEDB6756041D4EF832773ABB2AF63F6DE
+39FAC496690AA175991D4623BB3A1CDD07744F4FABCDE21D95134D46A1B85DDA
+F58A2BD668BDAA0215333330B3360C9ED981935FD3FA9DEB375FF3F79EE57735
+3148E12834C71C717A1F273CC4E622547D80DC6C29320C9338450F9FB976B63C
+DC6E120D5AE7CB83EB636DC404551A467E33A9EAD091E62C56675FCB7D9F8CA3
+79F7EF37A39868B79C2E954179170541CA08E66648177BC48D654D829099B895
+4E08C0C1F46C246B90FF8B991C1B4C841DA7443D1CF779E7D40C15C597005EA3
+C8F5660207DAECD3102AE9730EEA79801A8F5A489348CBC9CDDCEDA993F3BCC2
+F4069D3188CB065AF94440163FFE5B4EB636ECC7AC88D7C42D360678126BC086
+5E119F3D6D594FC90F659A0404A4EBAA9297B570A2B11F41480522F0FE18F7C1
+B67161F7711ED83023FFB2FFB0B40CD9E6A7301B529AE66051478FB2D6D608E6
+EDA57447A1B5B310180F2DC042CE01C6CB48FF0038B932C0121CF02BBE9F738D
+B1E520CB80C7CE2D50AB445833B0AADD1933F353DC3C3B12D1A9EA4DF6A45966
+0DD75982AC9E3F5DFA5B1BFDD7BDE11F15D300A92F442B080E0CA053EDFB46A1
+36D15C8E41A0EBD592E3F0AB46F3BD8A6AFD84FB935D9CADD6D5E33BA7C9A53E
+E9068D6B894B3E1C85E44D50EBF5720E145EF5668980EFEE49CA4ACD847734A6
+24735F58FDE181D51BEB594174F1318BE3027F7730125DBB85335EDF44D6BB2D
+6C929ED61770846F63D32FE892682914ECB2825A64EA113246B250EE0447A84C
+E5092E46199E6F3CA29D52D9E4BC449379E10ECDF6823182062FD982DAA624FD
+13A545576D7F90AAC2508E8767A0B6B01E117831B16841B250CD1434721B4E3D
+064011F71A08A7D122047F7DFFE388B7E31CED2944EC5DF93BF4994F289BD0B3
+8F7CE15091A6AEF2E0098D3ACA966D5F0FDA98A59C4F15F2ADC74D405F4D035E
+1820A320B108954E626AC835AAFB6EDAC929C04A6BF20BCFFDACE10D52086E2C
+8C37BB4EC927339CDEF39E8297B38C586BF7458886E473B668B6E37CC0D0EF9B
+DFE3941A16D21BD53AB04E73A34C02CC5FDDA7FA4168D2F0321742A691EE856F
+CEB0ED314523E81C044B049945AAB62079DCC0CFA3221F93693AA891D470BB7C
+1E3B0671C7EEE2DE2007C9390D0DD4B666C9D307539259E7BAA87F36D38BA8AC
+78658F57C706735403AB2CCE9C016DD678C2B96AC7C390B2663AA21C9FC5E625
+ACF662498D8F8AEFA1C8973E9D88488074BC86A98D9BE6E806980636684571E0
+AE6A0B7BD0AB5543ED537882D3C0BC7BD1CAFB4DC5964EC243D5AD03FC6947C6
+ED7A4786FBF81D07FCD0D461EE8B7D7D36FF56C53129A34C0341D23A21E49F71
+AA09EEF950ED58304EED657BFC9F525DD93630A3EDD23F932EF585EA681B0734
+0DCB7FD6FEA9C325A861986CBDC0559331CAF5D14AA23164DEA51BDC99B77F9A
+CE802861A736269E0C9E3DD72949393E3A7647D9ED11BA0187A70C7EFA381689
+15C15D47B95AAF8C3FE9E88B18C67EE75C32C2DD3D734F0C5E89F868677DE556
+6688DE640FE890CFF4B1543A22996EC3CD8AC75DBA71A1F83F7787C71038F111
+166E405685EF4496F8908FB0F1CCA0B8D48C4C21E0BE329FB7401C8A5AF2F5F9
+5FEE4BA9B3C1689B23088E4F81FFBE9791A4B8DC0CC468657BA391E1537F2EE3
+C927880E5E7B5688921C36F716812980AC9FAE07E90F2569FD819D831CB308F9
+291F560990945B6B92900BF7B3BB7B744FA840AC38B99F13E8EA78DA562EB7AA
+56627CFF18376B1B39F5D99F31B29114D21F234B4CCA814F9D1D997DE04FE835
+F226851B8D95D05302B380F44638D923D610DCE2E63328DDA6554988F4D9D6FD
+AAD7435A698AFCF2A18033A5FA38545D6B437FB3F94D40257B368806C759E245
+6D09EBEF05668CF0219373C2D5026BDDDDB84CFA68E7D6E8F458E73988DCC45D
+A6F40CFF0C8876C418DF5CE037045622C6E3B52E7E68F69424F05B6AA776A500
+6C0ED6D56318539437C30DB708836B2751A7842FB90C0F1EB7C5C641EAB01E28
+4115703B4EF8569D870BF517263A0B11C7D838FBD8C958DB8A8B585AE628E22D
+CA9AF5B7005354591981B188089B15B53B871EAEF85250272B09092ACB7C15D0
+EF239D373A0C747BEAC91A502E440DB8E33A325484E01810B8BE2367000BE664
+37821E864B18A1C5FC389419C377888ECC44FE03512E02A622AB5D6116D2D13A
+379C75226948A574C3078668809AB93E3E9E272AAE35374EC47A70CB07CA2913
+65020C1891568F389271931396C8D683EF7FCF90D82E924EB92BFC5533443079
+48A4CF041AF934D6D97FE0F224ED3AB83E2BA5D9D51A5FD28C9F78FCA3BA334E
+DAF2BE3FC0AB36A10DE2BE785DA334DFCF9E49454141891E4801714BA4B777CF
+57C273CE0C16F587205D642AD622C9AA30255DCF5466448D902CA54B37C662C3
+4FCF14615E147198FD0B5F764B6874312AB93FE19BCF850CFB496CDF12D2FDE4
+B98151D730BB35846CA9EFD028CF94D8D46CD1ED72C0F69DE8F6802535DB9874
+54B6814CCC8160DB1304C195B9FEA2FFD7364C460116317D4A192514308629BE
+BE23CDB777F6708B997D21344BDCA601CF0CB2A1A095F6A0552043B2985A6D5A
+19E89B34503BE17BEB46D3933791C83268D06EDC9C961F8CD75B508D07B7718F
+2F774D2B83E417D855DDDE558A49993ECC62B521D0E22DA63C6B7052377F5F58
+14118E4F3721EE8EBC1A3FDBDC4AF2EB6649CDF9E0639C7C4D7EFADECEB4BD17
+529E21D82B22C1B8E8620084A3A2DC38E240EC605D8F06D62825A1ED0FDFFA01
+6F9B4EF8EF62DFAE06FB30B7CE630194962E413964382EFC788D9416F78D3970
+AF28A9F60EAF3AC03FCA293EADC2B41EF5D26691D621BD48A51A52D60E9E974A
+0ADF05B7C989DD9B6B5461F3E44903C991B8BEC426AFA530D6E0007AEDF152FB
+4CD5CB60C916A05A25EBB0D1DB0788746D51ACC457643C369D688F3DED6AC3F2
+4A8A9D02B64C5FE38B91E541D3F028B4EBBAC3B65C379F23887B2BCA8FF6E553
+EDAD1AB30DB826A3F23AEBD5482330E7D8D4F99ADC99C4B729D575B337212C49
+D1183B0F1BFF1485A8808C71423A4B94A43EB536444F65358A348769A6C55876
+B2DCD80384BADDC8A1D3B931D2EEAD3F734A5814EBCF5C96DD97FF1DC195D0EE
+C7D010087183AFB3C0E4605B44CA32DDE0192C4EA65D76D69425BEF52AB6E964
+9D344150B40A42A4C45BE8371A33BE6AD6366D1D6448B403702A233ED617867D
+3E93376EC702795FD336397A94699C3EB0010528BD70EC2E1F4B31D5B8151425
+5560DDF37AD3CF15C85F53B32E4B6A1B93424FFD76B32D69977E06D9BDE99058
+65A2A9E89BFEC10D4575E5CB29FBB0821872F5E580AC5A939367D45BFE57F24F
+1B42577AFFB93230F01839511E0377C9DC64C721AEA3CBC9330029859C556F18
+9538647A4433BB40DA59B0A47B173EF2E32645EE6BD70D77E7311BC126BED315
+8507AA4C984A2ED342F4150C6FDE7CA6B6A558668641177B824B45AFB11DC80F
+2A798D3F6C9CC53A4EB1AB406EDB8E736FAACD8B2587D80CCB026D48E770DCB7
+EFFEA99556CB75717207D6E382AA73ADA3EE5D293E5EB9B43AB335F26A3BB04E
+45841AA981B6FBD624A09C997530B37E9036EB2715BA327FFFF9C89A45448DA9
+1FA7CE7A0661D1AD2F8EC7C9113223D15B3CF13E50FAB644E5A746B0A107518B
+04590F48B39838D3DC690302C56E19B7FC0A1A65A94613309F4289D96E540477
+CFDBEE9CAC7E77D79B06021F2165BB07170FC0EC3EA01DA8B60EF7C9E01D752D
+1B90F6D0A9DAB5944C2C7EAD6E3A9DA2BB3D3F82CC948895EA2AC48AC00C5C9E
+3AF9974DC14AEA84A96A8EB368A3C70AAD70194B766C06634F1F99663A84F35E
+D01DE572BAFB7D2EFFD418D0285E05DBAB4375F1886423D9F8CAAB4C295781DA
+5F08202F793D2E589F6C5210484B0C39173B1EFE969C0F6A7B59544DC09852F5
+B47B4F05F9C5162DA9F324B1ED10A963F25BC9DF43BB668D35F44759EB6D021B
+EF6223D41245A937F8B135D6D64DF1FAC53FEDC4405A3C6348418E012F34AE43
+0C31F9A88DACD1F56FFB0595855E8AFE025E6CABAFDDF4C0EEF270B60012CB40
+4915B449EAB5A90C7077FB97745AFF1C6186D47DC6936AFBDC18EE92218E64E5
+D4E97E9588AFEBA414CCB416139E5A0B6C4D8F3ACE003854462BC94416C643F3
+2971A34F433D10629A51E70E1FD22BACABAE4B947A9DD622098E7F06F9181D26
+DB9C78FFAA3357B1CD078C1E722811D448ADCCF0D362641066E87220C626B009
+8EEE752A70BF83E667E3ED07F13F297E37EDD768F574197656A73FFD2CB063EF
+679A61C4FE8C9677DF43D444D4140AB164AFC0C788E4BBCC66E0781FC80567C8
+BAF87C1314172A41C60F9D0CE4777A68BFC53ADF8F886D0708724E0E7F12A4C6
+19131B82AEB968D23866F14E3FA66A04C585E3CFA28956417B98B3D7FCE32B4D
+1A6610464A0E8CFBBD09BE44C557B9903EC8CFB752FCC6C528E8483A8AB0A566
+CE31E4EDE0954212FE628DBE403210D935283987BFC054BE1AE5CF2A69D99EA5
+72E4E6DD4999B3DCFF5B2424F98BF166F1CF727F498CD278AD7AC8AD2838D85A
+BA7DF475A746303FD95B37578D433980D09B0FEA1D887FFD3C420B64E4728046
+137DEACFD203B98E814D2D2DD6F443ECBA208362C8EF6FEC8658E9D930C2C0D7
+55672082D3468D8B12DB57173FEE46826E43E8406A480B516B2D99688FF6E3CF
+EE304696FC3B744DC78E44D371BBA4BF6EC0591112523E2D9F81A3ED42D81973
+AF39632BEDB84204A912EF3FC04EE596BB647627F9F006B09CAB560D34F0AA78
+32277A5C3CD04256CE19889718FBA11F03A39BAAF8DE5424B4DAB3EAB0A97A40
+B6BD79F854C6BE3BA31FA63925C6C815298D838587AA315CCFBF0A7BCE0E7A0D
+F1383E534EF6C936DFD4696AC21E0BF4E1570327D8FB1A8888E6F07E1F33BEF9
+5C6646C4EF398A448B3663DE0F97FCD121F2A958040BCA0D0927B2AD857A0244
+B757B08D42CF246C732FBED7210C7BE87D1B4FE1169C7D2A1FD441F106BD0BE3
+9195A4990EE1F276BBA1B0643D8714EB04C27500FB2D153C563988FCDABC6B77
+75726052E6DB4036FA31FE7ACACEEA93224899B31E2FF0E1C14B6776E313BD3F
+0A580511FAA5750BB2A728F0F26C7E44BC1889E2B82C2F96E1C62C13475063EF
+24EB8BA9C4F35D1327E09237D95EA9E44CC1D43AF3E0E6CA0F920719FA0A1D36
+4720205C8FE84399D42E2315D74459CEA5BA86BC62381735BC4D1B2751AC7FD8
+9866B06B8F63629C80AC357639741C2183FAB71B4C8992151D9045A21D89D0FE
+C208DF255F40A9D72064F0F0B2B3E8AE647D896721B9023E81F84799BB2D3E81
+CFAD923CD0EB74FA2B3E4718288FEAFFEA814BF377B17373C22408A02804D70F
+566F34E0DD38DF145EDC634BFAA198A1A6C6C60217543DE2C8C689783B9E8454
+FDD0E21C3E5A2E6DDB0942D1DC868D14F48FFCF82F85419E0B0F4F0CBC3022F5
+96110103783AB06D7FB2FDE53CF057305E952EFB6F6F026D428EB5D9FC15C9D3
+1A004A531E97D60C9E41EE7499240E951DB8A8360E761A233F061852F6322F5F
+B876B0E23A010F51BCEACD71E882B25DF3F365392B7E3E8D5BB33D583F5DF765
+67050E9C9D5F60165E9037E07A4C776B65556E6361CAA55AAECA3D4E6EB812D6
+CBB30775DC75B19D28847E18B7FE60FC6749589E7A530D9678ADDE52869D979C
+287C35DE998192FC3E80AEFF553C98C28C07DAEA65649685E14189B5047A1B47
+7B43BFEE52B0CAB54A337742E48465C72F98DC4AC8522531857DCD5B7F505B0D
+60C16D48F6DC7FD8DA8E505DA064D2BFEF86E62D0B264D5A0F1F45EFC9D51F8F
+AB1648B9E2ECCD5AE73B4C88816070408F0CBAAD70483B0C537A8042E83B8AEF
+F6F19B4AF3CAAA8F2C41D6743ED6CD504485B84321B92E3CA1B3C5867DC396FA
+B5D905D0684839B214F4BE183BF74B597F3FA96FAD3F4754E28F4ECADB0BEDE5
+12886982E093D8548B18CA3C2582CAC297510931FB69F205B46EA9EFB46503B8
+25C156EBFAEED701CD0A991269F9F62C521A457879D8B787EBC5A9162B9509AE
+2A2C2A76362817FEC5382E4B955AE67D045664805727A15D3C88E68D68E3684D
+5E9857DB9C9D10F3BD9B409F8FA55AD13348E337B4C9EEB1491DF9C74BA69519
+D32B24BC8AC6FF6AE086C653E765D22075AF264547025B8BA030664B86E828E3
+14604CE40FBA87E8276541008730A379452479851535C516FBF738DD12E61222
+997FF8BDE5D7CC3F8237867F4F101FD23E179E8B4F5379E416AD448411D848AA
+5C37C53925081EE1CC9B34A94FAA0E8713F80E93AFA6ED2A5A5070EA91220DD6
+81041079DC85D56377389FC565759EC1E70E1085B3FEC2B25CA283C794F05E62
+79120820263EA2B47D69EF8B67A4860AB3BFB372FE6A90EB1E20192A3483A85A
+0BA96C9FEFD31A646BB3041CFECCC76858313CBD17CBDC0FE441CF744A7A97EA
+ECF93CE2C0A492C369BA68B33DED83D3A1F27536011DC9EE3D13356F20B0F976
+4CEEDA925C41DC34C0EEE292C1073AE337651847393A9EEA9B198F90807B6A1E
+8F1FC619113BCC17F50A8596AAAD6D74256D0F229A85C58F1884A6C0BBD1F123
+0C23C50B97D95721BE9F6B2B4276CE5DEECC654950202DE9171309EC8AEE6294
+64E9C45E63361BE642ED7241CB702F7F0CD025971479772B39CB366B253D59BB
+F90B267C4D1716B1007F9A59363B5BC4C82648F99B42A75D83657FCB07A455BE
+8FDF9BA1939D7E997D0DA8CBE4300815BB626FB3CDA1A4FF82705DBFE5CF5C0B
+3FE99B2DEEA376F5A51E50E71FDE3B1ED405A3B1CA03D262A5A8F5DAD17C4FFB
+CCA200F4CCC465A7C28EBD4D030F7A524C57F8CBBD51AD8210732B8211F3B656
+FF3569675F6566523E9026754F470597B7B3B68F6824396063987AF4D45A57CC
+574DE252FD99BC796991A91E7A45487F515565F0C0E0DF73558519438D668873
+5BC75CB9EAC18C21E1133792E7FB75627D1A129438875DAC7294D2A42EF9FE7C
+F81EE3DAE20B6F8AD20C3636822A6364DA0CF5C538E156FAC534CEC1BD3CF3D1
+600744382697A5E7375051F693354F89E5933022B60F8E0F6FD3A1BD8D7BDCC7
+7E5B01E4D30878E96AAF0716CD0F80162FE7C7C7A81D5D4129D7050C3D41FE53
+AE422C7F95D715ACD0B7425C69273E762634E07DC455191212910A5AA558E148
+BC5912F07741AAF4C9F7C683D2AC21863E98EDF4D2CC96025AE1BDDD84839F35
+0C0B562385ADAAE64230B8672FE91F5685202975001FD05701F85927578288DF
+73ACED5D5695ED7E5B5174E29A00796F575CFF001318B3B3C15CDAE784666188
+181F48804809005ACAC43AFB2AE6883D8B239BD825168C46A2468C485C2682E5
+02551F8CBC39416724A99D6236C9A77291EFE0DBA78E895784B9D74424DE12E3
+62A6F8F5B39B01BA45939F66CCA558E63C1E257B1D04AF957A3CAE77C45DD1CA
+ED07DDB96D62040388A9D44E32BA0FE95545F299469F72DCDF2906FE117895FA
+8395B59AB0A87A5D92C4BF2E42557FE028DBC3099DD7FEF80BCAD486F8AC12E7
+75C055B05EDB4C79DF6AF4D067F1F1A0B21268B118A1017D070D6CBE62E76774
+0B90045803031EE362664EF3D13AD6AC1DC5FA8FA4EEA175935AF152C85756F2
+888D7D7F5A652C3CE6F702A76E611AAC441F2430642F9185BFFB6D8C2FB053DC
+D7221DBB051AEFF754D2843EA08D9569057BEE39109DE5F905476089FB7BFC56
+618178D9BBD8A1180099F746A9F5D84E38B46FDF5AED4482F19582E92C6B7E75
+1821AF59CF836705B7E11FD7C8A4C6E692E5FA773437FB50A86DD98443345B09
+BCE396357D3AA80F3E37DD44B7D3BE87DF7502F0E1B0C33B4E655BF2A7957D33
+1BBF6B4CFE0FA85908787BD8B6E01569027416F97849D050489D2B112AEA24AA
+361B12FB79CDEE47F3241C0DCD8339DF9E8D2C52D2E4E4E21FE818431F6F2789
+70278F1AD5381DA1444FF36EE8FA1A7A3515F423A8A291F40222ED8C96F010A0
+1EDB6BA6D10910F69EF78BA73A29E2757A114570F43D61297576CE9F4B5372D8
+52F2C27E3F4BC088EA5FF2B57EACF60E9E8AC71003163243269E8ACD6D71F539
+124F980D32C3108A8A01AF01228FD2C04EC45D96BD48D2FDC864CE890FFCD389
+A9AF0FA3BA73AA1A102B3FC172BF01751C91DFC9549D2FE0917AC705089556E2
+248063F2FD6707127ED43380BAE212949F0804E673909DE1C7EF8767D558733C
+51CDDFBA82049848E19C9B7D145F531B42FDC134DDB253D076CA56CC344E62BB
+4ADC1C8E833686E124047282C0B61C325C6CAAB80A37D6BF40847EE70BDE8485
+273E939DDB2B3A229ED2E137860C4E40E0DD654FDA468DB0AC4BB32F60249F4A
+9C3BBB3BC7297CBC93E3821A494BB0A6F248D0481A38FEC51120692A6AC6E251
+D80ACB2EA3D6A47E41B4D329BD79D1ECBB6D2927192261060F90D0580CF80985
+BF6D071A7B20B9F05968F63A8507C38646899779D71FFC3BB1C7B60336C5BB4E
+F8D8700FDD64ACA9A84281F4DF861766B5BA3384599B9338C64A03A5F74EF998
+BA02E427F10C6334F4E56F52DACF430867683D6796C352E6AD2CB9384CD684FF
+6D85D93FF842A75BCF286781C7CAE0417510534D33ACEF32479A8343B853AD15
+DE0E8C7791849AC9913AB96CD5C2FAC107DC39C921542676C03C1100D8EBF3CE
+6BA35F26890B1F0AF0615605BF75CE922A6F5F8496291BC602AF6550D171279B
+0CDF5A4E10FC150842215517E3B5A88A6E3E4F38B91C34A3C156295A5E09B8F8
+8C5D6DFE1CBF75593B33B695FB1B832870F83CDF95F91839FC70974D485C1578
+0A5ED0FF17BC90B8B42494DA74E88D4F7F7C59B331D703A240AAAE6E9B6243F2
+AD8F6C1BB1FB0AFB847EA2D89A0D03DFBD2E4748D4528EEF967AD5434B192E9D
+6CBB34536C2BD8241875CAF33061282C0373960F49A9BE69F6B30F85DD4D4DA4
+CEEFB9F4457C53D24DD111CC9F20B2518997ABE1DFFC3F93ECE2C9E96E36932A
+B2EE68F0549830C031FAA9590299E76BDF174CBA73C4F4DE98FFFE5A71387DC4
+E6F4D7DA4EA018B73BF0FEA7360589BFCDD06D5854203ACD4528E57703A232CC
+EDA53B8D9167970E1D3563611ED0E9B70D05CE0D6FFE14645B8992850EA1BB38
+C987EEF4AFC6DA6B1A27A37B5A3F2ACC8A0DBFAD2331F427BAC48F45B2192EBD
+84030280604C444A659E037A46563E9FD13FF583D126B59DC77D296978E14E89
+42F3A38DF6EADD47C562229F5EE95C9182BD351ABE9962E0C1CE184EE56DBE6C
+1E8DBC0B9628DB2D3A512C093485F1CC7766467B41BD7022E7ED3D52A3B30986
+6CC06BAE62526E8D9C279AE78CA49D7288E3D1690DADA48F832553C8F6446625
+A32BEA933CC2FA40C89126F990002E78EB34F2E6BA8A36AF709861A28A9650BA
+5B0112BAD9026EB971F4159578E57B824F99F4F9E43822D28EAE94B104608C6F
+0A941885A6D446AAEF5AEDF87B94A93419631760EDE1AE8AADEEA074DE1C367E
+2AE8A3F85A323B204B94EAE0F8CED104DFE8A856FDB85210F7BC75BAD4705E11
+F1315EE9E0FDDB8FD16E509E3488FE4A9D0E16763D58F97EF7DFA4D281FDCE2C
+5835EF681063AF2E6F016B8C9C8983A328B5504A6FC7D1B30491FF0978363F61
+3343C38BDECCF13B9753AF7817A34E8619D2A44B1561412C6379084457FE1FA0
+478770248813DE78AF2CAF2D267E6E0076A60A7F395409CE0F5ACDDF75DA9281
+8D6A6C5C080C910B372F115C1C884CCB6F0F4B1AC57867FEC5C7492EFA9F0FE8
+246B175A4D95874AE348F4C08C222CE88B6A7DB22DFA7167EDEAC47E255A8F10
+1B29F44419456E0DA421CEC46622F8CA4B4266A5AEB12B008BB84CFD0CC7E406
+BAE9AEAD088278D810E750FED146BC71DFB2A36F2B78A87D4C2955FF3726253F
+6DA9885D4718D754ECDB21837FA6741CA641EF5203F3FF64D1A709D5BC95C318
+3BCCA2FE6E502E8F6BD5DE7358D6BDC8EDF33699C05AA50848F9D04CAFBF0860
+68892F423153BCA420FBE310402FA0EE57B04EBACBEF214A4C2B0A390958D4BF
+42FA460C069F62C9D2A9F2A1FAE6D7CC0DA33F3C523A6F3002AE7E072141133D
+5AEFC96A8F3CA02196BBB565B5787F7D83E8766E8F81FABAEE73F61460B9FEB7
+D3838444AB3EAE71F0BC516806188A6EF50E443B9CE79D709C2EFAA6C7684726
+E9787585527EC2E45A0B9168B74831B9AB680E8490271AC504043B9EA85AC63D
+2A62BB22A31CAE27CA12E4517CC2B696B2CACF9FABB0E29986ED938D67DD5CC0
+CBA03D227FF830E499107E5794C4F328C1A51126BBE55EF49D229ED63865F084
+CF46559DA028D46BD8A6C8D472709E53C69B317CE4D1DF9D7B8D49820D141908
+4439CF75D2B75DB4CA3B50535D9DD609116D75DCD3E75110F6A23F6B5C763F43
+368541EC3963D08E7BB33A0E0263CD13AF09755BCAF1E1391025C2D5C2613B8C
+27D6A2EF7ED93A11F8621410CCB97938F3E012AFF3069806B0840E38AC452797
+36590E8EAC3DA173DC810D9DF914B4BBD13D9BF48C7183E55B992FEA8DC1E2EA
+CE68B19F7E82C09E412E000C668BFA087284874FB6F961BC54F0D4738780B6AE
+9E3DD94303B9899C974DD8EE56445CF9251A8702F92E8811E855B5C444EF6350
+FFB2DA50F77D0C9B2303763F61F2E6BFE902CB61B3542FF6F1F84B18B52A4FB4
+C7A4945E5AAF378CEA9D9168547DB38B3F727C3E092D59FF6B5CBF2BFEE0A450
+98D0ACB18A5452FD3D0D4D86DA3A511D13BC6A1EDFB31F9535E6A7556E617CC6
+2B515417C28924E27F2144F41ADCF2AF23AA0FA4BF92AC5FB573B24B9F73CF96
+AE6E9D43BD3F830DA6FD41408E1ACBAD6CA1818D695C53903F1DEF9E0078771E
+6A292A806B634EA568E381E282B42D22BE5BF4528CE718E4A45209E9CD14BA8D
+E95622B65BF8723355FB79A5E900533946C6FB7F5729724E42DCE0C87A6DC2E5
+00D403260773B63FA2B35ACEE07EEE3EF3B581C6E37BF0B4FFA6FB1F27F7E032
+6E3955C4F131DC0CDC57D47212CE68444FB57CADDE90C4F4EBBBC92A1A142C61
+30C44778BAC275C889CECAC24CC7099282C0BA655638DFEFDDF6F8996AD092E6
+45211EABCC109F43E1A9CB3CAD9F9F78FFF49ED519B84AAF65996B8F9E888BE3
+7D7E00E3585DF2AEB95F7AD60D23110FBD21BA4CC1F454DC842D2B5EF6290E08
+C90E1018DBDC1F3DB939DF2BB429544EA691A778E10BABBE4DDD11843A33592F
+387E1FA233750D8E02F4773BEB77C043198200E4421BD3D67AE6C2DF031E6733
+45CABC02EBF52BE39C80C172748503092CE47E79C22E9AEFB13E4773346E31A7
+C10AF5252F3D3044363D3B7FDCC2F4A8BB377D981002BD2EA5BA1E220AB89536
+262F0B05466423296589B6AC3C874D2467BDA2AC46FC52D3FDB283C33EED444E
+19B52B08F8F6C6429439F34E2D4F7C8FDD86E7223CAE513E8F560B01E549FB10
+E45858E1E5C3226B51C76DFD9B31040250D6A1E4216436FD8ADE472F30857ED0
+8323633296C19F07B90969F5034274631F919E9D49408DF53C3D0CFCC4A0ED22
+3586E87770964989A12C9F369A4B315782DF0B9E7BC39575BBE51EAFD3121D85
+779355219ED8062D13381D05CD058553F3BCC34E541644011B53DD6EDD642CBE
+570B4CDAF518220094C2316775A2E4285B52D0FE502B5E36710E8DFA6D0938D0
+3BD1B672C45A678C823C7D3BF5E94480C10B37F611D28541259A3AFCF82A8D77
+66C01C7A81A17DA0FDDA42A3BC0F7B68C7EF03856C1E1AD9B762E7C1D868B52C
+711FFC6BF5B587573C4CB759264F8CD0B470A532801E9DA5E8A89FB15D5A9C59
+5F3A15DA11B6C7EA590FCAFAF34E93F06147B9FAB4DA08B102449584D52BE385
+6507C615A586793D395260BABA5A10480E51C79769AEA0BACFA6D3ED15729596
+48E5EB818B6AF9920505DD58ABA050C3EE5D456EF6D47385BF4409B6220FE0E6
+540F655E97BE4D2363D8A6C0F80376797B01A541ACAF4FFD75227B3A4E548D94
+BE6173575E937FA53BB505A87518D93F86271915DE2EA4957AB625B395123BB8
+C4ACA703B4F7F1719AA3B88BAA013589334B0E3326340A38C6CC7EF5541D2082
+5397B300086CF1130466C53228FC75B01F1D7BE780AF5EA0AA1021BE624B5938
+F5146EF515662C15227F70F066C54E04A0FD8C6E3C99C1D20E768281B0A8CB42
+BE82356AD09B940BA370012848268CAF62F340F9E3928C18D0D28D05A2C0A24E
+C521CC6CDD08A340E0E5D1E32AFC7B600556BC6FA4F2BA7F61A80B63E5693E4F
+F58DABF01C31FFFFD0B4C97CF4147872B33F885C8D786E97A3948BEC5620A478
+440FA3891873EBB02B35FBFA23D7B16244790571A2861E8997F56F3AF1E15A5D
+0FC81A0185C8CF29B6950235AEEAD8CC05C552788D19FE959AFB2FA6641474AA
+3ED43CA2EBAC722B282563F4ADEEE12D107EC2EB8FD87178ADFCD465C878CDE1
+ABCB681FEB2D25EB1E35B45E98D9E8106222B1A6C3D6FBEEDAD85880AF3C14C6
+5B17EF42BC389329B1CA8B934310927FBB5472D094FBF89BD95A18EE73A5C33E
+5984CC2703F0AD183D299882F966ECCC8336AAFCFD81693ED61F08CBC507C1BA
+CC25BC831EB7725E1F24845F041D677C1E98D6E2ADDEA8E72F0A1FEE45CA6047
+35ABD60F7801038F929812506A02325649C0F54AC085A8D6ECD78D297F99A2B4
+2305FD82FFB41E36BAE72BAFC82A7794E8241132FAE480227DCF841DE43BC070
+DE7D6140C7993CB3FB3CEC3911744ACC2C9BAC153D742CEC9AF35590AFB6C6A9
+FEDFEF10450FFCA288D7B5E832BE30A4C559392A5FA01F75C4A7B27F896F63A5
+D098561D9E1E981E108972B125D653F278DCA5EF7D359509FA36E0EE5DB6FD31
+61D09D270928B696FAD3DC278D614BB38068C2C7FCA9C6923CBFF6CA7EF7BA8E
+CB743C178C7A8F047ACC1B29C9B35BCF3044191EEA7135A39E365A651CF84A90
+92B5AD0C9020CE9B4A9BC7D8DEC448719AA8C7F07B393AA5B11C779E7F1D0514
+FE6E7BF2119353F109FCB13DBED30EECB7339819D3364FADE923754232A1B95F
+18FDA5E6C7A9263975B9984BC1036557B2E79920CFED2523662CE9E1A6602956
+37C9CC5ADE4616CAB725B35567E7C1F1A39D4A296F5B0D13CAA925B326B30403
+1ADDEBEA7EDF3D56B9DBC5F47BF6DFCA015BEE771C81CB9446327BF030607399
+A5C627100AB8F7BFF2A88058F821865995F2F35AF6F5AF96F10A047DB6FA9937
+9E10FDC3A3ADF1967DA800129C4092674A0371AC5299A4A5D4A005D0182901BF
+0E351A96FC6073380DB8F7D61AABA2A66D803F6772796E3EFB66CFB3FA893C22
+8C739FEEC9C2F4F0E40C5FA873C6788F9E7BD52DCB5AF60A0DD4C7FD5A33DF14
+CAD987961779ECA787C8B41642BCFEE72D9BEEEFFDEC8058FE382916BE45A1A3
+9A3B0C2DFD587958BA877BDBCA093591D9583B4DD1A18BC5C5D9D0A9840868B5
+665D308D95690F0C028F996BF61AF382B19E4FDF6AD680DC773ACEE8EAE193A7
+9991B0C4D99F42A290DCB8626C9945C052546FF33E1C294216A9EAA63CFF699A
+A8CAC19355BA6D1866E2077A65E8BCB11EA3E8B1FFC23080FA78F566446C68B1
+4209CEF8730DC002498DDD3752DAE57AF02443EB9AF4D4B4AC7CE53A62A83422
+69BC81226E7410F1E1DA94BFA0BEC64CFA675E7F5FE90C6D65BC1768D242E046
+2207FBC44C2AFC1CFBAAFBF1A65FC684A223AA8CD3E784B9219E18A1E7B15F7B
+D0F6741CB21E4449DB616735D43990C3D7148AB8766C36FA359A46D9693370A4
+0685E3BBD4CD9171B77F9B3072C9FA7C229600C44D958EEE7916B8F6BF1EBA9E
+7A044A2CF4FEB5798301AFF8CB68303399394CABC78D54DADDB4627DC33A85ED
+8A23136EECD28964ACB36AB44FA8180015F3B900C776B52395CA0C1F84112E11
+20E06F4E888796A683BA15BEFBF488A47C142F0B47249DB79614425B1C23B717
+AB7854A0AB3FE44B15911CAE094BC69634A5F5C34F3B385C25ECF05A73F11194
+ECFAF7E864CBA21725CC8141075483DD14F34D38AFD46EF4E75BE0A8F87B02F9
+7FE9998CCEB4B957DF8539ABB6DC3F23579C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.0: CMTI10 003.002
+%%Title: CMTI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup
+/UniqueID get 5000828 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTI10 def
+/FontBBox {-35 -250 1124 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTI10.) readonly def
+/FullName (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 98 /b put
+dup 101 /e put
+dup 102 /f put
+dup 111 /o put
+dup 114 /r put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57C5FD29DA32D34C95E
+2AB2ADB3F60EEB0600C8ADE15A2380DE10AC5AAD585FBD13097B1A7E8E210D4A
+EE96785449E07F0C8EBC2EC5EFBFD0897DFDC15E5BFAC9584D8DE95C5AB288CD
+8AD8B9BEF0B8E5F887B3B0B331542FC8184DCCB753DB6ACEEF98B85756B988DF
+CAF1AE0DBE7D37D5F44A2E760AAE3A5197C27B15E32275A64946C3E4D0476FD2
+7FDE148C788DD2106F7C825E270588AC05B57E625AB17BDD02306F9E5FC851DC
+32A5A6EDC43C770A71419B2C0C8074EF3F222C8A2097CD81A91F333A521B3A09
+482A4FE1CB231CE344AD126AA284C3280AAC3AD162CF0EE241BFB4C8F20502FF
+118507F5D1B5FD898571015E73E5CF2281085072E00D401F6F59761EEC3E8381
+1F26F75DB66C504AB6BABA87D121B1E7040A07AA2FE01F80DBC246CC03C4B2DC
+C2A715980C52B7F96BC1A78FCC7F4F52EEED5F705E08FC1E5BBFCAD121FA88AA
+8EBE58172C162AF409DBB0728F14923ED02A65EA24E5D52B6AD07777455A70A4
+61833D3789C719BA92E901232599767E423D5AD9C807670BE0E7B5CFF8256A20
+C7BF7214FFE0342809570F5966A2C43E784F35015D9040BA34FEAB6A6F089504
+3A40A9E9D711A2721D3F4998371430FB3C94BFC619559B97D49627BB630F4B70
+9D0A8FE4E916235335C3962F3CFDB04C4A3CF714DB5E260F4E66FFF2F27CEF2A
+D4AA26BBCAED23B8BDC98F8F453BA27AD7758537561E766B82DC3032E92A9EB0
+125D98A22C5466AF069BF72A9BFA052A8628FEC6A6AD0B711DFFEDE3AA2D7CE8
+34EA487038EF50F953B8B4471CBA6FC3C53877EC1BC94582B1123EDF44B4056A
+30F49394BDE22CDAD7F01951C7013D26979277D18EFA594E8F4F2B5E615187D9
+39E842EC28461B9ABA52020A127D2CB9002A673A435B13C10602EEFDBBA6BD49
+9DDEAB9E68D655443A5C2492BA061C1391A51592BA8C353A6F6A0708E8860184
+2B5D031D2CAB87D618E9F6F7A0BF3F66B3FD5A25BB91F7F1F5F99CFF56EFF4FF
+0A35C55658001ED2E97B26C869292F6274D433A5443179DBB8EE987196306348
+3F9E87C6422AFFDD30080C9AC4EE7FE5E2DCBFEE4974331F4AAE479FD8806D4D
+9C2B85FC69EB0453AD827A1E767E5C484BDFBF5C8D6E2B3C96298B390F22D757
+802643A79D5E29CF3AEDF0E12CFBECA4663444FC87F2027571DBA9ECF688BF28
+FF0DDB3AEDBA0FB28447CB4B5D5205F40C1E7A525FD7373392EEFFD910AC82D0
+98E71660A1B3227C4A2592F3E853CA4CDF64DF19A52582E167234F4036FAAAB9
+5446BE102DE2BF43E82F0112C2A20F15A3F92C6571AC761665A905362C4F8BDF
+AC8705519C99862CD9C0D75113C4AB5FBB83C880E46B82715B5628890D9103AD
+A2329638B95D93C4DECDC5E6C588C9D5183EE6FC28FAF9825F02DCA567306D93
+5440987A81B51EE7291107A08F201C609FEF91A8F0587E8B13D4BAF74A5A6815
+DE9E4441F46AF8E1DDDFA2D611C889614040B144A5EC064DEE4638C04EAB2E37
+4CA8F50FB8C4D65BB296DCCCD39F1F554CFBED96670A91F515CA10EF896874BC
+8EF48C6447752C70FF5A06F928DB55586354076773BFF7E94C4C3A7A1C1F421B
+A9B4E3936EC26E0C19BBBFC90F021E877F54B62108F6DD1C7F6D5B8E64FC9362
+E173F01BF2904B7E5A08B3543611562C2714099DE7D4FA330DB148B560A9601F
+42A84452811CE213DCE782A0D7809CFD954D6BC1EBF2BA4D1B18F50FA8174C96
+3E0120E266AD5DDB40B3F6798AC28CDC5C3C4BC34583528F5B5DC8A222B80B59
+A3A93DC715D061EC6915E6E6E21A25425C25E8747C60F170D61047108826F96F
+7830E220C108B441B6EA3198E33C49BAD8D43086E49F5A2BC7958A1A8CD011C4
+49045193394696EC3DDD0BE084E8F2E9F0B9496F035C0DEC1CE11409DF566428
+D50043CFF5CDD1092F6E0807E660B68163BCA738E8D98FC6EE3F713164CD204C
+0BA84FFF4F33F47BC31750B448603D7ADB9AE92FA91AEBBBEC0DCD66980E6955
+CEB425ED07115B24E40F53B29B9D840842EAC691B4F591F866DF27556474B485
+1C6F53DD72499847109B16C7093984A6B8487D4F3870DD517945CD90E648C1BB
+8A6861E540FCF9D75B984B5009B5CC760CBE297042C240DD624111670B703388
+6FE6FC0E89C6B4C88F51DFF3913D0CC1FB4770C8CBEADD4B86393605C0B6C468
+83CA5594754411B6FC331EF56D7CD6D247FAE42E966583C29239A8F862348D29
+60B177984B6B957E733DB4D275015691D91443BBB13C2DA96097A29733CDB284
+42F89C85A7A743338C9DD3BBC4EE53F695E5163E6E1ABE5791ABF100B198B9B2
+1C21E2FA2FB4AFE7F9BB2D381260CDD3A2CC05BF513AA1E80ED69FA27BC5ED5A
+21445BF00BC2F997B356D94AF13736C6D3B0613EB6F4CD96A685FEB672661DCA
+206105EDC3CA07900676EB2FAB37F48D2E8207BDE1463894DA3C5B1488AC1EE9
+D39DAF691648048F5D7A384B8927F8DA2BE3602669F71D80686E427F395134E7
+7ADCC611BA91AD4B7A0237213C60CF2C905359C90795230344FC3C50A22BD44B
+55B2044792509F50F5C21F53D9F9E9F063ADBED3AB99E2613B23334FE8DF70B4
+6120F2EDF69F50BE793EE145B9FF9C73179DE640FC2ACEB5C6617F918CEEB762
+4CD81E665B2E544864D13230B058717B207D3CC5D6647D5343DB4D0356082392
+871EFFA896631A7E0D6477942B632074A9A4EF7B09D4701B1639BAAB4E03A40E
+9B54A7A4F845CD63F88831EBFA4FB847847CB98F3455CB5957F2E0A0F5623645
+DBB5C5564C7F8B117D6E27E65C0F3EA81AE67B4AE4B201E7C4FB0A8364FE53F5
+41A7CE8F834C2C4B322809B353A5E63BBA7BF3B7DC1A85EA700BD287C2BD3FC8
+2832B0BB4695FC937FF5EF06FCD87DCE6DE793C2B1EE10E6450352C17726155F
+220D550B1759E15AB2C1D5968E52C8080CD280E99D3CCC0E80C2EF8BBFD96001
+A226FEED7311EFB4B67F424B557A877379A15BCA54780F0CD2CCA00400B9B39D
+981C6B552AFD2506D1B23618FA9AE6D8143CD7198A8482CB416CCE62B992347F
+337D505A4078713BBD91E5535BD58EF0351EBDCD749CC24D4AD39F8CECD7D6C8
+139756680A4C03A58B3374CEC658D30160AE4863A3938A891BB59CBE02BB451B
+1BA4B2B6E68AB61DEB85F95E3C909B8B66E220B9F18280161C279F10F7093CDC
+100A53D542F071CC0A5AF834DC1D18738F5DD62A5573E884E1FFD22BD810828A
+1EA47F8218C15A2E97CBC609927DA3CC2B802EA4A0D7EB57627C135E3B065905
+F97597D818A2C5CC6F328AD25AD11FA50F1E4FE637980B7474D6F85A521892FB
+72989AABEBE02A2D0EFE88A6F67AC29F5D8DDFEDAAF465C439983C6B84389FF7
+A6434462BEB7B07DBE4BBA61ACD4A60C55B5C0AAE527DE381DFECA2E6BAFDC8D
+310364ECB42CAFF72BA93C067B2F02D1CA7C34AE7CDC46787A0E234C8BE8A928
+7A6F3DDE0338FAD532A9886E8E3525B85DD39364AB03EC4C0DD25DC179CC1989
+1BE232E387E857C78332D834679195E10F1E7B87B7966DA3B2238F53D1E13FE2
+8F55ED6A92A750C7250C9B91E29796621E7E9520373214D7DA81B2875A986D33
+80382AFF6DE1F829F048E57664D9C4ACE91E4684A51023943A4964AB5657D610
+3A5405EFD4CFD1EBA684243E15093C9667797BB47617B66054EE02C41FFEC45C
+C1BAE8AD56B00D323FCB1D2744F061FA16E161988741A319B1564E04BA210996
+4F9F02A3268CABE450D166A763F5284954564A1C86B76544C5F5ACDFE0D758DB
+865A1CFCF9FE8CD5F9C3B2998C56468FD52DF8EE60C6935A3D221EAEC7714E3B
+301371C7DDA0B03A2416238F2B47BAD3A2C5021C886DF51C695AF9C87A864B48
+3BB3FE0B355EED5454B59B25A0D8A1B8CBD356C24F64D9B55E16C30C011365C9
+1E0380753BA3EDC0868788D5F50B9353D0227BCEE1BE36998B2622C0759BD66B
+E4444250589F9CEDE766D8B940770CB6B89503E925B35C00CBEC2873D2DC4A29
+0823FB7A3717B69A7DEDBAAECC067949932728E89BEECAA91DE3AF9BF070B9C0
+30EEFA8C0A55C8388CAA2F0515915C98E67FA095BB98967D14B0DCAFA9622E4E
+2E0EBFC768D80585ACDF28D8A5C2B6EE2FE7AAF62FFB90F569F84A0903996DF0
+C1D5723366C436E4088F3E2BB9B47F9789052A71CF5C49908CDC1DDA194BFB89
+14D7E3D7D4D72A150FD6FFD8303E9DE5A97A71B808B8BDF2AE466F31BF5D7A4A
+44F81230BBE2B456A221E2F72A8B59F8FEA8D31F8A005A5BD93B9F49CFDC3DCC
+CE2B67090460F632271C7157BDC2F05BC2749FD562FC28682A616A52D1B67654
+DF78B7843A9EC26A7DE2EB168F874904C2915B97534B2D4D9F74A9573A771D34
+9F7BC855E8F794621BF6AD471BCC347E2DF5F620F5C209E33A4CBF1EA85AEA87
+4492A77342DD33EF615FF34037D660B713C908786D9022051B825226545827A3
+2AD1B05D654DB6E6D261B4E8AF0933AD1F0FCFC7201E1A7C1B4199F160C38676
+21ABA2DDF1CEB655B3EC3226E0B122976EEA998F7A5241F062E54AD1DFD6ED26
+47C99A439E0AE95415059179867CDD3F0FF751F3141309F40E00A6C7C28433E4
+F649BCD5DAA64177580E05C495EE7BCBCC5FBF104DAF360CC2711386655B26F9
+D349D887EEB32ADE595241560FD5924A1745A22E6A01DB9C285EF14596EBFF0F
+03F36EB2E0A7C3864F819EF7B0855121292D49482F046A55CD7271FE03F02EA5
+886864D9D8EC22A68C23089EAEFFF03DED6484D8C341861EF8B6FD3C5BDF5AC8
+352DA4E13A1E30D0CB71E090E9CFB9AB2CAFD0CA7C34AE7D8E3B2EB4666834BD
+9CCD1AC2108348AFEF6071796F4BB2FFA4A67ED917E76A109FA2DC2A30D744A0
+9AE653A748C1D18FB52595D84E87F1C1FB6B2F32667FE203262C66627AEFFED3
+92B23861E5EB238BB4EDCE09DAE1C65BAFC198CDD1B45D42CDF93E16BB82D35F
+821E9E49067E966AFAB2AB52928F8DD6359984071FC37AA652FB834A09E5BD93
+3AFAE161140E74C6531E413E8FBBFC42BFE8A464B71EB1D8CAA93B33D7BCC3B0
+47C7EEFCD3E9FCF26FF9441DD9BDE68D77AD7251C06BBB9A2103049E8827CAF0
+F26BEF33F656A690235DEEC623CC519AFA82DE2AE16FB99F780FD7D8290DA40B
+9B604AEF36B529FD184239E7D50561A07428D28E51B55546590A1AEAD4B7F2B1
+AB8C5B9022C1FA03E33F8F409B24911AB8BFCF6EF4A8E415263C789F89063E71
+C0910DC20347469380B7FC1EEB87D4CED7F4A361E58B61C91AFCABA35C03F978
+B9FB5257C31657EE48504C355CE893FE3C553274C641DBC4004F5D5B879CC5ED
+D3F21F867F6DF054127067DE86189F0B59A1B90FDABCDFEE61423609D888EEFD
+F4A1367129962110C651D9481CEDDB8C5C2576A59AED64E95F7ED042AEAE2F7E
+81AC0C408E593DC30DCAC334EDE9EE27D932B98F040DDCD195D6155607DD2038
+970EB78221A94C52BD4F0EAC65F1FC10E5DAA93C17266F351669CAE56F42B68C
+6D01E1EA03AE554D63CE76D800FDD9CFD89F80A241EAEFF7EDFA41794EA25CE7
+97BD5028464D2CD45B53834B4AEF8BF0B9E7C6ECDEACEC887E8790A47A93F668
+A9095E5FA1116A122C0E5B74E2226C654D3187C6CFD8807917820423DA3EC1DE
+AA020EEEF2280C44A15209EE2F3FC1776875308CEAD38571E7BF889F287E4594
+971A83605E0B4169D4A23EE790515223DF8724054EDAD905F57918FC0BC64F96
+514B4BF7DC9BA79E763C22C977FB6146B10D26FEA1BAA7BAF21312F78D1625A7
+8E242D743471DB5821408AB786E4A7EA9D35E30E85533C617689F95758FB2C7C
+392E759C299DCCE36689686DE0C4DCE32649493650BA194A6208C5EAB670B170
+3F2C70BF0EF0E3BE2FB0A79224FF4ECECD6BB3388C6D06867A0E5E3DB93C1B2F
+464C23E44D3132E7D4086E3B59B1D13F49EB4772DEDF8EDC4F603217233FB7BE
+C13C28648E9AA51D53F11FB896839F97AEDD8834BCA53CB0021AE91FD8E95E2E
+F8A094093AF556B9639F508A401542B06821FF9DE1A745FE9AC5CACD5E8E1053
+911442FC15CA5333751ABFE2C617D38FA1DC332BFEF44AE569DC631C93EC54D6
+261583A695F5A392867A57F59B741EFCD2DCFECBC55D1EA5F2317601C9DFE9ED
+D1EA466210FFA905A8F85BD58B98991BEA58DFD1CDED5C9B086D42CCE632DADA
+147941917B879139E016B0DDEB8446BA017FC8EE5A354533D667B0835F5D027D
+C2D580C16B80B3D05CC92C0465CAE077729F0A15B2DAFC89DCD349B3F81D0516
+C65526EB5C10E45A8A85D716EE35FB9AB201FD7C89ADE5AD925A174169DA20FB
+61E96C73A143DF964C20589EF24A0FCFE6195317F2FA0D2249C0D8E649C3D9AD
+FF13332EA2E4C9CD36D8443EC8F027B61CEF92C6A6B72DD4ACBACC16E429A9A3
+F5F29C1631360E32F8C1C93ACB22F810B86D2969A7480F486F62F8488BEEC74C
+2C1AF13BB92BC578E8CD30BEA6BC8CB68ED730F54CED0167605FA76AD7B7E88C
+7AE7688E598F91C471BD65A542E96D64B1EAF19FB4F1234308C48C2DC86E2193
+11ABDB4C6189C6F201627C693691A86DD07FF55C30FDB3F72381E09C6080FD7C
+9182762E5001E30F52A216E0B71E4D2D4E2F3B20F95DF3A11FDB2D2B5B5FAA66
+C46226D5E0C77066349770514E5675550FAC9394FB27CD2C2F974F1FD58C04A3
+1EF53A8AB3B2202CCA1CEFA66228E1480A0709436C44BD3319C40CF888AE4692
+5DBBB52B15CF3A518F627F672135A24D5DB9B2EBEF04C860AECF231EBB5A3BF5
+6DCCD5E72FE4B6DD29E896691868A7DE4120AD06AC573F5608B8449B38E71CA0
+EB5CDA3F942482EA7973661170F81DC88D54DD5B92323F46F833DFA757107E9E
+F62A47CC50FAA1B68ED535C3E0E1073532A05ED339C8D70B3B9864808ABACD23
+AA95E9FDA43D54C66A675FA074E0A5B8777D3C07850A09087F36852B5351F35D
+8BC4DDFCA35CF29CD5E3DE118A741FAC4DED36847F2E2C6CFE08669301722D94
+376F540982958074E7F1383C409652F6C99DA39FE90B38221E75BC1ECB93ABF6
+B00F410A0C5651DB418566AB350FDA1789AFD88286AF3BCB42B98386F7BC144B
+02DEB8940D20A6B3062F0C4244EABC50923390064F1D027A8BACC3DE45156E56
+4A942D1B87F1C4A76B0D4D6801AE792CCAE3009BF25368B31B6AD5476FBD3BFF
+9759EF463EF5E78E10B7BF64005B2ABE0E8813950A08A1808587A98E0021D0DD
+751AD515E8278F1A0759E85D8A084490BBB0F8206484AA36388B1013643D3198
+3509078847BDAE08E76FA5BF3E3A73C323CE093DCC148E3C02C2DE1E26C94D5A
+40EC8308ECB02FF7DD04EC1005A2A0DC74D4E587F10A3EF349E828F69FD38962
+2F0C74D5DAB3ED6CC9F97008ACCE74C086A503948DEF1AAF58FC8BEC703CD360
+D32098A56AC776B1BD08442052A2A4EF6C8798F7CDC102AF1A2009657254762A
+0793F79A39DCD6ADBAA5EC84A7ED6018BBE727E5D477893D84F157074B24C13E
+8D4881C7DF8ADC13EBA0D89745EF93B7616EC5355600BB0D2B630AABA3CF2946
+AFFD0B2B724EF0F28393F3DEFD59E05F83ED622EF1906B1A24A599C58E9CB8EA
+E9A28325A5DD621EDB3642FC06FFB416FB3029ADCFE5D7D23192C650FCD7D1F8
+ED7AEDC7166E26191B12F8E56F060D2D08D41E533813A8D64E5B7F2F151EC8E7
+E2333ACD6F78ACA804CD809616BE4342A5047C07E7421CCFAFA7B057B6F5A801
+21254E447FB15A8D020E976D8546B068E38C732BE3CFB2547645D5AD36AB7FE8
+0B1534846BC333E58FE1B7C6884418C2661709AA2A4184DB90C17D07270A95E5
+4D87C8AE7446DCC6980E75A06D7A4A9B1A61F3651298B1914007B266355A7C96
+2A20AE29599E5279AFED53E50F01009DBDECB768B1CDC5ECF776F67919F303A6
+498973072B1B840A42CAACBA621AC1D15CD8E694CABA7CBF087C43A12E16D597
+2910A624258654E72EEACEACD85CE0B0C13DB5BBA5CF2CB9B666542C9094D0DE
+1BB08812C9CF47BF4682F16136A46E003FACE9CB77564151D60F8327C700D146
+DB72528F82E1C62D64CB2B74548E58019B27293CE7D37CAF0A6745E2671B4958
+8F914FF4CCC949FFCDFF60AB0666A334EA4695BEDA612682835BB8787BC51954
+1CFA9BAF196E0923D3B78B0FB043CE00983E7BD86613830A6E971864410D3437
+1AA331AD1311D0F06C3573267606E36E151DA2451FC49177452776359632E428
+53E76FDAD8C29F3622968D203F964A8A465658F958365A5933B96B426344EF19
+F445DF5577981AC9E0C70B8C9A7BDF28002D6ED78118CA1A136A1B8A6A3B1C7D
+453985CFA5CF244B831A4667749AEEA73CD9059325B7EE27EF8E488210EB887A
+395F45832A3B1470C3CD94E38EDDA9C7E7A7C71C387264C0B872F49DBD0F0364
+FBA746FE7CCB1460D1442CD865DBB1FC5B17BF2928E58E4FC03662E643F48F63
+A85DBEB482B91415D6DC312323A3807C984C5FDC2A1C11AF1A05DE46B411FF31
+32D7E3389F79C25CC8EFD10EFB46D456DB083AE45C4FE35CF817D98287A42864
+371186D8518F86D5368897473C4EC4E960DA6779918D0E62C10517E605CA936D
+A4077A4652D760A54C0D2DEED6DE875966EA529C11144244333CD44142A644CF
+D27B7769E074BEDA331F1B6A60037EAFDC4C24B0ED6F3BCE788730CAD193B6EB
+AB0D17F94172CC04BC3EB0C0B0DDD58DED07D9DF75016682CBE3210D354EE0C9
+94B9FFB29250484CD2730848FBAC974E5B3B59987B586F7F88AE68151D520DF4
+94B0C3E2635B9635930E18DA0ABBD100CCE27CFDD5BF7D78D8913C25B44F24CB
+644E5D86C0B686D6DD9CB1A69523A8E15B20AB7EF2D77D33F646ACEE1766D693
+D0A6469AFEA5131B60B3B7BB26A00F07DDA510C9C0600AF0C155712E0142A7BD
+A1D41D5CF0420D9CB64A93EECB08EF4503F01438BE236A3CC52A3726C28C1B18
+02D38C28AB7D7D714A8290A0310E4D69E0D55F579C2946BDAE8A569DF8076ACD
+BF0619089DE2F4ED04E3F7CC2BA4F0ED5E741ACE688EF4F273D60E9DCBBD8945
+B7E1438A9654BCC6194E7F5D05FA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMMI7
+%!PS-AdobeFont-1.0: CMMI7 003.002
+%%Title: CMMI7
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
+/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI7 def
+/FontBBox {-1 -250 1171 750 }readonly def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
+/FullName (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 80 /P put
+dup 110 /n put
+dup 115 /s put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBBAAB71645535A2B
+6F0F22458E1429F4A67307E01F0BCF6F337E0E2AD89658D880B04C26306F8179
+C8121B958459B923AC3B05B594D8AB95F75870019130442FD29578D44F5690BC
+7281357A5041C8A809A59D0DEE108E2A07D406656BC74A9F3317CB887E712318
+46B2ECAA341F8692ACC2D14ABABDFBCAC6F35858355F1D3228B0223EC73AC56F
+3C987464DB829F243E304F4C59CDE3EF6EB53A4EF9BA91510CB89A3407261F58
+A2AE66880BA98FC1EF546112892494C85A2C39F9DCCAC5766725894A7AA148E9
+42360AE64BF3A4F1F9F0A0D0C1AAFDC4D50C52233AA595B7D0CE557D4A010D86
+6E6B76A7E9523E8A6633DA9348BC3F59302F72F492A30782AE7EF220516893D3
+DE836CDE311DED9262AF01C506040541EE84AAC539B404B23033EF56D4BCE6BE
+B05F79CD633FE75C6728114D2749E39FD7454050F67763AB636377BA8E1867C3
+996C7D7D4A4A02BC49D1AD7FF174C1F49F1F205BC9D5AE42BCB02CF8554E8F5A
+D1876C9285B6CCD7B8C165F75843B0AA11D8462B57077AFE75BAD086E9D9F91E
+30ACFF91776132F3CACAD1CA5E08B17B36A0E45ACBAC52393B9AF9089BD821D9
+CD5A9CD9BECA59F7445D63DECC1B4502D299DB85B6E2EE7C69A1DAB91E22A3A5
+89B524FA20AF6005E7A586B90A2C6E5A93C9EFA4ABEF5F7E4C7B81363FE8D2B3
+0AD637FA863DE787581ADD7CBE463F7866C40F4E280260ED0E9C8453E5C7E668
+FFF058B9742DD3F131C264F8FA102CD0DA05F3114D13D34D422799181453FE23
+2FC6EFB01BE420C930B879D671F3DFB036197874725220644A5A52DFB467BB75
+8089E4F40CE9401777B9FE1D0AEE02E782A6EB2A185A454AE9394094CDFE7CFA
+C03C23A78EAF242E4F811E4C83B59EF4DC5ACE4AD37B41616B46C263358710B2
+6137314545CA6CE89119B42A3518EC85C68DC07D26839C68B1FF55C4A9CD518B
+A1FB32F9C475BB6110839FCCB94156E7B3648F27245A00D2966FC4DDE3996BFA
+F463A663CB6935B596B1582ED0ABBC648AAA8A86068BF0038001C753C8BAFA0D
+2058041DFA720B528E2D4B16196DB1CF30C779D3F4800FE662D5B60B208341F2
+A66EFCB8448C2FCD12DF0DD899911A8BD96C9B670054D328790E5D388518B146
+8CE92E368EB1DB3CAAFCA4834CC9D9D9DCC80FB1F34F39DACDE643052C977A7E
+A95C5FA8DFED9B4DCE769E4E46256D6DA8FB18FD7FA4E4CED5D486803538F3B4
+6D3F5B3C03184F5C26C66DBB4C724918EBB6A89C4602E4EDDA81EEE2BD18B683
+FDB459F2CE0A9CED23DC208EAA8BEDB304B00E093DEE926A7B32FDB2EC70DD85
+94B9137856DDDABB402B2C76DBA87149051ADC6007018EBDD571BE1D092EBD95
+76D4E063AD7D5F62E6C26EDB88D38678F2806A1F4900B0ABC4ED034A818119A4
+E618F1A902315BC98F26775E59555A3DCEA1D0F8B20A9084920ECBE3F7F245AC
+1182A40B518B194669D95DE968542BFF80FDC89669BC256C44CB66A2AB8CD7A9
+E42C69956CCB6BDE8C09AD22EF3196939B3B84EB23A6E071A36D702909E019FF
+058F27562441EB5CAE87A4407F67C4390810BE89BBE867D636468E73677B84C8
+5A1228DD7DC8EADA221B1BAD5F43E832F20ADE7ADBFF170AB306F5B711816FD1
+39B7882556E30F002977FB88D8B28826A75DE0D20354A2D41F2DA8578376F7DD
+F27B0F59D4DDDF5790E11E3957491DC74EEB7625CA49FAD90FA47AD8E0BDE824
+FF326A84846A47A21B70FA549BEE307F9C6970009F963B49A504F0115777826F
+1D81203F655C242FFF15BA97E3BDDFBF435B10E74CE8543C98966223818839B3
+6BF3BC63F882B0AD0FDACA8C56A570277952E1D83F18BEDF084D2AC004E2B09D
+70DE1740D7D220E92B54D2FD0DDEAF1E08C41FD321A8D474982DD105B23166A7
+AA9E0129DC88065B1E0F9382BEB4B4E1DAAE3EA5489BDCA921AD5A8175F2841F
+9400478DFA99C5E5553F383882664D73FBDFA29BF32E52C28DCE80DAF4839434
+022FA515679DBC13FE98968D2894DF5DD69C49BD23D00F5D858B69D1F220F968
+F0700E13873579B3CFB658972098DC61F1DD580105BC27795DB4AF11A871CCD6
+2E1B9AF7F0DAAD4CE315379A7B42CECB983DAC5A2B9426B4E5E0A7F7978504C1
+DD7E30063AE3CBDFB24EA2BCCDC478AB82084FD30A4793F4707D9F8F9647B413
+F8A5C5AC6D5EA0E35628CE1096A434FB8286F4617CB4D0AD30A4A0B255A5A356
+25AA5A947FD3C4FA44B4AA80BAB44C48CC1E2C6D0A711365A37A58C3483D07ED
+301A83D2650A2E8CBA9EE62FF5C2736EC82C1402959F64527F9B640619F112D9
+8E0F4A8A3078C72ACF3F34AD855AA4008C96E30D9E8C414607C34E06E29AC5B9
+2EE5DDB823E8C3EEE6A8DE228313D476A7F39B5DFBFBDEDDF7C45C1C88EE6D01
+7FB4F7BB2CBBD5DF7F0CBD98DC287FA6940FBFE1B3B136613A3CF16634CA7B90
+53D5FD5776515EFF5D37F8FCC62D8BEC8EE2216503D54D6F2032D3C2BF861E15
+FD1B45B71576F15852EEA65DD372E911EF4CC18283CD2FF4196A3F1A9D81137F
+F1820EC604D6C61AF318C6C5AB6DA1EDF305CADEF7CC0183B86D31310A09972C
+A4BC37D110C77ECCA614D1A281EE1C2040B4A5ECB31A3FC61760F608E44332D1
+D2C53C7891B505A3020E9E4915F3618588FCEC80B9ECC5E637D8D0F3C94B1F2A
+C53FC46CAE0AFAA7E12266C212A73AAE60199752C042BD55A5DF1CD07FBDB830
+C83E7832D8554AD9C9CAEEC7CED1DAEE622090897641CF2E5B34A353D83264D4
+4687522DB290D3BA927BA315EA5D25B0D7B69350C6C180AB0C322B05E01F7C7D
+F2F48651567F0C1B49AF3950E43C94D78F7B184BF2946B924BC4279AED28F3A0
+17A7D8B235698A516D3FB5DF0B18A422B2410C385E7E9439C6D60917EB3299AD
+E31471616251FA40C9FA098109BB31A54D9C03B2F12947E4E9252A0851B81C4D
+F39E7FC44752504B589C3911571B1D3EC3BD1E1807F99CED1DB20270E483A805
+CA2A016E7283550D1B1D35C226FAB63F983CED41A4D02A2F228FA9EF065027B3
+CC69D6F2E278C0A2D238D3A37154B0D22281F62C61D9182A69657B027BBDED64
+11E261E47620602F865221A534C5A32E2BF5B93A187911A146F2E96538B47DBB
+7BFA7EF406FE940F4DAD17E6E4B80C4F031D71F65657C2F5C8233EEAC68DE8A7
+E1FC3055C122C1795D0C71A0284F89A9BF04837F61C9E08DB42644A490C97D34
+A5D3CEE475B8D578205005A0D68AF94AD27C0E855BB8EDB74775690A4EDD6543
+BCC10CF13283D6FA8A7CF3FE6C4F96470A11FF0B0160D3F9816B13B0BAE0D8F9
+B84C7631063FE658D13D108D6FE24A89799FABA72E6A6D1C943922CBE676C1B6
+11A4106ECB4F1A7F8A84B2783C2E6A109C58D63FC0B74D8C8A1CB62D527441AE
+E656D94B1AA8581B4F07B653ED6486AAE1F8ADB30FA8D8914AF24721C74B0908
+D84F2EBB91144ED4BD7EF533F2584048DEE37E17CDE5FBC2992A6F924FEBAF07
+B626F988599DECDAB43C931CFECF99FC6EBB72F8E542765C26295902DFF60B7C
+7B9ADDB4858BC9D808B7F0909690CF8DFBC59A786D48B891937C31A219842A43
+234425B4963062DB4C4E9F534C77F4243408805B5A6B8BBF428632CA4AC03A7A
+E336DD181CE0CF3E742079E2919EAFABE16A63299771BF276EFA8D85C920F995
+5B9D4E8F1ADFCC5C29AA89BF90C186C5DE7679906B2FD4DB279D245D27D08837
+D3A8D541FE37415B706EC585C05804108C1D938E543B8B63E275EE85CE9DD843
+0A8B9163144B77DA1A552A25D5E77E94F29CF252BE9950F4E627D5F72536B6F3
+3278D4A45D10759F16AE42BAE8460865FEE84537F8EC9BF4813570E883B826FD
+1ABF3F4E66DB6FEF8366E07BCF290EA67D39C9D81B2A7EA48E0A228FE3D5AA50
+1A56CCBF229C9AF2537A8FA70EEF41096ACED34CC7BEECA4EA1F23B39FBC39D8
+CCEA93E63F508CBE6722C11467A3D0D5C4C52031DE43C449333E4295104651CE
+E13B821D7904653346067E971BE0042C571ABF40C3A1079A675FE4264B784D46
+1B8FAA4CDE9851C4EBF69ADF51A7B68CC8706C08D13A44909D4C1D78DB0E0B2D
+0E0318304B229DD2FDC968027CDFF65722059C62154304D6F9C3F06DE22914EE
+928B7D1BF1FC7E74B4D882998D59BC086AA2D4EAD0AE39F6B75B5A3FB9994506
+E21731E1A15F0F2D12F88724BA72898197A80FDAC00243A3038871EBD2F2BAB1
+C616278BB78490CB86F552CBE5DD0862F3793D72C68AC16AF8E38FE1A523A5FA
+9B0428745B1455671CFA1F6BFBCCF9CA23C833113C2948E7A6AEFFF1A83509FF
+C559BB5EE7F92BB43F7F37A371E661C826F63DD0C1B25E34A8119E71EC82FB66
+23C7B126FB6554E7560B1B69F2EDBB742F3B20D1648C151C37A8570CBD330A9E
+7592A8607D2D727F3AAA0FF2057DF4E2A4C7D3B658C6CED38824A770420D89E7
+F6AD385DBCE9C9A9095CF0042052A67AB804A6675BB9373A99390CBDFB715984
+A069DE543E4C6ADD7F1EC7A15392EF834EAB4584679A43443953427DB13E6959
+0F2F5061C99C6D00FA5327FDB5330AEDE19A53DE3AE092634DC6AEEAF63A5BED
+990F8A117AEB1CA0E7F7DBE02CB3D86465F1613B976D1CF6F3A1E69740A2FDC8
+062ACC45EDA6B863B60015F276860FB79C31D28F97A799568E66D0A8757B2C41
+E939337B467303041D0F4C59390B2E41E5F298F275DCC699D27C459ED4D5ADBD
+02539F00095D7E1872862142B46BE06513D3EB1A406E6BAA64BE795122100F09
+C37E5D1834218EC1D11B031C7DFC9F5AB071A8F4DC08203821366959E9191D4B
+289682D915AF28CE5858F83338DC51B6B0DD052A181D9133FBA50CF18F70EE65
+C33726A0450EBA9D0E0C3662AF6C2121AB7911AA9880D6BB6811D6D7515888E7
+199A0E632104059A88C9D85B19BB35EDF4AB95E1515BB2339572928BD5FE8CBD
+2D4DAF55DCFE29FBC4C3D56336277BA0C9A889A129F9FA7052AD1420B8705163
+1A808EC1284C888D78CEA2B4BAB71AD76289F5F4986008FA9BF328E8537E6C91
+E11DBDD8447E1C9ACE18DB0EC3D5742C264C8EFA445C5D16C2930FB43669774F
+A2CA52144D99EFA8FC427DB4128CD4C036A8C611B087335C780740FAA419D39B
+5DD68EA89C95275F9254D947EB3683D0130255269B10C6CFF29EA0BE484C9949
+96188FCB747618A8044E2E37DFFD2DB8ABB621B34DC024259340677095B6937A
+78EDCF508AC91D4CEFD872AD73F50582DC8807143CEB9F109C84DC5DA30B64E2
+E56DE973088A9D32583D6946DB4F3523902FB1781D993B89D5F56D79D5D98CC1
+7FEE73FC3A7D1BCCE90179AE450829E228B4DEAD3B2B4C79A400CFF899AB26F9
+048B0875EBC871AD23BA96F88CDA8B87FE5809A13889A6AC349ABB25E54ACAA9
+C213C5DE2D01BCB9CC0D7BBD384D23AE12E289FF8FDF1F611F5E14D4B20B15A3
+42D9B3B37A83A9CA39B5DB6C8316C51B70F211530A56CFE54D63E88169CF5233
+D1A7B2388025B3EBD2BEE0716C3A2D589EBC7A42B3DA602AC4E2FD9C9052C922
+711E44408DEEA1FE0C9FD50A39AD46D437F61F284A2EFD42EF158EDD71A1486D
+4865D6B5E20E60F4F4FC3D646909FF1EE2D7573665E4CD8340A1B232CAC0202C
+C35BA9BB3D2267C7E78518F6711633F888EBEF72DC750AC2CB362D528CFC8B2E
+A1AE1C05456F50EED8CAA768DEF47FF85C4322F02D7F9D188C6F285C674EF589
+251B0B913339FD701FDB281338D96704ED7ED908BC113B4275A24D058955890B
+12CCDD5572D63688426B0E1E9A40D6AAECFA5555C1CF9DBEF8C04CE1E5A63F14
+969D39B6DAE8A91F6AF4CD1E2DA89A4661DA34E272B6032C442C031F081F5DF5
+858F4620885773D8A2B2F5EB6DDA74C1408DF279900450E4A3E80BA9A9B1295E
+F24EDC3F6EFD81A741EF74B0202820516C4FB720687BDD915EB2396128C3B262
+20E3075DA153D6FD36E1C05B855929DAA4DE694B6F15EF2145C63250B24B031A
+4CF0AFDB225E91D99828B83BD90F1702D3906D45872587A3A116B138AD9627CE
+E778A949C392202823C670FDBC56F1896FFFFBCF52C4B400F67BA36B5FCE44A5
+F18EEB8ADFC088C99DFF8E0A593E81A5ACA2E3693005F723C7D3E0AE2BDD3805
+8C6007A00542DEB2539709558A88B21003CE4B2C7817AF207ED576B25A41DEA0
+FC55A459BEB00ADB01309B35920F04F84B7B64F95AA99EBCB843A06CED900D99
+97BEFD7CCB9F4D85876F10160C8D63E2FDE82B7A8D945F37CC9933ABE0FD1D76
+268296B1A5AB06B2E814691128771694224781171DC6266BCC290FCE1AB59416
+85530368115BABD4F1DE45952918D1945D51EB713C283DAE8EDD559F437CD886
+A4B1DA6120D685C284673A3EE489FC1AE4297A3623B339B7D886B6B4B8F9F4A3
+7BF85E320A52FDC6323B51879B98A14C33C567BC069D9B44616514EE1BE36F90
+EC5FA33E1B6B0A46945D876EF0085E74935DF2560A03321861A752E59742B9FC
+5C501FBC64BFB1602459885B63873DC857ED37F8BE1A9C6E9517B9BF5A6161BD
+DEB6DB0381FFB34A8A96AB4AD48BEC40D4C198ABC599C3758AFF638AA75BBDA4
+8545D5F95FA426FB25587301A43E176F6CED7851E815AD907F2443E70740DD2D
+4FBD5D978B9B37F59D6DCF0ADD0F90825DD23558FCB858513602C8BC82BFA383
+7AA6DCEA4009961D06DF233C5381A7F9541259926446B2F03664BC5978A1B6CD
+EA6EBC9FE6100A65959513EEE32E69D47B55BAF30A893D77142F943982019C01
+715CE29923795EA01C58A798979939B507C5B29A32881877EF7EF0C5CB3DE591
+6B9A6C3F3FFA847F396A396F078860B59850BA4CA3115CA2376AEE6B30C05DC1
+6F9DB6781ED0F9D45D10E096C33B1B7CD12A9D57C6E49AD833C4B093DC82811F
+16B3BD902BE764A1680831EC5A6C1CED84AE0DC0A65678EA5270BF20931E6409
+7AA44EACB22CCA11098F8A51096BE83A1ABA56C9EED4195D5CCF24FDAD92E823
+C439DAAFBFD652157D728F2754F28304710D3CB33763156D76A259D446647A11
+493FAC70DD28063A4CDDA162F72542368E1AC2826C4BFF7109208F66371910C1
+068F21779FC39DE03AECF1C9FB2F417930C22791961D801284DCC89B0833B6A8
+D63F153ACBFB7B7D547924613BBCCAED37D90BAC5B0264ED31C7B9DA5A2BC620
+9B20CA48424D0FF58905BCD6190BF4B5FC6ECCA1BCEF13426920197CAB41C4E6
+E82E8EE7BCB23C6BA6F8B58001533B225ED721D6CE3D6E89116EC33CAA6E905A
+649F8C6A1AA187A48E20DB864596481976216DB78F0F57543DFAE3CDC0A6FC77
+2CAA49442527A5D94DC54BE93C875690CBE52EAA4EDD9F2A511361BC0F0807EE
+96AD0D26B62D809E82EC14EDB158EF48A748A6FE0C3A7EE5D4479B35425F35AD
+3EC7444F6FA75CEA5011AD571078293448A33C7647611CAEE87974B0A756DAC9
+4E1BA78DEE477FA59AD50BF5C52E068A5E044A4A4994D5B24CC5045F768A3C51
+D4F65E2A5AFD271A7666C6835E28C60751EE528C0742433165AFBE71562A3016
+F59676D56B0B5F7E4984D664BC3ADDAF24B4205752EE21D4B57057A943018466
+09C3FA5D2C5BCBFC22A643586BC9E7A965DC34C0A7D76A470B0602AE45106417
+0701ACD2C764DDE218B924E38B5A13CB82678372E743A8B3CC300BCBBB878978
+D9847F0640A031D5E76B5AD07699C3B2FC6C1DBBF79938BA649C152FFB2B5BBA
+D18B9570670B99907506494F362B124790A17D4F415D8447ECF70B67DBD46643
+91AD465A1852B804CBE65206EAAA38FFD2B4180AF00DBC62979F87BD3B70A8A2
+C7C994B4FA24897D4F8CBC0D021D6F1B42B9BE470726AD1F8E04551231F475EB
+9DEE98C52EC5DD40F0F684B325D6173595FB5885010134AE1A3709C1E7B3477A
+3A5DDFF9E94991CFF6EE50F6D36405FD8B6808DD52F68D6047BE7E2B308A8369
+8846F6175DB48570C1D3F306736984ED5D72BDF4EC4CA4852880DF611E75F78F
+5EC98A9BB282BF78FD230043C93E35DBD97665F579062907CE8114BE0DD66E42
+8BCECDC9C5BEE2F06CE89A2A15EA3CB6C205C48981F39FD7FD24B35DED20D3E2
+3A34738144E9BD28093C9B2B56642781B1B01066A67C8B66765B301AE0C54607
+C65CAB8189A7E13692712DA17936898C1B073E9C9BA926C42288296B41CBDAC3
+A4FB5496C4119E27FD0381C0CD63B9A55E14A76C86CA9C3AF86475735C4C9CFD
+D6DB493A6B9C41A3E96B1DBA7005B24B6F8E43F93BD69D0530BEBF6A4F2E31D8
+05B26460B892BB4885C06472AC852E814B90098A82F9276DA82817BA9F66168E
+110837C27188F7CB259BEA1409A7B89104BB400185FAACF383835475C95415EF
+112D4026DD3F66AE278EEB45FABAFA8D4B5DE9474477FEE9793844DBE0DEC783
+33CF9086924DE29011812713E110D173C7BBCE1C3A41C7891B18CD0BCA926778
+28068DCD51484ED60908FF727DF3AA0C0E868850BE7CC8E2C096E76CB716379C
+29239796961295EF9CAC30822D4A2FC61EFC930C5FE9095E68EF399B7AE15BBA
+1318582145990E67182A99285EA83351D8DAC2C5409A37B91E69E412A745F498
+702E670ED51DBC326EC223807823648C97454AD839598501FC9B38FF0D7F3095
+650FB4AB552E5E36AB7034FFAD44CC23F48826E0E27A8FEB6A154ED3CDE848CF
+9E76DB765D93A6F0F6CA1D9E0B8CD59C1A89A54B4051C2DA69DCFCC6FEABBA32
+9A03DB2457D27A856183509278C03BB676F55A32E027AC44C728E1D27DCE6CFD
+6D41ED39AC16F7242C18506080BC215AB5BC05FFFA24DAD329E2D24F44438A2D
+4AB8439572D171BF5556D918A450A6FA84AA6D25E3BC5B5207FB3307EE775514
+FC02DBEFAE418595DF5C479CE4AE5B7EFE7D92F49EBE0AC55C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMEX10
+%!PS-AdobeFont-1.0: CMEX10 003.002
+%%Title: CMEX10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMEX10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMEX10 known{/CMEX10 findfont dup/UniqueID known{dup
+/UniqueID get 5092766 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMEX10 def
+/FontBBox {-24 -2960 1454 772 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMEX10.) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 80 /summationtext put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23E7BC2A6E71BCF95FF3DA948
+1A27320759222BD7BC7C1A533E90058824F06942F0234C68671083E0E4708398
+D246C94F9C16DAB6563651BA33D86273FD2DB3C50C106F3CA95B1C79778D0BEB
+B99D9CFB38E41BDCB4261A86A23E2CDEE4837D9B6F0E85ACEAA984C344A63709
+EA35B61F08821338D363D172BD185A3658F43052AE1E61D879C99DED7F6D726E
+FAFEBD881BDDEA91FB09DB75675FC74AA2BEA8771027C7A51BF849F8E765B870
+8F7CC0871F301ADEF9B71EC3C607B2F51325AA5B3DD74A2C5426E7B329FAE84E
+94A159C8C9C35E27A0FC93FB98A4D616750DAD50068A5F0EB96B8228946E5CC6
+B69E93D262C92E3BC7161313156E380A2ABE27BE400A23DF95E65A4F76B3FFE4
+CF3CD141B006C487EBC73A5A101466D4388FB2CF1D9439D0714720BB58537B7D
+B3EE1F04AE117222CA5F0E5942F7A875D55D91D63958B1A02405D9DE08109B8C
+7104F2D109EF7074852DFD74CBE02E0F3704F2BACA14E05EB1D0D9021EFAC23F
+76C2389F8EA237D2E2AB6AFA83A725E16AECCAF025E05F1B1B5699D761F62A46
+EC6F31B0FE4769BD0D66821592ADBAEFA9EB454CF1402FE870F5F96D09980C1B
+8B6D2FE88BE56032C1959E6C3DC319B6A7353F3AC629CE5BCB947B4B235426E9
+4769302817AEC1ADF50E50265AB488017634AF824D44D3C8423FC7CAD97F6D6E
+6B34313637687FBDE3BDF6FC951CB41277D8EF49D14767B59656D214C9724DC4
+0523EF896F4E48434FCC5D8423F07194C54D48C62AC29001B10C9C8B514B24C5
+CEB60FF68D36749711E108DBB52738760FCF6571D5B04E58F24CC0247834B412
+D0F6F8D7F1573F23E3E399D5A3A3A37FCFFEAFA044A5694D2458EFF2BC1F7650
+8FB0A27C505A20C16776EDF94BEF9DF702F3C64DBC1939BEC0399B6AB283F832
+DD8FB358F701CC075C596FA7B0ED7A9304DC73274C8169337D55124CB748CE26
+A635B2704D8F65E23CC0FDA3C57ED451F8FDE7B6FBFCE2746F5AEA11B065A6DC
+C3D200D962A034DD6757991BA62D8DC0408F49083D48799B6097B61343365A5B
+30FB02E9CDFB5104FB751BE8A268EE55C1208DD8B29D5635014EDE9D0D94BB64
+ED5643B3049027925BF2FD7EFCB631E01269B731AE12AA6226B2656F035C7E92
+959C4A21BE40D7C138C8FF28C9FD4B768CF25F08859AE84FEE6EA18C033B3659
+D9EE250BA5FF2568E8BF7684A93BED7852251D1ADE5DB815AF3AAC36D1A500C9
+41D1BF3A1926828CD1F9E501ABE441A07B1B96612CF0728AD5FECF7480421F46
+0B18E06D2FF1A5B1183459C59517976474698BCE18A728515CD489A83C001AFA
+47BDA929F60D0FABCD8786AE16EE18615C37D18703571936A365D334BACA9BA3
+08E2523132887B5EE95ABCE8581C78C3E858DBF35ADD56A1F6C2489AFA73D1B2
+379C5064DAFD30FDA84581FDE268B470636EE35F21648955513714F6EAA08AF0
+249C937721DB0E93D95C4DDDFB0948051953F39C6D2D811D3FFDC25F786E072B
+2A8A1F4830F9CFC34666A1D3F13268980E9A26682CAB64817318A1E266F3D2D2
+DE4EBB3EDAF0E7B526C838CBD7F37E74A35B1C3EB96DA4099DE689A53970D4CB
+9AB355E93EB294B07DD09356C338BB4A61C147BEDC152E58DC92FA69846E4829
+551A5330006793CD88523F7B3AF7B4475C531C67A4B66A603597EE72C4ADA491
+BF13706F341125CABF37FADA554FDA0BA5534C7AC35F1829E250C885D9A9983C
+5D1FE8CE24458A8B13E5C7EA22BF1608AFA96B83C700889A2A6C9C4052DCB892
+6CAEEAA9E7D7F3E215019719B36A5DAFCCF2396FA0C04AD99A7C23772A7BAA64
+D1FABE8E476EAE9FC1A3E08CD6D1DDC6E087934E676BDFD1528652B6B9A50A35
+2029466364300AF4CA3C5883F6293A7104617D0858B3E43D43752F814654A938
+A44C33410BA0E5EA7BF55D4F1D57E27921DB05C059DE29BAC1BFC9B607D2C5CB
+1DDC47793984FBB18BD99E1DF7776B563A55E15DF024D6D8E6ADF62F16F602A6
+7DDE1C68637672AA9C7A1250161502ADDDC1B4F6011A9BD5605B73AEDC37CE4E
+4467C838B7692C4D541EF87DB41123F9DCCFFA971553A5D9B0E7EC539A28750C
+8554383585CD8B93DF731A301D85BA9ADC95B4A3A237794C30230A82300B6756
+AE5A46A090958109C5565EF60B0B16D6C0A16A56644B05D3371DABBB67ED9BB8
+9BD3983575D371419C7568B2556649402AFB9843106729E4EA87B3F9038218A1
+F820B098A1271E330708432567297CCDA332B555A40C62BAEB16330175D28AA6
+13AE6939CEFA2334E3E890B66A73277F0B63B1FA59F856ABECC5FC0A50571F5B
+0747FA554F5FC72A51E215304B2E44701A13E41D91397B204C66AAB3D101004C
+7FEF2D87DA558EA057BD492CD6EF93601CB63F78426B502CDC5C8E9EF4FF3692
+376601B1FAADD801602668370B5ACEFFDBACA8F8B3F4E850D07A20F6F47440FC
+FD39504F0FDFCA35AF2ED0DA8BAB63AD42EA8CDA912CE17F5E62192DDD912333
+3E9FA0884117F07221642490044A72E359D5F25D9591A8FAD568A3DEE435C354
+11995C0EFCFEA21735DF44A30F79F747510E28767A4266461D1394F81344F6DB
+1FA8D0B0D9E5F52FBB663C8F1E91192E5608FFEAA178B93F8298F70510A65BEE
+12ECB5D675311B5B3B19205476512D92B1D16262720484049370A76F78D9BDC3
+02EB96AC1E5B3CB078D2F219988FD0F36B043ABBF347B22D36CF541A8F80F791
+8E4F92D900B7E7B64DFD500882EFBBF23565FA470103B2E0D2D14E3E4D7827D1
+BAA0F84713A8CDE5904FFF2794850871DEADDDC53B77A502F5CA98B0744BB656
+2FC40ED2AEBCC5CACE2301E983E6C18CF16AFB9FD8CA49DE51B22F4259D43076
+DDC1BD4974CDF2E733EAB6334B1D5614288CC81FDCC722CEE193635D1088FB29
+F80AD5CB96394AE89D920DF8E1F271585AF019190F17DB51FEC9064B54C3A53E
+3FD33C3B553FC79F743BEC9674743BF0A821051261DE4527A2BEF4A04E293E97
+02B181EC5F5EED3E26060F2C9EF6852B7433CA1BC1690C30424B03C522A087EE
+92016EBDAC4B787133B4A22BFEF0B6CA564C6EB910E1DBF983CB4CFC3A1F8A26
+45329CED7F5A8704ACE9D4233583365A5A97342A053EF403F0567E9D0A62EBCD
+84B5D7145BBB11D31046BC2CF5B450CC68B85DA0E78EF8902F8D37DAAA9D4242
+455288C0D73748F9BFEB1B1769D6FB84B94993D5F7C2B9CBDF75AEF2C930F277
+210B3CCB8A0299F50AFE2548A4B8DF5ABB52F098ECDD56FCB8D3A406EFD95088
+92D7EC39FDC7EB1824ECA24D0CBC6EC6F4C6A7F9590D593B269D2CC0BFBD961C
+AA8BB4296B4E4411B54367A341A5EDA97288DAC370A015FDE6D7FB0A4CECEFBD
+1A67DF3A3703E922BEF2C414FDDA42482EB35D5DBB206B44C76C412A435A0842
+6845EAD204BDF87065CE2C99B05D2D4080D5D11CFC3316967472C7DA44CC1F9D
+51B83B4BE9B882D6E9ECB482F9855D024ABFBA502CCD624E0F88164A6F13CED4
+85F20DC01BB15C7D78B1C79FD9FF71F4B043F59DB5C297768115542BC7C8A99E
+ACE39A268D32122541FB441FF1364FCBA2B7627F12C49ED038BC044B6D9D533B
+A72D35317A5AB8D91A9AC56CA90D1DAE9F967605C63BC9F406FB3D5BAEB4B38F
+4934EE3D2F5FE434B45CF5C2D0E5E417EC279DCEC4F16504EE40E837B11620B7
+7526AFF23381ED3E9A92DA4DBF4EA2BE4FE444B9A74AB60EFC818E20DD8B852B
+DF8CB659C0A3956D0DA61F49A9DD467726E57E9B32EFF540D551A67213D40273
+AEAA6E319D92B4B406377D36DAB85662C755D76ADF5795C52D54ECCF0DE81E30
+B84F951233A0A400CB063911837F0AACF44AD2441A7CE08818D64705E1ACF7E0
+F59AEFC5DD812981C5508385274817056B2CDCCA4C9F3103C92838917EBFEC94
+21D5737AC634B23B6F7F63B166D60C6BAA8F33AF44379C5A7337E737190EB3EE
+14272B905D08C01EA118964D3444A03676FF3B62E7626168FA1DC6220699780A
+0BD5776DDFA26BF0BB335B3C978CDD5CF1A419D4B5C562B3974FECFCF0118199
+E547EB287CD92E32E881F344420FA3CD97333BFEF5D7E1BA31FD20622E5B4F95
+692DD0ACAF01D413B21C8608FA87B470191C3CC5AD333263C955B4ADF4370FCE
+D6667FC93495003F4B6AEE4F83603D55F19EFBF56F955FC9CC01E494804952CD
+D426FE706C13D41F87C5C668D8B6BE50AE0370E07F52AC0534ECAB1C19851099
+FC0BB1EC2A649795A62299F73CA606EDFB1D28183DC63ADF67294553115E8C57
+7CB603CC491A6065802B925E6DFBF42917EE6E44C714228AE452851D61BF70AC
+844B5D800EF029357FD659B8A648445CED0ECAE1474E443124F4B3644F54C556
+A330D92EABEC7F607C6B13FACF69CA928F835056BD1A8ADA20EFE6BD5CF4A1A0
+8B9E415E4A5FC6F209EF05ABF2E0C55F6E3060D1C72967E1E68791499F303C8B
+3960C5A1F2DF6306710DFA98C8D0815A06B5590374554DCCDBDC4C295B3BA6B8
+8BE3200CD4421A521C06BE39D4CA495BC63F3F982CAE3C82AD38DCB537E617D3
+34BD96EFDA7C6A0F6D97A6BC9F084645390E194E7A11399FCE4EEB9A965909BA
+6EC69D34DBA081BB3F18BD1ADB1AE1B7FBF96E4C546498667690857EB6931841
+46C427A5B7C7D99FF889582C4AD11A7D267B301C5A5AAD9DA99D5BFD438238DA
+62DEB899FF0F7B7997F781315B2CC328BE3572A3903A33EC901AC6BCC7F152A9
+8A6865C6CB17189A4EEB699006A5F9D4482D53A76E88438E444F9302C79F0DC4
+B3033D29D303B38F5959F020337EE6619DC8A8C3912101B02CF8AD113BF4BC29
+8C6B9D25AF6B6A787F222C05964475B49B6751E3A3A6EBBEA03677D5B136B9DC
+6D9AC20193BFB0759E89831C9E2AF68BD45ECC81175DFE80DC0879069ADFA8E5
+24CF3C84121CD9739A28BACB9891945FA4E72EC07136682E18FCA81938FA6A3B
+8CEFBAED60121530E33C1C0E698B5923D6AFC4E907A99B1367C3D435CAEDEF5F
+878237453B8DB2FE53073CF3319FD096343F42D68F097759D051AEE17E4FCFC9
+86E17099799DE82A38F22D870BF7AB90890E3B5264976700BAE594C8563A218C
+C985D9A5A7D7BD959F7E4E66286833C86E89203ECECD6FC4C6FE1F04010218FA
+A5714881C4C846E85F13BD68AC250CD0E488DBF60BB10B2CD7AE2E30F9C21DFA
+0E84F76B4E996AA1C5C056E64BAC85622C160B56DEFD4DEF86887C1201F7C20C
+076D4A27BA69572BE9C89FF3A9D3BAA5CAE0A6F2187AD01ED497798A305E3BD8
+422DBFBF45E3F4AD35240B07285128B59FA9E83D9F6A2E620CAF6DB05129D930
+44CB241CFF84E776315114C3AB61FBC0A8368D9154CC5066E2B162E89DA51165
+F9CC075F2524F9A8624D2B56ABE64AF93B9F0407CC770C1F2C76CCDC06345D03
+7B173C2FAA201D8E1F6C0315987A7A13902F4AA5ADF081C2B0A01C77E4F7A3E7
+6A4AAEDDC577E855D69D38AF6A1D271B02AB496D94D81996FB078FBED17F833D
+C6C0BCE141BCDE277D530951DD6574B9CB3CF0370D74211E9AC00C7CD3A67842
+0B4B72ED517E4906409DEA7993D0B8E92D418139960EBC86BE63A1B1D417C451
+8BA13C230DAE1EC4E466F23351D410D9FC4A7BBD477D5FA07659B71CE9921B1B
+6755C67AB3D4988064004CF75948879D16174E8097C91F7544352474C2D9A1F8
+A1813BC6F4BA13E952678F5707F19B4799ADB3BD186DF650821DF58CF3C78D67
+84E4E1DF8DACEC50D15647C3DBBC3C4355E602D3A03171FE1CB36FEB940211EE
+0A5300841DD7B7CF91C02B3FC5D89C691156BFF8A38C6C72789DF260B868AAA1
+895046E405661D97FA9A0048AF114A89E3ADAEBCE541753E4FFCD902391B5372
+6A97E32F0257FA9FA1DC15BD3140EC7F0CA5A68AABCEDBE73C38B35FDF195F96
+0F9DB0F592C188D72D73512F4DD92D2371D1A59254BC477CA084E68184AEAB6C
+266BB21DC3AAF874DE999AD2A17C79621AE322612EE4B6D5BDAC511418EDE90A
+AE75066AF19662C4AD855E4200A5D67BEE4ADA9A399192C74D35E59B15FB61E7
+BB167282D32D538029ED22CC5C9860C1F6B7BA7F33D5CF108D4BEEFAE7B37E67
+39391F9934DE17956303532ABB011540645DB8420749C9B9A019C3CE86ACD566
+1EE8D8D5E0D8D0DEAB33B5413EF10D4EE650F82417002E436E0B3B628A657F84
+074098C2E9F897D9AB692E0FB9F268E6728F94A79CF4D6B0A07C8DFDC1D67FD5
+EDD5863EA8949D180B1596D0009D662FC429449D76BF13D83F0D0CF165982443
+E9CC288CF7C5F2E17EB7F3736D1FB814196CCEAB8C833720E3733BF594E1B536
+BC0063080BC751F9DA1741522B2967D07DDDA169E7D3417B4A39EFAC15EA5E8E
+DE3473CC9DF991FAD2A971F44B09635085DB02D692F149F144F3DCDB69B72C53
+A2AF34C65DF0D5F35E82102E67B733750646EC03A4FF47138F7998607BD93AB2
+B63A0B82E8E225FFAD5DC468077FBE8C8C8E5B4BB10A8FE836B07367D742BD6B
+D36DF5304B9DF363120504C279453452EB177FBCDAA6F6FB78A24848F4A1D94D
+1E49F6C46CB36796F3F4C9739346381F28AF085C5EBDB2A02DC0570C7A21E097
+77522D4947B51182431BCBF3E55CCDDE93A916AA40CEB577277FA512380816DF
+9111C56F36341381D62368E70462577D0C135BB3CB4462B269AA8E0F03245BFA
+D01DB8E23F2DFD5DAA88FCAFDD51D48E562EC649DB1FFDA0FD8CC8C48E6A9207
+260ABE35733D75630053CC74A07E5AF6FE87BD5FEA69CB6AA20122276AD92853
+6B225BC9E3350D1B1362E04C7795D473F1266852B02C83D02D938C55D8F0C671
+7A9205F8CD058304DFA034D99A6BC16C582F02484A089602D42DF30D7A5716C1
+D42A4CE56C19E40C01DC7DED931FA13679CFD2700B3826A1E6539AAC12293DA8
+664DE251C5D1761BB45FE364CE3F7F7E9B67F86EB31D9626CCACE4DCE03EF3C1
+0D2FD1B12B5774510D46C5C5CBF0A34847418B9A1DF0C67789422D0EC2D49576
+9DDE72D63A4A98613461A6F730A05336C691583F96C3CAD2AF7C4BFD3AEB3814
+D909858B6598FE19397006C8C4D549AA1635968F47144E7861A2BCE8AB4CA7F0
+4D253949AA0127559FAE3161C810A8CE22A3079602E747C9398F9C8B2A868F23
+D77D7AD6B980FEB038E0557E58E1D7AE471036CBB96B83595D9C96A4895971CD
+C2A810651A045F876A1F5AE470BEF39F856808B1F8D736030A722E1576BDB3B4
+4DF06F73D38D313C8A0D3504EFBC774750C9F6E687ABCB1927FA1BB3882AABC1
+2306A030CEBB259AECAA646C6497712F6C1E9DB7E1365A60EEC5AEDD5147A77B
+1E3A10D73C477876D54FEE853D953EE75F7EDFB287550B93CFA8250D1FE2FE7D
+D34441F1224F3DB1D355188819EBB98A94DB193B9CA23803869DD10776647BF5
+5BB42031AC44A7339DC036AD0292AB9B732E6FB79BEE852A103C3788BB0F4B72
+EF37BB62356F9B2DF7F5899A26F1FE0A3D6469C1034B8AB14F52555EBF6DC592
+3F24D6DB395A3A182ED4B8ECEE8254661C19CC942F236CA40BAABE818EC312D8
+7F5762C210FCE8A3CB9A23A24D0A751A09F4FCFB72DD0FB3AAE0575CF97D126E
+1669203BE1C8F8FF626F49E8AFA7B29EF26618C6D8336D4471314D5D009BEC8C
+D914E74D0BE7D7C3A2511C0DDEB6FE04360D54FB3283AD67D9DCDE211FAFD19C
+449E201F2913232DDAFB2043F674EA73C9F043EB73CC9A96289B3CF819DB3E56
+5FE403D8C387C99979ED9F8EB2F5B970958CA554D9DB879786C39AAC8139A032
+6651A999D3927BB2A16D73BEA8CD512765A19BB5F5051B531D31853E3F220715
+5AC7860BB3BBC855B07C8A690AB98E5D6E0EC13C8468DD87CE3AFFC36C9F1512
+5124DD63260AB80B620C9EED66B7694C220DDEEAAF2F06AEA283800FE2B032DA
+F1727DAD3CB87227A09AC8FDE38659282B036D5FBD9E5C1CD82C58CB0DDEA02F
+224DAEE5A2F7D1CFAD95CAFD70CAE39FCEE01604FEDB409A5A2BD7CE006E8010
+27183F365388F46D38F5EB46FF911632E3DF69E3D3F90656BA3E610A166A6F57
+105146036D848B62B2F2318A93F540C31DE915B905296358C0DD789EC87D8331
+C0FD96E354725A52528E179800C03F35CDD3A35EE88A9B23FAADCB3B0E20680E
+00
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMSL10
+%!PS-AdobeFont-1.0: CMSL10 003.002
+%%Title: CMSL10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
+/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSL10 def
+/FontBBox {-62 -250 1123 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
+/FullName (CMSL10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 44 /comma put
+dup 45 /hyphen put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 69 /E put
+dup 76 /L put
+dup 77 /M put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
+DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
+7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
+C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
+25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
+7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
+299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
+80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
+5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
+8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
+5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
+F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
+966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
+A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
+9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
+A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
+94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
+DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
+E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
+5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
+8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
+155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
+4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
+44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
+8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
+04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
+A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
+F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
+111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
+8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
+567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
+C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
+C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
+51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
+66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
+9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
+2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
+4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
+5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
+0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
+233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
+BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
+62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
+B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
+DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
+C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
+CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
+38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
+FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
+303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
+8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
+8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
+C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
+9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
+4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
+03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
+93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
+91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
+FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
+06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
+95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
+9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
+7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
+6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
+5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
+3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
+CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
+797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
+DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
+CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
+8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
+04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
+78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
+730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
+021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
+CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
+90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
+97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
+F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
+4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
+40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
+3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
+362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
+DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
+7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
+04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
+DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
+C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
+B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
+9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
+3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
+D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
+B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
+74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
+44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
+A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
+3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
+BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
+01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
+6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
+DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
+CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
+683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
+87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
+550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
+2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
+17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
+3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
+F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
+B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
+1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
+61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
+124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
+ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
+0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
+D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
+F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
+BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
+75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
+8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
+B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
+7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
+F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
+F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
+322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
+523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
+6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
+66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
+B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
+5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
+093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
+B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
+6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
+EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
+A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
+8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
+144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
+7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
+172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
+254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
+5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
+011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
+B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
+0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
+3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
+E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
+993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
+0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
+18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
+ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
+CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
+1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
+A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
+6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
+BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
+DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
+1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
+93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
+E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
+4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
+F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
+4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
+361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
+95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
+AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
+50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
+88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
+AB7916D44EC2210CB941B1455867E510E9D8A0B83CB645BCABDCDBFCD51A4E12
+60CFFEF0CCA548F654037D01CD631FC4E1F97B4F65DA9AE79D99F13A726E93DC
+BBB027B7D175FD17A704C4668F6F8428262959DACA9F8C687C923CFA053804C9
+9B2005FA7E0F07D81E52A9A37AD5CEBA8EA63929093ED0DAB9F7C99C82A50E6C
+6440387049A0C359218F5268C9A28F581783BB9D29E08772D7252FAFA6739687
+22570150178893C418531769CB3D96F799BF1C6415820F96B78BD1D5A73E157A
+ECB9F3F59C0D736946734773AC3D7C9D53126432B6B3DD17FDFEA03D4E0C9C78
+17CCB865978492F2A9FA7A855C906D222033295988EEF54D2F40E408D52ABC83
+1EDE8F5F1DDDA31A8F17A3CECF4206E3629520D3AE254B77057D96CFB04A3AE9
+2014EB00C07DCD7651B5E90265CA9433FE878B44FCC817D5F13641D553C557DB
+4C9CC137160DF87F0E3DC9174C69B2BF6A1E686EC50A071C31AB809AB42B5612
+0EF41239765F162569F759E2E9BFBE93365ECD78C43A02CC6C9EAC540A70EE14
+4F11E2C7025CA2F385A84BB64B270381529B413942B0E8A4ED9E55DCFA8FE900
+40BD5F18D38DBF0669843B58C2F7864A15CA28A94715C4CD565DC6D841815551
+ACEE4DF4442BFF6F7618E5238880F9DC2A27F29C6DF7263886CC297FEA60DFE6
+15FE4EF567658555246B6256AC9209676C4F29EE543A0266662CC4E8B4C6F6FA
+0B2E2295A645C410034CF7677CEE2603269D8EF650FBA5421A350FBDF8CC1E6B
+0C0FB1C6DF4EDABB519D071224BD94FDD03BF8B8B3DAE7FCCA414E0AE8E2102F
+671138D6ABDA4FE2AAB52ADA265B24C61F89380E7502550D7ED005E95F9F70EA
+6A252F8C53516525AED692A9EE1392C86F72F8F4C2EF96CD260EC0B54356F5E1
+939CEA9462D9D12635162BE580090B76287AB707446113B21EB66B20C3240507
+A80B8E41F9B9206C693BE0B5427EB8CC3A82AC29FA39EA7CED2ABD61358C91AB
+5BD0894FC54DE66CEDF2E8AB6535509A79A01F470A48FB1F1106BA51CD5CB4CB
+58CEB39446C30364291C6BF157EAD73E8035FA7D0D89318CA0BD985317089EA5
+D82A880830717588AC6BC79959B06F6A96ADAE9850F50A60AC21BD9AABC8DD60
+C5853CFD549E8066CE916EAA5CA2FC4FC013A3C959A14BE44FA5F336B3BAC97A
+FC236779FBCDE0E78B326E7D17AA30B40836895F002F9B9923BA7622744B6CB1
+F1E4C6F80D00548253224C8F96476B8DFC174560010857D082CFE9B521F3BAB2
+7D26B69273C1A3C040E59383B6F8ACFAD5A7EC1A2F144D8AFAAE1027827F6AA5
+8597B8DB6CBCE1C6DCE20FD24CCB60915797B17707A9B543F4B5521351F71313
+98B3E3DB3337D560400C9B5BF032DE9E6AD7918311FEDD4A333DF245ADBBD4CC
+D2ECDE18A1C1F4B98B889FF9105B42FDBC1544478F2959EB3D724A0EE348702C
+D2BB3E269F66CFE66B8A0B60CA0848AF30E60E61C7D2F2317244E461316E8FF5
+16F0401824AC1BCE6B915FEDAF6E92D7337852B03FA772314BD5DA1370FD496A
+5C6022EC50005CAB816E836E1BBFFC3A7F2DD2460863A3655166D15A1E387182
+16188FF82048F3C6D9F7447C41633E5829698AA64F50B18635A0CDD585549A7A
+15427C13813D7EC79B7650B263AED773E8B727033699F46F972A599130D297F4
+665534A9DD54CC812427C8E656B057F66B831BB4C038A45700E88E4003AA48E9
+BA2215701366BE4714D8F4BBF307885AF12BEE1E0E55819BC20E84BA0569CF13
+AE4CBA7A1F376B454A56DB05A49C40447DD643D8856F0630A12E107BF7054118
+55F2583867EAB2D411C2AEEB35C98E06DAA46D04A718EB49D4D09AC21C85A84E
+12CECF482383D4003100D5D26E2498A9CFC74F768325B2AC00F031E0EAFBA110
+50A76D61C6145AE06C95C3D82755F4813007C33654E4B566F568C5092BE08974
+5DAF2558476080D921A6174D9241EFAAA0B3DFEBE82162517396A99B0EEFA53E
+E94FB2734EAFA3F61AF9B2A90ED5AC14C3517B9AC3D5607ADF408368E844E508
+D9D0B31763D85F548A7965DF91944055AC100CF55173B2182A9938E529EB3299
+5110AF62CA2653CF585E5D09C8A7DF9492F759D3D277EF394B1B2B5D68BF9BA7
+7D7FD49355051A5B761636D2C6763EB59A350AA0FF3C1D98559B83276983D452
+82F7CBE0BA3A6497C0B276424FEBCA530D91D42A338B691DF182FE609AD56644
+A6F56932DF62CD710638CCE14879637C5E3B47D1D5BDEDEFD9C1B959E71A3D18
+9C432EE0E9BD88B0038077A6CC5E2E116275F0724F78ECE3C637850534D209DE
+7D7A706724D302BC99722C8A28308DBE3F1A1561E0BB257F0DC762DAAA5DB550
+A665BC5F50B5E4FD17F2B6E1B6DBEEAB1C5E8CE014CF180E96B4E34AD0279F79
+585354510111A34A723682577D229F74898FEE180AE0DD36031F058779680378
+19BDDFCF91D44DBB439083FD7DF24E8337180B75B6571CB1B98E46A9F0064296
+5B7B003E75E592167D201D9ACF348D04A105F82550CE9D2EB6685309B2E0DB46
+A59C4C60093DB4CE9B05B12904A33F1A42E378A1DD9CD72AA36B7ACF707458B1
+F41199C6B5752C6B5879E8A3ACAA54356EB25C8388EE13D73B621AF5173B6E50
+CA2B7AC7AE816CDA6ED4F00E77FEBB5469BFBFAB5F9E846BFB2A94AFA6A79C82
+AFC0522A24C08368EFF4C499203B4013D7CB6F53B7A8B5D8E6AB082E52A6BBAF
+DCA0B07BCB4F5B2FE259F3B1488D5123721774D7BDDB26ADBE3FEE632EBB3E5A
+BD7D5E52EE130DB749D0C63EE1A4041ACB4108C0749E0CD3C691DF977C9FD9A2
+773874B965AEAD81F6E47B6D1C6B0A60A61A9CB0B74A06BFE721B396DCEA385B
+F9BD12C02FD502672D70F118C4409CA8FE1BCAB9BFA954DB76FFBE2AB5B6E465
+3BEC63CA40E74078D51A736F57C028FBD18F6F8921A9960141885FEB8CE770BC
+CF8080BCCF5EBED7AC45E68769FEDF8693ABB44FB73E238BBDD73723F782AAF2
+77AB7E3C1D8E1BAC20913A6E347CC210F05FD7B2711B551C7890C322ACC2BBA0
+7814873DC5F18AB7132196E2A43F8B3CFE9DB81C5D69EC4FC7FE1A50B6D09DE5
+6282DD679DA494BBEF8B8EDE1C008AEB2AF77E2E8155C03D52F7DBBAF19A9EAD
+CCFDE2F9A330C286B5999363E6B80EB8957218236D89A16D0B4D0E82CC1BF34C
+A20AAB2144278CA4FDC96AA172B27F9A399AEE250FEA38BEF68E7C456B1C25D4
+1634626679B1CFEF14C8CFA91014B51138576FE0393140A6C663BE36540804ED
+4A04096DF58241E2557DF5EE31AB161CDC99FD86A83C0FF1C2EB17B99770E50E
+D6402085163D98178920A5D338188B895258C0FE0BFF41335A5A0E9772012BB0
+C342480A27E23D7A55C79BE4E7632031C495F74A6FEBD9A4192FA942D8867A42
+025E3B850F4FE68AEC3153D9E2FFB9A5DD53C0EFEB1245ADBE00185461698D5C
+039B638BDC4BEBA2D9C9A0507F1705B31A645AEA1C7108128240588E0F3FE337
+18669BCE34CC535A5ECFAC3E9D6F9B8841A55C0A4D30DDFA7C4ED7EC06D288B7
+A5123F560B5810C36B89AAB2EB4AD3F528C2AAFF5C02C1E9210C34196CD04C0C
+EB70940FBB9DE1BE310003F8A5950354C3B55A1F1B0F125261DA0DE0DC3D4FD0
+7E1FF954B40123B154C59BD04DFC17FE7A8C7CF39BCC93AA4A0FD929CB829F25
+48CADFD424C590EB26D467247CB626044C7DC57AB6A5DA4317D2F5D90A62A065
+41A6B71AF502825C187E16D49A71EECE810E24261705E2C3181C9B504A695340
+80512E695F77B9AF257291C23D0D52862AE06B5E62789B956E441C0315621718
+89910F80E260F2A1B67D9BD253E45A4BB18E00405F343D8F24274660DBCF19BD
+6DFE7780AE1A25405AF7F136646F29F5A7B31077620E99076BF9EB76598BE443
+F2745BC54B78E23B62E36703C3CF335EBD412021A220DA6E6AD246BF965AC473
+E3A647589BF54647D917E5190A247767B6380D0C0291CDD771CDFBD4F0D7596C
+E574ECADAE0FF86AEBA41CCDAAF43E10516936163D06E7F9BBC98F4A77977245
+A95FA0F88192E4415B34A9F8157E8136D56948FCD68D5C3B0C3B15370F49DE97
+A605290D0BDE7C64BBC23EA5914259D299B2D9F532115D78741206E57E3C54C8
+601852CD42941D713CD9E3F85E0965902F4DC759D30E0405ED9D5D306273DD7A
+AB740C7B9BD80A89FAEBB011598BDA5DF49231BF02AD46F03755C7C6A7290FB1
+860D966FD206880A468910CA19669E7BB3301714BE5844E8018F3620B79144DB
+9822556A548728609950816343AE5539B0A144479F4551B018450326DE620F55
+6AD7BD1EEEB6A1B2BE79A1DCF93CB10AC539865A67A21C0111F69347586D768E
+247F79290BAA734052AE3FBC0CBBF9C6C9160CC8112C5F0FF909BB82FF77F692
+9F7E68AA46ED5D1DCEC7E2851C0D2DC7D5EDC0B30FFEFB15F60CBD3AC093DB2A
+AEA3A81AF5C9D70D89E5C7446DA708042170C8E5A5F246772895931D3AB41FED
+B011ACBE220A5452DFC3C6B77711BE629A83516486449AEE9CB3AC896200EE3F
+685E486309BCE46554702F962CA7CAB96BDB48C8AABF5A03794408DA90E9CC23
+8688C37C568337EC9CD931F2FFFD928A9320AF7EECEFB0F5EFE9585B46668598
+02B86786A99519B0CDA287A82069F8E394748577598378338B711FE778135180
+7C44102AB1C5B8217471E56F6F6774A8E3D67BAFEA2E241C8B6FBC48F6698FF3
+141CA1C160EAD4FEFB577EE7D8BCAEAF5DD2B6862B7181537C2F533EFA5DA441
+98021CFEBFC599663B827DA7C65404E19C2CBCD52B94E9BD97918175899E17C2
+AE0C6A265B8B8826CB4863E21554BD0DE243E23911BE7784863455113FDA1968
+122EEA8D65B9566AAB17A5A64FCCD2DEF66F00EF2100956D9151AD3D12371787
+BCEE1C590655FEB6D96210954457A875051595AA9367D62D65BE7B2B6A7494C9
+A917B1081D928A3D4F6ADDA83B57F38B30CB721B3B102C007430BD492A00A806
+92A1B61A87F082ED2EE2087429ABBC7880B7660754AB6B9E795A067C73CCBA47
+9624E52DB37907496BBA191C6D22D79DE936E16BE08B9B5A10F840D018290CAE
+20C6258980A53A499F42BA64C027E4975CA83F5FF3AD05FFE9EA305E9DD07CD3
+FE7875D4C91CA973E51479AE0FBA8B308655F85291BB4E0CE7585D4EA1F7746B
+24238EADB3F99739526B7CFD49AA18472C37D43FE49F12614057CD460AF493C8
+A086080DA7FF51B844547DF7D9B7F9EABD60C7FA520B0E3CFEEAA05506F75863
+64C8EEDF30E314FCF238082EF6E94527467CCD738718C6ECF818B6C65E4839E8
+829973F40686A47EF6FA1522ECD40878DE2EC0706F049330D42DA1F886FEB013
+765F6124D3BECB7A89EE83D29C383A5AF9D95249A15CAE843E96C762A032C82C
+440110F1D5D25D9B0C00DA1E00BF94C5703A5413FF9B8C02ADECE012D10450E5
+C78EA64564BD6DCC2735FFE83CD3AF5198FA917E30B52A7953E60E19D4C9EBD2
+774830A15FF1D92BBC724C282A51E9CBB14C4D17F39029A3A89CEA01EDF6AF7A
+5DD97493ED87C2AE47CDF7107E646BAC4D92C2F7A4E360D708A613CE46391A6F
+8C9E0B40E850EBE1576227BF28A53BC0775A58B1433FF009004ED4421700C87B
+BD34A3BC84A4B0A07BE8DB7E93B8650D6BA7E20C4F0CDE39EA68F44D4272290C
+4036A2D71B5D8B08127E7D236A13C6354BB3B317A9556A62C343CF7C77738B41
+CF7C3D627767DB4E2BFCCB62EDBA500579350552477E9091E3122926923E7862
+89D346679F0380E24041E029E90EB7B05BC2FAA9E6CE3A0F7CACABEDA3C05EBB
+F240451F7895BBA583E64919B3B565B4D9268971B1A82DCFD94687DABE511941
+4DC60D04BF78ECC09FB1688D75137F6C58613B9E6CA03E2FABA231ADA5DE7A62
+139D667425B9DDC9AB17AD46045485002FD29C6EEDBBEB486B973F0755015032
+F4E7301C69BE441EDF728E975B9F18437685D9BB42C024E97CF35BDAD210AFB1
+841907C13958847ABB6C319ECEDD45963BC73820574827937C083015588320E8
+CD7E78D755E915049050DFC61A7AED2D3BF59A443DC35392148CBE9432923977
+7ED1AA17E3A97F8C922B1B01BFD4880100D2F44624B216A7BECC53C079597E00
+A579C2C5A74231F3CB7833025C4EC78CF8B12FA3173CD6FD9B1AB88503E2C3EC
+0AC03C8103756AA47979494AA97B62449CB6FF4948A12506AA04ABB2F88B5CEA
+C7BB5D58EBF66B0E10223AF89A5BD4AAF6E03CC9AF1BFED6BC6454177539EAED
+A81541823C56A0F89D4DF12EBA19F850FB9C6C9FAA2EEABAC76766C337B1F4CB
+4DB0D2995E45364EF1F095C8E1DEFD4F4562A56963AB0E8CB68AFBDCAA036BA1
+D0D0C6AF4D354587CC67CDD651452C88AF91AB4C93222240EBC00ED109734B1F
+EF50D781E980D493DAB535C4CC41E22E7AEB1884AC574DD718E3F1E29854D1F5
+0332B520BF9DF0F3C5D3868283B022AC29BEA0E0EDA0FCD1B22FA3CC81FE2143
+F34757114B005FBD6CC3547D6168E184EEE80ADEA9D92499D8F0128ADAC41650
+01CF8712003259376B0E0A80F40D71B764D68000116621F683001DAD4E8AF0D7
+126EC0467FF5BF99D10221B0A48CCB9121B92028FA1F56DE263E9B6AC739F375
+C9902399B03B7ED163AF417FE9881903B692A992EAE0567077650E41BC998E39
+BE6A537F9D54F22B5C5D09BAD5EDD5D6E2CACC14081B9863C39609F86893D46E
+2E61AAEFB17CC641AC9AD5378FCA694469A277A2F77AE6CC95C4A1972D30A284
+09126941B0C2F6E2CECC8170ADEEDB8ED44165FD93FAA9FA93F8E47937801875
+3CC2CBA88F2A9665A4FE36B6612089607969B361427F84ED7BA9A4CB36BC39FA
+6F8893BD05AEE1B8EDC6F43B14133F971C76DC4AD2703858BA93933CB16A40D1
+4474E9C27E7ACA5A397B99C1F6A7A7102EDACB925E19DBD5E1419ED524DCB521
+C0C6DCFCDCAD204316534BA4D261643846A9534995A105B2AA41C7CD3AC0E48E
+D09C1D60559EFA2765AE17C31D931D2AF9F42F50A7EDCAA3BAE4576D9E73AFAA
+94F4E4BC099DD0F96A453739631D588A664630F3DFD97191D7526058981702A7
+96EA623845A0D78D579DCC2E25D75EAB315E90F8D059A295438CECBDEC1D02DD
+5E9BF4BBB6ADF0F67FE8AFAADF1BE4E9735DA80AA95208AAA9E3FA0149832113
+FC9DD6AF2DFA32521F9D7AA512B807A84285D2F64C73A258EE448BBB24E1B4C0
+44DF81819F0782D39478B2889A05667D74FAA51AA573233EE35B37C9D52A7EBB
+5F5EE8FB32FA5D30B1670C0CF6578B0864C5D79CEA23AB09A10A4352FEA7E0E0
+BEF8B04771C6810E6096232CCE02D362F7BA4D2CEB4331FB553D2B05B81A8985
+F869157A1EF8AF166E2D7602CE25F8DF3C1553FEEFA4DB3C2FCF65CE1E692B21
+F050A7724298AE4A0F4E6C68F2267DB16AFB087A9CD846048420037D81E5E450
+BD61A4EF1012E732C356775731460D087941DD94C50CF77D44E4B8BAD69116B4
+E8CBED2FB8DD17B48451519699110CCC8609FFF37D2FDACAD0AEFE0087F71BD8
+7DA6D5BE07393105C476B0D67D3DF16BB197230A039E092BC4B457C00F665657
+F164800B62102D4CAEF05487EAD4F2419F9E6F1BFE13AFB940F5253E1C7FA65B
+C984A3234BB5E4EC798E9F4639557E56DB065445971D262DE39A398B0A14F11B
+EBEFD27047D00B0819CA126FE502E8DE7AA347D22961ABE9F4F4DA256E478D80
+2A4F3C9EA5AA6CB15FA4C8231C0522AF1D8557CCBD0EAB310FFF56B91CC03EED
+B7645170A6A61146FF97EE428E43746F2DBBBF628A4B867DBAA1A6C2566425A0
+9C7BC0DDBC67476060B1087412FD1B107B64BBA5BE8FAD7ED45D9E7FFCFF7599
+C1A16A36C09E6DD5C305BB9BD141ED4B9B53621AACAF23B91E3D65D221A4C116
+B1C528237CE867467348EB38BAD48F52A56D0E2FB690C941EF723B4AA990DC9D
+1CCEDE9177FF1A87905F0DC6848F8DA0560DAECFF8B923480B7B51B0CDC4E7D3
+AE8140D6C392D56869B041134E4E65237F34299A50C616E13CDB677FDAB175C3
+554502E5F0872998D96D882A2C709517FA574DC89F9996AA719E87D44C9E77EB
+EFC6206D37269FC485646C8F120F4EE53A8975DD4DFCD79DFCCF151B6EE409AA
+70B8F0D00939DE36354AA3816839F7ECF26FBFB06CD5561989D59E5366B0E9CF
+DE5A52EF84931C73750378E00ADF67324BC665464D10866502F8E8B8BE06BBFB
+C7F43B92B1C58D265C8CC58C2483D75D1AB8F2D5E54D249578D938290B6C37F6
+095774AEC12CDA3F68A6FEF2BD9161F24B6477AC655CD0829121FCC5D4A45B13
+CAF1D3D8C4000E2EEF6413A7E4B3EF33EACA93B79EFAFC90742B7AE9B883A5CD
+26CE84D49486797BDDB668B67CA1840CD292CE0DFBFE58F117C643E3795C2E7D
+0C7FE405674E9FBD9AA598791366E6D2F26E0B04E6EED43F29BD85AA1BD7A86E
+439C869EBC4B5487812055C509EAE76E4F8E2BDE939F4C4BF2FBF76B9C20DD6C
+60F50BDFF1C764A86E92B257BD9B7B6D16F2DA68180C693DCF7D01FEA24C1C44
+16638C3BB457095613EB5BD4A985EC0FE6CF195C643EC68E896DB14715566ADF
+8C455A2694B456BF6AAD8954E17B4C01690C23D3B99DBC919D380A7FECFCD6B7
+C49F4722860FEBECE772337F827C55379460A9AF964D0E4E142793138BF9229F
+C6BA476BDA09EF282DC49E0D71CFDCF79851587E9F53644BEA14352F63F2865A
+E36B340E283FD32AB57CDB5794919BF77E24C7D47C0E57209E133F5A24012A42
+4A3ABD753C6BD9C7AAF0BC6F320405FB7ED42DB4FCFD5C58AD9B496E57E0AFB5
+3629C2E10127E8CA7A69F88D051FDE351DA1EBCC31C4BDC0A9142D4ACCF2A076
+892C15114CE78CF056032E4356CEFDEC7E6ECDCC3BBEA571AB420B3796C5BF53
+D9BAE855E84CE1347449571FB3D6D7EC54B9E4154FFAEFA64E253351539912EF
+884164BB0C6DDF8685EFF029664B70A3EB4E4144DB75CEA5E75AC212660AC714
+1CE2A04F5168850F7115D79F6D73EDC28188999DA4B0E65EFC1C6D19309815A6
+3D045497C9E43C287E62C65C52694EAA71F6CAF8EED4FD41B72D2099A2F60043
+FD0A0E6FA7B9EEFCDF0E6752EEC11ED2304A20CF1B4D0E2FE1E7DA05B7D764BD
+B2F37E4349C48C0DA8EEC59E6EF9C9736564F20B20FD2F92DD0DE3F1F41655D8
+48369A1343FFCA0B8BC369D04CF4E23E9C7B060641383FDDE437615A0CE265D2
+D8F65C28DBDC59C7B33D04EA6CC162F9AA2123CD2165F7E1CA61E2D2B4EDC8DE
+9DDAB9F6C1DF1B0F9F32EF6DE095029A2D85A10F7A24CAAEC1C30D8A03876588
+D352DB2BEB17CDA4ACE52AC661AC15C3B7DAB6980120740B08CB36E4E62B384F
+CD974837E17A4DA8F68F1E128E1148ABA357946D7E21ADD61CFBBF54A61D73BD
+F5758C5378654140BFDD8192280ED0B8259F43D44256493A3CB151D2EBCC1C58
+A3F95AB68DB5E154DBB506DB9C188FC86FEC199643816E61943B20934CF4FAB6
+8BC59F95206AFB48B47C767E54044DF5FEFBE9736544F8FD6DDAB7CE3E7D40CC
+14FE7CD3607A2FAC03DE53080559CEA14409114E31062647F329EFA784850569
+C0D885875A81DE164E85E9A282ACB366EA1AF1815B004707403B1661E4CFD848
+7CE16BB5DEDB5A8E03E73673DA73B405B6C3ED309AF0D2FEF138E7F0BE98D2B9
+69D0D59F560DB901B3F8F45E65CAFC8B3EEE3FCCB5EBB945599F07BCD64229B8
+9E1F02F9AE7ED5E901C6C507192A7DCEA85797CD88BF31F67711A351E8C65C0C
+0E32853BC18D0C902CEE486F0D2021A0515AE83ABB99BBCA1BA6365368414539
+D49F8DAB6FD725AF5FCFA627554A95EEE3E80D9DA51B1FDDC172AA7939826EAB
+FFD47A20647288A5EB5D63723C1A4C7EAEDB6EF0B28B484F170BF92C3C03D88A
+65B1AA09255B77E2A6AA702AE05A8307FF2F830F9C299F3F427F3F4A57843C5A
+746A4F3B3925CFFB649B864C699B041D1463D0EA0FBECB2F638374280135600E
+99362BC837016725EF054E62FBD3ACDCB41F4A606CC0F1D237C57B00E66A7061
+9291FC43DA93FB2C303654534C4D7545CD9E0F790340D9B32D6C6B1E5044A0DF
+72972578CED42C9A25FCF52AF3805F0A704173E50115199C186F37E02781B2CF
+34E9A65C22C87E13B670C38EF3F1949447E1886236A9E1D95AD898B2379E8262
+D19E7F4D677DF66817C85B124A9FC3CAD20FE73F2E3617A226A064290435D15C
+1C28FC8A45F8614C5F31C4E4C4AED13FA6863F6CBD9D42AA70D5B8B077F8F57A
+B240AFC5A64E005FD51CD19B6EB83B03B2D0945368E999F9313FDB35A364
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMTT9
+%!PS-AdobeFont-1.0: CMTT9 003.002
+%%Title: CMTT9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
+/UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT9 def
+/FontBBox {-6 -233 542 698 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT9.) readonly def
+/FullName (CMTT9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 80 /P put
+dup 83 /S put
+dup 92 /backslash put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 125 /braceright put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E6BABDA4215500A0
+42D1A3D0D02C0C98BB1D6ED0B7791274C38B038FC7921FF1FB8FAE7258C09259
+4B8E1BD9EDCEDE9ADAD9BD9598EEA9691589649A9A21539161E374075BEE3457
+689F308A4A7AC9F2FE4B301A6C36B0442FB92E3B002623493DC087800B5A0521
+0DB96A23175AC584DE166F59142779F26FEE9783E28DE49FC3A8D6583EE63FBA
+610DA773CA18ACE6F64A4867A1A7817120ABF9DE4D17782866E6CB6B65A9F6D8
+3667C8D3E61E5356E35343FDD4C6436DF73934470916CB5F0ECEA6BFF092E735
+C7C355B56189D1DD5715EC97E50145FFC17BB1497315A9585D713A7A6DFC7933
+995468EFD0F59E3C15865B87925A3F2930E20D5A35970E2C44F1629FA16E00EE
+EE21EFC50D49F5BC02300D0A7BB85E649CB4E2E828C8B1C5469463013E71D723
+2CB11BCBAC191AC751A2AF7FC228395CE9472DC1809052012AEC2CD66695DAF0
+4CA04234F0187F4116C93F59A7F1F8123DE87F111853B785A20CA8B49B3B0CEC
+B11AD345E1A11578D2EFEB0536D125237086CC8CD9F34A5137AC5DDFD8746014
+D74AAE8239B81ACF65F379CF2153B06A238A2D767F294CAE0D79228F0B7D45CE
+510AC9657A1776202FEF42F96D476E7DF407786AEA12DEA0013D3B4C5D0640F5
+BC5BB72C34066270399CE595827175B23B25072723BD24E07F6BCD9EF0175DEF
+93714BAA53960F81103CFB731CED4A267B53727BCA3C97B0BA5004055D4EF0EC
+F725658E53AC86E4061B489AD4154915C3981B3B703E1E2A8D390CCECCA99385
+45EBE35441B062D7D12DAB2B31569387187D74A4043FD71F1C6D352EAE0F6757
+4345FBFB6DB15CAE47CAC4BAE47AECAE5FF5EC19057DCEFA1B23F47364ABDF47
+088A7C6A2AE26B10459B6D41CB69182FD1472F326CE3A15B59255D1DE3B616D8
+9D1F12561038839781E657C896B8C58A32DF5AEA23732A0966D96C68C988ED7A
+09B7E2C8F9F3D0D56879764781566299A4EDD3588BDF70E3D924D25074F30988
+E35BDD827AE4D0B4A06F55A9976BF0DB3C0B1D09CD08E8CB168B50617691638C
+0EC1A791C228177D4FFB021EC3DF5082CA3487AD2EFC8DE9466A690ADDB4C52A
+FE2A6DB4CC275CD33D9136E735279FBB2008D59E667905EBB04326EC33C98B2C
+94744B7F540D86E90DED64572ECF1EAD3A58EC101642B245A9C7232DC8FB8741
+03F97883BB32FB955C22F878FA0FD114451A3B3859B0B5537AFAB73AEC7DB2BF
+409E1FB41D473714F6BEA73CB085139879FA31710E01915C2938C37BAD6D7D71
+45B897E00857D3931A489EAC7B42BCE4E65F73F67FE027CE482DC47598ABCB95
+39E98DA8ECA3E23F0799D5963ABA6E2984DEACBE7B46B40ADC6213E0F4D08971
+58F68C946C748E4B4217CBA2391BE2086C9758F4E32C9B6413E48D84D33A6E85
+84747029C0A9C9B92841D217A902BA8EB333999D62FDA9F82BFC8ED11F67988A
+0CAE42182E414A9766AFFF4B046A09D476F8E3F15A8C7829BEE982D8350BDF5F
+F215F2BBBF68D4B567BAB798B9604C79306C475926E9FEC0F07A99F43473C6FD
+B15AC29C3D07FEBAD1BAFF75AAF2FBE94F104F1DBF838044FAD94B661B06AECD
+D9AEBD02B60CA4546DD6B5B5C1A3833ED07845671CEFCA8955CE0DE5DB8FC93B
+3306683CBFB8E5B79A863DE78D455DE9D592043C2686F88A43140F8B9F3B553B
+7047420E93E753829F8D47AC7621CFE3626F271E31F0019CC02D0B57F67BB47D
+8CFB63E902EA3231C00EC66EEC0D30FE8394558BD3535C888C4CEFC6EB72E737
+712ADC6300162D5D79BEE0CA1F6E4127A0BC90656C01692F6D82C85550AFC97E
+C2693E379160FDB9636FA41AE9C75B7F6643B05971C6D67CE30971D590FC07B3
+E0B36B4D1C7F25110B5DA2130D574FA292B47322975A2BADBDB39AAE69BDDBDA
+A880F9AAB580117708C79204DFFDC08BF4A48919B5C22228845CE8C3109E93AC
+2479E523B8A1C12A6E541118F121DC6B4EAED83491A03192D5C3A2A45D1A2467
+757E7B377C635CF5CAE11A7CB49D49F3A1BB2286090B5F0E4F89869D1771D50C
+54B5C5E091E3048A2C194F0ED00DD64FB95BAC6FA9D61ECD093ED416DA3A4981
+DB07CFF17C4F55C62DF628EBFF06FAC3F3D3F91C30EBB34052BE1A08F5EDA4B9
+08977197950A282B84E21D43C64BE3AE4BCE22C70E7D392DE09D89B7F23351AD
+6AD37225C12BA79EC9951F5DA1E505DB26200190ADE0E549305B7530CB86EFD2
+A896F13A97E51754F70B609CB4511CEFC38BA579C071E9510A49982389980DC5
+336D6C4A2DB100DFEC4055C7AA9C55880F94FBEA9EB280BEF66CB8E1E38A359D
+E5AFB12B540CD599085ADDA7FC2C72E7C873015773FFEECA2C596B75BC39A3EB
+3C43FA2E53C0D7993042F3D652BCC483E48B7F6C94C3FF6D38E276086A6AE67A
+E5A571B9C72E0D7824E0BC2ADF51A393B9E334649F786EC1923C854382B89627
+1B9E701AE5A6C42E672B2C6A33C8BBCA8F69B9061E787D6B92183F20CF4C3903
+FF5417427B84798C82BE28D2C81624E3920CA61EC9EADB364B5A6E50E49A1A72
+A9A090A1FCD84814B8B2708AD787D2B5015DA1305874F58C5EB62F843685FCB6
+465FCA80176CAB2B2FE65E0A270BCE1E3DB97564BEDFAE5CA44395A8DF4505C0
+3E103CC3B914359B2870DA6CD30382EAE8949131CFE31E9E75C3E47A3834BB32
+CF183D4A8B9001710D0A11390C9DAD116196568591D38C2AF4ADD852F31494EF
+573462759A35415900360882739789D6B89ACEFA251C5ED90ED704DD7C3C80CA
+9F6CDED69537D201D520C99E69EEAD5D3C0EB84C166660B3C190166D93EDFE6D
+15BCB6DC5CDCA825E48D33845CC2FB15291AAB823F25CF8BB0A1EAED8BEC524D
+D9CA016027141FAC9D35B64FB9C224552F29EF6B32497254E319090E698FD8A5
+15491CDFE1B988C79A0E3B9D01E12FF084E9FA86CCAE02A3EE6F2917B61A2CC1
+64B8CAF309D1AB48A34227A7729DFF99CB6EC282E3FAEDD2673779AA7E4C1789
+D93FDC37FE95F087C5F88F53D30A2DA9C913BF205FC6BDD060A40184F4AAEB3C
+D080D63B89CA3DEFF310D09EF0A83F3914BD5B7932980ECE139EF0313C20B4C8
+576EE0FE3F28FAF4D3CE7CD0890BC824A85B8EF4636BDF1EF1BB519F93D36540
+ED09FAF93FD71992CA2CE2E83F5355162ECEB32AD218092F45D5A61A44E67135
+EF0453589CECDC6962D0E8DA7E7567603BAF50B2C8F1CA65EA5320984E7D69AC
+9A7D3D7F92565D79E8C9DD2D92CCA7DE9CD058545E9F98AA47904D70E1897099
+3C4C852B3BA131DDD348433C336BDF5FBDFB62120DDEAEB3255E3207B0C84A0A
+1ECF9EC869DB9BFA3693B03FCB27C5A5D3CDD62630DEDE91B4DD5B9784BF0BDD
+FC6EEC3FA7ACA9E15FAE47CDD9B7FCD2BF0EFA10716F08C0AF25FF67CB6F9598
+C607D2FCA452417D2C69DC808A9441A66492394C3450BD30632AE739EAD654BA
+4343459CA36B6D5B2C12C39495952F2EF93D82C73E33236785A79609E260C4E0
+CF3A3C950DE71DDC3939D42DB1CB1CA917CEAD56979A70F8F3B207C805319FA7
+3C000AE2B21D711A6D78C7BFB901334DC06F59EAB6D94B507734C27971F8458D
+D00193645AB92FB8FE163D5C51AE4F40BDB4F2C51691E76EE0636F071F37AAA9
+BA78BD12459CA499210EB0CE2F8BD317387797C33F5933AE7A6264DA06B4A6A6
+1188326147A16B205D1F965872DED7D8EDB3294FAD2FCDF0D423329E9CCF879D
+4E0B966D509F45527F7609DD09694D286F6FF7535EF8971B7DFBAF608A19D442
+C133207EB1152ABBD11C455D0977F66A9B73E51381D1CA4B66E87C0C7175A63D
+80C699A052F00C41DAEF42E7A40E07B1B14107AB0787E24E17C1462960E3C54C
+AE73BE4924464FB177EC62F116B2822842541543EFF7ABDDEE197D6BD8F8D4E6
+59175D8C5957550B70BE775AD52FFF6E7C00DA7CDC16E1DF7446BB5D8FD82647
+3E9F87D5EA365C82A2D991321ECB14A9E3AEADC5A56665DF7072D6DAE402BCB6
+14D92B17F9E063E4E9D8D239C91F5C7C0BCD2FBD936C9D4A0B57659420343B59
+B395BBD1AB5B6003F653699D57E7581F9813CC98D4F072FB78899D6DECC42D34
+F2787EDEA64058B46C4BFAA2BB96E9BE5CACE8D91E4C080ADFC0FA0D4A29C6B8
+54FEA9E11DBCF53D9CA40A21AE5076451EDAB3593E56B6D453DC8EAB8C78B588
+34D4C4F36861B5649BC1E9F3091E704BDA7613ED45C911DFECA74EEA05165191
+825F95A947CAF382FBAF01F3B8B041ACCDF39718D7DC5BA6CA12BB20EEE96439
+BF2E2628AA3BD2C91998E6247A690FCB0CC95F286F427345CC4F1115BA3A6E54
+4743355F2CC991CBDFF5725902C1F5A6DEFDC8638A26EA456C33C27773D6214F
+66536CD2E44FD253531732D5A8C44B336B1BB47B0477350EB8CF74889B93402E
+2356A9CAAFCA562315D8E0B3F42F08932CB87BA2499A875AFA08D11DA73B38AF
+F46D03B7F639A8D7BF88CF07FFF4E91716DCCE6E2CCAB60A64D5E40EFD8B336A
+1BFCC4CB04F49DE1FBDE7AA5B2092A6EDBD913D161A3271AB6411622D0E14416
+37F81E0102F5B0F2F9A2B27819E4BACD7C50E29D6291AE5B0973C657761545A6
+741729620EF2BF1046B3913399C10982EE5F4142CF461EA31042E432CC79A1A1
+39C607D22E45A6DEC008CB4BF6007CDE9DD5802B49A62C8E02A6D448B64177CC
+887AD71D171B99E7ABE2085B37D90B3BD8513995D9A57F53184DA474F6DB5E49
+B73E04CC214EA5398DF7D7541F94E623E8687B511640457A48A68E9D9D6584CD
+15B57CC044D8091C771D175F2EEDD411099BC8F7B4317DC503BB5E405AEEB526
+5E6E1B1F2705275D274E012A98F66075CEB90AFC648B964DDC0E9C4AE7B24CE1
+80B051022E5781A533A21DCFB97893847D685137EAD85BA708A7E118C72FA839
+A9E460B5D17365A0AF1F53A98319FB64A5819B087F554BC056C4BE44113A5404
+BEF759F890C1CA5E7AE156F4F8106FDB4F8DFCCC640976983EADB30976344048
+2A86D7B2AF4A01CA736B98D52ACE392AD4BECE7E61C710B08B66F01857CA460B
+B8376E257113E10F6DEDF14CE2A4E6A99ECBCD302C36CADB713D849EAE9EB598
+F29DC98531D793B79F83091F9B136809E006F34E423D528CC4309AFFB3EEB47B
+9A9DE4D5B25CE953345C326BCBE2B4912641780637783084D3D12693F8135483
+CBB0AC4EE0B5610D7CEB7DF205830BDB9BB404DC1B28FB0824CC187B26C19A91
+DA0025EC739BF3993700101D042DED86D67F5FB87912CFC51AA7DF53F2162D62
+6314A2CE13810D0B8D81F45771391A236422CFA0F35F7A0CDF14ACB2724AA57B
+7C2C28D53029B1146558610E0CFBBF72A85AB9BA308F846228F299F13F68E8F7
+D963B2EE9EF7D4C21690632B640BDDAD0556EFA4EFBF035F13377ABB5CBC280B
+9E0C12AACB153C93351E5BA95A7D149010E204950A59C7FC6581D9703468C1E9
+EFAE37E7E6ACB892B3F8D1248D9A4A72F642FECC5E0B25C15EEB921EDDE84D12
+0E524FE6133C4921FF4921242392C12FBE69744D53739F7E849C1B96C4020AB2
+1FF10DEA608F111749E2FBD8DBCB17F353DCB3075B4F4B8186963EFE95A76A10
+85AA5BB6DB4095291974221829A8E436680F4860E01C3843BE5BB3101D0869C0
+EFCE08D187BC04F58C7A450A59093680A0F09E8E3F12DF5223E7EAFEFA01978F
+D8354753A68022CC92C71F2CA732DADAA8A466D4AAE5999B0DC077715671F518
+E6277741F44AE798EE50DF44CCF71FCF8BC71F76374005FEBC4883C6EDA854B0
+88C0C2B476709AA809ECE41AE786DB1A32B3FBBCC14921673578D3514C8CA842
+E1FF90BE33F7B93ADF6BFB8B1AFBBD080783BEF056A6BFAEF676F7BF9F2DFCC8
+01D255A9F0391951210D60D4D4DCA93AA858B38C0D7B8FD740D5FC6F277C2A68
+54CC2DE1F40B6347201FCA2A0A91822708D820CE645C3E4E5A09FE25721AB33A
+97871ED448F38FC5A349D81F402B34461D840D5768BFC6849439AB6115104F78
+B87115B1DAE12542EA898F86ACE247709817850B067F537E6137196101D46DD2
+D842EA03EF4501E34074E8458E638ACC4EB349A7430AB035BEF2DD4CE00554F9
+18F9FE32A55AC1E7E50D64AAFDA278D77A7149C59DC5B1E3064A4B281A54C9CE
+A5EA94ABEAE4C6D5674C208ABC72563976487136AF2E21F835BEFD232D7F0D13
+1D19932367F51D5379934DA7F1635AC51EE5CEBFA63D4D32F018DEF13624EE62
+31DAE68A08DBE3B4FDAAFC75291C8C6CC7A657E3C7453C7D1461A36E88E633D5
+408253B673AD87A9FB2D0F56DF1305916D14D5DD62051E27BCE09CEE9A1F14AF
+1D7164BA5FB6E6EC8D38750F7E28BE330909F303ECDEE692E347DE13C8C2F82E
+29C8BE6EFD76546F362A12A1C2DC12389EA95ACB4DCBE95620F0C193EAD91B33
+BAAC5801AE827B9AB3FCE5D11D1D7854F8FA8A31670119CC0CA98628F801838B
+AAC7EF90AC5466BE69CE3E3CD9951A5EB9AC08014285422F6DA6F6E221BB30F8
+0042A11F2E4B765BB0D142AD52F4D85785EA71B2E1CE20728B9E9306CE93268D
+99B822A5AB5232EC7E26EE1160850AD3905864A01357F22722B6A54D4EBE58CE
+480EAD9FBF068EE965AC4B5FD2FA8CCB91ECFC6E90B9C49268CA0B0FDAD23ADC
+D5A74B41149BB08454054C451AD0DA4CCF8B60F2EBD061AA03A011D548B6B481
+FAB00AF9225BB5463F27FD67333FB51F8664536267E95CFAA0BE3BC1B8F889CB
+587A3A4FA2B45864F07E11372C9507A625C0030EF7030A0B4D931BCC48F6DD51
+A4D1F63FDC4B59C1CB18E6242E9F4B4B8AD9755B870FE60D640181FB7EB8120C
+C56F51DC8C47FCC6318C2145EDCBEFA7BC4253315BA67FD2B3D4AF6A9F3F229C
+AB75B592EADE15B1FB5FDBA1C0F786BD21A51506B7A2E42C2D086BA6F84D1B3D
+AC7531545F0B01346831FF36A52CAC1E390F99AEDC265B44B0FC9C581BBA6BE4
+48B723811EBCAEA5FEFAEA7E5B987F2C7B3E9A65D2D14A7B74F099401C57E367
+385352D0776D2A908F7A5A2E4D4160946C5591397877025C8C387CA413EFED56
+8B142E8341E349DB4DBA422A4FEE56A573972A0C66590175158E48850A9F7F38
+4B95726787B8F969FDBC97491CC81CABC976CD00A27D1DFCA7CF467A956C1C6C
+839817AEF8794B6151FAE9261119DD5DB787DC9D3B420FD325ED6599FACADE0C
+320D54C2E0D296537E22C1783670A9D9BECAEC63853EC2F05A990260DC189D63
+7CCC0BDDF2CF7585071ABAC14630666737041194D0777EA4292AE60BD7F7100E
+DB568C90F0D899EA006CA423CFFD6EC70A5D3D8AC43C747DBAD3B02219E47D8D
+DE030631F4678C357A58ECC52782B31B50CFD44EC33F41585E51B27E3997D33F
+461BEF897220AEC80007F13C5A1EE3A0430CA899047DF944831F8B010A7DE74A
+BFD26001472DC00CDC9F17CC435F61ADAD4E9AE062ED477FC621FDDF9242C449
+1BB3F77FDD1519A251B663A693D84B42BF0962F537757F38CE5C5D56B98AB10A
+3B70C8AE8D52DCAFCEC22E7B09D3C4EFDA1841C74CA975E4F8294F7BDC796500
+0ABE197ED3737A65F7BAE601C91DB3983EAE11DA3EA18ABBBA3650DC361C2E77
+EF9F97618B0C337A906FF39926D2B0B7883ABBA650816C4C6B34EEA836994EEA
+AFEDDE56E0099D0E09EB88EB093544B9BF4871200746A0409C475FC4232A38D8
+F3105B0FF44E4F132378DD12D9E796412FD0F9478322215E9F59E69396C35AC4
+097C4995B60BF4D8B3AFD0A002B3A6E4FA114131410D5658999B86DFDD3005F3
+AED1FA8F077AD1F27EA249221585703F20FB70E37A26C6C3F2E101693C94612B
+65BF89F37AA3C10A40EE8E49915F1A1B95D2193D8003DECEF9D76FDAA33B1AA9
+CEDCB21C2A3B05747FB3ABDBD904B66EEC60CED2867442F5FE445587EB8C6D14
+87A6B1B4871A8371A7ECA6A159EAB295B167CC35ADEB8512FD0C237421773BE8
+A081FB687F9C5D676F2944DE6E6B639C37E8E49BD4A6F0903E0C31EAFC4B58E6
+CD01B59C73A14DBFB287B7017F6AE0F6F4F85551429A85CD87315FB812FDA28C
+BAC26B5E7CCC3A650565F8239A2A5EFA3D9FF922465298B05A57E2F26C9730BE
+F421A0AE453EC19BB507F0979674BA75B9B20D4C0ED4CC348A59DEAA0FE68374
+F5A64B15334595D97D9B2559361341E6AFBEF03BEBA20B5E04E084E24A0B0095
+E58496D3907245656B4F090FE36C8E89E41008C6FB45DC04A3BB886BB27AD2EB
+780A150C59F5C203BCFCE062C4E6A20CD2BAC23CA90A1B3FB411C5F2FF309460
+9BDAAF54A25B3507A8C68CF18285626FA29B9B233808CBDB0260801639B3024B
+C86E251C3E893C61BB69E243B6232CB6241F49059A105D01742077EE2C23B59E
+14F2A2387B0D0E6F6B0555A29E8CE30F740E15FAB13F1D117F238446B7CB7422
+90D9C387CD413D9C09F730A00AC3C74A9A77C21F692212291B2DA9CF6236C631
+2C24AFE138276EF001BA57BAD9D28CA2CA65DC6F2ADF4E4BFF94E4A732D7326F
+943D1C007864B0BFF2AEB00493D6936781CD496E1816D3D9C1E42BE7222460EA
+C35B46398A378F84579C669B28C67FD7B52F6B7E00DBD6B35967621BC99CEB6A
+5D75B5B54FD105DA0770CDB81EF86E1E654B2C995927AAFA39C60EE153A0030C
+96EA4FE2FBE1A3420325BB567C27546506B9D56C7B4C3D6C1836DD1CDE64BBC2
+458411ECE2D7B02A99CA0713CF364746BF950F01299510DB1AB38CFC49C373B1
+06FA8C51C0317C0A0BCF0814CB75639CD17270AC4B871CAE4DBBD0A4E7370AAD
+D69E8CEE6209FAD45B8625DA8023347FE1359301D84D4AD28566C2DDB41F4167
+58A5215CD4D151B6435D026EB53E4210E4C16028BB596193F65A7447A55C56A0
+9882E8903FE1DEC71586ABFA1388D271BB3D5984954B1CE1A95B87DDB4D66BB1
+5103BAF429E523AB1929CE28AE209012EB82DCED35E51E269125A4C83BF19633
+DB906D7DBF08B59ABB63876C0EF34D456BC6FAA16AEA79BDBA9D8321FAD6588A
+0C9C494449C69BF5D205FE6AB4F3BE1D923252C0B72DE0503DBD8A150CB07471
+7FED767DEBD55D090472A1CDAD32FF55D6C31F4218A1237B9B1BAA323150516D
+C8CDF096E8F75D3ADF5619C5E550C2B8ED447A81BB8F3D087505714A694E8352
+41DBB7596F92EAB4A62F2D31E7BC61369C72D0D48D12BD0A5F6DCCC37D2DDE15
+0D228552815BE5352D817A793B8CF86B68A32E1A26AF0EC2CB17FC3DB7DF9300
+B1C3D8FBE2D47855DCE9BC062267888011410837A6D9A879E0B1674FC3E7E966
+8DF2743D6EB53F992CC971264D3D0FCB8F58E3D3FF8B82534E57DF995F877DD1
+27081388ED2E7C4B0CAADF23853E165D103B62FC76C93A1A8249D7EE4ADC2F27
+CF837B5FC8715DB6DC1441B26D6FD43B325D2EBF1525EBBE0545F3046F461148
+390027772873236593CBC9423D966DED84D9F41BBF0AB093C935FCEABDB37AF7
+6C705260E041089D76A973B9AAB7522C0DF49D2A423CFDA0293726AA81DBEF3C
+A62B69F7BB7B5CD60B6CE2376860E80309C47E85EE1CE8FBF7DDD368BA8484C5
+5399FD91F32F172E1896C2CB7D262EB95606C4FC5A3598555386EB1EB9F97717
+B20F9F318D5EE28C380773D08E13B70E092AD78AF99F4E4AFB908D4E5636068A
+FF154ED51141B789F15A6EFF37259307A0BA6A4204CE22FDC3168DD881892E86
+51621D2E1A0350C6FC8A4D25C1A5CE995E6FEE86C169C04FCAB9E95B7854AFF3
+064410BBC83944646EE3BEC4EBD856EBB0B112F4A27FC68525D61B6D1FA4DCE9
+B107AE2F7D8E9DCE76C2848012E8905F0C57E7D537102A9309D9666E6670C82C
+3BB2952138208AF2167C41029FE7B01F336B0C8C73F247EFC2C3BB1CAAB7BF7D
+7319A6DDD968734F961AD63611174DA1A4B5652EF711AFD3BAFBFD6D3FA4F0D7
+7FF942F2ABA3364AADC9DDBDF90D6B62E7BA46796AD27A877B27B746DB6187B5
+A30C193C86CC8BBD39144CE0403F68562AAAFE1CE744896F53CE7CCECDE98919
+383CB4D7109C7B440F752CCF6E39B9F36B063E0866B8678A3306DB51C45FBAD2
+5FF9E8F0088757E1FA5FD3F73A564723EE2BEC072DCAC6737F2A7CE20A82BE56
+C3157C1C919F684033B039B62F4E3CAE871507193FA09733E4FF9712B594A250
+4E9B3D6D818E9BD9792101A558B382F2A758663B194CB1FD195920DE65AC30E9
+0C9E8E795810158799BCAFA7156F67E572FB61416E701B65DBBDFD1E1DDD37B9
+B6C402031AC139CFDD6AFFAF20E11F3D4B627AAB22427A0AF342CB0A2C6A5247
+4CD3D89A791D7E7E8F963FA81B380FD3D42366FB7FB5E86C4C06E82E0EC67976
+264F01482D97F96E0A670E34D9E29C5BBD155400253822DAA8165842A4DDD485
+08381E9B46A93E5E3149EB0A367F95EB80CD581625DA7E05F045EF9F50BABC7E
+63FE0110F909E09D8C34088456697D515322C184387A1DB28042746D0FD4332F
+2D603A4C0552FC57A443BDB841ADF2E872A68DB8949A422D66FF8360ADA0F453
+05FEB90DECF221289C0CC53C3C1013FFA80C965D04FCA34A45E1D407E64CDED7
+8CFE4ADB2607AD55DA734102F2799A884B32AE38F50B32D3EEC7C3415F9593C1
+567F24393C583475BAD9B02447017E0B1A36E13512C6169BA6C26A3B56F0BFB3
+F09F7BDFBAA8AD7FE23AE93DB7B857F35FF7D608271877753E516A957B98D3DF
+4D2323BECD43CFB3DF74592A0AE0DFBDE6B7C92C0CC19F2C4360FD5C215B9819
+2F967CAFA026508A35736313D4A398ECD71B5664ED555C8296691DDA30D2665B
+1CAF1BFFE3680E2992BB53FA8D11240BC75ADF67378904171DECB7C4F67B31C1
+EDADB89CC3A9CFF17A930FB5005751AF755ECA35B536F1FF7A599FB540818864
+67BADECAD527F39595D572FF48CB412A01539B3CB4FDB2A7062555BE38399B45
+C63C68E98E3BBC1B96599453401CC0FA573907D733C2349CE8E0A592ED64D6F6
+0B4596BE6375F393E510A0485E266F068120685F333748124AA94FC7AF971CF6
+DBC8BAE88383DF5C0CADB37A23F55CFEDB6E4DCA63AA8EE4DF5D9942FA70478E
+0CED378EDC4AF1D99F5D6443B5AA4FF1C7A2A8D1E0DA6B13371917F527959DD8
+E55C3DBFCB56CC638E9205F60C7E4966B4FAEBDA5C096CEEC68ED5D21B2005F2
+D0315675F59188B3D3D4E385460B8778A372BA9A4ADC000D1AB7F66DBBDCB270
+B1E6C645404142E7B389C661319255DDA1EEDCA2F3703412A9C210EEFE6AE70F
+15146688EF8752500BA9D435446F4013226716FF99B484797CA99E10D7D4951A
+09C6B330FC3B038C45BD28FE0C14CD2174AEAD969BA90FCEB1BAFDE4EEF2CC3A
+590DE0BCDB074EB4588FB1E0946F2ED92E734181AD3DE6A25A5A9E2C231F8965
+387B079D588A760804FC494814BB14813081DE421F90A8E2B28F79104BB80207
+51C4BCE0621F6556677AD82611AADCB2F15481D39AF4A677AA4C9C186666277F
+E7DA6334EE9DE9294C7BAEF9D24FB174E8659C83ACE3B3E2BB23E5BE049344CE
+0F935756BFA3BB8D1BBFE683CC93C29EC79DA8D521DE8A07D72F2202FF2EA3C3
+29E44572F64BC94787D5EFC11164B31327EA9123577D2911A8F3C0BEB9E8F5F7
+A03B1A0B779B099D196DE635DF8BEB7F5D5CBD3DAD62BBEAEFA7A5DAA2C4414D
+D35B198F637C30C2CDF72D2A98BDBECB32EFE39BC1AD453BBB2CB6F0638AC6F5
+39C214FDF52A360CB22B1B878BA6CC055339E1626BA5FE0C4DB03192DA3F37EA
+0D0424B92943F69534F41FD893AECD9528002ADA9A0661BC0CB337BD706514A4
+616D7FB0499BAB15005A76C1B4275E7BA0CF0F32646CE29FBA956EB6F385D209
+68D4A8AFB2A742E0967425502C7AE3325A91F2A018481E9C830DA105C68B22D6
+2933B85EC1C7D207BA1072D4782F72BFA09A819DB55793F95FDB9E853A7EF64A
+3DCC73E3CFAA43AE3717C84928CE4CA2C2309B0F3B1476537523E02ECC40F22A
+B3CC8EC28D6955EE79139306FB63FD25673555ABB82CD12E961C875076B910CF
+2B445C9041770D3D3A6F281C882F1DDEB24AC7530365DA9CDEF73830517432E4
+78D94A902FB037F1F46E6F41E08DE1821DB0668BAD42DF77D0A842FF6BCEC22E
+D9CC1774E4D8FF94C98CDE1275F51D070069C83ED05A3D3A4F425766340421C0
+94D268E71D7554547A6C1759510745B5688D629CD279B3F72F1A955C94025A7C
+4FB1B3D4FC85F5AB323112914A3A984681774DB628DDA567525A750CFCF9B2C7
+2637653515FD292E395657F2C9228024E21D377AAA22ABCD3C7CD54D01EA234A
+AC03E9CCB7DF445A1CDF1B58A242CD10719D1CEEE5451CE54B770250DE4F71F5
+3468961B22D98CE07AED01B34FA20C7E773BEE99F58EE8E81444757B4BBD4BFD
+8E999268EF76CFDCFDAF353488A7674E7D3F60E9C6CDC982673EDF5D83BC4605
+00BCB0878A1F96735BEC43FBA855FFCBA0AEFE764479DCE76B728D532A8633EB
+C09F6A9774619C83528FEB2D35A1AA3C2B1A5B0FA6B79470597F364802785B3A
+F879CD9E8314E336130B95EBDEB635B3C81C3049E2F53660D8EBAFDCD17A6826
+0ED36568E13A430BC5528F59AF490E3CC75209529A2F260562E415E2A916236F
+0E1F25137AFC047CD372AFAB859B439FD2C73F1D915C9C1A7157961C7BBD715F
+1E1561B21100D75915B8B1019B6A377AEC71999005380B73141FED42B0C1D774
+AE5BBC1272C0D016940DF7992F9AB162D4020DE75BDB9847CCF79ADDCC405BCC
+14E9506876CBCFAD4AB4DFA350483B1EA39859ED1A609FA139FB0A6D7E179116
+7845011A7318B03ED687863CDCACA331175F9E8F1AE11715BCDA3EC6704C2368
+50A01A7C6B188FEA3133B38D2267DF579B98B978E5661C9416156AD1DE68B7D3
+0548860C7347D5C843A20D7578124C74956BEA4E540AC5C5BC7F47033786793B
+74F71C3BED14EAD54F98B5D94B7EFA1BECCD3BBDE7F8BC8398CE3FBCCB325195
+CACF2A0127CE6A287E59279E800D93C84E947CBE878D2004F39965A94BA82743
+E5F837C42AC5E11726DCBCFF57BE8323FF2083BE8397E5204864C1567B473866
+0A15D04CCC4B264DD76F315F447DF4255C1ED7A6642601D995243B7FE126E3B4
+95B545433F5B49FC1607C3B062F2381821F4C471780861B54382B1FE698280D9
+74A89C50C3503399E493D08556ECF4F42BE21A13801BA0C5EFD08F884BD3094D
+D234A4600F9597A490797EC90C6BA38E94C60A0D08A0289FEF1921A337CD8E19
+356735CF1D1A75EC143818F45E32E152B279D4462E344FB42AC8667A1CE73B3C
+C3C0EC3930FDD52A8F621E53D2340EB7C6EA61C1ED22BF810DA8F213182DC3A3
+D282F6C12B135805FB0524EF896756DC188310046D44BE91611D4786781164D7
+A2C726EC79CC5503664B6075500BDC8513DEAF279FCB1662CF6193D0EAA6FAE2
+4B8BAA4EEFEE695D2A5A9A8EA08171D1D7EA9C584A8E7A825FFBB3845A2FEE47
+EB1EC0B1B6132E563CC70442C7EA2B5514CCDC702C2DE317E3A75DBFE228D772
+625B53824AB8B8AC15062C15AEA1DE2D3CE76EDDC88EFBBC56EA1F18B18D1141
+1DF2A24C8D52A092051E40AF2EA89A9F9477C9A5F743279982C37D55AA98250F
+C387EAF63F04F9415D7F8C8E272D41CF0CCB1282D37DB734FBD8029261D62ED8
+B64635939693A3DF11E3EE25EDC6F3CF3307E4F5D526014C0CC9DC93BC6F802B
+A68795FDA2CC93FB406617EB771867F930313E08CA548C2C5743B9C639291FC7
+FFFA4B26911E98FB87A7CB8A90618E27476C47BFD9C6715F71652215B5D57DC8
+4F52203E33E4671892FD9B5467A9F5AB7AE4D61CA95558515DA385071AD455CE
+7EA5C25CCE910F16E0969C0912801BF482AD03429F809E3B0565A1B24B9D26D3
+89960458DA016B08A17A1BD225BFC34F7F91ECEF86945AD61F5811AAC1AB2269
+32900F2CA2E2A9EBC965B6958C03093C128C79D3DC5E2585DFF45C2D45EAFD22
+75EDE635E4FAB15BE469A2E768CE3C525A3066876E08C4A9960DD71437E6CF23
+A65CC4D13B2EDDB89B63094DA7568E881777D37DA258B2BE81631FB97476D13D
+58B3DF0445D200C14FCA89AD2FAE6825F04DFA006FD9BF37BE36276FCC5A538C
+B40B49E6DA35102A59E449451BBF5DD79D697D2FE82DD360AB92766DB708FA88
+635D3E1C75A11694730BD44830DBEE194A7EC9FC7986255172C10299C83E3E51
+FA215F8DBF44A2AB17B500145D84EA20B025FD2AD83A5BC00F00A3EEE460E075
+0037C8754A1E4B842386E632BFDC9F8A426796B83B373FE48EB8A155E379CB25
+F2E36DC891513FA8CDF32582017DA3FEE789929611878B830FDEC2BB2B70FE2B
+1586F89AA011BBCA8E9DF39C13AE1B1A2D1CF199914949E8EE7A547F75973177
+564EA5B099C094DAC0424C77E83B0E65AB403D4D4780C3CCC280E5F6106BF50E
+8EFBB14EEE9E553AA7DC155982CD32A85C1F108CCB8B3F6D4BEDE95B561615F4
+E0ADEAFE7A5A24FBDE84D5E3CB2C7832D34104674F1E4FDAA79B7A327F197331
+3D5E06CF10F0CCED9688ED8E29211411D9E235DC596D7FB9D5BB2A3CFB3BD36B
+3E605EC0726878D4E21789AB2043D5335594C8E4FF46A421F9DF90ED09B5AC3F
+92A6D620D4B3D4D3D1A114FC25FDD434C593790780EB408C8DE391172B4E2BE1
+35FD62287425120176D775C83CD693EC7FD232CBE393F6E6DF30E014DCFA6EB1
+82425A9AFBC4F1117461DDC13E621F3FCB12B2F4721D9C4E594A396C1929D846
+5F814FDD9492C06928B90C45A372A70957273FD2BA7019338DD47073339ED377
+8A6A8F52ADEC6AC8BDB8552BA01AEEF14694DA06D9EADB16737A6B2DEA42B4BC
+EACA5D37A7E3934A504A076A73B4DC6716F7FE9C3AB8911F173520646787CF73
+ECA941F5BBB75700ABD318738689030A96B2393293CED2AD694FC1143F62487F
+E5D21A86D22EBB1E308D7F53B718D47612A66D0A654FAB2FFA3472A37503EEAC
+A1643088707D0E8CDFB88F8E4D29A216E8E7CC12F4DB2BA01BE76A04BEEC4E0B
+FA4FCD26EA395A45F2F904FF8154524C796E1951D394C1DFD6BEF69A031E6989
+7F905F5C2B259B07D570D292FA2657F79115E79836C5224036CDF16359426836
+C20504C6D8231C5FA16EAB4F8BA51AEAB4AF15969023
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMSLTT10
+%!PS-AdobeFont-1.0: CMSLTT10 003.002
+%%Title: CMSLTT10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSLTT10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup
+/UniqueID get 5000800 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSLTT10 def
+/FontBBox {-20 -233 617 696 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSLTT10.) readonly def
+/FullName (CMSLTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /hyphen put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE33C33655F6FF751F340A8D6C01E3
+2E02C24E186BA91B34A1F538959D4450CB683EAE5B034D030186901B458D3777
+6B3942BD2E07121385120248891AEC2EB33C4E3A0CF00828D0F130C31A918C18
+979FE94379C648EF21ABF659253E43CD1253866F157F1DF85AE7E8714F061B1E
+ABA3AD094FE8D6293916FA82EE4F486C7E513A06D4C9BE44306A8287970B4ABF
+B6D1F9274A5A0BB6ECF713ADBD1260D5D6C4420D357FD486470A74B2F0621B59
+A9373ABECDBF32FA68AABB66FAB0C970A3354A335FEDDA1C288245E6C890B8DA
+3D0EB953283ABFE372221EEB1586B0167F634E3F29CADCAB484B81A243CE1E3F
+D5106AD6BDB1AEC91123377F816711CB9D5140120FEA84B8205B79D1569509FC
+6B671211985CEF51691C45A168740BD826464B2CB0ABC575E7D453161328F80F
+3AF1C99EC219010EC6C95E0A8D1909719CF18BE424967E90DF67537220E60C3C
+4345B154D08F9EA684710E659DFFB0BA1B7FDDCD519305900A5E1CDA219A6C90
+DF8BD712A3686DAB90344E8784C7A9AF3318550285039B701B9FA1D3A3C3B6C2
+753F1E794A3463A173C99A9EC0E2AB5737134CEC2C97CD6A37E38692ADB4B131
+54697B7BBBB23680C72CE96066D8007B90AF0FC5958232AB4F21826691E9874D
+107F47DAC1026298D787989BD77CB43A09FC95F6997DB00D8483AE9C2716CBD3
+7CDF02DA34FDA2F0754ED0968270E118DDD8BAAAA65C41D699E2BCC2556AA231
+328187D2F50FD518CF458B0BA1F7DBAF4B231CFD61D5DC56335B53C3013BCCC9
+85690E19E992ACE55EEF2BA7A75DEE6DC33933C226FC1494269B7CA4CBAE987C
+2C787386400172AE3F44AE47115F4117EED866713BDDCA4A7AF658C49F913CB7
+308635000043F63BA210410A66E192289592882C477B2EEA0B2A339F0E7CF450
+CA0EF79D3A6C28598825CA03FD688DA60C95EF707C6E67CB7E57DE7A80545195
+739ACBDF27069F34C9E0216C3D17CFE7A652B910FCC9B9AECC2E646809C22D93
+FAFAD465DE794755AFF5BEC17160C9563B5C51D07022E2D3A256FB5CACE131D6
+F4B30F591A0419D957D8F0DCAA0A8D65A8D83422AD7C2613FF13A302E152B312
+3F1ABB45E42084EAC894FE335C07324849C9736D00C872C4551997DB889AF17A
+A52C5AA77DEB548B0103B77F65717F70B90C1BBAEA7BCB4959F32851A9882A3F
+55673F24103D6BF7FB3AD3EC3CC50FD8FBB4A6B13C3D278174320713A7B327CC
+A71F01E50840B33D0FC3F5F6A6F2B0F2D0E38494B1C73096A430510F927235FB
+69E931DA8CE5415EE88D0248565E3347353621A48F7948AC9EAB5F5057541B50
+82BA955D90BBC82E582FD71904445A59186022FB928015235B60830DA59813D0
+8DA3FC306C43FF8BB2CB6772B1F7BA3C1AA4B2343E7DA7E065EA53A4E5E28DC8
+0790F2D5CFB203CB135A08DCC9702B59A63290444F202756E55B9FB053F773D6
+0F69C63E74DE593E49186FF4304E8FA76C3E3006358DE549E946DB69431981E8
+1261C9C9A884E4EC708F69E6AF5D22C5BAC49F2AE85903E3D48D03B7B97054F1
+D2937A0C685D912D6D20A75A77712164DCBF8FE4D5460DACE139C5A934EEA09F
+B94DBF168A4BC03A9D689936D833018FF43837DF9519AD10F357F00BC068E737
+170FC9FC6715165F733A0B6FADB9ABB48B845167DBE6D771C916577FC2132863
+767DC6E3D460E779254194AA690983184D934F5E858C1176B3862B69B42EBE7D
+EC9AC4E020085D474093F7694C8A8C2025D4B0163E29320C384D62A9F3FBCB1F
+AB5A374EF3DBA48AC2147A207AEFE8B78BECEBC55C97B538F3A0FF4589D171E3
+826342C8A5186224FEE54E4C6AD5EB02BCB4088B132FA1A48362824BEF161235
+8E661DCFDFD8429C65CCEF63902D0E07C2FEC1DC2756D942F13FECCB7E8A8048
+345338F24B7808E46A04A915C111F939E2669A12FAC0BA4F74B832EAC83EABEE
+67E2817C058E69C2010F2572FDD15194CD8DF0FE9F827D349C0444A18D1A86FD
+802BC120A5114FA3523C221242C7E767B0AAF6AD15DA1561CE8EB18A2401D71E
+20481FA5F1E247CB5288F47795A6A3A3BB186E89EAAC4A54AC91405427136127
+5B151203426830F7CADABDB3FF63B40CA29CF8E667E71615869978E99E6F3F07
+0170EACDE3DC62DC05681D7680E2E96C30002AE34A4E5EAEDF88577601A82C36
+22D625A03B0451D7BBAAAE0C396711500E94A482EA787495073F16A76D1657DC
+4EA7C7B83BC30CE7F145B65B6E2ADC207D192CE3B5FEF7031F4BD64F57E1BEFF
+CCFFE06F1E4ECA48B442DF413766A70DA626359183A9B24C70419487423C816B
+4BCB067E661E47E172563090D6328BD738D2B0FE41A0C1D7A47576A79BAFC880
+0473229D134F998909898301CEF50A82B627A9A06DF59D0B9C530EC5D877F1E5
+220D3A1ABD2ACBFDF1933F92B3137B22B9F95A961D93B729307749A50D8A6403
+7AD0F9C40743E39B8D198CFCF7C033D99440D46D821D97545B930EF92E7AE005
+27F2FC766FDD4790FD1913C7A13328E73E587618ABD9008022C5C6C23935CEFE
+B5ECA2CEBA1D25DD846B48423F7186E03B1F61C8F1D5AC95CE03C83B2F221300
+7A761D6CB5F7F9251D3F9A7F4B25B99EE7A1347ED3059A811A82A35A033E9B07
+A4FB2A95009576F48665605C478E5F6C1B135016FEB4AE6A6BE4B4359836E04D
+45AA11366992162973FB6266547C2E570B8F56F6D992D2C0F63950A16839FE10
+F56E59D93A37573E3268C5892C9F3358753D1FAD6379E82BE740FA17236E96F7
+C53A2FF785FAB86AD17EB1DE8A6AA9C69B91C9D9B43B5188E51F6939FEC21B65
+AF17DCE95DD3BA4F1DD51F0BD5E5869A1ECA7398B6E664EB0D189181E9C23012
+DC1E54C146842A90909DBEC03B79B58909205F2CB2A7F83C66B437D7F7DB9781
+FF0C67F004E979C95B706D8D85255CCD827CF6196D847DB380B56980109E96CA
+997157BE78A4F758CE59D78158A854EF2C20099438F74777D3B0298D45BA86D4
+3C0AC30C984718FD62ABA0567AF0A70C1DD41953E3E7212D5C562085177E650A
+2ACD49940551E3F7619B4CC31DBF67AC15D938619B95DBF66E6D1300B1BB8605
+31C4011379FB5388CA49E4A9BD6C921560CB8D513F8716A0733D2A7D77E62D22
+A69B54E9048CA168D210816E613CF6357706EF6B118A1263B858B7E19AA98891
+43BD675B06C893579957BAB97199ACB82C080593ECB8B66A7334779CC16E4D0D
+4AF365CA6AF9727AE29417B61A5FD52452873B1D666044F8E7C1F6C6AA3397B5
+94A5780F4005FB5E41698FADD1594B505A58253D68D2AE3320E22165D198050E
+425820CC0A43FF1D61F168D87CDD30C14D387610B6CDB63BAA39B3EC9B3CA616
+FF1CC679227749DED3DDEA26B4D97C633090DCB8D8A6E5E07E3579E4A99BF1D5
+51E43D1D7F139C9CB1D76D8F693A3F23A74EFBE79F01E0B850BC6B6C7F62C2E9
+859469A144853434895D73DA6BD2B348A48BA80E79327ABD96539F2EA2209852
+E1BF6B0B819D7C68A9A1D0F6F39416E3EC4AC21DCD3C51D3B5B8D417EFAE165F
+2A7E0B76E558AC9F685A76FEC7E3C73CD607D9025DE6113BE5D0401887A53910
+82A813B026A502B51D484797D9D7E79A25B6624940AEDB4A15F2C73CA1AF60FA
+22D15BFBF268EB044FAE17822511AC6580D1D74DBA3C3335217780B29FEE792D
+200B00B8CD888A8BFF15D938FC758BB5CD9B3E08E1AC6CD1669E663BE86711A5
+892684DFCAF70C11E803164994BDAD89128AAD6461D4558AC2ECA3E05EB56D32
+0290AB16A6DF7133DDCBDEAE89C6CD83552792E23CBF567D57E46548EEB0A140
+437492B53C14419B6FE7E64AC23923A9E85F56A9DF209DC4E6BCAF1E045F9CA3
+BB904BFA150F4083C18B0CB5580450CDB657EA768E71222C71DA911A722AB9D9
+E18B6847F417125C40EA8A0CA1F551A4548712D098209C78DF9C3F78605E5402
+DA2DBE2218E49B819296D5AC88D17DDBA982E171733D1E9E295B3157C9B90BF1
+CE68CB185947D1E3D7544155B741296D14B064BEFD3E6AF25C74006CF6800551
+80FCAAEE6FC9105E1674EDFE68C45617D8D3E2264CD395EE94EDD017EB85884F
+FDF530EDF4F3F14750CA066F149E688FAF8EF4B5FE6AB515CD298E8D170346CA
+9B32BAD1D86DC147BD12EBEDF6CE1E749C5B48314F512470A568C172C35CFA41
+031E34586A89404CB5372D7B2C7A6D96F420D4D7C2D4C08184F4AF86B4536A90
+9367598424112A7B05D7107B23695CBCD569002290599E0FF4EC5C852C31F5F3
+9BD56BB840DC17DEEA579E7A7A9F764788D4E3774BD523D21267869224D68891
+4523070E80A123B58F7B579866332FC38A41A5915EC06F2D14FBE4A6CAF59AEB
+57E98D661637EBB885AA5D74AD429CCFF64E5149815E7350118E6385F4C74E0B
+2EB474A6DED021D429F01C9B0634A09250C40E22B3BFE1B7246D18116D585F39
+0E06E9B5F27A6CB77C8E9462189CB900CFEF08F798CAE15FBD94587F33816EE9
+03FB2DA6826EB69D8C284AB9F7B00630D0420EB6E35E0E288BA25F5C2345C067
+22412633898AF99C2FB232D1469025BF262B567F29A05F4816FE8EEF5F02BD79
+06202F6A1E3E5D4B3C91BA8D5FF53D5136BF70E5FAEF441A7310CA83721711FC
+39EE48BFB2FF287234B1A6102AF146B10A632A53AF97E11FFAC3A2A86BBAE3BD
+E0459ECF0305366078066F2CC628A3918E775E4236651B3D817AF1684B07A163
+A0142D16F55D2FB5F2255A8813B8E54EF3E801E95A4A226AB8C0476AC5EDCAD6
+9258ACB6F7C0CBDD298A0B816560622A1871FBE2FAEBFE697A8216A0D8FE30C6
+B1BA6C3E975F78182743842E7F851064037394142AC91B2530FB1D511EB20F3F
+79EDD8B7E1579D35F6E7B2883C47A46B6C1A458BECD6BE58AAFD834A7D82A553
+2FE4E66878E4699856DEDE964F454638F768AEDB595A883E380408F558015FB5
+8720954ECE2704AFAD4D62E8BB2657C4FA920D72248B3F762B2F12D125B796AA
+1C4BD6B42D766EC1C9B2C7AA4B6A3474BF753742DE8AB76D0AB0DD9A20EE2DCA
+0F34CB25995ED3183759CA83ABC32B8BDF0B06EF169252587971F7D37463BFA2
+BE36B2E45559DD73DE7CBE29DE92B9BE6B9F8093F934BA311D81E18A8DA92FC3
+312E3FAB43C53E803975981F0076EBB8F257C123908450661B6FA79E7ECE98F3
+B0A94E0DE3A4DCC8E0FEC106CDEDAA297A75BF1E40F3C2419BF72A644F452E2F
+9A8793810319885EB3AB23B1E80E8B62A889311355C73722C18E62711A7E6A16
+A5B923408444B13F6522FECA9A60B067EE332B83E1A69CD835C9D69B5D8859D6
+91F9276863D2E2E8193641E4239F4ED15E2C482C735BF5434BAA454EC2830C1F
+7CF766DAC9E924F17F03093132627673BA3D99DC2DBFC89E5BA032C16D3C1C8D
+78B3C464081044DB53C7A29E925F4157EEEE928C8E28EDA5F0A4BB6E0042D8AC
+7595C350645118172D04FBF06B2C9A9F3603A54B57999E2960C993724CCD6A09
+766BDF73F66E07FCA9BD09079CE8010E6CFECBE2E5DE1EA4E280AB78D5184C11
+016385007CB5AC0BC95955A1E88EA1A1D8EFEA886007708BA063F556D9284D4D
+C764E75CECA51BEE3D35DFCEBF6175953D30FDAC00F23B1721A1DD577945B5E3
+8176A21A649D907B5F63C71718ECF32ECCF1B26BF15AF694F1045CF98FC75278
+E9782ACD3D83CBDBEE690D29B3176E745AAE436382D258CB22F3DEDD02E441FC
+6A9931AC2F61156DE258DAAD5EDAD41E6C0DFC902173168BB4F51DFA7EA615C8
+B0F92FDB118378CBAC3D56B6B9BB0883C0C14EAA67396AAA7987222A132B7959
+44FC1E9D6DB6D549DFBEF8D2DD8C53DD3B66935FC239E74E2C440CCA13C068EB
+C4A3B69F499F573D076E2C92E24F2C69B806591B0807CD903E078683854963EE
+5125C3640860CEF37BE186DB781475554BFE6C528A9633AD5772BD53244E24AB
+42CA2D1123AF45FA257940CE611D83014DF04E60220E9AF27CB2A2247BBB004A
+F5722A5EF058FDC7DC2B6ED1406649DBAA58DF2ED3A91483D60F11C4A39BAF57
+CB1E320A987B790672CDD3E3BEF4A67032244DED2FF4588B2072CDABFEB36009
+9F4BCBEE16F811A44CEC77F8AE873C90C0F4C975E51014ECBD45A56A63F034C2
+82212977023A132E5C88AAA826D841FDE9CBCE7A01E4B6F0EBDDB9A69EFEBD72
+0B41EDA807CEDB791084047624BC11CE10B7A0A311272EFC9E013FA374D97EA5
+F7998FD908748CA72D8CABFD0F01220C2114D3B462B22FB71A23B284B1CBC7D9
+EA20BE71F8ACCED21F096009A14A7C7B51450BA51514707EB46B9FAAB31CFBEA
+E1DDA6F5D9AF0B6E7D05A1EEEEECD606427B0F2363D1B882B50140466B9D3CBD
+D00DB06DDD1BD4681E367DAA4B7C405C6281B67FFF794041738FC6A01D261CDD
+F6E0A330985F2CA782CBCC02B6F4EE5993434F656B91A51CC03B1D73FFA6629F
+14F6075EBFD83B702D8844A96CFB5C14051595BC7DB2218156A6DEDA5C98CAD8
+BEB5284D9D9F86406A8C1AE85857185991C360E5F44DEF352A1F301207BE94C2
+9A3A11BA468FACB3FA2D683419C44EFDD7C8F1079659F3ABD89D7F168B1591E5
+6105F9B3FA481BA953CD34CCFE73E427D3AFC46E5C58C2981198BA284DB8B37A
+6647BEAA561799877DD6858FCA71CA6003F2961FAA529906673EA94D82D78116
+4DAC81011FD175DA707C1E15D4B6FF19F8720A4E05E6E103E2DE880FA9C192BE
+C5ABE7C311C2ECCBCE8F9713DBA74AEC37A61C8F21F271B35F0F7C88B182525B
+A4183377597ACDA9A6E2F181725D427795B975BC4168A408D292CAA484BD1B8C
+9DC62E737ABC805C8FCB7E96454DA032B601345570EAE0379BDA84BB6D15D780
+42FA1E068A7D62F152B43B788513E13724666FAB4E2B4F04B0448194E46582CE
+7389BAF0D1DD4435BAA6B82AC305C04686B89FD51197C721D941BD2893596024
+1598E6C2BD84527EDA6FAB782033E4BB4F964FBACD96CAEC3F3CF89CBABF6B4D
+4D3AD14A03D4BE931632BB03BC2B92842FAD51A19A756892D5B978DB695D0540
+CC9D030C612E2B201D60D09F56332DD0BA1351EE62816C21A35C33DC11B37BE4
+D2F164ACD836A5CA1553CBC733E3B159860454B17064B4E22D3764FF6293BC81
+CFA3B2325C8E072857F6FF4ADAA8818247D431A28D3C5FDFBFB24A6CAA327AC1
+0B3630C84ED9F0D33B8255A3CAA9C5A0C79F7BF6BA3B9801C3BD0B30AEF7CCA9
+92F25E332EA97A7CC653C93D1497992D6B76363885B92ADE34C2A33E30A3B1A0
+57E9C16D8CEC189565808D3FAC92973C71CDE74DE9D8781CCAF88747758014C4
+5B62667D4D2CC5EBEBE77C5AD00C6A69D1819F5A786964501E077EB3BBEA52A4
+57729AEDF35253F7E1D31F2DD1587BC15CCFC1B0CA930DA83E2031B099A38158
+8D1849E7145AC74777A3C7136DEABB0C787E5A218309A65EC7D128147EDE3AE0
+C0AC039B56F767A22555CFCC12DCBC7F5A5A3B4E86EF5A69EEA93DF0BAF2A3F3
+7504F5C6A7A67388D2F9045BD755BEB7DFBC2EED679497EBEC808BE20FDCB5C7
+B586463BBB898DECCCF7249E9047DA943FAF0718A2050FCFDF8A4C2029FBA674
+EA64003AC03A847185936FC375CC67B3006EA681F61F640C3640A78D0C7FF521
+D477981E23E5956BAF42252463FDBEC49BB560A9428D248B0C5250CFA2A49CD9
+DBCEF73123C13BA382D3CF6A7B8A8CA3191D379A659F0E2C6E9CAFE9DA2AC074
+F622E397A2F7C73347364AE249B11AE2C34AA7F0D27B5F35D548D5AD1228597D
+D16A478C901D3A34D870BA39F770885B7DE62298F0114752435050E99EA4E5E0
+56B965EA185E8DF96B9FE97EE23DD45AADBFE02B427222B9FC99DA94FB2648B8
+46BD30F881BAD3820DCA4D8093BA0FE70E03482CC063B751439125623FA7AE40
+52DB2A380D89D5E37BF264CC73DA9A1540031587F481A0F146C6ED6F3F2957FA
+19477F075ACF608CD94CE466C1FC3EDAEA3ED25C96FE89A7CBFE528A33C4E84D
+465FE6FB031B48D904C5120D428D6B51F3232847CB0B7521E5CEA887FFC56F02
+0882B3BB7F5B0B954E7078DE3E31D8AE65F9EA55F4C169DB7C35DB9645617AFE
+078E03BF9A1BCE4E489AC9495A1E6CC7D1FFDCC03CEC1A32490186FE8B53B09B
+DBA7F0E23C8F5E5270D039B409D504203A458EEF12C035039A8AA12C719C0339
+F766BE6275511D585F82E9D4AC9B5424312755C4B74383FD094BBB24817D6525
+EE62456392E5DCAD0A0157A4A033E440AA014D5682606312F72248E13C43EC3F
+BBC9B4A2CF19A4AC6ED7F561EB13C3AB22FB3F3EF644B5B47DACE807262DE5C9
+50578464845B950140ADD91D72D28470A5A5FB134EC52F4DBBB9C50A7523592B
+C5BAA056E46F8C004062298BEA010C1CF9F49DEAB58C4D2012E04E630F54C985
+328DB2B6FEAC584308D71A9F5FD945A37EA13F3DEB1748320870057A362E70CD
+50C269D32993CE9CD1E8CB35BC6F69E7574F37032219C6E1C960F368014B9953
+FA3C2D1CF2D0CAEF7E63389ABA9AB423DB3D5487DE475EFE6AC212A20E02B8EB
+3494158B27F59F27B924FD453DEA123E76130A45FDE2CCCD2268ECAA7B2E2E2E
+B80E1C7EE53480A9AE34C50C84ABA07DDCC5B823ECDFE8BE466032AF71DBDA67
+1CCA5CD84BDC7EEEA28EB7DA16C1DB24E08DE7C92DB77462D640DDEE07085E45
+D9D1C12456AC986AD97CECE1D4B398D4111386B4F9901CD64F37628D14899DC7
+2726943169FE4815DC0AA4DCBF70157F17172AC7ABC4B13C07BB726392ACF5CB
+2E548F7133EEA500102E39526E8B45B50BD353EC35CC614095A2EF9A59D45C8A
+10559BA150471198A3F6D1689DCF216D484656DA0FF9A7FE724C615C81521746
+1BE45780825BC750E0A21AF81436F2D5567E38CDE84A98C9DBDFD8BA8CBB90B0
+14DDFC173DB7CE4E5D5AA63B59F2E65D8C504EA891B79967EED41294F7C92D83
+695EDE7A376058D3DE0D250DBC03215C03D3250CBEABAD5CA99D9056FA726612
+394B014D534B5D257D107F10C7D2F42ABB287250BD55ECE33785C41A8853403D
+FEEDBF06E8952FB6A376B6E698ED07738C5CE4A3910E010383A0AFAC2812CC79
+DD2BEA491E26CA147B6C3821AB0A3160FC76FA0699819ABE65F69FC2DCFC4256
+4180381ABBE648D5C0A4FB1BDE65B30B79B3D71FA07AAE77183C14FA5BB0C632
+BEF63C3CD7532BE8121649259F21009FD1DD1EC46592C913ACF09798D3B432A1
+E3C846595C86E64B654035224E4A2FA5ECA2E40B605C7C085271A6E01C8A846A
+12843B433B0C14A0A30C3406F3DF8EA4253E8F2265DF78E40F12C8C24E22DE84
+31D8A8B1CB7106C227C2C3BFCE61BD8619D17EE35FEC015828EA15A761752CB0
+6941CFB2BBC64EE0AA70976D7C907F4A128DB8054B165163E739776872D17EF0
+5104BEE67F675948FA33291FF65E3E313149795029866F3959FFD1DC8F400B77
+C09D99A0771A0F08AB9B37343534E25D6BC0E5EA724354520456D7E67FFAA6D6
+9E5ADFF2E56D407C149529C1058D987B63EB6C8BE3FCC9BA973D4E9C29421EE4
+1712B748A5EE4D1693B0F08C5ECFE274A76B3A6E9C688476463D8D9A3C1FA088
+6F41E74E8F128AEA1145EC5289E10162ECE5FB83262009CBEDF87331D2E47489
+9B724F26C86360DF3B3C7434A7CBD714F2A6CDD82FC3D304FF3249621B9E68D8
+AF90FC26252034FAA32B88484565082EF47909D7FD69F87A682ACA641A2E9219
+FE564E8624D3207D24896AAD4BE2EE06860DD443A426E299A4EDF5865AFF2F71
+64CDDCF8142FFA28D6664ED49D2D72EFA6E8A1C4FB074DC93A45DF1C5F871068
+DDB8F66680F5C0820934614C762064368A10F157574DD6F1EEE46D0F58A19F41
+729B4368318C9DF0C2AA41CEF9571F0D2B8BED8DF2E70225B1E19907193097B9
+A3888F1D4A3EB4B2EE39CD734AE6C9D8EE4BF4AE91EF49D4BA36134E649C1BA4
+9AB89E03C86D9C78F66430AE95D761861CC80E36160E59B06325CC5ADD7538B3
+3D149E3651A6DFDE901EF2A5C56027673E83FD308F2F66624E0043A685D52341
+65FB6FE9ED851FBC933276D5D8710D186DEE08873D30ED9FBB171A079C64F010
+B70B4751E4D1669464200E7885F9DCD35A6C22ABA6AC85DED3298189168A360E
+C26A1049772B2AD9E6DE0D2606CA032EE3FA6850A159D3887EADEC733C5DF2F1
+C5D8A2021D26EA3F6087997FDA7825697F62099DEDE2F9CD2E6EF427004181E2
+BB14A0F359C4C17224431257EF8E709DDA003CFD69315A69BD6ADB20E1FF9DF8
+CFDCF86E2CFE8259CD78EA113EC75C870B13653EE69BEB8203ECB04B9B38E13E
+C7ED57C511B41BF9AB5B23B04C9EFDCACDE3F84DAFFBA01C9ACB85AA6687D029
+1B2EC022ED19B818DE2D100DF5B69ADF086FEC7F68BBB24B4C87E48C903D1385
+CFA36D6089820CC9C0216E2B4F94C8FDE6385515AC21C4095336B63813022E7F
+ED9F77F7D50DB2BA4C684570412A5724C1340DDC18D3A231732583F1EC473C43
+CB98D6E7B7A559F900C53DA41CE7FC92AC0271CC0AC30BBE309B57B2F6D609C2
+9D65535C13C785FAB134B79838345662E572133845E75026C17C8659FC0DE5A8
+0CEB9858B2EE7D42A124F3CBCC94A274A2EDB2A157A19031EE3FF3F198B45759
+72E336722F28E88123FC14D710113685B64EBB7FE77ABAA5DDB01C74D376B8B3
+08C5EBC99385520B1443C5E58B8747C2441DAE19BC56F5833C0371D807A3CCB8
+8CC0CA0F96A92BB302DF246DBDD5CBFFBE5B7E4797B3114B1DB586265D7756DA
+6AB22F4F50981EB928B80A7AA1876C814329C73DE0F152E237C15ADB9F5DA5C3
+A618463191503DB607CD610088F69B258EFB30615F7C64ADB004AA7781C725FE
+7FDAD84DE5390ED8CBCAAF09EBB5300AA2ACB942A8504C5044DB24715BFBB563
+005880CDBB073AF9697106C817B09FB163EE5DEF42ECB625B411D3F4DE730034
+D50EFF56DBD29B3BED664A2A4470F2CDD3248F818032CFB29121115FBC5D378D
+337E9D3DA39874ED944FF21B84B089316342A3E2D3388E6CCE152F1EE7807253
+3F5C3617C616DBE25AF59D3337D178328F8316B5FF90BED7B67480C66EACBA76
+89660587D616A5553A265AB8395EAE6F354696F40A5452AB6A910AAAAD8A14C0
+D619BBA3EC10BCA5F7E73B95E0238C5ADAA8FB33DA178FBE5514C06DF509B283
+D57268C93B6D621D7908945DBC56B562DB11A9FB6BA464CF3AD0B5B4C5EBD611
+0F668495D92B6DDFC527EFE24A9E9856F8784C50D0E6232AE8D8D75F5A6CF296
+AB79E4752388CC8C4CD484EA38C368CDDE39239807AF7F82BAA30B7EC9748A46
+496B71AE02C0D5E7EECFA9DA693AFE84246AB182FE01FB858AAC1E5BD0A19EFA
+C7E98416B9126A474621F348DD5AD3D2EC48236BF5236DD9EED7AEF6846F3F21
+5EA3A2A02A08C6187EC1644FD7E2052C8F5CD75D5B9B60EB4F387A03ECC1590C
+83749EF3E7965BD18A480C7443DA1755CFE20DC1D54F57A9387646BA2FE28157
+D458D7F5D28A1009C46F33474821AA93D831DA844C7AC147AF6E519F4DBE291E
+E72148F962CD90B0A1478C6A672ADE539448597ACC618405091B74C9AD495893
+CADEB28BCB198B1AE12CB38318CAF908A6CD40423903D6B8B9307BF8AE9316BD
+F8F3DA3D6CF7734AA30D3123F80CEE80A7C0D267AC0814AAE05CC8EF7757F995
+E72599E326D24AC39C2D47DAAED0C8B68851FC21526EA50A288FB9A24FA1BA5F
+161E5964A07420FF559ABC95FF786E18D37BB72F446EB62A617C6CC7DB599E8C
+13BE7C8BE43DFE5480F5559B898DB536CA2DDB8D68DB83B49F9350D8CA109B5B
+5B9439943D36AB627AC5EC56203EBE19E548A5FE19F5AAC2A2D90DF0474326FA
+48511A99AF020DAC95F99DC69AE209A7F3815E20F04817960C716396D940C773
+591DF0BF66DF5967E4C574A63E83A9865B64801EF9B25857AA19C6E28596777D
+FB5C0060F4A3108B093D6CBD8F044B8725219AADCB92A49841C88766D947E2B8
+82DD95FDA93FEAAA5D7B47564F9BA8FD5AC67CD30FA3CFEDA8D6D7E3DBC67551
+B8EFD72B485F9577E43EF21DCDD5F0BD03A604B3A8EC0E647CD361A7B8A688FC
+EF895214676C9F1AC893AF60EBA5D19AE71F074EC64702E253D2C3342528D170
+94F52638D5FC251E7C5C563C9AE3C1DCD1CE3DD3D5C7B49338EFEE3CC0C9E707
+359D60E5410D6777AF58A54D0603E4DB53DCBDCD86FC20E8C8FB4044EA4D1052
+D9F5E37DBB6D1EFF5B97127C72411E6754E4FCC79DBC2560B2816CAD113BCA43
+8D965A269E0AE4F1C074981F027DD97585B4F7E990006ED436EB6B8C59F576E1
+728ADC83E090FD9E17B5186C7DB422ECCEA8D9A51CEEA0DF1FD72E2E8F5DBCFA
+6C404A009B7ED2421AB0187DC51F6D9710020CF7FE84B290C053366A794DED59
+A3646AF2B835906E70E317FF5551705F9E12E39C1483AFB4FB5F03913929DC06
+BA7C8D01FF69FC910FA342412C352EAAE415D1AFBA1011CD1F7F981CFC88C8EA
+B7550A5190015A0E9ACA9B31A4B35D70EA4C92721F1773B4A31BC16591FBA66A
+B5E5A1EAD63E87A97AF151F3BE5222C3BD0E031F00B58616FF0CD46F8BFDE353
+DADFDB190BC4852822D0D0EDE94E1BC99EF021F4B73203E87E2FB40C472C5179
+C58E9AEA8271584F5EB1893769DA0401C2CB31933980A506563DF3A682439F00
+9D0018AE3BB56977F0E8D2FCB1139873D2D5A2AA6A38F758F114B0B7119AADE8
+D746786F9E307CCA800A32EA24263C0A18687FE845FDBAA7B2EA0BEA81C23A07
+F04BF82947253916CA041CCCFDDEA13F48A7461D4951E0D240E4FDF7BD37FFF2
+F15FECCF33FFC91B49F534B2257440C788E7173052E878363237E3E5ACD91BA2
+45E2C3FA0FE5C412A39864D89CF78EEF4E8C02FAFC9C0D6344919570F2E5F06D
+72C6189A0FCBF9DC2AAF313CF2F60CC8AB31D88BA08644BA9FDB98852399491C
+E2A6C09F117148E0500224E3568E18C7BD54385B0F758780032D856008F26D8B
+46DD888BD4B0AEF973404754C1BC0E3BE9A2DA5E60B087B6D4A9B429289F963F
+48FE904FE166462A3B5326C48007F72571C5F2F7B571AF6A7537264C9F510F03
+4CF9FDFECA37A90294AFF24578DA35B09045FB750C2321794F96AE9D38FC1D82
+78314779170BD00B1823535631A112E2441616BC774C2F25D1152C4BE9564DB5
+117C0AE243779FB514E38F545803876ADE064819E289A23B04A4B1B4C1CA975F
+5E52EA275633630FDCDBA7062281B459B528C8537F068FCB16E0D6373F83C43E
+AC0D5E53B763DB2451A62975D3FE6A283389ED01180B9789813881FDED229251
+4895B28A67F6C69C55C6B350B7A90BADAF51463D91A5DBA138B2918927D1191D
+EAA07380E91494C9B9142738AA678ACA501D7D2DA564DF59656F92C637755F4B
+5222BF10410A379BA2C0DE6A28AAF0F0954EFF9760EDE344DD80FDB7A97E0EB5
+BCB45965DD4D31B46E22349A2E032C74AB6D6E68B173ABFBAE37677CE80517ED
+0EBBA55C21032F7B5CF56DCBF5713812A331C07CF382E1F7C4BDF2885D5661E4
+E787306B1974539225B6522BA551C6B2F2A89F7B80BF6B61F7C15A24FC26B4B1
+BCED52E60B159C1A93E8D9744497E1C2EE8CA605DFE60C33ACCEDA02B8E8581A
+69DAE45A09301C445C3D825D8DF6E68D3134BEDB67EA22D2A5CFF2C16C39CF9E
+8B2D81C76557923856A99FE82FCD8117446E8A826CD37AD2C87665755A8F6FC8
+35AB86A6BD6C747FB724ED4180EDD5819E958BF051AAC748EFAE93C622FFE001
+D37C9C09C4F9F7CEDF05BFEECF9CB9DADD5F265F3D5A894D5C7B4702CC938A7B
+1F9006055A202169BE53404768514FECFF8437A49713DFE93B918E50BDDBDE7F
+85CC1DEAF8B36AE1658A5516E42B6A68D69F86AA781288155F23FE09524027A0
+6D18FF9F1949209038B41FB9437431DD7CCF801215022303B094EA78CA35FF08
+913F029667564E0275D46E6933C7C8CDBB5263D47FC495E3A21FE4D39DEE84CB
+8DBB23C5EF4A03E332038DBCBE43A89C3159381410F85B01FB966B2F67744673
+85115D52E109EB970FD982C1C27A134765FB7F39F081A10EA4452D56C890A139
+59300D88AC4B4AB66C506A697A5EEB9D55423611B55BE5D88973554BA0CA1AA7
+8FC1D75FB5007E2544E2507B32C186B6135FDC8ED8B84A6BA0FBB95AA4611BE9
+DA3BC4C2F7BC83B8B94ACE4058466112B61CD8EAAA13639EB2702258FA44E74E
+53
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMR9
+%!PS-AdobeFont-1.0: CMR9 003.002
+%%Title: CMR9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup
+/UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR9 def
+/FontBBox {-39 -250 1036 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR9.) readonly def
+/FullName (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 44 /comma put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 65 /A put
+dup 66 /B put
+dup 69 /E put
+dup 70 /F put
+dup 76 /L put
+dup 78 /N put
+dup 80 /P put
+dup 83 /S put
+dup 84 /T put
+dup 88 /X put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9AF72336CC4AD340
+15A449513D5F74BFB9A68ABC471020464E3E6E33008238B123DEDE18557D712E
+ED5223722892A4DAC477120B8C9F3FE3FD334EACD3E8AABDC3C967C61FF003B4
+B10C56D6A490CE9594D57A2D431B9E5E10FE3D8832E227A7087611431ABCD029
+85F4865E17E17F8CFBD2CADC97E0A8820E3ACEC873F31464466A9545E967E53C
+DBDDB8478E69063FBB891566BAF88B7660A4405B16834761F041CCF7650AF955
+F9E853AA9F5F4382E1FE7D0C5BB4023818A2383F91249D48CE021250EC9EEB1D
+2835E18FB73026250B32A8849067D5E2258797C917F998F2D4121D96560C5FB5
+B5D3471216639A8671B6DFAC5E3554EC36D9A72518525A795590C74DD70DA3A7
+78BFC43E51D6F2BA52F17D4DD00D389D3983EC54912AFF73684A8A7E345537B7
+E62361C04A47859DA084BC72EA53512DC54132EB2EE671793603015652EAFDE3
+41C4B6B679BD60AEC5153EA0D2200CB1D097DAD770F5F31E6FC475A225995277
+B867B731D5401E2D02B85BA85158C80FF7E2BBCC42B98AC867E67D25DB656072
+55A0D32AB7AA483A5A9686CEA4E2B3031D90D84DB3E2DEE7706C91BA81CB8DAA
+700E5F61E07D6998C9552C81B66FD10A10033D49EF3BCB0FF22ED0A3737523C9
+8F851C61C4BF8A213BF6EC70C956AE48B5BD276CC0437C72BF6515B10739919A
+F00F6ADD2798CB211668842349171A5AEB0664D2C44397E55A4A9EBDF54A3EF4
+FBBCDAD9DAEF4B0CAEF7112FA828F2F8D9F633D37E5516AB5ECEA87342EF8DC4
+3A50548490F5BC9A8A1F98AC7AEAD9D913BFA10CA86D73AEB5BACC1FEEFDCC15
+B3655522CCA2C772E902FAB2A6FC153597D52763EB44AB7489FF061F7F58E8F2
+AEAAF4D17F36CBFC00D3C653F335D14240C87DB4339DA9D30A5BD1F502BC9013
+461B9DB2FBEEC01BB18990439A0E9CA6576BC9CF6B1A3DB9386C4A5D4AA6A5DC
+CFA45FB75F22E10ECB72565DB441A194902C91427B4F676E531C661F7A2C3C85
+CD534D1C89B6779B2EDC8E44667B992C20C70B663BFBF680A6CF4383EB7CA26C
+4D1F06B5EF4025BBE65795F1EDB5CCB97050872D6C07BC2974F905ACDB7A765F
+291365D6C8152153E7F017A25FB4476C60FD9EAF9A121633DBEAC32F62850223
+D6418566AB350F90F4B35F19598478F76B63E347D4C61E203D4DB8ECB9889181
+C387F4B663A502C638761D2782BB96EAC81A0108D7BD6938F67FEBB69218D115
+D8E89CFABCE15C6ACC7FEB983332A51A6A73CF4E341574F366713D7FB29956D9
+9BF238A87483D37E526A2EA2F101EDD34E34CB92730DCA7235AA0027189BE405
+2DAB4AA021A30C28B26C50808E1E965C02F6212EC7C72F5683339425A7739380
+A422E6191ED8453AF0CAAA424AE44DFA7CC5C2F6EAA8D73A5101D8E9517DBCFB
+2858D0E8ECB7DC430EF23A9E4428CB7DED8D035D6050251AC101A2D0E884721E
+2F21E573F948048BB8FF888911C508CC198BD750083B339500C426AFCD5634A6
+AAAC1C7E91249667B231BBFC64B4317192FE07FE9DA0DDB5E517D097AAE46577
+9555F29D45C67CDE9812CAD03F220B20519F2FF32DCA56A554D4296FE2D1F3FB
+B209B5270E0E695EA5A0EF1144957CE045881AEB8D05D72CE57F4D34617AED67
+0D3AF0472CD8D60933651626550366E300E72A9C89ACD475C2E2ED9BD44B472D
+9DAFE943F8E02A6DC38E447EED964624C37C3130E48211CA279BB6A0BD59466B
+42F3D89B5746F29E084E22CF58395AF0F29E55113F3A3F2F52CB3A6DF3D026D0
+C81754B8E2E4A15F6943BE9D0087D5166060734FD07C4C57D7C7D90E8C9C1F35
+623CEEE3ABAE75E1A18A1E3B50B7266BD2D8E812CFEB4A46B856885B185640D6
+B9C22179551002B94282F57FB433B7FF157D2F0D240836B72AF4A331668AE5D4
+E6B85415F4E8B9D2F9AF90FAFAA0A3866DF417CA5A31348CF9B41B8F5F4D2F97
+CCF7ADE851B5E2E2F6E319AAF5792EBB9DA2C6AA8B73D889F3CDAA42932CDA7D
+07A7E59183CD89520DDFC36E5D513BFD8AD0886046585F29B4D7F42CC0C27AA7
+53915AB1167D292FE91957E94A57FEE2D49C20C9070ECD736BDEE0F046E60350
+EA539DC298156A4E0D019E7D481FDDA6861E20678516AB80ABEC1F09B126BCB9
+52E8272A06BB6DD87ACFC423B4A4FC9A3DC8DCAEBB807C5F748F1FF8B17B8B88
+F426206BF1B7B7D239D26BC3CF0776C467A98CFBBCA5FB6145D5900137ED19DC
+D002F10704AA680EC753C22E29AAB15712EF22AF73D80820A1EEE953463D4EA3
+81FAF99518D4FD0F862A324FC44C4B9542A92C5B60CC983CC8F647CE5BDB4D6D
+B92B380E0E5F7208A9CD91FA9A469548162C761C1BA05AC9D60B766764D821B6
+B4E17F56CE455F06EA1EE2D38FE47581746C4C5FBA63AEE2B58E877D1A8FA83A
+31C972D53B64E92EEEA147426A92CFBF76FC614119C6E9C6476FD6A069C803BF
+E949FBE50B5AB1F1463F9747E8D353F7BBD991C4F90F920BC9407D8E24720293
+846D052214E60390C3CB926D38C83AF697425D80C2B4FC4706615B905516B733
+46ACA325CEA68FB21B2D17CF0B68BA4DF249368625CF83441EDBF2B86C957C1E
+44CD722BD2537CE84FBA07EC7AE15C840041B9F7F3040072E6084CD55B301C08
+A64A53BD4D3DC30DCAC6C152F316ABC59B8EE978793EBD568849DCC2A75A495A
+BC83470D503F8E389F54B4A4A31624E83C601B43AC1E52CB811FAA7CA6B644A5
+1AE0BFD4FC774C9C9DFC2769ABFA9C83F900BE2DD4010416053A1D4874E6ECF4
+D86E44B4CAB15D53E5630C144B0C15B58DAAD785BA298B1893D1B09BA5D40344
+6678FD2D17FF6674433C976D6DAC659175CED26139967C9B2B9CFFD78FC2570A
+E5142141C2888DBF2DC8503F9137CE7CB21A1EBC2D65BF33FCEFBC85C9CB736E
+24E8595CE934AB032CC70BD6A3B0F3BDBFBBE185512FDB7BE3D4A6620478453E
+75D044BF770B44C9741E31985E6DAF5A318D7BED12B02A4BCFE60D25EF12843D
+EFC9BAE2A3F2EFAD66D7858E83EB46BB09D2FF8AE9C43844A7001C86ED97AF51
+C511E3A89A1BE349FF5215D1A57843EF51456B9838133846F19BE79AAA5C1AB0
+5F400E5E8E7B0BF96EFCA3B8F0894BE589F2C9FB6C97BD16D38F0A237CD4F034
+099C41F85C7E2C7BEC8E02C4F327306A53B4B48B26A8926670CEEF96F6DF2281
+7C2DAD99EF8B81BBB777227C2475AE7400DC393D9C0445E925DB1E955950F7AE
+53E9AC4306794239346A419F7B5DF4168382EF5956B81F83BD4BB7635B3BCC84
+7D84D05AEDC02D14675D777CD19B08124001A4F4EA96990D96000C082A12F00F
+7FEF793A7FA69D56D3A38D012168C5458B667190AFE80E02C816CAFF0A71953C
+D80B085CD286027E2FDBB05452AA762FD7C813B2E19A79C74190E04E746C4933
+CE1E300CAF5DD53B08110509BDA404EF07FA1BC5224BF1205DE8E0C3276A13DD
+866675103B960C5F36644F96B4FAC16F5D6E91F74629B318FCCC8E8CB13EB76B
+B0B7B90718D913A52A04732EA3667674994A325A7973C601A7DDD50F658E0826
+ACB8E53D4914B0274AED98D7BC3B2B7F9D48A7ECC2F8ABEE05CF2C4F2B90360B
+B7DF779EAF3E103D1D83EDBE32DDA873768D8C37DC10A5354A94B4153049AD64
+FF3E0BB51AB91D7C0B4134D8731CD0270DAAF19BED9EAD800A14B65B68EEE89B
+40DD624111670DDC7C030DEFE0D1B96420E249332445C155BA96231C88E70643
+D526BDF3CA1E05FEE72CE2B881CFC01ED780C10E89F0828AD55FE29043BC56E8
+2750A6DD15AADD54492F6092618F4CC6A31766B17FC60766D18C307EFC9BB787
+39047DAD6B38419EFBA46B4E2C932F97451FE78AD75FA90DE409FC6DD46585D2
+1941F5ED47A8FBAEF5A917A240959E8D9F9917DEA3247D9CAE6BF7A88DB4C4A4
+F9F5A6DCE542420A032FF3392FE0F3357B51F884D6181583A554F75B1DF192E9
+253CC828FF06B0D992D5316435980B044BB191508C7C45CD90F797F88856424B
+14A5707459C50EDCF3E3D8D1667AAA83015405354CE744C66D9A5728F29E0085
+6DBF740717FA0799E3BCC4ED7841588B496A5E549B953A7FD288B4A045DB611E
+E3B2F35963FF18ACCB1C968BEEA2CBF52B3999AAF89A05320BB2E97F52CFE06B
+9F10E3A79865A3059A957F97972D80ADF678A36E2B586C101FC6AFA4D137C13E
+EE7102C9B8EF78CB057F8B7476F146E8FF5C897FD5503DD198128CFF7B5FB339
+FAD0AF0EA967F77B07B367A4AC9F668F8BED99B98E87FAC750EE045602D76C3F
+289FC9D97694C96AAC0AD1BD3FA94DF2CBCEA24B40F47B9B59E54EECEE7AC4C3
+A3F5D19160E4C1EA830D57FBE10D8D46AC5CA0260F22FAA45236F0F542BEA9C5
+5A88F878F68B36114E0573900C65E305462B22A3429A17C7A567694414DDDA46
+5F30542B8FD4F00F6C295B2E8D3A986B953D96822DB2ECD48E8BB1763434E652
+152EF3717F5E7FA10FF0B01D9F64E22C5DBD7254629658887BACEC0ABDE972EE
+67299FB84A05B3EFE22B6976DB4CCA384232DDAE38C31623A4E39EA2E82C1EA3
+BBB68F1A7DBF405DEC37CB7203A895C36A44BD2D63F45B3888AF91D37B510A59
+3C921BB44DA620892AD87B665F69F6FA510B071ECC403CB2BE2F54B3969C9E88
+713244BC97C1466DA8216DA7600C221E7E7EF5C789D2E12B36422023A03E11BF
+2790FD6062FE6BF62F5010A92F0A104B76E255A0975E04F6F20F760881BDA7F5
+D834D1D328B6EC19AA7D5E5678A84C74C82553DBE8BB5765E84F5A8789032143
+6020940B4B8D45FC3433D356E28C25F42D0C19F911213D85951B2B00D01B77BB
+A4C72E964F9D95422BEDE582A05CD52E03D28A996E6CC8FCD910CBAB728073F9
+F9FAEED5470FFA55930447C5BA816F826F983D53EC9941EC8364B3060FD74C95
+26D4F5CA753B574FD2FA4D1D333785241D8741B79E628BC852FDC35478C5ED9A
+C1BE88C5EE7302816E65C12B58EA16FEDD4672EB3E24B6EDAD5DCE263BA8A970
+350B651E5A9F3C281D85BC3F44EADD0D93402E36489BA5185E7D388974B0B700
+70575188BB610CCA20F081E2CBDA13DCC6F72567962ADB342E02C1E763B673C5
+F7384E24C6E1730A3A790D690A2103AEF88E0C1D4480DC9B25E5C8C9E1919C95
+F83320179B4C7C4A26D559BFB24D7D596FB73758C9990C451E77FCDDD17763B8
+9C30A9534E3CB6680D3D419D4B70B0B0A0D160FCCDE169714E373F65B7144CC2
+DB9A44E041211E1517D3148E65A2486CBE5E74E625261CCF65392FB4F3091473
+F9E8DF327D59A58558E5C9F7190DB577D5DC658F5E36258291C708B3D224653D
+064BB6079F91293FC733710893AD1C96169B30CBFE4E9D52E7EFAE4AFEE68FEF
+1AFD5E7E9DFCE8DE332B0FDC0514F9B3090AC85BBFB527FD8034DD33E9576325
+A8769AE09AF1BA792447DDD932B98FC9486B39E0B04DDB3EFB7A30DA0940B33E
+E27490E0E841E87B1C90E5248A91742ABEDC10F43A8AF0F9C5B4A4930B1AADAF
+01874B9AC3B8D0DBECCDA6CD7E96471FAA15CB7F8A599C5746327CE392224C3C
+40BD60AF97BCA6FF6FCAB2FEA114D7300B89E91C3BC92D5B3E2C83BB37992D8C
+72F661EFD0AA034C738C019DFB79BF40651A1A34BC1EB9F5AAF58F8B3DA32645
+24AFF8636486F08BC21533B5FF7391B0679A78DFDCB03DAF6BB7475A1D51DAC1
+EE4BE9B986655D1FDB6936445EF99B58B303FE79F11275EEA96A9F6808EA8775
+D873D1052FAC93769789C700F20EB2ED6D15676F6E563A769CA9298E463FC311
+83281483B1C953370D196727A6A0E66D32D9480AB1B6DCA77868C1A2D5DB6483
+5F31EB6B18EEFEF1CDC31533E69B0AFC6B30FC9912DC89BAAEEADC30BE14F448
+1A6B70D36A5D9B01799BEEA686066114910842D022EB464A9A1E8F0A5628BA69
+AA9A1925CCADD44703BC67A89F3B48E4680726DC4360274185CF3C8AB747A8FC
+4B928AD62B092EFE48B01E33ED756DB696171FDB775396BBA138E056F71EDAE3
+7A1E4CC272B8418114B0E81DE0BC43DB3C133167344488820A92DF10FFA26FB9
+65FCA2C87D302E956DE6B4FE145145440C83DB43A68F8B29A592B127BDF49063
+B7F11E155CD4CAE305525BEA56B7C412A6260426407BD892A3F2B444AC3421E6
+FB6E6425EB5C3053C5644666B80405530FA0012B54557327C98E0F4F064099A6
+4ACAAFC1870359C1B6FBE7606BB8A26026AE20C212210449905E628AF1B20490
+8CE908B7EF3E3DB551C85AEB0F7FEB6A8D215B97998E5DD9C7CCFB2A9402B8B6
+1770D4023777D4B45A73F471355353412C51D4CE71FAD1E0AFBD87B5F86307F3
+10D0B94F1194EFFB64AD5DA54A4200490F609CA8B912E149F8217ABB1E9EBB3B
+C4470E7365CF5E1E761AA1945044B225BD53D142F6588C50E0644740F7DD55E4
+8F73201E5354A8BC78339211AFC4935F44701FBA043AAC4BA4698E9D7700029A
+C79F992F62627C91EB855F64C4B251718FDA71EDAF082A0C7B00550949D617A0
+7071FB14F05620CCF2180941341D8E60FC88823438FD728A4042AFA8B853107F
+852F631518B61B234565291B5D5B89DA818DEE3AE3B68A2869DFA63255CC882C
+3B16BBA08FCE3632E57FF7A07F857A1F0FDCADAB39D77960BD827CCC8661A997
+648BF5BEBC0FD2286C2A112A8DEB9CCB6330A049170D5D68EEEEA011D3EF3EBD
+855236B9380087CBBB6BE24191F728B7EAC5B50F7A547AA0989B7C7D3437DBCE
+1669341264E290646F2C8C5A3ACAAC7CB63DC692FAAE13E9B40E8BD39FE16A0C
+1660CE66872D061056C04DDDC265C024BEF8B7E3C3AEE76FE5C9702002C28BE0
+B180295EE00E567FA2E5CD1638226D24A7C732E1BD8103B476EF5702768689C7
+D4FCD47F2AB94A2B1FBAE6ABF87B09E7713C773FB65CA83F7318035B332B9F99
+24A2C8897527021321D003AAD7C273E4BFA2710B9BB26C2CFD3D9A5D7ED1096C
+552D50028AE2476FCD6D12A5D0A897521313ED1A3A8456A70C16EAA50A3E6733
+6DC89FEC56AB54A579EF264377A103939D5EE00A90B4F2206D0023AF9491FBE0
+800C6540FC945199E20E945F46CEEA2E885F6800B9DF042BCEF4291A4B1A62C8
+6A7ACFF872B25FA3AE69E0093F3D0FF13A3313430C06F1AF94D500431566F659
+E8C859A5F80F5BD2E85C8E32603D3745628E8FE6FBC50FA68F9C3811A2BEFEA4
+5852CAE2AE5AAD3230ED050593BAD0A9581EB7B327C6916B8FC348F4C23E6FA2
+00FA28AAACCB3091C1D83F7BB88672A53A2EA3B8C7C24374E400C57F0F01019F
+E52D5C47F389D4C9AF126F4080F9AB8D1C8F470932BBECCEC72A9796F6E965A4
+82057DDB43D68298A00880D4C2E2496F26F015FD83C5549215753459310339B7
+6B2961EEEE74DA31FEC8E2BDDA42D4080A32372AC372524BDDA580EF6634ACE3
+128C69D04D890DCA337212B109585C665AA83EFE47D5BABC2627A86EAD11BF7D
+744176652C7F9497785A7A06A994ED8414BBE8B26E74D48CB83FA24AAFBDD507
+84A90195EA3D77BCE8C2BEDDD1DC52E8164DF15D65B916EBDF3A8A76849653DF
+AE3CAF9561AF3B705F75B9E5DFD6758DB65A2FD54683759912E0D0035CFBCD86
+5D24AB1323A0BDCC0A8FCCAD408E091D37B62D3D1BF8537CFC619A78488DA0CF
+87FF97E3181A579D373539E8AFF22856FD03F4C387BA307983EDE87FE0F320FF
+41E45F60704B913C7381D84E98411045E4AC9FFDF8168FA2286D8C7EBF681EA8
+787E7960CFCAF502B7A3066310BE7A1159A02F1BF2C5C11A3A9A52E01DE3E108
+8ECF6C9F892370DE073A17C26D92487DC47818C92555B5FA22B8E2D726EBDC07
+7B0E0DBF8060AEAD5106824D748D9C085BAC95E031069395B41D5BB131FCDAFB
+5CB678DA317AA3082296487B40E1D4297E22905E096C47A26F4DF5975ED35156
+F33D505FE3ED168177598CA0CE444A03F66032BD7D1C1ACA0EF9FC36C4C9CE25
+C9B1F2420CF9A96365BAA62E2704F2C662090D58BB4E0B099DDB4EEBF8D05F97
+A5CBC658236F5E4D62BAEFB5996AB9E8EC4F4F9AC53FF17CC7A87BF1B8EC4626
+1C500327CCB89B0EB07A9F4903E0C5A5E7370D90B50C010286EB368B0503D038
+A2EF77A39178507E41DBE433DF19D3F69A70793D051F813CD263B5DA690579AC
+1789D2D4CA15488F73F1F01CA8FC188FA30CB08809D8228AAC5A10954A6E5471
+F8D84AF40CBD5C92F789EB1742E17D5EF1F7212D71A06BD7091360023093F101
+36EB44A8DE87A4A196B0140641000B445FD8F603A9A7F2C6F77EF6963811F7C9
+15649EE1D81DC3E988A7A797D76DB89758A73428D690AAC6CAF6E216CA40F8C6
+2E05352428D4C5BDF539C8E423815555A1051370EFB3A9606D3D58F46E7D0B97
+CCA0C589D0E36D25CE3938B059FB0E2C8361014B57098F96088C5C98E7AF24CF
+F8A8308EA440CD67106B94310E4C81D9D739DF88C655165C148CA55C7A1E2F7E
+A6F673ED5F34F1C1D20B609A152EDECFA26875C005B5D3394AFC2E2FC73EC0D8
+693A9561AD2C3F9B9E9C9325EA9497425941EC3A0CEF1A59E6669429B08600DA
+86C38D78CFA1AE7634B2C0423F951E647B2AE424776519ABCB28AB77F98AE76A
+2F70CC3FC78E82702743AB7022329C56ED8AE3BE873992E131DDC76CEB0953DC
+37D845D170CC98D0A48CC3094DF3D0D07D34102A25E12F04FC9F4B80562B21C6
+D0B9623041BCC7B18D4B6DA7E01B5F4C85C5328C218FDEC0B2E7AB21F8BDDED5
+5A618807729AF0F31275DF573E4D2A1A6ACBD7F17D962490AF811B6AD15DF1F5
+BC8253D3652E3BA17D8E94077222B339700ADFE5BF38CB4BF88039971CBF80D6
+614832BEB7D2B86966DC138FBE843DD48105C7E99E29E0F2FE72AE73CB4E02BF
+60F5C6C12EAC32B4ACA9C532AAB733E9931A33137C07AB3D35ADA3AED8085518
+7E7D3B4AF9FEB927A783C70C1FA9109F9239B26DD05F65D8D54F98870420551D
+2529361ECCC811521394C7D904C3D2B6E999BCB04D37BE1502E0EDA3179A4A56
+13CB9EF22CB4D86DF4B2EC81023BDB6E750104A594427AED5B6C3E0197995CA8
+BE744B66F29145BB0F6F07D265783554B035FE42299759901D6F6A2861860F7C
+9911872DEA25DBE6D5128B78AA4E59E2A57001DE299223DDBBC3BA98C1DC9FF4
+939114EFBCB3CBC1AF961EBD614E0DCE47C63C53F306FDC1B839616C7BDFE234
+06C55D236EC92EF78DE38AE26F7A356EC57B2120EBA19DF60B75AFE80A3F9D2E
+181630639C870058C8994AEA6D88459160795E1704058BA44A3BCBBF7AF2EBC7
+05FD27CD6D278C6026BC8B7C18E2A7B55A710280759B2440FAED982244423846
+4482E12D15270CD8CB1D59CA27D10C1E3D98F9B314A48BBAFF017C4D7BE2E3CA
+31D92EC126D6C319EB9FBAB2FEDC321C77C290B7466734B92BCBCF2726E35974
+BA46B2017D3B4BA7F1C0597EA558B4EB271C57922DA5CC2440F767C137F248C8
+527C3CE0CCA45C357DB8CC0D20D3744066EAFA66BCE76DC6CF3727FE1593DB28
+F7C996D5A66FA4CC702D60DA85D79EE707CF0E89C4D53BC5CC5DE889C15BDFCE
+23FBE73259966B4614357F7B2651EC8BF25D229020535853004FD0AAC0858943
+DD37B6AFCAB0F947E22EA79D2C8FD746D4B391F73BDDF78B827C57EF0475FAA5
+F614C0F5FF6CD6727EACCB1994B8B6D5F3B866D1E594DADC15B4E74C498B8ED2
+5F04A829E167AB5A5F7E129D06D8978813067D64E0DFF0300D98539E9D334B52
+FADAD8EFFAE14C39DA6BE2D42183453C57722A7FAC52BA1B67DA2B7114DC0690
+4F068592A3F96517CFF904BA2676748644105038841988EF9394F97602A69B85
+F86AEC6253DA395A55DED9117E650C6E2AF35A6DC7D1869E4EA6D91413EE507C
+B61BD7D3000AC4E59840A8180DD62CC8B79441C929EE3F203BE72FE16213BC27
+78963960567849E1F6FAA1EA9C88708298C154CA1CBC5A2347AC28E960123A04
+36591A9494C920B4FA5FD6B15306114179484431F2E229E4046FBC6307EAD272
+0BD967ED020A70C78EC91AA2FED83E0B47E3DC5DC8AE9BE66F46B44BB82B7822
+D0C81C82618B1B0AFB31F39D453B5AF59BCDE5C5A0B1C5025A4E6DDE882381AB
+B90FC12A6C9E45E55247D09B4A10CED89F21E41EA5FA846C05A2B5DD29A4F61B
+45A332CCE9978A7DFB1D6678376BA32ABB7F2DE1BD51D16ABBFD34FB58DCCB05
+2E3A54B34B6D6EA5EE03AA89B72B0B758AF731D103CE52803E60E09CCD577B44
+FEE62101D11DB51A38CB3F195712884B8726DCDDDC915493F485984E04E9A7C5
+41B649513A203A57BB145ABF5EB8610B795EB55B033AC83165B091DAB7087524
+43681F56500812C2F1E1BC669BDB14CB1A0F490556B53FC71856A08CD506B292
+87EE3278651586679944996378DAF83345EFB6CCE37802941610914E6EC75F27
+A686B11988F51D62596980F31689338E7A05672F1D88B31040BE0BE01C69E054
+7291D7E397A776CC400EFEEFDBE1C53E1E3B7165F45CEC54442ADB70ED6B8750
+176FECD3EDB75259DEC4643C18482C30DE5425385A0FB2485890A9CBBC5E283D
+54B364CFBD3BD6E32F5445DCE28540FE4C3170F32BB17C826CF8FEDAD3D8BB4F
+2AC185AACB6187F97E483050583E68A463C1C477AA2EF3C3DC501CAE072CE323
+1BEAA9F5E6BF30A3DA692003B442FCEE71D22ED06B2C611A7EEAD0993703053C
+05EC7CD186DF26D6CFA345CB111CF2B8138EAB9928BE4D4FC680AC03800545E2
+F09FA2B1C27BE4C2FF56DD392E2E5BA1686B0F56BFEBD9B8EE1E0B6206595DAE
+36820FAA2D08696AC0AB65C14D38FE767949CFEF23A92481C8C29BB6B85E6305
+3F585B69E4633E607C717CDEDC98E41F5CD09790384D60057729AB91499352BA
+36B54041326FAE221AF33F81D8CA76F251C5F9D93E0B099AB587C3230970A280
+8AEC47D08C815F7B3A624BCFB96D2A0B89B4B8E897B8A15340D38CB0650FB48C
+8E486F73CAA6872E045A6E9AF8BCCAB40369190B99327BF66A4312E33604B572
+8122EB783D5B4AB9F5A5C705E0AECCC244C7B4B9AC02C44D7F51D9B9E4F4239B
+410BABF4BCE1195402012A02AD8F45AFBAB735C480513576B5CD89B2799B9FC2
+C5739A82E5F39DD1926BB4D8E539F971F35DA4FFB033321740415DA1DF4F9279
+6252312F47A51ACE4C82C1558CFFFDF23803E3E6AFD81220B073B2991305E2CC
+208D8EE8C1D9DEE231BCECD77B970D49CB4C4BA3E9E9021ACEF8F0F86E9AF556
+FD2B27F6347A984EB701F5E47DD776AB1C60FF9EE353296305B509EA76948FE5
+5D8F1C4D31FBB4A3C965E10571DC858021A65EC3873CF57909C4BFBA022867FA
+03C3DB31485305DEB625465AD2370DE5CCC57FD755B6B909895F966BDBC06FDD
+5976DE8BB9896E21E3BEA00D26C12BF4127494F43A12904C3BFB89500B41E2A8
+A3E8D2102E78ABD0ED9C52B59F6409D0FE64F4D52670D93174CDD1705B5FBDD5
+7AC716D3DF4F62A21FBDA4E7D9486868755C5C32ACF0BF7817D379ED68372FF9
+18159CB96895BACBBBE15D4FCC3EE65E67AC8946A6B105393142BFA436905D26
+CCB1FF746421D2BF0C1C073E43659629E2C33F5CA224A4E70B6860AA9ABEA44F
+EE9B799D8D380F2A880DD8A57616D076BCAD6008D53E6F5DAE4953DFDA655F22
+60AF2DCB04C068E03AF88F2954FB3A639133F66313092D55FA30EF63499EC692
+3E9D11CEB039C7B4FC957445E24AA28157BA3F55984091075ADF8A0C3D4D1FBA
+8DDF2BA16155402A97425265ADA68940A5D272CD8942D0F20C95FDFAD6FABF94
+DA75E4F9EA277F4F7E1FB1F9641D35FDF7B2A3B17CD14547AF08E1699F243545
+890DABBFDBF957A33978F18BC412E6FEEBD24D4B57B8EEE09EE8E7FF8A079BC2
+5CF0F97C7DB73B4221CFF955C1FD98CFDA1B6C5AE13ED6B5E9EF9BFDCEF03A3E
+E3C18926ACF6D3A286680921E044D745B148095536855ED8210BAAB38D3875A7
+EEA32154C62E9877FF33999D9ECBB1BF511E735C92833CBBC78E752B12CAFFF9
+1833AB5A870DE74D5B9EF61C27D66E9842066B0BEB7F3E338FF1080F5089F343
+43C9BC0C817A18B04AB40C58B7E2362280A0E2C70D362F6F93E4553C8610D9DF
+31791B3D31EAE223F6C7CAF9290AD7F2FC3B217597AEE2E1DACEEC4663FF7982
+2D7F6C8D6B03BD87D6C52D51137145F8F4EA5581B4DC9C5E1BFCDFC108333438
+0C1B95A33093A60EDE16FAE91F25870A2E0993ED9C3DA5692154467FF3C26AE3
+82F9938D8DC3F73590D3A9CAF743B6244226AE82F1959AE9C3D84CE3CF2E61E5
+86EAB85612C11BBF1B2792DC9E70774194AFF7793179176BE19BC2C911557CD9
+7ED73B6EC6592F4608EC1B5CC2A7E8297D7B44A206AE06AE4B9B2C74434BFE78
+365FF7A31565A6997C2F060CCF71034F997BF98BED5E2589BCE93C5CEB2E6D3E
+E9FD6E5017AB74A2798A76731340CC08A4A86F2D98C56EDA2113E7E489B83278
+1F87E5919CDB358A9E2EFF5C2F7354519FB1902718BB6663F962905517B26EC8
+05746981723BB6B76B4C3C93F443A9BC1AC16A3CC4AF3BF015EB09F1F7ABD52F
+2017A9C8BA4F466230762FEFC6295D60D37F0C02225D1C23D5740662AAA81E4B
+4C1ABA380E3A9C0D43DB469D129175C1CAB377CEB89A73034EA75F6D296932C5
+50E0DA28A5C4485990725ECDC7BE886DA287014D99E492F210EA8EBBE8AED0A4
+6D7E7E75A9F6EBB7C67E688CDC17960F401842BCD777F294824B633E85919A46
+E8BE4C946737B66355C40937313B0212793F3D820FDA8FB58F8143C74E2118C5
+D921FB179AB028E2A0A4C1A0729451775A02A99728BE1BB64DD4E17C75F72E64
+086E5BB32907CEA16B2E45FFE7F8AF871E2F7DA9AC44627FDCBAF466A6055BD2
+11582C6D2BD8F578F9974D78B3E3CDA8C0FFAF80C17A782AA9F6245172243E01
+853975999B3FD581F8979E2D55E05B3B61F0D04850C86DE09BFF3D0D6D2632DE
+F859E2ABCE7F33C2706F26DB8E69051E420E3781819C034160929AFD18921728
+5D11124977B64F630BB4812CCDB4B5B540CDA2DCFBE4660BB51C16E076B41230
+6BB2A5166E46FB0DF842CF19F146441D46ED2FED156DA86E645053FFE17CF92D
+6B9865759B7CBC3AE57F4C7C4CA265550160DCF564CB8C53C0482B618C90331C
+021B96F877A07AE862F9552A8E6CCFB4816B97D2E76996BEA6D2B4A46C118ED4
+BA2C8B9D623BC42793AE1EC3D5ABB3141D5D98F077F68A0ACB6F6DA138E740F5
+57A4C00C27EB3B82632D76EB83FEEBDEB7EAD39BA68B8DF02EAB2C66BA7EBBA3
+D420D0FBFDB2D6C4E25D85134FF7C27B3A08467E29D1C169273E2F9446637CA3
+CED0EBCBAB2200EFAD728A8244934D856089351799115A85DDF888DDFFC2166C
+5514E3307DCCE529DE594E98B749558E1653240361139B14F63DEEAEDFFBDEE7
+EA2C526C133C7713C62E083CD584C73AC43A4F4C49AC4C17B61B508F4B51C170
+EE2D275F6E853EE11A6768F7A5F62F66628A15A3FC4EA4474DFF01E5A0673FD6
+B94354DAAA93106592A4A184F2E0890757AB8A9C963D846ECC2F8EDBEE794F59
+02C8F71333984C7F828B34574D0FF33930E277E32F29F742EF9CA2BB409BB543
+4931EF22ACEFF30AF27F5A96B007828BE87A91172752E66CB11B241CBF76B499
+F2EEFA60F036F7505314CF862184A3AA20E334EDF994C79EDCA43ECDEDB8F2BA
+EC4B611E281342AD499C2DB48F6D0D6E11B3FE263DFB99632C8B915D51FCE73F
+4E964C6C920996D0D6570274A375B05D7679D0AF7CA2F0A438BFD676B1C67C14
+E6F8EF29F9DA272F0E96C88F7027B5FF5BD292047A5490BE0BDA5D0EDC4F2FD2
+AC3547FC9A9B20BD2A264BE2D4740B844CDEA6A10088194BBE9BBF809113B47F
+23C9450F3200481C0DDDE024B8EBC4B047C19786F8D031BE84BC4AA3F84501DE
+A14DA9882863913050E146A1F015C734596918E7D0450DA352AE3DE5D771C6D4
+B9B55850369137C9FC885D516B8ECE3A2669114BEC5A0768792860D807CFF2BD
+0E07CB18C35574CC04B5D70D4D7F9683D17A0383E45BF73B0C44E6740C507554
+EAB3F75EC6090A827207B9E1202781056502BC61C5DFE3B6BD75FCB366CADCD4
+86B0F299E0067A5CD764C764A90E02398E9854E505034EA0C7AB766589FDF0DA
+9A59A26FA93A6EBB0C27F6B3D4E93654CE41F7A38500E0D4EF4DD34FC8EC33B0
+3C8E33796E956B78C186952B8D7AEBA2BB8B5FB5A498ECB8BCEBD513E3C132FB
+11F51A34310E61CACD51EECF8E2B15D70AD6503110DBA610448224E985B5C272
+52332FEEBCDE50E43D127CE228B8B7646945AFA9063E69F0227F9B55850C1182
+6921998675D57B51BE83C98CCB6D2481A3026F6C0ECEC82C2A9681FABF764F78
+8C27D8D486F06C19A61052AF806D0BD254F9B45793E3CFEB604F94E59A47D38E
+190278C71F19477129AB39D8F8F5F539F8DA244F45B638586556DC214770C6A2
+1C2DBC44E492A1ADF4C68D0A10D5EB138315D624CD7FDB1B2F012CDACD1C8FE0
+19671FF4A04FEC685E96A4D09B3330C62D62BF903C5ACAB11C3CBA0715DAA76A
+D81DE4DC5311AB115F677F6A7BA75B790A9AB7A520B70E9258340A3D2996416D
+8D9FCEAB479086E28D8B40586122B9369FDF25BC959791B1525169065455D186
+D59D391A67BF9826B05C65A49161BEA5DA08B4E301C5F44E5198738513004537
+68D472C7A3BF0712E7904A54AC9AD6EE8C8311B221A8C6EE37F07BABD61C9B78
+96C310A3BAA9C7192842102281A0B9889A24553576AEF5443E0F66095E239BE9
+EDA3F06A32C8821551AD0D969C82F1983FEA6989830AC74E90F1FE9537E3CE81
+CE7B6F07F6A440BBF02E66230B03AB917BEAAB2704F190F1A27E0B0FDCA58BD2
+10943F2B84B95E7487DBE4809F00D63C9AB114D119605ECE91C3D4E881255DAB
+A498FAEE2CAE48A63C65BA7AA8D2D39E7726FC5004F969520ACFE0D41069A9F4
+A6C56D3BACFD4DB56EAEAD34558E99078B7CADFBB45E06144787070E2C7C6110
+F638AFD441ED554E4E45FB34837082244968C0EA137442F4FB8C2107C2CE6733
+71A3A27D4480DD4F690D7AB5A5F7488B90918D0BE534CB20CCE91822B3BF4D3E
+F3A7D68395A7F756D2EB62640C12E783DAD74391D8326679C9573132827B9604
+38084F2D1602769BB34AEEF045FE7845D9C10F5418277BDACE514D79A008850E
+1F3EB1BFB8E74CE4B816BBE06A724CC9FD12330E3CC22DCE597D3550B3BA9B96
+4A22B75FEF33A162BDBD4D90205FA5F984F117BCE11E7A6CDD08C9B6C4D532C4
+D6A5F70946AA100F48B5D2E31268F5B33F91AF86220894B04DB1D1DA247C5C04
+8BAA1CC65F5EE678864F92BFC53249676C7D6CFA7A54775E6318B0023154FB82
+57695B1B3A62FA75F8EE346D5776CC2040D7A57559140379D90382965747B165
+0A52663FE10C16ACBFB14489C752A7DCFB1262B92255A7E373F43C8D1972F974
+F9D7AC475C19BF7E8DDEE58D7C5A105ECC77A9149220F90CFBDD200600B443FD
+49B49BF6AF96090913632947D3F11F94D8190B8C5E1E773C482A1916BC5EDCAD
+7E6D109BBB864349B378EFBD1FED5E271B8B54B2A4175D0BCA25A0A914415078
+C5EBD24A2B13E1D806E70C414FFA906A1C037E8DD658427F4B4CEFED7BAB8B0F
+C48105664AAD677F3A4D1C4CEE84C61736D6A27282F6BCE72FF3D11F162CE9D7
+AA856E820B15C91450F72ECD8BA1A39C74D02F13C6A45E450C6D4A7972E45B37
+23AF473B3F9BC93E42547F2E2696386D241C29E0E497DF91366A43C48063F035
+178334E6EDAAFD676C9C8965D0A58A82376C039B8380FB715B80325CF0370CB7
+20C2329F159CEF62516E9400E2A187945914F62B29BF68945892495EA0CF50FE
+2084BE19E630BBC0529591D4DE74372FED5B9048C896993E47D1A7B6FC14E019
+B6FFF311026A2C4716E88691AA7C640822AFF57865535EAF6EAA9718BAAF9825
+722AD8E90CBF8FF19BFDB9C9F13D51C894D53C877311107C4EA2A7B5A8C8F0E8
+DD741D1687C65127A5BEE438BD8B6E971CA2C4470B1BF72FD65ADB15E195153D
+6041C58C705DE539EFCD8AA7501432676538A9AA652B67DFC754BBFF9A67FC87
+7B7E9AB3D6EF82333EC062931C604D7B52CAAC0632445239BD13B505DDBFC749
+7A3B4AE7FE13A68E34F887DF03DB326E2C59D8526D5236722ABD75D00F1B5451
+5F06E6AA3E49D9C07005EC2FF4425794D9CAB1969E5B5BE9E579855F97973279
+94388BBE3B18CCD6B6D4B8856F765C8E35199B26D6D8583348EB75B61AEC5B21
+90CB94A6D23856715510639FABCC09625FEFAD5073A8CDDBAD1EEF58DEFAE21E
+403BA59F54ED467E3A1BA67472721155B800E7B26C720572488A1FCCCB0FD98D
+93951661F75F348312D438AB542D76733BF0CA29E06EAD4BBDFE9DF8C1283755
+118685CCC1601ACC63AA764CA3AD9D26765BE00876D5D2366713FC10774BCD2C
+34BF6A83D83DED560D4D764AB5AD554B558DF36C489D0001FA0B7442F0B6E891
+BDC05E3A05CE838AE825D66DC8F823CB7A1B8CB2C87A659DEBD2CF09FAA16304
+72E3FF99B10CC1F25F94D041CA5ACA4F818F532359D6FBC185B1BEBBD68D082A
+5DD58931D71DCD42F6BBF57F18397159A5EABDF99384B45E2647254C4157CCEF
+CC319E76EB2CE6ACE562339D6A9F64FAA77554FBCC7ECBDE246523462B6863AD
+EAD79961071CFE8031A23BC7C4DD41BF1CD65CD7D3BCAB5780C14D0F88AFB483
+DF9AE79FEDE7C94A4B42D266D9DEA4C9908AE553EFE0CAA60432FB8567BCD0CE
+370116225F31C4429DDB7C17F0ED00AE0D44394CF5D5AE993B0BC176E86C372D
+0C6930ADCAB0FDA8DC641F5D01C1437D057A404C439CA02499F4B5CF9663B463
+3038056A5CEDADA8C30781F895B9C41ACFC01871B902BC48FB9727BFB5EA24E7
+7DB82D7C182666B3F5BB74DC7F066ECCD75745500A1240242C7F9E7F9B978E0E
+0462139CF2B07D0D6444A2C3982591F1D983FACBF2F28224DC436EE805C21A4E
+FFF1A30B322B3E3A9B10B24F05F7644CB9664A269180C5374DAC93FC33C33D48
+33D5848D06E791A0E80C951547B3E28EE55FE08E2B7AF25B190FCA6A88C040B4
+05A66E2955B58380DB8FB1E47C82297266F6B51B42E548773FB17FAC6F57916B
+816414E739EC45111C8400410E2B85236B8DFB9AD2715418C1F180A725EDF8D9
+167F6FAC0436EFA6D45C72130A08EA4F90DB963E4839F5BD4947101CC29D8530
+9545AF95F16C8ED5B0B874B09C2610FB04EC02124B80576309857ECB1BA3CB65
+EAD413EB741A130C16E8048FA52EC0388164A9585B2BF0A0A79AF112F88D9EC6
+373C2D91306BB39D5AB1F9B63DF574C9C459A71DAA26A8B5E3CA52D5DABA77FF
+818154A01014773661A486D7D01BEDA0509A4631B42BEA5411B16C2DFD0A996A
+816028572019768F30B1A4D35AAC0213339E3396EF63EBB7C002F37511E4C6FB
+DE40E651E9BD81CD096C5C374C0D57D75B07CB58077A894A0F21D4A5E40CB0E1
+A610024451498EE26A5AF866CE44C4E47FBDE3AB3F1B4601DA21C2F78DD9C1BD
+C1B959D35C63D0F0B12B83B9F6FB1EFFDC8E8F5E998AFE062CB1B212D11D23EA
+B94D4B07C653EE5AAC1A0C4C27A266A20E8816A55D53A6A448178FADBF54B4E5
+1D45E3DA622B896483661CF5E09C548AD42BD894FC1BDFEE4A4F27E4916B43DE
+80499421DB19A19A587455F7A9F527C935B375B816408493B8E3850AB652C38E
+E3FFF750EE6231EF28D536FCEDE8E20210393287B81C488983D8AB4B090B0EB9
+EC9C5DAA111F2B4A96418006EF5F524006488E634849ACF54E065D8457F1AFBD
+8CFF89110682FB1D84D0554EB61F2C8238A8E2D15D961ABC1426EA622C3ABA05
+CC5EA489708A41D0A1B8AED06F969891A3E71D6D965430499E69313F4F1CFC07
+EDCDB1406A11186395AA6626FF7E538F0725B4088D92BBA72798AC5E7FD2A2BE
+1DCA8C6EB582343EAF7C7130B1DE5E78898062F8C11894E8AEFAD95E18348CBA
+E09DA3CDEDD41980CC177653E5A58C2CA7197FAB9028EB6D9790B79323C010E9
+FB27599A87FE1288A0F3EF10B61503735ECF137A1AAEB359C0D9816026DACB1C
+91B852AF316709DA7905A5FEE2FA026743635F611B1C93F9FABDB1E0B6DCDB76
+7096C2681FBC0FA6663F2401A1514DBF5FABDFE8EBD3CC2CD9CA2B7DFB953187
+7AC01FA17B9ED9FDEEFF377B3CB2A1EBF823EE60355A74798040BA0DD9F3FC86
+72849AAAFE41940925F958561A2F4B532A462B3C4BF5008D8C0F6C4236165969
+CD240A69D82BE962F8D0FC4E0113C3C76CFF82A577C762AC695125E74A6A0132
+240CD89ADD198C11A5E90FEB14925B34CC14CC6CCE17E3C9AB6166321C139584
+88B7DA279683BA62A5132CF5ED3D24D11652EC55DD18445B8E54635F2B2A47E2
+BFE1B50CFDE39E9301116D994EA550693C404752BCD3BD691910B6C772EEE733
+B83BE0C16F9DD96AB85124C26FAB9B80D730DBA6CE122F94F8EC85B3C2054155
+FF5B4314B1DFF7F3AE54738DEAFCB7632F1822A6BA41034432B5E337781777DA
+CAC61DA71EC3ECD8FC1E2465AF9B2D2D1D762E7E2AEFE6CAA8DBFE698ED66813
+74524CA0E97C1DBC102304A832EA3C82F1548516B0182CBA8702984C7E8FDE58
+99725A8D439A2950EC75F2085590DB513684B3D3E3D2D983EABA6A02C96EC40A
+0E2F1A7217D0C1033FA00A38F98BFF0997A6B3AB14FD8A1D5CD6EB41A6E774AF
+DBB69F8B0FDFE9953262CEB7F731762D98191C744EBCB35024AE378D86B43364
+D042C0555F0541823FCB733179BEB954BB6EBDB6FD5D864FC6B1331C74229706
+E2359C4119B4DD2C0D51893D6C4C287F6197F60335016EAE1C8599F3A540C8FD
+B73D99B317C7AA49E46AF4E743069C01C12AAB83AEDC128FE32A8A3F3BCB2EE2
+18FD37A96A8B335913D8A982C839648AFBC71606FAA7FCFF7432DEC20CE09EE4
+54BC48DAF5B041F89E853A4C72128E1CC96F5F2EFF25B56BD43F72303BCBA2FB
+B3D1265AE7C1A5D5418E23D46A4053EAD095DEE57B542532B407CA3ED1B2CCF8
+9CAFE864BD6288FF7D6598F6AD01723E0A18B67983D9EE91B55D219D9DA2F760
+98B290A45095293D570256E439134A51F67115CDD92688FEFC0A3DFD09B11A4E
+2D70E55F3B6E2FA4DB2563A7A753B9E65B8D109E5A18BB7E321B52EFA6E0D5CF
+0E9FFD32F17863DB6069A2DCC0B96F24DD16E40D88578299C20FB4FF8B35B5A8
+1B8C3DCE9EC7EC9106B3CC8C270425976C12C80E4D39B8094F792FA4499B4110
+B260AF1FD83A673020A3FD8B819D114501C501A9025BD2E025E3917C827321FE
+79899FE1D21D198D670BA33F90D5F7139ABC9C3E5B8B780053FA583D58E1498B
+F022F01C2082B4950ABE1F17A2D7C412EB7B9825E68454883B563D1E9DF9FA5D
+70E9DBCC78D127CB212EAADF94E30B306E09E77A1F4BA087E7E5EDCA28F50A8A
+94B428D20CE1AED230FA9302B73E4838C1F0366170687580EDD5256B07B861C2
+A0B1BFBD0664DA5388D874597E2F48221FF16F4F491F667A56E2E2E4658804A8
+56B2BFE551814FE69EACE16ACB4521E24C90346A1DE65A0A18596D87FE23A36E
+6DC5E9EF087932E9A466D490E3845A812B4E7C5000E9053DDE6C44FEFBBBC706
+E5E9BBD41F9307E0710159201E23B7EB1599604684DACA0D2C09F4CC9729ABE3
+563E6F5CCBC578093620B3A1F604CEBF06A34AEA452B6BA6AA2290F41F6BEDA8
+A1A4EDEB30D701708486D1E8DB1701805539B1DEABB3B4733944BAE6EA259F50
+5848139BC504CC001BCE3C0C8E1274F02E1ACF60961EE4716E6C677C3192D321
+32682864CF610F24CB66D6906217462B397BC5595F685110688C0C64EC6E0813
+DBDB8627492FC99E3EF4D1D47146C92AA485BFA82D9B9B49F1A1A43105912A55
+3B9368A99CD3A138003F0CF9C645F60E0183C4D5981CF715AB2D69906633CB27
+3389BF841D74D35A2D59ED8D0D072CE049E066FF471C45360DBD3DB58C1293CD
+3D2EEC8357B133F6828637E52E56A47AB01C07FC178C6DB8260A4B7B5B4091F1
+2853E04EB6F8AB4FCAE14063D42B4A7C94DC23A88B85F1204752552713882450
+D510C17353E9F12E76C426CD0AD4045C67024A0C990245F62870C32A003CDB04
+760E5C8743549F4E70CE1B265C731D1738566AC8EE21C81CD983C5D35D99FA10
+601E3A9D05EA1155CCF8E3E54C3BB843F5A701759C93598254B11FB3692E4803
+8A9BFFF6385920A67A18FA588A9E90486FFBB5C18DA03A38C87B120C136043A0
+E63FF25B48B1C73FEBF0DE467BDCAB7DDB91B38A664FCC00D4EE42C279A878B1
+B1D55466879EFF8C2EF2E02B75356E08825EF0C345E67A3DCFA23F0F4F0BFF51
+FDE3F68047783D29A45499161D0E526373AE1EED6D6196FB6BD5127E8ABCA579
+002E58B20BC9A97EA4BB300E3409C9C433546BF4593C3622D3735B4D0C299847
+51E72395FFF45E646F9023548DEC5CF3969A36FCC3BB9752A59742BE27F6F81F
+F57E44460B3269131C1313E5CBF8CFA5CA233C932B9E69DE691A338CDBC9E3A6
+0338BC73CDB497B810A50187BEC4E93F719493045F11C121F70476A5786B1C70
+1EB45A768709C88887E1AED58C80ABAEF49BC6D46235507FB9D7A28756F1A550
+A261570AB83A5CAF4985474F9C5EB69A7DF717E82D3E43EF7252836F42EC85DE
+62CDADCAA0DF8044CC884815CFE010CE949C63018869510E50EA772E19C8422C
+CFCF1B502050AA7CA347065FD82EF25BB0522CBC74398C014A6D18D539318EBF
+B174AD27840A9174385118652EB37C23B1D607C3FEE78E134B7FD12BFD937091
+62C38646544DF759ADECB09747F680D5516B7CABC63F7161530FAF85205BC431
+2B5329843D50FFB277124C5DF4D6B2BA5596FA38132D9280C1FE09982BCFCFC1
+BF571567E5D05274AA8EB9B1B3A2117647072934DF7561208E74BD5E05420766
+7E63EFE67040B9F1F6370513BD6C90D75E0B3239032204D6FC50AD42B7A3C49F
+3F86C9C24B03ED45F72A1B9A4717AC72F13CE0082B87C519EC2D600CD346D961
+C3455DAA7E13F896F0CC44EAE80EEB84D0F741AB93FBABBA8CECFB785FC93DEF
+DD459808CC98F9ED860D3BC068F522D5FF5766F42136705E21C471ADE45366F2
+FA33D923B6E276688814C5EBDE47862C29C9AA5A864DCD180BFB81FC520B610E
+758D67A65589D276B164A94CECA37EE92EEE486F4506E1DE9E9A6E7864BA7199
+C952CE308897EEBCBDB6E584F9EEB4C8A3981BD9B3DEE835B5AC6EE2FAA5A730
+C5BE0F8A3318B6FB2F66887E79EF5D0B448D47B4E6D666920CE85CB687EEA6B1
+9E52932BFC24A46F88F33043C42356B4A116991C1FD9BE5A74F37060B12C822C
+E03DDFF81E8DEE9DCCDA8C6ADBD899BAB29B82699CA72630A6C74F27EC92D88F
+E038E9C64B38043A06F7FEA458F654035A2D5D7AD032D399883EAD6138525090
+009AFFDDC53365EFC47E17751C14006DB53EE81B8D45AB3F1A4565EA82F765BC
+0C83FF3DAAF693CE0E35A7CA30C4F1B7CAD62B93819F6FB2DB467D41E36DA1BA
+A4E1262E6FE8B468CE8123985358DB3E8D6FF897555C5D1D0FD2CA97A7D8D32A
+5389DC451501EC85511FE59639B7A891AC7EAB81EF53E69BAEC97A1CD1F67723
+AA00318CD476D509608A5AF1783C9CEA164E136541B1398D5C219669BC2BF636
+27154055A57B2E8D2E3E61AD764AA250DDF074EDB6853F02F38107A67BD68753
+F0BBEFD3DAE879857B6B39E7DC8BE784B1A86CDBE88F5D6B72E334A74BC6E028
+647AB2869860D84ABFE0E952549B285C3E8F97DDEF5424227E71312430CDCA43
+53A933435CF18D04B4104C0D9BE150542222718D7CE78B59D2AFF5FF057A7E6A
+A89FA451C0F7EF7261A78723ACA0F7DC0D0D6B7AF0A956F578D1A3F6D894DFDC
+1E6E51D644AAD195AC74E02165868647A09692D06F18C1566EEFA811F01A64AB
+2C772943CA53DD82DBA0E97E6CD7F47D4A740CDFC8823F5E3F621F76FAF1DD00
+7AC0776C40D12B159AC1D1626290ED451BF7640D0867FAE368699A7B84FFB510
+F25C428E07173B08082D861D175F4E1A95F2E1BEF46DB8AA8C2ED75C3EA5A297
+2743EAE6F23B1309DCDC6B5CBE6C8B824DA32AB86EE9A90BE932095C18EEEDFC
+B8C8504EA898703CFC276AE598DDDFB3F21FF500A4B2364C8F5CE00A855080AB
+F96119983630918D78135540EE0155A96842BEB60C87B2D6CF0EFF095DD50354
+1B5C4DE561DBCCEF47DC379D5C4091A2BC11C6C39510F2F3347B277A3245AF4E
+9BD3AF6BCEAED668672135A24D5DAD7F25E5881E92F0854C20BDC83993FB64E4
+2C09D19F49B8428B0DC38B003DF1EE9B4D7BBE226965D359
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMR7
+%!PS-AdobeFont-1.0: CMR7 003.002
+%%Title: CMR7
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR7.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
+/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR7 def
+/FontBBox {-27 -250 1122 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB981ABA2ACC9A23A5
+3E152596AF52983541F86D859FC064A0E3D5FC6647C3CAB83AD4F31DDA35019C
+CDB9E3DD3FEBD4C2B36BA3CF6E6C7DA85E25D8A31A9BAD39BDF31FD0D1790707
+9DE6A078E8A409D8295F642DF492AC4F86AC84383B0F4C6BAA7C22AD5A898A71
+D6CB34D2CD12266C486B75E75A69C14819DD9BB8159088E04D4717E576B8482D
+BDA52110AC8B8A80E4E9D58F470EEBD3CF44A1E1EE8DA318FFF3611B02534FC9
+F4018C7C57E80570D2F634D98BE5D5EC6D95051157F0EA94A3D12BE0B4B79939
+F82F8D73136D3337C44E314B0B16CB030D9A12E01FB667105F334C3EE965E5A3
+D410D2F1531547A4497C355AEEB295CD3C5334BEE5232992960B757594B89F3E
+52095042DBE6B4DA3C3AD50CA95EA9EBADA10630B500CF1FCCA7D60306743681
+7E428D33B7F7C40B425CD58E4CD8AB474BCE6A307BC6C6EBC15A8A96E0E2977E
+A33389154536F5C5D8CF036D07F24094E779E5ACBE5502C92892F10F4C6DB627
+C7EC4C7BF20B39418A8A85D7FD9B0EAAFD871DDD41F93BDE5FE619AFB8711824
+DE890E62C1969A6FE28DD3578AF43D58A728FAFF0B9FAA640962C8F35A26F76C
+67F3548D6DB54A25CEB368B47F97EA2B0C4D7C0E7894A4F0C823C6C1922CF9DC
+10E05600556F1C7C9AFB33A2DB6F8730F70D6BF94B1FB0887451F2FFEEF3584F
+DFADCFA9A2D4846B8F0E51620E1327D994CDF973B837D10C90FF76DE22B47CD5
+EE3183898D156861AB4DFAD34A1E3FA260B8164E6680BF58413A553E88F6100B
+C4F4E8E972C81A5F88A7DBCDC308B4C3581BCDE13877B976B1F84330839FE5CF
+C78551620EB803DF94A5C921F8EE24F7EF8FC4C3E1653514212631F54F90E3DC
+E9EAF96E998F340C4F729ECF7AB430FDB7C0BE3DF2C0D23015820E28B743CAD7
+7F0AE95413C3EEABBC69E852F53EE1DC260D7F1E712BECEF2F18437DB23D8E74
+2902AAFBC733AC5BAA452DD6F3671859AD836C8564E99CDC4183D8495AFD99D6
+1F0D65B6588CE7546717911E25BDCA6C2649E3A7466A3E2DA7C7994A30AB4449
+672EFD00632EFA8629C1AFB7D53D801028F77C864869FE636213A69173003EA6
+BE1ABA95EB07B13D1594BEFCC95ECB0A9CFA9892EE0677D6B6C250855762B7A7
+8E4E022640F93169DFA0303A0D5E73BF3E0F4D4AAD10FD7E4EB20532BA30371F
+E9F480F9513432946F9828AFB5D4AEAFA5829B2CB544E5EB634C4537EF7DF08A
+A1CFD94A52DCF0E7CE4C5EFFB01E6D50558B75DB4C8D5512B06080F27BE62E01
+2EEA6A0357441401458C842D3DD4C35B8F561D816B336216CE0C14BF77648AF5
+E33912CF95872A1E1AB9A18980A0B29A881D13397C15E1CBA5D3E0B27943EBE2
+F3003D15EB446BCFC1C231832475D5B7AA19E4CFDE119D6CD62D053C6D29C333
+5F729791D17B3F7108074EEF4D1BD101CB33E01004532CB0D716D2E54D169C6E
+80163E70C0E9081F31A1ECBAE079D2A518B790B0CB2CD03DFD034A0F4788E800
+B0CD2DC1FAFDD487C2F381EBAB2A2F3F3AF82021B211DC9CD2FBA6A1BB3D4AEA
+4C7F3D9A5C21DFF284CCB827D205A69638E98D5DD8E36AFC1A4481B5CB2A2E8F
+D6C838DA6F81990F5ED928DC7457501B5C979FF4CD20A830896A460C5DB13D56
+A3B2B5D9B292374A9BF392894DD99FCD6A1E655AB395E839F074D1596488700C
+4E2891C8AEEF66568E82A8B826F9A28FF84D4D9BDA21F638EAF96880B4EBE0D8
+081982F34831A03BEE81FC177700C2360D2A48915EC40D5FE85B400E175D5AF1
+067FA0097904FB647757BB44B4042D30D1557BD0F7922D731142FD682139CEB7
+58CA4C8C240A0B86B1888CACC507E24E04020BF1882BD9B4CAECFA97DB24D7F5
+AD64C69454027F198BA35881B94EE9159A2D73E450C3BDAED66B886D6DEBC84B
+653E165176228F88993F12A170775A8D7038BDF2FE8DC1F7B98BDC02D1E6686E
+9B834F6C0AD90780B17DFE25F0A4E470CBA84E73F2D22BEE09A040F14CFA2C14
+0FDA5A5149B5FAFFE49F55EEFC43831BC43A8326FEE9C7F469C0FC3B000884FA
+41DA7318EB57262CB96FC4EC7F16CA07FE1C3BE8C2DBC8A8135953D6DDF20BDF
+75A2B6D26074FCE752BD32FB9F5CA797775E8DB9BB9786B469A3CD65A0D9DDDA
+C2A166E454A94860EEF5B5C12172DDFC576A03F6E6F8A735FF21A3E9CCB4CAA1
+3064893487697986A42CB5888B2B0A79FA3C74E8187BDDF7BEAB884B70B8D4AA
+AC6615745AEB906E08BF831CFDE222F58D02B428D55E9D5A3CDE74E42D8A2CB7
+E1A3A9439B678AD438793ABBEB72B21C58981DAF3EDCE4BB93D95F4A1E943BBC
+B3A012DE92FED4F232A3A7D60CE60B605151F9C7C18A5C653E5D6D15E5B49A63
+73E7A339504D0ACC74B8B116EA88C3EBA2CC631AAB29F761E5F062966AD2FD28
+7FFE52FA8A115DBE23E471094FFB3CBAFBDF11B7E9058313F2D069B2CE98A962
+64645738F02A31E2F2AC11628724034ADBCEE012721EBF0A567893411F950410
+B20754A7510D041FFA6144AC9CC46D846B82581F20BBD001D34D9764010824BE
+61C30D05E5C5D100A24F1917F01799CF5BC4E50FCECFEA732CB50196825F0E08
+8A1EC868C6D4357857EE2957E081A0E4372E31A8ABEF23C3F2EA0FEE57DE4D08
+61C570175C41AA0C7A3A579ADF593F18B4AE3782D2552E4E0759C32E059EE741
+2D8191E381731769F6648B3581CAF11DAE46471896666F18F02918B0860BDA3C
+BD5DE777672447C23C62ACFC2611ED5239D6A266FDA6031EBC5A530C1A2FF7A6
+B4380B9A4C877267854AD1F1677CB5433F28894ADF93D39EAB94541A8D232E08
+22D082D0951A60F62B87DC028714EC74133A4D65F7D0D1296C0E189C4A42AA98
+28E8AE7ECBB9FC8DFABCC6EEB1E9FB06227F90808EF31331CCC5D4C9A6182181
+047902DC9FD0444FB94B60FC74F3B677758088CE6A159D940C5CF682335E756A
+8BACF06AD7225D49B0002392C889B0FE2C71311D2596F4903D12FA20BA2FFE25
+A0804B4BC282929BE31E0F46B34532CB5795A65218CFAE21F390792DA67775C7
+B91A2BF4C16DE4F6551DAE3A5827F616BE9040EE6B1008DA2F99A01EF66D697A
+6CD1A44E0A15D1F39EA8025E886A68A1E9C334327C7703EE721E497CA924AC90
+7723106D913C5ED4BA4FC743CEA8D0F5172526107DA65775C0B1B77179D336C2
+9B09B608D80B1A1E87CA1A84A833A00D980D919BFF56F6390E9D5B45E9935CF5
+E69D003564462F750F7DCE02DC23CC215A0696B74D8BD3156A392A94F557655E
+00BFAA035647568ED66157FACC585E411F7F428569C147DC43F6E4FDE693D0F3
+9917BEFEDF61FB980B85515FF6424824E2D995B05CA1E5D3E8BD8D3281DB7CE4
+E54923E84058FFC0A8A2C491327D0F87CE4C352B724167CEE224DABA3B95757E
+4A419594BE4F92E78BA6D35D4C93D31ECC3134B24A45DC32445725BB044F09A3
+AA8C31EFC0A2944ACE2F2CE054CF24DB350FB3C71115518C24BDC0F7E54250AF
+9D3378D38480E1CB9029F31570C619A28F065CA4FED5665EDB96712ABEB33B9B
+4232C00C1B0215F08D53F7E430887035AC25BEAF06942FD1B6C442253C887AB7
+D694C1A6115C8990B4CAF1E81DD1FDDD6B03C00055BE956BE7FD8A4E1049AE69
+EDA8593CBA8C4A41E046C689FBBF9F1B64E5856A7FB1C61EC815A56DE2A8ED33
+41F370B8203D4E5B19C63AE9E6E0D26F4F3814B5AF48AD30EC9B8402C941FDD9
+722FCAFC638FBB835F83DC77F93D367266FA7DFFFCB567EF82B1695AB4D94D09
+B18AC041811027229DF431F5CB2BBF6ACCE9D500C8F075A74590641C1A607C56
+D2B8624797BCD9C91C3177818691FBB4744EDB6056464A0B95B8D63F7C22309B
+82D6126E2057BCC9FE5566D96B7A9B201A09B0D3252A5494C8CA2C8BA8A13C29
+37EF2A882D61DA708C279F663D88A8E2999A0F3B6F98C49901A7631BF7708B67
+54D0B4C52BF4BE0DA0439E6763A7C9D639AD4092E77B13D3510DAE1475C978AC
+796F9B2AAD3BFF35C5A3E19B5E2BF704B3BBDF68CE48BA4FA2496D60E58888EA
+28AE12D00E9F0816FAC190590A865BB58569A91BF0345D01230ABA361442006D
+BA2C90EC2036BBAB79EBAFC3F217DBD5854C519235F9627A1C3C71D21ED38AEF
+0BB40F3B86BB9F09A3F309473D8757AB7E638DC1C59A7F9BCD49DE4107A2E54F
+422767FB94048987847205584309397F554744690ACFFDF5902FE5DB355930B8
+71863217830DD7A563B0B3A4025ACE75B0E777B4414B62A13B50C54E0E6D47E9
+D43BF769B9411B74E1069BF71BA873B4B8973EC9BA492A5DEA58D267872BB246
+10AA67B143D0E2223FFB4991E583E629413CC894C3FA4869B72D19CE1A0CEC8C
+0FF5E5A3EC1FCB7D3C4289813F0D249A11B55104BD60B2A89BEF44CC77CCDA9A
+065B8B83B4F4253AA1D535290DCFAA4773452D110D2B3370F9E2FE5432B54A9E
+644EB3BA9BFF62347F376839024CD5EF3C5DFD30F412DD5474B7933E6A1AB63B
+4B12F2417C72D0543C26A263AEA53E5BAEBD67E23553A72E949DEC556BEB5D09
+C4D7A89B14FE4EC68D0E3E9D65A64B285E53590F418EDA8175113CA375A29930
+DDCF4C71ABB26CEB800C2C2B253AC1F53651C88A56ABE5A74F3B54CB4FFDDB92
+60AD7272BA25EC2F6FB759AA6E1E7964FB55AD09F4EB25DE45FD01833947BD05
+6266AA8ABB7DD792941C7A070FCF3A4636FBF8921C70298D42FE92F079DBA2AD
+6149D9CF9EF7264DE6DFCD4429949B15EA90B596340713BD61926DDB2BB23BE8
+F9DE38A31620A817420A245946E551463960A8C5C7295E3B3D6A59BCDF5E472A
+40B7A2CDDAA43CD8AAFC411D037142579D11054A903E102DF0D0C7B5BB854DBA
+F3F086AF991F7F5D5C730F8F9AF213F25786F3EC0E54530FF912F4876FDE16B6
+A07D0DC4FC46EC6363BCB68B83ACC448B801EC43FDD2F8BE0E93D809FF81E38E
+176AE17C67C85FEA58EC95435434C49A950AA955D8B20989C550AB1F1C31B7FF
+99422E1F48FB7D6F327C6DBC4695A03903DB275B94CB39386E46579271870A25
+21823E75C377E9D5B46655E8CD8F986372CF8BA846423E26582315A9D19E0BF5
+305C32B2A0EAC3ECB275B1D8BE11A37ADF524944219D94EA2C5DBDA768828B6D
+775DA8CDB09E0570E4ADDF462EFD8D3FA3F86B1DEECDFFB699AF6507257C1879
+16FC615868C2D51F03CD57BA38D42995D9164B257441210084DC409B6EE4C119
+0B2E17B0A8D5326DD0010E4A325D5F77BF935693BC90A00A28C7B5F74817DA39
+F47A41E32F4F92AA04D30D810F7B1484EB53AD8CFC8CE8928B570314E0F713F8
+AF127227190F9C16BB73D2A217FF801C391A29095DA5E4974D137A0CAA7DE702
+E20DD4755B1D78739756A5E7EC3542B96AD6844199FFA2F5F2E9C64E2DA4FB2A
+ED79869F745C59D235438251BC2E6D26112AAED20E06021D1AB896EE1F1DD2EB
+437FBD4A25E42245C5A647493FCC9922E6DD7AF57D5D482921D1CBD6F0F02949
+C27777144751C1E72F4EE2BC343D4AE7A8A8758123B54FB1A026144C643651EF
+0907A376945E19A8FC7F98A034832A5820A481B0823F980F59623E0511593FEA
+BDE6EFBCC0383242CBD4954027B075B21F10472059A480D6E5ED01C3B07461CE
+9810251A5C5643EC7403130C2246E8616CEA25EAC7A0076731FEA8CC43BCE3BE
+933FCE61067F5FD402E67E2B9DAD954AA77C5BC86BC5E4BCE2ED676D8D8EC7D0
+ABC5C86D82180B9D5D7451C71B5149B6B67883578DE9909317928C0A92E3205E
+F23015400A1763A6FBF67FDE3318AD2696685A1832FC31CF38589EBC7CA1C818
+60D2B2211E04EFCCEA88D9A9082E82951EEB123924A267CB03C48889032F2892
+4227E217FA28F87E01CBF27BF1EA60641A4238258CB7AA355908FE36D90F5CAD
+FE992D03A33E47CA9AEBEFDA57793F39DC6A9E85D5B289F6B862B35DBCF82E43
+5CD6A862F6FFAC36478C384C3BDB0148CB1FEDF55969C776E77917635B5A65EB
+F2AD351D21CD3822D43289FE8EB0FED58182997097C7E9F4373553AE1CA92083
+EDE3BBE6C3BC7009D15AB5FEC6A59E9FD1BCC7B2099CA15FEF083B9CBF7B890E
+CDDDE6BA0AFF306C76500C945DC91BD533FF9A585CEEDEF79238C54E6168001E
+26FEB29E523EE501BFA4F60B782B1499B07084C35A2434B4D29D3D8E2C8F945F
+A9922443B68D07DF7EAA1F4CDEFFC438B597D8943E231B5216808A85F30EDC81
+9DF5DD22F54A45335B4C2203887475F39D247F0E7347BACFEAF220ED82F9263A
+6488E73C1910023E505FDEB143006C1A351D441AC57F9D52D2C6D63D78C75605
+999885676BBBAD56074298E0BFDACBA1830BA58E87F436CC670EE8EB1870154D
+72DDBBF3794F8CAAA3F1E11DE29752DD99EAC695838A19BB67A1FA3829B6E0BC
+5301610A0351AAA749F456AE31ADD87D6ABADCDD1FB3CE81C3713F48780DF407
+530CB284B2AC709F52EE7AD647DEF9FA4D2A867CCEF728F3D40CF34C28D21527
+10160B3DAFB5FE16AFC9D36C6EC4021FC189005862082BEA60AC72B63AD27D72
+FAF3C2D89DA2648FC4C65104A069212D87144E8533CD86A6D73DC7CD9DBA25CE
+7DA53B000266F3871B24663C77723703315C5E4A89DFCDBAB384AE7EB2F455AE
+AB191FED406F7F6EC9E5B8276EF5C4CBA041AC7E8BCEC7CAE840154BDCA3232F
+15711ABD1E867A434E9787CA0A6D1F197597DA27ED2402CB2D84ED082E8D3A39
+81E6EB270DCA4E7A90E2BEBD3CBB3A2BE3CAB926192D7292CC16845B6399A543
+BCFD224BB52F21352732DB5154FA3442733066CDC3E186D8AA97CD801DFBE43A
+116C86889BE198DA88CA978B8C40ACB67E8F7BA499DE68A6FF0DC72C3D00BA1A
+B378B39610F15CA026F95ED8155CE3FFFFA2E2FEB352DBE14CEE1669F2387B70
+55B91185FBBED764266215D518716EDA3DFC9E5DB6B148A553E75AE5E38E1CFC
+6EF47B314D54CF24BC13856F4F7C976BB91D143DE32FF49BFFC87E17885A1893
+BA1B8E441B08EFC04F7D103C1FFBB665194B3D0920473740C55FB1C50EBCF717
+A2359B687FCEAD65616EE89A68F8D91AFACAA0B238EE4AF0279AF5BE5294C3DE
+A7E1F5E6248C0210E7D40683F04B12A933C746ECB517CF94BBCC6E4CF49AC715
+D8005AFECBDFB7A6B417DB8A28F8E9EAF39CEC1CA64DF37A5E66A76C26F721F8
+A63B003A040A62F87DCF61B298F960D510BEFA453F118E59E7DE8CA3DD002EF0
+127EAF733D5C61B5132348D280F84D159809CC71A3C6F7373BBFD8D6EF715D34
+0016DEFF14AA5F960BF1BB9AC304A1823722843547BB4CA5EA4C41C6C2701C8F
+7BDC810443F9DF34BA469A3260009B799871BAF8523C8763544DCD0B382D44C5
+F75046AFF85F0B5A3188C2EE786CEEE5496A5AF4BCB0B429CAFC403FB983EFE3
+61FD9F52ADFC38E07A0FD7BACBA530D2E4DAB2592AA9564843E7E2305047F060
+C5FE4243FA8FDF1B5D4F61ACA7850A604FBC6D6970959752695C90F78961B4E2
+C8CFA41082B1A37405AABCEE5BA3DC2B9EA76F486117B84728EC6D8AE6379CCB
+402C2AA89078EC992C00D53151E9D82C65643F549A572A20F05107A41BE5AC57
+8EDE92AE20B05E2D0C98151CC92D5389A675DFE39DF546A33A84A4C534337ADE
+B17C34E09145B37CE1EB1D10D42CC8D6E6B127A3809F7202381FDB88D42084CD
+0AEAEB8A8288CB56870EA2BE9D0B9DC8291021CA561E2BA388DA3494E433E0EE
+5E69DA51D0AC505C9F71562D3E9750F23CF14D2C8ECF0692FBBCB4A92B48B4B0
+AA2163A3B9670C67D7CDBA4D5421F2A01241CED719B21FD1FFDD0A5C786D8B71
+D6A0C183E57EE02710004BA25B47CB339D5CF6586169D847E850DA1DC3B6C24B
+59B32A2B7BB2BADD88F7A8F2215AB5F965854184833C9E3F52AC664F2C956254
+FE478774719AA30F3B416F286E998BAB896C5675B76D9C6D132B9FDC55A2C73C
+D3489E8977ED5D3AC5612ED3112E138639F027EF676F80C8A5A3808DE0B2C3FC
+E7BDDAD40FECE7908347BC0BD4CC155836D4CC593566B3C60168BB9ACAD1C5C9
+20265DFBB7A102564A9D3C22754587FCB6B35735E5C00A851CF8D04C0B42B8C1
+CA03CD9E2CAECD2EB44F75F48D3FD05C05E736311B30AFEE0787E8EA2DF68C58
+DF05FA9594422B89DBCA8C79067F8CCC4DC828292BBEA0A95116326B5B6A5E25
+DE5783586EA290B6239511500380D20A3D0AAC7EAEBAF31F79712B5619499452
+6C98F04D173DDF6E10DBF4A8C7604B27CB1675AD8F922EAD286B38E61D0E97F6
+CE5A9B34F5E8B0F5961A557876195CD95165FA9B9BDE7D3481636C56DB2A3549
+AD649AEBEAB42FE2CA4FA78B3D7633D72A40C659AE495F380D928DA3B97AD4EA
+118C734ABE803DC0DB02AF32142265A6160D4CEF63B549A49062B2BAD91E68D0
+507B40DCF703F51966E4519AEDAED1F083038B4054826F33B6EA0468781CEF8A
+FF60701F4F7C66B6115220B27A87E6BFD2B24EE1DC5E62493655ECA4BD4F69FB
+C50070D7CCB3CB59A8309A22AAE6D700B3BE7FE3D5B92A4BDDEB7ADD102DDBAF
+ED65B639B19130CD402BD626AA42C96CD5B13EDA8394696323BC4F0A9D5DAE73
+AD6D3099E51D6488A7902DE76C2CF42DDFBA4733BF4DD70CC6A119E73D9ACAC1
+906D85D7BA1D3590ADCF9FFB01EA5F89EB373535664035C78282073814A58147
+EDF6471ABC436A8E2485E0D59107957AE10FB17A78AB1C6AA372D47E16980696
+836235D8E0E4F82F23552EF13BB2D5C40A584F6BC3BD5DC94CD8CBB194098948
+F80DB202D451664A5D465D2C8E6ECF9BE75036552051BE67783AADD7BDB29A90
+72B6A9DA68ED49EFC49E596FA5649721E2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /beta put
+dup 22 /mu put
+dup 25 /pi put
+dup 26 /rho put
+dup 33 /omega put
+dup 58 /period put
+dup 72 /H put
+dup 75 /K put
+dup 78 /N put
+dup 98 /b put
+dup 101 /e put
+dup 102 /f put
+dup 110 /n put
+dup 120 /x put
+dup 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2
+1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C
+7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B
+0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085
+EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37
+404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133
+78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF
+A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE
+88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4
+C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC
+BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88
+98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760
+E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44
+143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3
+981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490
+88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285
+4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683
+FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F
+347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F
+FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB
+C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04
+B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733
+F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA
+29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66
+36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12
+048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0
+80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C
+9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B
+75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E
+4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC
+74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B
+D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355
+E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097
+EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D
+543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883
+710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6
+EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F
+7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93
+03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2
+01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89
+500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F
+F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208
+AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE
+1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915
+85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C
+4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1
+6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F
+55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18
+085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02
+BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951
+2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D
+CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E
+BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E
+D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1
+991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125
+6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754
+E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80
+E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1
+B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3
+4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65
+1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB
+B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7
+8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA
+FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6
+AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E
+BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051
+E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD
+38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3
+7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751
+2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27
+DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D
+22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6
+8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB
+44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90
+D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A
+42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF
+C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E
+0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE
+66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6
+E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1
+6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E
+1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10
+B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B
+897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E
+EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40
+A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3
+F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA
+A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126
+2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6
+51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3
+598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F
+87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE
+178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6
+4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78
+7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6
+AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6
+3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379
+337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547
+C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5
+DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA
+7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD
+6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC
+98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355
+821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4
+C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886
+7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6
+B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16
+A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325
+23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF
+C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3
+969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10
+3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B
+9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725
+1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239
+B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966
+95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7
+FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE
+44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986
+FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4
+E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA
+633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D
+6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F
+FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD
+375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2
+6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7
+EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C
+E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D
+F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156
+DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891
+D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538
+D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4
+9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B
+9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6
+B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0
+D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF
+8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93
+FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26
+B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F
+00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50
+909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49
+5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF
+7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA
+BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0
+C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1
+BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37
+BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D
+4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075
+94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1
+F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9
+E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA
+92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0
+63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A
+CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271
+B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9
+5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E
+86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0
+AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180
+3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC
+35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD
+155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580
+AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255
+E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F
+226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496
+9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B
+8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B
+919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE
+A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7
+9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0
+523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7
+88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D
+2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF
+AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66
+B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D9154F6B1626C0582D
+150C7E070D405CE5EB61FFBB47A9471227299075B00A5C8564FC9A91DC136F93
+E796DAC379CFF581EE452A1696DF433E743612D6589E8599801BCB0521EF3E0C
+C3C56CAEADE862C5A362A6EE6D53839D08D3689347B1107FB34ED43EEFFA82DD
+50062F15953D0E28665CC6B0693C966E8C1974A763C076A8E4295F809A9F5BC1
+3CE0719B3932CCB278AE77E5A64930C9E7BF4D108195BAB97DD0DAE7B00EC3E7
+3ADE03DFA72345D7ECE26A5A5DE197FED7CE575F000E801205CD793108F2B41F
+A9BC57E7FFE76B059294BEC287BB2FF2ABF19212C592D1A9DE83AFD777634AAB
+7DDBDCAD773429C801721540DE5C0A06B34BD8C949066D823650E3AFF9414E76
+DF69951A6A6A59918CFDFBD1221DD4D6B9F5E15EF1DEE412A9832A8F4FE5D816
+39CDA90D49BD10D019F2A7E367DEA6AE103E2ADD3C92E132F8721577703E5588
+262FB92FFF83EA039D209276BC5BA7A8601231E303E977A016054CD386F0DBEF
+F1DF904E544503E181E438E4DA2CF491ED8AE46EA4077965F22118F48114F572
+43E176E3467C6A5039899D7271276BFCF0AEB248066713B87E1CCB8BA342B2B1
+50C80E1721B405800010AF381D592CC859D05808F34A1B611B488C744FB5C1C3
+A50D7E5E449631310AD15317D26F05EC7DA4884BDE5C29E617D84442B2903714
+D8D4730031030A887B98ED115E0E771ED5B888264C1A3BE2643847BA91F6AD2D
+257C5030D09909C98E4F3F4004320B9B8D024051ABAE4FB18FDB08E64D97AC08
+F55C9B447811FB5D7A0386FB402156020E3F4F3A6761C13C2DF8AB47C3D9A018
+1EDFC7079E96AE7F6DE9764D8151A5ACB5DEAE61934FEA3BCC36EEE1B0FF3AE4
+4A905A3668FF6813AF0E235B4E43984D00B8BBDCAA7F9FD4B9694901ED4748E2
+6436C6D42AD1C2DD50059D876750EA4000A392899C540488855EA21D6AFF7431
+4EB0A5D1886400149AB34BD64336F69F3ABA96BB234E0AA5C6A3213CCA102B58
+2094C394F8E66B165B1476641279D0EC4D7E0A3CB1407CF86FC45B9D75F9DA7A
+99CB76322091F548659CCD7239FD3A031D81A683FFE6F9571812F04FBE6A20C4
+0AA4DC7D14C37111C75E593729D11B023C9DB4EFED8E1B754AD2048F0B2B7847
+DBF41C343A8C45CE4C65C7EA8340F45DA0B2AF424E0AC48D32760B10606B9995
+919986AD8E55A525B6167622FEE32DC921AEA5BBF36BF9EB765987E711289305
+034F62CCFB4C5CE5663CB41466F36A6318A2C470092973143A032F7DF961F1CD
+39BC48283305892367E3F308ED7980B25DC674169751EB2722F8ACBEA986BBC2
+38D9069C20E3957F9BB90C26476D36039DE9EEF407C56142C0411DE36A57F431
+1FAF132C276CE9635464A85C70F46A9C737B6730551487C87C398CF1922EF471
+C33B580F2B63C66878C08CDB42C877D54321579B131C129BAC98C3408FA6C02A
+8765E7734E7ED485F21135486353012986987966051E015E7EA0B46624CEDCF7
+D05931E0C0EA4AE0DB51CED4388D55E0756EA7EFFA49AAF153EDA2F342109CB3
+49B33494E5AD4FA46B9CBA9EB3876AF0EFEDB70E0583D556E684F85DB73BDA7C
+F3C2FF25237F983DBD5D7E9A11321D752AC2AEE9D39C19858FB6C40ED5720BD3
+AF4C816F6C049F466E9A8A847174C57C26476A1F406FAC70149DB00E3EEA9A62
+9A7DCA098D2CA41D515EF883E9D189C800324C28B7F3DC7579A581B7152FFC1A
+EB97D44FD749373BC2CDE2E35C3869B042BD57B9655ABC536AB0D462590650D8
+2DE2AA1D0626092D228EEEA00969153E89E8AF89CDBB672EC53FFB912FEB3742
+0C6FC2F02B29EC7A212D4E427642FE86152264D12EBEB860FA9039D98977DDEE
+1FF46CF4D9D5752674BB9712117295F40E61FDA8A3C07237235C098F558DCC7F
+04DFE1FE56F43AFA8A07C9AD88E975926D100FAFCA86BFD1B347A15EC92C1CA7
+76663F39D23DE8931003C17441787EFCC88A931292EBFAB70DDA7719340577C1
+52B7E9457A81C02C640DF1F1DFF27E02F33D5015E79483C388CE19B9624CBD35
+B00CE1B2ABBD57F0632543793EBED8926E20BEF84E9D12ADCB7BEAB8AB749EBE
+8AB86EEF23576F619AD5C4DC8CA9D6CBE4CB367A3CD9B1676110F9C89A0D05E8
+7CC6685E1106653B5DB993DFA04CCD6EA77FEB9F7854EBCE634BC1733E03B35F
+AC223B93C2CA6F823F3978A5F29BECC8D4387F6ECB9A5B573730B43698A45FF7
+3AB5C9ED6D29AFB2C51001D62B0E5260AC8D0A902C9CD96091CC5443216976AE
+F056738BBA5ED139E3ECBF009E1672DBB4B3758597936B2844A351557A7E2FF5
+9046A30F18B5D06BC90837854301BF31E196F68552140DCC70D40491BEE3B43E
+490EC8B677978713E0FF4F356376AE4CBB24F04B42A3130F18548CCF2CFA6BFA
+C1EAB4167F1DE486A2E5EBB0ADF37BD572EC8F01579C8F51CA8AF84C45342785
+BFAC089B6236404B5AC971A891D864810F5533967946C703CE7DCE7B0EF89467
+A8571F09E97584EE073ECC4A5C3C666C898FB4095E86D01BD494FD3884B26076
+32B1E406B8D2638441FD968A1A5E9D9A1908DE405D9719301A8F67C46AA16B5F
+7C9CC6BB59D612B204682F27202AB37B8A8F35EEA4429445EE0457867B6CE44D
+EF69EF36238395E9FA9A694B465B627AAF1E09534B7E32C8E37FD4E5119E93A9
+B0C9F6DCE5FB4D05921D9DA187A76E85F0C7CD4AB7CCE0E1BE015E264B96B27F
+F1EFB9583901506DC934FF1FE21D73D6C8822C3C0A8291B8B906EB88FC2AA7A0
+0ADE69FD4527B5CB0BE3E54546F19747A997AD8B543F6A0228A69B1C419181A8
+97711715B6C9D4970FD1A3750F1D41E7453C2385DA8A49EFDDFA06F78A4D2EB6
+CC79EEB1C397444253791E7E653D012CE3CE99E30B0E0C88AC445F39369AE4EC
+AD644A2F942B80AB67316A41504E9939CC4CA77879C6DD8A09579F16F7F88E79
+5B84FD1316A0805F8AE44453881EA1CAC371A78293B1A157C7BFA3916F71D882
+80DD4A83D56AAF400C7FF8643DCA043C651810D842A49AA8980ABB61E8AA0F49
+81DD0441C03F296EA094A77C81E703ED2321AF546E3D2CF4A185397D83829C89
+EB4E112398578BCD5050EB4718BCFDE7E016509D32A9D9481D3E7EC30CEAB988
+280491A3F0A2CD8E6D3DDDEBA84AA590E3033D95399845AE04A3D33BFA88B346
+F9CFD872C6A602A6DFDF91C7376E2BE88896BEC9E90B13FDC7EB723AD2EA3B9A
+13A4036FDAC7FB17C77329063D616383366993DDD10B3D0AD7FA361A9D2C11C0
+6694113731206E50F95DE4707FFCA0D098CE0135A1E800EA8C1A66AF8BC58C8E
+C9E43B15A29AB9DD3A49529C4A4ACFAD8F885A3D4CA3BE3C4388E619DEA8BC1C
+DAD0E9EA8F26D04C67BAA63B08281DD165A66BF9FBF1527D6BC51173C6094EBD
+5DB1CA2DDEA3CC9FA74D76B94A16D1623425EC3A4D9EFC6B7B85879D4739D446
+4DCFEB387F958C78A8720AA34FD678959548DBA35676E4EE3157C8D6B44E998F
+42C19BA2A012195E30A07B86F547DE5979155B34FDE6906D1CBAEF45B36F469A
+F4120AFDB6314DD907A38D0F58CE954C0DED96D1D304BB3EF084C08AFEA32586
+F8C757D0030CF2027CB8846FC2F0DEBE18BBF65CBB37BCAADC60F14150E667C5
+783804CDF12505D959854CF286C7E978B79B8E93CA1BD59A7A233E3C8729516D
+C6BE50B7C97AD5F07C6D6C159E644D17ED52F5229085CCEAC80BFF42A53908CF
+B1FC7404657FA1026CBDFA2E690A3E06AFDE55E727B5A5C648796A03B6F6F772
+80421788EF9125DFD054DF4F9BB94B336B3D6D9EA77BFCDE7308AA6FB2296B27
+FE43434311964F88706BD41CCD03E41CAB70628A8CF4D109C8E83C5C6167FD7B
+32B3224BCC2FDC6E52AA56178ADE3489C68BCA27074F5C1D4B5D6CFF742ECE57
+C2C8FDDFF2D6BB9C80C175E9CB93216433B159B9B4B1E7A64B71317871820D3C
+031296EDFF465155658CD3366DFDDED758CA3CA8488FFD0AA391810BF42CEBB0
+49A048F14FE75A65A7627ACDEEBA5E155ACE31FF53FFBAAC122679CF15A31152
+0337FD8158FD8CF3681C3D68022B8707325F30531B18C5E6AFBC57426B88C431
+402C779CEDB90D06378B836369B4C6D219D4DB2B8BCD39894893E01A9262B557
+2977704512CBD344CE7D714BEA41B6C44970283BD12C57409202854BC2A967FA
+37CE4664D4896CFC69A55111CA3277A8BA8F59F24E87853EF45EBCBF7413FE09
+94323E3672DB7C993BAB8EDD1DD032A9394506004149CF4C33107C35B0A89418
+C31EFC28A03B954FC80299377912EC8D3BBA36BED9107BEB6748C4374CE2E2BE
+E8B6C1B97B753E3BE09D91F6E3A11EE73373341980C7D31D38C05EAF37018EC0
+3AE3D69A4028A52828952AC0B52A56D12E5BEF45C7FF77F494665259E4A27648
+FF33FC6E06B8F58058E7AD7E808D37008421CF3AF88FA6C76A3AF018E9ECC076
+3AC3DE73E1370307BC6CA5E7CE47F239C64318CCDDB83B599EA643AA138B50E6
+26691AEE33DF032823D54BBC6551D9F1E52B0112946DA23C1CBE43C6A911B9F0
+1E703188B223D3D731A2499027D56766F244B6C636E78710866E7C756A1A647B
+12551FEBC7C0F1EB11021329D3A2096E8CC41F0A90246D7F28CFAA5E40917BAC
+D10E913D8F0DC2F5B8A25067A0938F4CB1C84D4C708B30159D8DB7AA55FD9DA4
+3B4BB1788DD2C2D151DDC5E5BF336270C84172DC88C5C8C44FC9A808AE9261CF
+A215415E86A836C633EAABC64953D84EC846B827E18C4E8F2C0F67D70E572124
+CD54CA3E0F3650109694AA3FC11FFE4D571314161F3D6EA1F63A2BB327B2D3AD
+E23A84BFD33F5A4802201068F93874C0BCA430E9714CCE895D5F320F09873A71
+DB4085C8956D9BCCEE8B807971260E84DA324C2F94CEDCFDC0E7D1A506DF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMMI12
+%!PS-AdobeFont-1.0: CMMI12 003.002
+%%Title: CMMI12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
+/UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI12 def
+/FontBBox {-31 -250 1026 750 }readonly def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI12.) readonly def
+/FullName (CMMI12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 58 /period put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE
+882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3
+2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A
+7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541
+0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69
+987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7
+609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC
+182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A
+CA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A
+1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE
+C31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D
+3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6
+D04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E
+E129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200
+761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24
+8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F
+68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D
+10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4
+262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6
+922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16
+56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26
+32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA
+7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460
+7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A
+46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD
+754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF
+88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F
+CB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A
+7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760
+8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0
+BE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B
+CA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25
+8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B
+D5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300
+135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A
+C5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812
+1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86
+07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39
+14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D
+7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D
+2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D
+639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3
+D08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F
+90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948
+10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E
+1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E
+8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC
+D837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9
+1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33
+9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875
+EE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE
+DBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3
+60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8
+FFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D
+203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608
+FB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09
+DA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F
+2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D
+244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077
+31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B
+724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8
+F6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7
+D657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA
+AFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907
+CD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF
+01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D
+CFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA
+287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605
+8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9
+9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1
+6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5
+7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C
+192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA
+AB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4
+A49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9
+50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67
+A606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912
+3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF
+CA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6
+5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96
+8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE
+084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7
+92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2
+AE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27
+97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF
+92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5
+7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824
+5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199
+13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76
+6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1
+5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5
+6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83
+F21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E
+A64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4
+7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A
+9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817
+E68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962
+AE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD
+F55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8
+0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003
+1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31
+7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E
+38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8
+5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F
+3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B
+B405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85
+15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B
+AAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674
+6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6
+CC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322
+EEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82
+A08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D
+806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4
+461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1
+4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361
+9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C
+172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6
+69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E
+ED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690
+356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0
+E5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78
+7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C
+B52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A
+31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF
+EC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7
+98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30
+C6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61
+AED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208
+E0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900
+76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40
+8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573
+CAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7
+761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A
+2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138
+89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60
+D39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF
+C6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485
+D25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8
+B424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39
+AF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F
+D5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3
+866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD
+207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73
+756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7
+60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD
+A3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A
+1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4
+A56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048
+C6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3
+03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321
+1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B
+97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE
+D9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8
+4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF
+94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97
+201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7
+9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000
+CC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7
+29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939
+4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED
+66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31
+14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53
+84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74
+6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12
+49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C
+224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5
+5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4
+A6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498
+1F6CF8470DCC892AD0CFE11578718948BABF9C1427084643B66BB9181094E29D
+5FBE37708E1D8A6B7518A96876844CB66954227A7A6AF28DD075A462526DD5D6
+40EECC56FA366106E55C7068997B54B7F0D03AC1AD45D28C67C7ECA99DBEDB1C
+E18A79C353113E2E05B837E703278B202112B1C69E42A69D64B62F0E7D8F7E5B
+C1F93F0F99EC20EF312046F4B0CD7DAB31E422070B629A7FA96583CF3F1519CD
+CF08806F40ACD7BB5C960F21E9DA7FB3C72CBA0801ADE83DF738A4EC94F2977D
+2B95A166BA4AE28CAD1E37FBBF49D342CDB4DF615E2C5F3076313AC517C350DE
+710F5D52DE31DF69864D29DABF14234DF13904BA4333B0D714EEA55CDD79DE45
+FF5D64259C877191547076B1C7684CD252C0337BD9DF66CDC5DBAA4F3102F2E8
+FE48385C55727B80D11F3BE0B7568AA9356FB2B180A6B1392D620DED02F0B736
+5F4399FB9D32DFBC8ED942AD311C82250DA8BFE98D65
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMTT10
+%!PS-AdobeFont-1.0: CMTT10 003.002
+%%Title: CMTT10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
+/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT10 def
+/FontBBox {-4 -233 537 696 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /less put
+dup 61 /equal put
+dup 62 /greater put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 70 /F put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 91 /bracketleft put
+dup 92 /backslash put
+dup 93 /bracketright put
+dup 94 /asciicircum put
+dup 95 /underscore put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 124 /bar put
+dup 125 /braceright put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3
+7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260
+6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89
+14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0
+0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397
+3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4
+BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F
+D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0
+FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB
+556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F
+8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E
+F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB
+B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673
+125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787
+A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77
+4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC
+56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178
+E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F
+15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385
+2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9
+05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390
+6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD
+04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728
+C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4
+70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA
+4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A
+A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473
+62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364
+240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D
+69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2
+ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84
+121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4
+0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB
+D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A
+0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157
+D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C
+550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844
+CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A
+9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4
+FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F
+7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06
+E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6
+50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A
+2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05
+9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2
+44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE
+49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9
+385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091
+8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011
+6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C
+EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0
+E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB
+C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE
+484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29
+4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0
+0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C
+6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F
+5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C
+1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3
+909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8
+BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506
+CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0
+2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0
+CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08
+EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811
+0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6
+9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A
+D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4
+21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0
+7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F
+52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A
+FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD
+AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7
+F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429
+067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E
+E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431
+C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937
+5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B
+0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD
+CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC
+2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD
+E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714
+56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957
+F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F
+E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F
+0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D
+67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046
+EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7
+CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8
+9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5
+9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0
+C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861
+327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203
+F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC
+60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD
+A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4
+B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5
+0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F
+1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1
+DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D
+55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C
+7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E
+75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5
+E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149
+8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E
+F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB
+8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F
+D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914
+54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0
+49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9
+CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0
+34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276
+1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA
+6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A
+DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4
+E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD
+4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD
+2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC
+ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934
+3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE
+97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C
+FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570
+A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF
+639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4
+D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615
+E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2
+1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E
+A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3
+F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780
+5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5
+4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50
+664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844
+4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8
+35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04
+1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6
+01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A
+5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82
+2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0
+DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C
+BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507
+39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1
+C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665
+99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481
+7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE
+D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8
+6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184
+5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38
+6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B
+F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81
+E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9
+39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81
+7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5
+ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77
+6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882
+2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230
+1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41
+06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE
+5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A
+288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E
+7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F
+759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF
+E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E
+03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A
+6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859
+314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266
+74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D
+906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36
+673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E
+A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901
+931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B
+CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390
+E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1
+4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136
+2CB594A3D6D3F8576B90A6C4DAD6D6C8EE07AF682F925F01D0B26CBA347C03BE
+F3B0585CF4539FDC66915E22117078CC94D621F31DCB3E021998A5D6EE94CA4B
+E214D07517283D56973D8E4367392BF6C1150DEBF459D141AE0941C1C8C5CFBE
+E735D796E365A1B0F60BB4CF2801EAFE4889EE5F338D3C4885368281B3C95CCE
+251C28A90D318A8A0384439B38D63B94757252062EA44E88509FDD2E75FAAB71
+7329622828B2785C1A8B26351BC74237A6BF99216652ACBD4CCF54CFC8AC72A6
+46342F1E32D4318E7E27C7B2DAC943B3E72C472FC6F1DDA8684AA922516A672C
+E969C047E318B5E3B1270C1BEB1C4071A15BC81B29B268C679B41FC5E381BE33
+DD95F0D68118CBB60C521E5CB2BA46A10E50E9238163713290DF6DD8A27D3813
+F871C07E725D4518013D9A84CEC96782541E5580E33C2EBCDB18F08EB4655A46
+507A8526DB26C854928B81FD502B0CCE4A68943C12078F57C10F4E85FBEE1025
+46D925B8B3B447D4920410FEEB9844FABE985F9228FDD9F26BDA3B469D678F01
+BBD601F46245B0AEF9E844A388B6E2487E6B15752536B570B52F04F499BF1849
+BE74825598FAF1B6E2A160369B6F94F049EC824B1423BAC550C282E77B26DAAD
+6AEAC84A49CE0D0FC3E4DF2293E8C09033C7B55F467F12BB61B831118DD59A79
+225397FC863702D4FB61C8776D72DDD56AD502B36A47473105AEEE8533B97814
+C41B3C5B717096D25B27B86DC28D9CA467D7D7F04190DD3735124E033C198954
+17D0623397B8A11D0B61A78FD0AA959515EBBF5166162B7BA50B9C41DD1E3A53
+27F0E16BA68682C549613688FC77D4024DA5CF1F78C470351A372CDD1DC80645
+A5DFBEDCB98330B8830E4360EC589278CB676F53AF96529C844204CC485B2C64
+0FCCC6390A0D5FD35B09EDC1ED56307D475A3498579ADDBDD0B357C41B02CB23
+06F0F4CD8882D55E07120EAC5E0E3E8253C8C88BF9DD4A643F8BDEB9848A88F4
+33A9D18923681C1DB2E526AC429EE5B8E19AFE68A73CA41B1667D83A527F52AA
+80CEE82E5ED5467F867DF70D83F8E0A023EC0FDA8B73C48E5C4B6EE58C369529
+5292CCEEDC82F6F6DE22E45A9FE46CF8741AAB5077E58A14706E47F2DEB90604
+2541ABCB3CBAADD93DE69871E15D3FF5C926A0F6A1325A33D8FB61C7CAC689A0
+8FD2A8CFAFB7D50CA5D629290F2C5BEC8A1546083DE406C32BC46B79F6C70B27
+A7CCD54FF25D9E0B3809BDA31CEFE67EFB8C82885D9D7F74EC35DCFDB9D794CD
+EF1B5CF8C7C52F0052A6652E6CB6DCA3252162B0A68F3733E8D7AD1BC91BC2BB
+E4FE6FA07A6A4CDDD36967B571297F66B7EAFE845DA46BB32A5790887B7DFF82
+C0DA7491EB281588AEF77F2133B4E93092F711D26480299540A9A67C192CD4FB
+BE673AF469F0841BA3676F2F5009B28FD8CF4AF9363F34FE0A4ECC977E1FA6F2
+34C5C1E6AB854152E675C1476AD160D15BAB1D467515BA7AA3BCEC0FCD3B712F
+473D35E1D5335CD3164448692E558697E877917773519D9AA4AAFB14003B5E4F
+7643630B04990EE1BE16FA5F1971808A06CCF2286AB4DB4AEF305501C4C589D7
+D629F3A82D48CA829B92189ABA25EFE4EBA4A9A2F2F84973F77BD15E6727B2BE
+35F1E8B9CB0EE90FA42E1529406D95FC378B5A81CF08A783DA8965A5A9454B8F
+19103838BCA3BF950987AE903B8BE25A772941A0B8BB6958FCAAE52C970D9CBE
+799A76206DA0C1853C7CFBDCFE76E6FEB489A1A8B8627B18379A79871217B6FE
+BB2F2F0A1865986F92AAF11143DC881F3D7F31B13D7B0494AEB09FA652A203DE
+39EECC903B70D696F503BB811B6535F4C3ED8C840F18C3D3D7816B63BCC65722
+CA950CC4A9EA01CC2D845F669DA47F735625C9162556FCFD638D71FAECF1B4BC
+79420F071138FC4DEFD46B0DE2991197C3972B2D10D5020772097C03CAD4358C
+B69DCD7880757E3E062F577BF4A90C0A7A37960243F66A7FEDA5BDF06F8E9E55
+580A0010F6A7A5AD395D681A059F0AD20BA1EEF8762859353E4321CCC0F2CBCC
+0C737CB46E205502B01C2BBB1EA38B7923957A15D1196FEEDD44FC0F4228F77F
+FCCADF63BC489E9F7DD981F3D1ADDCC0260444F639D2E6D714F8A3C82B2E8E1B
+01705929B128A15A77599CD4C8CDC57A0BBCF5A72CE9C74DC8F079B2E0D9DC32
+F5483E626C95ED31734BE8D44F5753662AC6D184987A4BE00521859429DCB4EC
+EC7D5293F45FBC27147F8072B3FFDA6D78312C728C44314202F65943948E64A9
+A57011C0B40E1FC83C612122BEFBED314237ACBFD7522D8C5E525F5352E91952
+2DA4200E6F26C51D0AD9C7EDED3466F7C87E167974DC7B6F51D822B27FADED2C
+E6A3E58986C54B7C3AD2DE66A0991B876A60ABEEA8E7A9E89A42C142D7A35397
+3F1CF75CF385DAE9A904C4B300F403072C37F542B92F71193D204C9168731646
+51111E68EB0B8811A6AC6FDD9E89528DBE0C561289A35CF590CDEFC15D5D7BA5
+444E39D394AA75EE31EE1995A26AE127FD06244FCB43926685FF502BBA98FE63
+B13EBCAA2B6F925AC681D048063FE5DFDECAC60FBAC160A6D63173C465D72522
+3EE4149C3319B70A1E36D8E39C58169EAE663D970100B323F905F3EE578541FB
+21A36E4C687537E44650DD4313E4E95EF7F28E43B895FE900E26AEAF39EBBCF2
+0032C43EB1FCE4A337EC7644EBAA80F02E58C31CBBDDEA0FCCD05A14BC1BE294
+549C3EC277DD6ED4A97EE27FA37C2B30EDB15F6F2328C6CFDE82EC2453C76DA0
+E36F338AFD9583FA390E21AFA94358B3B52CDD395B29044005DB3374E8AF5AF2
+BC4423F2FC4D9FC69722CB23E13DAF905D59509C91956C9704D3078A7EDB53A5
+CBCC0A2696D70B11E726BC3FD2D4443E4709CDC8F5DD4937063130579F13EA06
+A36999A5C7A39D8B6A80C50DFB57F5BE916544C4525A70C081F79F29FD159DBE
+52947CAF49A78FB844540F347F0F0C127E378C2855D8C85AF232211689467B92
+66F012115330743692D0DA1290060EA00C87824C930916070DBD15A1C7DC7D42
+D43C35B0E28CFA555CBADAF2CBF6B36A84F7E0035E5BF66BDB22301ADAFB260D
+CDF734767D3BD7FEF6B335C54700A78C80E265E87AA839880DCE30ACBF35F0EE
+5B0104663A009EBD92EE6BCE6DCC969975CDB303737E0C455ADED28F336B09B9
+80DCA77A32209CEA9C2B9F3A9FDFEAB62439B3E4139626EEF2ACFD7036E2C5B7
+BF62041FBD4A8C1605A709DB9A941DE3EDA8BCB7A337B776B7F1075DD380973C
+0BA56F400ED429FA0295EAB0B908CDF8928FAF3EFFE527E946BB19B23324DF29
+825893C535C0B4508DDDFCB0265FCDE81F7FE5AC5F81A314DCA426B9FB092F21
+E49001A661B087D982596EEB938B598F4450C6E014DBBC9C56893E475A445420
+2397795C3BE4B214CA777DD8A877A9134B3C51FD55C72668F945C2EAD03BCF74
+C821403172D081D4F769B5CD39EFDE75A84589BE79A66E6C29ACE5156971C30E
+226B3911DDC7B93BF3E745C7C96F9BEC8CEF8FC05ECA09DDB6821FCBEB10B9BA
+8683601DDDBF00DB17532C933C63DFD34B01A5B6858F02138047E9722FCCE7FE
+0141634D023C935F2153A4AE76CFAA23E8DCDF1B5964E6729CBE594FAE9F99A7
+CBAF7504433F6CF7B624EC430150AD6390B181EF042488B70DC090D802A58C1B
+67C90073F225B407D1E5F360701F4F7C66B6111869C3F8DEB73A4DDDEFAF1FD7
+53BB51A761AA6DDDC3F516BEFFE96B9154CF9B3B4A5BA0E610F8E7EAD7E4A790
+C459DB4A622DB646E5C8AF9429B73C45B3EE1435AE4A545994203BA1F030616F
+5E465D4CA89E9E88010B697F647FC2F06EEDF31ACE721973FF33FF3DC9079230
+FB28E8D2AE65110B39553CF8475F21B8D02C9304DE242BB1E3FD7AD316D7377D
+782BBC8B3237BCB87BED1EBFC57B2C9943DEA17028B1FC4B3B6E1B5FDCD34F5D
+DCD87E277A72CB8D0FDCD31B681A19351C4F456D631958ADC03A7141BD68B46E
+B81E199D6F5D947F1EE770769A066F3766F6BEB23F21669E197983F1725B8CB1
+35D9FDE651E68CC9B31647C6DA9DBF0F87E5377E7E2CF9DBBF69837CDB2C81E5
+039E846AABF29974B79BC3AA88BA0DCAB17A402C6F1FC9629872563B810D7124
+CF76A82D4EA16C873532728EF89B0FBFB3B0483D62EBBC21276614E0BE11CEEA
+B4BE46ED57270EDBCF181DD119FC63D580C33A4118FD5CD96D36D2C9F907B375
+4CF362EF71CF796934212B1F204C17168C72FF1A95813A63C87E84D1BFA314B1
+5DA00130BF878CDFA4689DDDB54E5E7FECFF4EDDDD1C7A21331C64A0DDEA790F
+794E391A50FB9372F579E925CF869D6DF85A48CA32E52AC1BD43D03F8A82185F
+484CE4C9513D1791D0418A76F2D418901F90DD5C368010C143EC4D336D2A7696
+96F99968B7BDF0EA034ED9FC4407D759E2DD6F63A28DC2BCD3F8CE0181ECFB9E
+07526006FEC015FC172233831E890E67019B6D8E8E2F56D164B7CA5BBF7E25D4
+69F1355963177B8F6B3306FB29804EB358458B6D13C231B831257986FCEAF8F0
+D9BEC4D470406D786B9AADFB2ED49ED6318057F9709F841DFDBAB3E3CD9E8651
+FFA246F78E44AA19C1481FB6DEA15A8A3B2C54251674DA5A102F66E730C3C00D
+269C7C33555C8B43E35B3030FD313C4E64190E644DA49F7C37C24CDE87819628
+6C0FF0FCC28A06CF2BA9222FDDA7C4064DBBA8BC7412000322BEF43EFD36A6A3
+98FA4466F41C89D8F9F4967BA30468D33EF2A5F3CFE2B7C23636622DD4EB3C0D
+C312DEED87E825D4EBCD3EB0F2AB9D78FA5875331D947CBC92058658BF63E90E
+F0D2E78F65006392D282A0CE051BB4E7C4526CEFA2018FE5619E8D1F69875643
+129536AB61FC237182138A51786D743C3CD2506C2C0AE7FE2649314ECDF7A71B
+E62FB989DED8AC94AB11A0635B6587DE11C5B99508AD2E32BC210621851001B6
+4C81F8F6E368F055414B9C491524ED4910EA1B9D41BFC94B45931FB1C7BFA6BC
+609B2B969C075AF32E344F467560A90054E6B0E4F42AF7342E8976BA89C5E01B
+892012E1F28151DBAC8D97B151CE18B6153A2A11D9A9EB5578DD70C957605019
+5F6063B348AD9335F7B6413995934DF09557A08F8CB54A99BE5C76092C396484
+03488D5ADCFC386713142B2DB18E5FC477AFB35548B9963248DA25BF5AD2517E
+5D3015C17D1C9598DF75FDAD3E17B0EAC8491F34B8219A6D635B00112EF85C8D
+0D8A79A33B16F30FF5C69BC0A71E94E32928D6F52EFFDB247B894DE18562FB1A
+F5F0CA94992A5D51CA3A91EE96A348EA9ECC2823C3629B9F1C9A9DACA102F79B
+B7C57CB6480D891BBF169A7CE10392C03F8C1FD2A2E90C6B4FFB5E982F041980
+AAA5FC3B713F6E688CD772485A84FE358DC7E167095193389B9AC6ED9CFE3F26
+2C638E154A279250AEEF506BF18AB6C73C65557C4035937AB8B0E85567E6B353
+C6F387B7EA832F1E1718EED22554C91255359153FE1697455FE49A2F577828A8
+84822A1CDC7E52438B5A3B7B7D64B43EAF4ACBAC80EC5CE7A8A0D50CAF9F990E
+D9E43F3111BA06535CFF3E6C1B550977EF71741D627041F9C5DCED967A069B17
+16D7DFD23EDA92F83CDC25F6169594CE3C53E1A7347DBD6ED986AFABA4A82848
+A5899FE940A25BE7CEAA7EB6DD0627F0A72D2FD1DDA9289B3FEAF215C04372F0
+549CB1D078436EE7BC84A394A9DDE108210E5CE1E71B3931E7B72EBFA50C544C
+0DF944789DBCE958D5007F7DAB5609C1664D184A65603D03DFDEF92C8C067E6D
+292B8E63342203B332CF6D568E47648B87B9CAB1BD03F7DE520E9915A49B5429
+A1EE407212A2697420A1CAC2C642B90600493A6C15EFA199B014658F6FDC71A4
+715B59F6E45CB0A27544EB423744927D0AC8CD6B585CB5045BC51FE9D5DAEE21
+A52C47B14AF203AB53556D41B9835AB1F0B747360C5E70A76941357FF8DCA96A
+8D5174956AA38DCCE0D44A3B9CFC3E3CC7D24D8EC22DD61A2149433F4DBBD8E4
+67F97957F1022E5E7D1A8CAD9722A266D144978B37B8A6FC23F4DC0CBAC651E8
+6D90AF9D356AB5940BA4FD8A374D02C1BCC2B41D8D1A84EC04FD33186E1DC0C0
+C9409BDCFF86DE207DC22AA9C56E62920D4F938CCF61B877D6B1C05DF3DC2320
+25291BB343D1C38847BFE187CC7CDA9BF188FE2E7753F4B93F9A9DF8A5416283
+54FE0A48739CCDCFD743DD944EF06E6B6FB8137C0109EB99B449143C5603C716
+6C91DF5DF09C3C00615268EEC22869F75DCDB21830624440DDC7B9DB39B2090D
+CD46344523714CE9C0968650F97F55757BC473BD53920F98584586C54E8D8C3F
+0B8C7EAC077C8743E814B966D05B9B825ECCBD05E3DA5A3DF441FF1DC4B2C0FC
+570AB869767FA3096D2214A2A9855DB58791DB7B4E67031FD5F9A64113FDF189
+8DDFECD32DD9193DF4D18E47DDF2284D1BC33794B01C59E7E2C419E948738459
+880C3F84C2D9462A5EC8B8872AA0CEF79D92FF4777579FE9888F6E1A73519FDF
+1061EFC195FDD6D5677FF3B254084F007745883822943566A71799A4C5FB5253
+DD2FD2B40ED55AC8B6449E4694ACC9B3FEEC6394C8324FFCE031C9B82F4BFBAE
+6399622CB8196639D673F0C54CDBB69881D025D015E68E9722794775CBAEE8E8
+09B0A333E0A3B28F2C470A0937808E77459338529043C0BF76754CEFC819B7BF
+D3E8A4545B7260ABCE1B7B2FB8765CE41C4B08DD88C90D84CCF75FBA92ABD47A
+5E45B6DD68797D57CDFE87B500DD28BEDCEB5EA8D407C7C5EE98AB184C1E50B4
+353798AE77908C4FF783575C89BFFF6336C317671AB14B53CEBDD9C1BA912CDB
+EE0E2AF1D4FCBC90946469D694D7B8918B093D607833CF8B0E4FCBFAF2205F91
+B920F781174D8677F710AAD7DB5EC5B5F07D07948A762528D1758552F2B2D46E
+31DD081FCE0FD9E466305C01B90848A5ADCC95155EBFB40D0E7DA02A224F20FD
+52CB3D6FDD186D0A820A1D90F85B3A970EC99CBEDC7F90C89E30578DFF86187A
+FB14DF380618C461925020F966B2B4F46EE0E10F116E12FC4C2B35E4D29AF634
+D63A3C0AB205A2F02AB8A3363686E3A2847238007FC7BF51AD94276FC5775D3A
+F067E9B20277614F06134DA5B9A9623C92D3FFBA8E99AC4D7ECAC0D46E923B26
+C92124F0473D5AFABF381D3C4956C79123FB7DBAFDBF14FCD64A495CE663E6A4
+1A49DC2FEA20CA7498F7ACF105C1BAAB3C1F1FA589F452936A798B11B0E2AB62
+03E33BE400287566C8777E1FA71FA9DCB69748A30941E68910712D9F73B8F1BD
+7C2E5B47CDD34B75514CEA925B7E30444432532D0648584CB4B861CD0AC6A384
+9AC035B7512B4A0D58571860C315E6231BCAD47F35B5374AA2381DC997FE059A
+5E252C5B1C09F35939407E71E8A81EDC1EC9EF276E5195FFB81679766E35387E
+981778AA3543D2706BC4FEBA7807C861255743D04529880DFF0DEB89C03A4A4D
+E40770DD91DD68508D540F2E78C071A8508465694B3224BA05A9AFA3DE07E5D8
+A6E1DAF74096F1EBE2005CD5DE5BB13D269145BB0C43C2ACF5EF4A7719640020
+F080BCE65789C208DBC969719921107E359765483124923A2145E68261E999C8
+32571EF166E1B2BA10B83469807AE4F705770FCC399E387DD9BCF823A5DB439B
+0E9FE60C0E0DFA419FC24ADF5FA46DE77202DE8FBA4B8F86A6782BD9AE92DD44
+AC3A20F4EC30CBE72CAC416B9A250847D5086C77459F0B8C642BB92508969228
+C0A73EF23741F89773BDF3CCAF23898CE624146DAF2D797954348752FC8D87B7
+969FC2B4F244E02644847D39F5B0099A72616C872E11C826516CEFE76A20C44B
+B2807EA071A88F8B34A4F2A0048F04D1A4630A347AEF5A1D3E2A52751B58C09C
+6084F0ECC27E61EBA5F39B29C294AF97936EBA8F80BF5BD6A17CDF059095ED2B
+4C89EE5901BA31B1ED5A89C0074BD9EFFC055DCB85173D931F3724D9A0A0F13D
+0E6F07A4F4BB48686391760AF463F6F3C12253FE5102819F89A75A74353573B7
+125444BE76CE28AE3DC8D7F2DA7B8EF5A3A5E760168D76A9998AFA42170C8F38
+7F9C143B5FD127AF9B3813C5DEA873232BA5A9E2503B144C58F03C38445AB23E
+6C11E99730D711EAAC1ED9356484A5B178D730CD0CF5DBBD84D818F025F14A32
+6FAEDBF152B199518B0DE626EA9034587F3811FE1F00D6221A85C51957914ADC
+F7E8C2B1FCFCCAE5FACFF37092FCC7140A404500D200DD0FADDE6B2299C767A9
+F5C968D094523ECBA06FC7B3E2D46479C71092E48A27D35AE9034310E02CE3A1
+A0025D7636D1E5250C9FA8F49C7E1E29D41833E9F2844D17BBDC17420828E2C6
+FCE40C66305D08779BF21C7A5CAEC3B39D5770F77F8EFDC3F05C5B0FAA5D7C41
+F349051691EFF113848CFF72552A632E3AFDCF623BD4F60CDEDB807469E1BFCF
+35D17455CE0DFA321BF15804471BD7495772865301E1784A009FFE80001E105A
+D89529EBBCBADED83C3606F8CE3ED035A4A934E3C66464305B3A31ABE42DF62C
+E71BF6E966763237118DD10263838F4D04B5D37C5B67A702F42666CCE90D4AA2
+3B8635DF4A6ABDE1FFE160B5A51C04160188ED1D35FBCA80900DE29472A44569
+3623DCBA5BD106F2ED7AE6EC2B79F5F5EC481DD66FE1917EF14C40A56954B428
+17B8306CD12F4D9093930A06A80779CD3FE6FE5A50CCEF0A26AEFDAF9F67CA95
+DE58A6EDC76C17207FA67DFAD81779554DBA91522B3BA560FE75B9F2303A8BE4
+D5BFE98E61FE513F57B368B02FA80DE8A53D41972ADF853DDF260248EB94DBD7
+88FAEFE7CE2C9E2C9A51F9141AD6FFBB987E0E7A58CA6FC01633FDD1D37995F9
+3515326E051969EB1AF92E8147A285757EF0851B9262788D37DC623E070F17C5
+0BB65452A3AFFDEF6219F74B07B3E57E7F9830A3174737326F5AAD1EEE59F93F
+CAD8187499CD4E7A11EDEC5114D7FDAF7D6264E345608ED422B04236BD6B0E02
+A53D8DC1479C631546642A4B08C616B572D9D19482492C031D1AF9368A9A2DA3
+EDC53B0B52CB4F9A47A8E04936335840B2225E559B1D9D65C974C52CFFCBA70F
+482C81B178027E2081E1435F2F4608EC1B5CC2A7B221E3F8C8390FC16D438843
+A11E30AA34333643546732E8E53575E8C27AA812ED065A6E2BE072A9C7A9BD66
+DEDDE167CA8EBAD3E144DE630623A08207F0CC32F957AB5BC710D58B9D1BB6BD
+B05CE462D2F71C534A988512BF3369A067027B7106EEC6AD8247E4CE79314CFD
+240A52726417893DC1FE17FE79A5E9081EE5EA94BB6DAA3A187421DC74F99EAC
+480FF6FCC204F266D0CA64286277F40C7AE1952C9EA68BC1FAA7CE3930A467A0
+AC54DD6FB2659F48AAE7B324C88734435C4D6327FE037447D07F58F5C8E4C54B
+217649797A99A3AD32CB53C6A8A0B66D1E5700A9BD51C349455CD4E4C6DB08AD
+E301EC47E5FF94CE1D1828B072F7CCCAB942E16778893BA825CD9DCC42508FCA
+08E0A20DFF9982DFA364F11662107B6886E63DD9F52C5E97AF5013CC3A4BDEBB
+E4BFC559A754F4DDCC9B853AE0DDF468BAC04D874B23DDCBEE02311971C7B8CA
+CB3F1573BC1C65B533D8E598516EDF5DEEF507A3ECFCEDBB4CBA90754DD2EA9F
+3FF8477E89D58CE0389FE4E67436C959DE1BC08B74EF2B682E39F8060F7ADB56
+F2A791B6D2C5FC4FF701FF0788EF814C98D0B4D124B7BBB1A2989642EE64D594
+269FBCAF4C6205808A229F00A65EE0C8BC9491BF41C51930AAE78B603E11A967
+C8745E7A2B6B79319BE5E8E8DA7C840A1FB15BCC127E4A10C650BE988A3F166A
+DE6302BCAF42F752D5A0FDE240D253081AFE19C1B11A2AEC37017AC7C98B9A57
+FCCD20F921061315629711BE7B3BC6814094D7CD98ECCC30419CEF0140EA11B2
+664EEDA946655E01ACDFB99CD45A7272C1776E5608116F2703E69D406090D5EA
+0ABD89DCD80F462FE743365CDCDF2EDB5935DF471F37D4FB81695370D7A53EC8
+A538745FD83278A0396BE5157A851593404B88C4D48332A8CA3CE6F2899C78EA
+FC07453D70D48EE7DBD562A27504AD1949BAF168642E6C12F846B058BDE1497B
+16A9FBC55D0344181A437C88A771DB418D0E9DA501524CD22C22E135D13EB726
+B45F3E1EF57E68CDC4D943800B9CDF5AC77A30F63469A84A0793E82707A99E89
+3FDC8CD4847DAEF459CD8FE2CC0C1711E79AB7AB45838D97B2B95BECC673EDE0
+F89A2E84302910A12363DEBFB12A2C89E2684EA41F524ACC4AD9D10E22F5965B
+C832A8843144784389E0AF0FB4A893D4D490BCED6B8B85BF8E4C8F7C34F53C79
+FDB96F3484075E89FC3774931BB23D85269EC476F43A368ACEAD5E6DC1F2F9A3
+71410C0F5468BD403D84C83AEC2A2271BEBF687A30D47B790A795283FF621121
+B4A5C1ADA9129C5B41950E0E0CAA9F2D0FBD9809A81EEA2DFD0B718607F4E556
+A5FE9FB7CC370D964E77EEE02D7E3FDB8DD27CE1AC030E1A2C865D0AED6ECEF2
+EFE0C1DD1362A2EB810EFD241187827546F59ED769BC19E1186AC8E909F6CF3F
+450B4B3EC550EBF77D4670DEE0CF8E78CF68F7F960049360C6B434E2AFBB3783
+9977DF82563C5AE5C55E5E48F15982A60FC57EC34ADC85B02B7F6CFD430C4108
+ABE432D2D4699B5F8831E10024A7255C546FA76EC808F9B4EDCF558A4072C6D5
+AB6CA311A26EE67DAEB58C02D0C60096D9B7A591F743EA7C431A0F778D97ECEE
+CC11413EE1CDAC1954516B13E760BD2F6049B05E5DA04D20DA26F9490C8416AF
+6C472CFEBE8169460EE15B24731A9B049DC159C55CF60395D708D8CB62D9EDB9
+CB29D163410181C4D3AED210512458FA1FA9D7C4FE867AB4284BD662BFDE533D
+28877838D6D2D0138B5A0D85578CFD7FCB0F1DA0C2F071ED4263C9C6B8196B20
+4F85318C95735248E060867E7C71A67F27782D78705EC3D0FE5A3FA25D1FACF2
+F6F0DFB9D1AF62C094DDE14D9AB3238DC59465C00E867C56619012A61E67EE39
+8DCDBAF78F178B0E11A0865198C8F4CA9C1D619ECBED9AC954106D5C73138F30
+DFFB23F4B29EE6AA2526E174B4CAFB3D1EE78F41566BA5165D0479881529E7F1
+B77F65031C7D4F8892B361DF9E3ED1ECED28784E699C62E7ED58C60BF762CFC1
+B89F4E7B28553077C2F90D05A19004FE453244731031C38BF670E6CF57074234
+BFCEF4656175CF13949824D3F126A68873F5ED56EBDE07A6FFEB143062FB964B
+7EF52DF82044351E1A24295516A3C7E333F6FC26007F5336F680D6C341D47A9E
+ACB8C2BF7E00239C6F32B10A23602B70F9FAAB4FC43826FF24EEC5A34F5D19B0
+277A901A28B5252ED7B1A5D8BBCBFD49C5AE33B8F71214FFD7DAF89CE32FC264
+95222C2B8C6D4E5539BDB8314C2878E1B6B8847FE1A2580CB0EA2B77C1BFCDA9
+38A38ECD45A92FAA14CE751255B8287D3A7A8A545062F71C1D6CDBB5D0582811
+C1DF352A9CB12A2031CF644FEB8F7EA4FFE9916984FB2C4CB18863605D864D16
+BC8D0432049CFA28F8B4CECCB370990D54821935EE332D6EA815F2300003EA93
+151D4D73E0269AC8D0544BE1C4A07E15CCDF13288FDE39DFB452BAB4C46BDB42
+6C335595990CD899C58DFBD4A6A3049CA204FC3325B6692206CBA211DB97D4CB
+AD7F8FE89BE4258C47EEAEC6C0B55C09339FE497419C6C3B1C741FF68A8BF712
+4B9259E1E683A45D07B4A80AD1015994FA3FD6F426F556BD75F442EF3FF718DC
+0EA7427EC98788DF92CFD4A17AA8E863F1CCD4FFE8CB90BC6BF9B981AD7F1F60
+E4EB87767B9F7033C6305580F89021ABA6E608836BD43B5845999C1624E9ED30
+A8D12A83E5B45B2B729B82D451BE5347ED77EA14E3CAC49E62C0DEF57C007F23
+5764C91934935753263D5360CE1F613AA3B08A69F5BF9CF370A228C5F0CA9667
+0DA608DB808A5D00E200C10C9D8D93E07A06EBFC792CB8C0983F54AF72A1FB18
+9C464C825B1CEA956C2B8FD7DA2D01E92270A6A4CF2233189E5E8447B9310272
+764ECE67D8DC11B2E669B07467C7343C07B62DB081F5D5F6F30EFFE66C683E24
+EDF8423F2BFAA066E7654F0444533D96446B70022A135D5C4455960E4BA2C16D
+A90AEFC83E2B51399F17ABC4C8E16E511346F2B99C393EB638BE0470C7760947
+EBA6C36A522316D9AB5FB5E1303B3C22AA36D4A0AA3593EB9F2A66A952BAF3B2
+10AD405F693B01EF6BB1A097F1D3EC68BE40E093BE67C407169C1A6520B41CC4
+1D1671788AB70C05F55BF2387BD32B028990677EB77F60F55E28E962AF7E19C3
+57754093C51EBCCA37BA102AB8B991BCE337E6C8519F0A61D1F310B9ADAFAF1A
+D0E7D09785318A5B1C92E41DDDAB5C339C5FEAF6361189CB5BC748845A7E133D
+20FF9B6F50376C597457D2436C04841099F7635858B0970C78AECCF8298194F2
+2FDBEF4303588E5B867200276377C3C74507811C3A5C09461938DCFBA11D86C0
+7810B5A87E068FED894CE7B05DB2AC98176515EF4E18D80C0389FF960F2E455E
+3304411DE928A768CF508DA83B240EEF1C2E77ED22D3BEBBEA6DE87B619E861C
+F8CE154B1F28D1877C5393DC3E278BB4665C74E0D2389BF3CF0E8273A966DFBC
+BA2AFE24707576BDB6BA3C6808C47E34EA19A0AC1E314993737B1C72AA28AA51
+7BBB96EFF89C7B4024D7E110133C444A86EF7CF675792FD02144840A45827808
+0018D3A681A6EECD6E76F6DCFAFD736A9F921B8122A8FF4174305DFBA29BCEB9
+08D5ED4E9DF165A2FB64365CDF765A036C3DCF2EA62842FECF7AF0406C1082D6
+AB1FB2BC775903B1E80EB405BA27F7C0B50E2ABC7238298F5C30FCE115D80795
+3B5B3B363C3888270A1A56C3348EC674435D47558BD602D3C3C62B3FD27F5668
+C358AE5632D08A636CD9C142949B380AE326D3D09573A3DAED1717D333EF44B0
+7DC214A2918C0626FBF8C4B10D1A33D737E01C499DD47C62B7801868B774735D
+A2FEF53619CE5B86FEF0CD0EC273117ADF745A812C44C83E48333CA6403C1B12
+70ED026E6EFFC465009E463C6C12CF14C38B5E0EA49053C7F9846E27BA4DCF63
+15147D99B24F8A3593B7EB4B05BE29E7633C33C8E482368108FE04371347019B
+7FF3F759C34400321E6CAF4516D82C223746F0958DEC483D4DCDDD17F14BA181
+C8FD308D5A0B424CA7E757E96EAC6F187D459CF23BBE4A00B7D4AE048CDE862D
+2E707F7826308F6C0DEE52ABB867E57982EFBC623CEB8D2095E02CF504810F8B
+FE80B6EE0B51CA3D896402EF0EBF2DDE03C87507F540DA48CE7E6734B2BA280B
+67E0B90D9A244764C911D0D4CA163C00D4CC35BD72CCF8F898C1F8FBE2B8F458
+EE9562419DE5B8C813C2295BBCD145269DCC0745F7C3B7CE6E303D2A9B7A4845
+F54B291938C68E816784275F808FDBF78136A0C584AD16FA6E876F128860D798
+E2E9B060EF212BF2D4655C4390ACF809F7AE6615741F5825E82F4363978C5C9F
+4F70A5D1DF3A48327A5278C12BE8494A0F72F71F7B1BCC5B9CF6613DEB4175A4
+1A946D183E689E8F1751F2C8F1D20720D3DF8520F5E734EA2DE6F812231B08EC
+2A16187091817A2BFD63504381ACE11C1871D3F364A767519AD43AC474EE736A
+953CA43C49EFCD86578BC95CC0F5A5500384E54FF29187F5DB3720DC1538BE6B
+91970660AE4BEF3DE6663B20CBD926CBA57BE045D7DC35B11540D08A1A3AFF1D
+663DF097214C667367EB77762F6B4777333BC2B37FDCC31C8BA130CE7926C291
+8483BB16F9332EAE34BC6EE08B3396767661A962682423DFA44A7D509BD3EBE4
+1D63D998CAA2BE9C9298DA52746A445A475EFB65752C4EAEF0CA8B69CEB84073
+5BE869F2C5F7E898F5A6AA5A879C6A80DF7503CC6BC4CC29B4BA0C91163A9C02
+29C7011D75FAD03B3BFC3733CE9C5B7F2DDD6DD51087B02458E1BE21598D5AD0
+75CDC0E87788B90F00595BA73BA02EFA08852F1A70B772748511A749E90BB884
+4B91FDF8B3AF56FB9B4E84A9BCEE41790E00A7BC9150D8A2D68A8AE4FD052050
+8F157893DCFE9B4DF0A290BB2A0CC0E8710FFE13E8D7600F86D64B440E3B7358
+90D8F4A790243821FFDDC287D5849A4416CE6888F84CE12B868DFD27FF08BE3E
+BBFE1B6CFBB290D6A796D8FEEBFF43F3F5A683B7C97D774838A941F8DEC204CE
+ED15039A8550A6526646A89B1761D33622ACA359017868D468F0CD5264F7B6E9
+76FBFBEB1370A15411458E6AB7D23D73FFB1A6E97669989B4255BA802BD3652E
+9B3199CE40DAF0D45355D3D78FF6AA6A19E2F6896603072ADB6EB5AF5873AC1C
+F2BB8B5249A24AEDDA9D32A8D03F35C9C7463C0A131EA02993731B05074B65BB
+9E81373EC5820673F017F8099C07DFE1A869DAC39B41F4002D60F78C8986D75A
+4B8F81CF22380665B282A873886A2115D05C2A295193BA5F976DB7F1B71B77C4
+4C4A04D8D185EB0E02DF4BC91BC067CCD79F2E376C74067D0E6974C8339C2414
+70166D1665FC4EA6B0AA456405E707863042EB637E0E5B06AB5307C106A96FDD
+32202506C3A2109CCADCB4DEFFA0F018DC000A5A62AE46C99DDFF7FE4C626F81
+FE20ABEA5C55BEE5980E49A22C2DE0B6295712EFE5833D2252FCF4058EBC3E37
+5A093FA72C8A70DC76B52F2C294F1F8B685BDA8ED4AA22A1043DEF9E5FE719D6
+2C29B8AF1F19E91EA09E0F59F21048344F323BF93027599ED17FB6F18B6148C2
+501B2FAAAF7D892FE0F37399321BA9A4DBE05F558334447354EC4E770683EC4F
+3A48A823B2E08A47EAD0AF14AD89CBC25AD49BCE507DDD79B921CC9714FA824F
+647B2C5753D44C5F0B0DFEF98C56638DF2B45C00A80806A05957A090BB954BA3
+546B646D4E565A19EDD8A0D5014AB2039F5DDF88A8532544981137095F2D8302
+034D7893FDDEE3C61F3E0F968C7B6811ACF9E8A3C4FF28D55C39DB72118C7A32
+B7504EE074395D10824AD2DABAC4BC89F490908FD1290BF0ACFA0AA23ED6FC81
+B6F93E4B4B7DFA3CCD04BCE39FCC582B599FE6D8F480AD07A36C3CEAE03A9EF7
+16D482E8C26822782AB7C3F7AF8CB652D74DEABB0029DAD486B82E21B26A9778
+47C08D3D51B997CA40C048244D7639BF4C10E1C7E54396EA501DD98385ACE1AC
+11F0A375517F1EF8505B4F2638F2A59FEE9264B64B326E29E94A63E4F7AE0B3E
+5E56AA3F487E22F05A025012A079FFBB0D606D8F35D780C30DB39B52F5583D02
+7A04575339F3828ABFBFF08C53638D72715165F75A76DC11A6EFA40CB80223DE
+48CCB5BA546C5E4C037E6743A95465B4BBB98561C0F9EB437A720CCF3B6D7894
+84A791A290353625EBEDD8735913AC640B01F85B3B1C257DB91667215EB78E12
+AEE7C5C30B7999BDE0083E3C8448E8A74980D18A59984BF4344C38585295A0A6
+660224F8E2862D853F3A71AA2F0D5C9E572C2F6466A86578CC78B4FAE9B05852
+ACFFC86691DE8B6F16F6F2E258421A3F640E21B37583E12ADFB720B79FEAB90B
+B898066E236E798BB2F678931E1749CCA170FF8A911F8AF43DD0E2B38B6C5DA6
+AB082A5592807F3CEAFB7A476540081E5655FEBE19ACF427599B4101FC0B026E
+43B664A130C8E3DA4576F160B9DB1B4A23016DAD47690843F5611D99DED6C324
+2588D05321B52C398609A8DD198E230B0C12B932DEA84BE6954350028D7BE0E5
+90E6F3AAAD676D0B713151D8869A40720FC7E80A27A3F6C1C5A4EE9DBD0994D8
+387B3FEDF4D5DD607CF0C05B552ECEB8B44D3A9238DE37049A87A353E43C5800
+4BB8B3D2DF66FA76E8EAF9866957642B805B1F017327FA969E26DAAA10AA02B9
+A6E621AE7AD9D4EFC5A9D79949A4E472D51C729A111F7BE36701DDE90573FE83
+9FD9B0B6E6FBB2CADF3C11392F3FB5C9AE28BCCD59AC832F6A7DFB8F15CFDCE1
+87AC3E6E94BE6645E045AB2C6C4C0E19CBE18161F0EC82179520C113B87939EF
+D9DF315803498F5306E840307AB3F3C1A10EF6D6CAED6CCB58D31DC0A4510918
+E06B1082514B2E1DB0B38A854595C26F0F49281A89957C1D9217A4C39C7BE174
+CBB724D73702E3193BE840EB3C8BA51297F7A1EB719A35A17D2CFED85CECA204
+9D3776924CC11081B638571E89B548F83A794B3A36E96749EB694D04D401C640
+F045350085E0428AAAC16ACD755BA6B86582293726CF46B439B884E2CEEB786E
+7BD3BA20C7A9C69CBF1980DBC4377A70390190F8F077FE42ABB2DB2D074B9048
+E13156FE83C36FFEC83FE5BEC801326F27CC39B97CD1D1CE828D293331F9C8C6
+AC55965E4BD6A3731C8BE88B3D344DD5585D132919CB70B6D9090A4B43664EF0
+698D2B2F957904EDE0DD7AF151AC5C31230E9EE1752E39B8A2D2CA7AFFE8FE1D
+A2D1EE2606732C786E13CF84753FBF1B740AB595C991515669986ADE71B0CAB4
+CBCDED97BBC63B88EFA98ADB61F61053A22AD963514EEC7786B373EC8BC6943E
+BF61DF44141041225CF2016185D524402D8E2F1DF1614E7C3FE1FBCDD213E25E
+A478A32125DA277AAE7FB73D469332E5EFE2CAB33454CE0C84CF7E77E04EBEE6
+F1196FD5055B0C3C5F16A4F99BA2C4BB9294D7AAE57677292506C98D61A3C718
+286386F655A8BD7878F2BD79C72E7B2078BB055E19B0D66C72277FB8377404C5
+452A733FEDC3A1230EA01F948749ED27B99882769AD32F0CA8EA428C23D42399
+5AA082BE83B1D0140277F19463CDD9FB12DD7F292E6E765F4C5EFFFFD1C5FE6A
+DF073FC38AEE55B353EA0D2FCB03FD1A306F3B41B763E734F05C5D47EA9D1348
+09863A7D75D9A53479502EEA305AE835EC316900B2976C246C06B147C437CA1B
+70BB2EED603664EE57ED028B79D27A0583EF181353CFAAE225D2837E34841C1E
+3FE47022F47D424C0A923CE787D5661748FAB6F96A6D5C9E4093B74E3BF99A2E
+DA0EEB3AAEF2FE7BE9027B7D1E0C22A83A0939FC1893DD7E2A2DE74E17D8C860
+4A085FF95FE132F103C9A7B65052293622169ECF799FF4FFAF86D567662F38E4
+D0597F6CAF8C15F43881614FEC0FA6AC6F50A29DAD364E10989B2D9EAAD5C96B
+79A64713831EEA7421147359B9E333109D6E3F7DE167A828D62288145CA9CE50
+18FE5D524015D490A70F55BE8A2A67E85CDD340339E185A424D4D91C978F55C2
+82C63A552B8A1B9D528D5416541C13F78013816F2321760025F6CF324841D509
+BF5F709982232DDBDD998E843FB2752315A174FC0AB0E92E822BEB3D4B5E5953
+B78B157664BB06F12E408AFD564D53E60483FAFDF0376617602AD93707B6A961
+18712488E43DF282C04287B4ADF471CED231BCBB935E8586CB475AF8159AB2C1
+E976438300C8A2996F107823E7767B8957679EB3ED13F4522EBF5D3BE513ED16
+3242C8A1CE5F9461A7F11E3A6BBCCFBF2F4B5F917EE2FD4CD1A678AFA5C99587
+1BB27312FAFF5BBF81556BC31B906E26A8E04238E3F48684D5CF97DF39365EA1
+F9BEC2A38089CD06DA66DAD500D35D241E11FECAB66FB86F83D6CC5EECF11613
+EDA8C3162FA4BBBA528B2BD59EF681A6C2D363EFB5076C3B248EF571EA9C14BD
+30B6AAB558ECAD80164C6ACE54E379916D8F63F4CBE4E60724C9B1A36458D0AA
+612D28DD9642674F814BAE3BBD51A009828003667B95344E07172CCAB42E37BF
+7FF1CEDAE2F174B818784BD52C01B28AF04E2B9B356A8974036191B9D4C7C609
+0423996668E3F47C856BA4AB75A69BA1BD37F6C23F188825D9E235411E40C2B5
+6E61DC5664251F44AB55EFA3B4AC2C172C0CB250AB54F832536649A8C72BD078
+1DD442F7606F260CECE8EE0553AD5C128AA5A131C9629A1ACE4D4E228DD9C004
+B83D6981D8E3463405E9BAEC5AB13E0574E285405EF270A816607F83D41CB36C
+645234278A4D2BA72E94D02A8E4259B64F02EBFDBEA1CE0EFCBE5E25A7825A16
+A0A3A4DDF0B333EA12D6591CA8A0F196DC938135E5B22619F96FFA73E8E96987
+E8D8C8CD998810AD79F9ED45C2E7ED5FCF6FA837D25B2673C6354E30D989D24F
+05DBC175FD1A969B2459B0079236A9DDB2F82DDA24163592EB2FADAC6C3829EB
+3E36DA745B246414C1E57DA1EFDD90B829A517C660E5A3B92BF00791A83F3A1C
+4A335593F02E7C821593B4264521D9A8107FE2D13DE35805D9265569C9F0F08A
+3232681DB88AC6CEEA2B54FBC37FE7AF3EB73B8FD2F08A9F835A8FBB85389FF3
+76118867E1AD75CF9B0A4DD080C54ABE74DF8D6FA93B40E8E7656EE25ABF2B9A
+4FF28BBA3D4E16237004274F356CB45A415C5253E765FAA3343DE32D1C833484
+7B9EC592F01F97698634A35049826246762F8FAA0EC1784A061241D50E16F7D9
+D5A829E47E4CC6C2BED2A92827E2911EDADF827920C2CB367D93A724583235D8
+9D326432A1B56B550C5C73D8A9AE18F030AACDE70E22C55A89A6C725BD134B14
+5B248072571FA0A29FB272A015645D804F350BC3C5DA730A62A21BBE6931A810
+FDF7968B227C8FA9C386D58C6C6EC534FB268ECD436700035001FFC2F6311452
+82895D395B4F3B6E3A5E224297FC68AAC2F1BB8CDE58FFD55FB2F986D5DB5E88
+3E64D7EF6C57BFCBD7F2CBFB5A39235E9079CFEC200AD8664DFEBA839652CE47
+3CAEC3FFA8BF61E46B71377CD2930F2C20FF4D39A97A07659359992EDA8A7988
+C135C4AA9E6A41BE39A192B8D5701CE678AF5D99AD1E63D6CC276C10DEB077E3
+57A95AE5E6E01621B3B2C29BB39A555866BCFBD40038215682F704
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 11 /ff put
+dup 12 /fi put
+dup 13 /fl put
+dup 14 /ffi put
+dup 34 /quotedblright put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 61 /equal put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /quotedblleft put
+dup 93 /bracketright put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
+dup 124 /emdash put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947
+5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F
+4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F
+E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF
+9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9
+89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87
+7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3
+AAAEC15ED0F362471AA58488620156F3474FA59CA080EA96FE995D2B3DEEADF3
+3141D157481C66507725ACA5953CBBE1ACEE7E3F02C72C6552D15EB3D612730E
+61A06A43575568DC3CF3844BABF04CA767E2995196097015E0C4F622C4356B6B
+F41DBAFD797A4B9D7AC22332C552043EF98913D0D9B50CA6B7CDAF903BC5C04F
+D20A952BA5CC35B646ACD0A287C956B98C450051AF6AAF79DF37F8954473F8F6
+652BF03AE2AE82B99D820CF93F5FC0BA17EBD7AF90313E70594EB5C354023BFA
+07912408F1757319C7288E99872B907D5AB583B082EEED8AB079C63E38B07D11
+6744856E689A479CB3A8BC081F33CB06755926204981DC0A45B3ACC18F6865BB
+EE2C50DB43B62E3630FC1D9B1FFB3BFFAA6D0A20C0381ADF48E4D916BEE85BA2
+BB40F538F55C11D50F882B73913840B45161262BC8B0012694C3EF26452F9B77
+2CD7C7AD6BFEEAFE31C8A721C2D46AA00C10681BA9970D09F1E10DDB693AFE84
+246AB18279A2B24E5B50A2FF6337B7B1039FFDD4B00ED3667B5F2F7BC2786D2F
+525A0E82234B30711AA835EAEAC2E404915FC7EC0081B194765032708B5E11CE
+EF6868298CD26E5B9EF345BFA3EC2911E2B96A0B40AEAB95BDCCEE38F5EC170D
+3BFB792D2DDA7E57BD2FB7669484EF9322A1BEE009594901095DE2BA9A15A0EE
+4DD77404CEF16EA6C31FC04A8FBDEF27B9FC1AD3264388B0B12D8E476305B912
+30B51624D4605C45B514473F327DC3EE8BA69032A95301CF714F225A92C253D0
+D943C80B9CD0524C5B87A8D052D2E47A9725EF869D3B89097CC13CA9BC695FF8
+A9468004450A76A13B7EE78A03CC18917EC44036C2DD237344E594569B8F2DDB
+21F7619180B8C760741961CCBE54FD6DD07C4CF73B346099234A1EFFEFC88574
+6324E4232BA18A38EC9F0B780C298877EF0AF42C1EBC2EB52DB64A1E1E352503
+36AA29953A073B864FCB31BA938A4163D000A159ED4D345331FA1EB4009CFF67
+1D107BABA6AAA48075C6C50BC7683929EC146594E55B01D4F5B582328284068B
+2AB05CE92EEE1DF4557DFC8FEF287CB7F961F4F1828EA48B0ACF5C63E1EEC8FB
+6A0EFF132268B7DDF7B465D4A21B05993F4A4CFD168A700D04A7303BC2C00391
+392C3FF97E770E6FAFFFE501242B20B4F7B6C17331C64BDBA3E59695E176CC79
+E7632AC6D2E920AA048BD1EBCF9909D8C314D2EF3CFC5CF88D8570BAA814D467
+96D86CF4415C5B739FA6FE7B4C228F06268D28EE33381982E7B005C26D2604B3
+AA363CA4732B9BB0E4D4EE50556D777258A7BC232087C9F00B0D5EF70270B40D
+3071E14E4E5AB5AF1C686C5A7C268D36A0787DC9300D4CFA004F89A73FFEF780
+E6BBC957E31B764159C3ADF752E6E1A6C3B5B855F8A483497A347B601E3C8DE0
+362D76B715916113CBD2D3765197074104C7E17B87670CDD5C227A1467BD678A
+BE442F196034B02132850CCB77143C2873447FDB8767C462C63916D9D4A13198
+B7910E1B274B27644DFB2E8372C8CD55E6E2AA5CA952A079E1E6389927495921
+CA39D69ECB4DF382FD2DC213EE382BA1A48CA886CB6AEF2B0C50CAB47B1FC40B
+2C95E13190C92480439E3C56188D162C294F24987AAF4E15E8FF7ABBFF2A12FD
+AEB884FCFFD671EEB94CC075B815C6A45549EC23DB85923F4C37221641B75CE0
+C5C8FA8403C2C9FFCB66CC74C5160D6C7042DDFF33A954DD01C8E21B21F8F364
+F6FC735507D0DB5F68F2D8B520AAA7E0F1D503211339F9466006E9A148F39874
+A1488F1F0458409D442D2BF5935A655AD4656A8411543F58C63DFF9C4FE56256
+7F9F876B56BEB208F9DCA363D2E0F7DF3CCAFD5F9674675BF622CBFC2D1CEFA2
+7A5323971101D3641E99D84197B00D67436843EB9CF74C273062159C361A07C6
+E3F1E0E4666ABFD5C9AA8F914F05D02EE1906FCB66E421C73243257170617FEC
+2F02D5A7F3347CC0D290E52FA815C4D5D2A16A4D4A5E0B50165B0C5C77B675F1
+0EF343D70813346EC4D7384A9D9A091984AF29C810F8C3D4247D37F91C5DA967
+747890DFFB25E67F6FB766168487AE8BD8E49C55BC1B68B831E3F510BA1DA3A3
+9F810B865FA98AF89696CF7489BACBC1033A1C92902529AFCC3F1A325AA9776B
+33CEB0A96B24304322C14C541A79AB344653C18DDDF57E5E5435E5A6F73B3CA3
+2E6B02C0965CDC0D91A1E78493969420A2BD6FCC320B6455314FEE7CEF7D4511
+81A14D5C2F627DF258673F9EFD645265013E717B40C552744BE378E68ADE9EEF
+DF717505C650ADBFCA778DF04A11D21FDD7B944ADB0582A6757196F6E31C48BF
+614B8334A7C7520EB3278ED7B9428590F9EDEB1A2EFD5F17BFFC6692DCE08401
+59356D2B2CD44371AE7219DEE4AC50C5C8C2730E178BC967386F2284702C5F6F
+2108B53A8EFA75CE6EB448EDB68FCCA5D363B1EA5D7B2CD94593A180E9E0A3B0
+AA10767F27E1F7D1545119B0531DA2401BB75F78792BAA00AB685D0DA393D857
+6BC49FBD64F7A9333ABC42753ED73B49F038447BA1FAAB3398B3FD6995547B43
+22565122A45E5FD33F33B64BC4527E4A8A55D732FD6767A3CC020D2173482AFD
+DA9F1D25A46DF927E130DC246352A5F7E363007F3177CE174E9F4B89BA5F8FF7
+9E7C22E2D14BDE2F057178DC4A94F447A97175E1038DD2F13B73F0D80D3D6FDB
+C019E32814D65443562A1D24AD69B432CBCB2CBFFB181DBCF8B1F5AA19AC304C
+B2CACDDC9873A94C05DF171232F00A114090E2D39F9B2E170A03509B5F77E601
+BED695A5E3B764735C1ED81DCBB52D041A7DE92D496FD7625491A42A8BF5D93B
+98F160F3F8EB9444DF72FEEC64C838C116AF5B3127D0A96407C93C94C2727A4F
+32657FB3C5AB5CA294A17B2C6BAC67DA45FAC0B1B8C31D40F2D56B63C9EBB06D
+19EF40B565E95BD3C07F56A4A43758911A9F58CCD4FF35F5419CFB553D321CC9
+7590CA3A212C069E18101F63B2D4EE85BA128D45BC7C96169F6D3BDC9116B4E8
+CBED2FB8FA073AE3BE4CB15983F4B1B22B62AB44E2C9DBBF502C4013C1C4FB98
+909805506EE90D0ADD3455195680BBBE6E507F581AA07138BAC96A0ECB239F63
+578E15C7B59E6BDB8AA7D094EB31C4E7E46A23CA49B99463D0C030C7B881539E
+78C7D9AC2600D5666BA3D472DEFDCB3D8CA197EB10B290F0A59F085325EBA0BC
+7DB7649E7417DC76A73F8F21F8086A770BC6DD4485099AAAFB587838B6572992
+B6C7F6E2E1A199A015FE313FA135EE234025E9A9D962FA9A978E7D28216C3B84
+009281799053F2ACEDFE818DF1AD5778B2FD0FC0DC50942E146D40A5A99AB508
+1A59DA13E8CCEC1D4BA23F1423C9C35450B0C5296AE847C2E08A64578329E668
+21B654B9A0A2A279B857D0E09E4330A675D832F9338F9912E473F8735EDBD8F1
+2E703C629126DE291B63EFCA2ECF3CFB6403EAF23574526FEAC5F14A5FF3B3F2
+B3A0D58703BF17C2BF46D44EC8836B1F3600EA18614B097C303641AB0D9A7793
+39E7609F2E5BFA7BFD9E57A80A95D990338D4C681FB01240BFB5728E47CCA290
+B873CEF1C909554CC4E567B4DC63A29B0D8B9FAF4A70C92D7236CD1D191C9092
+F73B4D7DD3798C30E9CB7181B67447BBE17AE78CC09632112AE5A2583C8C7A4D
+028A7E6103AD8F0F12E35D938A03F2DEE2A7EDF6D500E923740F8CB54C3C59ED
+5565F2096B32E68ACABF0018B212D4ED1590B2C32CD82FC0BFE780E23BB321DA
+5F1CCFD893FC23F52CCEAF524907736B523F57DC312CC804A58C1617D8BD4317
+3A15E19E12114C8E831DA361F640352A877F875BE5E165FAFB5B84D91BC72819
+45EBAD6FD84451B7B335EAD7599B795CCC5144308326BEDF26F171C5F438BCB6
+8545D12C1E823D0CE4BB1F6F3769066BD86F74CFE9E43CC2693CF7578E4E9149
+15376A127D3E436610B39E2364C03FC1A4B49E223441735AAC9EB49CC1F41241
+3522F1A25B3421F4ABFF7545BDBEFE9A480DAD42B1112E2E0455753850A63756
+57D31DDD9E0294D27652FB2888D3445D7B969E178846666B5ED06A2465AAB3BF
+1B8F70B4715E54907D83CC8BEE76B614D0BB324274B1A1DAD05C505FA75AD6A4
+0CCC454CE0A2276826EC4683F8BE6FB515312A345F7A89D2EBFA21508301DB15
+B1C3E9CD2F3D0394840A2977D7877410C4ED0FEF53FFB91E21B967E1E1370842
+4172B8D6AE5D404B00CD83DCF3EF58FE456D31A4A81BF6562ECE87586E03C99C
+4FEC726E5D5137F5001E5CFB78B1758D1A87E5EC9F2AEAEFFBDEF0647AE857BE
+E8C80D1659E90F3FB538BD054CF899D3F071A6DFE13E276759EA57543DB77C28
+DAEDE3CA970C70147753E076B7C64F8FABC0B6C7DD88A81A9EB2FE58E12BD2A6
+DBC6C169CBEF7A21C8A04E2B60481CEF9A97323289DEF0D16EDFDD3B91CE6A5D
+66A866BF5DFE528C0F11E8746102232C30A17F7AAA720221DE4154E857A2A319
+7781B0095F9923C199207DACA821F8B53B22F166EEDEC16B52EB9939DE2A8467
+DD9FE574EDD2A10861E24C5ABA66D4B53CC87F94ABAD037F53F9D311E5CC965A
+61D732F163EC907C39D582AD91939F88ED457EA727D1A29CB6066FDCE445541F
+A7451F71FBFBE9B61609D9816883EC5F7E60ADBABA5D3FA0647D744D54252131
+4697A6E5DAB83C34AC97C66C21F4CE4812FA0F007C12820391A98C0B2507B755
+9E22271A2D2028D0F820735B59B5D087355A5BB1AECA8FBC640C325837F8FADA
+CFD5652CA8E646F959CF3B5C3CCAAED2A06A0C3C8D336AA203C536561B4CC143
+DB957F606034732AE0206A18DC11D670A7BD137C0060049B0EB8134EC060C77B
+C424CE04165E89F1419EFA91116FB37B31EB7634229C3ADD031C747FA6722534
+BA34991AF3F1BF309AD26E66D6A127025E5B23E9EDFD8C478AE386824B7A975D
+9EE861F61D009038981B7A5F077DE5916A5E45718D7AE925B29197C0BE163947
+904991ECB2F4D17DB0638F16BEFDBD76CF6F1F4EE57E191523F1373806117352
+0C2D5EB1AA1074CBFEFE71731646B4974BEB6EF81BFD76407899060C204F5586
+F481ED8E8C84C4DC10AF88BDE4F4DEC267C598301D9324FA3BD2C33577E78EF4
+1958498516D326E92E637055D1B775A9976F88E62B0512E1285C3F3653FB76C4
+F29B3DF93DF29D3AA286CB84C14FBD5C890D72D4A724AFDC0D7ACAEC9FE9EEF1
+36B63A9E05D8F4BDBE56D512896F71FEBD1340DDF7D45A224F39B03A7B8821B9
+7A7E52BA6A80EBA60538ED3554F0847F4795C940B341E4376E8A3DE592608DCE
+BF33D34DA94D9AFC106FA5135B23367715AC0ED81A69AD0CB00E0844E888B486
+585347DF92780F907B7510B1F0E337E041D75B8DC21A89609295E2A27922731C
+3C63CC107C9DA71FCBB11E5124A0F542D5A821B48CA87BD6582FAF9FC8699A1E
+D49FC53F10FFC05BA8AA599368C45C72AEEF540741B4BCEC10597377205C9B62
+06169DBD66BD32E851F34E4483692E2A20E5210FEE7F553F208A1C3987D5532F
+CCABF54090922BA87B122C4444FDE23E8BC973A01B96EBA4680282D0DF5413AE
+8C1C45A09470E47FBE78BD3166EE00E16B90A44790D12172B103138DF120B309
+8ACF4D9C7D7120C90B8C13E75A7731FF54438F234303E15D22D8DA30E34F49A1
+67FA98A4203F94F3C7D73A0FF4025C2576542C4A56A7C9B966D7D615E84A812E
+C06918AC931400D1C8AC2D103618C8CE35422BE7F966A8F929DF474D3486B2DD
+255F7DD877C2948655BA5BA4091A5F34100D3CA65C46493AB1A7B4DB553C56D2
+571BF655DAC32C3B92D192644A51CB23E92B6ED4EA2255AA483ACCF647D28224
+D90C6B610BFDC4B79A6A316B2FE9F8944594025BBB2B5067BB4D7EA7EC70CC6B
+9BE6B86B7B4190AFF56BBC6240813ADCDE03F96599478DA1231ED8981B4097D5
+9776D82A39C41FF1362A394F80A7898D8B74EAB9D63543B4311BFAEBBFC7CF2B
+57FE4E2ABA9816226EB744BF8CF04620451F17C90A8FAB54063CBF23AB88DA24
+03BA6E7AD0B1DA1C36B14426F08FE80DA1EE83E22284156C57CFA4C449FD20F9
+1355E3A84A6DBD3A900B47E0930B71B577F03D23AA7F91E4826A4C89EF131950
+0D259AD19F5348589BB7F789653C7B1E46673C8996E06BC81D7FD07968FDAFFA
+4720D97A97839763D7C235B282447D5DFAC5107D48191C59BCF2BAD8241A5450
+FF9DD17223483624956B5522E2E23CD23DD7BB00A4396D0DDE748ACF4D6C0ACC
+FB6389A3F4C6A95D1B814292B22F824D1F9E7004CAEDC024DF4BA4AB927CE89B
+E2E1DBD925E75DB968B93EF1196E468156A55985587ADA78CEBE73D9B8063054
+531319C5D09313F3C34093740890952EB53F9915D37E74C0A350BD64DFFCC420
+54DC4CF3593D3C9F37A6EAB42F0804A5580C134CECFDD0C37304617069F7D43A
+10283C272B4A4B60123C926DAD35C03957B4E2C00757D4279D3AB134A076AC31
+9DD134D3F9847F8DB572EED14EAD3670113784469A9F07828EE25271C24ED128
+BD2719B3C7E9D990FC0554BD001FFCD5CBE22A62912B747CD7AEAF1F785F1A1C
+2C129551DEFF9DEBBAD69E04A07E596585830EF0D94B33AB9963DC9D17259509
+D5CBE57CC0994A1580915F5B9B42AEC0AEE3D5F344321D5F83CD4B08519B8D51
+C1B3EC55E04810140E57D43DA38731F4F24BE5A00145FDD9990016ABB9335C4B
+5ACAC356CA793F55007919F1393C5D4AEE3AEF72DCEF89D74A4843B53C183832
+A2DA546AD899A8FDEF269D102F1144EEBD070080D6B7D20B3F5640C03DD554AA
+EF32B582FE54F01E8C37EE733823BC599B28956EC524BF2DAA3B446C78F2B94F
+154B666F180F613A72EAF40B55CD23FAC7E2B86EEE97EF5BC423FC80A68D37FC
+6F475F42ED27F94995CF49B0274AFD0A3ED5430058F002EC6134C14D71CFC979
+574912D844E58431D2C649A1E4C47025E4B0C50CF3AAFEED8B6B52DE806B5E13
+639BF4DBFF2583044040FCFDB276ACD858BA1A173B06CE4DD699788A10F720A3
+58A8F1F5AAFA0A962F7921683B22AE7B7B8F3C4075537E73F0D4A9C963093D4F
+F7C1DF08745ED9AEAE5FA0274E0DA342A5D6B61F07F6B0AB4C53122520F1E70F
+7696B884FCA40DC660F07B3C869120399739BA4A9F1E8E58CEBD7FCB323ED263
+FEA2FFE64C10EDC848D94D5F69A89A92ABF0412366ED6F814051B04DDA6D73FD
+25461426D521519EB347EC5B3127B4F49DA9106804A29CDCC38A48AF233C7D26
+ECF018E101977B2FEF052AF8E6457538771219CA94C124E3C034539438585D44
+AB60844ED448D444C7084CA79D8F4DA9157C9EB3FEAEBDB141B43B94D4B7B612
+962A9DC4B8386B92276490DA50B4C1D06D539BA794C97993448BC2676EF13914
+FF98B8C82589CC5C0EFA6B5B5774CC88217D3C754E451B929719DAFBDD9CDCA9
+10F5C029A156AC1C611027B59C94E21E08C29CC4D7F5C00449C6E58005D7AD64
+8C5D09DA05FCF06BACE3EBFC400DFAC6BED8A0C9F97D350937179B8A4BEE543B
+7320DE2F49D88F41C4AFD0FA1E6E8A927095CAAEEA944F778DA3027B59BBAD2F
+7883C278D77F013B7C4CCDADC98436751F74DB9E4D31D7AFA0D0B8BE49833F4D
+5F7E05717768E8394FBCC3594497FC4411A8011A6A4D5EA48AE6EB7088E1B7E8
+F671913BD4D27F58953EF5C29D7A21681F335CDB7CB60D636D8DFE49F75A1F22
+C2DF58B4C308FCE12456BD7711C2FA88E25FFE8BD5AB62A3EA1720A57E95A952
+44EACCD133A1A4595EFBC5CF48F571C72D653BD0AEE323FBF5A8DED7208E74BC
+E2A114D67B2E9FB48D94DD7F0C0B911AA8D5DF562B909B5511509B343386F144
+A757B4DE636A8E4EB10E50E0C5CB534ADE71F5F60D221140570E798CA8A122D2
+791386B22B13DA7B702F0D47BD63B42FE69E2444E00CA3B38EFD33D717889E6C
+C8CB4294A19EB2B7AA0A269CE11DB915B01749B00EB780375E893DC452466542
+75B55B9133CF5D3A5C3D93DA77A67A91B1BEB5B507B653580CECB9FBD23A5BCD
+62E5BAA0B1DEDDFF7AF6E0E6E181AB6FE00C5AEC11786331F6741E9B3DDEE0B2
+CF403D794E57BABF2C949ECE92E92D2819A41102FC28D040A5629AFAB7FDBC85
+5E5DB7FEA4B3EB49DF38F0046933CF07257AF5FD3D0EDCABDE3DB862821AA6D4
+B40C2E259309EDEDB31B0CE5833A6F33BE094A08B95EF11CAFF505D00111FB8A
+F04881C4F1A4DC3169C25C4FB49BC43263574ABD7EF634554C97602403903943
+AADADF08B55B387FEACB09B13D1EFD11D6E200028BB0834AAB365722CC6B1A59
+632BCBC864DC0F6E6C3CB5B948EDBE66063AF31B0B72340265876289AC6410AD
+E4984B0EC6B700A5D60FA82DC30642F09274F0F8210F927CFE09E7613AD54F75
+688E2E632E1A3C9180115447FD582C0171465CB5B9818F56D1EC70AF954DFF7C
+3BC4A955181BFCCF95E68FE5579E07CF7A254B49CC123BE379C3E7B7A10350BC
+BC65FD4EE4CEAC874AB1D738DB0FFCA09E4934DD269699BE94CE224F90D6CB1B
+26FCB86B3E0F201C336A830D391B8D6CC6D45B968AA6E7FD26B99A01D50911E9
+D93711414F978542FCB288A7F67271DC03E749F978AB8A9A715914AFDDF77BA9
+798111497FD6EB885116C4F53F2B0335B34C75868343D0C38D96E30AEC253A60
+A3F3F0A20451DF639E5FADE6C39771E71D85ACA1662BDB67B11544675E2233FB
+03112CDA331BE103F48851388697B9A3EA25A0B9765CCE0B11AAFF21B7234C77
+FFFAF48127B9D06EC5FEE6B787E3768A0F397CACAD1FEE9657E9C38553D13891
+A1CCD5760B2F581585AA17837CF3D33BEAB43CE02EDB75CF9367CB92EF11635B
+081E2B9C8CA40E9F67BCDDF306C263F7E92F3A49AE96E5D4D0C857BD6B292254
+D4BE2F0EEF192D9B0F9DFEB660FE2C4333346F5090EBD9C281965AA31CDE1A0C
+A5EAF5D8A017DEA746AF571ECD20650EB69E1042CEF4929EB0289937CECA2049
+6986FA9E5C91C97979A799BD88396440F422AA9240E80B1AC3107E458C9BDD69
+A6E77A9D354493C3796208A713EFF71B7E31818EAEFF7FE34988F5090543C7AA
+0A7E0288AECFD1F72BFF12ABAC59DC2657FFFB84CEE8C14A1BF4C55546646A89
+9C3E39A34777B4CB8CA2168B36B452EE5CC03DAD2DBB94771F4B73CF3D52A49B
+39DD4869FD0FC290871545145887AB260FEAEE0CAE04C788543BB135CD153E8C
+1644BEF717C7894EE6022E7EEED5512B505F27AC34F55366B69E2270E0817043
+357B6AF1C298D4F2F586F1197E9B292F84D6787B62615A84464121A14CEA5449
+0428B5A48080162891D621A190EB9F9A73AB8E583F5C61A813F46E68FD2ECFAE
+8686CA18EC54B86C20161E248F75F7D48F2809B7CD4CE78B5A6111933FD2AADF
+23FBC8F941DC8AC3B33C1B0957BDF71F6766B3649AD73FDF6DEF8351482DA35D
+6B8C1E004064AA78803FF9715DE47922401318D63460E3367901E996ACEDA7BA
+5641A08F9AA2A62E697BEA0BBF48FC631D8F0A8093809B4DEA6466C1D7D802FF
+28F5F6EA8045D4EAEEE1F81D544ACF2B63847DADC36A2147FBD4489AB271124C
+17814A1748B51D2A74E12A72DA52F564AC5529E7C590C8F1B1EBBFC7B2504A53
+FFB917EFC260EC8DE08CB15B2A325CAE21EFF76CB0132314844AB4B85C52358E
+877461031E2D4BCA00E0157C82587C99C6D1B653891E9C6C91A00F84466D1960
+8F2B40BEBD83BF8E2106B5320E8AE79DDD88FA76B7C6EDE8E04C97B762725314
+C618E74284DD4AEEDCD576E26AD72C2F4E459C53A0845F7F5D152CAF933E8B60
+6C657DE593CE8A960A9F18727E24C7DD2CC62787FC0BD410E19DCCA7242EAAF8
+6E9F02F91B9B2D91909A21EF819C549B0BFCEEE7629399DC238A8C73F0B31A2F
+913628AA505BEE525680E0D2D36636EB7E3CB932C0678818E6EA5CF4F663E920
+3BCA1235E3B1E4D46442FD25DBD07D3F292CAE0D1021CE75661BF6D3E7E686C1
+E3171ADEA9C88BCF39347CE81BB50A74B66B89C52B018E46EBE68892FAFF5365
+E70B3C46B0F46B94B4A7A917A9BD69BB812C8B9CC473D2D7A9F12ACDCAAE20F5
+081544A97490D04C1BEF4B265615AAEB07025C238794E13900812AD28A9B7756
+1A08F1B5D0717B568927503C20B0B3B3CCC7EED92ED7873F2872898ABEF322E8
+EF800A0A1AFEA0EC299ED5DFA03E8837FCEE03141FFA63D42F859B6CFC4ED52A
+5616621BB02C91E134B3A4C7C3AC274584F119883FF01BB562BF7A32785FB15E
+7B721B43557FFF6FD5F818C3E3BA7768AF53243EF6AC3B6A68969321E2B24BFC
+1DD2165F1D4D07FAE68A065AFC78C2B2E3047D422FDF0362720243A7BF637CE2
+3CFFF127CB2BE9DA711962EBB060BAFE741097C42CAD37B59456EAA04447EFEC
+4328F40B700866482AA3A1821170907F4CB66791A0CCDAC1E38A86AEAEAA93BA
+E0A5693210DE3A3AE0ED1CD5D5B8DD9464EEAD5BEBABE999171F9D86C5E3498E
+2478A28257BE448B7BD99C6B7CC2AFAFDA65ACE0E2BF47BCD61D3EBBBC3A2A34
+7B18C84C1F57BB02739F21F1EF7823FCC14652941A09AB5A195A8A5613486A85
+A183D53AB0EFB2A69A58A5564040017CED498CD10E3B5FEA2E22109A45A45A62
+5C8686886774A887148EF1E57002FB79ED375AF560C7F1650E3ECC430BA70982
+76FB7578E38883637D36A12FBFDF68C671411405BDFC625C5717D40601E85EDA
+5062F8115A179FB5FA3BC030AEABCE3D22C5994C3BE11338DEF0DEE6E40AF1F3
+2F5CB02B27AAAB20D33E2D8742E428D87A74F7D0177687514E5FABCA0BE0DCF9
+05B0D1AA3EEA9C4E2ADC589D542E24E8B7655264E5A5CBFFAEE93DD40EB7135B
+060365C3E17B13E5B2E975177B859E50E5E2547800BC0836EA2CE7707008FB17
+A3A2C197E4F9669D2BD5E5D1C9D41DE5F0B7CAFC42BCDE3111C2E66E6A91DDCF
+288F104D560618B7AEAB1D970037A058577CAA9007888C7429F0464C40FC2257
+E40BEB66B06AFE095949778D60A70ED3A6793DCC93B5F10403824F9114E51ABB
+464A09E3AF4D36901F540B4AEC148A3059FB5DB5455D078424C7242C0DA4F770
+2E2A9969038872A0E6E550911BD100F9E42B324F7C8C1FB774A127C0916B798F
+6FA6E7C51E6A81D83E5510C6123036AB00B66F4A9398E4F34C0C54A40BFD72D1
+BE91256A28E9A7CA33277F4AD99620A27BB672E2EDBD982C68E404E217EF62BB
+1190F938C488EA6BAEE617D5B020A6DD2F5728A6DDBBA5D69EF96910D93ABEFC
+D97FDD7FA44339D608266711DD2BDA067D00E3C9F1A07230C8763D5DFCAC859F
+0EEE2E24232C269D7B2F7BE21F677B082A1F1D2187FD9CC3048E257D843BCD99
+9D339DA261515C429D54504A3509032430322E073B6D088613906FBCDC1F611C
+421E5E2163C9BA12B90B1F9C0344A93EE69C376C6DD8DE013BEA7C8DFBCB3803
+81A1F14644BAA08B76F40276177A243D54B74D86999FB14C73099D7413E01E82
+5183710EF3FD2709E2664D789B6FA86913763E74638E44120C319162336DFED6
+BCEE59BC4E2B6B821A1AA45D9D9487CE5365E1CE48CD62B099603F1EDE3A1C06
+82ADFABDA27432655A16E4EF58B6EA6393824C20CF5D623D013B320172676A15
+65FF68F2513D910B5E9AAEFC1DE9D61E58B952F2571884702F663E19734208F1
+B25230740164CF83E71B009504993E82D3ABF199C25CF3CB41D14842FA7EB8FC
+FEE8D74F38F382C33A5D932859B84C7B0E1B49887A30DE453A38BFE34951FF07
+D9CC2ED1E3528DEF1B5344AA3D4C1797BE497CF85D515D644671008133B96F7A
+C412B9D1503494CEB5566937DC88DE07ACB2B76690B76772D7410C25FBAEC34B
+E8A8280E78E7F5DD314800B5B46CC723D1782BDA4969F1310E9A9062A5067383
+21A5838D30E86E821BE859E2019FB5A656C97DF8DFE09E49CF8423AAE4065A26
+561FD2D13662B49E87F7CC2582AA9FAFAB0E74C75C36592EEB78472F66F26B41
+29F45318F6761271130211AEFB32172041EB8E4943755404964C985547B68A06
+8611D0990D40432BF1BC8152F52C825547F578E41C063E364A57541CA4C27AE9
+71690596A80B525912A36EA4C40C13E6955CF9B6A7DE0994B103716D55BFB308
+45FA03E7DB0D2C155C4ABD2746516BAA892B32E852D054CEA731185375585B4E
+5D7065D0A8DDF98868C6F12F536AC66742891D2AB0AA91F7A4CC4B2AFEF64B1C
+B05D798ECB554E45C584914E3DAFFCE52BE7D3EE0C3AB26AD43EA76BCDC6BBC0
+ACA76EB8F3FC1B8E3B8270BF3001A53DE7999CDAD32B53B512007F97AED0700B
+BA5C78609EB5C37BE39D6DF21EBC147C8018BC2C344554AF862F27FD98D2E708
+04B342CFF4618E66D3C7E5644B45858232A13A988CCD3AC078A5132E730BF83C
+9A233EE749C15A002DF6EACCB882B67F3E78A5D460444025EECDDE2ED35D8C04
+DD3EA8754673C1BEB8046EA1528FB5B202304BA7F384316BF2DE01264FF66E17
+4CDEB976863583180032E66BB8024E7C9A0BB4941F1F579609943FF6AF4ED582
+2E547B5C1008394E3E54683F06FFCD4DEA3940A7FD34E8963F15C76AF7EB5BFC
+B56A497D163282B7404118AEF53806C70BCE1187F101230075DE7D650B8694E7
+15D04A47BDF9922D43C4CD9EC4D74F2B57A99F9169846004E951E0379F166D9B
+7FDBDE1603251A5A298C1E539424F1D4672CF3BF6613555AB181357735430A9E
+BAD4C3B7F1192D48F96F9B5C503EA02F45ABD5A124904F73532AC3C8E4E8727B
+925FB5C2F13B1E753BB272A633335EE4624DD13F86B8F6C5114C9A633E8E2CB7
+7784B07E7596EF84B28684CF24BF8C38430457E81EC980126E52CF90EF63D741
+1493AC49DB3D3D97521796542480367B85E8A034E947EDF0EA4606E8363F212B
+BA320F31DBCC9494556DEF5C412D7855B1B44C6A0068374E86FDA93BBAC800FF
+43E2305C91C736328DC3238D11C2E2B27B3BF613886F86657446F8DC61EF17F3
+20A33FFA561502D4EAE3CD1478C86D56CF8811A8BE62CCA751992A6442144C0C
+2E37E57CB8F6BA2AE8B5716BF0E7261460BF600D52617B7433FF25D62EAD32E3
+DC60172F2EEB167CA1601E492CA3F5FEDD4C6DE15748719AABE014BF6D5155A5
+F21F20F9FBB31EB8633302C0D58EBB3A6BEEF3E2B9324D2BEC0DA8FFD5CEE741
+39E20FD3754DC6FBBCFCF9E11A231ACCD9BAB34668B61D026FA57B5A589CBE45
+EBC1A6517208B546A9EB1A38AAD5800903D3B08346DF793C41C566BA9DD0F10B
+AFE0E058C953A4A177AAF42E623AD8B1173DA40E7CBFFBA9537CC428A849CB21
+15B56E1264CCF55C1176EF35A1218DBBAE414F34C2A25FC370DCA2DEBE09428E
+F463DA05E73B21527754E218A136E87B424CCEAB1C844682F98BD3502C5849A9
+975BBB8B17A0F6AFCECE5111D0421AFF0CC1A49060C750EB85EE002B9923122C
+5EB34E1667EED4F0118654D6B862BE72443B101E3180E258AF91A36079D3D487
+3C2E0ECC9920C362726F1C3F14F089996343C9A468B342AACAC9C5EBD6844D79
+3244EBA12D875C3C6A9F16336846B6202F085F1498571DA1036E48438594D7E0
+A0DA897F3B8D70DBE6CDAD5A6B868B6D7636F33F12AF8ECC4900EEFEC3C1FE37
+C996AEB0D84C51CAFCA958886F655E00A044B293F353DC047AD990948B6566BD
+816C96D7A32A32FC74A5D3A974619D915767156CE47E131DDF3FD7FF381116BA
+7BA687CB6C6C6A8AF87B23E31B370D0489D35D5892F2C4056FC76C6DD180AC02
+DF0E8594C3B59635471C4091D1F4DC3840AF109DBBDC36989E6591B8609D360B
+A6F7539C29AC18F30F230BE641B8B20831055110F26089ABC8DCB31DA422CCCC
+AACA546F7A773DD84871A1449A6438CC0F8950392B6CDD670646AF98EDCBD4DD
+8EDD1FB774065867216C799278FAFD087C252C63B67B67FC6C125FF29E35DBFD
+D98F9B2B8CD08CA438B25D749597B03B2216495A4B0327E82AA82FD3F20F627D
+18D0D2825C3A90C7627406056F72CC5043D2CA1282033BE5CF9A06EBE4342ED0
+12AA2552E8A840615E6397248290889E72AEA808B1C43A95F34E6DC4CD5D1AAA
+0F5A6CB44E16E867EEE322D136E4CEA815DE1DE0EF941B68FEEF90AF22DE3735
+806DD6BB0FB53F3775ABC7804E1917E3955DD5FA9F06418CE20BF92052E90401
+A2838B3BF466567A0850F0EDABAD1D3FAF5A4246D96A4CED417557B5D5B9D4B1
+90B142E6A4A5C17DE682375552DF582A196F2D4CEB2E87F5B120B6CD59306A67
+A3ED9963497A54E75CD1EF99FD683FCBE877DC489C7B8EC7D168DE68CA7238B9
+0ACF5BEBEA174928C21E858A01A20D3F4C1A6FD80CCAE903A8D67D794F19A95D
+4E453A3517F5FAC57B5C3D30E5A92B0048FB63B8F06C42DF6FB3E5689A6108F1
+4DAA1C4705002356F6F397673CFE91B986B5E096488C33D76917DE24BB2B6CCD
+8B5B354679ADC57082F4F4E6D8644582AA7FF92BFF9EAD1B3184E516A57A8D97
+69BCF4B5CCBDFD58367CE0A16B89F04A2D6A4CBFBB247A3D2834CE99A059EE25
+B06B2A4C0FCCAFE83B3069C68BA2C21E266A6B4200179AEF4E27B59705317896
+A852B21FF1741D221F883643CA787E8F5D6BCF6715C44692D8C9FB7A067FE210
+03983E6DCC65699C630577E9C404C03EFBBEB52F816EFDBA9C5AA0BEAB085F87
+C606B12393688EDB31E1B435123ACBFB8F2634337FA7ACF64A49CE703F22A94E
+9BB8E88C0D5FB2732D240E3BCEFD336D771A070F28D1D1AAC2F2BCE1CD4A4ACA
+524F2244EB57A5F20376BAEC0746F67FCCDBF89CC0BBA519170FB723E01E1301
+938E8D62919338DAAFBC076DAEADF678655C19EC360B9D524F379CA46DFA85ED
+B67B9022F6435DE49C170DFF5F4749D5FF094DCE448988974BD806BF2865C584
+37562914CE756612CEC875112938A7D3D9B2E33F55408E1F876D0A905F8F5047
+2A48717332DA1A3E8FD05000A99DCC5CADFE99AE2B70C73E234D4C2D1FFD2C83
+14B651EB7841C533D0560C9CDE59B1B73C7B2090C78A146AE9F295D99092EFD6
+1AA48E03999200C8ABD5AD11C138841BAD1FF402A40C9202997763F2C2F48755
+3330B9F57B7B24D2F5F99D5DAF8EC5BA117A171FF6B65DFD0940223A445E1672
+4FB93C41755540510093ECCCF2F68AFA968AB1FE402A23D7924746B91A51EFA6
+5D1ADFD60294D18C44C6206687B4CF943A901AB672D4DF36129F45A835F77ED1
+89DF101B43AE9A4052B1A382AA2ED642EE970C951BAD99A1FF7C362C90C2A036
+6704E1C2CF66BE84A8C02C0D36234791BA86F0A3D9AFE1CFB91843F328064872
+FFA4A3F64F308DBFB3FCAB071DBCC14A502932E0AD74FB49AB281E76EC31943E
+136AAB1E448779128D1557552FFEA55F8861A08417F54FE9D31F1689F36717AA
+0C2F85E3C83208EB97AE36FCC7A1C410082503AA5A7BE2F08AF097FFB6D2719F
+7A76A1A3E285BF93051B61DBCF2CD97CEAA92B1A3CB7D72E188BDC941B70FE2C
+65930064D8AEDD0CCC5E4E31FD315FA30A74D37987C46A2DEB505DA944FDB787
+155CFFFC79072DE97025FB3D84CF119540BACBCC524EF5A76D10A486891FD706
+0811F958CFEF6ED115F4078728B5B7A82DE8470359CA54AFBEA7184296A3D404
+599DEE21137143417A5E1520C8B4D28471C2E4CF1EF65FAFD5C6604A15CF06B5
+8D98E202A15236266DA7328B36568FC543A63C91B8086FB4A97678C7C9C01065
+E72ABD3C070922A513DD747E5AB7C6A1673F06F2127178C02CEEA63B6C3D857C
+115A8FF2889805EA3B58A38A3AC244351D3C8DA537E22E1F5E0C58F1379ECFCA
+018F98039F6A605FC773F76A39F81C67B04216779AB10242DFAF46CD142919AA
+2C9B3A7ED6EEF43C84EF746EF8C32910141E4D58A1CA8006F74B32780CD7628A
+0CA2B9291AD7CCE4D303608E1651FC64CE6AB01A9ADAD2FBC5BF93111C562C34
+EEAC0F4823C6FC797051C107820D68991A20A63938141910ED5F81783BA89DDC
+32A8DCCAB0E71274CB55560646DA70760982F95A8C0F81373C9FBDB9DD706443
+C9EE9807D25468144A34397428335B87749AD90456B3EE41D20C144FD6A49D62
+B4AADDCCBE97AA37841A08F473C3A580C6E2C40D6286CCA150F1111715838232
+B18FC448B3292745E04D8E4CCF61C0A1C159B411D5EAE1E11A7E40D88C6BC59D
+1CB9940BCE6EEBE1734B388937B79E4CE4BCD72008A3D58BF0BB85CF389911A0
+4BE0F5454890DE365E4CF7F30668A85C9C011A2AD3F226FA5596FBC8E53D53BF
+E3FD3EA6D015A02A2DEFC39F447EF96CED22111E41F1FF1721DFBEB260311A49
+8B57702C019A934040DDA18795B8D7278E3BFC4F2604427FA9BB07CB4DE1A936
+F6B76F534194322188F9BBFC753A9407A0E69C538CCB0242EE9C0F2218190336
+74B0F5F732788A329831137BF1D17AA17184CE13798282A164412379BC2C8620
+0F7B0778820E7D7A1165B1227622DB8076E0BBCBB1054B4B4B60D12583CD3B8F
+6679A2FFBB27CB8B1F99DC3B826793BD4CBBE94B4758F2A552D45C433A73D527
+07240658D6894B23BA2EF3E5708BB96F0C3BDE4A5C298BA95AC966F9488EAC9C
+8ADBA640E12564AB63E4B6E90824ED09A9D69BA59ADCA27EAA91840F889C132A
+6F4622009D23E26D98BC78A0FE5FCA3C0B7A267539D7C31737F38F45788F2D1E
+CAEA2EF669D67B893CBB0815BB1745633A4315EB63C29138C35A550DCA9D0F39
+69FFA5213D142EC8FDCCACDC763576365E35A8D6671CA14C2AEE285A0CC28503
+9906EB7CACBCD9C87441E67C1155AC2983CFD0ACD6288A8070630764B582A3C0
+65CE71C64AF870FD747B2D36F788ADA3F5945C3A6634DF68E98A4E91D618E4F6
+51B606CA27B4EF41F0548004A28378942AF2C85C056A074EE898461D7C1BA25E
+61BFCDF07F855677AB18BDEC3DDD640AB36601B1CC1CE3865CEBC628F1006F5A
+273EE466C55A927139CDB1FEDDEC38FB2EF40E64ABD8814869CAB7A86347106A
+03DE5F36AAC6207880070FF744F351EB9E659225B5FFB86B0DD7A04A90344893
+A24134EBC6F5ADED720E79BD1C41D1FCBB6A52E6FDC4E545BCD86D71978CC4BE
+9EFF04D42BF982BF16FC59308397EAED3466FA72254E0111DDD55BEC0113B3D4
+89B420D7F87BB7536F092D5C2C135DF8DB10EFC530454C72FF9670270412861F
+A3C3434138AF3BEB288995AEC42CCD66CE06EEAF8EAD7F94FB576C0137ED65C4
+51706A3A7928334C51DE231B1C40BAB272789B9610D55C9F87F83FD7742DF466
+2B9652930DB3A3023F350D7F7B31D2BFAA65A460312BA49BEC9A6498A8271FB0
+9B1816035F52C165A4912048D9A769FD688F2F2474A868AA5A9A0276781D2A68
+E8C01B817C4A757DB8A1663346925FE4C252C1C575433703F3587B3BF0DF7831
+71902E20C5B0A55953A90892ABAF94ACBC5F2A48A379E5A1FCF857B6A022FDA0
+F516DEBE44FD01C0D05CE183599FA0F75AB33E6261C831CCE5E1AB9BC9321AA0
+0395177DE46D43C88BE13D17A7450460C00C38C8ED2D22B0B97D9D57423F05C6
+2DFD0061D32FB56AF78C6A4BE7050CAD14088FBA6919245D9E5EC71866CCD1E6
+A82FB0DE920675D5E9DEE99A1D6DDBD3666158843A812497B8BF1EBC2619EF93
+CF473622F5CE5913650A84D973B2457CB847AD025C93D7E039A84294B187687B
+60BAE87882FC322CDB906C4339D227282F1C905C4498573FFBC2461391248E84
+74CB03ACD816A3B764022D468FD431020C759BBFD7D5C60812AE9ADF55028CC0
+4E10E666BE86BF1A32178BB59AF00860D6CF348E4CA889FB80DA4607E94A8FCE
+01564D2B81D2B8BB52F61C0D8D5D5DBC9D0F868BA086303D935FE577285FC99D
+735CB7102F19D4C26C51B78F64FA6547FB32000E94BAB132CF7B31AE53687777
+4A119F245546AB0D7362CB2D8C86F9C839F41620054C528F50C59A5471362F2B
+980254F5A658C6C52E6C67FF1AF9B68906B1BCA94EE3BBF7654D2BD55EC35C77
+7ED3181F2B8DF703C96FFC2A70F247797FB068B1FB288F7E38A3BAD87A6564FE
+030B35CB8462CC0FC60A985AC6C1AFEAEF69432D095D84B9C159EDF7656B0D3F
+324D26F8F7C8FA940491F6954AA08272667E1D4C76AF0CEA8A2D3700D9D410AA
+23DBE80C28C70CAF717711326D4A48026C9AC633652D46C8122264BFBA687EED
+DE78F2EF89B422A3608B37521A38BF0D86629D41A81D809737F5B19FE286778C
+5A70B1C514B9C133AFA29CE05069139531293D907500685953B99935801CED58
+256831BA882AA504B75212C39651C754505FFEBC77ED8EA44ED69E53A5780F69
+5D78ECDD51D1BDE10BE92C5AC71C26A7F9E229FF085747BE6F8CFDC01EF19C34
+C9A62400CDB33ED5910063DE7DB4B0D54004330E45E9073A849621D3B18926B7
+65ABECEFEA52D0521C93BB241BA05AC382A3D808E915F2E5692A5CB586870F80
+B4557E8999F4DDAB6391DE444A3900ED2FD6BD79C1098D18E92B9127D3FCC151
+B5A495C75F4642B398AF72BDC301C92DE9C37648E22611E0C925439972FC15D6
+53D1CDC85B5E11554C9BF6B3D27CBD0B5EC879DCEE139D653820FB3EEA9924BA
+F374901A674109F2C5BD72C455D319DC680C73CDB6EF16E94085601928B6F49D
+C672A4E4624A4D3FB6B2F455C8E447105814BE2192042FE9B5EEAD97DED3F07A
+C6719D4091CCF97A1A993DB2A0AC22ABBECFE0A64FD2BC3DE2B5BD7906151FDD
+80E5C3C395C5045BB512FBB52EAA078DC8AAB00146F354842DD683A8FF9A35D3
+1E2E72550437D148FD59112C745899CD50B3DC6242A14A6C1C8E3351E2295C76
+D96D8F2E5C462A7576458B92719B600176F6FE265DECB8290EDB796676C46379
+4EA255C276B79372687122FD6D1A8D3C60F6206B150194FF2B4050D144AA623E
+FFEE2F2FA2FF4E53DB895EA012B0B6BB4DC2503A1FDBDD000B738D51D5BC1570
+3C2449C1B255C58FC735E4C6B0EA56507C3D9D1D05AFFEEAF8452588A6D94940
+852F7FB1FE76799ED8F084A584B19EE9EA640618072A88219EEA9AD612D6ACE7
+1CBDCC5E0B7A3D1C5123B3C5901FAEAEC9C5C2929669DC72AFBAC995C6025123
+EE23725599ECDB4C12EFDEF26C2DB83D16142BD63BEF07B1982C1C5EC043DA8C
+74B2FA707715A70ABD45850788F44F5A0B6DC969A0D07A7FF269ECA9B38847B3
+E1F18664F23760354CDEC3425763EF83FBB0DC26C70F54BB1B9A6A263E0B5F84
+C5465DDBE925840CB7A69D87A34BFD6A5C4873B69577F9E6D1D3F235BB342AAB
+871148DCF372B6F54C473AEF479FC2523BBC18F92476E4152B991FC334A070CD
+FFDBFA9D5376793A39F04F59F2EE1F1D1446A2461824B1BF6FC2AFEC2CF288DC
+6AE80017DC23AAD401E1BAC23A2EACE5CFDC7551A0B9BD4F1525595A9F1D43F5
+D145F21DD11837F736F922149F2B691DC246559D68E3D25B336AA22C54ABD094
+4614F09159D55F62F4E9C0EED57D08A3D8E0CCAD9014E57EE9B6F05587D1FB4A
+D471C20C0639FE2A3714ACE621570D6F55C1C4F5B87ED53A7E140044C94140E3
+EFCE91B76AE254320A2C7C5A57844FEF91874293F8CBAF415AB9A497DBFAB9CC
+70A96ECC69330944AB83341C0C4FFB9519FF242DB3C432F10D7428535F2535F6
+BED328DAC7F5786F9DC9A69BA94170E7BC3C5470F4FD84AA5C899CD3F27D5268
+8FB7F55A0B173D31CD8B4932F491A8F5BF9313AE6CBB9297096F95A8C192D032
+2868749A1446B6D3504CFB2CFA8F3982D224FC3A1CC72F7CD6095225394F9EC7
+1BDE7395AA3EA165554E2D9A9EB154324BE2B44FCB1066204A880BCFA013873D
+710D50BA7E5BBCEFEBBD9C4AB9151157D516773B9DBCDFF2BCFCB6F935AE6AFA
+408BA0A0B2F3C72848EDE305897F17E66A2F4ACCD315F025C528CABBA2E5133B
+F2B47E4F7CB36F88850870653C990E713D15AF4F2E2E4F1FB69048B59AE42666
+15E2504919BE3361A6C269B650E590A1CE0AFA3ABDDA327CBA0BC6E4427A03B5
+E7F12BF5834901D27503A1456F7C8B4846AC64C88A1A96B6E8F48956BCAB8A20
+E54B993C37979BABF3A7280A3B5AEBCCA1B9F2729C761AF980FF8B8E93EAEC36
+4BD72078978AE92CA1E4D8F0C7E9BB3E3970F57CE2B183154AD1328126ECB4B4
+6AABC224C262E715398CF620966AE7552157BA45F8A2CD8DDF03D3B3FF570A6F
+D4F6211193B90584A6EF2FB91DD36B06CFCBB8DF6A15526A602FDF41AD309028
+80029853B41389D75ADD2FF097FB23F791E4A367BA36D654CC7F7235591047F0
+BC21CA87ACDBC527D21E838AA9C181C950D8F68BBF5B623A0BAB534961063035
+F5AEB9BC66869E509DA397B0BBA3028FE00A482B27E28DA67DD2ED3D0B0D335B
+09EC93197747801BD1108F3AE6D072A4DDE335E2EECBC5933B416E5321AA9474
+AA4FF6DAA4780F7E9D5AA3D1E36CA849D43622388E6E4DEC8F30B86C7BCA5C80
+4863F7A5D80715A6419B05696F0FD1108A055322662C0AA17047BFF56975DB3A
+9123829FB9C2FD67652ABD194353E4D14CC162EE0E1BDD30CE256CC98594BC04
+306AC21241F257FFCACB1E083906C7D4A1625B08490E41CB4875FE5F34479A29
+BCBAE064BCB040F7F20C71826010B48B835B5932A7ECCFDB24B55DA70A7F187C
+1FFF5AE3B6132774DB4A8C6D9FA2652B0726058AE948527983363EA4B35BCC73
+78A6939B545B9735C45DF3A2D83A22B2B73B98BBE3C53427B3BF31535E84A030
+AC07863AB9FC2C7A0A0D8592B10722B1E502DCD871D1594AC915B467CF29845A
+B1EF90192C26B45430A5D9EDCD6DD56B126D9681D0E7AA80910FF488EA913BE4
+C56BC96493A1DC99D4D5FE1A778E4AEC92084D86E66115E79641C0DC0CECE7AE
+1F61986D023707D278A56826BD239C2D979641093061924E5F497EBBFDB5030F
+E761647EE54D2E6F1D957ADA95768DC6CED261463C5DC70E3AE5409F40F78631
+726C4CA3904326540267BD6A5C42AC4C11EC3645575ECD268E5175DD39280DAE
+07934323AA59FCDDA972483058C02E0DF4FB9C2B350F46508509C85E526986AE
+25D55DFDE93B82CF339448A1F401E5D2ABF1B885ABBE60919768A04B08B6AC44
+BA4996EE522F46624D64CB841202EA8ECB28EC67C30AB3A17C4030F6354029A4
+18BE03EDFF98060157595E80C0CAC7CCB8EC0B855482E75C143480163422D6F9
+CC07B0027AFCB63D7CF3620C45F1C0DBA4F11C10B8B26CC11A073F25F04687DE
+530DFC331F382B82F304B66D8B2113BDA4B13EB3803C31C22A3E543774878B86
+A8C5F0637B6089EADD4289B0D21D6304618077F611AF6A86C201E057D894F9BC
+9D0EDDADD4918860A27EE0B04DBFA1B72E24266523B1B1C49AD080B9110D9CEB
+4F14D22B3D3DD242311AF31CD9437A6F9A043ECD01E142047DA53FC0E158CA12
+635F9A070951A493A97C09F76A19FD0786F96DC337F8959692E85CE76B3CB770
+0CAC9BEFD6BC926C68F4DC15189B9CE051C3F8357B84FF3B07FA0724ACC4C1AA
+22C0742A6F8BBCF82FB80B46A07A99AB49DEC8F9E479F8EFA6B5B8C394F31D7F
+8E006D7ABCF19C55C87BE51955F153F546AAA4D5CAB5A4B42DC949109E1E96ED
+1301F3B9C7082AECD5600637BD6AB4E1198FD6AD046A81EEF69F0499122E4A6A
+E29D6D21A00F28EB7CBED9BDD6CE0B44841C584453F075906F6448F0DF33E823
+BCE9083244F9B976426B19B8704100C57F3225DFE6B77FB3D3C1A37203BBD133
+6D6F7AAF91631F7B8D8C4FBFD9F782795C43C7D597CD685A9C7AB8CE15ED7EEE
+0CC781CEBC6821CE77723626C01BD2FE7F20EC2E2DBEC39840958A6BD81F3062
+ABD6CEA0B06573C53518CF8DA4A8584A4C859D5DCB125EF0C857ACA8122B161D
+4C6DDC75A165D7F054E81485F5E553BE89BC71629AC5B9B1A2FC4C186C8923B1
+06B3E2B8B8DCBFE8B01C6B3DBE65E18A2A4F08B1FF026BB0586CF52FCC92D12D
+E5D774C47010A0F8CA1441632E208D4A35626AE3998F5860F9F156188CBA5ABA
+185B304B92A4E928F46A3C223761E7B07472A81B109D45BEA455585DBB6CDBA7
+45555C64CCE37AE67050565257FA7A8CB76810527DE716E51EA27516E0B830C0
+0F805087571E9DE99843BD3148075B0981670A73D8106975112B0BCBF16D373E
+ECBE070B02A75A82E9C72207F8F5E5C6A28F991155CD9CF416060DD69037C058
+99B7F726D98CE5EF6318D1C0DE1A11137AE9E759A8E69E6985D80FA2E206EDF2
+1F8F672973B4CCEFD8E5D5D8F90F3ACA0C060249EE29BD9EF70D782288701C8C
+DB6103EF9411E833F7D611D65C117FA917AACF868B59D6F8F4044CB47DCE5600
+577BFC3666990D6BAB69AD396741BC3940CE5904878DA0576B5D00F49E073A27
+116282DA22ED68B68F0EE1DD191580343E80C8BC9164CB93BFFF5CF68D68795C
+7B749BA99B1307A98CE9FA04A2DD79AF77FA462A48B11E378686D224AE3DF9CD
+9BE318189BC40E6662D8DAB96CF9150EB79AB8AB47653D144098940CDCBEE199
+F44B6601D1D44E28A8BCDBE5D37205C7F1BE94CE5B9D6C2C906DEE7160C2EC5D
+7B054927F866C5F58B51EF47C30A61780784749040992B9C07F9C5AEEF01CA78
+4B4A407CAA0515E19943253634528EE2AA667DEF12584356F6E73F8B460CB5A8
+9DFED0CCE28F9BECC06E686F9870CAE65E4D0E4360955C8C1C3C8DD110C19100
+03623D1E5DD94D6DAE38065EB60A389C895D44030CAF5E4508BF773C2AF5C42C
+99C1A65B934D47414C7AD24592A3F3282273E4291DDD294AE56390F2BEC3C988
+3923C885CC19CC21B223AD8C791BFC24123431CC55745A430484FD1857F2D168
+AE2EF781F5D51E0154D75F772EAE16A82728A0E5AB3370C1F7A1377D6B589DD7
+6FF474A7534F13A8F318E231AD96EF4B013EE9F8BF918529C6107C00C4C93F76
+4A20E14B8F5F98E7495B3F82F0EA81F9A6A98C42C59781DD723F67A2985D69D6
+FA48A037CCAAB69871F2D94ED432F5107AAC6C1B8B166A49709DA33DBD6C7FC1
+3A8FF9ADDE3D78DE821D8A365FF21E41E0DB6D3325FDF6B0F233FE3C85C5C1C5
+BBE31D82D25BBBB67821D91C96D27E882E155168E96473888E6325FD08DA7ABF
+598EDD4FE7946BAAAE3CECD6918BE7A3A0E95C386FF23157983DD43696ADF86E
+EE3343C6E072202C3BE7A3241EAA9A0201C0D77BCA7ED67B45EF211C5DBFD2BA
+B8FC5B6FB644EC14F5793452653567BF7962A2A0721859F900FF5F9F0DC5B536
+B46831EC3248351BDB1BE95ABB4EE81D043F526D0049B34F8082DD9282BBCE48
+C8C14ECD3BE76E349B03D3DFAF69BB7879364F70DEBF12743EB288A6292ED6DB
+6D4BC0EF1FBC1B50E2B52CD9E07854A24D2754A874778C7A11B0CE78093BACBA
+4C6C21791AB0A382EA1AB67BEEE106DCC20283F0BDDD41696A95BA4EC8673E11
+A5185E6CE5A835ADE12670843E84997E221DA068C39E92C6EDA94E61C628C3BB
+756C9414A8696A26E936F9188FE2933F553B34BF3A1B09149F5A95E098ADD0A3
+B07647F8A0FC823396B154BC6549E556CABE066473330CFEFC43BE8E49E3475C
+02057BBAA0242B50E893AE60758388B582B2D0C8FD6C53070BB2696C89558E84
+32F6714D1DA18FA3CA1C4A42EB700AAC8AB323FEBEAFD665C482C6184CAE41D1
+F3CB44C6EFEFF9C08D03E02F613CAA010F15013658D54A5AD1FAE38436CAB8C6
+9A8A89F623CC32FC5B1ED0063B799CDFEE800900AF811659B801F475720E5BAF
+7765CBD9D01C3E0F68A0F284D040880766387E33C04900CF3234C07A74626711
+B2CAEF2FC45ABFFB48DB50707E17BA6C5E59ECDD29449425DC3346838881112D
+D98222FCC1D496DB9134A7ED417ADDDD37246F4F77EEC31606D607E530CF7B68
+33EEFBF1D79FC2B2D9BFA68F63BA4B5C4DD0A15C331640E1089E152F0D8AEE93
+EB5749C63A73F1B769BB97DBCD845E72DF344A67E5016961C19CA8CA2D2EFEBA
+64D378AFF733E63A905C378A388268C334DEE0CD1FF1C5FC988767823D72A638
+EEECC1D80EB4CF98B5EFF1F9B8C9B1F5FB7C041B917E5D14613D30C5D3C8F977
+77A054D1189155C971A52A732BACC619C4ED8F809D0DCCA9F88D9D8CFD8AAB68
+873C048A8A1F74D277D89C8DCBDCA612D629A84F46708562DF466020B2D08A2E
+BC5CD40794494044E26772DC0064B15D466B06293F1D0AE912A8D7D739A2D056
+33BAEFF230D3FD3845E3D6367DEBB4D7A4703B9CCCCDD614EC06FD074EA26482
+373BE5F02B20F808008CBC9A4AF25DE8CB575BF41116FB56EC8737EF01E6A2CE
+3460CAA839B0B320FEB376FCB05E405EA515D2C1B06B9B8E92EC0098236ADB80
+D72F46E07253DD815883F1A388B1FC93D093FF35E11521D0516EEE938502E674
+E61FE4F1AE96A93DCCC92C783AF1B892F192CB6023741B7720B423E140D64B2A
+530E216B09E471D28ED8F05654FE25ADCC91330FC65FB4A2CDC27274A39CFD8B
+EA6805CCC2AB80AB675993746E6DAA53867E4B49F05857DAE1459351966EEEC3
+6355D1D88F922E4010BD68B066BFF52BA0AA6E874293E89D6D9FBEF8CCE9511C
+41CB6240B94808B57FB23D18BC4134F437388C63C9C2CA7A19C8350370055754
+61A425338FCA3FD56D494B1DD45CBA962B785880A4BF5068F897876580D3D36F
+3E8245FF26AF0035A450897D8EB81B4221CEBA71386C18250F6DACA17CA30FAD
+866E44EE35388563FEDB8468CA23432FAA814482C4433953D0FEBC68B4542B72
+5491E3DFF4265D186564B121F6FDB22F188ECA9AE2A983AF06FCF09E37690BCD
+141AC1833E163E2976427475C9CF7764D744091B1DA98061CD7F3D063B37F529
+94229523567249AFF0E38845D124744E5E2FC78FC52F40E1487D6583A1705342
+4194FF41058C603CCF02A285D73319830E716521C6CAB196D3FB13DDA1EACD7F
+F21BA226C5C1F715D571119A6FBB5E62517DB673
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+TeXDict begin 40258431 52099146 1000 600 600 (texdraw.dvi)
+@start /Fa 197[21 58[{}1 74.7198 /CMMI9 rf /Fb 145[60
+110[{}1 119.552 /CMSY10 rf /Fc 255[52{}1 58.1154 /CMSY7
+rf /Fd 255[45{}1 41.511 /CMSY5 rf /Fe 212[43 43[{}1 41.511
+/CMR5 rf /Ff 135[65 2[68 48 48 50 1[68 61 68 102 34 2[34
+68 61 1[56 68 55 1[60 12[85 68 92 1[84 26[61 61 61 61
+61 2[34 33[68 12[{}28 109.091 /CMBX12 rf /Fg 141[38 2[46
+8[28 42 2[42 98[{}5 90.9091 /CMTI10 rf /Fh 140[31 4[41
+29[42 80[{}3 58.1154 /CMMI7 rf /Fi 175[88 80[{}1 83.022
+/CMEX10 rf /Fj 134[48 48 66 48 51 35 36 36 1[51 45 51
+76 25 2[25 51 45 28 40 51 40 1[45 13[51 67 1[62 2[83
+57 6[62 17[45 45 45 45 2[30 25 44[{}33 90.9091 /CMSL10
+rf /Fk 130[39 1[39 39 39 39 39 39 39 39 39 39 1[39 39
+39 39 39 39 39 39 39 39 39 39 39 39 39 39 4[39 8[39 2[39
+29[39 39 39 1[39 46[{}34 74.7198 /CMTT9 rf /Fl 145[39
+39 7[39 3[39 97[{}4 74.7198 /CMSLTT10 rf /Fm 133[34 41
+41 55 41 43 30 30 30 1[43 38 43 64 21 41 23 21 43 38
+23 34 43 34 43 38 8[58 3[55 43 2[52 1[58 1[48 5[50 52
+2[54 58 7[38 38 38 38 38 38 38 38 38 38 1[21 1[21 31[43
+12[{}48 74.7198 /CMR9 rf /Fn 204[33 33 33 33 48[{}4 58.1154
+/CMR7 rf /Fo 134[48 48 48 48 48 48 48 48 1[48 48 48 48
+48 2[48 48 48 48 48 48 48 1[48 45[48 48 48 48 2[48 45[{}26
+90.9091 /CMSLTT10 rf /Fp 133[42 1[52 9[55 7[45 42 2[39
+19[73 2[77 2[76 13[25 24[57 6[47 52 2[55 9[51 12[{}15
+90.9091 /CMMI10 rf /Fq 197[33 58[{}1 119.552 /CMMI12
+rf /Fr 135[85 117 1[90 63 64 66 1[90 81 90 134 45 2[45
+90 81 49 74 90 72 90 78 8[122 2[124 112 90 2[110 2[153
+97 2[60 3[106 124 117 115 122 11[81 81 81 81 81 49[{}38
+143.462 /CMBX12 rf /Fs 130[48 48 48 48 48 48 48 48 48
+48 48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 1[48 48 48 48 48 2[48 48 48 1[48 48 48 1[48 48
+48 48 48 48 1[48 48 1[48 1[48 48 48 48 2[48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 1[48 48 48
+48 48 1[48 48 48 35[{}78 90.9091 /CMTT10 rf /Ft 149[25
+92[91 11[25 71{}4 90.9091 /CMSY10 rf /Fu 133[60 71 71
+97 71 75 52 53 55 1[75 67 75 112 37 71 1[37 75 67 41
+61 75 60 75 65 8[102 139 102 103 94 75 100 1[92 101 105
+128 81 105 1[50 105 106 85 88 103 97 96 102 7[67 67 67
+67 67 67 67 67 67 67 1[37 1[37 31[75 12[{}59 119.552
+/CMBX12 rf /Fv 131[91 45 40 48 48 66 48 51 35 36 36 48
+51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 3[25
+45 25 56 68 68 93 68 68 66 51 67 1[62 71 68 83 57 71
+1[33 68 71 59 62 69 66 64 68 3[71 1[25 25 45 45 45 45
+45 45 45 45 45 45 45 25 30 25 71 1[35 35 25 71 3[45 19[76
+51 51 53 11[{}82 90.9091 /CMR10 rf /Fw 136[140 4[79 13[108
+2[94 8[146 3[135 14[127 69[{}7 172.154 /CMBX12 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+/setpagedevice where
+{ pop << /PageSize [612 792] >> setpagedevice }
+{ /letter where { pop letter } if }
+ifelse
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 150 1318 a Fw(T)253 1357 y(E)355
+1318 y(Xdra)-5 b(w)p 150 1423 3600 34 v 2521 1519 a Fv(P)m(ostScript)31
+b(Dra)m(wings)g(from)f(T)3632 1539 y(E)3682 1519 y(X)3309
+1627 y(Edition)h(2.3)3333 1735 y(April)f(2019)150 5091
+y Fu(P)l(eter)46 b(Kabal)p 150 5141 3600 17 v eop end
+%%Page: 2 2
+TeXDict begin 2 1 bop 150 4015 a Fv(This)24 b(man)m(ual)h(\(edition)g
+(2.3\))h(do)s(cumen)m(ts)f(T)1676 4034 y(E)1726 4015
+y(Xdra)m(w,)h(a)f(system)f(for)h(pro)s(ducing)e(P)m(ostScript)i(dra)m
+(wings)150 4124 y(from)30 b(T)416 4144 y(E)466 4124 y(X.)150
+4259 y(Cop)m(yrigh)m(t)602 4256 y(c)577 4259 y Ft(\015)g
+Fv(1993{2019)35 b(P)m(eter)c(Kabal)150 4393 y(This)45
+b(w)m(ork)g(is)h(licensed)g(under)e(the)h(Creativ)m(e)i(Commons)e(A)m
+(ttribution)h(\(CC-BY\))h(License,)j(an)m(y)150 4503
+y(v)m(ersion.)40 b(T)-8 b(o)29 b(view)g(the)f(licenses,)i(visit)f
+Fs(creativecommons.org/lic)o(ense)o(s/b)o(y)22 b Fv(or)29
+b(send)e(a)i(letter)g(to)150 4612 y(Creativ)m(e)j(Commons,)e(PO)g(Bo)m
+(x)h(1866,)i(Moun)m(tain)e(View,)g(CA)f(94042,)j(USA.)150
+4747 y(P)m(eter)e(Kabal)150 4857 y(Departmen)m(t)h(of)e(Electrical)j(&)
+d(Computer)f(Engineering)150 4966 y(McGill)j(Univ)m(ersit)m(y)150
+5210 y Fs(peter)d(dot)g(kabal)g(at)h(mcgill)f(dot)g(ca)150
+5320 y(http://www-mmsp.ece.mcgi)o(ll.c)o(a/MM)o(SP/)o(Docu)o(ment)o
+(s/S)o(oftw)o(are/)p eop end
+%%Page: -1 3
+TeXDict begin -1 2 bop 3725 -116 a Fv(i)150 299 y Fr(T)-13
+b(able)53 b(of)h(Con)l(ten)l(ts)150 649 y Fu(1)135 b(In)l(tro)t
+(duction)31 b Fq(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
+f(:)h(:)f(:)h(:)f(:)g(:)44 b Fu(1)275 786 y Fv(1.1)92
+b(Distribution)30 b(information)16 b Fp(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30
+b Fv(1)150 1037 y Fu(2)135 b(Using)45 b(the)h(T)1038
+1064 y(E)1108 1037 y(Xdra)l(w)f(Commands)28 b Fq(:)19
+b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)40
+b Fu(2)275 1174 y Fv(2.1)92 b(Accessing)31 b(T)945 1194
+y(E)995 1174 y(Xdra)m(w)15 b Fp(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29
+b Fv(2)275 1284 y(2.2)92 b(Command)29 b(syn)m(tax)13
+b Fp(:)j(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)27
+b Fv(4)275 1393 y(2.3)92 b(T)533 1413 y(E)583 1393 y(Xdra)m(w)30
+b(co)s(ordinates)20 b Fp(:)c(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)34
+b Fv(4)275 1503 y(2.4)92 b(Co)s(ordinate)30 b(sp)s(eci\014cation)25
+b Fp(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)38 b Fv(5)275 1612 y(2.5)92 b(Line)30
+b(v)m(ectors)21 b Fp(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)35 b Fv(5)275 1722 y(2.6)92 b(T)533 1741
+y(E)583 1722 y(X)30 b(text)22 b Fp(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)36 b Fv(8)275
+1831 y(2.7)92 b(Circles,)31 b(ellipses)g(and)e(arcs)18
+b Fp(:)f(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)31 b Fv(10)275 1941 y(2.8)92 b(Bezier)31
+b(curv)m(es)17 b Fp(:)f(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)30 b Fv(11)275 2051 y(2.9)92 b(Fill)31 b(commands)c
+Fp(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41
+b Fv(12)150 2301 y Fu(3)135 b(Dra)l(wing)46 b(Segmen)l(ts)g(and)e
+(Scaling)10 b Fq(:)21 b(:)e(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)j Fu(14)275 2438 y Fv(3.1)92 b(Dra)m(wing)31
+b(segmen)m(ts)20 b Fp(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)33
+b Fv(14)275 2548 y(3.2)92 b(Dra)m(wing)31 b(paths)9 b
+Fp(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)22
+b Fv(14)275 2658 y(3.3)92 b(Sa)m(ving)31 b(p)s(ositions)18
+b Fp(:)d(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)31
+b Fv(15)275 2767 y(3.4)92 b(Scaling)31 b(co)s(ordinates)18
+b Fp(:)e(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)31 b Fv(16)275
+2877 y(3.5)92 b(Dra)m(wing)31 b(size)c Fp(:)15 b(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)39 b Fv(17)275 2986 y(3.6)92
+b(Initial)31 b(curren)m(t)f(p)s(osition)10 b Fp(:)16
+b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)23 b Fv(17)150 3237 y Fu(4)135 b(Using)45
+b(T)804 3264 y(E)875 3237 y(Xdra)l(w)g(with)g(LaT)1834
+3264 y(E)1905 3237 y(X)12 b Fq(:)19 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)25 b Fu(18)275
+3374 y Fv(4.1)92 b(P)m(ostScript)31 b(prin)m(ter)f(driv)m(ers)15
+b Fp(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)28 b Fv(18)150 3625 y Fu(5)135 b(More)45
+b(Details)10 b Fq(:)22 b(:)d(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)h(:)f(:)h(:)j Fu(19)275 3762 y Fv(5.1)92 b(Errors)29
+b(while)h(using)g(T)1288 3781 y(E)1338 3762 y(Xdra)m(w)23
+b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
+f(:)36 b Fv(19)275 3871 y(5.2)92 b(Extending)30 b(T)971
+3891 y(E)1021 3871 y(Xdra)m(w)20 b Fp(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+33 b Fv(19)399 3981 y(5.2.1)93 b(Scaling)21 b Fp(:)16
+b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)34
+b Fv(20)399 4090 y(5.2.2)93 b(Resolution)12 b Fp(:)k(:)g(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)25 b Fv(20)399 4200 y(5.2.3)93
+b(T)-8 b(ext)31 b(placemen)m(t)17 b Fp(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)30
+b Fv(20)399 4310 y(5.2.4)93 b(The)30 b(in)m(termediate)i(P)m(ostScript)
+f(\014le)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)22
+b Fv(21)275 4419 y(5.3)92 b(Ho)m(w)31 b(T)740 4439 y(E)790
+4419 y(Xdra)m(w)f(merges)h(graphics)f(and)g(text)c Fp(:)15
+b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)38 b Fv(21)150 4670 y Fu(App)t(endix)44
+b(A)119 b(P)l(ostScript)46 b(Commands)19 b Fq(:)h(:)f(:)h(:)f(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)32 b Fu(23)150 4948 y(App)t(endix)44
+b(B)125 b(T)1062 4975 y(E)1133 4948 y(Xdra)l(w)45 b(T)-11
+b(o)t(olb)t(o)l(x)22 b Fq(:)d(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)h(:)f(:)35 b Fu(25)275 5085 y Fv(B.1)92
+b(Co)s(ordinate)30 b(parsing)11 b Fp(:)k(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+24 b Fv(25)275 5195 y(B.2)92 b(Real)31 b(arithmetic)22
+b Fp(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)35
+b Fv(25)275 5304 y(B.3)92 b(Arro)m(w)30 b(curv)m(e)25
+b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38
+b Fv(26)p eop end
+%%Page: -2 4
+TeXDict begin -2 3 bop 3699 -116 a Fv(ii)150 83 y Fu(App)t(endix)44
+b(C)124 b(Examples)28 b Fq(:)22 b(:)d(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)41
+b Fu(28)275 220 y Fv(C.1)91 b(Blo)s(c)m(k)32 b(diagram)e(of)h(a)g
+(lattice)h(\014lter)c Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)41 b Fv(28)275 330 y(C.2)91 b(Filter)31 b(resp)s(onse)f(graph)8
+b Fp(:)15 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)21 b Fv(31)275 439 y(C.3)91
+b(Geometric)32 b(construction)27 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39
+b Fv(32)150 690 y Fu(App)t(endix)44 b(D)118 b(Alphab)t(etic)45
+b(listing)i(of)e(commands)33 b Fq(:)20 b(:)46 b Fu(35)150
+968 y(Command)f(Index)31 b Fq(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)43 b Fu(40)150 1246 y(Concept)i(Index)36
+b Fq(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
+f(:)g(:)h(:)49 b Fu(41)p eop end
+%%Page: 1 5
+TeXDict begin 1 4 bop 3705 -116 a Fv(1)150 299 y Fr(1)80
+b(In)l(tro)t(duction)150 533 y Fv(T)201 553 y(E)251 533
+y(X)32 b(is)g(a)g(p)s(o)m(w)m(erful)f(t)m(yp)s(esetting)i(program)e
+(whic)m(h)h(allo)m(ws)h(for)e(complex)h(text)h(la)m(y)m(outs)h(but)d(b)
+m(y)g(itself)150 643 y(lac)m(ks)41 b(a)f(general)h(graphics)f
+(capabilit)m(y)-8 b(.)71 b(Ho)m(w)m(ev)m(er,)45 b(when)38
+b(coupled)i(with)g(an)f(appropriate)h(prin)m(ter)150
+752 y(driv)m(er)33 b(program,)i(external)f(graphics)g(\014les)f(can)h
+(b)s(e)f(inserted)g(in)m(to)h(the)g(prin)m(ted)f(do)s(cumen)m(t.)50
+b(In)33 b(this)150 862 y(mo)s(de,)26 b(T)467 881 y(E)517
+862 y(X)e(is)h(instructed)f(to)h(lea)m(v)m(e)i(space)e(for)f(a)h(dra)m
+(wing.)39 b(The)24 b(dra)m(wing)g(is)h(inserted)f(b)m(y)h(the)f(prin)m
+(ter)150 971 y(driv)m(er)38 b(program.)64 b(The)37 b(T)1089
+991 y(E)1139 971 y(Xdra)m(w)h(macros)h(describ)s(ed)e(here)h(generate)h
+(the)g(external)g(graphics)f(\014le)150 1081 y(from)30
+b(within)h(T)700 1101 y(E)750 1081 y(X)f(and)h(generate)h(the)f
+(instructions)f(to)i(the)f(the)g(prin)m(t)f(driv)m(er)h(program)f(to)i
+(p)s(osition)150 1191 y(the)f(graphics)f(at)h(the)g(appropriate)f(p)s
+(osition)g(on)h(the)f(page.)275 1325 y(T)326 1345 y(E)376
+1325 y(Xdra)m(w)37 b(consists)g(of)h(a)f(set)h(of)g(T)1521
+1345 y(E)1571 1325 y(X)f(macros)h(that)g(create)h(line)e(dra)m(wings)g
+(and)g(other)g(\014gures.)150 1435 y(The)23 b(dra)m(wing)g(primitiv)m
+(es)h(include)f(solid)g(lines,)i(patterned)f(lines,)h(Bezier)g(curv)m
+(es,)g(circles)f(and)f(arro)m(ws.)150 1544 y(Other)28
+b(commands)g(allo)m(w)i(for)e(the)g(\014lling)h(of)g(a)f(region)h(with)
+f(a)h(gra)m(y)g(lev)m(el.)42 b(The)28 b(dra)m(wing)g(commands)150
+1654 y(generate)36 b(P)m(ostScript)f(co)s(de.)52 b(This)34
+b(limits)h(T)1742 1673 y(E)1792 1654 y(Xdra)m(w)f(to)h(systems)f(whic)m
+(h)g(use)g(P)m(ostScript)h(prin)m(ters.)150 1763 y(T)201
+1783 y(E)251 1763 y(Xdra)m(w)42 b(also)h(pro)m(vides)f(commands)g(to)h
+(p)s(osition)f(T)2115 1783 y(E)2165 1763 y(X)g(text,)k(including)c
+(mathematics,)47 b(on)42 b(the)150 1873 y(dra)m(wing.)e(The)28
+b(\014nal)f(dra)m(wing,)i(with)f(text)h(and)f(graphics,)h(can)f(b)s(e)g
+(p)s(ositioned)g(on)g(the)g(page)h(lik)m(e)h(an)m(y)150
+1983 y(other)h(T)439 2002 y(E)489 1983 y(X)f(b)s(o)m(x.)275
+2117 y(The)g(basic)h(T)741 2137 y(E)791 2117 y(Xdra)m(w)f(macros)i(for)
+e(T)1584 2137 y(E)1634 2117 y(X)h(use)f(the)h Fs(\\special)e
+Fv(syn)m(tax)i(recognized)h(b)m(y)e(the)h(prin)m(ter)150
+2227 y(driv)m(er)25 b(program)f Fs(dvips)p Fv(.)38 b(Ho)m(w)m(ev)m(er,)
+28 b(when)c(in)m(v)m(ok)m(ed)j(as)e(a)g(LaT)2343 2246
+y(E)2393 2227 y(X2e)h(pac)m(k)-5 b(age,)29 b(the)c(T)3134
+2246 y(E)3184 2227 y(Xdra)m(w)f(macros)150 2336 y(can)30
+b(b)s(e)g(used)f(with)h(an)m(y)g(of)g(the)h(P)m(ostScript)f(prin)m(ter)
+g(driv)m(er)g(programs)f(supp)s(orted)g(b)m(y)h(the)g(standard)150
+2446 y Fs(graphics)e Fv(pac)m(k)-5 b(age)33 b(for)d(LaT)1193
+2465 y(E)1243 2446 y(X2e.)275 2580 y(The)25 b(basic)i(T)732
+2600 y(E)782 2580 y(Xdra)m(w)g(macros)g(pro)m(vide)f(only)h(simple)f
+(dra)m(wing)h(commands.)39 b(Ho)m(w)m(ev)m(er,)29 b(T)3437
+2600 y(E)3487 2580 y(Xdra)m(w)150 2690 y(pro)m(vides)35
+b(a)h(dra)m(wing)f(segmen)m(t)h(en)m(vironmen)m(t)g(whic)m(h)f(allo)m
+(ws)i(parameter)e(c)m(hanges)h(and)f(co)s(ordinate)150
+2800 y(scaling)c(c)m(hanges)f(to)h(b)s(e)e(k)m(ept)h(lo)s(cal)h(to)g
+(the)f(dra)m(wing)f(segmen)m(t.)42 b(This)29 b(facilit)m(y)-8
+b(,)32 b(together)f(with)f(T)3571 2819 y(E)3621 2800
+y(X's)150 2909 y(macro)c(capabilities)i(allo)m(ws)f(one)g(to)f(mo)s
+(dularize)g(dra)m(wing)g(units)f(and)g(extend)h(T)2966
+2929 y(E)3016 2909 y(Xdra)m(w)g(b)m(y)g(building)150
+3019 y(more)31 b(complex)g(graphics)f(en)m(tities)i(from)e(simpler)g
+(elemen)m(ts.)150 3259 y Fu(1.1)68 b(Distribution)46
+b(information)150 3419 y Fv(The)41 b(en)m(tire)h(T)665
+3438 y(E)715 3419 y(Xdra)m(w)f(pac)m(k)-5 b(age,)46 b(b)s(oth)41
+b(co)s(de)g(and)g(do)s(cumen)m(tation,)k(is)d(released)g(under)d
+(Creativ)m(e)150 3528 y(Commons)30 b(A)m(ttribution)h(\(CC-BY\))g
+(license,)h(an)m(y)e(v)m(ersion.)p eop end
+%%Page: 2 6
+TeXDict begin 2 5 bop 3705 -116 a Fv(2)150 299 y Fr(2)80
+b(Using)53 b(the)g(T)1133 331 y(E)1219 299 y(Xdra)l(w)g(Commands)150
+812 y Fv(The)26 b(main)g(T)607 832 y(E)657 812 y(Xdra)m(w)h(macros)g
+(\(commands\))f(are)h(de\014ned)e(in)i(the)f(\014le)h
+Fs(texdraw.tex)p Fv(.)36 b(These)26 b(macros)150 922
+y(ma)m(y)42 b(b)s(e)g(used)f(directly)h(in)g(T)1224 942
+y(E)1274 922 y(X.)75 b(The)41 b(\014le)h Fs(texdraw.sty)d
+Fv(pro)m(vides)j(an)g(in)m(terface)h(for)f(use)f(with)150
+1032 y(LaT)303 1051 y(E)353 1032 y(X2e.)h(The)30 b(follo)m(wing)i
+(sections)f(describ)s(e)f(the)g(basic)h(commands)f(for)g(T)2859
+1051 y(E)2909 1032 y(Xdra)m(w.)150 1412 y Fu(2.1)68 b(Accessing)45
+b(T)1074 1439 y(E)1144 1412 y(Xdra)l(w)150 1572 y Fv(The)31
+b(form)f(of)i(the)f(user)g(command)g(to)h(run)e(the)h(T)1912
+1591 y(E)1962 1572 y(X)g(program)g(dep)s(ends)f(on)h(whic)m(h)g(v)m
+(ersion)g(of)h(T)3632 1591 y(E)3682 1572 y(X)150 1681
+y(is)39 b(b)s(eing)f(used,)j(and)d(whic)m(h)g(other)i(macro)f(pac)m(k)
+-5 b(ages)41 b(are)e(preloaded)g(as)g(format)g(\014les.)66
+b(T)m(ypically)-8 b(,)150 1791 y(installations)26 b(ha)m(v)m(e)f(at)f
+(least)h(t)m(w)m(o)h(v)m(ersions)e(of)g(T)1820 1810 y(E)1870
+1791 y(X)g(|)f(plain)h(T)2348 1810 y(E)2398 1791 y(X)g(whic)m(h)g
+(includes)f(basic)i(t)m(yp)s(esetting)150 1900 y(macros)43
+b(\(usually)g(in)m(v)m(ok)m(ed)g(as)g Fs(tex)p Fv(\))f(and)g(LaT)1859
+1920 y(E)1909 1900 y(X2e)i(whic)m(h)e(includes)g(the)h(LaT)3061
+1920 y(E)3111 1900 y(X2e)h(t)m(yp)s(esetting)150 2010
+y(macros)34 b(\(usually)f(in)m(v)m(ok)m(ed)i(as)e Fs(latex)p
+Fv(\).)49 b(An)33 b(older)g(v)m(ersion)h(of)f(LaT)2561
+2029 y(E)2612 2010 y(X,)h(v)m(ersion)g(2.09,)h(ma)m(y)f(also)h(b)s(e)
+150 2120 y(a)m(v)-5 b(ailable.)70 b(The)39 b(T)833 2139
+y(E)883 2120 y(Xdra)m(w)h(macros)g(can)f(b)s(e)g(used)g(with)g(plain)g
+(T)2532 2139 y(E)2582 2120 y(X)h(and)f(with)g(either)h(v)m(ersion)g(of)
+150 2229 y(LaT)303 2249 y(E)353 2229 y(X.)275 2457 y(F)-8
+b(or)48 b(use)g(with)f(plain)h(T)1150 2476 y(E)1200 2457
+y(X,)k(the)c(user)g(m)m(ust)f(read)h(in)g(the)g(T)2541
+2476 y(E)2591 2457 y(Xdra)m(w)f(macros)h(from)g(the)g(\014le)150
+2566 y Fs(texdraw.tex)p Fv(.)390 2794 y Fs(\\input)e(texdraw)571
+b(\045)47 b(Read)g(in)g(the)g(TeXdraw)f(macros)438 2904
+y(...)390 3013 y(\\btexdraw)485 3123 y(...)1002 b(\045)47
+b(TeXdraw)f(commands)g(to)h(generate)e(a)j(drawing)390
+3232 y(\\etexdraw)275 3460 y Fv(F)-8 b(or)36 b(use)f(with)g(LaT)970
+3480 y(E)1021 3460 y(X)g(v)m(ersion)i(2.09,)h(the)e(user)f(reads)g(in)h
+(the)f(T)2589 3480 y(E)2639 3460 y(Xdra)m(w)h(macros)g(from)f(the)h
+(\014le)150 3570 y Fs(texdraw.tex)27 b Fv(and)i(optionally)i(de\014nes)
+e(the)h Fs(\\begin{texdraw})c Fv(/)k Fs(\\end{texdraw})c
+Fv(en)m(vironmen)m(t.)390 3797 y Fs(\\documentstyle[11pt]{art)o(icle)o
+(})90 b(\045)47 b(Article)f(style)g(at)h(11pt)g(size)390
+3907 y(...)390 4016 y(\\input)f(texdraw)571 b(\045)47
+b(Read)g(in)g(the)g(TeXdraw)f(macros)390 4126 y
+(\\newenvironment{texdraw})o({\\le)o(avev)o(mod)o(e\\bt)o(exdr)o(aw})o
+({\\et)o(exdr)o(aw})438 4236 y(...)390 4345 y(\\begin{texdraw})485
+4455 y(...)1002 b(\045)47 b(TeXdraw)f(commands)g(to)h(generate)e(a)j
+(drawing)390 4564 y(\\end{texdraw})390 4674 y(...)390
+4784 y(\\end{document})275 5011 y Fv(F)-8 b(or)42 b(use)f(with)g(LaT)
+988 5031 y(E)1039 5011 y(X2e,)k(the)d(user)f(m)m(ust)g(load)h(the)g
+Fs(texdraw)e Fv(pac)m(k)-5 b(age)43 b(\(\014le)f Fs(texdraw.sty)p
+Fv(\).)150 5121 y(This)c(pac)m(k)-5 b(age)40 b(\014le)f(de\014nes)e
+(the)i Fs(\\begin{texdraw})34 b Fv(/)39 b Fs(\\end{texdraw})34
+b Fv(en)m(vironmen)m(t,)42 b(brings)37 b(in)150 5230
+y(the)24 b(standard)g Fs(graphics)e Fv(pac)m(k)-5 b(age)26
+b(and)e(reads)g(in)f(the)i(\014le)f Fs(texdraw.tex)d
+Fv(con)m(taining)26 b(the)e(de\014nitions)150 5340 y(of)31
+b(the)f(T)461 5360 y(E)511 5340 y(Xdra)m(w)g(macros.)p
+eop end
+%%Page: 3 7
+TeXDict begin 3 6 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(3)390 299 y Fs(\\documentclass[11pt]{art)o(icle)o(})90
+b(\045)47 b(Article)f(class)g(at)h(11pt)g(size)390 408
+y(\\usepackage{texdraw})520 b(\045)47 b(TeXdraw)f(commands)390
+628 y(\\begin{document})438 737 y(...)390 847 y(\\begin{texdraw})485
+956 y(...)1002 b(\045)47 b(TeXdraw)f(commands)g(to)h(generate)e(a)j
+(drawing)390 1066 y(\\end{texdraw})438 1176 y(...)390
+1285 y(\\end{document})275 1437 y Fv(As)40 b(the)h(T)637
+1457 y(E)687 1437 y(Xdra)m(w)f(commands)g(are)h(pro)s(cessed)f(b)m(y)g
+(T)2217 1457 y(E)2267 1437 y(X,)k(an)c(in)m(termediate)i(P)m(ostScript)
+f(\014le)g(is)150 1547 y(generated.)h(The)29 b(in)m(termediate)i(P)m
+(ostScript)f(has)g(a)g(name)g(of)g(the)g(form)f Fo(name)p
+Fs(.ps1)p Fv(.)38 b(The)29 b(name)h(part)150 1657 y(is)j(deriv)m(ed)f
+(from)h(the)g(name)f(of)h(the)g(main)g(T)1731 1676 y(E)1781
+1657 y(X)f(\014le)h(b)s(eing)f(pro)s(cessed.)48 b(If)32
+b(more)h(than)f(one)h(dra)m(wing)150 1766 y(is)d(pro)s(duced,)f(the)i
+(digit)g(in)f(the)h(\014le)f(name)h(extension)g(is)f(incremen)m(ted.)
+2684 1733 y Fn(1)275 1919 y Fv(The)40 b(T)523 1938 y(E)573
+1919 y(Xdra)m(w)g(commands)g(to)h(pro)s(duce)f(a)h(dra)m(wing)f(are)h
+(inserted)f(b)s(et)m(w)m(een)i Fs(\\btexdraw)c Fv(and)150
+2028 y Fs(\\etexdraw)24 b Fv(commands,)k(or)f(for)g(LaT)1476
+2048 y(E)1526 2028 y(X,)h(b)s(et)m(w)m(een)g Fs(\\begin{texdraw})22
+b Fv(and)27 b Fs(\\end{texdraw})c Fv(com-)150 2138 y(mands.)40
+b(This)30 b(results)g(in)h(a)f(T)1204 2157 y(E)1254 2138
+y(X)h(b)s(o)m(x)g(of)f(appropriate)h(size)g(con)m(taining)h(the)f(dra)m
+(wing)f(generated)i(b)m(y)150 2247 y(the)26 b(T)353 2267
+y(E)403 2247 y(Xdra)m(w)f(commands.)39 b(The)25 b(T)1408
+2267 y(E)1458 2247 y(Xdra)m(w)g(b)s(o)m(x)g(can)h(b)s(e)f(p)s
+(ositioned)g(in)g(a)h(do)s(cumen)m(t)f(lik)m(e)i(an)m(y)f(other)150
+2357 y(T)201 2376 y(E)251 2357 y(X)k(b)s(o)m(x.)275 2509
+y(The)e Fs(\\centertexdraw{...})d Fv(macro)30 b(cen)m(ters)g(the)g(b)s
+(o)m(x)f(generated)h(b)m(y)g(T)2893 2529 y(E)2943 2509
+y(Xdra)m(w.)40 b(The)29 b(v)m(ertical)150 2619 y(space)j(tak)m(en)h(up)
+e(is)g(equal)i(to)f(the)g(v)m(ertical)i(size)e(of)g(the)g(dra)m(wing.)
+45 b(The)31 b Fs(\\centertexdraw)d Fv(macro)k(is)150
+2728 y(normally)f(used)e(in)h(v)m(ertical)j(mo)s(de)d(\(b)s(et)m(w)m
+(een)h(paragraphs\).)41 b(A)30 b Fs(\\par)f Fv(command)i(\(a)g(blank)f
+(line)h(will)150 2838 y(do)f(also\))i(b)s(efore)e(a)h
+Fs(\\centertexdraw)26 b Fv(command)31 b(will)f(terminate)i(horizon)m
+(tal)g(mo)s(de)e(and)g(return)f(to)150 2947 y(v)m(ertical)g(mo)s(de.)39
+b(F)-8 b(or)28 b(LaT)1062 2967 y(E)1112 2947 y(X,)g(a)g(structured)e
+(equiv)-5 b(alen)m(t)28 b(to)g(the)f Fs(\\centertexdraw{...})22
+b Fv(command)150 3057 y(is)30 b(sho)m(wn)g(b)s(elo)m(w.)390
+3209 y Fs(\\begin{center})390 3319 y(\\begin{texdraw})485
+3429 y(...)390 3538 y(\\end{texdraw})390 3648 y(\\end{center})275
+3800 y Fv(The)47 b Fs(\\everytexdraw)e Fv(command)k(can)f(b)s(e)g(used)
+g(to)h(de\014ne)f(a)g(set)h(of)g(T)2969 3820 y(E)3019
+3800 y(Xdra)m(w)f(commands)150 3910 y(that)j(will)g(b)s(e)f(executed)i
+(at)g(the)e(b)s(eginning)g(of)h(ev)m(ery)h(T)2281 3929
+y(E)2331 3910 y(Xdra)m(w)e(dra)m(wing.)102 b(It)51 b(is)g(in)m(v)m(ok)m
+(ed)h(as)150 4019 y Fs(\\everytexdraw{)26 b(...})p Fv(,)k(with)g(the)h
+(desired)e(T)1818 4039 y(E)1868 4019 y(Xdra)m(w)i(commands)f(as)g
+(argumen)m(ts.)150 4205 y Fs(\\btexdraw)630 4315 y Fv(Start)d(a)g(T)982
+4334 y(E)1032 4315 y(Xdra)m(w)f(dra)m(wing.)40 b(The)26
+b(dra)m(wing)g(is)h(terminated)g(with)f(an)h Fs(\\etexdraw)d
+Fv(com-)630 4424 y(mand.)150 4602 y Fs(\\etexdraw)630
+4711 y Fv(End)36 b(a)h(T)963 4731 y(E)1013 4711 y(Xdra)m(w)g(dra)m
+(wing)g(started)g(with)g(a)g Fs(\\btexdraw)d Fv(command.)60
+b(The)37 b(resulting)630 4821 y(T)681 4840 y(E)731 4821
+y(Xdra)m(w)k(dra)m(wing)g(is)h(placed)g(in)f(a)h(b)s(o)m(x)f(with)g
+(heigh)m(t)h(equal)g(to)g(the)g(heigh)m(t)g(of)g(the)630
+4930 y(dra)m(wing)30 b(and)f(width)g(equal)h(to)h(the)f(width)f(of)h
+(the)g(dra)m(wing.)41 b(The)29 b(depth)g(of)h(the)g(b)s(o)m(x)g(is)630
+5040 y(zero.)p 150 5154 1200 4 v 199 5221 a Fn(1)275
+5253 y Fm(After)g(the)g(nin)n(th)f(P)n(ostScript)i(\014le,)h(the)e
+(name)h(of)g(the)f(in)n(termediate)h(P)n(ostScript)g(\014le)f(tak)n(es)
+h(the)f(form)h Fl(name)p Fk(.p10)p Fm(,)275 5340 y(with)25
+b(the)h(n)n(um)n(b)r(er)e(increasing)j(from)g(10)f(with)g(eac)n(h)g
+(\014le.)p eop end
+%%Page: 4 8
+TeXDict begin 4 7 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(4)150 299 y Fs(\\begin{texdraw})630 408 y Fv(Start)30
+b(a)g(T)988 428 y(E)1038 408 y(Xdra)m(w)f(dra)m(wing.)40
+b(The)30 b(dra)m(wing)f(is)h(terminated)g(with)f(an)h
+Fs(\\end{texdraw})630 518 y Fv(command.)40 b(This)30
+b(command)g(is)h(for)f(use)g(with)g(LaT)2449 538 y(E)2499
+518 y(X.)150 691 y Fs(\\end{texdraw})630 801 y Fv(End)44
+b(a)i(T)980 820 y(E)1030 801 y(Xdra)m(w)g(dra)m(wing)f(started)h(with)f
+(a)h Fs(\\begin{texdraw})41 b Fv(command.)86 b(The)630
+910 y(resulting)34 b(T)1059 930 y(E)1109 910 y(Xdra)m(w)f(dra)m(wing)g
+(is)h(placed)g(in)f(a)g(b)s(o)m(x)h(with)f(heigh)m(t)h(equal)g(to)g
+(the)g(heigh)m(t)630 1020 y(of)c(the)h(dra)m(wing)f(and)g(width)f
+(equal)i(to)g(the)f(width)g(of)g(the)h(dra)m(wing.)40
+b(The)30 b(depth)f(of)i(the)630 1129 y(b)s(o)m(x)f(is)h(zero.)41
+b(This)30 b(command)g(is)g(for)g(use)h(with)f(LaT)2493
+1149 y(E)2543 1129 y(X.)150 1302 y Fs(\\centertexdraw{)c(...)k(})630
+1412 y Fv(Cen)m(ter)41 b(a)h(T)1074 1431 y(E)1124 1412
+y(Xdra)m(w)e(b)s(o)m(x)h(horizon)m(tally)-8 b(.)75 b(The)40
+b(argumen)m(t)h(con)m(tains)h(T)3204 1431 y(E)3254 1412
+y(Xdra)m(w)f(com-)630 1521 y(mands.)51 b(The)34 b(resulting)g(b)s(o)m
+(x)g(has)g(the)h(horizon)m(tal)g(size)g Fs(\\hsize)e
+Fv(and)g(heigh)m(t)i(equal)g(to)630 1631 y(the)c(heigh)m(t)g(of)f(the)h
+(dra)m(wing.)150 1804 y Fs(\\everytexdraw{)26 b(...)k(})630
+1914 y Fv(Sp)s(ecify)c(T)993 1933 y(E)1043 1914 y(Xdra)m(w)g(commands)g
+(to)h(b)s(e)f(executed)i(at)f(the)f(b)s(eginning)g(of)h(ev)m(ery)g(T)
+3437 1933 y(E)3487 1914 y(Xdra)m(w)630 2023 y(dra)m(wing.)150
+2284 y Fu(2.2)68 b(Command)45 b(syn)l(tax)150 2444 y
+Fv(Generally)40 b(T)622 2463 y(E)672 2444 y(Xdra)m(w)e(commands)h(that)
+g(tak)m(e)h(a)f(single)h(argumen)m(t)f(need)f(a)h(terminating)h(blank)e
+(or)150 2553 y(newline)28 b(after)h(the)f(argumen)m(t.)41
+b(Argumen)m(ts)28 b(that)g(are)h(self-delimiting,)h(suc)m(h)e(as)h(co)s
+(ordinates)f(within)150 2663 y(paren)m(theses)c(and)e(text)j(within)d
+(braces,)j(do)f(not)f(need)g(the)h(terminating)g(blank.)38
+b(Ho)m(w)m(ev)m(er,)27 b(ev)m(en)d(when)150 2772 y(not)32
+b(needed)g(b)m(y)g(the)h(de\014ning)e(syn)m(tax)i(of)f(the)h(command,)f
+(blanks)g(follo)m(wing)i(command)e(argumen)m(ts)150 2882
+y(are)f(allo)m(w)m(ed)h(and)e(ignored)g(within)g(the)h(T)1616
+2901 y(E)1666 2882 y(Xdra)m(w)f(en)m(vironmen)m(t.)275
+3030 y(On)f(en)m(tering)i(the)g(T)985 3049 y(E)1035 3030
+y(Xdra)m(w)f(en)m(vironmen)m(t,)h(T)1927 3049 y(E)1977
+3030 y(X)f(is)g(in)g(in)m(ternal)h(v)m(ertical)i(mo)s(de)d(\(v)m
+(ertical)i(mo)s(de)150 3139 y(inside)22 b(a)g Fs(\\vbox)p
+Fv(\).)37 b(In)21 b(this)h(mo)s(de,)h(spaces)f(can)h(b)s(e)e(placed)h
+(freely)h(b)s(et)m(w)m(een)f(commands.)38 b(Ho)m(w)m(ev)m(er,)26
+b(an)m(y)150 3249 y(other)j(extraneous)f(input)g(that)h(generates)g
+(output)f(that)h(is)f(not)h(part)f(of)h(the)f(T)2916
+3269 y(E)2966 3249 y(Xdra)m(w)g(en)m(vironmen)m(t)150
+3359 y(is)i(disallo)m(w)m(ed.)275 3507 y(Blank)36 b(lines)g(are)h(in)m
+(terpreted)f(as)g(paragraph)g(breaks,)h(equiv)-5 b(alen)m(t)38
+b(to)f(a)f Fs(\\par)f Fv(command.)57 b(The)150 3616 y(T)201
+3636 y(E)251 3616 y(Xdra)m(w)35 b(macro)g Fs(\\centertexdraw)c
+Fv(is)k(de\014ned)f(with)g(the)h Fs(\\long)f Fv(attribute)h(to)h(allo)m
+(w)g Fs(\\par)e Fv(com-)150 3726 y(mands)i(and)h(blank)g(lines)g(to)h
+(b)s(e)f(in)m(tersp)s(ersed)f(b)s(et)m(w)m(een)i(T)2271
+3745 y(E)2321 3726 y(Xdra)m(w)f(commands.)61 b(The)36
+b Fs(\\btexdraw)150 3835 y Fv(and)30 b Fs(\\etexdraw)e
+Fv(commands)i(also)h(allo)m(w)h Fs(\\par)d Fv(command)h(and)g(blank)g
+(lines)g(to)i(b)s(e)d(included.)150 4096 y Fu(2.3)68
+b(T)461 4123 y(E)532 4096 y(Xdra)l(w)45 b(co)t(ordinates)150
+4256 y Fv(The)23 b(T)381 4275 y(E)431 4256 y(Xdra)m(w)g(co)s(ordinate)i
+(system)e(has)g(increasing)h Fj(x)30 b Fv(to)24 b(the)g(righ)m(t)g(and)
+f(increasing)h Fj(y)31 b Fv(up)m(w)m(ard.)37 b(The)150
+4365 y(co)s(ordinates)g(\(without)g(the)f(unit\))g(are)h(\015oating)g
+(p)s(oin)m(t)f(n)m(um)m(b)s(ers.)57 b(In)m(teger)37 b(v)-5
+b(alues)37 b(can)f(b)s(e)g(written)150 4475 y(without)25
+b(a)h(decimal)g(p)s(oin)m(t.)39 b(The)25 b(size)i(of)e(the)h(dra)m
+(wing)f(is)g(determined)g(b)m(y)g(the)h(maxim)m(um)f(excursions)150
+4585 y(of)31 b(the)f(co)s(ordinates)h(sp)s(eci\014ed)f(in)g(T)1417
+4604 y(E)1467 4585 y(Xdra)m(w)g(commands.)1679 5340 y
+@beginspecial 0 @hoffset 0 @voffset @setspecial
+%%BeginDocument: texdraw.ps1
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps1
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+0 240 (T) 48 24 av
+0 0 mv
+240 0 (T) 48 24 av
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 0 65 72
+%%EOF
+
+%%EndDocument
+ @endspecial 1655 4782 a Fj(y)2219 5360 y(x)p eop end
+%%Page: 5 9
+TeXDict begin 5 8 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(5)275 299 y(Consider)29 b(the)i(follo)m(wing)g(example)h(of)e(T)1705
+318 y(E)1755 299 y(Xdra)m(w)g(commands)g(to)h(dra)m(w)f(a)h(simple)f
+(\014gure.)390 439 y Fs(\\centertexdraw{)485 548 y(\\drawdim)46
+b(cm)95 b(\\linewd)46 b(0.02)485 658 y(\\move\(2)g(2\))h(\\lvec\(3)f
+(3\))h(\\lvec\(2)f(4\))h(\\lvec\(1)f(3\))h(\\lvec\(2)f(2\))485
+767 y(\\textref)g(h:C)h(v:C)g(\\htext\(2)e(3\){$\\sum)h(\\rho_n$})390
+877 y(})1712 1471 y @beginspecial -28 @hoffset -57 @voffset
+@setspecial
+%%BeginDocument: texdraw.ps2
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps2
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+2 sl
+236 236 mv
+354 354 lv
+236 472 lv
+118 354 lv
+236 236 lv
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 28 57 85 113
+%%EOF
+
+%%EndDocument
+ @endspecial 1851 1193 a Fi(P)1954 1257 y Fp(\032)2001
+1271 y Fh(n)275 1610 y Fv(This)30 b(dra)m(wing)h(uses)f(units)h(of)g
+(cen)m(timetres,)i(with)e(a)g(line)h(width)e(of)h(0.02)i(cm.)42
+b(The)31 b Fj(x)37 b Fv(co)s(ordinate)150 1720 y(ranges)26
+b(b)s(et)m(w)m(een)g(1)g(and)g(3)g(while)f(the)h Fj(y)34
+b Fv(co)s(ordinate)26 b(ranges)g(b)s(et)m(w)m(een)h(2)f(and)f(4.)39
+b(When)26 b(included)f(in)m(to)150 1830 y(a)30 b(do)s(cumen)m(t,)g(the)
+g(size)h(of)f(the)g(dra)m(wing)g(is)f(2)i(cm)f(b)m(y)f(2)h(cm.)41
+b(The)29 b(dra)m(wing)h(is)g(placed)g(in)g(a)g(T)3433
+1849 y(E)3483 1830 y(X)g(b)s(o)m(x,)150 1939 y(with)g(the)g(lo)m(w)m
+(er)h(lefthand)f(corner)g(of)g(the)g(b)s(o)m(x)g(corresp)s(onding)f(to)
+i(T)2563 1959 y(E)2613 1939 y(Xdra)m(w)f(co)s(ordinate)g
+Fs(\(1)g(2\))g Fv(and)150 2049 y(the)h(upp)s(er)f(righ)m(thand)h
+(corner)g(at)h Fs(\(3)d(4\))p Fv(.)43 b(The)31 b Fs(\\centertexdraw)c
+Fv(command)k(cen)m(ters)i(the)e(dra)m(wing)150 2158 y(horizon)m(tally)
+-8 b(.)53 b(The)33 b Fs(\\textref)e Fv(command)i(con)m(trols)i(the)f
+(cen)m(tering)h(of)f(the)g(text.)51 b(The)33 b(text)i(in)e(this)150
+2268 y(dra)m(wing)d(is)h(cen)m(tered)g(\(b)s(oth)f(horizon)m(tally)i
+(and)e(v)m(ertically\))j(at)e(the)g(co)s(ordinate)g Fs(\(2)f(3\))p
+Fv(.)150 2517 y Fu(2.4)68 b(Co)t(ordinate)46 b(sp)t(eci\014cation)150
+2676 y Fv(Co)s(ordinates)c(are)g(sp)s(eci\014ed)f(within)h(paren)m
+(theses,)j(with)d(blanks)f(\(but)g(no)h(comma\))h(b)s(et)m(w)m(een)g
+(the)150 2786 y(v)-5 b(alues.)79 b(Leading)43 b(blanks)f(and)h
+(trailing)h(blanks)e(are)i(p)s(ermitted)e(within)h(the)g(paren)m
+(theses.)78 b(The)150 2895 y(co)s(ordinates)35 b(refer)g(to)g(units,)h
+(whic)m(h)e(are)h(sp)s(eci\014ed)f(b)m(y)h(the)g Fs(\\drawdim)d
+Fv(command.)54 b(The)34 b(default)h(is)150 3005 y(inc)m(hes,)c(but)f
+(an)m(y)h(v)-5 b(alid)31 b(T)1056 3024 y(E)1106 3005
+y(X)g(dimension)f(unit)g(can)h(b)s(e)f(sp)s(eci\014ed.)41
+b(Sym)m(b)s(olic)31 b(sp)s(eci\014cation)g(of)g(sa)m(v)m(ed)150
+3114 y(co)s(ordinate)g(v)-5 b(alues)31 b(will)g(b)s(e)e(discused)h
+(later)h(\(see)h(Section)f(3.3)g([Sa)m(ving)h(p)s(ositions],)e(page)h
+(15\).)150 3282 y Fs(\\drawdim)d Fo(dim)630 3391 y Fv(Set)h(the)g
+(units)f(to)h Fj(dim)p Fv(.)40 b(The)28 b(argumen)m(t)h
+Fj(dim)f Fv(can)h(b)s(e)f(an)m(y)h(v)-5 b(alid)29 b(T)2988
+3411 y(E)3038 3391 y(X)g(dimension)f(unit.)630 3501 y(The)g(units)h
+(are)g(used)f(to)i(in)m(terpret)f(co)s(ordinate)h(v)-5
+b(alues.)41 b(Examples)29 b(of)g(v)-5 b(alid)29 b(units:)39
+b Fs(cm)p Fv(,)630 3610 y Fs(mm)p Fv(,)30 b Fs(in)p Fv(,)g
+Fs(pt)p Fv(,)g(and)g Fs(bp)p Fv(.)275 3778 y(Examples)g(of)g(co)s
+(ordinate)i(and)d(scaling)j(sp)s(eci\014cations:)150
+3945 y Fs(\\drawdim)c({cm})h(\\move\(2)g(2\))630 4055
+y Fv(Set)g(the)h(units)f(to)h(cen)m(timetres,)h(mo)m(v)m(e)g(to)f(a)g
+(p)s(osition)f(2)h(cm)f(to)h(the)f(righ)m(t)h(and)f(2)h(cm)f(up)630
+4164 y(from)h(the)g(origin)h(of)g(the)f(dra)m(wing)h(co)s(ordinate)g
+(system.)150 4329 y Fs(\\drawdim)d(bp)630 4438 y Fv(Set)j(the)f(units)g
+(to)h(big)g(p)s(oin)m(ts.)150 4603 y Fs(\\lvec)e(\()h(2.2)f(+5.5\))g
+(\\lvec\(2.3)f(-2\))i(\\lvec\(2.2)e(5.4)h(\))630 4713
+y Fv(Examples)h(of)h(acceptable)h(co)s(ordinate)g(sp)s(eci\014cations.)
+150 4961 y Fu(2.5)68 b(Line)45 b(v)l(ectors)150 5121
+y Fv(T)201 5140 y(E)251 5121 y(Xdra)m(w)33 b(implemen)m(ts)g(mo)m(v)m
+(es,)i(line)e(v)m(ectors)h(and)f(arro)m(w)g(v)m(ectors.)49
+b(There)33 b(are)g(b)s(oth)f(absolute)i(and)150 5230
+y(relativ)m(e)d(motion)f(v)m(ersions)f(of)g(these)g(v)m(ector)i
+(commands.)39 b(T)2262 5250 y(E)2312 5230 y(Xdra)m(w)29
+b(main)m(tains)h(a)f(curren)m(t)g(p)s(osition.)150 5340
+y(Lines)36 b(are)h(dra)m(wn)e(from)h(the)h(curren)m(t)f(p)s(osition)h
+(to)g(a)g(new)e(co)s(ordinate,)k(with)e(the)f(new)g(co)s(ordinate)p
+eop end
+%%Page: 6 10
+TeXDict begin 6 9 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(6)150 299 y(b)s(ecoming)25 b(the)f(new)g(curren)m(t)g(p)s(osition.)39
+b(An)24 b(explicit)i(mo)m(v)m(e)g(can)f(b)s(e)f(used)f(to)j(establish)e
+(a)h(new)f(curren)m(t)150 408 y(p)s(osition.)41 b(The)30
+b(p)s(osition)g Fs(\(0)g(0\))g Fv(is)g(used)g(if)g(there)h(is)f(no)g
+(mo)m(v)m(e)i(to)f(an)f(initial)i(curren)m(t)e(p)s(osition.)275
+540 y(The)j Fs(\\move)g Fv(and)h Fs(\\rmove)e Fv(commands)i(establish)h
+(a)f(new)g(curren)m(t)g(p)s(osition)g(without)g(dra)m(wing)h(a)150
+650 y(line.)66 b(The)39 b Fs(\\lvec)e Fv(and)h Fs(\\rlvec)f
+Fv(commands)i(dra)m(w)f(a)i(line)f(from)f(the)h(curren)m(t)g(p)s
+(osition)g(to)g(a)g(new)150 759 y(p)s(osition,)30 b(whic)m(h)f(then)g
+(b)s(ecomes)h(the)f(new)g(curren)m(t)g(p)s(osition.)41
+b(The)29 b Fs(\\avec)f Fv(and)h Fs(\\ravec)e Fv(commands)150
+869 y(dra)m(w)32 b(a)h(line)g(with)g(an)f(arro)m(whead)h(from)f(the)h
+(curren)m(t)f(p)s(osition)h(to)g(a)g(new)g(co)s(ordinate,)h(whic)m(h)e
+(then)150 978 y(b)s(ecomes)27 b(the)h(new)e(curren)m(t)h(p)s(osition.)
+40 b(The)27 b(tip)g(of)g(the)g(arro)m(w)h(is)f(at)h(the)f(new)g(curren)
+m(t)g(p)s(osition.)39 b(The)150 1088 y(direction)31 b(of)f(the)g(arro)m
+(w)h(follo)m(ws)g(the)f(direction)h(of)f(the)g(line.)41
+b(Since)30 b(this)g(direction)h(is)f(unde\014ned)e(for)150
+1198 y(zero)33 b(length)g(v)m(ectors,)i(these)e(are)g(not)g(allo)m(w)m
+(ed)h(for)f Fs(\\avec)e Fv(or)i Fs(\\ravec)p Fv(.)45
+b(Zero)33 b(length)g(arro)m(w)f(v)m(ectors)150 1307 y(will)h(generate)h
+(a)f(P)m(ostScript)g(prin)m(t)f(error:)45 b Fs(undefinedresult)p
+Fv(.)e(F)-8 b(or)33 b(an)m(y)g(non-zero)g(length)g(v)m(ector,)150
+1417 y(the)e(full)f(size)h(arro)m(whead)f(is)h(dra)m(wn,)e(ev)m(en)j
+(if)e(that)h(arro)m(whead)f(is)h(longer)g(than)f(the)g(line)h(length.)
+275 1548 y(The)42 b(absolute)i(motion)g(v)m(ersions)g(of)f(these)h
+(commands)e(sp)s(ecify)h(the)h(co)s(ordinate)g(of)f(the)g(\014nal)150
+1658 y(p)s(osition.)150 1811 y Fs(\\move)29 b(\()p Fo(x)h(y)p
+Fs(\))630 1921 y Fv(Mo)m(v)m(e)i(to)g(co)s(ordinate)f
+Fs(\()p Fo(x)f(y)p Fs(\))p Fv(.)40 b(The)29 b(new)h(curren)m(t)h(p)s
+(osition)f(is)g Fs(\()p Fo(x)g(y)p Fs(\))p Fv(.)150 2074
+y Fs(\\lvec)f(\()p Fo(x)h(y)p Fs(\))630 2184 y Fv(Dra)m(w)37
+b(a)h(line)f(from)f(the)h(curren)m(t)f(p)s(osition)h(to)h(co)s
+(ordinate)g Fs(\()p Fo(x)29 b(y)p Fs(\))p Fv(.)60 b(The)36
+b(new)g(curren)m(t)630 2293 y(p)s(osition)30 b(is)h Fs(\()p
+Fo(x)f(y)p Fs(\))p Fv(.)150 2447 y Fs(\\avec)f(\()p Fo(x)h(y)p
+Fs(\))630 2556 y Fv(Dra)m(w)36 b(a)g(line)g(with)f(an)h(arro)m(whead)f
+(from)g(the)h(curren)m(t)f(p)s(osition)h(to)g Fs(\()p
+Fo(x)30 b(y)p Fs(\))p Fv(.)55 b(The)35 b(new)630 2666
+y(curren)m(t)c(p)s(osition)g(is)g Fs(\()p Fo(x)f(y)p
+Fs(\))p Fv(.)42 b(The)30 b(arro)m(whead)h(is)g(aligned)h(with)f(the)g
+(line,)h(with)f(the)g(tip)630 2776 y(at)g Fs(\()p Fo(x)f(y)p
+Fs(\))p Fv(.)275 2929 y(The)k(relativ)m(e)k(motion)e(v)m(ersions)f(of)h
+(these)f(commands)g(in)m(terpret)h(the)g(co)s(ordinates)g(as)f
+(displace-)150 3039 y(men)m(ts)i(relativ)m(e)h(to)f(the)f(curren)m(t)g
+(p)s(osition.)59 b(Giv)m(en)37 b(the)f(displacemen)m(ts)h
+Fs(\()p Fo(dx)30 b(dy)p Fs(\))35 b Fv(as)i(a)f(parameter,)150
+3148 y(eac)m(h)g(of)g(the)f(relativ)m(e)i(motion)f(commands)f(mo)m(v)m
+(es)i Fj(dx)k Fv(units)34 b(in)h(the)g Fj(x)42 b Fv(direction)36
+b(and)e Fj(dy)43 b Fv(units)34 b(in)150 3258 y(the)d
+Fj(y)38 b Fv(direction.)150 3411 y Fs(\\rmove)29 b(\()p
+Fo(dx)g(dy)p Fs(\))630 3521 y Fv(Mo)m(v)m(e)g(from)e(the)h(curren)m(t)f
+(p)s(osition,)h Fj(dx)33 b Fv(units)27 b(in)g(the)h Fj(x)33
+b Fv(direction)c(and)d Fj(dy)35 b Fv(units)27 b(in)g(the)630
+3630 y Fj(y)38 b Fv(direction.)j(The)30 b(\014nal)g(p)s(osition)h(b)s
+(ecomes)f(the)h(new)f(curren)m(t)g(p)s(osition.)150 3784
+y Fs(\\rlvec)f(\()p Fo(dx)g(dy)p Fs(\))630 3893 y Fv(Dra)m(w)g(a)g
+(line)f(from)g(the)h(curren)m(t)f(p)s(osition,)h Fj(dx)34
+b Fv(units)27 b(in)h(the)h Fj(x)34 b Fv(direction)29
+b(and)f Fj(dy)36 b Fv(units)630 4003 y(in)30 b(the)h
+Fj(y)38 b Fv(direction.)j(The)30 b(\014nal)g(p)s(osition)g(b)s(ecomes)h
+(the)g(new)e(curren)m(t)i(p)s(osition.)150 4156 y Fs(\\ravec)e(\()p
+Fo(dx)g(dy)p Fs(\))630 4266 y Fv(Dra)m(w)39 b(a)g(line)f(with)g(an)h
+(arro)m(whead)f(from)g(the)h(curren)m(t)f(p)s(osition,)i
+Fj(dx)k Fv(units)38 b(in)g(the)h Fj(x)630 4376 y Fv(direction)d(and)f
+Fj(y)43 b Fv(units)35 b(in)g(the)h Fj(y)43 b Fv(direction.)57
+b(The)35 b(\014nal)g(p)s(osition)h(b)s(ecomes)g(the)f(new)630
+4485 y(curren)m(t)h(p)s(osition.)57 b(The)36 b(arro)m(whead)g(is)g
+(aligned)g(with)g(the)g(line,)i(with)e(the)g(tip)g(at)h(the)630
+4595 y(new)30 b(curren)m(t)g(p)s(osition.)275 4748 y(Lines)e(can)i(b)s
+(e)e(customized)i(with)f(commands)g(to)h(c)m(hange)g(the)f(line)h
+(width,)e(line)i(pattern)f(and)g(line)150 4858 y(gra)m(y)c(lev)m(el)h
+(rendition.)38 b(In)23 b(addition,)j(commands)d(for)h(c)m(hanging)h
+(the)f(t)m(yp)s(e)g(and)g(size)h(of)f(the)g(arro)m(whead)150
+4967 y(are)31 b(a)m(v)-5 b(ailable.)150 5121 y Fs(\\linewd)28
+b Fo(width)630 5230 y Fv(Set)j(the)f(line)h(width)f(to)h
+Fj(width)f Fv(units.)40 b(Initially)32 b Fj(width)d Fv(is)i(0.01)h(inc)
+m(hes)f(\(corresp)s(onding)630 5340 y(to)g(3)g(pixels)f(at)i(300)f
+(pixels)g(to)g(the)f(inc)m(h\).)p eop end
+%%Page: 7 11
+TeXDict begin 7 10 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(7)150 299 y Fs(\\lpatt)29 b(\()p Fo(pattern)p Fs(\))630
+408 y Fv(Set)41 b(lines)f(to)h(ha)m(v)m(e)h(the)f(pattern)f
+Fs(\()p Fo(pattern)p Fs(\))p Fv(.)68 b(A)41 b(pattern)f(is)h(a)g
+(sequence)g(of)f(on/o\013)630 518 y(lengths)f(separated)h(b)m(y)f
+(blanks)g(and)f(enclosed)i(in)f(paren)m(theses.)68 b(The)38
+b(lengths)i(alter-)630 628 y(nately)g(sp)s(ecify)e(the)i(length)f(of)g
+(a)h(dash)e(and)g(the)h(length)h(of)f(a)g(gap)h(b)s(et)m(w)m(een)f
+(dashes.)630 737 y(Eac)m(h)g(length)g(is)g(in)m(terpreted)f(using)g
+(the)h(curren)m(t)f(scaling)i(and)e(dra)m(wing)g(units.)64
+b(The)630 847 y(pattern)33 b(is)f(used)g(cyclically)-8
+b(.)50 b(The)32 b(empt)m(y)h(pattern)f(signi\014es)h(a)g(solid)f(line.)
+48 b(The)32 b(initial)630 956 y(line)f(pattern)f(is)h(a)f(solid)h
+(line,)g(corresp)s(onding)e(to)i(the)g(empt)m(y)g(pattern)f
+Fs(\\lpatt)f(\(\))p Fv(.)150 1141 y Fs(\\setgray)f Fo(level)630
+1250 y Fv(Set)35 b(the)g(gra)m(y)g(lev)m(el)i(of)d(lines.)54
+b(Gra)m(y)36 b(lev)m(els)g(are)f(real)g(v)-5 b(alues)35
+b(from)f(0)h(\(blac)m(k\))i(through)630 1360 y(in)m(termediate)26
+b(v)-5 b(alues)24 b(\(gra)m(y\))i(to)e(1)h(\(white\).)39
+b(The)24 b(initial)h(gra)m(y)g(lev)m(el)h(is)e(0)g(corresp)s(onding)630
+1469 y(to)31 b(blac)m(k.)150 1654 y Fs(\\arrowheadtype)26
+b(t:)p Fo(type)630 1763 y Fv(Set)i(the)h(arro)m(whead)f(t)m(yp)s(e)g
+(to)h Fj(t)m(yp)s(e)p Fv(,)g(where)e Fj(t)m(yp)s(e)34
+b Fv(is)28 b(one)g(of)g Fs(F)p Fv(,)h Fs(T)p Fv(,)f Fs(W)p
+Fv(,)h Fs(V)p Fv(,)f(or)g Fs(H)p Fv(.)40 b(There)28 b(are)630
+1873 y(t)m(w)m(o)e(kinds)e(of)h(arro)m(wheads.)38 b(The)25
+b(\014rst)f(kind)g(is)g(a)h(triangle.)41 b(There)24 b(are)h(3)g(v)-5
+b(arian)m(ts:)39 b(t)m(yp)s(e)630 1982 y Fs(T)25 b Fv(is)g(an)g(empt)m
+(y)h(triangle,)h(t)m(yp)s(e)f Fs(F)f Fv(is)g(a)g(\014lled)g(triangle)i
+(\(using)e(the)g(curren)m(t)g(gra)m(y)h(lev)m(el)h(for)630
+2092 y(lines\),)h(t)m(yp)s(e)e Fs(W)g Fv(is)g(a)g(triangle)h(\014lled)f
+(with)g(white.)39 b(The)26 b(second)g(kind)f(of)h(arro)m(whead)g(is)g
+(an)630 2202 y(op)s(en)i(ended)g(V)-8 b(ee.)41 b(There)28
+b(are)h(2)g(v)-5 b(arian)m(ts:)40 b(t)m(yp)s(e)29 b Fs(V)f
+Fv(has)g(the)h(stem)g(con)m(tin)m(ue)h(to)f(the)g(tip,)630
+2311 y(t)m(yp)s(e)k Fs(H)f Fv(has)g(the)h(stem)g(stop)f(at)h(the)g
+(base)g(of)f(the)h(arro)m(whead.)47 b(The)32 b(initial)i(arro)m(whead)
+630 2421 y(t)m(yp)s(e)d(is)f Fs(T)p Fv(.)150 2605 y Fs(\\arrowheadsize)
+c(l:)p Fo(length)j Fs(w:)p Fo(width)630 2715 y Fv(Set)c(the)h(arro)m
+(whead)f(size)h(to)g(b)s(e)f Fj(length)g Fv(units)g(long)h(and)e
+Fj(width)h Fv(units)f(wide.)39 b(The)25 b(width)630 2824
+y(is)j(measured)f(across)h(the)g(\\base")h(of)f(the)g(arro)m(whead.)40
+b(The)28 b(initial)h(arro)m(whead)f(size)g(has)630 2934
+y(a)j Fj(length)g Fv(of)f(0.16)i(inc)m(hes)f(and)e(a)i
+Fj(width)f Fv(of)g(0.08)i(inc)m(hes.)275 3131 y(Note)25
+b(that)g(the)f(lines)g(whic)m(h)g(outline)h(the)f(arro)m(whead)g(will)g
+(b)s(e)g(dra)m(wn)f(with)h(the)g(same)g(line)h(pattern)150
+3240 y(used)32 b(for)g(the)g(stem.)48 b(Normally)-8 b(,)34
+b(arro)m(w)f(v)m(ectors)g(are)g(dra)m(wn)f(with)g(the)g(line)h(pattern)
+g(set)g(for)f(a)h(solid)150 3350 y(line.)40 b(Note)28
+b(that)f(the)f(\014ll)h(lev)m(el)h(used)e(for)g(the)h
+Fs(F)f Fv(v)-5 b(arian)m(t)27 b(of)g(the)g(arro)m(whead)f(uses)g(the)h
+(same)g(gra)m(y)g(lev)m(el)150 3459 y(as)33 b(used)f(for)h(lines.)48
+b(The)32 b(di\013erence)i(b)s(et)m(w)m(een)f(the)g Fs(T)f
+Fv(v)-5 b(arian)m(t)34 b(and)e(the)h Fs(W)g Fv(v)-5 b(arian)m(t)34
+b(only)f(sho)m(ws)f(up)g(if)150 3569 y(the)e(arro)m(whead)f(is)h
+(placed)g(o)m(v)m(er)h(non-white)e(areas)h(of)g(the)g(dra)m(wing.)40
+b(The)29 b Fs(W)g Fv(v)-5 b(arian)m(t)30 b(obliterates)i(the)150
+3678 y(area)f(under)e(the)i(arro)m(whead.)275 3838 y(Examples)f(of)g
+(line)h(parameter)g(and)f(arro)m(whead)g(settings)i(are)e(sho)m(wn)g
+(in)g(the)h(follo)m(wing)h(co)s(de.)390 3997 y Fs(\\centertexdraw{)485
+4107 y(\\drawdim)46 b(in)485 4216 y(\\linewd)g(0.03)h(\\setgray)e(0.6)i
+(\\arrowheadtype)d(t:F)j(\\avec\(0)f(0.5\))485 4326 y(\\linewd)g(0.01)h
+(\\setgray)e(0)143 b(\\arrowheadtype)44 b(t:V)j(\\avec\(0.5)e(0.5\))485
+4436 y(\\linewd)h(0.015)h(\\lpatt\(0.067)d(0.1\))j(\\lvec)f(\(1)h(0\))
+485 4545 y(\\linewd)f(0.02)h(\\lpatt\(\))e(\\arrowheadtype)f(t:T)j
+(\\avec\(1.5)f(0.5\))485 4655 y(\\arrowheadtype)e(t:H)j(\\avec\(2.0)f
+(0.5\))485 4764 y(\\setgray)g(0.4)h(\\arrowheadtype)d(t:W)j
+(\\avec\(3.0)e(0\))390 4874 y(})1050 5340 y @beginspecial
+0 @hoffset 0 @voffset @setspecial
+%%BeginDocument: texdraw.ps3
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps3
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+9 sl
+0.6 sg
+150 150 (F) 48 24 av
+3 sl
+0 sg
+300 150 (V) 48 24 av
+4 sl
+[20 30] sd
+450 0 lv
+6 sl
+[] sd
+600 150 (T) 48 24 av
+750 150 (H) 48 24 av
+0.4 sg
+900 0 (W) 48 24 av
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 0 216 36
+%%EOF
+
+%%EndDocument
+ @endspecial 1117 5096 a(t:F)1507 5138 y(t:V)1999 5096
+y(t:T)2407 5138 y(t:H)2587 5340 y(t:W)p eop end
+%%Page: 8 12
+TeXDict begin 8 11 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(8)150 299 y Fu(2.6)68 b(T)461 325 y(E)532 299 y(X)44
+b(text)150 458 y Fv(T)-8 b(ext)31 b(ma)m(y)f(b)s(e)g(sup)s(erimp)s
+(osed)e(on)h(the)i(dra)m(wing.)40 b(The)30 b(text)h(argumen)m(t)f(of)g
+(the)h Fs(\\htext)d Fv(command)i(is)150 568 y(in)h(horizon)m(tal)j(mo)s
+(de.)44 b(This)30 b(text)j(can)f(b)s(e)f(ordinary)g(text,)i(math)f(mo)s
+(de)f(expressions,)h(or)f(ev)m(en)i(more)150 677 y(complicated)i(b)s(o)
+m(xes)e(consisting)h(of)f(tables)h(and)f(the)g(lik)m(e.)50
+b(The)33 b(resulting)g(T)2873 697 y(E)2923 677 y(X)g(text)h(is)f
+(placed)h(in)f(a)150 787 y(b)s(o)m(x.)40 b(The)29 b(reference)g(p)s
+(oin)m(t)g(of)g(the)g(b)s(o)m(x)g(can)h(b)s(e)e(c)m(hosen)h(to)h(b)s(e)
+f(one)g(of)g(nine)g(lo)s(cations:)41 b(horizon)m(tally)150
+897 y(left,)c(cen)m(ter)f(or)f(righ)m(t;)j(v)m(ertically)f(top,)g(cen)m
+(ter)f(or)e(b)s(ottom.)55 b(The)34 b Fs(\\htext)g Fv(command)g(tak)m
+(es)j(one)e(of)150 1006 y(t)m(w)m(o)d(forms.)150 1199
+y Fs(\\htext)d(\()p Fo(x)g(y)p Fs(\){)p Fo(text)p Fs(})150
+1308 y(\\htext)g({)p Fo(text)p Fs(})630 1418 y Fv(The)h(\014rst)f(form)
+h(of)g(this)g(command)g(places)h(the)f(T)2388 1438 y(E)2438
+1418 y(X)h(text)g Fj(text)i Fv(horizon)m(tally)f(with)e(the)630
+1528 y(text)38 b(reference)f(p)s(oin)m(t)f(at)h(the)g(co)s(ordinate)h
+Fs(\()p Fo(x)29 b(y)p Fs(\))p Fv(.)59 b(The)36 b(new)g(curren)m(t)g(p)s
+(osition)h(is)g Fs(\()p Fo(x)630 1637 y(y)p Fs(\))p Fv(.)60
+b(The)37 b(second)g(form)g(of)g(this)g(command)g(places)g(the)h(T)2731
+1657 y(E)2781 1637 y(X)f(text)h Fj(text)i Fv(horizon)m(tally)630
+1747 y(with)31 b(the)h(text)h(reference)f(p)s(oin)m(t)f(at)i(the)e
+(curren)m(t)h(p)s(osition.)44 b(The)31 b(text)i(reference)f(p)s(oin)m
+(t)630 1856 y(is)e(set)h(with)f(the)h Fs(\\textref)d
+Fv(command.)275 2049 y(T)-8 b(ext)43 b(can)g(b)s(e)f(placed)h(v)m
+(ertically)h(using)e(the)h Fs(\\vtext)e Fv(command.)77
+b(The)42 b(text)i(argumen)m(t)f(is)f(in)150 2159 y(horizon)m(tal)32
+b(mo)s(de.)40 b(The)30 b(T)1095 2178 y(E)1145 2159 y(X)h(text)g(is)f
+(placed)h(in)f(a)h(b)s(o)m(x)f(and)g(then)g(rotated)h(coun)m(terclo)s
+(c)m(kwise.)43 b(The)150 2268 y(reference)25 b(p)s(oin)m(t)g(is)f(the)h
+(p)s(oin)m(t)g(in)f(the)h(b)s(o)m(x,)h Fg(b)-5 b(efor)g(e)32
+b Fv(rotation)26 b(of)f(the)g(text.)40 b(Not)26 b(all)f(P)m(ostScript)g
+(prin)m(ter)150 2378 y(driv)m(ers)30 b(supp)s(ort)f(v)m(ertical)j
+(text.)150 2570 y Fs(\\vtext)d(\(x)g(y\){)p Fo(text)p
+Fs(})150 2680 y(\\vtext)g({)p Fo(text)p Fs(})630 2790
+y Fv(The)38 b(\014rst)f(form)h(of)g(this)g(command)g(places)h(the)f(T)
+2452 2809 y(E)2502 2790 y(X)g(text)h Fj(text)i Fv(v)m(ertically)g(with)
+d(the)630 2899 y(text)g(reference)f(p)s(oin)m(t)f(at)h(the)g(co)s
+(ordinate)h Fs(\()p Fo(x)29 b(y)p Fs(\))p Fv(.)59 b(The)36
+b(new)g(curren)m(t)g(p)s(osition)h(is)g Fs(\()p Fo(x)630
+3009 y(y)p Fs(\))p Fv(.)j(The)29 b(second)h(form)f(of)g(this)h(command)
+f(places)i(the)e(T)2650 3028 y(E)2700 3009 y(X)h(text)h
+Fj(text)h Fv(v)m(ertically)g(with)630 3118 y(the)f(text)g(reference)g
+(p)s(oin)m(t)f(at)i(the)e(curren)m(t)g(p)s(osition.)41
+b(In)30 b(b)s(oth)g(cases,)h(the)g(T)3351 3138 y(E)3401
+3118 y(X)f(text)i(is)630 3228 y(placed)37 b(in)e(a)i(b)s(o)m(x)f(and)f
+(the)i(b)s(o)m(x)f(is)g(rotated)h(coun)m(terclo)s(c)m(kwise)i(b)m(y)d
+(90)h(degrees)f(ab)s(out)630 3337 y(the)41 b(text)h(reference)f(p)s
+(oin)m(t.)72 b(The)40 b(text)i(reference)f(p)s(oin)m(t)g(is)g(set)g
+(with)f(the)h Fs(\\textref)630 3447 y Fv(command.)275
+3640 y(T)-8 b(ext)24 b(can)h(b)s(e)e(placed)h(at)h(an)f(arbitrary)g
+(angle)h(using)e(the)h Fs(\\rtext)f Fv(command.)38 b(The)23
+b(text)i(argumen)m(t)150 3749 y(is)30 b(in)g(horizon)m(tal)i(mo)s(de.)
+41 b(The)29 b(T)1292 3769 y(E)1342 3749 y(X)i(text)g(is)g(placed)f(in)g
+(a)h(b)s(o)m(x)f(and)g(then)g(rotated)h(coun)m(terclo)s(c)m(kwise.)150
+3859 y(The)g(reference)i(p)s(oin)m(t)f(is)g(the)g(p)s(oin)m(t)g(in)f
+(the)h(b)s(o)m(x,)h Fg(b)-5 b(efor)g(e)39 b Fv(rotation)33
+b(of)f(the)g(text.)47 b(Not)33 b(all)f(P)m(ostScript)150
+3968 y(prin)m(ter)e(driv)m(ers)g(supp)s(ort)f(rotated)i(text.)150
+4161 y Fs(\\rtext)e(td:)p Fo(angle)f Fs(\(x)i(y\){)p
+Fo(text)p Fs(})150 4271 y(\\rtext)f(td:)p Fo(angle)f
+Fs({)p Fo(text)p Fs(})630 4380 y Fv(The)j(\014rst)h(form)f(of)h(this)g
+(command)f(places)i(the)f(T)2402 4400 y(E)2452 4380 y(X)g(text)h
+Fj(text)i Fv(at)e(an)e(angle)i(with)f(the)630 4490 y(text)26
+b(reference)f(p)s(oin)m(t)f(at)i(the)f(co)s(ordinate)g
+Fs(\()p Fo(x)30 b(y)p Fs(\))p Fv(.)38 b(The)24 b(new)h(curren)m(t)f(p)s
+(osition)h(is)g Fs(\()p Fo(x)k(y)p Fs(\))p Fv(.)630 4599
+y(The)35 b(second)h(form)f(of)h(this)f(command)h(places)g(the)g(T)2538
+4619 y(E)2588 4599 y(X)g(text)g Fj(text)j Fv(at)d(an)g(angle)g(with)630
+4709 y(the)31 b(text)g(reference)g(p)s(oin)m(t)f(at)i(the)e(curren)m(t)
+g(p)s(osition.)41 b(In)30 b(b)s(oth)g(cases,)h(the)g(T)3351
+4729 y(E)3401 4709 y(X)f(text)i(is)630 4819 y(placed)27
+b(in)g(a)g(b)s(o)m(x)g(and)f(the)h(b)s(o)m(x)f(is)h(rotated)h(coun)m
+(terclo)s(c)m(kwise)h(b)m(y)e Fj(angle)33 b Fv(degrees)27
+b(ab)s(out)630 4928 y(the)41 b(text)h(reference)f(p)s(oin)m(t.)72
+b(The)40 b(text)i(reference)f(p)s(oin)m(t)g(is)g(set)g(with)f(the)h
+Fs(\\textref)630 5038 y Fv(command.)275 5230 y(The)31
+b(reference)i(p)s(oin)m(t)f(for)g(subsequen)m(t)f(T)1745
+5250 y(E)1795 5230 y(X)i(text)g(in)f(a)g Fs(\\htext)p
+Fv(,)f Fs(\\vtext)g Fv(or)h Fs(\\rtext)e Fv(command)150
+5340 y(is)g(set)h(with)f(the)h Fs(\\textref)d Fv(command.)p
+eop end
+%%Page: 9 13
+TeXDict begin 9 12 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1838
+b(9)150 299 y Fs(\\textref)28 b(h:)p Fo(h-ref)h Fs(v:)p
+Fo(v-ref)630 408 y Fv(Set)42 b(the)g(text)g(reference)g(p)s(oin)m(t)g
+(for)f(subsequen)m(t)g(text)i(commands.)74 b(The)41 b(horizon)m(tal)630
+518 y(reference)f(p)s(oin)m(t)g Fj(h-ref)57 b Fv(is)40
+b(one)g(of)f Fs(L)p Fv(,)j Fs(C)e Fv(or)g Fs(R)f Fv(\(left,)k(cen)m
+(ter)e(or)f(righ)m(t\).)70 b(The)39 b(v)m(ertical)630
+628 y(reference)d(p)s(oin)m(t)g Fj(v-ref)53 b Fv(is)36
+b(one)f(of)h Fs(T)p Fv(,)h Fs(C)e Fv(or)h Fs(B)f Fv(\(top,)j(cen)m(ter)
+f(or)e(b)s(ottom\).)57 b(F)-8 b(or)37 b(rotated)630 737
+y(text,)25 b(the)d(reference)h(p)s(oin)m(t)f(is)g(determined)g(b)s
+(efore)f(rotation.)40 b(The)21 b(initial)i(text)g(reference)630
+847 y(p)s(oin)m(t)30 b(corresp)s(onds)f(to)i Fs(\\textref)e(h:L)g(v:B)p
+Fv(.)183 2522 y @beginspecial 220 @hoffset 96 @voffset
+@setspecial
+%%BeginDocument: texdraw.ps4
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps4
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+bs
+bs
+-450 0 mv
+6 0 fc
+es
+bs
+-720 0 mv
+6 0 fc
+es
+bs
+-180 0 mv
+6 0 fc
+es
+bs
+-450 90 mv
+6 0 fc
+es
+bs
+-450 -90 mv
+6 0 fc
+es
+bs
+-720 -90 mv
+6 0 fc
+es
+-720 -90 mv
+-720 90 lv
+bs
+6 0 fc
+es
+-180 90 lv
+bs
+6 0 fc
+es
+-180 -90 lv
+bs
+6 0 fc
+es
+-720 -90 lv
+es
+bs
+bs
+450 0 mv
+6 0 fc
+es
+bs
+259 -191 mv
+6 0 fc
+es
+bs
+641 191 mv
+6 0 fc
+es
+bs
+386 64 mv
+6 0 fc
+es
+bs
+514 -64 mv
+6 0 fc
+es
+bs
+323 -255 mv
+6 0 fc
+es
+323 -255 mv
+195 -127 lv
+bs
+6 0 fc
+es
+577 255 lv
+bs
+6 0 fc
+es
+705 127 lv
+bs
+6 0 fc
+es
+323 -255 lv
+es
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -220 -96 204 96
+%%EOF
+
+%%EndDocument
+ @endspecial 800 1688 a(Horizon)m(tal)k(T)-8 b(ext)946
+1816 y Fs(h:C)47 b(v:C)191 1752 y(h:L)g(v:C)1175 b(h:R)47
+b(v:C)946 1508 y(h:C)g(v:T)946 1996 y(h:C)g(v:B)191 1932
+y(h:L)g(v:B)191 1572 y(h:L)g(v:T)1175 b(h:R)47 b(v:T)1701
+1932 y(h:R)g(v:B)2887 1698 y
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2887 1698 a -265 w Fv(Rotated)31
+b(T)-8 b(ext)2887 1698 y
+ currentpoint grestore moveto
+ 2887 1698 a 2939 1750 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2939
+1750 a 2772 1806 a Fs(h:C)47 b(v:C)2939 1750 y
+ currentpoint grestore moveto
+ 2939 1750
+a 2497 2140 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2497 2140 a 2163 2168 a Fs(h:L)g(v:C)2497
+2140 y
+ currentpoint grestore moveto
+ 2497 2140 a 3329 1308 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 3329 1308 a 28 x Fs(h:R)g(v:C)3329
+1308 y
+ currentpoint grestore moveto
+ 3329 1308 a 2759 1570 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2759 1570 a -167 w Fs(h:C)g(v:T)2759
+1570 y
+ currentpoint grestore moveto
+ 2759 1570 a 3067 1878 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 3067 1878 a 2900 1934
+a Fs(h:C)g(v:B)3067 1878 y
+ currentpoint grestore moveto
+ 3067 1878 a 2625 2268 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2625
+2268 a 2291 2296 a Fs(h:L)g(v:B)2625 2268 y
+ currentpoint grestore moveto
+ 2625 2268
+a 2369 2012 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 2369 2012 a 2035 2040 a Fs(h:L)g(v:T)2369
+2012 y
+ currentpoint grestore moveto
+ 2369 2012 a 3201 1180 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 3201 1180 a 28 x Fs(h:R)g(v:T)3201
+1180 y
+ currentpoint grestore moveto
+ 3201 1180 a 3457 1436 a
+ gsave currentpoint currentpoint translate 45 neg rotate neg exch neg
+exch translate
+ 3457 1436 a 28 x Fs(h:R)g(v:B)3457
+1436 y
+ currentpoint grestore moveto
+ 3457 1436 a 275 2656 a Fv(The)37 b(fon)m(t)i(used)f(to)g(render)
+g(the)g(text)h(is)g(determined)f(as)g(for)g(an)m(y)h(other)f(T)2976
+2676 y(E)3026 2656 y(X)h(text.)65 b(Normally)150 2766
+y(the)38 b(fon)m(t)h(used)e(outside)i(of)f(T)1208 2785
+y(E)1258 2766 y(Xdra)m(w)g(is)g(in)g(e\013ect.)65 b(If)38
+b(desired,)i(other)e(fon)m(ts)g(can)h(b)s(e)e(sp)s(eci\014ed)h(as)150
+2875 y(part)33 b(of)g(the)h(text.)50 b(An)m(y)33 b(fon)m(t)h(c)m
+(hanges)g(within)f(a)h(T)1991 2895 y(E)2041 2875 y(Xdra)m(w)f(text)h
+(command)f(remain)g(lo)s(cal)h(to)g(that)150 2985 y(command.)275
+3119 y(Only)24 b(the)h(co)s(ordinate)h(of)f(the)g(text)h(reference)g(p)
+s(oin)m(t)f(in)g(a)g Fs(\\htext)p Fv(,)g Fs(\\vtext)e
+Fv(or)i Fs(\\rtext)e Fv(command)150 3228 y(is)32 b(used)f(in)h
+(calculating)i(the)f(size)f(of)h(the)f(dra)m(wing.)45
+b(This)32 b(means)g(that)g(text)h(itself)g(can)g(spill)f(outside)150
+3338 y(of)f(the)g(dra)m(wing)g(area)h(determined)e(b)m(y)h(T)1609
+3358 y(E)1659 3338 y(Xdra)m(w.)42 b(The)31 b(area)g(of)h(the)f(dra)m
+(wing)f(can)i(b)s(e)e(increased)h(to)150 3448 y(include)f(the)h(text)g
+(b)m(y)f(issuing)g(additional)i Fs(\\move)d Fv(commands.)390
+3582 y Fs(\\centertexdraw{)1010 3691 y(\\avec\(-0.75)45
+b(-0.25\))h(\\textref)g(h:R)h(v:C)g(\\htext{H-text})485
+3801 y(\\move\(0)f(0\))h(\\avec\(-0.75)e(+0.25\))h(\\textref)g(h:R)h
+(v:B)g(\\htext{H-text})485 3910 y(\\move\(0)f(0\))h(\\avec\(0)f(+0.5\))
+285 b(\\textref)46 b(h:L)h(v:T)g(\\vtext{V-text})485
+4020 y(\\move\(0)f(0\))h(\\avec\(+0.75)e(+0.25\))h(\\textref)g(h:L)h
+(v:B)g(\\htext{H-text})485 4129 y(\\move\(0)f(0\))h(\\avec\(+0.75)e
+(-0.25\))h(\\textref)g(h:L)h(v:C)g(\\htext{H-text})390
+4239 y(})275 4373 y Fv(Sup)s(erimp)s(osed)22 b(on)k(this)f(example)h
+(is)g(a)f(shaded)g(region)h(sho)m(wing)g(the)f(limits)h(of)g(the)g(T)
+3268 4393 y(E)3318 4373 y(Xdra)m(w)f(b)s(o)m(x)150 4483
+y(as)31 b(determined)f(b)m(y)g(the)g(co)s(ordinates)i(sp)s(eci\014ed.)
+1258 5340 y @beginspecial 83 @hoffset 22 @voffset @setspecial
+%%BeginDocument: texdraw.ps5
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps5
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+-225 -75 mv
+-225 150 lv
+225 150 lv
+225 -75 lv
+0.9 fl
+0 0 mv
+-225 -75 (T) 48 24 av
+0 0 mv
+-225 75 (T) 48 24 av
+0 0 mv
+0 150 (T) 48 24 av
+0 0 mv
+225 75 (T) 48 24 av
+0 0 mv
+225 -75 (T) 48 24 av
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -83 -22 83 66
+%%EOF
+
+%%EndDocument
+ @endspecial 1241 5341 a(H-text)1241 5010 y(H-text)1948
+4860 y
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1948 4860 a 62 x Fv(V-text)1948 4860 y
+ currentpoint grestore moveto
+ 1948 4860
+a 2398 5010 a Fv(H-text)2398 5341 y(H-text)p eop end
+%%Page: 10 14
+TeXDict begin 10 13 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1792
+b(10)150 299 y Fu(2.7)68 b(Circles,)46 b(ellipses)h(and)d(arcs)150
+458 y Fv(T)201 478 y(E)251 458 y(Xdra)m(w)39 b(supplies)f(commands)g
+(to)i(generate)g(circles,)j(ellipses)d(and)e(arcs.)67
+b(There)38 b(are)h(t)m(w)m(o)i(forms)150 568 y(of)d(the)g(circle)h
+(command.)63 b(The)37 b Fs(\\lcir)f Fv(command)i(dra)m(ws)f(a)h(circle)
+h(of)f(giv)m(en)h(radius.)62 b(The)37 b Fs(\\fcir)150
+677 y Fv(command)26 b(dra)m(ws)g(a)h(\014lled)g(circle.)40
+b(In)26 b(the)h(latter)h(case,)g(the)f(circle)h(is)e(\014lled)g(b)m(y)h
+(a)g(sp)s(eci\014ed)f(gra)m(y)h(lev)m(el.)150 787 y(F)-8
+b(or)28 b(the)e(\014lled)h(circle,)i(the)e(line)g(de\014ning)f(the)h
+(circumference)g(of)g(the)g(circle)h(is)f(not)g(dra)m(wn.)38
+b(Note)28 b(that)150 897 y(the)g(gra)m(y)h(lev)m(el)g(area)g(\014lled)e
+(in)h(b)m(y)f(the)h Fs(\\fcir)e Fv(command)i(is)g(opaque,)g(ev)m(en)h
+(if)e(the)h(\014ll)g(is)g(c)m(hosen)g(to)h(b)s(e)150
+1006 y(white.)44 b(F)-8 b(or)32 b(either)f(form)g(of)h(the)f(circle)i
+(command,)e(the)h(dra)m(wing)f(size)h(is)g(increased)f(if)g(necessary)h
+(to)150 1116 y(con)m(tain)g(the)e(circle.)275 1249 y(The)h
+Fs(\\lellip)f Fv(command)i(generates)h(an)f(ellipse)h(sp)s(eci\014ed)e
+(b)m(y)h(the)g(radius)f(of)h(the)g(ellipse)h(in)f(the)150
+1358 y Fj(x)h Fv(direction)27 b(and)e(the)i(radius)e(of)i(the)f
+(ellipse)i(in)e(the)g Fj(y)34 b Fv(direction.)40 b(The)26
+b(ellipse)h(is)g(symmetrical)g(ab)s(out)150 1468 y(horizon)m(tal)d(and)
+d(v)m(ertical)j(lines)e(dra)m(wn)f(through)h(the)g(curren)m(t)f(p)s
+(oin)m(t.)38 b(The)22 b Fs(\\fellip)e Fv(command)h(dra)m(ws)150
+1577 y(a)30 b(\014lled)g(ellipse.)41 b(In)29 b(the)h(latter)h(case,)g
+(the)f(ellipse)h(is)f(\014lled)f(b)m(y)h(a)g(sp)s(eci\014ed)f(gra)m(y)h
+(lev)m(el.)43 b(F)-8 b(or)30 b(the)g(\014lled)150 1687
+y(ellipse,)38 b(the)f(line)f(de\014ning)f(the)h(b)s(oundary)e(of)i(the)
+g(ellipse)h(is)f(not)g(dra)m(wn.)56 b(F)-8 b(or)37 b(either)f(form)g
+(of)g(the)150 1797 y(ellipse)31 b(command,)g(the)f(dra)m(wing)g(size)i
+(is)e(increased)h(if)f(necessary)h(to)g(con)m(tain)h(the)e(ellipse.)275
+1929 y(The)i Fs(\\larc)g Fv(command)g(generates)j(a)e(coun)m(terclo)s
+(c)m(kwise)i(arc)f(sp)s(eci\014ed)e(b)m(y)h(a)h(start)f(angle)h(in)f
+(de-)150 2039 y(grees)g(and)e(an)h(end)f(angle)i(in)f(degrees.)46
+b(The)31 b(cen)m(ter)i(of)f(the)h(arc)f(is)g(the)g(curren)m(t)g(p)s
+(osition.)45 b(Only)32 b(the)150 2149 y(arc)39 b(is)g(dra)m(wn,)i(not)e
+(the)g(line)g(joining)g(the)g(cen)m(ter)h(to)g(the)f(b)s(eginning)f(of)
+h(the)g(arc.)67 b(Note)40 b(that)g(the)150 2258 y Fs(\\larc)29
+b Fv(command)h(do)s(es)g(not)h(a\013ect)h(the)e(size)h(of)g(the)g(dra)m
+(wing.)150 2414 y Fs(\\lcir)e(r:)p Fo(radius)630 2524
+y Fv(Dra)m(w)38 b(a)g(circle)g(with)f(cen)m(ter)i(at)f(the)g(curren)m
+(t)f(p)s(osition.)62 b(The)36 b(radius)h(is)g(sp)s(eci\014ed)g(b)m(y)
+630 2633 y Fj(radius)p Fv(.)43 b(This)31 b(command)g(dra)m(ws)g(a)h
+(line)g(along)h(the)f(circumference)f(of)h(the)g(circle.)45
+b(The)630 2743 y(dra)m(wing)30 b(size)h(is)g(increased)g(if)f
+(necessary)h(to)g(con)m(tain)g(the)g(circle.)150 2899
+y Fs(\\fcir)e(f:)p Fo(level)f Fs(r:)p Fo(radius)630 3009
+y Fv(Dra)m(w)k(a)f(\014lled)g(circle)h(with)f(cen)m(ter)h(at)f(the)h
+(curren)m(t)e(p)s(osition.)43 b(The)31 b(radius)f(is)h(sp)s(eci\014ed)
+630 3118 y(b)m(y)j Fj(radius)p Fv(.)50 b(The)34 b(circle)h(is)f(pain)m
+(ted)g(with)g(the)g(gra)m(y)h(lev)m(el)h(sp)s(eci\014ed)d(b)m(y)h
+Fj(lev)m(el)p Fv(.)53 b(A)34 b(gra)m(y)630 3228 y(lev)m(el)27
+b(of)e(1)h(corresp)s(onds)e(to)i(white,)g(with)f(decreasing)h(v)-5
+b(alues)26 b(getting)h(dark)m(er.)39 b(The)24 b(lev)m(el)630
+3337 y(0)37 b(is)g(full)f(blac)m(k.)60 b(This)36 b(command)g(do)s(es)g
+(not)h(dra)m(w)f(a)h(line)g(along)h(the)e(circumference.)630
+3447 y(The)30 b(dra)m(wing)g(size)h(is)g(increased)f(if)h(necessary)g
+(to)g(con)m(tain)g(the)g(circle.)150 3603 y Fs(\\lellip)d(rx:)p
+Fo(x-radius)g Fs(ry:)p Fo(y-radius)630 3713 y Fv(Dra)m(w)22
+b(an)f(ellipse)h(with)f(cen)m(ter)h(at)g(the)f(curren)m(t)g(p)s
+(osition.)38 b(The)20 b(radius)h(in)g(the)g Fj(x)27 b
+Fv(direction)630 3822 y(is)32 b(sp)s(eci\014ed)g(b)m(y)g
+Fj(x-radius)p Fv(.)46 b(The)32 b(radius)f(in)i(the)f
+Fj(y)40 b Fv(direction)33 b(is)f(sp)s(eci\014ed)g(b)m(y)g
+Fj(y-radius)p Fv(.)630 3932 y(The)e(dra)m(wing)g(size)h(is)g(increased)
+f(if)h(necessary)g(to)g(con)m(tain)g(the)g(ellipse.)150
+4088 y Fs(\\fellip)d(f:)p Fo(level)h Fs(rx:)p Fo(x-radius)e
+Fs(ry:)p Fo(y-radius)630 4198 y Fv(Dra)m(w)36 b(a)g(\014lled)g(ellipse)
+g(with)g(cen)m(ter)g(at)h(the)f(curren)m(t)f(p)s(osition.)57
+b(The)35 b(radius)g(in)g(the)h Fj(x)630 4307 y Fv(direction)d(is)f(sp)s
+(eci\014ed)g(b)m(y)g Fj(x-radius)p Fv(.)45 b(The)32 b(radius)f(in)h
+(the)h Fj(y)39 b Fv(direction)33 b(is)g(sp)s(eci\014ed)e(b)m(y)630
+4417 y Fj(y-radius)p Fv(.)54 b(The)34 b(ellipse)i(is)f(pain)m(ted)g
+(with)g(the)g(gra)m(y)g(lev)m(el)i(sp)s(eci\014ed)d(b)m(y)h
+Fj(lev)m(el)p Fv(.)56 b(A)35 b(gra)m(y)630 4526 y(lev)m(el)27
+b(of)e(1)h(corresp)s(onds)e(to)i(white,)g(with)f(decreasing)h(v)-5
+b(alues)26 b(getting)h(dark)m(er.)39 b(The)24 b(lev)m(el)630
+4636 y(0)32 b(is)g(full)f(blac)m(k.)46 b(This)31 b(command)g(do)s(es)g
+(not)h(dra)m(w)g(a)g(line)g(along)g(the)g(b)s(oundary)e(of)i(the)630
+4746 y(ellipse.)42 b(The)29 b(dra)m(wing)i(size)g(is)f(increased)h(if)f
+(necessary)h(to)g(con)m(tain)h(the)e(ellipse.)150 4902
+y Fs(\\larc)f(r:)p Fo(radius)f Fs(sd:)p Fo(start-angle)f
+Fs(ed:)p Fo(end-angle)630 5011 y Fv(Dra)m(w)33 b(a)g(coun)m(terclo)s(c)
+m(kwise)i(arc.)48 b(The)33 b(cen)m(ter)g(of)g(the)g(arc)g(is)g(at)g
+(the)g(curren)m(t)g(p)s(osition.)630 5121 y(The)38 b(radius)g(is)g(sp)s
+(eci\014ed)g(b)m(y)h Fj(radius)p Fv(.)64 b(The)38 b(start)h(and)f(end)g
+(angles)h(\(in)g(degrees\))h(are)630 5230 y(sp)s(eci\014ed)23
+b(b)m(y)h Fj(start-angle)31 b Fv(and)23 b Fj(end-angle)p
+Fv(.)39 b(This)23 b(command)h(do)s(es)g(not)g(a\013ect)h(the)f(limits)
+630 5340 y(\(size\))32 b(of)e(the)h(dra)m(wing.)p eop
+end
+%%Page: 11 15
+TeXDict begin 11 14 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1792
+b(11)275 299 y(As)30 b(an)g(example,)h(the)g(follo)m(wing)h(commands)e
+(dra)m(w)g(a)h(\014lled)f(circle,)i(and)d(sup)s(erimp)s(ose)g(an)h
+(arc.)390 434 y Fs(\\centertexdraw{)485 543 y(\\linewd)46
+b(0.02)485 653 y(\\fcir)h(f:0.7)f(r:1)485 762 y(\\larc)h(r:1)g(sd:45)f
+(ed:135)485 872 y(\\lvec)h(\(+0.707)f(+0.707\))f(\\move)i(\(0)g(0\))g
+(\\lvec)g(\(-0.707)e(+0.707\))390 982 y(})1350 2298 y
+@beginspecial 72 @hoffset 72 @voffset @setspecial
+%%BeginDocument: texdraw.ps6
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps6
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+6 sl
+300 0.7 fc
+300 45 135 ar
+212 212 lv
+0 0 mv
+-212 212 lv
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -72 -72 72 72
+%%EOF
+
+%%EndDocument
+ @endspecial 275 2433 a Fv(Note)26 b(that)f(for)g(the)g(arc)g(command,)
+h(the)f(resulting)f(\014gure)h(can)g(spill)g(outside)g(of)g(the)f(T)
+3268 2453 y(E)3318 2433 y(Xdra)m(w)h(b)s(o)m(x)150 2543
+y(as)k(determined)g(b)m(y)g(the)h(maxim)m(um)f(excursions)f(of)i(the)f
+(co)s(ordinates.)41 b(Extra)29 b(mo)m(v)m(es)i(can)e(b)s(e)g(used)f(to)
+150 2652 y(comp)s(ensate)j(for)f(the)h(size)g(of)f(the)h(arc.)150
+2893 y Fu(2.8)68 b(Bezier)45 b(curv)l(es)150 3053 y Fv(Bezier)28
+b(curv)m(es)f(in)f(T)851 3072 y(E)901 3053 y(Xdra)m(w)h(use)f(4)h
+(reference)g(co)s(ordinates,)i(t)m(w)m(o)f(as)e(the)h(end)f(p)s(oin)m
+(ts)h(and)f(t)m(w)m(o)i(others)150 3162 y(to)33 b(con)m(trol)g(the)f
+(shap)s(e)f(of)h(the)h(curv)m(e.)45 b(Let)33 b(the)f(4)g(p)s(oin)m(ts)g
+(b)s(e)g Fs(\()p Fo(x0)d(y0)p Fs(\))p Fv(,)j Fs(\()p
+Fo(x1)d(y1)p Fs(\))p Fv(,)j Fs(\()p Fo(x2)d(y2)p Fs(\))i
+Fv(and)h Fs(\()p Fo(x3)150 3272 y(y3)p Fs(\))p Fv(.)73
+b(The)41 b(curv)m(e)h(starts)g(out)g(tangen)m(t)h(to)f(the)g(line)g
+(joining)g(the)f(\014rst)g(t)m(w)m(o)i(p)s(oin)m(ts)e(and)g(ends)g(up)
+150 3382 y(tangen)m(t)30 b(to)f(the)f(line)h(joining)g(the)f(second)h
+(t)m(w)m(o)g(p)s(oin)m(ts.)40 b(The)28 b(con)m(trol)i(p)s(oin)m(ts)e
+(\\pull")h(at)g(the)g(curv)m(e)f(to)150 3491 y(con)m(trol)33
+b(the)f(curv)-5 b(ature.)45 b(The)31 b(amoun)m(t)h(of)g(pull)f
+(increases)h(with)g(the)g(distance)g(of)g(the)g(con)m(trol)h(p)s(oin)m
+(t)150 3601 y(from)d(the)g(endp)s(oin)m(t.)275 3735 y(As)g(the)h
+(parameter)g Fp(\026)f Fv(v)-5 b(aries)31 b(from)f(0)h(to)g(1,)g(the)g
+(co)s(ordinates)g(of)f(the)h(Bezier)h(curv)m(e)f(are)g(giv)m(en)g(b)m
+(y)150 3845 y(a)g(pair)f(of)g(parametric)i(cubic)e(equations,)796
+4049 y Fj(x)p Fv(\()p Fp(\026)p Fv(\))c(=)f(\(1)c Ft(\000)f
+Fp(\026)p Fv(\))1373 4012 y Fn(3)1410 4049 y Fj(x0)h
+Fv(+)f(3)p Fp(\026)p Fv(\(1)h Ft(\000)f Fp(\026)p Fv(\))1997
+4012 y Fn(2)2034 4049 y Fj(x1)h Fv(+)f(3)p Fp(\026)2339
+4012 y Fn(2)2376 4049 y Fv(\(1)h Ft(\000)f Fp(\026)p
+Fv(\))p Fj(x2)h Fv(+)f Fp(\026)2918 4012 y Fn(3)2955
+4049 y Fj(x3)796 4184 y(y)p Fv(\()p Fp(\026)p Fv(\))26
+b(=)f(\(1)c Ft(\000)f Fp(\026)p Fv(\))1373 4146 y Fn(3)1410
+4184 y Fj(y0)h Fv(+)f(3)p Fp(\026)p Fv(\(1)h Ft(\000)f
+Fp(\026)p Fv(\))1997 4146 y Fn(2)2034 4184 y Fj(y1)h
+Fv(+)f(3)p Fp(\026)2339 4146 y Fn(2)2376 4184 y Fv(\(1)h
+Ft(\000)f Fp(\026)p Fv(\))p Fj(y2)h Fv(+)f Fp(\026)2918
+4146 y Fn(3)2955 4184 y Fj(y3)31 b Fp(:)150 4413 y Fs(\\clvec)e(\()p
+Fo(x1)g(y1)p Fs(\)\()p Fo(x2)g(y2)p Fs(\)\()p Fo(x3)f(y3)p
+Fs(\))630 4523 y Fv(Dra)m(w)f(a)g(Bezier)h(curv)m(e)f(from)f(the)h
+(curren)m(t)g(p)s(osition)f(to)i(the)e(co)s(ordinate)i
+Fs(\()p Fo(x3)h(y3)p Fs(\))d Fv(whic)m(h)630 4632 y(b)s(ecomes)i(the)h
+(new)e(curren)m(t)h(p)s(osition.)40 b(The)28 b(co)s(ordinates)g
+Fs(\()p Fo(x1)i(y1)p Fs(\))d Fv(and)h Fs(\()p Fo(x2)h(y2)p
+Fs(\))e Fv(serv)m(e)630 4742 y(as)f(con)m(trol)g(p)s(oin)m(ts)f(for)g
+(the)h(curv)m(e.)39 b(Only)25 b(the)g(last)i(co)s(ordinate)f(giv)m(en)g
+(is)f(used)g(to)h(up)s(date)630 4851 y(the)31 b(size)g(of)f(the)h(dra)m
+(wing.)150 5011 y(Note)41 b(that)e(only)h(3)f(co)s(ordinate)h(pairs)f
+(are)h(sp)s(eci\014ed.)67 b(The)38 b(other)i(p)s(oin)m(t)f(is)g(the)h
+(curren)m(t)f(p)s(osition)150 5121 y(b)s(efore)31 b(the)h
+Fs(\\clvec)e Fv(command)i(is)g(executed.)45 b(Only)31
+b(the)h(last)h(co)s(ordinate)f(sp)s(eci\014ed)f(in)h(the)g
+Fs(\\clvec)150 5230 y Fv(command)k(is)g(used)f(to)i(determine)f(the)g
+(exten)m(t)i(of)e(the)g(dra)m(wing.)57 b(While)37 b(the)f(Bezier)i
+(curv)m(e)e(passes)150 5340 y(through)27 b(the)g(old)h(curren)m(t)f(p)s
+(osition)g(and)g(the)h(new)f(curren)m(t)g(p)s(osition,)h(in)f(general)i
+(the)e(curv)m(e)h(will)g(not)p eop end
+%%Page: 12 16
+TeXDict begin 12 15 bop 150 -116 a Fv(Chapter)30 b(2:)41
+b(Using)30 b(the)h(T)1078 -97 y(E)1128 -116 y(Xdra)m(w)f(Commands)1792
+b(12)150 299 y(reac)m(h)32 b(the)f(in)m(termediate)i(con)m(trol)f(p)s
+(oin)m(ts.)43 b(The)31 b(curv)m(e)g(is)g(alw)m(a)m(ys)i(en)m(tirely)f
+(enclosed)g(b)m(y)f(the)g(con)m(v)m(ex)150 408 y(quadrilateral)c
+(de\014ned)f(b)m(y)g(the)h(t)m(w)m(o)h(end)d(p)s(oin)m(ts)i(and)e(the)i
+(t)m(w)m(o)h(con)m(trol)g(p)s(oin)m(ts.)39 b(Note)28
+b(that)f(the)g(curv)m(e)150 518 y(ma)m(y)k(pass)f(outside)h(the)f
+(limits)h(of)g(the)f(dra)m(wing)g(as)h(determined)f(b)m(y)g(the)h(end)f
+(p)s(oin)m(t)g(of)h(the)f(curv)m(e.)275 679 y(A)g(simple)g(Bezier)i
+(curv)m(e)f(is)f(pro)s(duced)f(b)m(y)h(the)h(follo)m(wing)h(example.)
+390 840 y Fs(\\btexdraw)485 949 y(\\move)47 b(\(0)g(0\))485
+1059 y(\\clvec)g(\(0)g(1\)\(1)f(0\)\(1)h(1\))390 1168
+y(\\etexdraw)275 1329 y Fv(This)34 b(example)i(is)f(the)g(righ)m(tmost)
+h(of)f(the)h(follo)m(wing)g(Bezier)h(curv)m(es.)55 b(The)34
+b(dra)m(wings)h(also)h(sho)m(w)150 1439 y(the)31 b(end)e(p)s(oin)m(ts)i
+(and)e(the)i(con)m(trol)h(p)s(oin)m(ts)e(for)g(eac)m(h)i(curv)m(e.)400
+2235 y @beginspecial 150 @hoffset 1 @voffset @setspecial
+%%BeginDocument: texdraw.ps7
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps7
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+bs
+[10] sd
+-600 0 mv
+6 0 fc
+-600 300 lv
+6 0 fc
+-300 300 lv
+6 0 fc
+-300 0 lv
+6 0 fc
+[] sd
+-600 0 mv
+-600 300 -300 300 -300 0 cv
+es
+bs
+[10] sd
+0 0 mv
+6 0 fc
+150 240 lv
+6 0 fc
+450 240 lv
+6 0 fc
+300 0 lv
+6 0 fc
+[] sd
+0 0 mv
+150 300 450 300 300 0 cv
+es
+bs
+[10] sd
+600 0 mv
+6 0 fc
+600 300 lv
+6 0 fc
+900 0 lv
+6 0 fc
+900 300 lv
+6 0 fc
+[] sd
+600 0 mv
+600 300 900 0 900 300 cv
+es
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -150 -1 222 73
+%%EOF
+
+%%EndDocument
+ @endspecial 355 2252 a(0)355 1652 y(1)696 b(2)1096 2252
+y(3)414 b(0)1855 1772 y(1)696 b(2)2296 2252 y(3)414 b(0)2755
+1652 y(1)3496 2252 y(2)3496 1652 y(3)150 2515 y Fu(2.9)68
+b(Fill)46 b(commands)150 2674 y Fv(P)m(ostScript)35 b(deals)f(with)g
+(paths)f(consisting)i(of)f(line)h(segmen)m(ts.)53 b(The)33
+b(paths)h(can)g(b)s(e)f(closed)i(and)f(the)150 2784 y(in)m(terior)40
+b(of)g(the)f(closed)h(region)g(\014lled.)68 b(F)-8 b(rom)40
+b(T)1901 2803 y(E)1951 2784 y(Xdra)m(w,)i(paths)d(start)h(with)f(a)g
+Fs(\\move)f Fv(or)i Fs(\\rmove)150 2893 y Fv(command)31
+b(and)f(con)m(tin)m(ue)j(with)d Fs(\\lvec)p Fv(,)g Fs(\\rlvec)g
+Fv(or)h Fs(\\clvec)e Fv(commands.)43 b(The)30 b(T)3082
+2913 y(E)3132 2893 y(Xdra)m(w)h(\014ll)g(com-)150 3003
+y(mands)c(close)j(the)e(path)g(and)f(\014ll)h(the)h(in)m(terior)g(of)f
+(the)g(closed)h(region.)41 b(Closing)28 b(the)g(path)g(means)g(that)150
+3113 y(e\013ectiv)m(ely)42 b(another)e Fs(\\lvec)d Fv(line)j(is)f(dra)m
+(wn)g(from)f(the)i(last)g(p)s(oin)m(t)f(sp)s(eci\014ed)g(to)h(the)f
+(initial)i(p)s(oin)m(t.)150 3222 y(T)201 3242 y(E)251
+3222 y(Xdra)m(w)25 b(pro)m(vides)h(t)m(w)m(o)h(forms)e(of)h(the)g
+(\014ll)f(command.)39 b(The)25 b Fs(\\ifill)f Fv(\014lls)h(the)h(in)m
+(terior)h(of)f(the)f(region)150 3332 y(with)g(the)h(giv)m(en)h(gra)m(y)
+g(lev)m(el.)40 b(The)26 b(lines)g(de\014ning)e(the)i(path)g(are)g(not)g
+(dra)m(wn.)38 b(The)25 b Fs(\\lfill)f Fv(command)150
+3441 y(\014lls)31 b(the)h(region)f(de\014ned)g(b)m(y)g(the)g(closed)h
+(path)f(and)g(dra)m(ws)g(a)h(line)f(along)i(the)e(enclosing)h(path.)44
+b(Note)150 3551 y(for)27 b(b)s(oth)g(forms)h(of)f(the)h(\014ll)g
+(command,)g(the)g(gra)m(y)h(lev)m(el)g(used)e(for)h(\014lling)g(is)f
+(opaque,)i(ev)m(en)f(if)g(the)g(gra)m(y)150 3661 y(lev)m(el)k(is)e(c)m
+(hosen)h(to)h(b)s(e)d(white.)150 3859 y Fs(\\lfill)g(f:)p
+Fo(level)630 3969 y Fv(Close)35 b(the)g(curren)m(t)f(path,)i(dra)m(w)e
+(the)h(line)g(around)f(the)h(path)f(using)g(the)h(curren)m(t)g(grey)630
+4079 y(lev)m(el)29 b(for)e(lines)h(and)f(pain)m(t)h(the)f(in)m(terior)i
+(of)e(the)h(region)g(with)f(sp)s(eci\014ed)g(gra)m(y)h(lev)m(el)h
+Fj(lev)m(el)p Fv(.)630 4188 y(Gra)m(y)34 b(lev)m(els)g(are)g(real)g(v)
+-5 b(alues)33 b(from)g(0)g(\(blac)m(k\))i(through)d(in)m(termediate)j
+(v)-5 b(alues)33 b(\(gra)m(ys\))630 4298 y(to)e(1)g(\(white\).)150
+4484 y Fs(\\ifill)e(f:)p Fo(level)630 4593 y Fv(Close)e(the)h(curren)m
+(t)e(path)h(and)f(pain)m(t)i(the)f(in)m(terior)g(of)g(the)g(region)h
+(with)f(gra)m(y)g(lev)m(el)i Fj(lev)m(el)p Fv(.)630 4703
+y(The)42 b(line)g(around)f(the)i(path)f(is)g(not)h(dra)m(wn.)75
+b(Gra)m(y)43 b(lev)m(els)h(are)e(real)h(v)-5 b(alues)43
+b(from)f(0)630 4812 y(\(blac)m(k\))32 b(through)e(in)m(termediate)i(v)
+-5 b(alues)31 b(\(gra)m(ys\))g(to)g(1)g(\(white\).)275
+5011 y(The)j(follo)m(wing)i(example)f(dra)m(ws)f(a)h(\\\015ag")h(with)e
+(the)h(in)m(terior)g(\014lled)g(in.)53 b(The)34 b(path)g(around)g(the)
+150 5121 y(b)s(oundary)f(is)j(giv)m(en)g(in)f(a)h(clo)s(c)m(kwise)h
+(order)e(to)h(de\014ne)f(a)g(closed)i(path.)55 b(W)-8
+b(e)37 b(could)e(tak)m(e)i(adv)-5 b(an)m(tage)150 5230
+y(of)39 b(the)g(fact)h(that)f(the)g(\014ll)g(command)g(will)g(close)h
+(an)f(op)s(en)f(path)g(to)i(eliminate)g(one)f(of)g(the)g
+Fs(\\lvec)150 5340 y Fv(commands.)p eop end
+%%Page: 13 17
+TeXDict begin 13 16 bop 3659 -116 a Fv(13)390 299 y Fs
+(\\centertexdraw{)390 408 y(\\move)46 b(\(0.5)h(0\))390
+518 y(\\lvec)f(\(0)i(0.5\))e(\\clvec)g(\(0.5)h(0.85\)\(1)f(0.65\)\(1.5)
+f(1\))390 628 y(\\lvec)h(\(2)i(0.5\))e(\\clvec)g(\(1.5)h(0.15\)\(1)f
+(0.35\)\(0.5)f(0\))390 737 y(\\lfill)h(f:0.8)390 847
+y(})1350 1563 y @beginspecial 0 @hoffset 0 @voffset @setspecial
+%%BeginDocument: texdraw.ps8
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps8
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+150 0 mv
+0 150 lv
+150 255 300 195 450 300 cv
+600 150 lv
+450 45 300 105 150 0 cv
+0.8 fp
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 0 144 72
+%%EOF
+
+%%EndDocument
+ @endspecial 275 1698 a Fv(In)23 b(T)433 1717 y(E)483
+1698 y(Xdra)m(w,)i(the)f Fs(\\move)f Fv(command)g(alw)m(a)m(ys)j
+(terminates)e(an)m(y)h(previous)e(paths)h(and)f(starts)h(a)g(new)150
+1807 y(path.)57 b(Commands)35 b(that)h(c)m(hange)i(line)e(parameters)g
+(\(e.g.)59 b Fs(\\setgray)34 b Fv(or)h Fs(\\lpatt)p Fv(\))g(also)i
+(terminate)150 1917 y(paths)24 b(and)h(start)g(new)g(paths.)38
+b(The)24 b(circle,)k(ellipse)e(and)e(arc)h(commands)g(do)g(not)g
+(a\013ect)h(the)f(de\014nition)150 2026 y(of)i(the)f(curren)m(t)h
+(path.)39 b(The)26 b Fs(\\avec)f Fv(command)h(is)h(not)f(appropriate)h
+(for)f(de\014ning)g(a)h(path)f(to)h(b)s(e)f(\014lled.)150
+2136 y(It)34 b(ends)f(a)h(subpath)e(at)j(its)f(tail)h(and)e(b)s(egins)g
+(a)h(new)g(subpath)e(at)j(its)f(tip.)51 b(Filling)35
+b(a)f(region)g(de\014ned)150 2246 y(b)m(y)c(a)h(path)f(with)g(subpaths)
+f(is)h(more)h(complicated)h(in)e(that)h(eac)m(h)h(subpath)d(is)h
+(closed)h(b)s(efore)f(\014lling.)p eop end
+%%Page: 14 18
+TeXDict begin 14 17 bop 3659 -116 a Fv(14)150 299 y Fr(3)80
+b(Dra)l(wing)53 b(Segmen)l(ts)e(and)j(Scaling)150 532
+y Fv(T)201 552 y(E)251 532 y(Xdra)m(w)41 b(pro)m(vides)h(individually)f
+(scaled)h(segmen)m(ts)g(whic)m(h)g(can)f(b)s(e)g(used)g(to)h(create)h
+(relo)s(catable)150 642 y(dra)m(wing)30 b(mo)s(dules.)150
+882 y Fu(3.1)68 b(Dra)l(wing)46 b(segmen)l(ts)150 1041
+y Fv(A)32 b(T)301 1061 y(E)351 1041 y(Xdra)m(w)h(dra)m(wing)f(segmen)m
+(t)h(allo)m(ws)h(for)e(lo)s(cal)h(mo)s(di\014cations)g(of)f(parameters)
+h(and)f(relativ)m(e)i(p)s(o-)150 1151 y(sitioning.)53
+b(A)34 b(T)719 1170 y(E)769 1151 y(Xdra)m(w)g(segmen)m(t)h(is)f
+(delimited)h(b)m(y)f(a)h Fs(\\bsegment)c Fv(command)j(and)f(an)h
+Fs(\\esegment)150 1260 y Fv(command.)40 b(Inside)26 b(the)i(segmen)m
+(t,)h(the)f(initial)h(curren)m(t)e(p)s(osition)g(is)h
+Fs(\(0)i(0\))p Fv(.)39 b(An)m(y)27 b(c)m(hanges)i(to)f(param-)150
+1370 y(eters)k(suc)m(h)f(as)g(the)h(gra)m(y)g(lev)m(el)h(and)d(the)i
+(line)f(width,)g(remain)g(lo)s(cal)i(to)f(the)f(segmen)m(t.)45
+b(Segmen)m(ts)32 b(are)150 1480 y(implemen)m(ted)f(in)f(T)845
+1499 y(E)895 1480 y(X)g(using)g(a)h Fs(\\begingroup)c
+Fv(and)j Fs(\\endgroup)p Fv(.)38 b(Segmen)m(ts)31 b(can)g(b)s(e)f
+(nested.)150 1639 y Fs(\\bsegment)630 1748 y Fv(Start)23
+b(a)g(dra)m(wing)f(segmen)m(t.)39 b(The)22 b(co)s(ordinate)i(system)e
+(is)h(shifted)f(suc)m(h)g(that)h(the)g(curren)m(t)630
+1858 y(p)s(osition)28 b(corresp)s(onds)f(to)i(the)g(co)s(ordinate)g
+Fs(\(0)h(0\))p Fv(.)39 b(Changes)28 b(to)h(scaling,)h(p)s(osition)f
+(and)630 1967 y(line)i(parameters)f(sta)m(y)i(lo)s(cal)f(to)h(the)e
+(dra)m(wing)g(segmen)m(t.)150 2126 y Fs(\\esegment)630
+2236 y Fv(End)23 b(a)i(dra)m(wing)f(segmen)m(t.)40 b(The)24
+b(curren)m(t)h(p)s(osition)f(in)g(e\013ect)i(b)s(efore)e(the)h(corresp)
+s(onding)630 2346 y Fs(\\bsegment)j Fv(command)h(is)i(restored.)40
+b(The)30 b(scaling)h(and)f(line)g(parameter)h(v)-5 b(alues)30
+b(rev)m(ert)630 2455 y(to)h(those)g(in)f(e\013ect)i(b)s(efore)e(the)g
+(corresp)s(onding)g Fs(\\bsegment)e Fv(command)i(w)m(as)h(in)m(v)m(ok)m
+(ed.)150 2696 y Fu(3.2)68 b(Dra)l(wing)46 b(paths)150
+2855 y Fv(Certain)36 b(subtle)g(in)m(teractions)i(o)s(ccur)e(b)s(et)m
+(w)m(een)h(dra)m(wing)f(segmen)m(ts)h(and)e(\014ll)h(op)s(erations.)58
+b(In)36 b(P)m(ost-)150 2965 y(Script,)25 b(lines)g(are)g(dra)m(wn)f(b)m
+(y)g(\014rst)g(de\014ning)f(a)i(path,)h(then)e(later)i(stroking)e(the)h
+(path)f(to)i(dra)m(w)e(the)g(line.)150 3074 y(In)35 b(T)320
+3094 y(E)370 3074 y(Xdra)m(w,)h(this)g(stroking)f(o)s(ccurs)g(when)g
+(the)g(line)h(is)f(terminated,)j(sa)m(y)e(b)m(y)f(a)h
+Fs(\\move)e Fv(command.)150 3184 y(P)m(ostScript)40 b(paths)e(are)i(in)
+m(terrupted)f(b)m(y)-8 b(,)41 b(but)e(con)m(tin)m(ue)h(after)g(a)g(dra)
+m(wing)e(segmen)m(t.)69 b(This)38 b(means)150 3293 y(that)c(a)h(path)e
+(started)h(b)s(efore)g(a)g(segmen)m(t)h(ma)m(y)f(not)g(b)s(e)f(strok)m
+(ed)i(\(dra)m(wn\))e(un)m(til)h(after)h(the)f(segmen)m(t)150
+3403 y(ends.)40 b(Consider)29 b(the)i(follo)m(wing)h(example.)390
+3537 y Fs(\\move)46 b(\(0)i(0\))390 3647 y(\\lvec)e(\(1)i(1\))390
+3756 y(\\bsegment)485 3866 y(\\move)f(\(-0.25)f(-0.25\))485
+3976 y(\\fcir)h(f:0.8)f(r:0.5)390 4085 y(\\esegment)390
+4195 y(\\move)g(\(0)i(0\))275 4329 y Fv(A)33 b(P)m(ostScript)g(path)g
+(is)g(started)h(at)g Fs(\(0)29 b(0\))k Fv(and)f(con)m(tin)m(ues)i(with)
+f(a)h(line)f(to)h Fs(\(1)c(1\))p Fv(.)48 b(This)32 b(path)h(is)150
+4439 y(in)m(terrupted)i(b)m(y)g(the)g(segmen)m(t.)57
+b(The)35 b(\014lled)g(circle)h(is)g(dra)m(wn)e(next.)56
+b(After)35 b(the)h(segmen)m(t,)i(the)d(path)150 4548
+y(con)m(tin)m(ues)c(and)f(is)g(not)g(strok)m(ed)h(un)m(til)f(the)h
+Fs(\\move)d(\(0)i(0\))g Fv(command)g(after)g(the)h(end)e(of)h(the)h
+(segmen)m(t.)150 4658 y(This)f(means)g(that)h(the)f(line)h(app)s(ears)f
+(on)g(top)h(of)f(the)h(\014lled)f(region.)275 4792 y(If)23
+b(the)i(\014ll)f(op)s(eration)h(is)g(to)g(co)m(v)m(er)h(the)e(line,)j
+(the)d(path)g(m)m(ust)h(b)s(e)e(strok)m(ed)i(b)s(efore)f(the)h(\014ll)f
+(op)s(eration.)150 4902 y(F)-8 b(rom)33 b(T)442 4921
+y(E)492 4902 y(Xdra)m(w,)h(the)f(mo)m(v)m(e)h(commands)e
+Fs(\\move)f Fv(and)i Fs(\\rmove)p Fv(,)e(and)i(the)g(end)f(T)3021
+4921 y(E)3071 4902 y(Xdra)m(w)g(command)150 5011 y Fs(\\etexdraw)23
+b Fv(terminate)j(a)f(path)g(and)g(cause)g(it)h(to)g(b)s(e)e(strok)m
+(ed.)40 b(Within)25 b(a)g(segmen)m(t,)j(the)d(end)g(segmen)m(t)150
+5121 y(command)36 b Fs(\\esegment)d Fv(also)j(terminates)h(and)e(strok)
+m(es)i(a)f(path.)57 b(In)35 b(the)h(example)g(ab)s(o)m(v)m(e,)j(the)d
+(line)150 5230 y(can)26 b(b)s(e)f(strok)m(ed)h(b)m(y)f(inserting)h(a)g
+(mo)m(v)m(e)h(command)e(\(suc)m(h)h(as)g(a)g Fs(\\rmove)i(\(0)i(0\))25
+b Fv(whic)m(h)g(do)s(es)h(not)f(a\013ect)150 5340 y(the)31
+b(p)s(osition\),)g(b)s(efore)f(the)g(start)h(of)g(the)f(segmen)m(t.)p
+eop end
+%%Page: 15 19
+TeXDict begin 15 18 bop 150 -116 a Fv(Chapter)30 b(3:)41
+b(Dra)m(wing)31 b(Segmen)m(ts)g(and)f(Scaling)1818 b(15)150
+299 y Fu(3.3)68 b(Sa)l(ving)46 b(p)t(ositions)150 458
+y Fv(The)29 b Fs(\\savecurrpos)c Fv(command)k(sa)m(v)m(es)i(the)e
+(curren)m(t)g(p)s(osition.)40 b(The)29 b(sa)m(v)m(ed)h(p)s(osition)f
+(is)g(an)g(absolute)150 568 y(p)s(osition,)48 b(not)c(one)g(relativ)m
+(e)i(to)f(a)f(segmen)m(t.)82 b(The)44 b(p)s(osition)g(sa)m(ving)g(mec)m
+(hanism)h(is)f(global;)52 b(the)150 677 y(p)s(osition)26
+b(can)g(b)s(e)f(sa)m(v)m(ed)i(within)f(a)g(nested)g(segmen)m(t)h(and)e
+(then)h(used)f(outside)h(of)g(the)g(segmen)m(t.)40 b(The)26
+b Fj(x)150 787 y Fv(and)d Fj(y)31 b Fv(co)s(ordinates)24
+b(of)g(the)g(p)s(osition)f(are)h(sa)m(v)m(ed)h(separately)f(as)g(named)
+f(co)s(ordinates.)39 b(The)23 b(names)h(are)150 897 y(of)k(the)g(form)f
+Fs(*)p Fo(name)p Fv(,)g(with)g(the)h(leading)g Fs(*)f
+Fv(b)s(eing)g(obligatory)-8 b(.)42 b(A)28 b(companion)g(command,)g
+Fs(\\savepos)p Fv(,)150 1006 y(sa)m(v)m(es)h(a)f(giv)m(en)h(co)s
+(ordinate)f(\(relativ)m(e)i(to)f(the)e(curren)m(t)h(segmen)m(t\))h(as)f
+(an)f(absolute)i(sym)m(b)s(olic)f(p)s(osition.)150 1155
+y Fs(\\savecurrpos)f(\(*)p Fo(px)i Fs(*)p Fo(py)p Fs(\))630
+1264 y Fv(Sa)m(v)m(e)j(the)e(curren)m(t)g(p)s(osition)h(as)f(the)h
+(absolute)g(p)s(osition)g(referenced)f(b)m(y)g Fs(\(*)p
+Fo(px)f Fs(*)p Fo(py)p Fs(\))p Fv(.)150 1413 y Fs(\\savepos)f(\()p
+Fo(x)i(y)p Fs(\)\(*)p Fo(px)f Fs(*)p Fo(py)p Fs(\))630
+1522 y Fv(Sa)m(v)m(e)h(the)g(co)s(ordinate)f(p)s(osition)h
+Fs(\()p Fo(x)f(y)p Fs(\))g Fv(as)g(the)g(absolute)h(p)s(osition)f
+(referenced)g(b)m(y)g Fs(\(*)p Fo(px)630 1632 y Fs(*)p
+Fo(py)p Fs(\))p Fv(.)38 b(The)23 b(co)s(ordinate)j Fs(\()p
+Fo(x)j(y)p Fs(\))24 b Fv(is)h(in)m(terpreted)f(in)h(the)f(normal)g
+(fashion)h(as)f(a)h(co)s(ordinate)630 1741 y(relativ)m(e)36
+b(to)e(the)g(curren)m(t)g(segmen)m(t,)i(using)d(the)h(curren)m(t)g
+(scaling)g(factors)h(and)e(dra)m(wing)630 1851 y(unit.)275
+1999 y(The)d(sym)m(b)s(olic)h(names)g(used)f(to)h(sp)s(ecify)g(a)g(sa)m
+(v)m(ed)h(p)s(osition)f(can)g(consist)g(of)g(an)m(y)g(c)m(haracters)h
+(that)150 2109 y(are)27 b(not)g(sp)s(ecial)h(to)f(T)907
+2129 y(E)957 2109 y(X,)h(but)e(m)m(ust)h(start)g(with)g(a)g
+Fs(*)f Fv(c)m(haracter.)41 b(The)27 b(sym)m(b)s(olic)g(names)f(can)i(b)
+s(e)e(used)150 2219 y(as)21 b(the)g Fj(x)27 b Fv(and/or)20
+b Fj(y)29 b Fv(co)s(ordinate)21 b(in)g(an)m(y)g(command)f(that)i(needs)
+e(a)h(co)s(ordinate.)38 b(Sym)m(b)s(olic)21 b(co)s(ordinates)150
+2328 y(are)34 b(not)f(normally)g(used)g(with)f(relativ)m(e)k(motion)d
+(commands)g(suc)m(h)g(as)g Fs(\\rlvec)f Fv(or)h Fs(\\rmove)p
+Fv(.)47 b(If)33 b(used)150 2438 y(with)i(relativ)m(e)j(motion,)g(the)e
+(corresp)s(onding)e(displacemen)m(t)j(is)f(equal)g(to)g(the)g(sym)m(b)s
+(olic)g(co)s(ordinate)150 2547 y(v)-5 b(alue.)275 2676
+y(On)42 b(exit)i(from)f(a)h(segmen)m(t,)k(the)c(p)s(osition)f(and)g
+(graphics)g(state)i(on)e(en)m(try)h(is)f(restored.)80
+b(An)m(y)150 2786 y(c)m(hanges)35 b(to)g(line)f(t)m(yp)s(es,)h(scaling)
+h(and)d(p)s(osition)h(are)h(discarded.)51 b(Ho)m(w)m(ev)m(er,)37
+b(it)e(is)f(sometimes)h(useful)150 2895 y(alter)25 b(the)e(p)s(osition)
+h(on)f(exit)i(from)e(a)h(segmen)m(t.)39 b(The)23 b Fs(\\savepos)e
+Fv(command)j(allo)m(ws)g(for)g(the)f(sa)m(ving)i(of)f(a)150
+3005 y(p)s(osition)e(within)e(the)i(segmen)m(t.)39 b(This)20
+b(p)s(osition)i(can)g(b)s(e)e(restored)i(after)g(the)g
+Fs(\\esegment)c Fv(with)k(a)f Fs(\\move)150 3115 y Fv(command)32
+b(using)f(the)h(sa)m(v)m(ed)g(sym)m(b)s(olic)h(p)s(osition.)45
+b(This)30 b(approac)m(h)j(can)f(b)s(e)f(used)g(to)h(build)f(mo)s(dules)
+150 3224 y(whic)m(h)f(op)s(erate)h(in)f(a)h(manner)e(analogous)j(to)f
+(the)g(basic)g(relativ)m(e)h(motion)f(line)g(v)m(ector)h(commands.)275
+3353 y(The)26 b(follo)m(wing)i(example)f(de\014nes)e(a)i(macro)h(whic)m
+(h)e(dra)m(ws)g(a)h(b)s(o)m(x)f(0.75)i(inc)m(hes)f(wide)g(b)m(y)f(0.5)i
+(inc)m(hes)150 3463 y(high)j(con)m(taining)i(cen)m(tered)g(text.)45
+b(On)30 b(lea)m(ving)k(the)d(macro)h(the)g(p)s(osition)g(will)g(b)s(e)e
+(set)i(at)h(a)f(p)s(oin)m(t)f(on)150 3572 y(the)g(righ)m(thand)e(side)i
+(of)f(the)h(b)s(o)m(x.)390 3701 y Fs(\\def\\tbox)45 b(#1{\\bsegment)
+1106 3811 y(\\lvec)h(\(0)h(+0.25\))190 b(\\lvec)46 b(\(0.75)g(+0.25\))
+1106 3921 y(\\lvec)g(\(0.75)h(-0.25\))f(\\lvec)g(\(0)h(-0.25\))f
+(\\lvec)h(\(0)g(0\))1106 4030 y(\\textref)e(h:C)i(v:C)g(\\htext)f
+(\(0.375)g(0\){#1})1106 4140 y(\\savepos)f(\(0.75)i(0\)\(*ex)f(*ey\))
+1010 4249 y(\\esegment)1010 4359 y(\\move)h(\(*ex)f(*ey\)})275
+4488 y Fv(With)27 b(this)g(de\014nition,)h(w)m(e)g(can)f(treat)i
+Fs(\\tbox)c Fv(in)i(the)h(same)f(w)m(a)m(y)i(as)e(the)h(basic)f(v)m
+(ector)i(commands,)150 4597 y(stringing)i(them)f(together)i(to)f(form)f
+(a)g(blo)s(c)m(k)h(diagram)g(as)g(in)f(this)g(example.)390
+4726 y Fs(\\centertexdraw{)485 4836 y(\\ravec)47 b(\(1)g(0\))g
+(\\tbox{$H\(z\)$})d(\\ravec)i(\(1)h(0\))390 4946 y(})1125
+5340 y @beginspecial 0 @hoffset 18 @voffset @setspecial
+%%BeginDocument: texdraw.ps9
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.ps9
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+300 0 (T) 48 24 av
+bs
+300 75 lv
+525 75 lv
+525 -75 lv
+300 -75 lv
+300 0 lv
+es
+525 0 mv
+825 0 (T) 48 24 av
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 -18 198 18
+%%EOF
+
+%%EndDocument
+ @endspecial 1849 5213 a Fp(H)7 b Fv(\()p Fp(z)t Fv(\))p
+eop end
+%%Page: 16 20
+TeXDict begin 16 19 bop 150 -116 a Fv(Chapter)30 b(3:)41
+b(Dra)m(wing)31 b(Segmen)m(ts)g(and)f(Scaling)1818 b(16)150
+299 y Fu(3.4)68 b(Scaling)45 b(co)t(ordinates)150 458
+y Fv(There)24 b(are)h(t)m(w)m(o)h(scale)g(factors)g(a)m(v)-5
+b(ailable,)28 b(the)d(unit)f(scale)i(factor)g(and)e(the)h(segmen)m(t)h
+(scale)g(factor.)39 b(The)150 568 y(o)m(v)m(erall)33
+b(scale)f(factor)g(is)f(the)g(pro)s(duct)e(of)i(these)g(t)m(w)m(o.)44
+b(There)30 b(are)h(absolute)h(and)e(relativ)m(e)j(v)m(ersions)e(of)150
+677 y(commands)f(to)h(c)m(hange)h(these)e(scale)i(factors.)275
+809 y(The)25 b(unit)g(scale)i(factor)f(is)g(normally)g(used)e(to)j
+(a\013ect)g(global)g(scale)g(c)m(hanges.)40 b(Changes)25
+b(to)i(the)e(unit)150 919 y(scale)38 b(factor)g(remains)f(lo)s(cal)h
+(to)g(a)g(segmen)m(t,)i(but)c(propagate)i(to)g(inferior)f(segmen)m(ts.)
+61 b(The)37 b(default)150 1029 y(v)-5 b(alue)31 b(is)f(unit)m(y)-8
+b(.)275 1160 y(The)31 b(segmen)m(t)j(scale)f(factor)g(is)g(used)e(for)h
+(lo)s(cal)h(scale)h(c)m(hanges.)47 b(It)33 b(remains)f(lo)s(cal)h(to)g
+(a)g(segmen)m(t.)150 1270 y(The)38 b(segmen)m(t)h(scale)h(factor)f(is)f
+(reset)h(to)g(unit)m(y)f(on)g(en)m(try)h(in)m(to)g(eac)m(h)g(segmen)m
+(t.)66 b(This)37 b(means)h(that)150 1380 y(c)m(hanges)31
+b(to)g(the)g(segmen)m(t)h(scale)f(factor)h(do)e(not)g(propagate)i(to)f
+(inferior)f(segmen)m(ts.)150 1534 y Fs(\\setunitscale)d
+Fo(scale)630 1643 y Fv(Set)f(the)g(unit)f(scaling)i(to)f
+Fj(scale)p Fv(.)40 b(The)25 b(argumen)m(t)h Fj(scale)32
+b Fv(is)26 b(a)g(real)g(n)m(um)m(b)s(er)f(whic)m(h)g(is)h(used)630
+1753 y(to)k(scale)h(co)s(ordinate)g(v)-5 b(alues.)41
+b(The)29 b(o)m(v)m(erall)j(scaling)e(factor)h(is)f(the)f(pro)s(duct)g
+(of)h(the)f(unit)630 1863 y(scale)j(factor)f(and)f(the)g(segmen)m(t)i
+(scale)g(factor.)150 2017 y Fs(\\relunitscale)27 b Fo(value)630
+2126 y Fv(Adjust)39 b(the)i(unit)f(scale)h(factor)g(b)m(y)f(m)m
+(ultiplying)h(b)m(y)f Fj(v)-5 b(alue)p Fv(.)71 b(This)40
+b(has)g(the)g(e\013ect)i(of)630 2236 y(m)m(ultiplying)h(the)g(o)m(v)m
+(erall)i(scale)e(factor)h(b)m(y)e(the)h(same)g(factor.)78
+b(The)42 b(o)m(v)m(erall)j(scaling)630 2346 y(factor)31
+b(is)g(the)f(pro)s(duct)f(of)i(the)g(unit)f(scale)h(factor)h(and)d(the)
+i(segmen)m(t)g(scale)h(factor.)150 2500 y Fs(\\setsegscale)27
+b Fo(scale)630 2609 y Fv(Set)39 b(the)g(segmen)m(t)h(scale)h(factor.)67
+b(The)39 b(argumen)m(t)g Fj(scale)46 b Fv(is)39 b(a)g(real)h(n)m(um)m
+(b)s(er)d(whic)m(h)i(is)630 2719 y(used)33 b(to)i(scale)h(co)s
+(ordinate)e(v)-5 b(alues.)53 b(The)33 b(o)m(v)m(erall)k(scale)e(factor)
+g(is)f(the)h(pro)s(duct)d(of)j(the)630 2829 y(unit)30
+b(scale)i(factor)f(and)f(the)g(segmen)m(t)i(scale)f(factor.)150
+2983 y Fs(\\relsegscale)c Fo(value)630 3092 y Fv(Adjust)36
+b(the)h(segmen)m(t)h(scale)h(factor)e(b)m(y)g(m)m(ultiplying)h(b)m(y)f
+Fj(v)-5 b(alue)p Fv(.)60 b(This)37 b(has)f(the)h(e\013ect)630
+3202 y(of)c(m)m(ultiplying)h(the)f(curren)m(t)g(o)m(v)m(erall)i(scale)f
+(factor)g(b)m(y)f(the)g(same)h(factor.)49 b(The)33 b(o)m(v)m(erall)630
+3312 y(scaling)23 b(factor)g(is)f(the)h(pro)s(duct)e(of)h(the)g(unit)g
+(scale)h(factor)g(and)f(the)g(segmen)m(t)h(scale)h(factor.)275
+3466 y(In)40 b(addition)h(to)h(the)f(unit)g(scale)h(factor)g(and)e(the)
+i(segmen)m(t)g(scale)g(factor,)j(the)c(scaling)h(can)g(b)s(e)150
+3575 y(con)m(trolled)h(b)m(y)e(the)g(c)m(hoice)i(of)f(dra)m(wing)f
+(units)f(with)h(the)h(command)f Fs(\\drawdim)e Fv(\(see)j(Section)g
+(2.4)150 3685 y([Co)s(ordinate)31 b(sp)s(eci\014cation],)g(page)h(5\).)
+150 3839 y Fs(\\drawdim)c(cm)i(\\setunitscale)d(2.54)630
+3949 y Fv(Set)44 b(the)g(units)g(to)h(cen)m(timetres)g(scaled)g(b)m(y)f
+(2.54.)83 b(T)-8 b(ogether)45 b(these)g(commands)f(are)630
+4058 y(e\013ectiv)m(ely)33 b(the)e(same)g(as)f Fs(\\drawdim)e(in)p
+Fv(.)275 4212 y(The)j(segmen)m(t)i(scale)g(can)f(b)s(e)f(used)g(to)h
+(allo)m(w)h(scale)g(c)m(hanges)g(in)e(segmen)m(ts)i(so)f(that)g(v)-5
+b(alues)32 b(are)g(in)150 4322 y(more)g(con)m(v)m(enien)m(t)h(units.)44
+b(F)-8 b(or)32 b(example)g(supp)s(ose)e(dimensions)h(in)g(a)h(segmen)m
+(t)g(are)g(m)m(ultiples)g(of)g(one)150 4432 y(third)h(of)h(an)f(inc)m
+(h.)51 b(The)33 b(segmen)m(t)i(scale)g(can)f(b)s(e)f(set)h(once)g(to)h
+(mak)m(e)g(1)f(dra)m(wing)f(unit)g(equal)h(0.3333)150
+4541 y(inc)m(hes.)41 b(F)-8 b(rom)31 b(that)g(p)s(oin)m(t)f(on,)h(co)s
+(ordinates)g(can)g(b)s(e)e(sp)s(eci\014ed)h(with)g(in)m(teger)i(v)-5
+b(alues.)275 4673 y(The)26 b(follo)m(wing)j(example)f(de\014nes)f(a)h
+(macro)g(to)g(dra)m(w)f(a)h(rectangular)g(b)s(o)m(x)f(whic)m(h)g(is)h
+(t)m(wice)h(as)e(wide)150 4783 y(as)k(it)g(is)f(high.)40
+b(The)30 b(width)g(is)g(sp)s(eci\014ed)g(as)g(an)h(argumen)m(t.)390
+4915 y Fs(\\def\\mybox)45 b(#1{\\bsegment)1154 5024 y(\\setsegscale)f
+(#1)1154 5134 y(\\lvec)i(\(0)h(+0.25\))f(\\lvec)h(\(1)g(+0.25\))f
+(\\lvec)g(\(1)h(-0.25\))1154 5243 y(\\lvec)f(\(0)h(-0.25\))f(\\lvec)h
+(\(0)g(0\))1058 5353 y(\\esegment})p eop end
+%%Page: 17 21
+TeXDict begin 17 20 bop 150 -116 a Fv(Chapter)30 b(3:)41
+b(Dra)m(wing)31 b(Segmen)m(ts)g(and)f(Scaling)1818 b(17)150
+299 y Fu(3.5)68 b(Dra)l(wing)46 b(size)150 458 y Fv(The)20
+b(e\013ectiv)m(e)j(size)e(of)f(the)h(dra)m(wing)f(is)g(determined)g(b)m
+(y)h(the)f(maxim)m(um)g(excursions)g(of)h(the)f(co)s(ordinates)150
+568 y(supplied)28 b(to)i(T)669 587 y(E)719 568 y(Xdra)m(w)f(commands.)
+40 b(The)29 b(minim)m(um)f(and)h(maxim)m(um)g(scaled)h
+Fj(x)36 b Fv(and)28 b Fj(y)37 b Fv(co)s(ordinates)150
+677 y(are)d(tallied.)53 b(Note)35 b(that)g Fs(\\move)d
+Fv(commands)i(con)m(tribute)g(to)h(the)f(determination)h(of)f(the)g
+(calculated)150 787 y(size)h(of)e(the)h(dra)m(wing,)h(ev)m(en)f(though)
+g(they)f(do)h(not)g(generate)h(visible)f(lines.)51 b(The)33
+b(circle)i(and)e(ellipse)150 897 y(commands)41 b(add)g(a)g(comp)s
+(ensation)h(for)f(the)h(radii)f(of)h(circles)g(and)f(ellipses.)74
+b(The)41 b(\014nal)g(T)3437 916 y(E)3487 897 y(Xdra)m(w)150
+1006 y(dra)m(wing)27 b(is)f(placed)i(in)e(a)h(T)1085
+1026 y(E)1135 1006 y(X)g(b)s(o)m(x)g(with)g(lo)m(w)m(er)h(lefthand)e
+(corner)h(corresp)s(onding)f(to)h Fs(\()p Fj(x)6 b Fv(-min)27
+b Fj(y)8 b Fv(-min)p Fs(\))150 1116 y Fv(and)30 b(upp)s(er)e(righ)m
+(thand)i(corner)g(at)h Fs(\()p Fj(x)6 b Fv(-max)31 b
+Fj(y)8 b Fv(-max)p Fs(\))p Fv(.)275 1250 y(T)-8 b(ext)36
+b(generated)i(b)m(y)e Fs(\\htext)p Fv(,)g Fs(\\vtext)e
+Fv(or)i Fs(\\rtext)f Fv(can)h(spill)g(outside)h(the)f(b)s(o)m(x)g(as)g
+(determined)150 1360 y(ab)s(o)m(v)m(e.)67 b(Only)38 b(the)h(text)h
+(reference)f(p)s(oin)m(t)f(is)h(guaran)m(teed)h(to)f(b)s(e)g(in)f(the)h
+(dra)m(wing)f(b)s(o)m(x.)66 b(Arcs)39 b(can)150 1469
+y(also)j(spill)g(outside)f(the)h(dra)m(wing)f(b)s(o)m(x.)73
+b(Note)43 b(also)f(that)g(the)f(widths)g(of)g(lines,)k(and)40
+b(the)i(sizes)g(of)150 1579 y(arro)m(wheads)35 b(do)g(not)h(a\013ect)g
+(the)g(size)g(of)f(the)h(dra)m(wing.)55 b(The)35 b(calculated)i(size)f
+(of)f(the)h(dra)m(wing)f(will)150 1689 y(nev)m(er)30
+b(b)s(e)f(larger)h(than)g(the)f(actual)i(size)g(of)f(the)g(dra)m(wing.)
+40 b(In)29 b(extreme)h(cases)h(in)e(whic)m(h)g(text)i(or)f(lines)150
+1798 y(extend)e(far)g(outside)g(the)g(dra)m(wing,)g(extra)h
+Fs(\\move)d Fv(commands)i(should)f(b)s(e)g(used)g(to)i(establish)f(the)
+g(size)150 1908 y(of)j(the)f(dra)m(wing)g(so)h(that)g(the)f(T)1272
+1927 y(E)1322 1908 y(Xdra)m(w)h(b)s(o)m(x)f(includes)g(all)h(of)g(the)f
+(dra)m(wing.)275 2042 y(T)326 2062 y(E)376 2042 y(Xdra)m(w)37
+b(pro)m(vides)g(the)h Fs(\\drawbb)d Fv(command)i(to)h(dra)m(w)f(a)h(b)s
+(o)m(x)f(whic)m(h)g(indicates)i(the)e(e\013ectiv)m(e)150
+2152 y(size)25 b(of)g(the)g(dra)m(wing.)38 b(Whenev)m(er)25
+b Fs(\\drawbb)e Fv(is)h(in)m(v)m(ok)m(ed,)k(a)d(ruled)e(b)s(o)m(x)i(is)
+f(dra)m(wn)g(around)f(the)i(dra)m(wing)150 2262 y(as)k(it)g(has)f(b)s
+(een)g(sized)h(up)f(to)h(that)h(p)s(oin)m(t.)40 b(Normally)29
+b Fs(\\drawbb)e Fv(is)i(in)m(v)m(ok)m(ed)h(just)e(b)s(efore)g(the)h
+(end)f(of)h(a)150 2371 y(dra)m(wing)h(to)h(indicate)h(the)e(e\013ectiv)
+m(e)j(size)f(of)e(the)h(\014nal)f(dra)m(wing.)150 2531
+y Fs(\\drawbb)144 b Fv(Dra)m(w)30 b(a)h(ruled)e(b)s(o)m(x)g(around)g
+(the)h(e\013ectiv)m(e)j(size)d(of)g(a)h(dra)m(wing)e(pro)s(duced)f(b)m
+(y)i(T)3437 2550 y(E)3487 2531 y(Xdra)m(w)630 2640 y(commands.)150
+2881 y Fu(3.6)68 b(Initial)47 b(curren)l(t)d(p)t(osition)150
+3040 y Fv(The)34 b(\014rst)g(op)s(eration)h(in)f(a)h(dra)m(wing)f
+(should)g(b)s(e)g(a)h(mo)m(v)m(e)h(to)f(establish)g(the)g(curren)m(t)f
+(p)s(osition.)53 b(The)150 3150 y(curren)m(t)20 b(p)s(osition)h(can)g
+(b)s(e)e(established)i(explicitly)h(through)e(a)h Fs(\\move)e
+Fv(command)h(or)g(a)h(text)h(p)s(ositioning)150 3259
+y(command)41 b(suc)m(h)g(as)h Fs(\\htext)e Fv(with)h(a)g(co)s
+(ordinate.)75 b(Ho)m(w)m(ev)m(er,)46 b(if)c(an)f(attempt)h(is)g(made)f
+(to)h(use)g(a)150 3369 y(dra)m(wing)27 b(command)h(whic)m(h)f(needs)g
+(a)h(curren)m(t)g(p)s(osition)g(and)f(none)g(has)g(b)s(een)g
+(established,)i(T)3437 3389 y(E)3487 3369 y(Xdra)m(w)150
+3479 y(implicitly)45 b(sets)e(the)h(initial)h(curren)m(t)e(p)s(osition)
+g(to)i Fs(\(0)29 b(0\))p Fv(.)80 b(The)42 b(size)j(of)e(the)h(T)3067
+3498 y(E)3117 3479 y(Xdra)m(w)f(\014gure)g(is)150 3588
+y(normally)23 b(determined)f(from)f(the)i(sequence)g(of)f(co)s
+(ordinates)h(sp)s(eci\014ed,)h(but)e(will)g(include)g(the)h(implicit)
+150 3698 y(initial)32 b(p)s(osition)e(in)g(case)i(another)e(initial)i
+(p)s(osition)e(has)g(not)h(b)s(een)f(explicitly)i(sp)s(eci\014ed.)p
+eop end
+%%Page: 18 22
+TeXDict begin 18 21 bop 3659 -116 a Fv(18)150 299 y Fr(4)80
+b(Using)53 b(T)853 331 y(E)939 299 y(Xdra)l(w)g(with)g(LaT)2089
+331 y(E)2175 299 y(X)150 498 y Fv(The)43 b(LaT)503 518
+y(E)553 498 y(X)g(t)m(yp)s(esetting)i(system)f(uses)e(a)i(structured)e
+(approac)m(h)i(to)g(declaring)g(t)m(yp)s(esetting)h(en-)150
+608 y(vironmen)m(ts.)67 b(F)-8 b(or)40 b(LaT)1007 627
+y(E)1057 608 y(X2e,)j(the)c Fs(texdraw)e Fv(pac)m(k)-5
+b(age)41 b(de\014nes)d(the)i Fs(texdraw)d Fv(en)m(vironmen)m(t.)67
+b(The)150 717 y(T)201 737 y(E)251 717 y(Xdra)m(w)32 b(en)m(vironmen)m
+(t)h(is)g(started)g(with)f(a)h Fs(\\begin{texdraw})28
+b Fv(command)k(and)g(terminated)h(with)150 827 y(an)c
+Fs(\\end{texdraw})d Fv(command.)40 b(All)30 b(of)f(the)g(basic)h(T)2057
+847 y(E)2107 827 y(Xdra)m(w)f(commands)g(can)g(b)s(e)g(used)f(within)h
+(the)150 937 y Fs(texdraw)f Fv(en)m(vironmen)m(t.)275
+1064 y(As)i(an)g(example,)h(a)g(LaT)1145 1084 y(E)1195
+1064 y(X2e)h(v)-5 b(arian)m(t)31 b(of)g(an)f(earlier)h(example)g(can)g
+(b)s(e)f(constructed)g(as)h(follo)m(ws.)390 1192 y Fs
+(\\documentclass{article})390 1301 y(\\usepackage{texdraw})438
+1411 y(...)390 1521 y(\\begin{document})438 1630 y(...)390
+1740 y(\\newcommand{\\tbox}[1]{\045)533 1849 y(\\bsegment)629
+1959 y(\\lvec)46 b(\(0)h(+0.25\))189 b(\\lvec)47 b(\(0.75)f(+0.25\))629
+2068 y(\\lvec)g(\(0.75)g(-0.25\))g(\\lvec)h(\(0)g(-0.25\))f(\\lvec)g
+(\(0)i(0\))629 2178 y(\\textref)d(h:C)i(v:C)g(\\htext)f(\(0.375)g
+(0\){#1})629 2288 y(\\savepos)f(\(0.75)i(0\)\(*ex)f(*ey\))533
+2397 y(\\esegment)533 2507 y(\\move)h(\(*ex)f(*ey\)})390
+2616 y(\\begin{center})390 2726 y(\\begin{texdraw})485
+2836 y(\\ravec)h(\(1)g(0\))g(\\tbox{$H\(z\)$})d(\\ravec)i(\(1)h(0\))390
+2945 y(\\end{texdraw})390 3055 y(\\end{center})438 3164
+y(...)390 3274 y(\\end{document})275 3401 y Fv(This)28
+b(example)i(illustrates)g(the)f(use)g(of)g(the)g(LaT)1976
+3421 y(E)2026 3401 y(X)g(command)g Fs(\\newcommand)d
+Fv(as)k(an)f(alternativ)m(e)150 3511 y(to)24 b(the)g(plain)g(T)676
+3531 y(E)726 3511 y(X)g(command)f Fs(\\def)p Fv(.)37
+b(Instead)24 b(of)g(the)g(basic)g(T)2313 3531 y(E)2363
+3511 y(Xdra)m(w)f(command)h Fs(\\centertexdraw)p Fv(,)150
+3621 y(a)33 b(nested)g(com)m(bination)h(of)f(the)g(LaT)1452
+3640 y(E)1502 3621 y(X)g(cen)m(tering)h(en)m(vironmen)m(t)g(and)e(the)h
+(T)2912 3640 y(E)2962 3621 y(Xdra)m(w)f(en)m(vironmen)m(t)150
+3730 y(is)e(used.)150 3957 y Fu(4.1)68 b(P)l(ostScript)45
+b(prin)l(ter)h(driv)l(ers)150 4117 y Fv(The)33 b Fs(texdraw)e
+Fv(pac)m(k)-5 b(age)35 b(uses)e(the)g(prin)m(ter)g(driv)m(er)g(in)m
+(terface)i(pro)m(vided)e(b)m(y)g(the)g(standard)g(LaT)3546
+4136 y(E)3596 4117 y(X2e)150 4226 y Fs(graphics)18 b
+Fv(pac)m(k)-5 b(age.)40 b(An)m(y)20 b(options)h(to)g(the)f
+Fs(texdraw)f Fv(pac)m(k)-5 b(age)22 b(are)f(passed)f(to)h(the)g
+Fs(graphics)d Fv(pac)m(k)-5 b(age.)150 4336 y(Sp)s(eci\014cally)d(,)35
+b(the)e(name)f(of)i(the)f(P)m(ostScript)g(driv)m(er)g(to)g(b)s(e)f
+(used)g(can)i(b)s(e)e(sp)s(eci\014ed)g(as)h(an)g(option)g(to)150
+4445 y(the)41 b Fs(texdraw)f Fv(pac)m(k)-5 b(age.)75
+b(With)42 b(no)f(explicit)i(prin)m(ter)e(driv)m(er)g(option,)j(the)e
+(default)f(prin)m(ter)g(driv)m(er)150 4555 y(asso)s(ciated)32
+b(with)e(the)g Fs(graphics)f Fv(pac)m(k)-5 b(age)32 b(is)e(used.)275
+4682 y(The)41 b Fs(texdraw)g Fv(pac)m(k)-5 b(age)44 b(can)f(b)s(e)f
+(used)g(with)g(an)m(y)g(of)h(the)g(prin)m(ter)f(driv)m(ers)g(supp)s
+(orted)e(b)m(y)j(the)150 4792 y Fs(graphics)32 b Fv(pac)m(k)-5
+b(age)36 b(that)f(allo)m(w)g(for)f(the)g(imp)s(ortation)h(of)f(P)m
+(ostScript)h(graphics)f(\014les,)h(viz.,)h Fs(dvips)p
+Fv(,)150 4902 y Fs(xdvi)p Fv(,)69 b Fs(dvi2ps)p Fv(,)f
+Fs(dvialw)p Fv(,)g Fs(dvilaser)p Fv(,)g Fs(dvipsone)p
+Fv(,)g Fs(dviwindo)p Fv(,)f Fs(dvitops)p Fv(,)h Fs(oztex)p
+Fv(,)h Fs(psprint)p Fv(,)150 5011 y Fs(textures)p Fv(,)46
+b Fs(pctexps)p Fv(,)h(and)d Fs(pctexwin)p Fv(.)81 b(Not)46
+b(all)f(of)g(these)g(driv)m(ers)f(supp)s(ort)f(the)i(text)h(rotation)
+150 5121 y(needed)32 b(for)g(the)h(T)806 5140 y(E)856
+5121 y(Xdra)m(w)f(commands)h Fs(\\vtext)d Fv(and)i Fs(\\rtext)p
+Fv(.)46 b(Of)31 b(the)i(driv)m(ers)f(listed)h(ab)s(o)m(v)m(e,)i(only)
+150 5230 y(the)42 b(follo)m(wing)h(supp)s(ort)c(supp)s(ort)h(text)j
+(rotation:)64 b Fs(dvips)p Fv(,)43 b Fs(xdvi)p Fv(,)h
+Fs(dvi2ps)p Fv(,)e Fs(dvitops)p Fv(,)h Fs(textures)p
+Fv(,)150 5340 y(and)30 b Fs(pctexps)p Fv(.)p eop end
+%%Page: 19 23
+TeXDict begin 19 22 bop 3659 -116 a Fv(19)150 299 y Fr(5)80
+b(More)54 b(Details)150 554 y Fv(The)30 b(\014rst)g(part)g(of)h(this)g
+(c)m(hapter)g(o\013ers)g(some)g(suggestions)h(for)e(strategies)i(to)g
+(isolate)g(errors)e(in)h(T)3632 574 y(E)3682 554 y(X)150
+664 y(and)26 b(T)374 684 y(E)424 664 y(Xdra)m(w)g(input.)39
+b(The)26 b(second)g(part)g(of)h(this)f(c)m(hapter)i(discusses)d
+(implemen)m(tational)k(issues.)39 b(An)150 774 y(a)m(w)m(areness)31
+b(of)g(these)g(issues)f(is)g(useful)g(if)g(T)1647 793
+y(E)1697 774 y(Xdra)m(w)g(is)h(to)g(b)s(e)f(extended.)150
+1025 y Fu(5.1)68 b(Errors)45 b(while)h(using)f(T)1584
+1052 y(E)1655 1025 y(Xdra)l(w)150 1184 y Fv(T)201 1204
+y(E)251 1184 y(X)25 b(input)g(is)g(notoriously)h(di\016cult)f(to)h
+(debug.)39 b(If)24 b(T)2008 1204 y(E)2058 1184 y(X)i(rep)s(orts)e
+(errors,)i(so)g(m)m(uc)m(h)f(the)h(b)s(etter.)39 b(If)25
+b(the)150 1294 y(cause)g(is)f(not)h(immediately)h(ob)m(vious,)g
+(consider)e(using)g(a)h(binary)e(searc)m(h)i(strategy)-8
+b(,)28 b(remo)m(ving)d(sections)150 1404 y(of)g(co)s(de)f(with)g(the)h
+(premature)f(insertion)g(of)h(the)f Fs(\\bye)g Fv(\(or)g
+Fs(\\end{document})d Fv(for)j(LaT)3188 1423 y(E)3238
+1404 y(X\))h(command)150 1513 y(\(with)37 b(the)h(appropriate)f
+(closing)h(of)f(an)m(y)h(op)s(en)e(groups)h(and)f(the)i(lik)m(e\).)62
+b(Other)37 b(strategies)i(include)150 1623 y(the)26 b(insertion)f(of)h
+Fs(\\message{I)i(am)h(here})24 b Fv(at)j(appropriate)e(places.)40
+b(T)-8 b(ry)25 b(using)g Fs(\\tracingmacros=1)p Fv(.)150
+1732 y(Man)m(y)e(problems)f(turn)g(out)h(to)g(b)s(e)f(due)g(to)i(an)e
+(incorrect)i(n)m(um)m(b)s(er)d(of)i(macro)g(argumen)m(ts)g(or)g
+(incorrectly)150 1842 y(delimited)38 b(macro)g(argumen)m(ts.)62
+b(The)36 b Fs(\\tracingmacros=1)d Fv(option)38 b(writes)f(the)h(macro)g
+(argumen)m(ts)150 1952 y(and)30 b(macro)h(expansions)f(to)h(the)g(T)
+1377 1971 y(E)1427 1952 y(X)f(log)h(\014le.)275 2093
+y(Certain)c(errors)f(ma)m(y)i(not)f(manifest)h(themselv)m(es)g(un)m
+(til)g(w)m(ell)g(after)f(the)h(o\013ending)f(command.)39
+b(F)-8 b(or)150 2203 y(instance,)46 b(if)c(a)h(closing)g(paren)m
+(thesis)g(is)f(missing)g(from)g(a)g(T)2327 2222 y(E)2377
+2203 y(Xdra)m(w)g(co)s(ordinate,)k(T)3220 2222 y(E)3270
+2203 y(X)d(con)m(tin)m(ues)150 2312 y(searc)m(hing)31
+b(for)e(the)h(paren)m(thesis.)40 b(If)30 b(one)g(is)f(found,)g(p)s
+(erhaps)f(man)m(y)i(lines)g(later,)h(the)f(T)3215 2332
+y(E)3265 2312 y(Xdra)m(w)f(error)150 2422 y(message)i
+Fs(invalid)e(coordinate)e Fv(will)k(b)s(e)f(prin)m(ted)g(at)h(this)f
+(later)i(p)s(oin)m(t.)275 2564 y(All)23 b(input)f(in)h(the)h(T)951
+2583 y(E)1001 2564 y(Xdra)m(w)e(en)m(vironmen)m(t)i(should)e(b)s(e)h
+(in)m(tended)g(for)g(in)m(terpretation)h(b)m(y)f(T)3437
+2583 y(E)3487 2564 y(Xdra)m(w)150 2673 y(commands.)44
+b(T)690 2693 y(E)740 2673 y(Xdra)m(w)31 b(places)h(text)h(inside)e(a)h
+(zero)g(size)g(b)s(o)m(x)g(\(the)g(text)g(itself)h(extends)e(outside)h
+(the)150 2783 y(b)s(o)m(x\).)47 b(Extraneous)32 b(input)f(manifests)i
+(itself)g(as)f(a)h(non-zero)g(size)g(T)2540 2802 y(E)2590
+2783 y(Xdra)m(w)f(text)i(b)s(o)m(x.)46 b(This)32 b(causes)150
+2892 y(the)f(T)358 2912 y(E)408 2892 y(Xdra)m(w)f(text)h(and)f(the)h(P)
+m(ostScript)g(graphics)g(to)g(b)s(e)f(displaced)g(from)g(one)h
+(another.)41 b(An)30 b(error)150 3002 y(message)k(is)f(issued)g(if)g(a)
+g(non-zero)h(width)e(T)1715 3022 y(E)1765 3002 y(Xdra)m(w)h(text)h(b)s
+(o)m(x)f(is)g(detected.)50 b(If)33 b(this)g(error)g(message)150
+3112 y(app)s(ears,)d(lo)s(ok)h(for)f(unin)m(tended)f(c)m(haracter)j
+(sequences)f(amongst)g(the)g(commands)f(to)h(T)3263 3131
+y(E)3313 3112 y(Xdra)m(w.)275 3253 y(Sev)m(eral)39 b(T)647
+3273 y(E)697 3253 y(Xdra)m(w)f(commands)g(pass)g(their)h(argumen)m(ts)f
+(\\ra)m(w")i(to)f(the)f(P)m(ostScript)h(\014le.)65 b(That)150
+3363 y(means)25 b(that)h(in)m(v)-5 b(alid)26 b(argumen)m(ts)g(can)g
+(generate)h(P)m(ostScript)f(errors)e(when)h(the)g(do)s(cumen)m(t)h(is)f
+(prin)m(ted.)150 3472 y(F)-8 b(or)42 b(instance)f(the)g(argumen)m(t)g
+(of)g(the)g Fs(\\setgray)e Fv(command)h(is)h(passed)f(straigh)m(t)i
+(through)e(to)i(the)150 3582 y(P)m(ostScript)36 b(\014le.)54
+b(If)35 b(this)g(argumen)m(t)g(is)h(non-n)m(umeric,)g(a)f(P)m
+(ostScript)h(error)e(results.)55 b(Not)36 b(all)g(P)m(ost-)150
+3692 y(Script)d(prin)m(ters)h(rep)s(ort)f(errors)h(bac)m(k)g(to)h(the)f
+(user.)51 b(The)33 b(prin)m(t)h(ma)m(y)g(just)g(stop)g(prematurely)-8
+b(.)51 b(One)150 3801 y(approac)m(h)35 b(to)h(debugging)f(is)g(to)h
+(use)f(a)g(P)m(ostScript)g(preview)m(er)h(on)f(a)g(w)m(orkstation.)56
+b(That)35 b(w)m(a)m(y)-8 b(,)38 b(one)150 3911 y(can)31
+b(determine)f(at)h(whic)m(h)f(p)s(oin)m(t)h(in)f(the)g(dra)m(wing)h
+(the)f(P)m(ostScript)h(error)f(o)s(ccurs.)150 4162 y
+Fu(5.2)68 b(Extending)46 b(T)1108 4189 y(E)1178 4162
+y(Xdra)l(w)150 4322 y Fv(T)201 4341 y(E)251 4322 y(Xdra)m(w)26
+b(is)g(implemen)m(ted)g(using)f(a)i(com)m(bination)g(of)f(T)2128
+4341 y(E)2178 4322 y(X)g(commands)g(and)f(P)m(ostScript)h(co)s(de.)40
+b(This)150 4431 y(section)29 b(discusses)e(some)h(of)g(the)g(implemen)m
+(tational)i(issues)d(as)h(they)g(relate)h(to)g(extending)f(T)3412
+4451 y(E)3462 4431 y(Xdra)m(w.)275 4573 y(T)326 4592
+y(E)376 4573 y(Xdra)m(w)38 b(as)i(implemen)m(ted,)h(o\013ers)f(a)f
+(basic)g(set)h(of)f(dra)m(wing)g(features.)67 b(These)39
+b(are)g(adequate)150 4682 y(for)44 b(certain)h(tasks)g(suc)m(h)f(as)h
+(pro)s(ducing)e(blo)s(c)m(k)i(diagrams.)83 b(There)44
+b(are)g(di\013eren)m(t)h(approac)m(hes)g(to)150 4792
+y(extending)28 b(T)615 4812 y(E)665 4792 y(Xdra)m(w)g(to)g(include)f
+(other)h(functions.)40 b(In)27 b(some)h(cases,)h(the)f(desired)f
+(functionalit)m(y)j(can)150 4902 y(b)s(e)21 b(ac)m(hiev)m(ed)j(b)m(y)d
+(writing)h(a)g(T)1163 4921 y(E)1213 4902 y(X)g(macro)g(whic)m(h)g
+(builds)e(on)i(top)g(of)g(the)g(existing)g(T)2970 4921
+y(E)3021 4902 y(Xdra)m(w)f(commands.)150 5011 y(As)26
+b(these)g(extensions)g(b)s(ecome)g(more)g(complex,)i(the)d(limitations)
+j(of)e(T)2615 5031 y(E)2665 5011 y(X)g(for)f(computations)i(b)s(ecome)
+150 5121 y(increasingly)e(eviden)m(t.)39 b(In)23 b(other)h(cases,)i
+(access)f(to)f(di\013eren)m(t)h(features)f(of)f(P)m(ostScript)i(is)e
+(desired.)38 b(The)150 5230 y(appropriate)32 b(approac)m(h)g(w)m(ould)f
+(b)s(e)h(to)g(write)g(new)f(P)m(ostScript)i(pro)s(cedures)d(whic)m(h)i
+(can)g(b)s(e)f(accessed)150 5340 y(b)m(y)f(T)327 5360
+y(E)377 5340 y(X)h(macros.)p eop end
+%%Page: 20 24
+TeXDict begin 20 23 bop 150 -116 a Fv(Chapter)30 b(5:)41
+b(More)31 b(Details)2534 b(20)275 299 y(Included)36 b(with)i(T)919
+318 y(E)969 299 y(Xdra)m(w)g(is)g(a)g(set)g(of)g(macros)h(for)f
+(directly)g(accessing)i(P)m(ostScript)e(functions.)150
+408 y(These)30 b(are)h(describ)s(ed)e(in)h(an)g(app)s(endix)f(\(see)j
+(App)s(endix)c(A)j([P)m(ostScript)g(Commands],)f(page)h(23\).)275
+553 y(T)326 572 y(E)376 553 y(Xdra)m(w)e(also)i(comes)g(with)f(a)g(to)s
+(olb)s(o)m(x)h(of)f(routines)g(for)g(handling)f(m)m(uc)m(h)h(of)h(the)f
+(user)f(in)m(terface,)150 662 y(con)m(v)m(erting)j(b)s(et)m(w)m(een)f
+(di\013eren)m(t)g(co)s(ordinate)g(represen)m(tations)h(and)e(the)g(lik)
+m(e.)42 b(The)30 b(macros)h(for)f(co)s(or-)150 772 y(dinate)k(deco)s
+(ding)g(and)f(for)g(computations)i(in)m(v)m(olving)g(co)s(ordinates)g
+(are)f(describ)s(ed)e(in)i(an)f(app)s(endix)150 881 y(\(see)e(App)s
+(endix)e(B)i([T)920 901 y(E)970 881 y(Xdra)m(w)f(T)-8
+b(o)s(olb)s(o)m(x],)32 b(page)f(25\).)150 1090 y Ff(5.2.1)63
+b(Scaling)150 1237 y Fv(The)42 b(scaling)h(commands)e(pro)m(vided)h(in)
+g(T)1675 1257 y(E)1725 1237 y(Xdra)m(w)g(are)g(designed)g(to)h
+(a\013ect)h(only)e(the)g(co)s(ordinate)150 1347 y(v)-5
+b(alues)39 b(sp)s(eci\014ed)f(in)g(commands.)64 b(F)-8
+b(or)40 b(instance,)h(c)m(hanging)e(the)g Fs(\\setunitscale)c
+Fv(v)-5 b(alue)39 b(c)m(hanges)150 1456 y(the)31 b(in)m(terpretation)h
+(of)f(the)g(co)s(ordinate)h(in)e(an)h Fs(\\avec)e(\()p
+Fo(x)g(y)p Fs(\))i Fv(command,)f(but)g(do)s(es)h(not)g(c)m(hange)h(the)
+150 1566 y(line)42 b(width)g(or)g(arro)m(whead)g(sizes)h(in)e
+(e\013ect.)78 b(None)42 b(of)g(the)h(T)2409 1585 y(E)2459
+1566 y(Xdra)m(w)f(scaling)h(commands)e(a\013ect)150 1676
+y(the)36 b(size)g(of)g(T)649 1695 y(E)699 1676 y(X)g(text)h(pro)s
+(duced)d(b)m(y)-8 b(,)37 b(for)e(instance,)j(the)e Fs(\\htext)e
+Fv(command.)56 b(Scale)37 b(c)m(hanges)g(will)150 1785
+y(ho)m(w)m(ev)m(er)32 b(a\013ect)g(the)e(p)s(ositioning)h(of)f(text)i
+(for)e(subsequen)m(t)g(commands.)275 1929 y(The)k(line)h(parameters)h
+(are)f(c)m(hanged)h(only)f(if)g(the)g(corresp)s(onding)f(commands)h(to)
+h(c)m(hange)g(them)150 2039 y(are)41 b(issued.)71 b(If)40
+b(the)h Fs(\\linewd)d Fv(command)i(is)h(giv)m(en,)k(the)40
+b(curren)m(t)h(co)s(ordinate)g(scaling)h(is)e(used)g(to)150
+2148 y(determine)32 b(the)g(line)g(width.)43 b(T)-8 b(o)32
+b(ac)m(hiev)m(e)i(a)e(b)s(eha)m(viour)f(more)h(lik)m(e)h(a)f(global)h
+(scaling,)g(whenev)m(er)f(the)150 2258 y(scale)g(factor)f(is)f(c)m
+(hanged,)i(the)e(line)h(parameters)g(should)e(b)s(e)h(set)h(again.)150
+2467 y Ff(5.2.2)63 b(Resolution)150 2614 y Fv(T)201 2633
+y(E)251 2614 y(Xdra)m(w)37 b(scales)h(co)s(ordinates)g(b)s(efore)e
+(passing)h(them)g(to)g(P)m(ostScript.)61 b(Keeping)37
+b(trac)m(k)i(of)e(the)g(co-)150 2723 y(ordinate)j(scaling)g(is)f
+(necessary)-8 b(,)42 b(in)d(an)m(y)g(ev)m(en)m(t,)k(to)d(allo)m(w)h(T)
+2342 2743 y(E)2392 2723 y(Xdra)m(w)e(to)g(compute)h(the)f(maxim)m(um)
+150 2833 y(excursions)33 b(of)g(the)g(co)s(ordinates.)50
+b(T)1434 2853 y(E)1484 2833 y(Xdra)m(w)33 b(uses)f(pixel)i(units)e(in)h
+(its)g(P)m(ostScript)h(co)s(de.)49 b(One)33 b(pixel)150
+2943 y(unit)26 b(is)g(equal)h(to)f(1/300)j(of)d(an)g(inc)m(h.)39
+b(T)1521 2962 y(E)1571 2943 y(Xdra)m(w)26 b(issues)g(P)m(ostScript)h
+(commands)f(with)f(in)m(teger)j(v)-5 b(alued)150 3052
+y(pixel)29 b(co)s(ordinates.)41 b(This)28 b(sets)h(the)g(p)s
+(ositioning)h(resolution)f(for)g(T)2497 3072 y(E)2547
+3052 y(Xdra)m(w.)40 b(The)28 b(passing)h(of)g(in)m(teger)150
+3162 y(v)-5 b(alued)34 b(co)s(ordinates)i(whic)m(h)e(corresp)s(ond)f
+(to)i(the)g(device)g(resolution)g(k)m(eeps)g(lines)f(aligned)i(with)e
+(the)150 3271 y(device)d(grid;)g(parallel)g(lines)g(of)f(the)h(same)g
+(width)e(will)i(b)s(e)f(rendered)f(with)h(the)g(same)h(width.)275
+3415 y(The)26 b(p)s(osition)h(sa)m(ving)h(mec)m(hanism)f(in)g(T)1694
+3435 y(E)1744 3415 y(Xdra)m(w)g(\(see)g(Section)h(3.3)g([Sa)m(ving)g(p)
+s(ositions],)g(page)g(15\))150 3525 y(asso)s(ciates)k(the)f(pixel)f(co)
+s(ordinates)i(of)e(a)h(p)s(osition)f(with)g(the)h(sp)s(eci\014ed)f
+(name.)275 3669 y(T)326 3689 y(E)376 3669 y(Xdra)m(w)21
+b(uses)g(the)h(limited)h(real)f(n)m(um)m(b)s(er)e(represen)m(tation)j
+(pro)m(vided)f(b)m(y)f(T)2902 3689 y(E)2952 3669 y(X.)38
+b(These)22 b(op)s(erations)150 3779 y(are)h(based)f(on)g(the)h
+(represen)m(tation)h(of)e(dimensions)g(as)h(real-v)-5
+b(alued)23 b(n)m(um)m(b)s(ers)f(of)g(p)s(oin)m(ts.)38
+b(In)m(ternally)23 b(in)150 3888 y(T)201 3908 y(E)251
+3888 y(X,)28 b(dimensions)f(are)g(stored)g(32-bit)i(v)-5
+b(alues,)28 b(normalized)g(so)f(that)h(1)f(pt)g(corresp)s(onds)f(to)i
+(the)f(scaled)150 3998 y(p)s(oin)m(t)k(\(sp\))g(v)-5
+b(alue)31 b(of)g(65536.)44 b(Dimensions)31 b(with)f(magnitudes)h(b)s
+(et)m(w)m(een)g(0.000015)j(pt)d(and)f(32767)j(pt)150
+4107 y(can)25 b(b)s(e)f(represen)m(ted.)39 b(This)24
+b(is)g(also)i(the)f(dynamic)f(range)h(of)g(the)g(T)2463
+4127 y(E)2513 4107 y(Xdra)m(w)f(pixel)h(co)s(ordinates)g(passed)150
+4217 y(to)d(P)m(ostScript.)38 b(T)779 4237 y(E)829 4217
+y(Xdra)m(w)21 b(m)m(ust)g(con)m(v)m(ert)i(from)e(user)g(supplied)e(co)s
+(ordinates)j(using)f(the)h(scaling)g(factor)150 4327
+y(\(whic)m(h)31 b(itself)g(consists)g(of)g(t)m(w)m(o)h(comp)s(onen)m
+(ts,)f(the)f(unit)g(scale)i(and)e(the)h(segmen)m(t)h(scale\))g(and)e(a)
+h(pixel)150 4436 y(con)m(v)m(ersion)42 b(factor.)72 b(The)40
+b(use)g(of)g(limited)i(precision)e(real)h(n)m(um)m(b)s(ers)e(in)h
+(these)h(computations)h(can)150 4546 y(cause)31 b(accum)m(ulation)h(of)
+f(error)f(when)f(relativ)m(e)j(scaling)g(is)e(used)g(rep)s(eatedly)-8
+b(.)150 4755 y Ff(5.2.3)63 b(T)-10 b(ext)40 b(placemen)m(t)150
+4902 y Fv(While)28 b(in)f(the)g(T)719 4921 y(E)769 4902
+y(Xdra)m(w)g(en)m(vironmen)m(t,)h(T)1655 4921 y(E)1705
+4902 y(X)f(text)h(is)f(placed)h(in)f(a)g(T)2580 4921
+y(E)2630 4902 y(X)g(b)s(o)m(x)g(while)g(P)m(ostScript)h(co)s(de)150
+5011 y(is)i(written)g(to)g(the)g(in)m(termediate)i(\014le.)41
+b(A)m(t)30 b(the)g(end)g(of)g(the)g(T)2303 5031 y(E)2353
+5011 y(Xdra)m(w)f(en)m(vironmen)m(t,)i(the)f(size)h(of)f(the)150
+5121 y(dra)m(wing)d(is)g(determined.)39 b(A)27 b(T)1236
+5140 y(E)1286 5121 y(X)g(b)s(o)m(x)g(of)h(this)e(size)i(is)f(created.)
+41 b(The)27 b(T)2671 5140 y(E)2721 5121 y(X)g Fs(\\special)e
+Fv(mec)m(hanism)i(is)150 5230 y(used)g(to)i(instruct)f(the)g(P)m
+(ostScript)g(driv)m(er)g(program)g(to)h(p)s(osition)f(the)g(P)m
+(ostScript)g(dra)m(wing)g(from)g(the)150 5340 y(in)m(termediate)e
+(\014le)f(in)f(this)g(area.)40 b(Next,)27 b(the)e(text)g(generated)h(b)
+m(y)e(T)2472 5360 y(E)2522 5340 y(Xdra)m(w)g(is)h(p)s(ositioned)g(and)e
+(placed)p eop end
+%%Page: 21 25
+TeXDict begin 21 24 bop 150 -116 a Fv(Chapter)30 b(5:)41
+b(More)31 b(Details)2534 b(21)150 299 y(in)33 b(the)g(b)s(o)m(x.)49
+b(Note)35 b(that)f(when)e(the)h(do)s(cumen)m(t)g(is)g(prin)m(ted,)h
+(the)f(P)m(ostScript)h(dra)m(wing)f(is)g(placed)h(on)150
+408 y(the)d(page)g(b)s(efore)f(the)g(T)999 428 y(E)1049
+408 y(X)h(text;)g(T)1413 428 y(E)1463 408 y(X)g(text)g(will)g(app)s
+(ear)f(on)g(top)h(of)f(graphics.)275 543 y(The)c(rotation)i(of)f(text)h
+(is)f(carried)g(out)h(with)e(in-line)i(P)m(ostScript)f(co)s(de)g(whic)m
+(h)g(do)s(es)g(not)g(app)s(ear)f(in)150 653 y(the)h(in)m(termediate)h
+(P)m(ostScript)g(\014le.)39 b(This)26 b(co)s(de)h(is)g(sen)m(t)g(to)h
+(the)f(P)m(ostScript)g(driv)m(er)g(with)f(a)h Fs(\\special)150
+762 y Fv(command.)40 b(This)28 b(P)m(ostScript)h(co)s(de)g(is)f(em)m(b)
+s(edded)g(in)g(the)h(dvi)f(\(device)i(indep)s(enden)m(t\))e(\014le)h
+(that)g(T)3632 782 y(E)3682 762 y(X)150 872 y(pro)s(duces.)150
+1071 y Ff(5.2.4)63 b(The)41 b(in)m(termediate)g(P)m(ostScript)f(\014le)
+150 1218 y Fv(The)28 b(in)m(termediate)h(P)m(ostScript)g(\014le)f
+(consists)h(of)f(a)g(header,)h(a)f(b)s(o)s(dy)f(and)g(a)i(trailer)f
+(follo)m(wing)i(Encap-)150 1328 y(sulated)35 b(P)m(ostScript)g(File)h
+(\(EPSF\))f(standards.)53 b(The)34 b(header)h(sets)g(up)f(P)m
+(ostScript)h(de\014nitions)g(and)150 1437 y(default)j(parameter)g(v)-5
+b(alues.)63 b(The)37 b(trailer)i(includes)e(the)h Fs(BoundingBox)c
+Fv(information)k(whic)m(h)g(giv)m(es)150 1547 y(the)32
+b(co)s(ordinates)g(in)f(default)h(P)m(ostScript)g(units)f(\(72)i(p)s
+(er)e(inc)m(h\))h(for)f(the)h(lo)m(w)m(er)h(lefthand)e(corner)h(and)150
+1656 y(the)k(upp)s(er)e(righ)m(thand)h(corner)h(of)g(the)g(dra)m(wing.)
+57 b(The)35 b(b)s(o)s(dy)f(of)i(the)g(in)m(termediate)h(P)m(ostScript)g
+(\014le)150 1766 y(con)m(tains)32 b(the)e(P)m(ostScript)h(commands)f
+(generated)h(b)m(y)g(T)2149 1785 y(E)2199 1766 y(Xdra)m(w.)275
+1900 y(Man)m(y)24 b(mo)m(v)m(es)g(in)g(T)937 1920 y(E)987
+1900 y(Xdra)m(w)f(serv)m(e)h(only)f(to)i(p)s(osition)e(text)i(or)e(to)h
+(reset)g(sa)m(v)m(ed)h(p)s(ositions.)38 b(T)3437 1920
+y(E)3487 1900 y(Xdra)m(w)150 2010 y(bu\013ers)31 b(mo)m(v)m(e)i
+(commands)f(in)f(order)h(to)g(b)s(e)g(able)g(to)h(collapse)g(runs)e(of)
+h(mo)m(v)m(es.)46 b(Only)32 b(the)g(last)g(mo)m(v)m(e)150
+2120 y(of)26 b(a)h(run)d(of)j(mo)m(v)m(es)g(is)f(actually)i(written)e
+(to)h(the)f(P)m(ostScript)h(\014le.)39 b(Ho)m(w)m(ev)m(er)29
+b(the)d(in)m(termediate)i(mo)m(v)m(es)150 2229 y(still)k(a\013ect)h
+(the)f(size)g(of)g(the)f(dra)m(wing.)44 b(The)31 b(expunging)g(of)g(mo)
+m(v)m(es)i(means)e(that)h(the)g(P)m(ostScript)g(\014le)150
+2339 y Fs(BoundingBox)21 b Fv(information)j(ma)m(y)g(indicate)h(a)f
+(dra)m(wing)g(size)g(larger)h(than)e(the)h(P)m(ostScript)g(commands)150
+2448 y(themselv)m(es)32 b(w)m(ould)e(w)m(arran)m(t.)275
+2583 y(Dra)m(wing)c(segmen)m(ts)h(in)e(T)1170 2602 y(E)1220
+2583 y(Xdra)m(w)g(sho)m(w)h(up)f(in)g(the)h(P)m(ostScript)g(\014le)g
+(as)g(sa)m(v)m(es)h(and)e(restores)h(of)g(the)150 2692
+y(P)m(ostScript)37 b(graphics)g(state.)60 b(Segmen)m(t)37
+b(starts)g(are)g(bu\013ered)f(and)f(only)i(written)g(out)f(if)h
+(necessary)-8 b(.)150 2802 y(This)36 b(w)m(a)m(y)i(\\empt)m(y")g
+(segmen)m(ts)g(do)f(not)g(generate)i(output)d(to)i(the)f(P)m(ostScript)
+g(\014le.)61 b(These)37 b(empt)m(y)150 2912 y(segmen)m(ts)29
+b(arise)g(if)f(a)g(segmen)m(t)h(con)m(tains)g(only)g(mo)m(v)m(es)g(and)
+e(text)i(commands.)40 b(The)28 b(mo)m(v)m(es)h(inside)f(the)150
+3021 y(segmen)m(t)h(are)g(not)f(needed)g(since)g(they)g(are)h(lo)s(cal)
+g(to)g(the)f(segmen)m(t,)i(and)e(the)g(text)h(commands)f(do)g(not)150
+3131 y(generate)k(output)e(to)h(the)g(P)m(ostScript)f(\014le.)275
+3265 y(If)42 b(T)429 3285 y(E)479 3265 y(Xdra)m(w)h(is)g(used)f(only)i
+(for)e(mo)m(v)m(es)j(and)d(text,)48 b(no)43 b(in)m(termediate)h(P)m
+(ostScript)g(\014le)f(will)h(b)s(e)150 3375 y(created.)150
+3616 y Fu(5.3)68 b(Ho)l(w)46 b(T)772 3642 y(E)842 3616
+y(Xdra)l(w)f(merges)h(graphics)f(and)g(text)150 3775
+y Fv(T)201 3795 y(E)251 3775 y(Xdra)m(w)30 b(creates)h(a)f(b)s(o)m(x)g
+(whic)m(h)g(is)f(the)h(same)h(size)f(as)h(the)f(graphic.)40
+b(The)30 b(prin)m(ter)f(driv)m(er)h(will)g(place)150
+3885 y(the)c(P)m(ostScript)g(graphic)g(in)m(to)g(this)g(space.)40
+b(An)m(y)25 b(T)1929 3904 y(E)1979 3885 y(X)h(text)h(generated)f(b)m(y)
+g(the)g(T)2992 3904 y(E)3042 3885 y(Xdra)m(w)f(commands)150
+3994 y(will)31 b(b)s(e)e(sup)s(erimp)s(osed)f(on)j(this)f(graphic.)275
+4129 y(The)d(LaT)612 4148 y(E)663 4129 y(X2e)i(fron)m(t-end)f(for)g(T)
+1425 4148 y(E)1475 4129 y(Xdra)m(w)h(is)f(enabled)g(b)m(y)g(including)g
+(the)h Fs(texdraw)d Fv(pac)m(k)-5 b(age.)42 b(The)150
+4238 y Fs(texdraw)37 b Fv(pac)m(k)-5 b(age)41 b(automatically)h(in)m(v)
+m(ok)m(es)f(the)f(standard)e Fs(graphics)f Fv(pac)m(k)-5
+b(age)41 b(distributed)d(with)150 4348 y(LaT)303 4368
+y(E)353 4348 y(X2e.)71 b(The)40 b Fs(graphics)e Fv(pac)m(k)-5
+b(age)42 b(has)e(supp)s(ort)f(for)h(a)g(n)m(um)m(b)s(er)f(of)i
+(di\013eren)m(t)f(prin)m(ter)g(driv)m(ers,)150 4458 y(including)26
+b(a)h(n)m(um)m(b)s(er)e(for)h(P)m(ostScript)h(prin)m(ters.)38
+b(An)m(y)27 b(options)f(to)i(the)e Fs(texdraw)e Fv(pac)m(k)-5
+b(age)29 b(are)d(passed)150 4567 y(on)31 b(to)h(the)g
+Fs(graphics)d Fv(pac)m(k)-5 b(age.)46 b(Suc)m(h)31 b(an)g(option)h(can)
+g(b)s(e)e(used)h(to)h(select)h(a)f(driv)m(er)f(other)h(than)f(the)150
+4677 y(default)g(one.)275 4811 y(Within)43 b(the)g Fs(graphics)e
+Fv(pac)m(k)-5 b(age,)48 b(the)43 b(driv)m(er)g(option)g(is)g(used)f(to)
+i(select)h(de\014nitions)d(for)h(the)150 4921 y(lo)m(w-lev)m(el)f
+(macros)e(whic)m(h)f(generate)i(the)f Fs(\\special)d
+Fv(commands)i(needed)g(to)h(request)f(insertion)h(of)150
+5030 y(a)i(graphics)g(\014le)g(and)f(to)i(rotate)g(text.)1539
+4997 y Fn(1)1652 5030 y Fv(T)1703 5050 y(E)1753 5030
+y(Xdra)m(w)f(uses)f(the)h(user-lev)m(el)h(macros)g(de\014ned)d(b)m(y)i
+(the)150 5140 y Fs(graphics)33 b Fv(pac)m(k)-5 b(age)38
+b(\(see)f(Section)f(4.1)h([P)m(ostScript)f(prin)m(ter)f(driv)m(ers],)i
+(page)g(18\).)57 b(When)36 b(not)g(used)p 150 5241 1200
+4 v 199 5308 a Fn(1)275 5340 y Fm(Not)25 b(all)i(P)n(ostScript)f(driv)n
+(ers)f(supp)r(ort)g(text)g(rotation.)p eop end
+%%Page: 22 26
+TeXDict begin 22 25 bop 3659 -116 a Fv(22)150 299 y(with)26
+b(the)h(LaT)659 318 y(E)709 299 y(X2e)h(fron)m(t-end,)f(T)1357
+318 y(E)1407 299 y(Xdra)m(w)f(de\014nes)g(v)m(ersions)h(of)f(these)h
+(macros)g(that)g(are)g(suitable)g(for)150 408 y(use)j(with)g(the)h
+Fs(dvips)e Fv(prin)m(ter)h(driv)m(er.)p eop end
+%%Page: 23 27
+TeXDict begin 23 26 bop 3659 -116 a Fv(23)150 299 y Fr(App)t(endix)52
+b(A)81 b(P)l(ostScript)51 b(Commands)150 572 y Fv(This)32
+b(app)s(endix)e(describ)s(es)i(a)h(set)g(of)f(macros)h(for)f(accessing)
+i(some)f(of)f(the)h(P)m(ostScript)g(builtin)f(func-)150
+681 y(tions.)38 b(Eac)m(h)22 b(of)g(these)g(macros)g(issues)f(a)h
+(single)g(P)m(ostScript)g(command.)38 b(The)21 b(extra)h(services)g
+(pro)m(vided)150 791 y(b)m(y)k(T)323 811 y(E)373 791
+y(Xdra)m(w)h(are)g(the)g(in)m(terpretation)h(of)e(co)s(ordinates)i(in)e
+(user)g(units)g(relativ)m(e)j(to)e(the)g(curren)m(t)f(dra)m(w-)150
+901 y(ing)34 b(segmen)m(t)g(and)f(the)h(writing)f(of)h(a)g(p)s(ending)e
+(T)1901 920 y(E)1951 901 y(Xdra)m(w)h(mo)m(v)m(e)i(to)f(the)g(P)m
+(ostScript)g(\014le.)50 b(This)33 b(last)150 1010 y(op)s(eration)f
+(establishes)h(the)f(curren)m(t)g(p)s(oin)m(t)g(in)g(P)m(ostScript.)46
+b(The)31 b(user)h(of)g(these)g(commands)g(should)150
+1120 y(b)s(e)27 b(familiar)i(with)e(the)h(concepts)h(of)f(path)f
+(construction)h(and)g(\014lling)g(in)f(P)m(ostScript.)40
+b(F)-8 b(urther)28 b(details)150 1229 y(on)i(the)h(P)m(ostScript)f
+(functions)g(used)g(can)g(found)f(in)h(the)h Fj(P)m(ostScript)f
+(Language)i(Reference)f(Man)m(ual,)150 1339 y(Second)f(Edition)p
+Fv(,)h(Adob)s(e)f(Systems,)g(Addison-W)-8 b(esley)g(,)32
+b(1990.)275 1486 y(These)e(macros)h(are)f(distributed)g(in)g(\014le)g
+Fs(txdps.tex)p Fv(.)275 1634 y(The)d Fs(\\PSsetlinecap)c
+Fv(and)k Fs(\\PSsetlinejoin)d Fv(commands)j(con)m(trol)i(the)f(w)m(a)m
+(y)g(line)g(ends)f(and)g(line)150 1743 y(joins)38 b(are)g(rendered.)62
+b(The)38 b(default)g(v)-5 b(alues)38 b(set)h(b)m(y)f(T)2085
+1763 y(E)2135 1743 y(Xdra)m(w)g(\(round)e(caps)i(and)g(round)e(join\))j
+(are)150 1853 y(appropriate)k(for)f(most)h(dra)m(wings.)77
+b(Changes)42 b(to)i(these)f(parameters)g(apply)f(to)h(the)g(curren)m(t)
+g(and)150 1963 y(subsequen)m(t)30 b(paths.)150 2141 y
+Fs(\\PSsetlinecap)d Fo(type)630 2251 y Fv(Set)k(the)g(line)g(cap)g
+(parameter.)42 b(The)30 b(v)-5 b(alue)31 b Fs(0)f Fv(giv)m(es)i(a)f
+(butt)g(cap;)g Fs(1)f Fv(giv)m(es)i(a)f(round)e(cap;)630
+2361 y(and)d Fs(2)h Fv(giv)m(es)h(a)f(pro)5 b(jecting)27
+b(square)g(cap.)40 b(The)26 b(initial)i(v)-5 b(alue)27
+b(is)g(corresp)s(onds)f(to)h(a)g(round)630 2470 y(cap.)150
+2643 y Fs(\\PSsetlinejoin)f Fo(type)630 2752 y Fv(Set)g(the)f(line)h
+(join)g(parameter.)39 b(The)25 b(v)-5 b(alue)26 b Fs(0)f
+Fv(giv)m(es)i(a)f(miter)g(join;)h Fs(1)e Fv(giv)m(es)i(a)f(round)e
+(join;)630 2862 y(and)30 b Fs(2)g Fv(giv)m(es)i(a)e(b)s(ev)m(el)h
+(join.)41 b(The)30 b(initial)h(v)-5 b(alue)31 b(corresp)s(onds)e(to)i
+(a)g(round)e(join.)275 3041 y(P)m(ostScript)40 b(paths)g(and)f(\014ll)h
+(op)s(erations)g(can)h(b)s(e)e(con)m(trolled)i(b)m(y)f(a)h(n)m(um)m(b)s
+(er)d(of)j(functions.)69 b(By)150 3150 y(design,)25 b(T)499
+3170 y(E)549 3150 y(Xdra)m(w)d(alw)m(a)m(ys)j(main)m(tains)e(a)h
+(de\014ned)d(P)m(ostScript)j(curren)m(t)e(p)s(oin)m(t.)38
+b(Some)23 b(of)g(the)g(follo)m(wing)150 3260 y(macros)38
+b(cause)g(the)f(P)m(ostScript)h(curren)m(t)f(p)s(oin)m(t)h(to)g(b)s
+(ecome)g(unde\014ned.)59 b(The)37 b(P)m(ostScript)h(curren)m(t)150
+3369 y(p)s(oin)m(t)32 b(m)m(ust)f(b)s(e)g(set)h(again)h(\(sa)m(y)g
+(with)e(a)h Fs(\\PSmoveto)d Fv(command\))j(b)s(efore)f(in)m(v)m(oking)i
+(basic)f(T)3437 3389 y(E)3487 3369 y(Xdra)m(w)150 3479
+y(commands.)150 3658 y Fs(\\PSstroke)630 3767 y Fv(Strok)m(e)38
+b(a)f(P)m(ostScript)h(path.)60 b(The)36 b(curren)m(t)h(path)g(is)g
+(strok)m(ed)g(with)g(the)g(curren)m(t)g(gra)m(y)630 3877
+y(lev)m(el)c(\(set)f(with)e Fs(\\setgray)p Fv(\))f(and)i(the)g(curren)m
+(t)f(line)i(pattern)f(\(set)h(with)e Fs(\\lpatt)p Fv(\).)41
+b(The)630 3987 y(P)m(ostScript)31 b(curren)m(t)f(p)s(oin)m(t)g(b)s
+(ecomes)h(unde\014ned.)150 4159 y Fs(\\PSnewpath)630
+4268 y Fv(Establish)f(a)h(new)f(path.)40 b(The)30 b(P)m(ostScript)h
+(curren)m(t)f(p)s(oin)m(t)h(b)s(ecomes)f(unde\014ned.)150
+4441 y Fs(\\PSclosepath)630 4550 y Fv(Close)h(a)g(subpath.)39
+b(A)31 b(new)e(subpath)g(is)i(started.)150 4723 y Fs(\\PSfill)144
+b Fv(Fill)27 b(a)f(region)g(de\014ned)f(b)m(y)g(a)h(path.)39
+b(Eac)m(h)27 b(subpath)d(is)i(closed)g(and)f(the)h(enclosed)g(regions)
+630 4832 y(pain)m(ted)44 b(with)f(the)g(curren)m(t)g(gra)m(y)h(lev)m
+(el.)81 b(The)43 b(P)m(ostScript)g(curren)m(t)g(p)s(oin)m(t)h(b)s
+(ecomes)630 4942 y(unde\014ned.)38 b(The)30 b(gra)m(y)i(lev)m(el)g(can)
+e(b)s(e)g(set)h(with)f(the)h(T)2523 4962 y(E)2573 4942
+y(Xdra)m(w)f(command)g Fs(\\setgray)p Fv(.)275 5121 y(The)24
+b(follo)m(wing)j(line)f(commands)f(in)m(terpret)g(co)s(ordinates)h
+(relativ)m(e)i(to)e(the)f(curren)m(t)h(T)3235 5140 y(E)3285
+5121 y(Xdra)m(w)f(scal-)150 5230 y(ing)32 b(and)g(dra)m(wing)g(segmen)m
+(t.)47 b(The)32 b(sp)s(eci\014ed)g(co)s(ordinate)h(a\013ects)g(the)g
+(dra)m(wing)f(size)h(as)f(determined)150 5340 y(b)m(y)e(T)327
+5360 y(E)377 5340 y(Xdra)m(w.)p eop end
+%%Page: 24 28
+TeXDict begin 24 27 bop 3659 -116 a Fv(24)150 299 y Fs(\\PSlineto)28
+b(\()p Fo(x)i(y)p Fs(\))630 408 y Fv(Add)41 b(a)h(line)h(segmen)m(t)g
+(to)f(the)h(curren)m(t)e(path.)75 b(This)42 b(command)f(is)h(iden)m
+(tical)i(to)f(the)630 518 y(T)681 538 y(E)731 518 y(Xdra)m(w)21
+b(command)h Fs(\\lvec)p Fv(.)36 b(The)21 b(P)m(ostScript)h(curren)m(t)g
+(p)s(oin)m(t)f(m)m(ust)h(b)s(e)f(de\014ned)f(b)s(efore)630
+628 y(this)30 b(command)g(is)h(issued.)150 787 y Fs(\\PSmoveto)d(\()p
+Fo(x)i(y)p Fs(\))630 897 y Fv(Mo)m(v)m(e)38 b(to)f(the)f(co)s(ordinate)
+h(sp)s(eci\014ed)f(b)m(y)g Fs(\()p Fo(x)30 b(y)p Fs(\))p
+Fv(.)57 b(The)36 b(P)m(ostScript)g(curren)m(t)g(p)s(oin)m(t)g(b)s(e-)
+630 1006 y(comes)31 b(de\014ned.)275 1166 y(The)k(follo)m(wing)j
+(macros)e(pro)m(vide)g(access)h(to)g(the)f(general)h(arc)g(commands)f
+(in)f(P)m(ostScript.)58 b(The)150 1275 y(co)s(ordinates)34
+b(are)f(in)m(terpreted)g(relativ)m(e)i(to)f(the)f(curren)m(t)g(T)2229
+1295 y(E)2279 1275 y(Xdra)m(w)f(scaling)i(and)f(dra)m(wing)g(segmen)m
+(t.)150 1385 y(The)d(sp)s(eci\014ed)g(co)s(ordinate)h(a\013ects)h(the)e
+(dra)m(wing)g(size)i(as)e(determined)g(b)m(y)g(T)2870
+1404 y(E)2920 1385 y(Xdra)m(w.)150 1544 y Fs(\\PSarc)f(r:)p
+Fo(radius)f Fs(sd:)p Fo(start-angle)e Fs(ed:)p Fo(end-angle)h
+Fs(\()p Fo(x)j(y)p Fs(\))630 1654 y Fv(Dra)m(w)24 b(a)h(coun)m(terclo)s
+(c)m(kwise)h(arc.)39 b(The)23 b(cen)m(ter)i(of)f(the)g(arc)g(is)g(at)g
+(the)g(giv)m(en)h(p)s(osition.)38 b(The)630 1763 y(radius)25
+b(is)h(sp)s(eci\014ed)f(b)m(y)g Fj(radius)p Fv(.)39 b(The)25
+b(start)h(and)f(end)g(angles)i(\(in)f(degrees\))g(are)h(sp)s(eci\014ed)
+630 1873 y(b)m(y)37 b Fj(start-angle)44 b Fv(and)37 b
+Fj(end-angle)p Fv(.)62 b(If)37 b(the)g(P)m(ostScript)h(curren)m(t)f(p)s
+(oin)m(t)g(is)g(de\014ned,)h(this)630 1983 y(command)24
+b(also)i(dra)m(ws)e(the)h(line)f(from)g(the)h(curren)m(t)g(p)s(oin)m(t)
+f(to)h(the)g(b)s(eginning)f(of)h(the)f(arc.)630 2092
+y(The)31 b(line)h(and)e(arc)i(b)s(ecome)g(part)f(of)g(the)h(curren)m(t)
+f(path.)43 b(The)31 b(curren)m(t)g(p)s(oin)m(t)h(b)s(ecomes)630
+2202 y(de\014ned.)150 2361 y Fs(\\PSarcn)c(r:)p Fo(radius)h
+Fs(sd:)p Fo(start-angle)d Fs(ed:)p Fo(end-angle)h Fs(\()p
+Fo(x)j(y)p Fs(\))630 2471 y Fv(Dra)m(w)43 b(a)f(clo)s(c)m(kwise)i(arc.)
+77 b(The)41 b(cen)m(ter)i(of)g(the)f(arc)h(is)f(at)h(the)f(giv)m(en)h
+(p)s(osition.)76 b(The)630 2580 y(radius)25 b(is)h(sp)s(eci\014ed)f(b)m
+(y)g Fj(radius)p Fv(.)39 b(The)25 b(start)h(and)f(end)g(angles)i(\(in)f
+(degrees\))g(are)h(sp)s(eci\014ed)630 2690 y(b)m(y)37
+b Fj(start-angle)44 b Fv(and)37 b Fj(end-angle)p Fv(.)62
+b(If)37 b(the)g(P)m(ostScript)h(curren)m(t)f(p)s(oin)m(t)g(is)g
+(de\014ned,)h(this)630 2800 y(command)24 b(also)i(dra)m(ws)e(the)h
+(line)f(from)g(the)h(curren)m(t)g(p)s(oin)m(t)f(to)h(the)g(b)s
+(eginning)f(of)h(the)f(arc.)630 2909 y(The)31 b(line)h(and)e(arc)i(b)s
+(ecome)g(part)f(of)g(the)h(curren)m(t)f(path.)43 b(The)31
+b(curren)m(t)g(p)s(oin)m(t)h(b)s(ecomes)630 3019 y(de\014ned.)275
+3178 y(The)39 b(macro)i Fs(\\writeps)d Fv(pro)m(vides)i(the)g(general)h
+(facilit)m(y)h(to)f(write)g(arbitrary)e(P)m(ostScript)i(com-)150
+3288 y(mands)33 b(to)i(the)g(P)m(ostScript)g(\014le.)52
+b(This)34 b(macro)h(is)f(used)g(b)m(y)g(the)h(preceding)f(commands)g
+(and)g(b)m(y)g(the)150 3397 y(T)201 3417 y(E)251 3397
+y(Xdra)m(w)k(commands)g(themselv)m(es.)65 b(This)38 b(facilit)m(y)i
+(has)e(to)h(b)s(e)f(used)f(with)h(care)h(since)g(c)m(hanges)g(in)150
+3507 y(p)s(osition)30 b(or)h(scaling)g(resulting)g(from)f(the)g(P)m
+(ostScript)h(commands)f(are)h(not)g(kno)m(wn)e(to)j(T)3310
+3526 y(E)3360 3507 y(Xdra)m(w.)150 3666 y Fs(\\writeps)c({<)p
+Fo(ps-commands)p Fs(>})630 3776 y Fv(W)-8 b(rite)45 b(P)m(ostScript)e
+(commands)g(to)h(the)g(in)m(termediate)g(P)m(ostScript)g(\014le.)80
+b(Before)44 b(the)630 3885 y(commands)22 b(are)g(inserted,)i(an)m(y)f
+(p)s(ending)d(T)2130 3905 y(E)2180 3885 y(Xdra)m(w)i(mo)m(v)m(e)i(is)e
+(written)g(to)h(the)f(P)m(ostScript)630 3995 y(\014le.)41
+b(The)30 b(P)m(ostScript)h(scaling)g(giv)m(es)h(300)g(units/inc)m(h.)p
+eop end
+%%Page: 25 29
+TeXDict begin 25 28 bop 3659 -116 a Fv(25)150 299 y Fr(App)t(endix)52
+b(B)81 b(T)1173 331 y(E)1259 299 y(Xdra)l(w)53 b(T)-13
+b(o)t(olb)t(o)l(x)150 507 y Fv(This)31 b(app)s(endix)f(describ)s(es)g
+(some)i(of)g(the)f(macros)h(supplied)e(with)i(T)2563
+527 y(E)2613 507 y(Xdra)m(w)f(whic)m(h)g(can)h(b)s(e)f(used)f(to)150
+617 y(de\014ne)g(additional)h(commands)g(for)f(creating)i(dra)m(wings.)
+41 b(The)30 b(macros)h(describ)s(ed)e(here)i(w)m(ork)f(in)h(the)150
+726 y(user)h(sp)s(eci\014ed)g(co)s(ordinate)h(system.)48
+b(Some)33 b(of)g(these)g(to)s(olb)s(o)m(x)h(macros)f(are)g(used)f(b)m
+(y)g(the)h(T)3437 746 y(E)3487 726 y(Xdra)m(w)150 836
+y(commands)d(themselv)m(es,)i(others)e(are)h(supplied)e(in)h(an)g
+(auxiliary)i(\014le)e Fs(txdtools.tex)p Fv(.)150 1067
+y Fu(B.1)67 b(Co)t(ordinate)46 b(parsing)150 1226 y Fv(The)33
+b(co)s(ordinate)i(parsing)e(macro)i Fs(\\getpos)c Fv(is)j(useful)f(for)
+h(creating)h(new)e(commands.)50 b(This)33 b(macro)150
+1335 y(tak)m(es)26 b(care)e(of)h(stripping)e(leading)i(and)e(trailing)i
+(blanks)f(from)f(co)s(ordinates)i(sp)s(eci\014ed)f(b)s(et)m(w)m(een)g
+(paren-)150 1445 y(theses.)40 b(In)28 b(addition,)i(sym)m(b)s(olic)f
+(co)s(ordinates)g(are)g(translated)g(to)g(the)g(corresp)s(onding)f
+(relativ)m(e)i(co)s(or-)150 1555 y(dinate)h(using)f(the)g(segmen)m(t)i
+(o\013set)f(and)f(scaling)h(in)f(e\013ect.)275 1684 y(The)35
+b(macro)h Fs(\\currentpos)c Fv(returns)j(the)h(relativ)m(e)h(co)s
+(ordinates)g(of)f(the)f(curren)m(t)h(p)s(osition.)56
+b(The)150 1794 y(returned)38 b(v)-5 b(alues)40 b(are)g(relativ)m(e)i
+(to)e(the)f(curren)m(t)h(segmen)m(t)g(and)f(the)h(curren)m(t)f
+(scaling.)69 b(The)39 b(macro)150 1903 y Fs(\\cossin)h
+Fv(returns)h(the)h(real-v)-5 b(alued)43 b(cosine)g(and)e(sine)h(of)g
+(the)g(direction)h(of)f(the)g(line)g(joining)h(t)m(w)m(o)150
+2013 y(p)s(oin)m(ts.)c(The)25 b(macro)h Fs(\\vectlen)d
+Fv(returns)i(the)g(length)h(of)g(a)g(v)m(ector.)41 b(The)25
+b(results)g(app)s(ear)g(as)h(the)f(v)-5 b(alue)150 2122
+y(of)31 b(user)e(supplied)g(macro)i(names.)150 2271 y
+Fs(\\getpos)d(\()p Fo(x)i(y)p Fs(\)\\)p Fo(mx)p Fs(\\)p
+Fo(my)630 2381 y Fv(Deco)s(de)44 b(co)s(ordinate)f(v)-5
+b(alues.)78 b(The)42 b(co)s(ordinates)i(sp)s(eci\014ed)e(b)m(y)g
+Fs(\()p Fo(x)30 b(y)p Fs(\))42 b Fv(are)h(deco)s(ded.)630
+2491 y(Sym)m(b)s(olic)c(co)s(ordinates)h(are)g(translated)g(to)g(the)f
+(corresp)s(onding)g(relativ)m(e)i(co)s(ordinate)630 2600
+y(using)c(the)h(curren)m(t)f(segmen)m(t)h(o\013set)h(and)e(scaling.)63
+b(The)37 b(resulting)g(c)m(haracter)i(strings)630 2710
+y(represen)m(ting)26 b(the)g(real-v)-5 b(alued)27 b(co)s(ordinates)f
+(are)g(assigned)g(to)h(the)f(macros)g(sp)s(eci\014ed)f(b)m(y)630
+2819 y Fs(\\)p Fo(mx)k Fv(and)h Fs(\\)p Fo(my)p Fv(.)150
+2969 y Fs(\\currentpos)d(\\)p Fo(mx)p Fs(\\)p Fo(my)630
+3078 y Fv(Return)h(the)i(co)s(ordinates)f(of)h(the)f(curren)m(t)g(p)s
+(osition.)40 b(The)29 b(co)s(ordinates)h(are)f(relativ)m(e)i(to)630
+3188 y(the)36 b(curren)m(t)f(segmen)m(t)h(o\013set)g(and)f(scaling.)57
+b(The)35 b(resulting)g(c)m(haracter)i(strings)e(repre-)630
+3297 y(sen)m(ting)30 b(the)f(real-v)-5 b(alued)29 b(co)s(ordinates)h
+(are)f(assigned)g(to)h(the)f(macros)g(sp)s(eci\014ed)f(b)m(y)h
+Fs(\\)p Fo(mx)630 3407 y Fv(and)h Fs(\\)p Fo(my)p Fv(.)150
+3556 y Fs(\\cossin)e(\()p Fo(x1)i(y1)p Fs(\)\()p Fo(x2)f(y2)p
+Fs(\)\\)p Fo(cosa)p Fs(\\)p Fo(sina)630 3666 y Fv(Return)g(the)i
+(cosine)g(and)e(sine)i(of)f(the)g(direction)h(of)g(a)f(v)m(ector)i
+(joining)e(t)m(w)m(o)i(p)s(oin)m(ts.)40 b(The)630 3775
+y(cosine)30 b(and)f(sine)h(of)f(the)h(angle)g(of)g(the)g(v)m(ector)h
+(whic)m(h)e(go)s(es)h(from)f Fs(\()p Fo(x1)g(y1)p Fs(\))g
+Fv(to)h Fs(\()p Fo(x2)g(y2)p Fs(\))p Fv(.)630 3885 y(The)i(c)m
+(haracter)j(strings)d(represen)m(ting)h(these)g(real-v)-5
+b(alued)34 b(quan)m(tities)g(are)f(assigned)g(to)630
+3994 y(the)e(macros)f(sp)s(eci\014ed)g(b)m(y)g Fs(\\)p
+Fo(cosa)f Fv(and)h Fs(\\)p Fo(sina)p Fv(.)150 4143 y
+Fs(\\vectlen)e(\()p Fo(x1)i(y1)p Fs(\)\()p Fo(x2)e(y2)p
+Fs(\)\\)p Fo(len)630 4253 y Fv(Return)35 b(the)h(length)g(of)g(a)g(v)m
+(ector)h(joining)f(t)m(w)m(o)h(p)s(oin)m(ts.)56 b(The)35
+b(length)h(of)g(the)g(v)m(ector)h(is)630 4363 y(relativ)m(e)25
+b(to)g(the)e(curren)m(t)g(scaling.)40 b(The)23 b(c)m(haracter)h(string)
+g(represen)m(ting)f(the)h(real-v)-5 b(alued)630 4472
+y(length)31 b(is)f(assigned)h(to)g(the)f(macro)h(sp)s(eci\014ed)f(b)m
+(y)g Fs(\\)p Fo(len)p Fv(.)150 4703 y Fu(B.2)67 b(Real)47
+b(arithmetic)150 4862 y Fv(The)24 b(T)382 4882 y(E)432
+4862 y(Xdra)m(w)g(to)s(olb)s(o)m(x)h(supplies)e(macros)i(to)f(p)s
+(erform)f(real)i(arithmetic)g(on)f(co)s(ordinate)h(v)-5
+b(alues.)39 b(The)150 4972 y(result)30 b(app)s(ears)g(as)h(the)f(v)-5
+b(alue)31 b(of)f(a)h(user)f(supplied)f(macro)i(name.)150
+5121 y Fs(\\realadd)d({)p Fo(value1)p Fs(})g({)p Fo(value2)p
+Fs(})g(\\)p Fo(sum)630 5230 y Fv(Add)36 b(t)m(w)m(o)i(real)g(quan)m
+(tities,)i(assigning)d(the)g(resultan)m(t)g(c)m(haracter)i(string)e
+(represen)m(ting)630 5340 y(the)31 b(sum)e(to)i(the)g(macro)g
+Fs(\\)p Fo(sum)p Fv(.)p eop end
+%%Page: 26 30
+TeXDict begin 26 29 bop 150 -116 a Fv(App)s(endix)29
+b(B:)i(T)738 -97 y(E)788 -116 y(Xdra)m(w)f(T)-8 b(o)s(olb)s(o)m(x)2258
+b(26)150 299 y Fs(\\realmult)28 b({)p Fo(value1)p Fs(})g({)p
+Fo(value2)p Fs(})g(\\)p Fo(prod)630 408 y Fv(Multiply)g(t)m(w)m(o)h
+(real)f(quan)m(tities,)i(assigning)e(the)g(resultan)m(t)h(c)m(haracter)
+g(string)f(represen)m(t-)630 518 y(ing)j(the)f(pro)s(duct)f(to)i(the)g
+(macro)g Fs(\\)p Fo(prod)p Fv(.)150 662 y Fs(\\realdiv)d({)p
+Fo(value1)p Fs(})g({)p Fo(value2)p Fs(})g(\\)p Fo(result)630
+771 y Fv(Divide)g(t)m(w)m(o)g(real)g(quan)m(tities,)h(assigning)e(the)h
+(resultan)m(t)f(c)m(haracter)i(string)e(represen)m(ting)630
+881 y(the)k(result)f(of)g Fj(v)-5 b(alue1)7 b Fv(/)p
+Fj(v)-5 b(alue2)41 b Fv(to)31 b(the)f(macro)h Fs(\\)p
+Fo(result)p Fv(.)150 1106 y Fu(B.3)67 b(Arro)l(w)45 b(curv)l(e)150
+1265 y Fv(This)29 b(example)h(illustrates)h(the)f(use)f(of)h(the)g(T)
+1754 1285 y(E)1804 1265 y(Xdra)m(w)f(to)s(olb)s(o)m(x)h(routines)g(to)g
+(do)g(computations)g(with)150 1375 y(the)h(co)s(ordinates.)44
+b(The)30 b(problem)h(will)g(b)s(e)f(tac)m(kled)j(in)e(t)m(w)m(o)h
+(parts.)42 b(First,)32 b(w)m(e)g(will)f(pro)s(duce)f(a)h(macro)150
+1484 y(to)h(place)g(an)e(arro)m(whead)h(on)g(a)h(Bezier)g(curv)m(e.)43
+b(Then)30 b(giv)m(en)i(this)f(macro,)g(w)m(e)h(will)f(pro)s(duce)f(a)h
+(macro)150 1594 y(whic)m(h)f(can)h(dra)m(w)f(a)h(\\wiggly")h(line)f
+(from)e(the)i(curren)m(t)f(p)s(osition)h(to)g(a)f(giv)m(en)i(co)s
+(ordinate.)1350 2389 y @beginspecial 0 @hoffset 3 @voffset
+@setspecial
+%%BeginDocument: texdraw.p10
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.p10
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+0 0 mv
+420 30 -120 -30 300 0 cv
+300 0 mv
+bs
+285 -1 mv
+300 0 (W) 48 24 av
+es
+bs
+300 0 mv
+270 420 330 -120 300 300 cv
+300 300 mv
+bs
+301 285 mv
+300 300 (W) 48 24 av
+es
+es
+bs
+300 0 mv
+690 450 210 -150 600 300 cv
+600 300 mv
+bs
+590 289 mv
+600 300 (W) 48 24 av
+es
+es
+bs
+300 0 mv
+720 30 180 -30 600 0 cv
+600 0 mv
+bs
+585 -1 mv
+600 0 (W) 48 24 av
+es
+es
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 -3 144 81
+%%EOF
+
+%%EndDocument
+ @endspecial 1950 1747 a(tip)e(at)i Fs(\(1)47 b(1\))108
+b Fv(tip)30 b(at)i Fs(\(2)47 b(1\))2550 2347 y Fv(tip)30
+b(at)i Fs(\(2)47 b(0\))275 2515 y Fv(The)35 b(\014rst)f(macro,)k
+Fs(\\cavec)p Fv(,)d(uses)g(the)h Fs(\\cossin)e Fv(command)h(to)h
+(determine)g(the)g(the)f(cosine)i(and)150 2625 y(sine)31
+b(of)g(the)g(angle)h(of)f(the)h(line)f(joining)g(the)g(second)g(con)m
+(trol)i(p)s(oin)m(t)e(to)h(the)f(end)f(p)s(oin)m(t)h(of)g(the)h(Bezier)
+150 2734 y(curv)m(e.)45 b(Recall)33 b(that)g(the)f(Bezier)h(curv)m(e)f
+(is)g(tangen)m(t)h(to)f(this)g(line)g(at)g(the)g(end)f(p)s(oin)m(t.)45
+b(After)32 b(dra)m(wing)150 2844 y(the)26 b(Bezier)h(curv)m(e,)g(the)f
+(scaling)h(is)e(set)h(lo)s(cally)i(to)e(absolute)g(units)f(of)h(0.05)h
+(inc)m(hes.)40 b(W)-8 b(e)27 b(go)f(bac)m(k)g(do)m(wn)150
+2954 y(the)k(line)g(from)f(the)g(end)g(p)s(oin)m(t)h(b)m(y)f(0.05)i
+(inc)m(hes)f(and)f(dra)m(w)g(an)g(arro)m(w)h(v)m(ector)h(to)f(the)g
+(end)f(p)s(oin)m(t)g(from)150 3063 y(there.)41 b(This)30
+b(arro)m(w)g(v)m(ector)i(is)e(mostly)h(arro)m(whead,)g(with)f(little)i
+(or)f(no)f(tail.)390 3190 y Fs(\\def\\cavec)45 b(\(#1)i(#2\)\(#3)f
+(#4\)\(#5)g(#6\){)485 3299 y(\\clvec)h(\(#1)f(#2\)\(#3)h(#4\)\(#5)f
+(#6\))485 3409 y(\\cossin)g(\(#3)h(#4\)\(#5)f(#6\)\\cosa\\sina)485
+3519 y(\\rmove)h(\(0)g(0\))485 3628 y(\\bsegment)581
+3738 y(\\drawdim)e(in)j(\\setsegscale)c(0.05)581 3847
+y(\\move)i(\({-\\cosa})g(-\\sina\))93 b(\\avec)46 b(\(0)i(0\))485
+3957 y(\\esegment})275 4084 y Fv(Note)42 b(the)f(use)g(of)g(macros)g
+(as)g(argumen)m(ts)g(to)h(a)f Fs(\\move)f Fv(command.)72
+b(Min)m(us)41 b(signs)g(are)g(put)f(in)150 4193 y(fron)m(t)c(of)f(the)h
+(macros.)56 b(Ho)m(w)m(ev)m(er,)39 b(the)d(v)-5 b(alue)36
+b(of)g(the)f(macro)i Fs(\\cosa)d Fv(or)h Fs(\\sina)f
+Fv(could)i(b)s(e)e(negativ)m(e.)150 4303 y(F)-8 b(ortunately)g(,)42
+b(T)722 4322 y(E)772 4303 y(X)d(accepts)g(t)m(w)m(o)h(min)m(us)d(signs)
+h(in)g(a)h(ro)m(w)f(and)f(in)m(terprets)i(the)f(result)g(as)h(p)s
+(ositiv)m(e.)150 4412 y(Note)27 b(that)g(the)f Fs(\\rmove)j(\(0)h(0\))
+25 b Fv(command)h(b)s(efore)g(the)g(b)s(eginning)f(of)h(the)h(segmen)m
+(t)g(ensures)e(that)i(the)150 4522 y(Bezier)32 b(curv)m(e)e(is)h(strok)
+m(ed)g(b)s(efore)f(the)g(arro)m(whead)h(is)f(dra)m(wn.)275
+4648 y(The)h(second)h(macro)g Fs(\\caw)f Fv(builds)g(on)h
+Fs(\\cavec)p Fv(.)43 b(The)32 b(goal)h(is)f(to)h(pro)s(duce)e(a)h
+(wiggly)h(v)m(ector)g(that)150 4758 y(can)42 b(b)s(e)f(used)g(as)h(a)g
+(p)s(oin)m(ter)g(in)f(a)h(dra)m(wing.)75 b(Consider)41
+b(the)h(follo)m(wing)h(symmetrical)f(normalized)150 4868
+y(Bezier)32 b(curv)m(e.)390 4994 y Fs(\\centertexdraw{)44
+b(\\move)i(\(0)h(0\))g(\\cavec)f(\(1.4)h(0.1\)\(-0.4)e(-0.1\)\(1)h(0\))
+h(})275 5121 y Fv(This)39 b(curv)m(e)h(has)g(the)g(appropriate)g
+(wiggle.)70 b(No)m(w)41 b(w)m(e)f(w)m(an)m(t)h(to)g(b)s(e)e(able)h(to)h
+(dra)m(w)f(this)f(curv)m(e,)150 5230 y(appropriately)32
+b(scaled)h(and)e(rotated.)46 b(The)32 b(macro)g Fs(\\caw)f
+Fv(needs)g(to)i(do)f(computations)g(on)g(the)g(co)s(or-)150
+5340 y(dinates.)41 b(First,)31 b Fs(\\caw)e Fv(uses)g(the)i(macros)f
+Fs(\\getpos)e Fv(and)i Fs(\\currentpos)d Fv(to)k(get)g(the)f(p)s
+(ositions)g(of)h(the)p eop end
+%%Page: 27 31
+TeXDict begin 27 30 bop 3659 -116 a Fv(27)150 299 y(end)36
+b(and)h(start)h(of)f(the)g(curv)m(e.)61 b(Next,)40 b(the)e(length)f(of)
+g(the)h(v)m(ector)g(is)f(calculated)i(using)e(the)g(macro)150
+408 y Fs(\\vectlen)p Fv(.)43 b(A)31 b(lo)s(cal)i(macro)g
+Fs(\\rotatecoord)28 b Fv(is)k(used)f(to)h(rotate)i(a)e(co)s(ordinate)g
+(pair)g(ab)s(out)f(the)h(ori-)150 518 y(gin,)h(using)e(the)h(cosine)h
+(and)e(sine)h(of)g(the)g(rotation)h(angle.)46 b(The)31
+b(v)m(ector)j(length)e(is)g(used)f(to)i(scale)g(the)150
+628 y(normalized)e(curv)m(e.)41 b(The)30 b(remaining)g(co)s(de)h(dra)m
+(ws)f(the)g(rotated,)i(normalized)f(curv)m(e.)390 762
+y Fs(\\def\\caw)46 b(\(#1)g(#2\){)485 872 y(\\currentpos)f(\\xa\\ya)485
+981 y(\\cossin)h(\({\\xa})g(\\ya\)\(#1)g(#2\)\\cosa\\sina)390
+1200 y(\045)h(The)g(nominal)f(wiggly)g(curve)h(is)g(\(0)g(0\))g(\(1+dx)
+g(dy\))f(\(-dx)h(-dy\))g(\(1)g(0\))390 1310 y(\045)g(Find)g(the)g
+(rotated)f(offset)g(\(dx)h(dy\))g(->)g(\(du)g(dv\))485
+1420 y(\\rotatecoord)e(\(0.4)i(0.1\)\\cosa\\sina)c(\\du\\dv)390
+1639 y(\045)k(calculate)f(the)h(length)f(of)h(the)g(vector)485
+1748 y(\\vectlen)f(\({\\xa})g(\\ya\)\(#1)g(#2\)\\len)390
+1968 y(\045)h(draw)g(the)g(curve)f(in)i(normalized)d(units)485
+2077 y(\\bsegment)581 2187 y(\\setsegscale)f({\\len})581
+2296 y(\\realadd)h(\\cosa)i(\\du)g(\\tmpa)94 b(\\realadd)45
+b(\\sina)i(\\dv)g(\\tmpb)581 2406 y(\\cavec)f(\({\\tmpa})g
+(\\tmpb\)\({-\\du})e(-\\dv\)\({\\cosa})g(\\sina\))485
+2516 y(\\esegment)485 2625 y(\\move)j(\(#1)g(#2\)})390
+2844 y(\045)g(rotate)g(a)g(coordinate)e(\(x)i(y\))390
+2954 y(\045)g(arguments:)e(\(x)j(y\))f(cosa)f(sina)h(x')g(y')390
+3064 y(\045)95 b(x')47 b(=)h(cosa)e(*)i(x)f(-)h(sina)e(*)i(y;)95
+b(y')47 b(=)g(sina)g(*)h(x)f(+)g(cosa)g(*)h(y)390 3173
+y(\\def\\rotatecoord)43 b(\(#1)k(#2\)#3#4#5#6{)485 3283
+y(\\getpos)f(\(#1)h(#2\)\\xarg\\yarg)485 3392 y(\\realmult)f(\\xarg)g
+({#3})h(\\tmpa)94 b(\\realmult)45 b(\\yarg)h({#4})h(\\tmpb)485
+3502 y(\\realadd)f(\\tmpa)g({-\\tmpb})g(#5)485 3611 y(\\realmult)g
+(\\xarg)g({#4})h(\\tmpa)94 b(\\realmult)45 b(\\yarg)h({#3})h(\\tmpb)485
+3721 y(\\realadd)f(\\tmpa)g(\\tmpb)h(#6})275 3856 y Fv(Finally)-8
+b(,)32 b(the)e(new)g(macro)h(can)g(b)s(e)e(used)h(as)h(follo)m(ws.)390
+3990 y Fs(\\centertexdraw{)485 4100 y(\\arrowheadtype)44
+b(t:W)485 4209 y(\\move)j(\(0)g(0\))485 4319 y(\\cavec)g(\(1.4)f
+(0.1\)\(-0.4)f(-0.1\)\(1)h(0\))485 4428 y(\\move)h(\(1)g(0\))g(\\caw)g
+(\(1)g(1\))g(\\htext{tip)e(at)i(\\tt)g(\(1)g(1\)})485
+4538 y(\\move)g(\(1)g(0\))g(\\caw)g(\(2)g(1\))g(\\htext{tip)e(at)i
+(\\tt)g(\(2)g(1\)})485 4648 y(\\move)g(\(1)g(0\))g(\\caw)g(\(2)g(0\))g
+(\\htext{tip)e(at)i(\\tt)g(\(2)g(0\)})390 4867 y(})275
+5001 y Fv(Note)29 b(that)g(the)f(Bezier)h(curv)m(e)g(in)e(the)i(macro)f
+Fs(\\cavec)e Fv(lies)j(b)s(elo)m(w)f(the)h(arro)m(whead.)40
+b(The)27 b(example)150 5111 y(then)j(dra)m(ws)g(an)g(arro)m(whead)h(of)
+f(t)m(yp)s(e)h Fs(W)f Fv(to)h(erase)g(the)f(part)h(of)f(the)h(line)f(b)
+s(elo)m(w)h(the)g(arro)m(whead.)p eop end
+%%Page: 28 32
+TeXDict begin 28 31 bop 3659 -116 a Fv(28)150 299 y Fr(App)t(endix)52
+b(C)81 b(Examples)150 524 y Fv(This)30 b(app)s(endix)f(sho)m(ws)h
+(examples)h(of)f(the)h(use)f(of)g(T)1976 544 y(E)2026
+524 y(Xdra)m(w.)150 761 y Fu(C.1)68 b(Blo)t(c)l(k)45
+b(diagram)h(of)f(a)g(lattice)i(\014lter)150 921 y Fv(The)35
+b(blo)s(c)m(k)i(diagram)f(of)g(a)g(lattice)i(\014lter)e(uses)g(a)g
+(library)f(of)h(extended)g(commands)g(built)f(from)h(the)150
+1030 y(basic)31 b(T)429 1050 y(E)479 1030 y(Xdra)m(w)f(commands.)325
+1977 y @beginspecial 4 @hoffset 43 @voffset @setspecial
+%%BeginDocument: texdraw.p11
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.p11
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+bs
+0 0 mv
+90 0 lv
+6 0 fc
+90 120 lv
+90 0 mv
+90 -120 lv
+es
+bs
+90 120 mv
+576 120 (F) 24 12 av
+600 120 mv
+24 cr
+bs
+588 120 mv
+612 120 lv
+600 108 mv
+600 132 lv
+es
+624 120 mv
+720 120 (F) 24 12 av
+90 -120 mv
+210 -120 (F) 24 12 av
+bs
+210 -75 lv
+300 -75 lv
+300 -165 lv
+210 -165 lv
+210 -120 lv
+es
+300 -120 mv
+576 -120 (F) 24 12 av
+600 -120 mv
+24 cr
+bs
+588 -120 mv
+612 -120 lv
+600 -132 mv
+600 -108 lv
+es
+624 -120 mv
+720 -120 (F) 24 12 av
+360 120 mv
+6 0 fc
+583 -103 (F) 24 12 av
+360 -120 mv
+6 0 fc
+583 103 (F) 24 12 av
+120 126 mv
+es
+bs
+900 120 mv
+1386 120 (F) 24 12 av
+1410 120 mv
+24 cr
+bs
+1398 120 mv
+1422 120 lv
+1410 108 mv
+1410 132 lv
+es
+1434 120 mv
+1590 120 (F) 24 12 av
+900 -120 mv
+1020 -120 (F) 24 12 av
+bs
+1020 -75 lv
+1110 -75 lv
+1110 -165 lv
+1020 -165 lv
+1020 -120 lv
+es
+1110 -120 mv
+1386 -120 (F) 24 12 av
+1410 -120 mv
+24 cr
+bs
+1398 -120 mv
+1422 -120 lv
+1410 -132 mv
+1410 -108 lv
+es
+1434 -120 mv
+1530 -120 (F) 24 12 av
+1170 120 mv
+6 0 fc
+1393 -103 (F) 24 12 av
+1170 -120 mv
+6 0 fc
+1393 103 (F) 24 12 av
+930 126 mv
+es
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -4 -43 386 45
+%%EOF
+
+%%EndDocument
+ @endspecial 148 1640 a Fp(x)p Fv(\()p Fp(n)p Fv(\))1458
+1329 y Fe(+)1539 1483 y Fd(\000)803 1892 y Fp(z)849 1859
+y Fc(\000)p Fn(1)1458 1925 y Fe(+)1539 1771 y Fd(\000)497
+1306 y Fp(f)542 1320 y Fn(0)579 1306 y Fv(\()p Fp(n)p
+Fv(\))934 b Fp(f)1683 1320 y Fn(1)1719 1306 y Fv(\()p
+Fp(n)p Fv(\))500 1961 y Fp(b)539 1975 y Fn(0)576 1961
+y Fv(\()p Fp(n)p Fv(\))939 b Fp(b)1679 1975 y Fn(1)1717
+1961 y Fv(\()p Fp(n)p Fv(\))1231 1483 y Fp(K)1308 1497
+y Fn(1)1231 1799 y Fp(K)1308 1813 y Fn(1)1928 1397 y
+Ft(\001)15 b(\001)g(\001)1928 1877 y(\001)g(\001)g(\001)3078
+1329 y Fe(+)3159 1483 y Fd(\000)3577 1400 y Fp(e)p Fv(\()p
+Fp(n)p Fv(\))2423 1892 y Fp(z)2469 1859 y Fc(\000)p Fn(1)3078
+1925 y Fe(+)3159 1771 y Fd(\000)2066 1306 y Fp(f)2111
+1320 y Fh(P)9 b Fc(\000)p Fn(1)2251 1306 y Fv(\()p Fp(n)p
+Fv(\))873 b Fp(f)3294 1320 y Fh(P)3348 1306 y Fv(\()p
+Fp(n)p Fv(\))2069 1961 y Fp(b)2108 1975 y Fh(P)9 b Fc(\000)p
+Fn(1)2248 1961 y Fv(\()p Fp(n)p Fv(\))878 b Fp(b)3290
+1975 y Fh(P)3346 1961 y Fv(\()p Fp(n)p Fv(\))2851 1483
+y Fp(K)2928 1497 y Fh(P)2851 1799 y Fp(K)2928 1813 y
+Fh(P)275 2202 y Fv(The)41 b(blo)s(c)m(k)h(diagram)g(uses)f(a)h(\\dela)m
+(y")i(blo)s(c)m(k.)75 b(This)41 b(is)h(de\014ned)e(as)i(a)g(segmen)m(t)
+h(whic)m(h)f(lea)m(v)m(es)150 2312 y(the)35 b(curren)m(t)h(p)s(osition)
+f(at)h(the)f(end)g(of)g(this)h(blo)s(c)m(k.)56 b(A)35
+b(second)g(macro,)j Fs(\\bdot)p Fv(,)d(dra)m(ws)g(a)g(\\big")i(dot)150
+2421 y(whic)m(h)30 b(is)h(used)f(to)h(mark)f(junctions)g(of)h(lines.)41
+b(The)30 b Fs(\\Ttext)f Fv(command)h(cen)m(ters)i(text)f(ab)s(o)m(v)m
+(e)h(a)f(giv)m(en)150 2531 y(p)s(oin)m(t.)54 b(The)34
+b(o\013set)h(to)h(p)s(osition)e(the)h(text)h(is)f(lo)s(cal)g(to)h(a)f
+(segmen)m(t,)i(resulting)e(in)f(no)h(c)m(hange)g(to)h(the)150
+2641 y(curren)m(t)27 b(p)s(oin)m(t.)39 b(Similar)27 b(macros)g(to)h(p)s
+(osition)e(text)i(b)s(elo)m(w)f(a)g(p)s(oin)m(t)g(\()p
+Fs(\\Btext)p Fv(\),)g(to)g(the)g(left)h(of)f(a)g(p)s(oin)m(t)150
+2750 y(\()p Fs(\\Ltext)p Fv(\))i(and)h(to)h(the)g(righ)m(t)g(of)f(a)h
+(p)s(oin)m(t)f(\()p Fs(\\Rtext)p Fv(\))g(are)h(used)e(in)h(the)h
+(\014nal)f(dra)m(wing.)390 2883 y Fs(\\def\\delay)45
+b({\\bsegment)1058 2992 y(\\setsegscale)g(0.3)1058 3102
+y(\\lvec)i(\(0)g(+0.5\))f(\\lvec)g(\(1)i(+0.5\))e(\\lvec)g(\(1)i
+(-0.5\))1058 3212 y(\\lvec)f(\(0)g(-0.5\))f(\\lvec)g(\(0)i(0\))1058
+3321 y(\\textref)e(h:C)h(v:C)94 b(\\htext)46 b(\(0.5)h(0\){$z^{-1}$})
+1058 3431 y(\\savepos)f(\(1)h(0\)\(*ex)f(*ey\))963 3540
+y(\\esegment)963 3650 y(\\move)g(\(*ex)h(*ey\)})390 3760
+y(\\def\\bdot)e({\\fcir)h(f:0)h(r:0.02)f(})390 3869 y(\\def\\Ttext)f
+(#1{\\bsegment)1154 3979 y(\\textref)g(h:C)i(v:B)95 b(\\htext)46
+b(\(0)h(+0.06\){#1})1058 4088 y(\\esegment})275 4221
+y Fv(Sev)m(eral)36 b(of)g(the)g(blo)s(c)m(k)g(diagram)h(elemen)m(ts)g
+(scale)g(with)e(the)h(size)h(of)f(the)g(summing)e(no)s(des.)56
+b(The)150 4331 y(radius)23 b(of)i(the)f(circles)i(for)e(the)g(summing)g
+(no)s(des)f(is)i(de\014ned)e(as)h(the)h(macro)g Fs(\\cradius)p
+Fv(.)36 b(The)24 b(summing)150 4440 y(no)s(des)36 b(will)i(ha)m(v)m(e)g
+(enclosed)g(plus)e(signs,)j(appropriately)f(scaled.)61
+b(The)37 b(plus)f(sign)h(is)g(dra)m(wn)g(b)m(y)g(the)150
+4550 y(macro)f Fs(\\pluss)p Fv(.)52 b(The)35 b(macro)g
+Fs(\\pcir)f Fv(dra)m(ws)g(b)s(oth)h(the)g(circle)h(and)e(the)h(plus)f
+(sign.)55 b(The)34 b(incoming)150 4659 y(lines)i(to)h(a)f(summing)f(no)
+s(de)g(will)h(b)s(e)g(lab)s(elled)g(with)f(plus)g(or)h(min)m(us)f
+(signs)h(\(c)m(haracters)i(this)e(time\),)150 4769 y(placed)c(at)g(the)
+g(appropriate)g(p)s(osition)f(with)g(resp)s(ect)h(to)g(the)g(cen)m(ter)
+h(of)e(the)h(summing)f(no)s(de.)43 b(These)150 4879 y(p)s(ositions)28
+b(are)h(giv)m(en)g(in)f(terms)h(of)f(compass)h(directions.)40
+b(The)28 b(macro)h Fs(\\putwnw)d Fv(places)k(text)f(w)m(est)g(b)m(y)150
+4988 y(north-w)m(est)i(relativ)m(e)h(to)f(the)g(cen)m(ter)g(of)g(the)f
+(summing)g(no)s(de.)390 5121 y Fs(\\def\\cradius)44 b({0.08})390
+5230 y(\\def\\pluss)h({\\bsegment)1106 5340 y(\\setsegscale)f
+({\\cradius})p eop end
+%%Page: 29 33
+TeXDict begin 29 32 bop 150 -116 a Fv(App)s(endix)29
+b(C:)h(Examples)2588 b(29)1106 299 y Fs(\\move)46 b(\(-0.5)h(0\))g
+(\\lvec)f(\(+0.5)h(0\))1106 408 y(\\move)f(\(0)h(-0.5\))g(\\lvec)f(\(0)
+h(+0.5\))1010 518 y(\\esegment})390 628 y(\\def\\pcir)e({\\lcir)h
+(r:{\\cradius})f(\\pluss})390 737 y(\\def\\puttext)f(\(#1)j
+(#2\)#3{\\bsegment)1583 847 y(\\setsegscale)e({\\cradius})1583
+956 y(\\textref)h(h:C)h(v:C)g(\\htext)f(\(#1)h(#2\){#3})1488
+1066 y(\\esegment})390 1176 y(\\def\\putwnw)e(#1{\\puttext)f(\(-1.7)j
+(+1.2\){#1}})275 1307 y Fv(The)24 b(blo)s(c)m(k)i(diagram)g(has)f(v)m
+(ectors)i(arriving)f(and)f(departing)g(from)g(the)h(summing)e(no)s(des)
+h(\(circles\).)150 1417 y(One)33 b(could)h(calculate)i(the)e(p)s(oin)m
+(ts)g(of)g(in)m(tersection)h(of)f(the)g(lines)g(with)g(the)g(circles,)i
+(and)d(then)g(en)m(ter)150 1526 y(the)e(v)-5 b(alues)31
+b(in)m(to)h(the)e(T)970 1546 y(E)1020 1526 y(Xdra)m(w)h(co)s(de.)42
+b(Ho)m(w)m(ev)m(er,)33 b(in)d(this)h(example,)h(w)m(e)f(implemen)m(t)g
+(an)g(automated)150 1636 y(pro)s(cedure.)50 b(Tw)m(o)35
+b(macros)f(are)g(needed,)h(an)f(arro)m(w)g(v)m(ector)i(to)e(a)h(circle)
+g(\()p Fs(\\avectoc)p Fv(\))e(and)g(an)h(arro)m(w)150
+1745 y(v)m(ector)c(lea)m(ving)f(from)f(a)g(circle)i(\()p
+Fs(\\avecfrc)p Fv(\).)38 b(The)27 b(macros)i(will)f(calculate)j(the)d
+(p)s(oin)m(t)g(of)g(in)m(tersection)150 1855 y(with)i(the)h(circle)g
+(and)f(start)h(or)f(end)g(the)h(v)m(ector)h(at)f(the)f(in)m(tersection)
+i(p)s(oin)m(t.)275 1987 y(The)h(arro)m(w)g(macros)h(use)f(scaling)i
+(and)e(relativ)m(e)j(p)s(ositioning)d(inside)h(of)f(a)h(dra)m(wing)f
+(segmen)m(t.)52 b(In)150 2096 y(the)36 b(case)h(of)f(the)g(macro)h
+Fs(\\avectoc)p Fv(,)e(a)h(mo)m(v)m(e)i(is)e(made)f(to)i(the)f(\014nal)g
+(p)s(oin)m(t)g(\(cen)m(ter)h(of)f(the)g(circle\),)150
+2206 y(then)h(within)g(a)h(dra)m(wing)g(segmen)m(t,)j(a)d(scaled)g(mo)m
+(v)m(e)h(is)f(made)f(bac)m(k)i(to)m(w)m(ards)f(the)g(initial)h(p)s(oin)
+m(t)e(to)150 2315 y(determine)30 b(the)h(in)m(tersection)h(p)s(oin)m(t)
+f(with)f(the)g(circle.)390 2447 y Fs(\\def\\avectoc)44
+b(\(#1)j(#2\){\\currentpos)d(\\xa\\ya)1392 2556 y(\\cossin)i(\({\\xa})g
+(\\ya\)\(#1)g(#2\)\\cosa\\sina)1392 2666 y(\\savepos)g(\(#1)h
+(#2\)\(*tx)f(*ty\))1392 2776 y(\\bsegment)1488 2885 y(\\move)g(\(*tx)h
+(*ty\))1488 2995 y(\\setsegscale)d({\\cradius})1488 3104
+y(\\rmove)i(\({-\\cosa})f(-\\sina\))1488 3214 y(\\savecurrpos)f(\(*ex)j
+(*ey\))1392 3324 y(\\esegment)1392 3433 y(\\avec)g(\(*ex)f(*ey\))1392
+3543 y(\\move)h(\(#1)g(#2\)})390 3652 y(\\def\\avecfrc)d(\(#1)j
+(#2\){\\currentpos)d(\\xa\\ya)1392 3762 y(\\cossin)i(\({\\xa})g
+(\\ya\)\(#1)g(#2\)\\cosa\\sina)1392 3871 y(\\bsegment)1488
+3981 y(\\setsegscale)e({\\cradius})1488 4091 y(\\move)i(\({\\cosa})g
+(\\sina\))1488 4200 y(\\savecurrpos)e(\(*ex)j(*ey\))1392
+4310 y(\\esegment)1392 4419 y(\\move)g(\(*ex)f(*ey\))1392
+4529 y(\\avec)h(\(#1)g(#2\)})275 4661 y Fv(Ha)m(ving)38
+b(de\014ned)d(these)j(macros,)h(w)m(e)e(are)h(ready)e(to)i(dra)m(w)f
+(the)g(blo)s(c)m(k)g(diagram.)61 b(The)36 b(\014rst)h(and)150
+4770 y(last)d(sections)h(of)e(the)h(lattice)i(\014lter)d(are)h(v)m(ery)
+g(similar,)h(di\013ering)e(mainly)h(in)f(the)h(text)g(lab)s(els.)50
+b(With)150 4880 y(more)31 b(e\013ort,)g(co)s(de)g(could)f(b)s(e)g
+(shared)f(b)s(et)m(w)m(een)i(the)g(commands)f(used)f(to)j(dra)m(w)e
+(these)g(blo)s(c)m(ks.)390 5011 y Fs(\\centertexdraw{)390
+5121 y(\\drawdim)46 b(in)390 5230 y(\\arrowheadtype)e(t:F)95
+b(\\arrowheadsize)43 b(l:0.08)k(w:0.04)390 5340 y(\\def\\pl)f
+({$\\scriptscriptstyle)c(+$})47 b(\\def\\mn)f({$\\scriptscriptstyle)c
+(-$})p eop end
+%%Page: 30 34
+TeXDict begin 30 33 bop 150 -116 a Fv(App)s(endix)29
+b(C:)h(Examples)2588 b(30)390 408 y Fs(\\move)46 b(\(0)i(+0.63\))e
+(\\move)g(\(0)h(-0.60\))f(\045)i(compensate)d(for)i(the)g(text)f(size)
+390 518 y(\\move)g(\(0)i(0\))390 737 y(\045)f(Input)g(to)g(the)g(first)
+f(stage)390 847 y(\\bsegment)485 956 y(\\Ltext{$x\(n\)$})485
+1066 y(\\lvec)h(\(0.3)f(0\))i(\\bdot)e(\\lvec)g(\(0.3)h(+0.4\))f
+(\\move)h(\(0.3)f(0\))i(\\lvec)e(\(0.3)h(-0.4\))485 1176
+y(\\savepos)f(\(0.3)h(0\)\(*ex)f(*ey\))390 1285 y(\\esegment)390
+1395 y(\\move)g(\(*ex)h(*ey\))390 1614 y(\045)g(first)g(lattice)f
+(stage)390 1724 y(\\bsegment)485 1833 y(\\move)h(\(0)g(+0.4\))94
+b(\\avectoc)46 b(\(1.7)g(+0.4\))485 1943 y(\\pcir)h(\\putwnw{\\pl})d
+(\\puts{\\mn})485 2052 y(\\avecfrc)i(\(2.1)h(+0.4\))485
+2162 y(\\move)g(\(0)g(-0.4\))94 b(\\avec)46 b(\(0.4)h(-0.4\))f(\\delay)
+h(\\avectoc)e(\(1.7)i(-0.4\))485 2271 y(\\pcir)g(\\putwsw{\\pl})d
+(\\putn{\\mn})485 2381 y(\\avecfrc)i(\(2.1)h(-0.4\))485
+2491 y(\\move)g(\(0.9)f(+0.4\))95 b(\\bdot)f(\\avectoc)45
+b(\(1.7)i(-0.4\))485 2600 y(\\move)g(\(0.9)f(-0.4\))95
+b(\\bdot)f(\\avectoc)45 b(\(1.7)i(+0.4\))485 2710 y(\\move)g(\(0.1)f
+(+0.42\))h(\\Ttext)f({$f_0\(n\)$})485 2819 y(\\move)h(\(2.0)f(+0.42\))h
+(\\Ttext)f({$f_1\(n\)$})485 2929 y(\\move)h(\(0.1)f(-0.4\))95
+b(\\Btext)46 b({$b_0\(n\)$})485 3039 y(\\move)h(\(2.0)f(-0.4\))95
+b(\\Btext)46 b({$b_1\(n\)$})485 3148 y(\\textref)g(h:L)h(v:B)95
+b(\\htext)46 b(\(1.15)g(+0.2\){$K_1$})485 3258 y(\\textref)g(h:L)h(v:T)
+95 b(\\htext)46 b(\(1.15)g(-0.2\){$K_1$})485 3367 y(\\savepos)g(\(2.1)h
+(0\)\(*ex)f(*ey\))390 3477 y(\\esegment)390 3587 y(\\move)g(\(*ex)h
+(*ey\))390 3806 y(\045)g(center)g(section)390 3915 y(\\bsegment)485
+4025 y(\\textref)f(h:C)h(v:C)g(\\htext)f(\(0.3)h(+0.4\){$\\cdots$})485
+4134 y(\\htext)g(\(0.3)f(-0.4\){$\\cdots$})485 4244 y(\\savepos)g
+(\(0.6)h(0\)\(*ex)f(*ey\))390 4354 y(\\esegment)390 4463
+y(\\move)g(\(*ex)h(*ey\))390 4682 y(\045)g(last)g(lattice)f(stage)390
+4792 y(\\bsegment)485 4902 y(\\move)h(\(0)g(+0.4\))94
+b(\\avectoc)46 b(\(1.7)g(+0.4\))485 5011 y(\\pcir)h(\\putwnw{\\pl})d
+(\\puts{\\mn})485 5121 y(\\avecfrc)i(\(2.3)h(+0.4\))f
+(\\Rtext{$e\(n\)$})485 5230 y(\\move)h(\(0)g(-0.4\))94
+b(\\avec)46 b(\(0.4)h(-0.4\))f(\\delay)h(\\avectoc)e(\(1.7)i(-0.4\))485
+5340 y(\\pcir)g(\\putwsw{\\pl})d(\\putn{\\mn})p eop end
+%%Page: 31 35
+TeXDict begin 31 34 bop 150 -116 a Fv(App)s(endix)29
+b(C:)h(Examples)2588 b(31)485 299 y Fs(\\avecfrc)46 b(\(2.1)h(-0.4\))
+485 408 y(\\move)g(\(0.9)f(+0.4\))95 b(\\bdot)f(\\avectoc)45
+b(\(1.7)i(-0.4\))485 518 y(\\move)g(\(0.9)f(-0.4\))95
+b(\\bdot)f(\\avectoc)45 b(\(1.7)i(+0.4\))485 628 y(\\move)g(\(0.1)f
+(+0.42\))h(\\Ttext)f({$f_{P-1}\(n\)$})485 737 y(\\move)h(\(2.0)f
+(+0.42\))h(\\Ttext)f({$f_P\(n\)$})485 847 y(\\move)h(\(0.1)f(-0.4\))95
+b(\\Btext)46 b({$b_{P-1}\(n\)$})485 956 y(\\move)h(\(2.0)f(-0.4\))95
+b(\\Btext)46 b({$b_P\(n\)$})485 1066 y(\\textref)g(h:L)h(v:B)95
+b(\\htext)46 b(\(1.15)g(+0.2\){$K_P$})485 1176 y(\\textref)g(h:L)h(v:T)
+95 b(\\htext)46 b(\(1.15)g(-0.2\){$K_P$})390 1285 y(\\esegment)390
+1395 y(})275 1531 y Fv(The)27 b(macros)i(used)e(in)h(this)g(example)h
+(are)f(similar)h(to)g(the)f(blo)s(c)m(k)h(diagram)f(macros)h(de\014ned)
+e(in)h(the)150 1641 y(\014le)i Fs(blockdiagram.tex)p
+Fv(.)150 1885 y Fu(C.2)68 b(Filter)46 b(resp)t(onse)f(graph)150
+2044 y Fv(This)22 b(example)i(sho)m(ws)f(the)h(resp)s(onse)e(of)i(a)f
+(canonical)i(\014lter.)39 b(T)2322 2064 y(E)2372 2044
+y(Xdra)m(w)23 b(is)g(not)h(w)m(ell)g(suited)f(for)g(general)150
+2154 y(purp)s(ose)35 b(graphing)i(|)f(it)h(has)g(no)g(co)s(ordinate)g
+(translation)h(facilit)m(y)h(nor)d(do)s(es)h(it)g(ha)m(v)m(e)h
+(separate)g Fj(x)150 2263 y Fv(and)30 b Fj(y)38 b Fv(scaling.)k
+(Nonetheless,)31 b(for)g(certain)g(simple)f(graphs,)g(T)2366
+2283 y(E)2416 2263 y(Xdra)m(w)g(is)h(adequate.)1229 3429
+y @beginspecial 0 @hoffset 23 @voffset @setspecial
+%%BeginDocument: texdraw.p12
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.p12
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+0 0 mv
+0 420 (F) 24 12 av
+0 0 mv
+660 0 (F) 24 12 av
+0 0 mv
+bs
+0 15 lv
+es
+bs
+240 0 mv
+240 15 lv
+es
+bs
+360 0 mv
+360 15 lv
+es
+bs
+480 0 mv
+480 15 lv
+es
+7 sl
+0 300 mv
+120 300 lv
+132 299 lv
+144 296 lv
+156 292 lv
+168 285 lv
+180 277 lv
+192 267 lv
+204 256 lv
+216 243 lv
+228 228 lv
+240 212 lv
+252 195 lv
+264 176 lv
+276 157 lv
+288 136 lv
+300 115 lv
+312 93 lv
+324 70 lv
+336 47 lv
+348 23 lv
+360 0 lv
+570 0 lv
+stroke end showpage
+%%Trailer:
+%%BoundingBox: 0 -23 173 101
+%%EOF
+
+%%EndDocument
+ @endspecial 2597 3257 a Fp(!)1206 3326 y Fv(0)1682 3306
+y Fp(\031)p 1645 3347 129 4 v 1645 3430 a Fv(2)p Fp(N)1903
+3306 y(!)1960 3320 y Fh(s)2162 3306 y Fp(\031)p 2148
+3347 83 4 v 2148 3430 a(N)275 3669 y Fv(In)36 b(this)h(example,)k
+(macro)d Fs(\\ticklab)d Fv(places)j(a)g(lab)s(elled)g(axis)f(tic)m(k)i
+(at)f(a)g(giv)m(en)h(p)s(osition.)61 b(The)150 3779 y(data)38
+b(is)f(sp)s(eci\014ed)f(in)h(a)h(straigh)m(tforw)m(ard)f(manner,)i(ha)m
+(ving)e(b)s(een)g(scaled)h(b)s(eforehand)d(to)j(giv)m(e)h(the)150
+3888 y(desired)30 b(asp)s(ect)h(ratio)g(for)f(the)h(graph.)390
+4025 y Fs(\\centertexdraw{)390 4134 y(\\arrowheadtype)44
+b(t:F)95 b(\\arrowheadsize)43 b(l:0.08)k(w:0.04)390 4244
+y(\\def\\ds)f({\\displaystyle})390 4354 y(\\def\\ticklab)e(\(#1)j
+(#2\)#3{\\move\(#1)d(#2\))1488 4463 y(\\bsegment)1583
+4573 y(\\lvec)j(\(0)g(0.05\))1583 4682 y(\\textref)f(h:C)h(v:T)g
+(\\htext)f(\(0)h(-0.05\){#3})1488 4792 y(\\esegment})390
+4902 y(\\def\\Rtext)e(#1{\\bsegment)1154 5011 y(\\textref)g(h:L)i(v:C)g
+(\\htext)f(\(+0.08)g(0\){#1})1058 5121 y(\\esegment})390
+5340 y(\\move)g(\(2.4)h(-0.3\))190 b(\045)47 b(move)g(to)g(set)g(the)g
+(size)p eop end
+%%Page: 32 36
+TeXDict begin 32 35 bop 150 -116 a Fv(App)s(endix)29
+b(C:)h(Examples)2588 b(32)390 408 y Fs(\\move)46 b(\(0)i(0\))390
+518 y(\045)f(Axes)390 628 y(\\avec)f(\(0)i(+1.4\))390
+737 y(\\move)e(\(0)i(0\))f(\\avec)f(\(2.2)h(0\))g(\\Rtext{$\\omega$})
+390 847 y(\\ticklab)f(\(0)h(0\))142 b({0})390 956 y(\\ticklab)46
+b(\(0.8)g(0\))h({$\\ds)g({\\pi)f(\\over)h(2N})g($})390
+1066 y(\\ticklab)f(\(1.2)g(0\))h({$\\omega_s$})390 1176
+y(\\ticklab)f(\(1.6)g(0\))h({$\\ds)g({\\pi)f(\\over)h(N})g($})390
+1395 y(\\linewd)f(0.025)390 1504 y(\\move)g(\(0)i(1\))390
+1614 y(\\lvec)e(\(0.4)h(1\))390 1724 y(\\lvec)f(\(0.44)h(0.998\))390
+1833 y(\\lvec)f(\(0.48)h(0.988\))390 1943 y(\\lvec)f(\(0.52)h(0.973\))
+390 2052 y(\\lvec)f(\(0.56)h(0.951\))438 2162 y(...)390
+2271 y(\\lvec)f(\(1.08)h(0.233\))390 2381 y(\\lvec)f(\(1.12)h(0.156\))
+390 2491 y(\\lvec)f(\(1.16)h(0.078\))390 2600 y(\\lvec)f(\(1.20)h(0\))
+390 2710 y(\\lvec)f(\(1.9)h(0\))390 2819 y(})150 4852
+y Fu(C.3)68 b(Geometric)46 b(construction)150 5011 y
+Fv(This)23 b(example)h(sho)m(ws)f(a)h(geometric)h(construction)f(whic)m
+(h)f(places)h(an)f(ellipse)i(tangen)m(t)g(to)f(an)f(enclosing)150
+5121 y(circle.)41 b(The)27 b(size)h(of)g(the)g(ellipse)g(is)f
+(determined)g(from)g(geometric)j(considerations.)40 b(Macros)29
+b(are)f(used)150 5230 y(to)k(mo)s(dularize)f(the)h(co)s(de.)43
+b(The)31 b(example)h(alters)g(the)g(unit)f(scale)h(factor.)45
+b(This)30 b(allo)m(ws)j(the)e(dra)m(wing)150 5340 y(to)g(b)s(e)f
+(carried)g(out)h(in)f(units)g(normalized)h(to)g(the)f(radius)g(of)g
+(the)h(circle.)p eop end
+%%Page: 33 37
+TeXDict begin 33 36 bop 150 -116 a Fv(App)s(endix)29
+b(C:)h(Examples)2588 b(33)1008 1883 y @beginspecial 113
+@hoffset 113 @voffset @setspecial
+%%BeginDocument: texdraw.p13
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: (atend)
+%%Title: TeXdraw drawing: texdraw.p13
+%%Pages: 1
+%%Creator: 2019/04/18 TeXdraw V2R3
+%%CreationDate: 2019/4/18
+50 dict begin
+/mv {stroke moveto} def
+/lv {lineto} def
+/st {currentpoint stroke moveto} def
+/sl {st setlinewidth} def
+/sd {st 0 setdash} def
+/sg {st setgray} def
+/bs {gsave} def /es {stroke grestore} def
+/fl {gsave setgray fill grestore
+ currentpoint newpath moveto} def
+/fp {gsave setgray fill grestore st} def
+/cv {curveto} def
+/cr {gsave currentpoint newpath 3 -1 roll 0 360 arc
+ stroke grestore} def
+/fc {gsave setgray currentpoint newpath
+ 3 -1 roll 0 360 arc fill grestore} def
+/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def
+/el {gsave /svm matrix currentmatrix def
+ currentpoint translate scale newpath 0 0 1 0 360 arc
+ svm setmatrix stroke grestore} def
+/fe {gsave setgray currentpoint translate scale newpath
+ 0 0 1 0 360 arc fill grestore} def
+/av {/hhwid exch 2 div def /hlen exch def
+ /ah exch def /tipy exch def /tipx exch def
+ currentpoint /taily exch def /tailx exch def
+ /dx tipx tailx sub def /dy tipy taily sub def
+ /alen dx dx mul dy dy mul add sqrt def
+ /blen alen hlen sub def
+ gsave tailx taily translate dy dx atan rotate
+ (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse
+ stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto
+ (T) ah eq {closepath} if
+ (W) ah eq {gsave 1 setgray fill grestore closepath} if
+ (F) ah eq {fill} {stroke} ifelse
+ grestore tipx tipy moveto} def
+0.24 0.24 scale
+1 setlinecap 1 setlinejoin
+3 setlinewidth [] 0 setdash
+0 0 moveto
+3 sl
+450 cr
+-472 0 mv
+472 0 lv
+0 -472 mv
+0 472 lv
+0 0 mv
+318 318 lv
+6 0 fc
+318 -318 mv
+6 0 fc
+225 0 mv
+bs
+196 362 el
+6 0 fc
+225 67 mv
+bs
+bs
+225 44 mv
+225 90 lv
+es
+421 67 (V) 24 12 av
+bs
+421 44 mv
+421 90 lv
+es
+225 67 (V) 24 12 av
+323 67 mv
+es
+bs
+bs
+-113 0 mv
+-67 0 lv
+es
+-90 0 mv
+-90 362 (V) 24 12 av
+bs
+-113 362 mv
+-67 362 lv
+es
+-90 0 (V) 24 12 av
+-90 181 mv
+es
+es
+stroke end showpage
+%%Trailer:
+%%BoundingBox: -113 -113 113 113
+%%EOF
+
+%%EndDocument
+ @endspecial 2606 285 a(X)1864 1019 y(O)2358 1038 y Fp(\014)2409
+1052 y Fn(2)2449 747 y Ft(j)p Fp(\014)2525 761 y Fn(1)2563
+747 y Fv(+)p Fp(\014)2685 761 y Fn(3)2722 747 y Ft(j)1438
+600 y(j)p Fp(\014)1514 614 y Fn(1)1552 600 y Ft(\000)o
+Fp(\014)1673 614 y Fn(3)1711 600 y Ft(j)390 2162 y Fs(\\centertexdraw{)
+390 2271 y(\\arrowheadtype)44 b(t:V)j(\\arrowheadsize)d(l:0.08)i
+(w:0.04)390 2381 y(\\linewd)g(0.01)390 2491 y(\\setunitscale)e(1.5)572
+b(\045)48 b(circle)e(will)g(have)h(radius)f(1.5)h(inches)390
+2710 y(\\def\\Btext)e(#1{\\bsegment)1154 2819 y(\\textref)g(h:C)i(v:T)g
+(\\htext)f(\(0)h(-0.04\){#1})1058 2929 y(\\esegment})390
+3039 y(\\def\\Ttext)e(#1{\\bsegment)1154 3148 y(\\textref)g(h:C)i(v:B)g
+(\\htext)f(\(0)h(+0.04\){#1})1058 3258 y(\\esegment})390
+3367 y(\\def\\Ltext)e(#1{\\bsegment)1154 3477 y(\\textref)g(h:R)i(v:C)g
+(\\htext)f(\(-0.04)g(0\){#1})1058 3587 y(\\esegment})390
+3696 y(\\def\\bdot)f({\\fcir)h(f:0)h(r:0.0133)f(})390
+3806 y(\\def\\vtick)f({\\bsegment)1058 3915 y(\\move)i(\(0)g(-0.05\))f
+(\\lvec)g(\(0)h(+0.05\))963 4025 y(\\esegment})390 4134
+y(\\def\\htick)e({\\bsegment)1058 4244 y(\\move)i(\(-0.05)f(0\))h
+(\\lvec)f(\(+0.05)g(0\))963 4354 y(\\esegment})390 4463
+y(\\def\\Hlen)f(#1#2{\\bsegment)1201 4573 y(\\vtick)h(\\avec)h(\({#1})f
+(0\))h(\\vtick)f(\\avec)h(\(0)g(0\))1201 4682 y(\\relsegscale)e(0.5)
+1201 4792 y(\\move)i(\({#1})f(0\))h(\\Ttext)f({#2})1106
+4902 y(\\esegment})390 5011 y(\\def\\Vlen)f(#1#2{\\bsegment)1201
+5121 y(\\htick)h(\\avec)h(\(0)g({#1}\))f(\\htick)g(\\avec)h(\(0)g(0\))
+1201 5230 y(\\relsegscale)e(0.5)1201 5340 y(\\move)i(\(0)g({#1}\))f
+(\\Ltext)g({#2})p eop end
+%%Page: 34 38
+TeXDict begin 34 37 bop 3659 -116 a Fv(34)1106 299 y
+Fs(\\esegment})390 518 y(\\lcir)46 b(r:1)1193 b(\045)47
+b(circle)390 628 y(\\move)f(\(-1.05)g(0\))i(\\lvec)e(\()h(1.05)g(0\))
+143 b(\045)47 b(axes)390 737 y(\\move)f(\(0)i(-1.05\))e(\\lvec)g(\(0)95
+b(1.05\))390 956 y(\\move)46 b(\(0)i(0\))f(\\lvec)f(\(0.707)g(0.707\))g
+(\\bdot)390 1066 y(\\rmove)g(\(0.02)g(0.02\))h(\\textref)e(h:L)i(v:B)g
+(\\htext)f({X})390 1176 y(\\move)g(\(0.707)g(-0.707\))g(\\bdot)390
+1285 y(\\textref)g(h:R)g(v:T)h(\\htext\(-0.02)e(-0.02\){O})390
+1504 y(\\move)h(\(0.5)h(0\))1002 b(\045)47 b(center)f(of)h(ellipse)390
+1614 y(\\bsegment)485 1724 y(\\lellip)f(rx:0.435)g(ry:0.804)485
+1833 y(\\bdot)h(\\Btext)f({$\\beta_2$})485 1943 y(\\move)h(\(0)g
+(0.15\))f(\\Hlen)h({0.435}{$|\\beta_1{+}\\be)o(ta_3)o(|$})485
+2052 y(\\move)g(\(-0.7)f(0\))h(\\Vlen)g({0.804}{$|\\beta_1{-}\\be)o
+(ta_3)o(|$})390 2162 y(\\esegment)390 2271 y(})p eop
+end
+%%Page: 35 39
+TeXDict begin 35 38 bop 3659 -116 a Fv(35)150 299 y Fr(App)t(endix)52
+b(D)81 b(Alphab)t(etic)52 b(listing)g(of)i(commands)150
+528 y Fs(\\arrowheadsize)26 b(l:)p Fo(length)j Fs(w:)p
+Fo(width)630 637 y Fv(Set)c(the)h(arro)m(whead)f(size)h(to)g(b)s(e)f
+Fj(length)g Fv(units)g(long)h(and)e Fj(width)h Fv(units)f(wide.)39
+b(The)25 b(width)630 747 y(is)j(measured)f(across)h(the)g(\\base")h(of)
+f(the)g(arro)m(whead.)40 b(The)28 b(initial)h(arro)m(whead)f(size)g
+(has)630 856 y(a)j Fj(length)g Fv(of)f(0.16)i(inc)m(hes)f(and)e(a)i
+Fj(width)f Fv(of)g(0.08)i(inc)m(hes.)150 1014 y Fs(\\arrowheadtype)26
+b(t:)p Fo(type)630 1123 y Fv(Set)i(the)h(arro)m(whead)f(t)m(yp)s(e)g
+(to)h Fj(t)m(yp)s(e)p Fv(,)g(where)e Fj(t)m(yp)s(e)34
+b Fv(is)28 b(one)g(of)g Fs(F)p Fv(,)h Fs(T)p Fv(,)f Fs(W)p
+Fv(,)h Fs(V)p Fv(,)f(or)g Fs(H)p Fv(.)40 b(There)28 b(are)630
+1233 y(t)m(w)m(o)e(kinds)e(of)h(arro)m(wheads.)38 b(The)25
+b(\014rst)f(kind)g(is)g(a)h(triangle.)41 b(There)24 b(are)h(3)g(v)-5
+b(arian)m(ts:)39 b(t)m(yp)s(e)630 1342 y Fs(T)25 b Fv(is)g(an)g(empt)m
+(y)h(triangle,)h(t)m(yp)s(e)f Fs(F)f Fv(is)g(a)g(\014lled)g(triangle)i
+(\(using)e(the)g(curren)m(t)g(gra)m(y)h(lev)m(el)h(for)630
+1452 y(lines\),)h(t)m(yp)s(e)e Fs(W)g Fv(is)g(a)g(triangle)h(\014lled)f
+(with)g(white.)39 b(The)26 b(second)g(kind)f(of)h(arro)m(whead)g(is)g
+(an)630 1562 y(op)s(en)i(ended)g(V)-8 b(ee.)41 b(There)28
+b(are)h(2)g(v)-5 b(arian)m(ts:)40 b(t)m(yp)s(e)29 b Fs(V)f
+Fv(has)g(the)h(stem)g(con)m(tin)m(ue)h(to)f(the)g(tip,)630
+1671 y(t)m(yp)s(e)k Fs(H)f Fv(has)g(the)h(stem)g(stop)f(at)h(the)g
+(base)g(of)f(the)h(arro)m(whead.)47 b(The)32 b(initial)i(arro)m(whead)
+630 1781 y(t)m(yp)s(e)d(is)f Fs(T)p Fv(.)150 1938 y Fs(\\avec)f(\()p
+Fo(x)h(y)p Fs(\))630 2048 y Fv(Dra)m(w)36 b(a)g(line)g(with)f(an)h
+(arro)m(whead)f(from)g(the)h(curren)m(t)f(p)s(osition)h(to)g
+Fs(\()p Fo(x)30 b(y)p Fs(\))p Fv(.)55 b(The)35 b(new)630
+2157 y(curren)m(t)c(p)s(osition)g(is)g Fs(\()p Fo(x)f(y)p
+Fs(\))p Fv(.)42 b(The)30 b(arro)m(whead)h(is)g(aligned)h(with)f(the)g
+(line,)h(with)f(the)g(tip)630 2267 y(at)g Fs(\()p Fo(x)f(y)p
+Fs(\))p Fv(.)150 2424 y Fs(\\begin{texdraw})630 2534
+y Fv(Start)g(a)g(T)988 2553 y(E)1038 2534 y(Xdra)m(w)f(dra)m(wing.)40
+b(The)30 b(dra)m(wing)f(is)h(terminated)g(with)f(an)h
+Fs(\\end{texdraw})630 2643 y Fv(command.)40 b(This)30
+b(command)g(is)h(for)f(use)g(with)g(LaT)2449 2663 y(E)2499
+2643 y(X.)150 2800 y Fs(\\bsegment)630 2910 y Fv(Start)23
+b(a)g(dra)m(wing)f(segmen)m(t.)39 b(The)22 b(co)s(ordinate)i(system)e
+(is)h(shifted)f(suc)m(h)g(that)h(the)g(curren)m(t)630
+3020 y(p)s(osition)28 b(corresp)s(onds)f(to)i(the)g(co)s(ordinate)g
+Fs(\(0)h(0\))p Fv(.)39 b(Changes)28 b(to)h(scaling,)h(p)s(osition)f
+(and)630 3129 y(line)i(parameters)f(sta)m(y)i(lo)s(cal)f(to)h(the)e
+(dra)m(wing)g(segmen)m(t.)150 3286 y Fs(\\btexdraw)630
+3396 y Fv(Start)d(a)g(T)982 3416 y(E)1032 3396 y(Xdra)m(w)f(dra)m
+(wing.)40 b(The)26 b(dra)m(wing)g(is)h(terminated)g(with)f(an)h
+Fs(\\etexdraw)d Fv(com-)630 3506 y(mand.)150 3663 y Fs(\\centertexdraw)
+i({)31 b(...)e(})630 3772 y Fv(Cen)m(ter)43 b(a)g(T)1077
+3792 y(E)1127 3772 y(Xdra)m(w)f(b)s(o)m(x.)77 b(The)42
+b(argumen)m(t)h(con)m(tains)h(T)2716 3792 y(E)2766 3772
+y(Xdra)m(w)f(commands.)76 b(The)630 3882 y(resulting)33
+b(b)s(o)m(x)f(has)g(the)h(horizon)m(tal)h(size)g Fs(\\hsize)d
+Fv(and)h(heigh)m(t)h(equal)g(to)h(the)e(heigh)m(t)i(of)630
+3992 y(the)d(dra)m(wing.)150 4149 y Fs(\\clvec)e(\()p
+Fo(x1)g(y1)p Fs(\)\()p Fo(x2)g(y2)p Fs(\)\()p Fo(x3)f(y3)p
+Fs(\))630 4258 y Fv(Dra)m(w)f(a)g(Bezier)h(curv)m(e)f(from)f(the)h
+(curren)m(t)g(p)s(osition)f(to)i(the)e(co)s(ordinate)i
+Fs(\()p Fo(x3)h(y3)p Fs(\))d Fv(whic)m(h)630 4368 y(b)s(ecomes)i(the)h
+(new)e(curren)m(t)h(p)s(osition.)40 b(The)28 b(co)s(ordinates)g
+Fs(\()p Fo(x1)i(y1)p Fs(\))d Fv(and)h Fs(\()p Fo(x2)h(y2)p
+Fs(\))e Fv(serv)m(e)630 4478 y(as)f(con)m(trol)g(p)s(oin)m(ts)f(for)g
+(the)h(curv)m(e.)39 b(Only)25 b(the)g(last)i(co)s(ordinate)f(giv)m(en)g
+(is)f(used)g(to)h(up)s(date)630 4587 y(the)31 b(size)g(of)f(the)h(dra)m
+(wing.)150 4744 y Fs(\\drawbb)144 b Fv(Dra)m(w)30 b(a)h(ruled)e(b)s(o)m
+(x)g(around)g(the)h(e\013ectiv)m(e)j(size)d(of)g(a)h(dra)m(wing)e(pro)s
+(duced)f(b)m(y)i(T)3437 4764 y(E)3487 4744 y(Xdra)m(w)630
+4854 y(commands.)150 5011 y Fs(\\drawdim)e Fo(dim)630
+5121 y Fv(Set)h(the)g(units)f(to)h Fj(dim)p Fv(.)40 b(The)28
+b(argumen)m(t)h Fj(dim)f Fv(can)h(b)s(e)f(an)m(y)h(v)-5
+b(alid)29 b(T)2988 5140 y(E)3038 5121 y(X)g(dimension)f(unit.)630
+5230 y(The)g(units)h(are)g(used)f(to)i(in)m(terpret)f(co)s(ordinate)h
+(v)-5 b(alues.)41 b(Examples)29 b(of)g(v)-5 b(alid)29
+b(units:)39 b Fs(cm)p Fv(,)630 5340 y Fs(mm)p Fv(,)30
+b Fs(in)p Fv(,)g Fs(pt)p Fv(,)g(and)g Fs(bp)p Fv(.)p
+eop end
+%%Page: 36 40
+TeXDict begin 36 39 bop 150 -116 a Fv(App)s(endix)29
+b(D:)i(Alphab)s(etic)f(listing)i(of)e(commands)1706 b(36)150
+299 y Fs(\\end{texdraw})630 408 y Fv(End)44 b(a)i(T)980
+428 y(E)1030 408 y(Xdra)m(w)g(dra)m(wing)f(started)h(with)f(a)h
+Fs(\\begin{texdraw})41 b Fv(command.)86 b(The)630 518
+y(resulting)34 b(T)1059 538 y(E)1109 518 y(Xdra)m(w)f(dra)m(wing)g(is)h
+(placed)g(in)f(a)g(b)s(o)m(x)h(with)f(heigh)m(t)h(equal)g(to)g(the)g
+(heigh)m(t)630 628 y(of)c(the)h(dra)m(wing)f(and)g(width)f(equal)i(to)g
+(the)f(width)g(of)g(the)h(dra)m(wing.)40 b(The)30 b(depth)f(of)i(the)
+630 737 y(b)s(o)m(x)f(is)h(zero.)41 b(This)30 b(command)g(is)g(for)g
+(use)h(with)f(LaT)2493 757 y(E)2543 737 y(X.)150 888
+y Fs(\\esegment)630 998 y Fv(End)23 b(a)i(dra)m(wing)f(segmen)m(t.)40
+b(The)24 b(curren)m(t)h(p)s(osition)f(in)g(e\013ect)i(b)s(efore)e(the)h
+(corresp)s(onding)630 1107 y Fs(\\bsegment)j Fv(command)h(is)i
+(restored.)40 b(The)30 b(scaling)h(and)f(line)g(parameter)h(v)-5
+b(alues)30 b(rev)m(ert)630 1217 y(to)h(those)g(in)f(e\013ect)i(b)s
+(efore)e(the)g(corresp)s(onding)g Fs(\\bsegment)e Fv(w)m(as)i(in)m(v)m
+(ok)m(ed.)150 1367 y Fs(\\etexdraw)630 1477 y Fv(End)36
+b(a)h(T)963 1497 y(E)1013 1477 y(Xdra)m(w)g(dra)m(wing)g(started)g
+(with)g(a)g Fs(\\btexdraw)d Fv(command.)60 b(The)37 b(resulting)630
+1587 y(T)681 1606 y(E)731 1587 y(Xdra)m(w)k(dra)m(wing)g(is)h(placed)g
+(in)f(a)h(b)s(o)m(x)f(with)g(heigh)m(t)h(equal)g(to)g(the)g(heigh)m(t)g
+(of)g(the)630 1696 y(dra)m(wing)30 b(and)f(width)g(equal)h(to)h(the)f
+(width)f(of)h(the)g(dra)m(wing.)41 b(The)29 b(depth)g(of)h(the)g(b)s(o)
+m(x)g(is)630 1806 y(zero.)150 1956 y Fs(\\everytexdraw)d({)j(...)f(})
+630 2066 y Fv(Sp)s(ecify)d(T)993 2086 y(E)1043 2066 y(Xdra)m(w)g
+(commands)g(to)h(b)s(e)f(executed)i(at)f(the)f(b)s(eginning)g(of)h(ev)m
+(ery)g(T)3437 2086 y(E)3487 2066 y(Xdra)m(w)630 2176
+y(dra)m(wing.)150 2326 y Fs(\\fcir)i(f:)p Fo(level)f
+Fs(r:)p Fo(radius)630 2436 y Fv(Dra)m(w)k(a)f(\014lled)g(circle)h(with)
+f(cen)m(ter)h(at)f(the)h(curren)m(t)e(p)s(osition.)43
+b(The)31 b(radius)f(is)h(sp)s(eci\014ed)630 2545 y(b)m(y)j
+Fj(radius)p Fv(.)50 b(The)34 b(circle)h(is)f(pain)m(ted)g(with)g(the)g
+(gra)m(y)h(lev)m(el)h(sp)s(eci\014ed)d(b)m(y)h Fj(lev)m(el)p
+Fv(.)53 b(A)34 b(gra)m(y)630 2655 y(lev)m(el)27 b(of)e(1)h(corresp)s
+(onds)e(to)i(white,)g(with)f(decreasing)h(v)-5 b(alues)26
+b(getting)h(dark)m(er.)39 b(The)24 b(lev)m(el)630 2765
+y(0)37 b(is)g(full)f(blac)m(k.)60 b(This)36 b(command)g(do)s(es)g(not)h
+(dra)m(w)f(a)h(line)g(along)h(the)e(circumference.)630
+2874 y(The)30 b(dra)m(wing)g(size)h(is)g(increased)f(if)h(necessary)g
+(to)g(con)m(tain)g(the)g(circle.)150 3025 y Fs(\\fellip)d(f:)p
+Fo(level)h Fs(rx:)p Fo(x-radius)e Fs(ry:)p Fo(y-radius)630
+3134 y Fv(Dra)m(w)36 b(a)g(\014lled)g(ellipse)g(with)g(cen)m(ter)g(at)h
+(the)f(curren)m(t)f(p)s(osition.)57 b(The)35 b(radius)g(in)g(the)h
+Fj(x)630 3244 y Fv(direction)d(is)f(sp)s(eci\014ed)g(b)m(y)g
+Fj(x-radius)p Fv(.)45 b(The)32 b(radius)f(in)h(the)h
+Fj(y)39 b Fv(direction)33 b(is)g(sp)s(eci\014ed)e(b)m(y)630
+3354 y Fj(y-radius)p Fv(.)54 b(The)34 b(ellipse)i(is)f(pain)m(ted)g
+(with)g(the)g(gra)m(y)g(lev)m(el)i(sp)s(eci\014ed)d(b)m(y)h
+Fj(lev)m(el)p Fv(.)56 b(A)35 b(gra)m(y)630 3463 y(lev)m(el)27
+b(of)e(1)h(corresp)s(onds)e(to)i(white,)g(with)f(decreasing)h(v)-5
+b(alues)26 b(getting)h(dark)m(er.)39 b(The)24 b(lev)m(el)630
+3573 y(0)32 b(is)g(full)f(blac)m(k.)46 b(This)31 b(command)g(do)s(es)g
+(not)h(dra)m(w)g(a)g(line)g(along)g(the)g(b)s(oundary)e(of)i(the)630
+3682 y(ellipse.)42 b(The)29 b(dra)m(wing)i(size)g(is)f(increased)h(if)f
+(necessary)h(to)g(con)m(tain)h(the)e(ellipse.)150 3833
+y Fs(\\htext)f(\()p Fo(x)g(y)p Fs(\){)p Fo(text)p Fs(})150
+3943 y(\\htext)g({)p Fo(text)p Fs(})630 4052 y Fv(The)h(\014rst)f(form)
+h(of)g(this)g(command)g(places)h(the)f(T)2388 4072 y(E)2438
+4052 y(X)h(text)g Fj(text)i Fv(horizon)m(tally)f(with)e(the)630
+4162 y(text)38 b(reference)f(p)s(oin)m(t)f(at)h(the)g(co)s(ordinate)h
+Fs(\()p Fo(x)29 b(y)p Fs(\))p Fv(.)59 b(The)36 b(new)g(curren)m(t)g(p)s
+(osition)h(is)g Fs(\()p Fo(x)630 4271 y(y)p Fs(\))p Fv(.)60
+b(The)37 b(second)g(form)g(of)g(this)g(command)g(places)g(the)h(T)2731
+4291 y(E)2781 4271 y(X)f(text)h Fj(text)i Fv(horizon)m(tally)630
+4381 y(with)31 b(the)h(text)h(reference)f(p)s(oin)m(t)f(at)i(the)e
+(curren)m(t)h(p)s(osition.)44 b(The)31 b(text)i(reference)f(p)s(oin)m
+(t)630 4491 y(is)e(set)h(with)f(the)h Fs(\\textref)d
+Fv(command.)150 4641 y Fs(\\ifill)h(f:)p Fo(level)630
+4751 y Fv(Close)e(the)h(curren)m(t)e(path)h(and)f(pain)m(t)i(the)f(in)m
+(terior)g(of)g(the)g(region)h(with)f(gra)m(y)g(lev)m(el)i
+Fj(lev)m(el)p Fv(.)630 4861 y(The)42 b(line)g(around)f(the)i(path)f(is)
+g(not)h(dra)m(wn.)75 b(Gra)m(y)43 b(lev)m(els)h(are)e(real)h(v)-5
+b(alues)43 b(from)f(0)630 4970 y(\(blac)m(k\))32 b(through)e(in)m
+(termediate)i(v)-5 b(alues)31 b(\(gra)m(ys\))g(to)g(1)g(\(white\).)150
+5121 y Fs(\\larc)e(r:)p Fo(radius)f Fs(sd:)p Fo(start-angle)f
+Fs(ed:)p Fo(end-angle)630 5230 y Fv(Dra)m(w)33 b(a)g(coun)m(terclo)s(c)
+m(kwise)i(arc.)48 b(The)33 b(cen)m(ter)g(of)g(the)g(arc)g(is)g(at)g
+(the)g(curren)m(t)g(p)s(osition.)630 5340 y(The)38 b(radius)g(is)g(sp)s
+(eci\014ed)g(b)m(y)h Fj(radius)p Fv(.)64 b(The)38 b(start)h(and)f(end)g
+(angles)h(\(in)g(degrees\))h(are)p eop end
+%%Page: 37 41
+TeXDict begin 37 40 bop 150 -116 a Fv(App)s(endix)29
+b(D:)i(Alphab)s(etic)f(listing)i(of)e(commands)1706 b(37)630
+299 y(sp)s(eci\014ed)23 b(b)m(y)h Fj(start-angle)31 b
+Fv(and)23 b Fj(end-angle)p Fv(.)39 b(This)23 b(command)h(do)s(es)g(not)
+g(a\013ect)h(the)f(limits)630 408 y(\(size\))32 b(of)e(the)h(dra)m
+(wing.)150 562 y Fs(\\lcir)e(r:)p Fo(radius)630 671 y
+Fv(Dra)m(w)38 b(a)g(circle)g(with)f(cen)m(ter)i(at)f(the)g(curren)m(t)f
+(p)s(osition.)62 b(The)36 b(radius)h(is)g(sp)s(eci\014ed)g(b)m(y)630
+781 y Fj(radius)p Fv(.)43 b(This)31 b(command)g(dra)m(ws)g(a)h(line)g
+(along)h(the)f(circumference)f(of)h(the)g(circle.)45
+b(The)630 891 y(dra)m(wing)30 b(size)h(is)g(increased)g(if)f(necessary)
+h(to)g(con)m(tain)g(the)g(circle.)150 1044 y Fs(\\lellip)d(rx:)p
+Fo(x-radius)g Fs(ry:)p Fo(y-radius)630 1154 y Fv(Dra)m(w)22
+b(an)f(ellipse)h(with)f(cen)m(ter)h(at)g(the)f(curren)m(t)g(p)s
+(osition.)38 b(The)20 b(radius)h(in)g(the)g Fj(x)27 b
+Fv(direction)630 1263 y(is)32 b(sp)s(eci\014ed)g(b)m(y)g
+Fj(x-radius)p Fv(.)46 b(The)32 b(radius)f(in)i(the)f
+Fj(y)40 b Fv(direction)33 b(is)f(sp)s(eci\014ed)g(b)m(y)g
+Fj(y-radius)p Fv(.)630 1373 y(The)e(dra)m(wing)g(size)h(is)g(increased)
+f(if)h(necessary)g(to)g(con)m(tain)g(the)g(ellipse.)150
+1526 y Fs(\\lfill)e(f:)p Fo(level)630 1636 y Fv(Close)35
+b(the)g(curren)m(t)f(path,)i(dra)m(w)e(the)h(line)g(around)f(the)h
+(path)f(using)g(the)h(curren)m(t)g(grey)630 1745 y(lev)m(el)29
+b(for)e(lines)h(and)f(pain)m(t)h(the)f(in)m(terior)i(of)e(the)h(region)
+g(with)f(sp)s(eci\014ed)g(gra)m(y)h(lev)m(el)h Fj(lev)m(el)p
+Fv(.)630 1855 y(Gra)m(y)34 b(lev)m(els)g(are)g(real)g(v)-5
+b(alues)33 b(from)g(0)g(\(blac)m(k\))i(through)d(in)m(termediate)j(v)-5
+b(alues)33 b(\(gra)m(ys\))630 1965 y(to)e(1)g(\(white\).)150
+2118 y Fs(\\linewd)d Fo(width)630 2228 y Fv(Set)j(the)f(line)h(width)f
+(to)h Fj(width)f Fv(units.)40 b(Initially)32 b Fj(width)d
+Fv(is)i(0.01)h(inc)m(hes)f(\(corresp)s(onding)630 2337
+y(to)g(3)g(pixels)f(at)i(300)f(pixels)g(to)g(the)f(inc)m(h\).)150
+2491 y Fs(\\lpatt)f(\()p Fo(pattern)p Fs(\))630 2600
+y Fv(Set)41 b(lines)f(to)h(ha)m(v)m(e)h(the)f(pattern)f
+Fs(\()p Fo(pattern)p Fs(\))p Fv(.)68 b(A)41 b(pattern)f(is)h(a)g
+(sequence)g(of)f(on/o\013)630 2710 y(lengths)f(separated)h(b)m(y)f
+(blanks)g(and)f(enclosed)i(in)f(paren)m(theses.)68 b(The)38
+b(lengths)i(alter-)630 2819 y(nately)g(sp)s(ecify)e(the)i(length)f(of)g
+(a)h(dash)e(and)g(the)h(length)h(of)f(a)g(gap)h(b)s(et)m(w)m(een)f
+(dashes.)630 2929 y(Eac)m(h)g(length)g(is)g(in)m(terpreted)f(using)g
+(the)h(curren)m(t)f(scaling)i(and)e(dra)m(wing)g(units.)64
+b(The)630 3039 y(pattern)33 b(is)f(used)g(cyclically)-8
+b(.)50 b(The)32 b(empt)m(y)h(pattern)f(signi\014es)h(a)g(solid)f(line.)
+48 b(The)32 b(initial)630 3148 y(line)f(pattern)f(is)h(a)f(solid)h
+(line,)g(corresp)s(onding)e(to)i(the)g(empt)m(y)g(pattern)f
+Fs(\\lpatt)f(\(\))p Fv(.)150 3302 y Fs(\\lvec)g(\()p
+Fo(x)h(y)p Fs(\))630 3411 y Fv(Dra)m(w)37 b(a)h(line)f(from)f(the)h
+(curren)m(t)f(p)s(osition)h(to)h(co)s(ordinate)g Fs(\()p
+Fo(x)29 b(y)p Fs(\))p Fv(.)60 b(The)36 b(new)g(curren)m(t)630
+3521 y(p)s(osition)30 b(is)h Fs(\()p Fo(x)f(y)p Fs(\))p
+Fv(.)150 3674 y Fs(\\move)f(\()p Fo(x)h(y)p Fs(\))630
+3784 y Fv(Mo)m(v)m(e)i(to)g(co)s(ordinate)f Fs(\()p Fo(x)f(y)p
+Fs(\))p Fv(.)40 b(The)29 b(new)h(curren)m(t)h(p)s(osition)f(is)g
+Fs(\()p Fo(x)g(y)p Fs(\))p Fv(.)150 3937 y Fs(\\ravec)f(\()p
+Fo(dx)g(dy)p Fs(\))630 4047 y Fv(Dra)m(w)39 b(a)g(line)f(with)g(an)h
+(arro)m(whead)f(from)g(the)h(curren)m(t)f(p)s(osition,)i
+Fj(dx)k Fv(units)38 b(in)g(the)h Fj(x)630 4156 y Fv(direction)d(and)f
+Fj(y)43 b Fv(units)35 b(in)g(the)h Fj(y)43 b Fv(direction.)57
+b(The)35 b(\014nal)g(p)s(osition)h(b)s(ecomes)g(the)f(new)630
+4266 y(curren)m(t)h(p)s(osition.)57 b(The)36 b(arro)m(whead)g(is)g
+(aligned)g(with)g(the)g(line,)i(with)e(the)g(tip)g(at)h(the)630
+4376 y(new)30 b(curren)m(t)g(p)s(osition.)150 4529 y
+Fs(\\relsegscale)d Fo(value)630 4639 y Fv(Adjust)36 b(the)h(segmen)m(t)
+h(scale)h(factor)e(b)m(y)g(m)m(ultiplying)h(b)m(y)f Fj(v)-5
+b(alue)p Fv(.)60 b(This)37 b(has)f(the)h(e\013ect)630
+4748 y(of)c(m)m(ultiplying)h(the)f(curren)m(t)g(o)m(v)m(erall)i(scale)f
+(factor)g(b)m(y)f(the)g(same)h(factor.)49 b(The)33 b(o)m(v)m(erall)630
+4858 y(scaling)23 b(factor)g(is)f(the)h(pro)s(duct)e(of)h(the)g(unit)g
+(scale)h(factor)g(and)f(the)g(segmen)m(t)h(scale)h(factor.)150
+5011 y Fs(\\relunitscale)j Fo(value)630 5121 y Fv(Adjust)39
+b(the)i(unit)f(scale)h(factor)g(b)m(y)f(m)m(ultiplying)h(b)m(y)f
+Fj(v)-5 b(alue)p Fv(.)71 b(This)40 b(has)g(the)g(e\013ect)i(of)630
+5230 y(m)m(ultiplying)h(the)g(o)m(v)m(erall)i(scale)e(factor)h(b)m(y)e
+(the)h(same)g(factor.)78 b(The)42 b(o)m(v)m(erall)j(scaling)630
+5340 y(factor)31 b(is)g(the)f(pro)s(duct)f(of)i(the)g(unit)f(scale)h
+(factor)h(and)d(the)i(segmen)m(t)g(scale)h(factor.)p
+eop end
+%%Page: 38 42
+TeXDict begin 38 41 bop 150 -116 a Fv(App)s(endix)29
+b(D:)i(Alphab)s(etic)f(listing)i(of)e(commands)1706 b(38)150
+299 y Fs(\\rlvec)29 b(\()p Fo(dx)g(dy)p Fs(\))630 408
+y Fv(Dra)m(w)g(a)g(line)f(from)g(the)h(curren)m(t)f(p)s(osition,)h
+Fj(dx)34 b Fv(units)27 b(in)h(the)h Fj(x)34 b Fv(direction)29
+b(and)f Fj(dy)36 b Fv(units)630 518 y(in)30 b(the)h Fj(y)38
+b Fv(direction.)j(The)30 b(\014nal)g(p)s(osition)g(b)s(ecomes)h(the)g
+(new)e(curren)m(t)i(p)s(osition.)150 664 y Fs(\\rmove)e(\()p
+Fo(dx)g(dy)p Fs(\))630 774 y Fv(Mo)m(v)m(e)g(from)e(the)h(curren)m(t)f
+(p)s(osition,)h Fj(dx)33 b Fv(units)27 b(in)g(the)h Fj(x)33
+b Fv(direction)c(and)d Fj(dy)35 b Fv(units)27 b(in)g(the)630
+883 y Fj(y)38 b Fv(direction.)j(The)30 b(\014nal)g(p)s(osition)h(b)s
+(ecomes)f(the)h(new)f(curren)m(t)g(p)s(osition.)150 1029
+y Fs(\\rtext)f(td:)p Fo(angle)f Fs(\(x)i(y\){)p Fo(text)p
+Fs(})150 1139 y(\\rtext)f(td:)p Fo(angle)f Fs({)p Fo(text)p
+Fs(})630 1249 y Fv(The)j(\014rst)h(form)f(of)h(this)g(command)f(places)
+i(the)f(T)2402 1268 y(E)2452 1249 y(X)g(text)h Fj(text)i
+Fv(at)e(an)e(angle)i(with)f(the)630 1358 y(text)26 b(reference)f(p)s
+(oin)m(t)f(at)i(the)f(co)s(ordinate)g Fs(\()p Fo(x)30
+b(y)p Fs(\))p Fv(.)38 b(The)24 b(new)h(curren)m(t)f(p)s(osition)h(is)g
+Fs(\()p Fo(x)k(y)p Fs(\))p Fv(.)630 1468 y(The)35 b(second)h(form)f(of)
+h(this)f(command)h(places)g(the)g(T)2538 1487 y(E)2588
+1468 y(X)g(text)g Fj(text)j Fv(at)d(an)g(angle)g(with)630
+1577 y(the)31 b(text)g(reference)g(p)s(oin)m(t)f(at)i(the)e(curren)m(t)
+g(p)s(osition.)41 b(In)30 b(b)s(oth)g(cases,)h(the)g(T)3351
+1597 y(E)3401 1577 y(X)f(text)i(is)630 1687 y(placed)27
+b(in)g(a)g(b)s(o)m(x)g(and)f(the)h(b)s(o)m(x)f(is)h(rotated)h(coun)m
+(terclo)s(c)m(kwise)h(b)m(y)e Fj(angle)33 b Fv(degrees)27
+b(ab)s(out)630 1797 y(the)41 b(text)h(reference)f(p)s(oin)m(t.)72
+b(The)40 b(text)i(reference)f(p)s(oin)m(t)g(is)g(set)g(with)f(the)h
+Fs(\\textref)630 1906 y Fv(command.)150 2052 y Fs(\\savecurrpos)27
+b(\(*)p Fo(px)i Fs(*)p Fo(py)p Fs(\))630 2162 y Fv(Sa)m(v)m(e)j(the)e
+(curren)m(t)g(p)s(osition)h(as)f(the)h(absolute)g(p)s(osition)g
+(referenced)f(b)m(y)g Fs(\(*)p Fo(px)f Fs(*)p Fo(py)p
+Fs(\))p Fv(.)150 2308 y Fs(\\savepos)f(\()p Fo(x)i(y)p
+Fs(\)\(*)p Fo(px)f Fs(*)p Fo(py)p Fs(\))630 2418 y Fv(Sa)m(v)m(e)h(the)
+g(co)s(ordinate)f(p)s(osition)h Fs(\()p Fo(x)f(y)p Fs(\))g
+Fv(as)g(the)g(absolute)h(p)s(osition)f(referenced)g(b)m(y)g
+Fs(\(*)p Fo(px)630 2527 y Fs(*)p Fo(py)p Fs(\))p Fv(.)38
+b(The)23 b(co)s(ordinate)j Fs(\()p Fo(x)j(y)p Fs(\))24
+b Fv(is)h(in)m(terpreted)f(in)h(the)f(normal)g(fashion)h(as)f(a)h(co)s
+(ordinate)630 2637 y(relativ)m(e)36 b(to)e(the)g(curren)m(t)g(segmen)m
+(t,)i(using)d(the)h(curren)m(t)g(scaling)g(factors)h(and)e(dra)m(wing)
+630 2746 y(unit.)150 2892 y Fs(\\setgray)28 b Fo(level)630
+3002 y Fv(Set)35 b(the)g(gra)m(y)g(lev)m(el)i(of)d(lines.)54
+b(Gra)m(y)36 b(lev)m(els)g(are)f(real)g(v)-5 b(alues)35
+b(from)f(0)h(\(blac)m(k\))i(through)630 3112 y(in)m(termediate)26
+b(v)-5 b(alues)24 b(\(gra)m(y\))i(to)e(1)h(\(white\).)39
+b(The)24 b(initial)h(gra)m(y)g(lev)m(el)h(is)e(0)g(corresp)s(onding)630
+3221 y(to)31 b(blac)m(k.)150 3367 y Fs(\\setsegscale)c
+Fo(scale)630 3477 y Fv(Set)39 b(the)g(segmen)m(t)h(scale)h(factor.)67
+b(The)39 b(argumen)m(t)g Fj(scale)46 b Fv(is)39 b(a)g(real)h(n)m(um)m
+(b)s(er)d(whic)m(h)i(is)630 3587 y(used)33 b(to)i(scale)h(co)s
+(ordinate)e(v)-5 b(alues.)53 b(The)33 b(o)m(v)m(erall)k(scale)e(factor)
+g(is)f(the)h(pro)s(duct)d(of)j(the)630 3696 y(unit)30
+b(scale)i(factor)f(and)f(the)g(segmen)m(t)i(scale)f(factor.)150
+3842 y Fs(\\setunitscale)c Fo(scale)630 3952 y Fv(Set)f(the)g(unit)f
+(scaling)i(to)f Fj(scale)p Fv(.)40 b(The)25 b(argumen)m(t)h
+Fj(scale)32 b Fv(is)26 b(a)g(real)g(n)m(um)m(b)s(er)f(whic)m(h)g(is)h
+(used)630 4061 y(to)k(scale)h(co)s(ordinate)g(v)-5 b(alues.)41
+b(The)29 b(o)m(v)m(erall)j(scaling)e(factor)h(is)f(the)f(pro)s(duct)g
+(of)h(the)f(unit)630 4171 y(scale)j(factor)f(and)f(the)g(segmen)m(t)i
+(scale)g(factor.)150 4317 y Fs(\\textref)c(h:)p Fo(h-ref)h
+Fs(v:)p Fo(v-ref)630 4427 y Fv(Set)42 b(the)g(text)g(reference)g(p)s
+(oin)m(t)g(for)f(subsequen)m(t)g(text)i(commands.)74
+b(The)41 b(horizon)m(tal)630 4536 y(reference)f(p)s(oin)m(t)g
+Fj(h-ref)57 b Fv(is)40 b(one)g(of)f Fs(L)p Fv(,)j Fs(C)e
+Fv(or)g Fs(R)f Fv(\(left,)k(cen)m(ter)e(or)f(righ)m(t\).)70
+b(The)39 b(v)m(ertical)630 4646 y(reference)d(p)s(oin)m(t)g
+Fj(v-ref)53 b Fv(is)36 b(one)f(of)h Fs(T)p Fv(,)h Fs(C)e
+Fv(or)h Fs(B)f Fv(\(top,)j(cen)m(ter)f(or)e(b)s(ottom\).)57
+b(F)-8 b(or)37 b(rotated)630 4756 y(text,)25 b(the)d(reference)h(p)s
+(oin)m(t)f(is)g(determined)g(b)s(efore)f(rotation.)40
+b(The)21 b(initial)i(text)g(reference)630 4865 y(p)s(oin)m(t)30
+b(corresp)s(onds)f(to)i Fs(\\textref)e(h:L)g(v:B)p Fv(.)150
+5011 y Fs(\\vtext)g(\(x)g(y\){)p Fo(text)p Fs(})150 5121
+y(\\vtext)g({)p Fo(text)p Fs(})630 5230 y Fv(The)38 b(\014rst)f(form)h
+(of)g(this)g(command)g(places)h(the)f(T)2452 5250 y(E)2502
+5230 y(X)g(text)h Fj(text)i Fv(v)m(ertically)g(with)d(the)630
+5340 y(text)g(reference)f(p)s(oin)m(t)f(at)h(the)g(co)s(ordinate)h
+Fs(\()p Fo(x)29 b(y)p Fs(\))p Fv(.)59 b(The)36 b(new)g(curren)m(t)g(p)s
+(osition)h(is)g Fs(\()p Fo(x)p eop end
+%%Page: 39 43
+TeXDict begin 39 42 bop 3659 -116 a Fv(39)630 299 y Fo(y)p
+Fs(\))p Fv(.)40 b(The)29 b(second)h(form)f(of)g(this)h(command)f
+(places)i(the)e(T)2650 318 y(E)2700 299 y(X)h(text)h
+Fj(text)h Fv(v)m(ertically)g(with)630 408 y(the)f(text)g(reference)g(p)
+s(oin)m(t)f(at)i(the)e(curren)m(t)g(p)s(osition.)41 b(In)30
+b(b)s(oth)g(cases,)h(the)g(T)3351 428 y(E)3401 408 y(X)f(text)i(is)630
+518 y(placed)37 b(in)e(a)i(b)s(o)m(x)f(and)f(the)i(b)s(o)m(x)f(is)g
+(rotated)h(coun)m(terclo)s(c)m(kwise)i(b)m(y)d(90)h(degrees)f(ab)s(out)
+630 628 y(the)41 b(text)h(reference)f(p)s(oin)m(t.)72
+b(The)40 b(text)i(reference)f(p)s(oin)m(t)g(is)g(set)g(with)f(the)h
+Fs(\\textref)630 737 y Fv(command.)p eop end
+%%Page: 40 44
+TeXDict begin 40 43 bop 3659 -116 a Fv(40)150 299 y Fr(Command)54
+b(Index)146 610 y Fb(n)150 728 y Fk(\\arc)11 b Fa(:)j(:)f(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)25 b Fm(10)150 816 y Fk(\\arrowheadsize)g
+Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37
+b Fm(7)150 904 y Fk(\\arrowheadtype)25 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fm(7)150 992 y Fk(\\avec)11
+b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fm(6)150 1080
+y Fk(\\begin{texdraw})d Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)34 b Fm(3)150 1167 y Fk(\\bsegment)15 b Fa(:)h(:)d(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30
+b Fm(14)150 1255 y Fk(\\btexdraw)18 b Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
+b Fm(3)150 1343 y Fk(\\centertexdraw)25 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fm(4)150 1431 y
+Fk(\\clvec)6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fm(11)150
+1519 y Fk(\\cossin)i Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fm(25)150
+1607 y Fk(\\currentpos)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fm(25)150 1695 y
+Fk(\\drawbb)d Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fm(17)150 1782 y
+Fk(\\drawdim)22 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fm(5)150 1870
+y Fk(\\end{texdraw})7 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)22 b Fm(4)150 1958 y Fk(\\esegment)15
+b Fa(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)30 b Fm(14)150 2046 y Fk(\\etexdraw)18 b Fa(:)d(:)e(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
+b Fm(3)150 2134 y Fk(\\everytexdraw)7 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22 b Fm(4)150
+2222 y Fk(\\fcir)9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
+b Fm(10)150 2309 y Fk(\\fellip)f Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
+b Fm(10)150 2397 y Fk(\\getpos)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
+b Fm(25)150 2485 y Fk(\\htext)8 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
+b Fm(8)150 2573 y Fk(\\ifill)6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20
+b Fm(12)150 2661 y Fk(\\lcir)9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
+b Fm(10)150 2749 y Fk(\\lellip)f Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
+b Fm(10)150 2837 y Fk(\\lfill)6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20
+b Fm(12)150 2924 y Fk(\\linewd)k Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38
+b Fm(6)150 3012 y Fk(\\lvec)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
+b Fm(6)150 3100 y Fk(\\move)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
+b Fm(6)150 3188 y Fk(\\PSarc)6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20
+b Fm(24)150 3276 y Fk(\\PSarcn)i Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
+b Fm(24)150 3364 y Fk(\\PSclosepath)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fm(23)150
+3451 y Fk(\\PSfill)g Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fm(23)150
+3539 y Fk(\\PSlineto)15 b Fa(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fm(24)150 3627
+y Fk(\\PSmoveto)15 b Fa(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fm(24)150 3715 y Fk(\\PSnewpath)13
+b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)27 b Fm(23)150 3803 y Fk(\\PSsetlinecap)e Fa(:)13
+b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fm(23)150 3891 y Fk(\\PSsetlinejoin)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fm(23)150 3978 y
+Fk(\\PSstroke)15 b Fa(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fm(23)150 4066 y Fk(\\ravec)8
+b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 b Fm(6)150 4154 y
+Fk(\\realadd)18 b Fa(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fm(25)150 4242 y
+Fk(\\realdiv)18 b Fa(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fm(26)150 4330 y
+Fk(\\realmult)15 b Fa(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fm(25)150 4418 y Fk(\\relsegscale)8
+b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+22 b Fm(16)2025 610 y Fk(\\relunitscale)j Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fm(16)2025 697 y
+Fk(\\rlvec)8 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fm(6)2025
+785 y Fk(\\rmove)8 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
+b Fm(6)2025 872 y Fk(\\rtext)8 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
+b Fm(8)2025 959 y Fk(\\savecurrpos)8 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fm(15)2025
+1046 y Fk(\\savepos)c Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fm(15)2025 1133
+y Fk(\\setgray)22 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fm(7)2025
+1221 y Fk(\\setsegscale)8 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fm(16)2025 1308 y Fk(\\setunitscale)j
+Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
+b Fm(16)2025 1395 y Fk(\\textref)22 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35
+b Fm(9)2025 1482 y Fk(\\vectlen)18 b Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
+Fm(25)2025 1569 y Fk(\\vtext)8 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
+b Fm(8)2025 1656 y Fk(\\writeps)18 b Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
+Fm(24)2021 1908 y Fu(A)2025 2024 y Fk(arc)14 b Fa(:)f(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)28 b Fm(24)2025 2111 y Fk(arcn)11 b Fa(:)j(:)f(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)26 b Fm(24)2021 2345 y Fu(C)2025 2461
+y Fk(closepath)15 b Fa(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fm(23)2021 2712 y Fu(F)2025
+2828 y Fk(fill)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
+b Fm(23)2021 3061 y Fu(L)2025 3177 y Fk(lineto)6 b Fa(:)14
+b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)21 b Fm(24)2021 3410 y Fu(M)2025
+3526 y Fk(moveto)6 b Fa(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b
+Fm(24)2021 3760 y Fu(N)2025 3876 y Fk(newpath)h Fa(:)13
+b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)35 b Fm(23)2021 4127 y Fu(S)2025 4243 y Fk(setlinecap)13
+b Fa(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)27 b Fm(23)2025 4331 y Fk(setlinejoin)10 b Fa(:)16
+b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25
+b Fm(23)2025 4418 y Fk(stroke)6 b Fa(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
+b Fm(23)p eop end
+%%Page: 41 45
+TeXDict begin 41 44 bop 3659 -116 a Fv(41)150 299 y Fr(Concept)52
+b(Index)146 638 y Fu(A)150 761 y Fm(accessing)27 b(T)521
+777 y(E)565 761 y(Xdra)n(w)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
+b Fm(2,)26 b(18)150 851 y(angle)h(of)f(a)g(v)n(ector)16
+b Fa(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30
+b Fm(25)150 940 y(arcs)12 b Fa(:)i(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)28 b
+Fm(10,)e(24)150 1030 y(arro)n(whead)h(parameters)9 b
+Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fm(6)150
+1119 y(arro)n(ws)16 b Fa(:)e(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31
+b Fm(5)146 1402 y Fu(B)150 1525 y Fm(Bezier)c(curv)n(es)21
+b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+36 b Fm(11)146 1809 y Fu(C)150 1932 y Fm(circles)22 b
+Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fm(10)150 2021 y(command)26
+b(syn)n(tax)12 b Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)26 b Fm(4)150 2110 y(co)r(ordinate)h(parsing)18 b
+Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)32
+b Fm(25)150 2200 y(co)r(ordinate)27 b(sp)r(eci\014cation)22
+b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fm(5)150 2289
+y(co)r(ordinate,)27 b(sym)n(b)r(olic)17 b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)31 b Fm(15)150 2379 y(co)r(ordinates)21 b
+Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)35 b Fm(4)150 2468 y(cosine)27 b(of)f(a)g(v)n(ector)g
+(direction)13 b Fa(:)h(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)28 b Fm(25)150 2558 y(curren)n(t)d(p)r
+(osition)8 b Fa(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
+b Fm(5,)k(17,)f(25)150 2647 y(curren)n(t)f(p)r(osition)i(in)e(P)n
+(ostScript)17 b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)31 b Fm(23)150 2737 y(curv)n(es)19
+b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fm(11)146 3020 y Fu(D)150
+3143 y Fm(dashed)25 b(lines)8 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 b Fm(6)150
+3233 y(direction)j(of)h(a)f(line)16 b Fa(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)30 b Fm(25)150 3322 y(distribution)15
+b Fa(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)30 b Fm(1)150 3411 y(dotted)25 b(lines)15
+b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)30 b Fm(6)150 3501 y(dra)n(wing)c(segmen)n(ts)14
+b Fa(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)29
+b Fm(14)150 3590 y Fk(dvi2ps)e Fm(prin)n(ter)e(driv)n(er)7
+b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fm(18)150
+3680 y Fk(dvialw)27 b Fm(prin)n(ter)e(driv)n(er)7 b Fa(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fm(18)150 3769
+y Fk(dvilaser)27 b Fm(prin)n(ter)f(driv)n(er)18 b Fa(:)13
+b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)33 b Fm(18)150 3859 y Fk(dvips)27
+b Fm(prin)n(ter)e(driv)n(er)7 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22
+b Fm(1,)27 b(18,)f(21)150 3948 y Fk(dvipsone)h Fm(prin)n(ter)f(driv)n
+(er)18 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fm(18)150
+4038 y Fk(dvitops)27 b Fm(prin)n(ter)e(driv)n(er)c Fa(:)13
+b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)36 b Fm(18)150 4127 y Fk(dviwindo)27
+b Fm(prin)n(ter)f(driv)n(er)18 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
+b Fm(18)146 4425 y Fu(E)150 4548 y Fm(ellipses)25 b Fa(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)37 b Fm(10)150 4637 y(Encapsulated)26
+b(P)n(ostScript)g(File)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fm(21)150 4727
+y(errors)i(while)f(using)g(T)812 4743 y(E)855 4727 y(Xdra)n(w)18
+b Fa(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)33 b Fm(19)150 4816 y(example,)26 b(arro)n(w)h(curv)n(e)20
+b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fm(26)150
+4906 y(example,)26 b(blo)r(c)n(k)g(diagram)15 b Fa(:)f(:)f(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)29 b Fm(28)150 4995 y(example,)d(circle)h(and)e(ellipse)9
+b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)24 b Fm(32)150 5085 y(example,)i(graph)20
+b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
+b Fm(31)2021 638 y Fu(F)2025 756 y Fm(\014ll)26 b(op)r(erations,)h(in)n
+(teraction)f(with)2102 844 y(dra)n(wing)g(segmen)n(ts)10
+b Fa(:)k(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fm(14)2025
+932 y(\014lled)h(circles)12 b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27 b Fm(10)2025 1020
+y(\014lling)f(regions)8 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)22 b Fm(12,)27 b(23)2021 1284 y Fu(G)2025
+1402 y Fk(graphics)g Fm(pac)n(k)l(age)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)33
+b Fm(1,)26 b(2,)g(18,)h(21)2025 1490 y(graphics)f(placemen)n(t)7
+b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
+b Fm(21)2025 1578 y(gra)n(y)k(lev)n(els)g(for)g(lines)9
+b Fa(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
+b Fm(6)2021 1842 y Fu(I)2025 1960 y Fm(implemen)n(tation)16
+b Fa(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31
+b Fm(19)2025 2048 y(initial)c(curren)n(t)e(p)r(osition)20
+b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fm(17)2025 2136
+y(in)n(v)n(oking)25 b(T)2374 2152 y(E)2417 2136 y(Xdra)n(w)13
+b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b Fm(2,)e(18)2021
+2402 y Fu(L)2025 2520 y Fm(LaT)2153 2536 y(E)2196 2520
+y(X)9 b Fa(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)24 b Fm(1,)i(2,)g(18)2025 2608 y(length)f(of)i(a)f(v)n
+(ector)16 b Fa(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)30
+b Fm(25)2025 2696 y(line)c(cap)11 b Fa(:)i(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25
+b Fm(23)2025 2784 y(line)h(join)d Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
+b Fm(23)2025 2872 y(line)26 b(width)9 b Fa(:)j(:)i(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
+b Fm(6)2025 2960 y(lines)6 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21
+b Fm(5,)26 b(23)2025 3047 y(listing)h(of)f(commands)9
+b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Fm(35)2021
+3312 y Fu(M)2025 3430 y Fm(mo)n(v)n(es)14 b Fa(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)29
+b Fm(5,)d(23)2021 3694 y Fu(O)2025 3812 y Fk(oztex)g
+Fm(prin)n(ter)g(driv)n(er)9 b Fa(:)k(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)24 b Fm(18)2021 4076 y Fu(P)2025 4195 y Fm(pain)n(ting)i(regions)9
+b Fa(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24
+b Fm(12)2025 4282 y(paths)10 b Fa(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fm(12,)h(14,)h(23)2025
+4370 y Fk(pctexps)g Fm(prin)n(ter)e(driv)n(er)c Fa(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fm(18)2025 4458 y Fk(pctexwin)27
+b Fm(prin)n(ter)e(driv)n(er)19 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
+b Fm(18)2025 4546 y(placemen)n(t)26 b(of)g(graphics)h(and)e(text)14
+b Fa(:)e(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+28 b Fm(21)2025 4634 y(plain)e(T)2259 4650 y(E)2302 4634
+y(X)10 b Fa(:)i(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)25 b Fm(2)2025 4722 y(p)r(osition)h(sp)r
+(eci\014cation)12 b Fa(:)j(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)28
+b Fm(5)2025 4810 y(p)r(ositions,)f(sa)n(ving)17 b Fa(:)d(:)f(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)32 b Fm(15)2025 4898
+y(P)n(ostScript)26 b(commands)15 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+30 b Fm(23)2025 4985 y(P)n(ostScript)c(prin)n(ter)f(driv)n(ers)9
+b Fa(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)24 b Fm(18,)j(21)2025 5073 y(prin)n(ter)e(driv)n(ers)9
+b Fa(:)k(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
+b Fm(18,)k(21)2025 5161 y(problems)f(while)g(using)g(T)2797
+5177 y(E)2841 5161 y(Xdra)n(w)14 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)29 b Fm(19)2025 5249
+y Fk(psprint)e Fm(driv)n(er)12 b Fa(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)26 b Fm(18)p eop end
+%%Page: 42 46
+TeXDict begin 42 45 bop 150 -116 a Fv(Concept)31 b(Index)2927
+b(42)146 299 y Fu(R)150 450 y Fm(relativ)n(e)26 b(p)r(ositioning)9
+b Fa(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
+b Fm(6)150 548 y(relativ)n(e)i(scaling)10 b Fa(:)15 b(:)e(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fm(16)150
+646 y(resolution)10 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fm(20)150 745
+y(rotated)h(text)c Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fm(8,)27 b(18,)f(21)146 1230 y Fu(S)150 1381 y Fm(sa)n(ving)g(p)r
+(ositions)11 b Fa(:)k(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)25 b Fm(15)150 1479 y(scaling)10 b Fa(:)15 b(:)e(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25
+b Fm(20)150 1578 y(scaling)i(co)r(ordinates)11 b Fa(:)k(:)e(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)26 b Fm(16)150 1676 y(segmen)n(t)g(scale)16
+b Fa(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30
+b Fm(16)150 1774 y(segmen)n(ts)7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
+b Fm(14)150 1873 y(sine)26 b(of)h(a)f(v)n(ector)f(direction)16
+b Fa(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)30 b Fm(25)150 1971 y(size)d(of)f(the)f(dra)n
+(wing)12 b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)27
+b Fm(17)150 2070 y(stroking)f(lines)9 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fm(14,)i(23)150 2168
+y(sym)n(b)r(olic)g(co)r(ordinate)10 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)25 b Fm(15)150 2266 y(syn)n(tax)g(of)h(commands)c
+Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fm(4)2021
+299 y Fu(T)2025 415 y Fk(texdraw)27 b Fm(pac)n(k)l(age)12
+b Fa(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fm(2,)f(18,)h(21)2025
+502 y(text)e(commands)d Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)37 b Fm(8)2025 589 y(text)25 b(placemen)n(t)11
+b Fa(:)i(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25
+b Fm(21)2025 677 y(text)g(rotation)9 b Fa(:)14 b(:)f(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)24 b Fm(8,)i(18,)h(21)2025 764 y Fk(textures)g
+Fm(prin)n(ter)e(driv)n(er)19 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
+b Fm(18)2021 1014 y Fu(U)2025 1130 y Fm(unit)25 b(scale)15
+b Fa(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)29 b Fm(16)2021 1364 y Fu(V)2025 1480
+y Fm(v)n(ectors)8 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)23
+b Fm(5)2025 1567 y(v)n(ertical)j(text)7 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
+b Fm(8)2021 1801 y Fu(W)2025 1917 y Fm(width)i(of)i(lines)18
+b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)33 b Fm(6)2021 2150 y Fu(X)2025 2266 y Fk(xdvi)26
+b Fm(driv)n(er)19 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fm(18)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/graphics/texdraw/manual/texdraw.texi b/graphics/texdraw/manual/texdraw.texi
new file mode 100644
index 0000000000..9cacbc7350
--- /dev/null
+++ b/graphics/texdraw/manual/texdraw.texi
@@ -0,0 +1,2922 @@
+% -*-texinfo-*-
+
+% $Id: texdraw.texi 2.11 2019/04/18 TeXdraw-v2r3 $
+
+% To produce a TeX version of this manual, you must have the following
+% files accessible to TeX.
+% texdraw.texi - this file, the TeXdraw manual, part of the TeXdraw
+% distribution
+% texdraw.tex - the TeXdraw macros, part of the TeXdraw distribution
+% txdtools.tex - extra macros for TeXdraw, part of the TeXdraw
+% distribution
+% texinfo.tex - texinfo manual macros (distributed by FSF, for instance
+% with the GNUemacs editor). This version of the manual has
+% been tested with version 2.145 of texinfo.tex. The file
+% texinfo.tex is available by anonymous ftp as
+% pub/gnu/texinfo-3.6.tar.Z on prep.ai.mit.edu.
+%
+\input texdraw % bring in TeXdraw before texinfo changes "\" to "@"
+\input txdtools
+
+\input texinfo @c -*-texinfo-*-
+@comment %**start of header
+@setfilename texdraw.info
+@settitle @TeX{}draw
+@comment %**end of header
+
+@copying
+This manual (edition 2.3) documents @TeX{}draw, a system for
+producing PostScript drawings from @TeX{}.
+
+Copyright @copyright{} 1993--2019 Peter Kabal
+
+This work is licensed under the Creative Commons Attribution (CC-BY)
+License, any version. To view the licenses, visit
+@w{@url{creativecommons.org/licenses/by}} or send a letter to
+Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+@end copying
+
+@dircategory TeX
+@direntry
+* TeXdraw: (texdraw). Drawing PostScript diagrams within TeX.
+@end direntry
+
+
+@titlepage
+@title @TeX{}draw
+@subtitle PostScript Drawings from @TeX{}
+@subtitle Edition 2.3
+@subtitle April 2019
+@author Peter Kabal
+
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+
+Peter Kabal @*
+Department of Electrical @& Computer Engineering @*
+McGill University @*
+
+@code{peter dot kabal at mcgill dot ca} @*
+@code{http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/}
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top, Introduction, (dir), (dir)
+@top TeXdraw
+
+@TeX{}draw is a collection of macros that allow drawings to be created
+from @emph{within} @TeX{}.
+
+This is edition 2.3 of the @TeX{}draw documentation.
+@end ifnottex
+
+@menu
+* Introduction::
+* TeXdraw Commands::
+* Drawing Segments and Scaling::
+* Using TeXdraw with LaTeX::
+* More Details::
+* PostScript Commands::
+* TeXdraw Toolbox::
+* Examples::
+* Command Listing::
+
+Indices
+* Concept Index::
+* Command Index::
+
+ --- The Detailed Node Listing ---
+
+Introduction
+
+* Distribution::
+
+TeXdraw Commands
+
+* Accessing TeXdraw::
+* Command syntax::
+* TeXdraw coordinates::
+* Coordinate specification::
+* Line vectors::
+* TeX text::
+* Circles and arcs::
+* Bezier curves::
+* Fill commands::
+
+Drawing Segments and Scaling
+
+* Drawing segments::
+* Drawing paths::
+* Saving positions::
+* Scaling coordinates::
+* Drawing size::
+* Initial current position::
+
+Using TeXdraw with LaTeX
+
+* PostScript printer drivers::
+
+More Details
+
+* Errors while using TeXdraw::
+* Extending TeXdraw::
+* How TeXdraw merges graphics and text::
+
+Extending TeXdraw
+
+* Scaling::
+* Resolution::
+* Text placement::
+* Intermediate PostScript file::
+
+PostScript Commands
+
+TeXdraw Toolbox
+
+* Coordinate parsing::
+* Real arithmetic::
+* Arrow curve::
+
+Examples
+
+* Block diagram::
+* Filter response graph::
+* Geometric construction::
+
+Command Listing
+
+Command Index
+
+Concept Index
+@end menu
+
+
+@node Introduction, TeXdraw Commands, Top, Top
+@chapter Introduction
+
+@TeX{} is a powerful typesetting program which allows for complex text
+layouts but by itself lacks a general graphics capability. However,
+when coupled with an appropriate printer driver program, external
+graphics files can be inserted into the printed document. In this mode,
+@TeX{} is instructed to leave space for a drawing. The drawing is
+inserted by the printer driver program. The @TeX{}draw macros described
+here generate the external graphics file from within @TeX{} and generate
+the instructions to the the print driver program to position the
+graphics at the appropriate position on the page.
+
+@TeX{}draw consists of a set of @TeX{} macros that create line drawings
+and other figures. The drawing primitives include solid lines,
+patterned lines, Bezier curves, circles and arrows. Other commands
+allow for the filling of a region with a gray level. The drawing
+commands generate PostScript code. This limits @TeX{}draw to systems
+which use PostScript printers. @TeX{}draw also provides commands to
+position @TeX{} text, including mathematics, on the drawing. The final
+drawing, with text and graphics, can be positioned on the page like any
+other @TeX{} box.
+
+@cindex @code{dvips} printer driver
+@cindex La@TeX{}
+@cindex @code{graphics} package
+The basic @TeX{}draw macros for @TeX{} use the @code{\special} syntax
+recognized by the printer driver program @code{dvips}. However, when
+invoked as a La@TeX{}2e package, the @TeX{}draw macros can be used with
+any of the PostScript printer driver programs supported by the standard
+@code{graphics} package for La@TeX{}2e.
+
+The basic @TeX{}draw macros provide only simple drawing commands.
+However, @TeX{}draw provides a drawing segment environment which allows
+parameter changes and coordinate scaling changes to be kept local to the
+drawing segment. This facility, together with @TeX{}'s macro
+capabilities allows one to modularize drawing units and extend
+@TeX{}draw by building more complex graphics entities from simpler
+elements.
+
+@menu
+* Distribution::
+@end menu
+
+@node Distribution, , , Introduction
+@section Distribution information
+@cindex distribution
+
+The entire @TeX{}draw package, both code and documentation, is
+released under Creative Commons Attribution (CC-BY) license, any
+version.
+
+
+@node TeXdraw Commands, Drawing Segments and Scaling, Introduction, Top
+@chapter Using the @TeX{}draw Commands
+
+The main @TeX{}draw macros (commands) are defined in the file
+@file{texdraw.tex}. These macros may be used directly in @TeX{}. The
+file @file{texdraw.sty} provides an interface for use with La@TeX{}2e.
+The following sections describe the basic commands for @TeX{}draw.
+
+@menu
+* Accessing TeXdraw::
+* Command syntax::
+* TeXdraw coordinates::
+* Coordinate specification::
+* Line vectors::
+* TeX text::
+* Circles and arcs::
+* Bezier curves::
+* Fill commands::
+@end menu
+
+@node Accessing TeXdraw, Command syntax, , TeXdraw Commands
+@section Accessing @TeX{}draw
+@cindex accessing @TeX{}draw
+@cindex invoking @TeX{}draw
+
+@cindex plain @TeX{}
+@cindex La@TeX{}
+The form of the user command to run the @TeX{} program depends on which
+version of @TeX{} is being used, and which other macro packages are
+preloaded as format files. Typically, installations have at least two
+versions of @TeX{} --- plain @TeX{} which includes basic typesetting
+macros (usually invoked as @file{tex}) and La@TeX{}2e which includes the
+La@TeX{}2e typesetting macros (usually invoked as @file{latex}). An
+older version of La@TeX{}, version 2.09, may also be available. The
+@TeX{}draw macros can be used with plain @TeX{} and with either version
+of La@TeX{}.
+
+For use with plain @TeX{}, the user must read in the @TeX{}draw macros
+from the file @file{texdraw.tex}.
+@example
+@group
+\input texdraw % Read in the TeXdraw macros
+ ...
+\btexdraw
+ ... % TeXdraw commands to generate a drawing
+\etexdraw
+@end group
+@end example
+
+For use with La@TeX{} version 2.09, the user reads in the @TeX{}draw
+macros from the file @file{texdraw.tex} and optionally defines the
+@code{\begin@{texdraw@}} / @code{\end@{texdraw@}} environment.
+@example
+@group
+\documentstyle[11pt]@{article@} % Article style at 11pt size
+...
+\input texdraw % Read in the TeXdraw macros
+\newenvironment@{texdraw@}@{\leavevmode\btexdraw@}@{\etexdraw@}
+ ...
+\begin@{texdraw@}
+ ... % TeXdraw commands to generate a drawing
+\end@{texdraw@}
+...
+\end@{document@}
+@end group
+@end example
+
+@cindex @code{texdraw} package
+@cindex @code{graphics} package
+For use with La@TeX{}2e, the user must load the @code{texdraw} package
+(file @file{texdraw.sty}). This package file defines the
+@code{\begin@{texdraw@}} / @code{\end@{texdraw@}} environment, brings in
+the standard @code{graphics} package and reads in the file
+@file{texdraw.tex} containing the definitions of the @TeX{}draw macros.
+@example
+@group
+\documentclass[11pt]@{article@} % Article class at 11pt size
+\usepackage@{texdraw@} % TeXdraw commands
+
+\begin@{document@}
+ ...
+\begin@{texdraw@}
+ ... % TeXdraw commands to generate a drawing
+\end@{texdraw@}
+ ...
+\end@{document@}
+@end group
+@end example
+
+As the @TeX{}draw commands are processed by @TeX{}, an intermediate
+PostScript file is generated. The intermediate PostScript has a name of
+the form @file{@var{name}.ps1}. The name part is derived from the name
+of the main @TeX{} file being processed. If more than one drawing is
+produced, the digit in the file name extension is
+incremented.@footnote{After the ninth PostScript file, the name of the
+intermediate PostScript file takes the form @file{@var{name}.p10}, with
+the number increasing from 10 with each file.}
+
+The @TeX{}draw commands to produce a drawing are inserted between
+@code{\btexdraw} and @code{\etexdraw} commands, or for La@TeX{}, between
+@code{\begin@{texdraw@}} and @code{\end@{texdraw@}} commands. This
+results in a @TeX{} box of appropriate size containing the drawing
+generated by the @TeX{}draw commands. The @TeX{}draw box can be
+positioned in a document like any other @TeX{} box.
+
+The @code{\centertexdraw@{...@}} macro centers the box generated by
+@TeX{}draw. The vertical space taken up is equal to the vertical size
+of the drawing. The @code{\centertexdraw} macro is normally used in
+vertical mode (between paragraphs). A @code{\par} command (a blank line
+will do also) before a @code{\centertexdraw} command will terminate
+horizontal mode and return to vertical mode. For La@TeX{}, a structured
+equivalent to the @code{\centertexdraw@{...@}} command is shown below.
+@example
+@group
+\begin@{center@}
+\begin@{texdraw@}
+ ...
+\end@{texdraw@}
+\end@{center@}
+@end group
+@end example
+
+The @code{\everytexdraw} command can be used to define a set of
+@TeX{}draw commands that will be executed at the beginning of every
+@TeX{}draw drawing. It is invoked as @code{\everytexdraw@{ ...@}},
+with the desired @TeX{}draw commands as arguments.
+
+@table @code
+@findex \btexdraw
+@item \btexdraw
+Start a @TeX{}draw drawing. The drawing is terminated with an
+@code{\etexdraw} command.
+@findex \etexdraw
+@item \etexdraw
+End a @TeX{}draw drawing started with a @code{\btexdraw} command. The
+resulting @TeX{}draw drawing is placed in a box with height equal to the
+height of the drawing and width equal to the width of the drawing. The
+depth of the box is zero.
+@findex \begin@{texdraw@}
+@item \begin@{texdraw@}
+Start a @TeX{}draw drawing. The drawing is terminated with an
+@code{\end@{texdraw@}} command. This command is for use with La@TeX{}.
+@findex \end@{texdraw@}
+@item \end@{texdraw@}
+End a @TeX{}draw drawing started with a @code{\begin@{texdraw@}}
+command. The resulting @TeX{}draw drawing is placed in a box with
+height equal to the height of the drawing and width equal to the width
+of the drawing. The depth of the box is zero. This command is for use
+with La@TeX{}.
+@findex \centertexdraw
+@item \centertexdraw@{ ... @}
+Center a @TeX{}draw box horizontally. The argument contains @TeX{}draw
+commands. The resulting box has the horizontal size @code{\hsize} and
+height equal to the height of the drawing.
+@findex \everytexdraw
+@item \everytexdraw@{ ... @}
+Specify @TeX{}draw commands to be executed at the beginning of every
+@TeX{}draw drawing.
+@end table
+
+@node Command syntax, TeXdraw coordinates, Accessing TeXdraw, TeXdraw Commands
+@section Command syntax
+@cindex command syntax
+@cindex syntax of commands
+
+Generally @TeX{}draw commands that take a single argument need a
+terminating blank or newline after the argument. Arguments that are
+self-delimiting, such as coordinates within parentheses and text within
+braces, do not need the terminating blank. However, even when not
+needed by the defining syntax of the command, blanks following command
+arguments are allowed and ignored within the @TeX{}draw environment.
+
+On entering the @TeX{}draw environment, @TeX{} is in internal vertical
+mode (vertical mode inside a @code{\vbox}). In this mode, spaces can be
+placed freely between commands. However, any other extraneous input
+that generates output that is not part of the @TeX{}draw environment is
+disallowed.
+
+Blank lines are interpreted as paragraph breaks, equivalent to a
+@code{\par} command. The @TeX{}draw macro @code{\centertexdraw} is
+defined with the @code{\long} attribute to allow @code{\par} commands
+and blank lines to be interspersed between @TeX{}draw commands. The
+@code{\btexdraw} and @code{\etexdraw} commands also allow @code{\par}
+command and blank lines to be included.
+
+@node TeXdraw coordinates, Coordinate specification, Command syntax, TeXdraw Commands
+@section @TeX{}draw coordinates
+@cindex coordinates
+
+The @TeX{}draw coordinate system has increasing @var{x} to the right and
+increasing @var{y} upward. The coordinates (without the unit) are
+floating point numbers. Integer values can be written without a decimal
+point. The size of the drawing is determined by the maximum excursions
+of the coordinates specified in @TeX{}draw commands.
+@tex
+\bigskip
+\centertexdraw{
+ \avec (0 0.8) \textref h:C v:B \htext (0 0.9){\sl y}
+ \move (0 0) \avec (0.8 0) \textref h:L v:C \htext(0.9 0){\sl x}
+ \move (0 1.0)}
+@end tex
+
+Consider the following example of @TeX{}draw commands to draw a simple
+figure.
+@example
+@group
+\centertexdraw@{
+ \drawdim cm \linewd 0.02
+ \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2)
+ \textref h:C v:C \htext(2 3)@{$\sum \rho_n$@}
+@}
+@end group
+@end example
+@tex
+\bigskip
+\centertexdraw{
+ \drawdim{cm} \linewd 0.02
+ \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2)
+ \textref h:C v:C \htext(2 3){$\sum \rho_n$}
+}
+@end tex
+This drawing uses units of centimetres, with a line width of 0.02 cm.
+The @var{x} coordinate ranges between 1 and 3 while the @var{y}
+coordinate ranges between 2 and 4. When included into a document, the
+size of the drawing is 2 cm by 2 cm. The drawing is placed in a @TeX{}
+box, with the lower lefthand corner of the box corresponding to
+@TeX{}draw coordinate @code{(1 2)} and the upper righthand corner at
+@code{(3 4)}. The @code{\centertexdraw} command centers the drawing
+horizontally. The @code{\textref} command controls the centering of the
+text. The text in this drawing is centered (both horizontally and
+vertically) at the coordinate @code{(2 3)}.
+
+@node Coordinate specification, Line vectors, TeXdraw coordinates, TeXdraw Commands
+@section Coordinate specification
+@cindex coordinate specification
+@cindex position specification
+
+Coordinates are specified within parentheses, with blanks (but no comma)
+between the values. Leading blanks and trailing blanks are permitted
+within the parentheses. The coordinates refer to units, which are
+specified by the @code{\drawdim} command. The default is inches, but
+any valid @TeX{} dimension unit can be specified. Symbolic
+specification of saved coordinate values will be discused later
+(@pxref{Saving positions}).
+
+@table @code
+@findex \drawdim
+@item \drawdim @var{dim}
+Set the units to @var{dim}. The argument @var{dim} can be any valid
+@TeX{} dimension unit. The units are used to interpret coordinate
+values. Examples of valid units: @code{cm}, @code{mm}, @code{in},
+@code{pt}, and @code{bp}.
+@end table
+
+Examples of coordinate and scaling specifications:
+@table @code
+@item \drawdim @{cm@} \move(2 2)
+Set the units to centimetres, move to a position 2 cm to the right and 2
+cm up from the origin of the drawing coordinate system.
+@item \drawdim bp
+Set the units to big points.
+@item \lvec ( 2.2 +5.5) \lvec(2.3 -2) \lvec(2.2 5.4 )
+Examples of acceptable coordinate specifications.
+@end table
+
+@node Line vectors, TeX text, Coordinate specification, TeXdraw Commands
+@section Line vectors
+@cindex lines
+@cindex vectors
+@cindex arrows
+@cindex moves
+@cindex current position
+
+@TeX{}draw implements moves, line vectors and arrow vectors. There are
+both absolute and relative motion versions of these vector commands.
+@TeX{}draw maintains a current position. Lines are drawn from the
+current position to a new coordinate, with the new coordinate becoming
+the new current position. An explicit move can be used to establish a
+new current position. The position @code{(0 0)} is used if there is no
+move to an initial current position.
+
+The @code{\move} and @code{\rmove} commands establish a new current
+position without drawing a line. The @code{\lvec} and @code{\rlvec}
+commands draw a line from the current position to a new position, which
+then becomes the new current position. The @code{\avec} and
+@code{\ravec} commands draw a line with an arrowhead from the current
+position to a new coordinate, which then becomes the new current
+position. The tip of the arrow is at the new current position. The
+direction of the arrow follows the direction of the line. Since this
+direction is undefined for zero length vectors, these are not allowed
+for @code{\avec} or @code{\ravec}. Zero length arrow vectors will
+generate a PostScript print error: @code{undefinedresult}. For any
+non-zero length vector, the full size arrowhead is drawn, even if that
+arrowhead is longer than the line length.
+
+The absolute motion versions of these commands specify the coordinate of
+the final position.
+
+@table @code
+@findex \move
+@item \move (@var{x} @var{y})
+Move to coordinate @code{(@var{x} @var{y})}. The new current position
+is @code{(@var{x} @var{y})}.
+@findex \lvec
+@item \lvec (@var{x} @var{y})
+Draw a line from the current position to coordinate @code{(@var{x}
+@var{y})}. The new current position is @code{(@var{x} @var{y})}.
+@findex \avec
+@item \avec (@var{x} @var{y})
+Draw a line with an arrowhead from the current position to
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The arrowhead is aligned with the line, with the tip at
+@code{(@var{x} @var{y})}.
+@end table
+
+@cindex relative positioning
+The relative motion versions of these commands interpret the coordinates
+as displacements relative to the current position. Given the
+displacements @code{(@var{dx} @var{dy})} as a parameter, each of the
+relative motion commands moves @var{dx} units in the @var{x} direction
+and @var{dy} units in the @var{y} direction.
+
+@table @code
+@findex \rmove
+@item \rmove (@var{dx} @var{dy})
+Move from the current position, @var{dx} units in the @var{x} direction
+and @var{dy} units in the @var{y} direction. The final position becomes
+the new current position.
+@findex \rlvec
+@item \rlvec (@var{dx} @var{dy})
+Draw a line from the current position, @var{dx} units in the @var{x}
+direction and @var{dy} units in the @var{y} direction. The final
+position becomes the new current position.
+@findex \ravec
+@item \ravec (@var{dx} @var{dy})
+Draw a line with an arrowhead from the current position, @var{dx} units
+in the @var{x} direction and @var{y} units in the @var{y} direction.
+The final position becomes the new current position. The arrowhead is
+aligned with the line, with the tip at the new current position.
+@end table
+
+Lines can be customized with commands to change the line width, line
+pattern and line gray level rendition. In addition, commands for
+changing the type and size of the arrowhead are available.
+
+@cindex line width
+@cindex width of lines
+@cindex dashed lines
+@cindex dotted lines
+@cindex gray levels for lines
+@cindex arrowhead parameters
+@table @code
+@findex \linewd
+@item \linewd @var{width}
+Set the line width to @var{width} units. Initially @var{width} is 0.01
+inches (corresponding to 3 pixels at 300 pixels to the inch).
+@item \lpatt (@var{pattern})
+Set lines to have the pattern @code{(@var{pattern})}. A pattern is a
+sequence of on/off lengths separated by blanks and enclosed in parentheses.
+The lengths alternately specify the length of a dash and the length of a
+gap between dashes. Each length is interpreted using the current
+scaling and drawing units. The pattern is used cyclically. The empty
+pattern signifies a solid line. The initial line pattern is a solid
+line, corresponding to the empty pattern @code{\lpatt ()}.
+@findex \setgray
+@item \setgray @var{level}
+Set the gray level of lines. Gray levels are real values from 0 (black)
+through intermediate values (gray) to 1 (white). The initial gray level
+is 0 corresponding to black.
+@findex \arrowheadtype
+@item \arrowheadtype t:@var{type}
+Set the arrowhead type to @var{type}, where @var{type} is one of
+@code{F}, @code{T}, @code{W}, @code{V}, or @code{H}. There are two
+kinds of arrowheads. The first kind is a triangle. There are 3
+variants: type @code{T} is an empty triangle, type @code{F} is a filled
+triangle (using the current gray level for lines), type @code{W} is a
+triangle filled with white. The second kind of arrowhead is an open
+ended Vee. There are 2 variants: type @code{V} has the stem continue to
+the tip, type @code{H} has the stem stop at the base of the arrowhead.
+The initial arrowhead type is @code{T}.
+@findex \arrowheadsize
+@item \arrowheadsize l:@var{length} w:@var{width}
+Set the arrowhead size to be @var{length} units long and @var{width}
+units wide. The width is measured across the ``base'' of the arrowhead.
+The initial arrowhead size has a @var{length} of 0.16 inches and a
+@var{width} of 0.08 inches.
+@end table
+
+Note that the lines which outline the arrowhead will be drawn with the
+same line pattern used for the stem. Normally, arrow vectors are drawn
+with the line pattern set for a solid line. Note that the fill level
+used for the @code{F} variant of the arrowhead uses the same gray level
+as used for lines. The difference between the @code{T} variant and the
+@code{W} variant only shows up if the arrowhead is placed over non-white
+areas of the drawing. The @code{W} variant obliterates the area under
+the arrowhead.
+
+Examples of line parameter and arrowhead settings are shown in the
+following code.
+@example
+@group
+\centertexdraw@{
+ \drawdim in
+ \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0 0.5)
+ \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(0.5 0.5)
+ \linewd 0.015 \lpatt(0.067 0.1) \lvec (1 0)
+ \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(1.5 0.5)
+ \arrowheadtype t:H \avec(2.0 0.5)
+ \setgray 0.4 \arrowheadtype t:W \avec(3.0 0)
+@}
+@end group
+@end example
+@tex
+\bigskip
+\centertexdraw{
+ \drawdim in
+ \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0.5 0.5)
+ \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(1.0 0.5)
+ \linewd 0.015 \lpatt(0.067 0.1) \lvec (1.5 0)
+ \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(2.0 0.5)
+ \arrowheadtype t:H \avec(2.5 0.5)
+ \setgray 0.4 \arrowheadtype t:W \avec(3.0 0)
+ \textref h:R v:T \htext (0.35 0.50){\tt t:F}
+ \textref h:R v:T \htext (1.0 0.43){\tt t:V}
+ \textref h:R v:T \htext (1.82 0.50){\tt t:T}
+ \textref h:R v:T \htext (2.5 0.43){\tt t:H}
+ \textref h:R v:B \htext (2.8 0){\tt t:W}
+}
+@end tex
+
+@node TeX text, Circles and arcs, Line vectors, TeXdraw Commands
+@section @TeX{} text
+@cindex text commands
+
+Text may be superimposed on the drawing. The text argument of the
+@code{\htext} command is in horizontal mode. This text can be ordinary
+text, math mode expressions, or even more complicated boxes consisting
+of tables and the like. The resulting @TeX{} text is placed in a box.
+The reference point of the box can be chosen to be one of nine
+locations: horizontally left, center or right; vertically top, center or
+bottom. The @code{\htext} command takes one of two forms.
+
+@table @code
+@findex \htext
+@item \htext (@var{x} @var{y})@{@var{text}@}
+@itemx \htext @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text}
+horizontally with the text reference point at the coordinate
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The second form of this command places the @TeX{} text
+@var{text} horizontally with the text reference point at the current
+position. The text reference point is set with the @code{\textref}
+command.
+@end table
+
+@cindex vertical text
+@cindex rotated text
+@cindex text rotation
+Text can be placed vertically using the @code{\vtext} command. The text
+argument is in horizontal mode. The @TeX{} text is placed in a box and
+then rotated counterclockwise. The reference point is the point in the
+box, @emph{before} rotation of the text. Not all PostScript printer
+drivers support vertical text.
+
+@table @code
+@findex \vtext
+@item \vtext (x y)@{@var{text}@}
+@itemx \vtext @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text}
+vertically with the text reference point at the coordinate
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The second form of this command places the @TeX{} text
+@var{text} vertically with the text reference point at the current
+position. In both cases, the @TeX{} text is placed in a box and the box
+is rotated counterclockwise by 90 degrees about the text reference
+point. The text reference point is set with the @code{\textref}
+command.
+@end table
+
+@cindex rotated text
+@cindex text rotation
+Text can be placed at an arbitrary angle using the @code{\rtext}
+command. The text argument is in horizontal mode. The @TeX{} text is
+placed in a box and then rotated counterclockwise. The reference point
+is the point in the box, @emph{before} rotation of the text. Not all
+PostScript printer drivers support rotated text.
+
+@table @code
+@findex \rtext
+@item \rtext td:@var{angle} (x y)@{@var{text}@}
+@itemx \rtext td:@var{angle} @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text} at an
+angle with the text reference point at the coordinate @code{(@var{x}
+@var{y})}. The new current position is @code{(@var{x} @var{y})}. The
+second form of this command places the @TeX{} text @var{text} at an
+angle with the text reference point at the current position. In both
+cases, the @TeX{} text is placed in a box and the box is rotated
+counterclockwise by @var{angle} degrees about the text reference point.
+The text reference point is set with the @code{\textref} command.
+@end table
+
+The reference point for subsequent @TeX{} text in a @code{\htext},
+@code{\vtext} or @code{\rtext} command is set with the @code{\textref}
+command.
+
+@table @code
+@findex \textref
+@item \textref h:@var{h-ref} v:@var{v-ref}
+Set the text reference point for subsequent text commands. The
+horizontal reference point @var{h-ref} is one of @code{L}, @code{C} or
+@code{R} (left, center or right). The vertical reference point
+@var{v-ref} is one of @code{T}, @code{C} or @code{B} (top, center or
+bottom). For rotated text, the reference point is determined before
+rotation. The initial text reference point corresponds to
+@code{\textref h:L v:B}.
+@end table
+@noindent
+
+@tex
+\centertexdraw{
+ \def\bdot {\bsegment
+ \fcir f:0 r:0.02
+ \esegment}
+ \def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+ \def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+ \def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \move (-1.5 0)
+ \bsegment
+ \move (+1.55 +0.45) \move (-1.55 -0.45) \move (0 0)
+ \Ttext{Horizontal Text}
+ \bdot \Btext{\tt h:C v:C}
+ \move (-0.9 0) \bdot \Ltext{\tt h:L v:C}
+ \move (+0.9 0) \bdot \Rtext{\tt h:R v:C}
+ \move (0 +0.3) \bdot \Ttext{\tt h:C v:T}
+ \move (0 -0.3) \bdot \Btext{\tt h:C v:B}
+ \move (-0.9 -0.3) \bdot \Ltext{\tt h:L v:B}
+ \lvec (-0.9 +0.3) \bdot \Ltext{\tt h:L v:T}
+ \lvec (+0.9 +0.3) \bdot \Rtext{\tt h:R v:T}
+ \lvec (+0.9 -0.3) \bdot \Rtext{\tt h:R v:B}
+ \lvec (-0.9 -0.3)
+ \esegment
+ \def\atext {\rtext td:45 }
+ \def\ATtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:B \atext (-0.06 +0.06){#1}
+ \esegment}
+ \def\ABtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:C v:T \atext (+0.060 -0.06){#1}
+ \esegment}
+ \def\ALtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:R v:C \atext (-0.08 -0.08){#1}
+ \esegment}
+ \def\ARtext #1{\bsegment
+ \setsegscale 0.707
+ \textref h:L v:C \atext (+0.08 +0.08){#1}
+ \esegment}
+ \move (+1.5 0)
+ \bsegment
+ \move (+1.33 +1.33) \move (-1.33 -1.33) \move (0 0)
+ \setsegscale 0.707
+ \ATtext{Rotated Text}
+ \bdot \ABtext{\tt h:C v:C}
+ \move (-0.9 -0.9) \bdot \ALtext{\tt h:L v:C}
+ \move (+0.9 +0.9) \bdot \ARtext{\tt h:R v:C}
+ \move (-0.3 +0.3) \bdot \ATtext{\tt h:C v:T}
+ \move (+0.3 -0.3) \bdot \ABtext{\tt h:C v:B}
+ \move (-0.6 -1.2) \bdot \ALtext{\tt h:L v:B}
+ \lvec (-1.2 -0.6) \bdot \ALtext{\tt h:L v:T}
+ \lvec (+0.6 +1.2) \bdot \ARtext{\tt h:R v:T}
+ \lvec (+1.2 +0.6) \bdot \ARtext{\tt h:R v:B}
+ \lvec (-0.6 -1.2)
+ \esegment
+}
+@end tex
+
+The font used to render the text is determined as for any other @TeX{}
+text. Normally the font used outside of @TeX{}draw is in effect. If
+desired, other fonts can be specified as part of the text. Any font
+changes within a @TeX{}draw text command remain local to that command.
+
+Only the coordinate of the text reference point in a @code{\htext},
+@code{\vtext} or @code{\rtext} command is used in calculating the size
+of the drawing. This means that text itself can spill outside of the
+drawing area determined by @TeX{}draw. The area of the drawing can be
+increased to include the text by issuing additional @code{\move}
+commands.
+
+@example
+@group
+\centertexdraw@{
+ \avec(-0.75 -0.25) \textref h:R v:C \htext@{H-text@}
+ \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext@{H-text@}
+ \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext@{V-text@}
+ \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext@{H-text@}
+ \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext@{H-text@}
+@}
+@end group
+@end example
+@iftex
+Superimposed on this example is a shaded region showing the limits of
+the @TeX{}draw box as determined by the coordinates specified.
+@tex
+\bigskip
+\centertexdraw{
+ \move(-0.75 -0.25) \lvec (-0.75 +0.5) \lvec (+0.75 +0.5)
+ \lvec(+0.75 -0.25) \ifill f:0.9 % fill the region
+ \move(0 0)
+ \avec(-0.75 -0.25) \textref h:R v:C \htext{H-text}
+ \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext{H-text}
+ \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext{V-text}
+ \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext{H-text}
+ \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext{H-text}
+ \move (-1.15 -0.3) \move (+1.15 +0.92) % increase the size of the drawing
+}
+@end tex
+@end iftex
+
+@node Circles and arcs, Bezier curves, TeX text, TeXdraw Commands
+@section Circles, ellipses and arcs
+@cindex circles
+@cindex filled circles
+@cindex ellipses
+@cindex arcs
+
+@TeX{}draw supplies commands to generate circles, ellipses and arcs.
+There are two forms of the circle command. The @code{\lcir} command
+draws a circle of given radius. The @code{\fcir} command draws a filled
+circle. In the latter case, the circle is filled by a specified gray
+level. For the filled circle, the line defining the circumference of
+the circle is not drawn. Note that the gray level area filled in by the
+@code{\fcir} command is opaque, even if the fill is chosen to be white.
+For either form of the circle command, the drawing size is increased if
+necessary to contain the circle.
+
+The @code{\lellip} command generates an ellipse specified by the radius
+of the ellipse in the @var{x} direction and the radius of the ellipse in
+the @var{y} direction. The ellipse is symmetrical about horizontal and
+vertical lines drawn through the current point. The @code{\fellip}
+command draws a filled ellipse. In the latter case, the ellipse is
+filled by a specified gray level. For the filled ellipse, the line
+defining the boundary of the ellipse is not drawn. For either form of
+the ellipse command, the drawing size is increased if necessary to
+contain the ellipse.
+
+
+The @code{\larc} command generates a counterclockwise arc specified by a
+start angle in degrees and an end angle in degrees. The center of the
+arc is the current position. Only the arc is drawn, not the line
+joining the center to the beginning of the arc. Note that the
+@code{\larc} command does not affect the size of the drawing.
+
+@table @code
+@findex \lcir
+@item \lcir r:@var{radius}
+Draw a circle with center at the current position. The radius is
+specified by @var{radius}. This command draws a line along the
+circumference of the circle. The drawing size is increased if necessary
+to contain the circle.
+@findex \fcir
+@item \fcir f:@var{level} r:@var{radius}
+Draw a filled circle with center at the current position. The radius is
+specified by @var{radius}. The circle is painted with the gray level
+specified by @var{level}. A gray level of 1 corresponds to white, with
+decreasing values getting darker. The level 0 is full black. This
+command does not draw a line along the circumference. The drawing size
+is increased if necessary to contain the circle.
+@findex \lellip
+@item \lellip rx:@var{x-radius} ry:@var{y-radius}
+Draw an ellipse with center at the current position. The radius in the
+@var{x} direction is specified by @var{x-radius}. The radius in the
+@var{y} direction is specified by @var{y-radius}. The drawing size is
+increased if necessary to contain the ellipse.
+@findex \fellip
+@item \fellip f:@var{level} rx:@var{x-radius} ry:@var{y-radius}
+Draw a filled ellipse with center at the current position. The radius
+in the @var{x} direction is specified by @var{x-radius}. The radius in
+the @var{y} direction is specified by @var{y-radius}. The ellipse is
+painted with the gray level specified by @var{level}. A gray level of 1
+corresponds to white, with decreasing values getting darker. The level
+0 is full black. This command does not draw a line along the boundary
+of the ellipse. The drawing size is increased if necessary to contain
+the ellipse.
+@findex \arc
+@item \larc r:@var{radius} sd:@var{start-angle} ed:@var{end-angle}
+Draw a counterclockwise arc. The center of the arc is at the current
+position. The radius is specified by @var{radius}. The start and end
+angles (in degrees) are specified by @var{start-angle} and
+@var{end-angle}. This command does not affect the limits (size) of the
+drawing.
+@end table
+
+As an example, the following commands draw a filled circle, and
+superimpose an arc.
+@example
+@group
+\centertexdraw@{
+ \linewd 0.02
+ \fcir f:0.7 r:1
+ \larc r:1 sd:45 ed:135
+ \lvec (+0.707 +0.707) \move (0 0) \lvec (-0.707 +0.707)
+@}
+@end group
+@end example
+@tex
+\bigskip
+\centertexdraw{
+ \linewd 0.02
+ \fcir f:0.7 r:1
+ \larc r:1 sd:45 ed:135
+ \lvec ( 0.707 0.707) \move (0 0) \lvec (-0.707 +0.707)
+}
+@end tex
+
+Note that for the arc command, the resulting figure can spill outside of
+the @TeX{}draw box as determined by the maximum excursions of the
+coordinates. Extra moves can be used to compensate for the size of the
+arc.
+
+@node Bezier curves, Fill commands, Circles and arcs, TeXdraw Commands
+@section Bezier curves
+@cindex Bezier curves
+@cindex curves
+
+Bezier curves in @TeX{}draw use 4 reference coordinates, two as the end
+points and two others to control the shape of the curve. Let the 4
+points be @code{(@var{x0} @var{y0})}, @code{(@var{x1} @var{y1})},
+@code{(@var{x2} @var{y2})} and @code{(@var{x3} @var{y3})}. The curve
+starts out tangent to the line joining the first two points and ends up
+tangent to the line joining the second two points. The control points
+``pull'' at the curve to control the curvature. The amount of pull
+increases with the distance of the control point from the endpoint.
+
+@tex
+As the parameter $\mu$ varies from 0 to 1, the coordinates of the Bezier
+curve are given by a pair of parametric cubic equations,
+$$
+\def\x #1{\hbox{\sl x#1}}
+\def\y #1{\hbox{\sl y#1}}
+\eqalign{
+ \x{}(\mu) &= (1-\mu)^3 \x0 + 3\mu(1-\mu)^2 \x1 + 3\mu^2(1-\mu) \x2 + \mu^3 \x3 \cr
+ \y{}(\mu) &= (1-\mu)^3 \y0 + 3\mu(1-\mu)^2 \y1 + 3\mu^2(1-\mu) \y2 + \mu^3 \y3\ . \cr}
+$$
+@end tex
+@ifinfo
+As the parameter u varies from 0 to 1, the coordinates of the Bezier
+curve are given by a pair of parametric cubic equations,
+
+@noindent
+x(u) = (1-u)^3 x0 + 3u (1-u)^2 x1 + 3u^2 (1-u) x2 + u^3 x3
+@noindent
+y(u) = (1-u)^3 y0 + 3u (1-u)^2 y1 + 3u^2 (1-u) y2 + u^3 y3 .
+
+@end ifinfo
+
+
+@table @code
+@findex \clvec
+@item \clvec (@var{x1} @var{y1})(@var{x2} @var{y2})(@var{x3} @var{y3})
+Draw a Bezier curve from the current position to the coordinate
+@code{(@var{x3} @var{y3})} which becomes the new current position. The
+coordinates @code{(@var{x1} @var{y1})} and @code{(@var{x2} @var{y2})}
+serve as control points for the curve. Only the last coordinate given
+is used to update the size of the drawing.
+@end table
+@noindent
+Note that only 3 coordinate pairs are specified. The other point is the
+current position before the @code{\clvec} command is executed. Only the
+last coordinate specified in the @code{\clvec} command is used to
+determine the extent of the drawing. While the Bezier curve passes
+through the old current position and the new current position, in
+general the curve will not reach the intermediate control points. The
+curve is always entirely enclosed by the convex quadrilateral defined by
+the two end points and the two control points. Note that the curve may
+pass outside the limits of the drawing as determined by the end point of
+the curve.
+
+A simple Bezier curve is produced by the following example.
+@example
+@group
+\btexdraw
+ \move (0 0)
+ \clvec (0 1)(1 0)(1 1)
+\etexdraw
+@end group
+@end example
+
+@iftex
+This example is the rightmost of the following Bezier curves. The
+drawings also show the end points and the control points for each curve.
+@tex
+\bigskip
+\centertexdraw{
+ \def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.08 0){#1}
+ \esegment}
+ \def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.08 0){#1}
+ \esegment}
+ \def\bdot {\fcir f:0 r:0.02 }
+ \def\Ldot #1{\bdot \Ltext{#1}}
+ \def\Rdot #1{\bdot \Rtext{#1}}
+ \move (-2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 1) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 1)(1 0)
+ \esegment
+ \move (0 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0.5 0.8) \Ldot{1}
+ \lvec (1.5 0.8) \Rdot{2} \lvec (1 0) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0.5 1)(1.5 1)(1 0)
+ \esegment
+ \move ( 2 0)
+ \bsegment
+ \lpatt (0.033)
+ \move (0 0) \Ldot{0} \lvec (0 1) \Ldot{1}
+ \lvec (1 0) \Rdot{2} \lvec (1 1) \Rdot{3}
+ \lpatt ()
+ \move (0 0) \clvec (0 1)(1 0)(1 1)
+ \esegment
+}
+@end tex
+@end iftex
+
+@node Fill commands, , Bezier curves, TeXdraw Commands
+@section Fill commands
+@cindex filling regions
+@cindex painting regions
+@cindex paths
+
+PostScript deals with paths consisting of line segments. The paths can
+be closed and the interior of the closed region filled. From
+@TeX{}draw, paths start with a @code{\move} or @code{\rmove} command and
+continue with @code{\lvec}, @code{\rlvec} or @code{\clvec} commands.
+The @TeX{}draw fill commands close the path and fill the interior of the
+closed region. Closing the path means that effectively another
+@code{\lvec} line is drawn from the last point specified to the initial
+point. @TeX{}draw provides two forms of the fill command. The
+@code{\ifill} fills the interior of the region with the given gray
+level. The lines defining the path are not drawn. The @code{\lfill}
+command fills the region defined by the closed path and draws a line
+along the enclosing path. Note for both forms of the fill command, the
+gray level used for filling is opaque, even if the gray level is chosen
+to be white.
+
+@table @code
+@findex \lfill
+@item \lfill f:@var{level}
+Close the current path, draw the line around the path using the current
+grey level for lines and paint the interior of the region with specified
+gray level @var{level}. Gray levels are real values from 0 (black)
+through intermediate values (grays) to 1 (white).
+@findex \ifill
+@item \ifill f:@var{level}
+Close the current path and paint the interior of the region with gray
+level @var{level}. The line around the path is not drawn. Gray levels
+are real values from 0 (black) through intermediate values (grays) to 1
+(white).
+@end table
+
+The following example draws a ``flag'' with the interior filled in. The
+path around the boundary is given in a clockwise order to define a
+closed path. We could take advantage of the fact that the fill command
+will close an open path to eliminate one of the @code{\lvec} commands.
+@example
+@group
+\centertexdraw@{
+\move (0.5 0)
+\lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1)
+\lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0)
+\lfill f:0.8
+@}
+@end group
+@end example
+@tex
+\bigskip
+\centertexdraw{
+\move (0.5 0)
+\lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1)
+\lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0)
+\lfill f:0.8
+}
+@end tex
+
+In @TeX{}draw, the @code{\move} command always terminates any previous
+paths and starts a new path. Commands that change line parameters
+(e.g@. @code{\setgray} or @code{\lpatt}) also terminate paths and start
+new paths. The circle, ellipse and arc commands do not affect the
+definition of the current path. The @code{\avec} command is not
+appropriate for defining a path to be filled. It ends a subpath at its
+tail and begins a new subpath at its tip. Filling a region defined by a
+path with subpaths is more complicated in that each subpath is closed
+before filling.
+
+
+@node Drawing Segments and Scaling, Using TeXdraw with LaTeX, TeXdraw Commands, Top
+@chapter Drawing Segments and Scaling
+
+@TeX{}draw provides individually scaled segments which can be used to
+create relocatable drawing modules.
+
+@menu
+* Drawing segments::
+* Drawing paths::
+* Saving positions::
+* Scaling coordinates::
+* Drawing size::
+* Initial current position::
+@end menu
+
+@node Drawing segments, Drawing paths, , Drawing Segments and Scaling
+@section Drawing segments
+@cindex segments
+@cindex drawing segments
+
+A @TeX{}draw drawing segment allows for local modifications of
+parameters and relative positioning. A @TeX{}draw segment is delimited
+by a @code{\bsegment} command and an @code{\esegment} command. Inside
+the segment, the initial current position is @code{(0 0)}. Any changes
+to parameters such as the gray level and the line width, remain local to
+the segment. Segments are implemented in @TeX{} using a
+@code{\begingroup} and @code{\endgroup}. Segments can be nested.
+
+@table @code
+@findex \bsegment
+@item \bsegment
+Start a drawing segment. The coordinate system is shifted such that the
+current position corresponds to the coordinate @code{(0 0)}. Changes to
+scaling, position and line parameters stay local to the drawing segment.
+@findex \esegment
+@item \esegment
+End a drawing segment. The current position in effect before the
+corresponding @code{\bsegment} command is restored. The scaling and
+line parameter values revert to those in effect before the corresponding
+@code{\bsegment} command was invoked.
+@end table
+
+@node Drawing paths, Saving positions, Drawing segments, Drawing Segments and Scaling
+@section Drawing paths
+@cindex fill operations, interaction with drawing segments
+@cindex paths
+@cindex stroking lines
+Certain subtle interactions occur between drawing segments and fill
+operations. In PostScript, lines are drawn by first defining a path,
+then later stroking the path to draw the line. In @TeX{}draw, this
+stroking occurs when the line is terminated, say by a @code{\move}
+command. PostScript paths are interrupted by, but continue after a
+drawing segment. This means that a path started before a segment may
+not be stroked (drawn) until after the segment ends. Consider the
+following example.
+@example
+@group
+\move (0 0)
+\lvec (1 1)
+\bsegment
+ \move (-0.25 -0.25)
+ \fcir f:0.8 r:0.5
+\esegment
+\move (0 0)
+@end group
+@end example
+A PostScript path is started at @code{(0 0)} and continues with a line
+to @code{(1 1)}. This path is interrupted by the segment. The filled
+circle is drawn next. After the segment, the path continues and is not
+stroked until the @code{\move (0 0)} command after the end of the
+segment. This means that the line appears on top of the filled region.
+
+If the fill operation is to cover the line, the path must be stroked
+before the fill operation. From @TeX{}draw, the move commands
+@code{\move} and @code{\rmove}, and the end @TeX{}draw command
+@code{\etexdraw} terminate a path and cause it to be stroked. Within a
+segment, the end segment command @code{\esegment} also terminates and
+strokes a path. In the example above, the line can be stroked by
+inserting a move command (such as a @code{\rmove (0 0)} which does not
+affect the position), before the start of the segment.
+
+@node Saving positions, Scaling coordinates, Drawing paths, Drawing Segments and Scaling
+@section Saving positions
+@cindex saving positions
+@cindex positions, saving
+@cindex coordinate, symbolic
+@cindex symbolic coordinate
+
+The @code{\savecurrpos} command saves the current position. The saved
+position is an absolute position, not one relative to a segment. The
+position saving mechanism is global; the position can be saved within a
+nested segment and then used outside of the segment. The @var{x} and
+@var{y} coordinates of the position are saved separately as named
+coordinates. The names are of the form @code{*@var{name}}, with the
+leading @code{*} being obligatory. A companion command,
+@code{\savepos}, saves a given coordinate (relative to the current
+segment) as an absolute symbolic position.
+
+@table @code
+@findex \savecurrpos
+@item \savecurrpos (*@var{px} *@var{py})
+Save the current position as the absolute position referenced by
+@code{(*@var{px} *@var{py})}.
+@findex \savepos
+@item \savepos (@var{x} @var{y})(*@var{px} *@var{py})
+Save the coordinate position @code{(@var{x} @var{y})} as the absolute
+position referenced by @code{(*@var{px} *@var{py})}. The coordinate
+@code{(@var{x} @var{y})} is interpreted in the normal fashion as a
+coordinate relative to the current segment, using the current scaling
+factors and drawing unit.
+@end table
+
+The symbolic names used to specify a saved position can consist of any
+characters that are not special to @TeX{}, but must start with a
+@code{*} character. The symbolic names can be used as the @var{x}
+and/or @var{y} coordinate in any command that needs a coordinate.
+Symbolic coordinates are not normally used with relative motion commands
+such as @code{\rlvec} or @code{\rmove}. If used with relative motion,
+the corresponding displacement is equal to the symbolic coordinate
+value.
+
+On exit from a segment, the position and graphics state on entry is
+restored. Any changes to line types, scaling and position are
+discarded. However, it is sometimes useful alter the position on exit
+from a segment. The @code{\savepos} command allows for the saving of a
+position within the segment. This position can be restored after the
+@code{\esegment} with a @code{\move} command using the saved symbolic
+position. This approach can be used to build modules which operate in a
+manner analogous to the basic relative motion line vector commands.
+
+The following example defines a macro which draws a box 0.75 inches wide
+by 0.5 inches high containing centered text. On leaving the macro the
+position will be set at a point on the righthand side of the box.
+@example
+@group
+\def\tbox #1@{\bsegment
+ \lvec (0 +0.25) \lvec (0.75 +0.25)
+ \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0)
+ \textref h:C v:C \htext (0.375 0)@{#1@}
+ \savepos (0.75 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)@}
+@end group
+@end example
+With this definition, we can treat @code{\tbox} in the same way as the
+basic vector commands, stringing them together to form a block diagram
+as in this example.
+@example
+@group
+\centertexdraw@{
+ \ravec (1 0) \tbox@{$H(z)$@} \ravec (1 0)
+@}
+@end group
+@end example
+@tex
+\def\tbox #1{\bsegment
+ \lvec (0 +0.25) \lvec (0.75 +0.25)
+ \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0)
+ \textref h:C v:C \htext (0.375 0){#1}
+ \savepos (0.75 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\bigskip
+\centertexdraw{
+ \ravec (1 0) \tbox{$H(z)$} \ravec (1 0)
+}
+@end tex
+
+@node Scaling coordinates, Drawing size, Saving positions, Drawing Segments and Scaling
+@section Scaling coordinates
+@cindex scaling coordinates
+@cindex relative scaling
+@cindex segment scale
+@cindex unit scale
+
+There are two scale factors available, the unit scale factor and the
+segment scale factor. The overall scale factor is the product of these
+two. There are absolute and relative versions of commands to change
+these scale factors.
+
+The unit scale factor is normally used to affect global scale changes.
+Changes to the unit scale factor remains local to a segment, but
+propagate to inferior segments. The default value is unity.
+
+The segment scale factor is used for local scale changes. It remains
+local to a segment. The segment scale factor is reset to unity on entry
+into each segment. This means that changes to the segment scale factor
+do not propagate to inferior segments.
+
+@table @code
+@findex \setunitscale
+@item \setunitscale @var{scale}
+Set the unit scaling to @var{scale}. The argument @var{scale} is a real
+number which is used to scale coordinate values. The overall scaling
+factor is the product of the unit scale factor and the segment scale
+factor.
+@findex \relunitscale
+@item \relunitscale @var{value}
+Adjust the unit scale factor by multiplying by @var{value}. This has
+the effect of multiplying the overall scale factor by the same factor.
+The overall scaling factor is the product of the unit scale factor and
+the segment scale factor.
+@findex \setsegscale
+@item \setsegscale @var{scale}
+Set the segment scale factor. The argument @var{scale} is a real number
+which is used to scale coordinate values. The overall scale factor is
+the product of the unit scale factor and the segment scale factor.
+@findex \relsegscale
+@item \relsegscale @var{value}
+Adjust the segment scale factor by multiplying by @var{value}. This has
+the effect of multiplying the current overall scale factor by the same
+factor. The overall scaling factor is the product of the unit scale
+factor and the segment scale factor.
+@end table
+
+In addition to the unit scale factor and the segment scale factor, the
+scaling can be controlled by the choice of drawing units with the
+command @code{\drawdim} (@pxref{Coordinate specification}).
+
+@table @code
+@item \drawdim cm \setunitscale 2.54
+Set the units to centimetres scaled by 2.54. Together these commands
+are effectively the same as @code{\drawdim in}.
+@end table
+
+The segment scale can be used to allow scale changes in segments so that
+values are in more convenient units. For example suppose dimensions in
+a segment are multiples of one third of an inch. The segment scale can
+be set once to make 1 drawing unit equal 0.3333 inches. From that point
+on, coordinates can be specified with integer values.
+
+The following example defines a macro to draw a rectangular box which is
+twice as wide as it is high. The width is specified as an argument.
+@example
+@group
+\def\mybox #1@{\bsegment
+ \setsegscale #1
+ \lvec (0 +0.25) \lvec (1 +0.25) \lvec (1 -0.25)
+ \lvec (0 -0.25) \lvec (0 0)
+ \esegment@}
+@end group
+@end example
+
+@node Drawing size, Initial current position, Scaling coordinates, Drawing Segments and Scaling
+@section Drawing size
+@cindex size of the drawing
+
+The effective size of the drawing is determined by the maximum
+excursions of the coordinates supplied to @TeX{}draw commands. The
+minimum and maximum scaled @var{x} and @var{y} coordinates are tallied.
+Note that @code{\move} commands contribute to the determination of the
+calculated size of the drawing, even though they do not generate visible
+lines. The circle and ellipse commands add a compensation for the radii
+of circles and ellipses. The final @TeX{}draw drawing is placed in a
+@TeX{} box with lower lefthand corner corresponding to
+@code{(}@var{x}-min @var{y}-min@code{)} and upper righthand corner at
+@code{(}@var{x}-max @var{y}-max@code{)}.
+
+Text generated by @code{\htext}, @code{\vtext} or @code{\rtext} can
+spill outside the box as determined above. Only the text reference
+point is guaranteed to be in the drawing box. Arcs can also spill
+outside the drawing box. Note also that the widths of lines, and the
+sizes of arrowheads do not affect the size of the drawing. The
+calculated size of the drawing will never be larger than the actual size
+of the drawing. In extreme cases in which text or lines extend far
+outside the drawing, extra @code{\move} commands should be used to
+establish the size of the drawing so that the @TeX{}draw box includes
+all of the drawing.
+
+@TeX{}draw provides the @code{\drawbb} command to draw a box which
+indicates the effective size of the drawing. Whenever @code{\drawbb} is
+invoked, a ruled box is drawn around the drawing as it has been sized up
+to that point. Normally @code{\drawbb} is invoked just before the end
+of a drawing to indicate the effective size of the final drawing.
+
+@table @code
+@findex \drawbb
+@item \drawbb
+Draw a ruled box around the effective size of a drawing produced by
+@TeX{}draw commands.
+@end table
+
+@node Initial current position, , Drawing size, Drawing Segments and Scaling
+@section Initial current position
+@cindex current position
+@cindex initial current position
+
+The first operation in a drawing should be a move to establish the
+current position. The current position can be established explicitly
+through a @code{\move} command or a text positioning command such as
+@code{\htext} with a coordinate. However, if an attempt is made to use
+a drawing command which needs a current position and none has been
+established, @TeX{}draw implicitly sets the initial current position to
+@code{(0 0)}. The size of the @TeX{}draw figure is normally determined
+from the sequence of coordinates specified, but will include the
+implicit initial position in case another initial position has not been
+explicitly specified.
+
+@node Using TeXdraw with LaTeX, More Details, Drawing Segments and Scaling, Top
+@chapter Using @TeX{}draw with La@TeX{}
+@cindex accessing @TeX{}draw
+@cindex invoking @TeX{}draw
+@cindex La@TeX{}
+@cindex @code{texdraw} package
+
+The La@TeX{} typesetting system uses a structured approach to declaring
+typesetting environments. For La@TeX{}2e, the @code{texdraw} package
+defines the @code{texdraw} environment. The @TeX{}draw environment is
+started with a @code{\begin@{texdraw@}} command and terminated with an
+@code{\end@{texdraw@}} command. All of the basic @TeX{}draw commands
+can be used within the @code{texdraw} environment.
+
+As an example, a La@TeX{}2e variant of an earlier example can be
+constructed as follows.
+@example
+@group
+\documentclass@{article@}
+\usepackage@{texdraw@}
+ ...
+\begin@{document@}
+ ...
+\newcommand@{\tbox@}[1]@{%
+ \bsegment
+ \lvec (0 +0.25) \lvec (0.75 +0.25)
+ \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0)
+ \textref h:C v:C \htext (0.375 0)@{#1@}
+ \savepos (0.75 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)@}
+\begin@{center@}
+\begin@{texdraw@}
+ \ravec (1 0) \tbox@{$H(z)$@} \ravec (1 0)
+\end@{texdraw@}
+\end@{center@}
+ ...
+\end@{document@}
+@end group
+@end example
+
+This example illustrates the use of the La@TeX{} command
+@code{\newcommand} as an alternative to the plain @TeX{} command
+@code{\def}. Instead of the basic @TeX{}draw command
+@code{\centertexdraw}, a nested combination of the La@TeX{} centering
+environment and the @TeX{}draw environment is used.
+
+@menu
+* PostScript printer drivers::
+@end menu
+
+@node PostScript printer drivers, , , Using TeXdraw with LaTeX
+@section PostScript printer drivers
+@cindex printer drivers
+@cindex PostScript printer drivers
+
+@cindex @code{graphics} package
+The @code{texdraw} package uses the printer driver interface provided by
+the standard La@TeX{}2e @code{graphics} package. Any options to the
+@code{texdraw} package are passed to the @code{graphics} package.
+Specifically, the name of the PostScript driver to be used can be
+specified as an option to the @code{texdraw} package. With no explicit
+printer driver option, the default printer driver associated with the
+@code{graphics} package is used.
+
+@cindex @code{dvips} printer driver
+@cindex @code{xdvi} driver
+@cindex @code{dvi2ps} printer driver
+@cindex @code{dvialw} printer driver
+@cindex @code{dvilaser} printer driver
+@cindex @code{dvipsone} printer driver
+@cindex @code{dviwindo} printer driver
+@cindex @code{dvitops} printer driver
+@cindex @code{oztex} printer driver
+@cindex @code{psprint} driver
+@cindex @code{textures} printer driver
+@cindex @code{pctexps} printer driver
+@cindex @code{pctexwin} printer driver
+@cindex rotated text
+@cindex text rotation
+The @code{texdraw} package can be used with any of the printer drivers
+supported by the @code{graphics} package that allow for the importation
+of PostScript graphics files, viz., @code{dvips}, @code{xdvi},
+@code{dvi2ps}, @code{dvialw}, @code{dvilaser}, @code{dvipsone},
+@code{dviwindo}, @code{dvitops}, @code{oztex}, @code{psprint},
+@code{textures}, @code{pctexps}, and @code{pctexwin}. Not all of these
+drivers support the text rotation needed for the @TeX{}draw commands
+@code{\vtext} and @code{\rtext}. Of the drivers listed above, only the
+following support support text rotation: @code{dvips}, @code{xdvi},
+@code{dvi2ps}, @code{dvitops}, @code{textures}, and @code{pctexps}.
+
+
+@node More Details, PostScript Commands, Using TeXdraw with LaTeX, Top
+@chapter More Details
+
+The first part of this chapter offers some suggestions for strategies to
+isolate errors in @TeX{} and @TeX{}draw input. The second part of this
+chapter discusses implementational issues. An awareness of these issues
+is useful if @TeX{}draw is to be extended.
+
+@menu
+* Errors while using TeXdraw::
+* Extending TeXdraw::
+* How TeXdraw merges graphics and text::
+@end menu
+
+@node Errors while using TeXdraw, Extending TeXdraw, , More Details
+@section Errors while using @TeX{}draw
+@cindex problems while using @TeX{}draw
+@cindex errors while using @TeX{}draw
+
+@TeX{} input is notoriously difficult to debug. If @TeX{} reports
+errors, so much the better. If the cause is not immediately obvious,
+consider using a binary search strategy, removing sections of code with
+the premature insertion of the @code{\bye} (or @code{\end@{document@}}
+for La@TeX{}) command (with the appropriate closing of any open groups
+and the like). Other strategies include the insertion of
+@code{\message@{I am here@}} at appropriate places. Try using
+@code{\tracingmacros=1}. Many problems turn out to be due to an
+incorrect number of macro arguments or incorrectly delimited macro
+arguments. The @code{\tracingmacros=1} option writes the macro
+arguments and macro expansions to the @TeX{} log file.
+
+Certain errors may not manifest themselves until well after the
+offending command. For instance, if a closing parenthesis is missing
+from a @TeX{}draw coordinate, @TeX{} continues searching for the
+parenthesis. If one is found, perhaps many lines later, the @TeX{}draw
+error message @code{invalid coordinate} will be printed at this later
+point.
+
+All input in the @TeX{}draw environment should be intended for
+interpretation by @TeX{}draw commands. @TeX{}draw places text inside a
+zero size box (the text itself extends outside the box). Extraneous
+input manifests itself as a non-zero size @TeX{}draw text box. This
+causes the @TeX{}draw text and the PostScript graphics to be displaced
+from one another. An error message is issued if a non-zero width
+@TeX{}draw text box is detected. If this error message appears, look
+for unintended character sequences amongst the commands to @TeX{}draw.
+
+Several @TeX{}draw commands pass their arguments ``raw'' to the
+PostScript file. That means that invalid arguments can generate
+PostScript errors when the document is printed. For instance the
+argument of the @code{\setgray} command is passed straight through to
+the PostScript file. If this argument is non-numeric, a PostScript
+error results. Not all PostScript printers report errors back to the
+user. The print may just stop prematurely. One approach to debugging
+is to use a PostScript previewer on a workstation. That way, one can
+determine at which point in the drawing the PostScript error occurs.
+
+@node Extending TeXdraw, How TeXdraw merges graphics and text, Errors while using TeXdraw, More Details
+@section Extending @TeX{}draw
+@cindex implementation
+
+@TeX{}draw is implemented using a combination of @TeX{} commands and
+PostScript code. This section discusses some of the implementational
+issues as they relate to extending @TeX{}draw.
+
+@TeX{}draw as implemented, offers a basic set of drawing features.
+These are adequate for certain tasks such as producing block diagrams.
+There are different approaches to extending @TeX{}draw to include other
+functions. In some cases, the desired functionality can be achieved by
+writing a @TeX{} macro which builds on top of the existing @TeX{}draw
+commands. As these extensions become more complex, the limitations of
+@TeX{} for computations become increasingly evident. In other cases,
+access to different features of PostScript is desired. The appropriate
+approach would be to write new PostScript procedures which can be
+accessed by @TeX{} macros.
+
+Included with @TeX{}draw is a set of macros for directly accessing
+PostScript functions. These are described in an appendix
+(@pxref{PostScript Commands}).
+
+@TeX{}draw also comes with a toolbox of routines for handling much of
+the user interface, converting between different coordinate
+representations and the like. The macros for coordinate decoding and
+for computations involving coordinates are described in an appendix
+(@pxref{TeXdraw Toolbox, , @TeX{}draw Toolbox}).
+
+@menu
+* Scaling::
+* Resolution::
+* Text placement::
+* Intermediate PostScript file::
+@end menu
+
+@node Scaling, Resolution, , Extending TeXdraw
+@subsection Scaling
+@cindex scaling
+
+The scaling commands provided in @TeX{}draw are designed to affect only
+the coordinate values specified in commands. For instance, changing the
+@code{\setunitscale} value changes the interpretation of the coordinate
+in an @code{\avec (@var{x} @var{y})} command, but does not change the
+line width or arrowhead sizes in effect. None of the @TeX{}draw scaling
+commands affect the size of @TeX{} text produced by, for instance, the
+@code{\htext} command. Scale changes will however affect the
+positioning of text for subsequent commands.
+
+The line parameters are changed only if the corresponding commands to
+change them are issued. If the @code{\linewd} command is given, the
+current coordinate scaling is used to determine the line width. To
+achieve a behaviour more like a global scaling, whenever the scale
+factor is changed, the line parameters should be set again.
+
+@node Resolution, Text placement, Scaling, Extending TeXdraw
+@subsection Resolution
+@cindex resolution
+
+@TeX{}draw scales coordinates before passing them to PostScript.
+Keeping track of the coordinate scaling is necessary, in any event, to
+allow @TeX{}draw to compute the maximum excursions of the coordinates.
+@TeX{}draw uses pixel units in its PostScript code. One pixel unit is
+equal to 1/300 of an inch. @TeX{}draw issues PostScript commands with
+integer valued pixel coordinates. This sets the positioning resolution
+for @TeX{}draw. The passing of integer valued coordinates which
+correspond to the device resolution keeps lines aligned with the device
+grid; parallel lines of the same width will be rendered with the same
+width.
+
+The position saving mechanism in @TeX{}draw (@pxref{Saving positions})
+associates the pixel coordinates of a position with the specified name.
+
+@TeX{}draw uses the limited real number representation provided by
+@TeX{}. These operations are based on the representation of dimensions
+as real-valued numbers of points. Internally in @TeX{}, dimensions are
+stored 32-bit values, normalized so that 1 pt corresponds to the scaled
+point (sp) value of 65536. Dimensions with magnitudes between 0.000015
+pt and 32767 pt can be represented. This is also the dynamic range of
+the @TeX{}draw pixel coordinates passed to PostScript. @TeX{}draw must
+convert from user supplied coordinates using the scaling factor (which
+itself consists of two components, the unit scale and the segment scale)
+and a pixel conversion factor. The use of limited precision real
+numbers in these computations can cause accumulation of error when
+relative scaling is used repeatedly.
+
+@node Text placement, Intermediate PostScript file, Resolution, Extending TeXdraw
+@subsection Text placement
+
+While in the @TeX{}draw environment, @TeX{} text is placed in a @TeX{}
+box while PostScript code is written to the intermediate file. At the
+end of the @TeX{}draw environment, the size of the drawing is
+determined. A @TeX{} box of this size is created. The @TeX{}
+@code{\special} mechanism is used to instruct the PostScript driver
+program to position the PostScript drawing from the intermediate file in
+this area. Next, the text generated by @TeX{}draw is positioned and
+placed in the box. Note that when the document is printed, the
+PostScript drawing is placed on the page before the @TeX{} text; @TeX{}
+text will appear on top of graphics.
+
+@cindex rotated text
+@cindex text rotation
+The rotation of text is carried out with in-line PostScript code which
+does not appear in the intermediate PostScript file. This code is sent
+to the PostScript driver with a @code{\special} command. This
+PostScript code is embedded in the dvi (device independent) file that
+@TeX{} produces.
+
+@node Intermediate PostScript file, , Text placement, Extending TeXdraw
+@subsection The intermediate PostScript file
+@cindex Encapsulated PostScript File
+
+The intermediate PostScript file consists of a header, a body and a
+trailer following Encapsulated PostScript File (EPSF) standards. The
+header sets up PostScript definitions and default parameter values. The
+trailer includes the @code{BoundingBox} information which gives the
+coordinates in default PostScript units (72 per inch) for the lower
+lefthand corner and the upper righthand corner of the drawing. The body
+of the intermediate PostScript file contains the PostScript commands
+generated by @TeX{}draw.
+
+Many moves in @TeX{}draw serve only to position text or to reset saved
+positions. @TeX{}draw buffers move commands in order to be able to
+collapse runs of moves. Only the last move of a run of moves is
+actually written to the PostScript file. However the intermediate moves
+still affect the size of the drawing. The expunging of moves means that
+the PostScript file @code{BoundingBox} information may indicate a drawing size
+larger than the PostScript commands themselves would warrant.
+
+Drawing segments in @TeX{}draw show up in the PostScript file as saves
+and restores of the PostScript graphics state. Segment starts are
+buffered and only written out if necessary. This way ``empty'' segments
+do not generate output to the PostScript file. These empty segments
+arise if a segment contains only moves and text commands. The moves
+inside the segment are not needed since they are local to the segment,
+and the text commands do not generate output to the PostScript file.
+
+If @TeX{}draw is used only for moves and text, no intermediate
+PostScript file will be created.
+
+@node How TeXdraw merges graphics and text, , Extending TeXdraw, More Details
+@section How @TeX{}draw merges graphics and text
+@cindex graphics placement
+@cindex text placement
+@cindex placement of graphics and text
+
+@TeX{}draw creates a box which is the same size as the graphic. The
+printer driver will place the PostScript graphic into this space. Any
+@TeX{} text generated by the @TeX{}draw commands will be superimposed on
+this graphic.
+
+@cindex @code{texdraw} package
+@cindex @code{graphics} package
+The La@TeX{}2e front-end for @TeX{}draw is enabled by including the
+@code{texdraw} package. The @code{texdraw} package automatically
+invokes the standard @code{graphics} package distributed with
+La@TeX{}2e. The @code{graphics} package has support for a number of
+different printer drivers, including a number for PostScript printers.
+Any options to the @code{texdraw} package are passed on to the
+@code{graphics} package. Such an option can be used to select a driver
+other than the default one.
+
+@cindex PostScript printer drivers
+@cindex printer drivers
+@cindex @code{dvips} printer driver
+@cindex rotated text
+@cindex text rotation
+Within the @code{graphics} package, the driver option is used to select
+definitions for the low-level macros which generate the @code{\special}
+commands needed to request insertion of a graphics file and to rotate
+text.@footnote{Not all PostScript drivers support text rotation.}
+@TeX{}draw uses the user-level macros defined by the @code{graphics}
+package (@pxref{PostScript printer drivers}). When not used with the
+La@TeX{}2e front-end, @TeX{}draw defines versions of these macros that
+are suitable for use with the @code{dvips} printer driver.
+
+@node PostScript Commands, TeXdraw Toolbox, More Details, Top
+@appendix PostScript Commands
+@cindex PostScript commands
+
+This appendix describes a set of macros for accessing some of the
+PostScript builtin functions. Each of these macros issues a single
+PostScript command. The extra services provided by @TeX{}draw are the
+interpretation of coordinates in user units relative to the current
+drawing segment and the writing of a pending @TeX{}draw move to the
+PostScript file. This last operation establishes the current point in
+PostScript. The user of these commands should be familiar with the
+concepts of path construction and filling in PostScript. Further
+details on the PostScript functions used can found in the
+@cite{PostScript Language Reference Manual, Second Edition}, Adobe
+Systems, Addison-Wesley, 1990.
+
+These macros are distributed in file @file{txdps.tex}.
+
+The @code{\PSsetlinecap} and @code{\PSsetlinejoin} commands control the
+way line ends and line joins are rendered. The default values set by
+@TeX{}draw (round caps and round join) are appropriate for most
+drawings. Changes to these parameters apply to the current and
+subsequent paths.
+
+@cindex line cap
+@cindex line join
+@table @code
+@findex setlinecap
+@findex \PSsetlinecap
+@item \PSsetlinecap @var{type}
+Set the line cap parameter. The value @code{0} gives a butt cap;
+@code{1} gives a round cap; and @code{2} gives a projecting square cap.
+The initial value is corresponds to a round cap.
+@findex setlinejoin
+@findex \PSsetlinejoin
+@item \PSsetlinejoin @var{type}
+Set the line join parameter. The value @code{0} gives a miter join;
+@code{1} gives a round join; and @code{2} gives a bevel join. The
+initial value corresponds to a round join.
+@end table
+
+@cindex stroking lines
+@cindex filling regions
+@cindex paths
+@cindex current position in PostScript
+PostScript paths and fill operations can be controlled by a number of
+functions. By design, @TeX{}draw always maintains a defined PostScript
+current point. Some of the following macros cause the PostScript
+current point to become undefined. The PostScript current point must be
+set again (say with a @code{\PSmoveto} command) before invoking basic
+@TeX{}draw commands.
+@table @code
+@findex stroke
+@findex \PSstroke
+@item \PSstroke
+Stroke a PostScript path. The current path is stroked with the current
+gray level (set with @code{\setgray}) and the current line pattern (set
+with @code{\lpatt}). The PostScript current point becomes undefined.
+@findex newpath
+@findex \PSnewpath
+@item \PSnewpath
+Establish a new path. The PostScript current point becomes undefined.
+@findex closepath
+@findex \PSclosepath
+@item \PSclosepath
+Close a subpath. A new subpath is started.
+@findex fill
+@findex \PSfill
+@item \PSfill
+Fill a region defined by a path. Each subpath is closed and the
+enclosed regions painted with the current gray level. The PostScript
+current point becomes undefined. The gray level can be set with the
+@TeX{}draw command @code{\setgray}.
+@end table
+
+The following line commands interpret coordinates relative to the
+current @TeX{}draw scaling and drawing segment. The specified
+coordinate affects the drawing size as determined by @TeX{}draw.
+@cindex lines
+@cindex moves
+@table @code
+@findex lineto
+@findex \PSlineto
+@item \PSlineto (@var{x} @var{y})
+Add a line segment to the current path. This command is identical to
+the @TeX{}draw command @code{\lvec}. The PostScript current point must
+be defined before this command is issued.
+@findex moveto
+@findex \PSmoveto
+@item \PSmoveto (@var{x} @var{y})
+Move to the coordinate specified by @code{(@var{x} @var{y})}. The
+PostScript current point becomes defined.
+@end table
+
+The following macros provide access to the general arc commands in
+PostScript. The coordinates are interpreted relative to the current
+@TeX{}draw scaling and drawing segment. The specified coordinate
+affects the drawing size as determined by @TeX{}draw.
+@cindex arcs
+@table @code
+@findex arc
+@findex \PSarc
+@item \PSarc r:@var{radius} sd:@var{start-angle} ed:@var{end-angle} (@var{x} @var{y})
+Draw a counterclockwise arc. The center of the arc is at the given
+position. The radius is specified by @var{radius}. The start and end
+angles (in degrees) are specified by @var{start-angle} and
+@var{end-angle}. If the PostScript current point is defined, this
+command also draws the line from the current point to the beginning of
+the arc. The line and arc become part of the current path. The current
+point becomes defined.
+@findex arcn
+@findex \PSarcn
+@item \PSarcn r:@var{radius} sd:@var{start-angle} ed:@var{end-angle} (@var{x} @var{y})
+Draw a clockwise arc. The center of the arc is at the given position.
+The radius is specified by @var{radius}. The start and end angles (in
+degrees) are specified by @var{start-angle} and @var{end-angle}. If the
+PostScript current point is defined, this command also draws the line
+from the current point to the beginning of the arc. The line and arc
+become part of the current path. The current point becomes defined.
+@end table
+
+The macro @code{\writeps} provides the general facility to write
+arbitrary PostScript commands to the PostScript file. This macro is
+used by the preceding commands and by the @TeX{}draw commands
+themselves. This facility has to be used with care since changes in
+position or scaling resulting from the PostScript commands are not known
+to @TeX{}draw.
+@table @code
+@findex \writeps
+@item \writeps @{@var{<ps-commands>}@}
+Write PostScript commands to the intermediate PostScript file. Before
+the commands are inserted, any pending @TeX{}draw move is written to the
+PostScript file. The PostScript scaling gives 300 units/inch.
+@end table
+
+
+@node TeXdraw Toolbox, Examples, PostScript Commands, Top
+@appendix @TeX{}draw Toolbox
+
+This appendix describes some of the macros supplied with @TeX{}draw
+which can be used to define additional commands for creating drawings.
+The macros described here work in the user specified coordinate system.
+Some of these toolbox macros are used by the @TeX{}draw commands
+themselves, others are supplied in an auxiliary file
+@file{txdtools.tex}.
+
+@menu
+* Coordinate parsing::
+* Real arithmetic::
+* Arrow curve::
+@end menu
+
+@node Coordinate parsing, Real arithmetic, , TeXdraw Toolbox
+@appendixsec Coordinate parsing
+
+The coordinate parsing macro @code{\getpos} is useful for creating new
+commands. This macro takes care of stripping leading and trailing
+blanks from coordinates specified between parentheses. In addition,
+symbolic coordinates are translated to the corresponding relative
+coordinate using the segment offset and scaling in effect.
+
+The macro @code{\currentpos} returns the relative coordinates of the
+current position. The returned values are relative to the current
+segment and the current scaling. The macro @code{\cossin} returns the
+real-valued cosine and sine of the direction of the line joining two
+points. The macro @code{\vectlen} returns the length of a vector. The
+results appear as the value of user supplied macro names.
+
+@cindex coordinate parsing
+@cindex current position
+@cindex angle of a vector
+@cindex direction of a line
+@cindex cosine of a vector direction
+@cindex sine of a vector direction
+@cindex length of a vector
+@table @code
+@findex \getpos
+@item \getpos (@var{x} @var{y})\@var{mx}\@var{my}
+Decode coordinate values. The coordinates specified by @code{(@var{x}
+@var{y})} are decoded. Symbolic coordinates are translated to the
+corresponding relative coordinate using the current segment offset and
+scaling. The resulting character strings representing the real-valued
+coordinates are assigned to the macros specified by @code{\@var{mx}} and
+@code{\@var{my}}.
+@findex \currentpos
+@item \currentpos \@var{mx}\@var{my}
+Return the coordinates of the current position. The coordinates are
+relative to the current segment offset and scaling. The resulting
+character strings representing the real-valued coordinates are assigned
+to the macros specified by @code{\@var{mx}} and @code{\@var{my}}.
+@findex \cossin
+@item \cossin (@var{x1} @var{y1})(@var{x2} @var{y2})\@var{cosa}\@var{sina}
+Return the cosine and sine of the direction of a vector joining two
+points. The cosine and sine of the angle of the vector which goes from
+@code{(@var{x1} @var{y1})} to @code{(@var{x2} @var{y2})}. The character
+strings representing these real-valued quantities are assigned to the
+macros specified by @code{\@var{cosa}} and @code{\@var{sina}}.
+@findex \vectlen
+@item \vectlen (@var{x1} @var{y1})(@var{x2} @var{y2})\@var{len}
+Return the length of a vector joining two points. The length of the
+vector is relative to the current scaling. The character string
+representing the real-valued length is assigned to the macro specified
+by @code{\@var{len}}.
+@end table
+
+@node Real arithmetic, Arrow curve, Coordinate parsing, TeXdraw Toolbox
+@appendixsec Real arithmetic
+
+The @TeX{}draw toolbox supplies macros to perform real arithmetic on
+coordinate values. The result appears as the value of a user supplied
+macro name.
+@table @code
+@findex \realadd
+@item \realadd @{@var{value1}@} @{@var{value2}@} \@var{sum}
+Add two real quantities, assigning the resultant character string
+representing the sum to the macro @code{\@var{sum}}.
+@findex \realmult
+@item \realmult @{@var{value1}@} @{@var{value2}@} \@var{prod}
+Multiply two real quantities, assigning the resultant character string
+representing the product to the macro @code{\@var{prod}}.
+@findex \realdiv
+@item \realdiv @{@var{value1}@} @{@var{value2}@} \@var{result}
+Divide two real quantities, assigning the resultant character string
+representing the result of @var{value1}/@var{value2} to the macro
+@code{\@var{result}}.
+@end table
+
+@node Arrow curve, , Real arithmetic, TeXdraw Toolbox
+@appendixsec Arrow curve
+@cindex example, arrow curve
+
+This example illustrates the use of the @TeX{}draw toolbox routines to
+do computations with the coordinates. The problem will be tackled in
+two parts. First, we will produce a macro to place an arrowhead on a
+Bezier curve. Then given this macro, we will produce a macro which can
+draw a ``wiggly'' line from the current position to a given coordinate.
+
+@tex
+\bigskip
+\def\cavec (#1 #2)(#3 #4)(#5 #6){
+ \clvec (#1 #2)(#3 #4)(#5 #6)
+ \cossin (#3 #4)(#5 #6)\cosa\sina
+ \rmove (0 0) % stroke the Bezier curve
+ \bsegment
+ \drawdim in \setsegscale 0.05
+ \move ({-\cosa} -\sina) \avec (0 0)
+ \esegment}
+
+\def\caw (#1 #2){
+ \currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+
+% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0)
+% Find the rotated offset (dx dy) -> (du dv)
+ \rotatecoord (0.4 0.1)\cosa\sina \du\dv
+
+% calculate the length of the vector
+ \vectlen ({\xa} \ya)(#1 #2)\len
+
+% draw the curve in normalized units
+ \bsegment
+ \setsegscale {\len}
+ \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb
+ \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina)
+ \esegment
+
+ \move (#1 #2)}
+
+% rotate a coordinate (x y)
+% arguments: (x y) cosa sina x' y'
+% x' = cosa * x - sina * y; y' = sina * x + cosa * y
+\def\rotatecoord (#1 #2)#3#4#5#6{
+ \getpos (#1 #2)\xarg\yarg
+ \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb
+ \realadd \tmpa {-\tmpb} #5
+ \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb
+ \realadd \tmpa \tmpb #6}
+
+\centertexdraw{
+ \arrowheadtype t:W
+ \move (0 0)
+ \cavec (1.4 0.1)(-0.4 -0.1)(1 0)
+ \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)}
+ \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)}
+ \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)}
+ \move (0 1.13) \move (0 -0.04)
+}
+@end tex
+
+The first macro, @code{\cavec}, uses the @code{\cossin} command to
+determine the the cosine and sine of the angle of the line joining the
+second control point to the end point of the Bezier curve. Recall that
+the Bezier curve is tangent to this line at the end point. After
+drawing the Bezier curve, the scaling is set locally to absolute units
+of 0.05 inches. We go back down the line from the end point by 0.05
+inches and draw an arrow vector to the end point from there. This arrow
+vector is mostly arrowhead, with little or no tail.
+
+@example
+@group
+\def\cavec (#1 #2)(#3 #4)(#5 #6)@{
+ \clvec (#1 #2)(#3 #4)(#5 #6)
+ \cossin (#3 #4)(#5 #6)\cosa\sina
+ \rmove (0 0)
+ \bsegment
+ \drawdim in \setsegscale 0.05
+ \move (@{-\cosa@} -\sina) \avec (0 0)
+ \esegment@}
+@end group
+@end example
+
+Note the use of macros as arguments to a @code{\move} command. Minus
+signs are put in front of the macros. However, the value of the macro
+@code{\cosa} or @code{\sina} could be negative. Fortunately, @TeX{}
+accepts two minus signs in a row and interprets the result as positive.
+Note that the @code{\rmove (0 0)} command before the beginning of the
+segment ensures that the Bezier curve is stroked before the arrowhead is
+drawn.
+
+The second macro @code{\caw} builds on @code{\cavec}. The goal is to
+produce a wiggly vector that can be used as a pointer in a drawing.
+Consider the following symmetrical normalized Bezier curve.
+@example
+\centertexdraw@{ \move (0 0) \cavec (1.4 0.1)(-0.4 -0.1)(1 0) @}
+@end example
+
+This curve has the appropriate wiggle. Now we want to be able to draw
+this curve, appropriately scaled and rotated. The macro @code{\caw}
+needs to do computations on the coordinates. First, @code{\caw} uses
+the macros @code{\getpos} and @code{\currentpos} to get the positions of
+the end and start of the curve. Next, the length of the vector is
+calculated using the macro @code{\vectlen}. A local macro
+@code{\rotatecoord} is used to rotate a coordinate pair about the
+origin, using the cosine and sine of the rotation angle. The vector
+length is used to scale the normalized curve. The remaining code draws
+the rotated, normalized curve.
+
+@example
+\def\caw (#1 #2)@{
+ \currentpos \xa\ya
+ \cossin (@{\xa@} \ya)(#1 #2)\cosa\sina
+
+% The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0)
+% Find the rotated offset (dx dy) -> (du dv)
+ \rotatecoord (0.4 0.1)\cosa\sina \du\dv
+
+% calculate the length of the vector
+ \vectlen (@{\xa@} \ya)(#1 #2)\len
+
+% draw the curve in normalized units
+ \bsegment
+ \setsegscale @{\len@}
+ \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb
+ \cavec (@{\tmpa@} \tmpb)(@{-\du@} -\dv)(@{\cosa@} \sina)
+ \esegment
+ \move (#1 #2)@}
+
+% rotate a coordinate (x y)
+% arguments: (x y) cosa sina x' y'
+% x' = cosa * x - sina * y; y' = sina * x + cosa * y
+\def\rotatecoord (#1 #2)#3#4#5#6@{
+ \getpos (#1 #2)\xarg\yarg
+ \realmult \xarg @{#3@} \tmpa \realmult \yarg @{#4@} \tmpb
+ \realadd \tmpa @{-\tmpb@} #5
+ \realmult \xarg @{#4@} \tmpa \realmult \yarg @{#3@} \tmpb
+ \realadd \tmpa \tmpb #6@}
+@end example
+
+Finally, the new macro can be used as follows.
+@example
+\centertexdraw@{
+ \arrowheadtype t:W
+ \move (0 0)
+ \cavec (1.4 0.1)(-0.4 -0.1)(1 0)
+ \move (1 0) \caw (1 1) \htext@{tip at \tt (1 1)@}
+ \move (1 0) \caw (2 1) \htext@{tip at \tt (2 1)@}
+ \move (1 0) \caw (2 0) \htext@{tip at \tt (2 0)@}
+
+@}
+@end example
+
+Note that the Bezier curve in the macro @code{\cavec} lies below the
+arrowhead. The example then draws an arrowhead of type @code{W} to
+erase the part of the line below the arrowhead.
+
+@node Examples, Command Listing, TeXdraw Toolbox, Top
+@appendix Examples
+@cindex example, block diagram
+
+This appendix shows examples of the use of @TeX{}draw.
+
+@menu
+* Block diagram::
+* Filter response graph::
+* Geometric construction::
+@end menu
+
+@node Block diagram, Filter response graph, , Examples
+@appendixsec Block diagram of a lattice filter
+
+The block diagram of a lattice filter uses a library of extended
+commands built from the basic @TeX{}draw commands.
+
+@tex
+\bigskip
+\bigskip
+\def\delay {\bsegment
+ \setsegscale 0.3
+ \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5)
+ \lvec (0 -0.5) \lvec (0 0)
+ \textref h:C v:C \htext (0.5 0){$z^{-1}$}
+ \savepos (1 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)}
+\def\bdot {\fcir f:0 r:0.02 }
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 +0.06){#1}
+ \esegment}
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.06){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.06 0){#1}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext (+0.06 0){#1}
+ \esegment}
+\def\cradius {0.08}
+\def\pluss {\bsegment
+ \setsegscale {\cradius}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \move (0 -0.5) \lvec (0 +0.5)
+ \esegment}
+\def\pcir {\lcir r:{\cradius} \pluss}
+\def\puttext (#1 #2)#3{\bsegment
+ \setsegscale {\cradius}
+ \textref h:C v:C \htext (#1 #2){#3}
+ \esegment}
+\def\putwnw #1{\puttext (-1.7 +1.2){#1}}
+\def\putwsw #1{\puttext (-1.7 -1.2){#1}}
+\def\putn #1{\puttext ( 0 +2 ){#1}}
+\def\puts #1{\puttext ( 0 -2 ){#1}}
+\def\avectoc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \savepos (#1 #2)(*tx *ty)
+ \bsegment
+ \move (*tx *ty)
+ \setsegscale {\cradius}
+ \rmove ({-\cosa} -\sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \avec (*ex *ey)
+ \move (#1 #2)}
+\def\avecfrc (#1 #2){\currentpos \xa\ya
+ \cossin ({\xa} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale {\cradius}
+ \move ({\cosa} \sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \move (*ex *ey)
+ \avec (#1 #2)}
+
+\centertexdraw{
+\drawdim in
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$}
+
+\move (0 +0.63) \move (0 -0.60) % compensate for the text size
+\move (0 0)
+
+% Input to the first stage
+\bsegment
+ \Ltext{$x(n)$}
+ \lvec (0.3 0) \bdot \lvec (0.3 +0.4)
+ \move (0.3 0) \lvec (0.3 -0.4)
+ \savepos (0.3 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% first lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.1 +0.4)
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_0(n)$}
+ \move (2.0 +0.42) \Ttext {$f_1(n)$}
+ \move (0.1 -0.4) \Btext {$b_0(n)$}
+ \move (2.0 -0.4) \Btext {$b_1(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_1$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_1$}
+ \savepos (2.1 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% center section
+\bsegment
+ \textref h:C v:C
+ \htext (0.3 +0.4){$\cdots$}
+ \htext (0.3 -0.4){$\cdots$}
+ \savepos (0.6 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% last lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw{\pl} \puts{\mn}
+ \avecfrc (2.3 +0.4) \Rtext{$e(n)$}
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw{\pl} \putn{\mn}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$}
+ \move (2.0 +0.42) \Ttext {$f_P(n)$}
+ \move (0.1 -0.4) \Btext {$b_{P-1}(n)$}
+ \move (2.0 -0.4) \Btext {$b_P(n)$}
+ \textref h:L v:B \htext (1.15 +0.2){$K_P$}
+ \textref h:L v:T \htext (1.15 -0.2){$K_P$}
+\esegment
+}
+\bigskip
+@end tex
+
+The block diagram uses a ``delay'' block. This is defined as a segment
+which leaves the current position at the end of this block. A second
+macro, @code{\bdot}, draws a ``big'' dot which is used to mark junctions
+of lines. The @code{\Ttext} command centers text above a given point.
+The offset to position the text is local to a segment, resulting in no
+change to the current point. Similar macros to position text below a
+point (@code{\Btext}), to the left of a point (@code{\Ltext}) and to the
+right of a point (@code{\Rtext}) are used in the final drawing.
+@example
+\def\delay @{\bsegment
+ \setsegscale 0.3
+ \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5)
+ \lvec (0 -0.5) \lvec (0 0)
+ \textref h:C v:C \htext (0.5 0)@{$z^@{-1@}$@}
+ \savepos (1 0)(*ex *ey)
+ \esegment
+ \move (*ex *ey)@}
+\def\bdot @{\fcir f:0 r:0.02 @}
+\def\Ttext #1@{\bsegment
+ \textref h:C v:B \htext (0 +0.06)@{#1@}
+ \esegment@}
+@end example
+
+Several of the block diagram elements scale with the size of the summing
+nodes. The radius of the circles for the summing nodes is defined as
+the macro @code{\cradius}. The summing nodes will have enclosed plus
+signs, appropriately scaled. The plus sign is drawn by the macro
+@code{\pluss}. The macro @code{\pcir} draws both the circle and the
+plus sign. The incoming lines to a summing node will be labelled with
+plus or minus signs (characters this time), placed at the appropriate
+position with respect to the center of the summing node. These
+positions are given in terms of compass directions. The macro
+@code{\putwnw} places text west by north-west relative to the center of
+the summing node.
+@example
+\def\cradius @{0.08@}
+\def\pluss @{\bsegment
+ \setsegscale @{\cradius@}
+ \move (-0.5 0) \lvec (+0.5 0)
+ \move (0 -0.5) \lvec (0 +0.5)
+ \esegment@}
+\def\pcir @{\lcir r:@{\cradius@} \pluss@}
+\def\puttext (#1 #2)#3@{\bsegment
+ \setsegscale @{\cradius@}
+ \textref h:C v:C \htext (#1 #2)@{#3@}
+ \esegment@}
+\def\putwnw #1@{\puttext (-1.7 +1.2)@{#1@}@}
+@end example
+
+The block diagram has vectors arriving and departing from the summing
+nodes (circles). One could calculate the points of intersection of the
+lines with the circles, and then enter the values into the @TeX{}draw
+code. However, in this example, we implement an automated procedure.
+Two macros are needed, an arrow vector to a circle (@code{\avectoc}) and
+an arrow vector leaving from a circle (@code{\avecfrc}). The macros
+will calculate the point of intersection with the circle and start or
+end the vector at the intersection point.
+
+The arrow macros use scaling and relative positioning inside of a
+drawing segment. In the case of the macro @code{\avectoc}, a move is
+made to the final point (center of the circle), then within a drawing
+segment, a scaled move is made back towards the initial point to
+determine the intersection point with the circle.
+
+@example
+\def\avectoc (#1 #2)@{\currentpos \xa\ya
+ \cossin (@{\xa@} \ya)(#1 #2)\cosa\sina
+ \savepos (#1 #2)(*tx *ty)
+ \bsegment
+ \move (*tx *ty)
+ \setsegscale @{\cradius@}
+ \rmove (@{-\cosa@} -\sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \avec (*ex *ey)
+ \move (#1 #2)@}
+\def\avecfrc (#1 #2)@{\currentpos \xa\ya
+ \cossin (@{\xa@} \ya)(#1 #2)\cosa\sina
+ \bsegment
+ \setsegscale @{\cradius@}
+ \move (@{\cosa@} \sina)
+ \savecurrpos (*ex *ey)
+ \esegment
+ \move (*ex *ey)
+ \avec (#1 #2)@}
+@end example
+
+Having defined these macros, we are ready to draw the block diagram.
+The first and last sections of the lattice filter are very similar,
+differing mainly in the text labels. With more effort, code could be
+shared between the commands used to draw these blocks.
+@example
+\centertexdraw@{
+\drawdim in
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\pl @{$\scriptscriptstyle +$@} \def\mn @{$\scriptscriptstyle -$@}
+
+\move (0 +0.63) \move (0 -0.60) % compensate for the text size
+\move (0 0)
+
+% Input to the first stage
+\bsegment
+ \Ltext@{$x(n)$@}
+ \lvec (0.3 0) \bdot \lvec (0.3 +0.4) \move (0.3 0) \lvec (0.3 -0.4)
+ \savepos (0.3 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% first lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw@{\pl@} \puts@{\mn@}
+ \avecfrc (2.1 +0.4)
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw@{\pl@} \putn@{\mn@}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext @{$f_0(n)$@}
+ \move (2.0 +0.42) \Ttext @{$f_1(n)$@}
+ \move (0.1 -0.4) \Btext @{$b_0(n)$@}
+ \move (2.0 -0.4) \Btext @{$b_1(n)$@}
+ \textref h:L v:B \htext (1.15 +0.2)@{$K_1$@}
+ \textref h:L v:T \htext (1.15 -0.2)@{$K_1$@}
+ \savepos (2.1 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% center section
+\bsegment
+ \textref h:C v:C \htext (0.3 +0.4)@{$\cdots$@}
+ \htext (0.3 -0.4)@{$\cdots$@}
+ \savepos (0.6 0)(*ex *ey)
+\esegment
+\move (*ex *ey)
+
+% last lattice stage
+\bsegment
+ \move (0 +0.4) \avectoc (1.7 +0.4)
+ \pcir \putwnw@{\pl@} \puts@{\mn@}
+ \avecfrc (2.3 +0.4) \Rtext@{$e(n)$@}
+ \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4)
+ \pcir \putwsw@{\pl@} \putn@{\mn@}
+ \avecfrc (2.1 -0.4)
+ \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4)
+ \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4)
+ \move (0.1 +0.42) \Ttext @{$f_@{P-1@}(n)$@}
+ \move (2.0 +0.42) \Ttext @{$f_P(n)$@}
+ \move (0.1 -0.4) \Btext @{$b_@{P-1@}(n)$@}
+ \move (2.0 -0.4) \Btext @{$b_P(n)$@}
+ \textref h:L v:B \htext (1.15 +0.2)@{$K_P$@}
+ \textref h:L v:T \htext (1.15 -0.2)@{$K_P$@}
+\esegment
+@}
+@end example
+
+The macros used in this example are similar to the block diagram macros
+defined in the file @file{blockdiagram.tex}.
+
+@node Filter response graph, Geometric construction, Block diagram, Examples
+@appendixsec Filter response graph
+@cindex example, graph
+
+This example shows the response of a canonical filter. @TeX{}draw is
+not well suited for general purpose graphing --- it has no coordinate
+translation facility nor does it have separate @var{x} and @var{y}
+scaling. Nonetheless, for certain simple graphs, @TeX{}draw is
+adequate.
+
+@tex
+\bigskip
+\centertexdraw{
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\ds {\displaystyle}
+\def\ticklab (#1 #2)#3{\move(#1 #2)
+ \bsegment
+ \lvec (0 0.05)
+ \textref h:C v:T \htext (0 -0.05){#3}
+ \esegment}
+\def\Rtext #1{\bsegment
+ \textref h:L v:C \htext ( 0.08 0){#1}
+ \esegment}
+
+\move (2.4 -0.32) % move to set the size
+
+\move (0 0)
+% Axes
+\avec (0 1.4)
+\move (0 0) \avec (2.2 0) \Rtext{$\omega$}
+\ticklab (0 0) {0}
+\ticklab (0.8 0) {$\ds {\pi \over 2N} $}
+\ticklab (1.2 0) {$\omega_s$}
+\ticklab (1.6 0) {$\ds {\pi \over N} $}
+
+\linewd 0.025
+\move (0 1)
+\lvec (0.4 1)
+\lvec (0.44 0.998)
+\lvec (0.48 0.988)
+\lvec (0.52 0.973)
+\lvec (0.56 0.951)
+\lvec (0.60 0.923)
+\lvec (0.64 0.891)
+\lvec (0.68 0.852)
+\lvec (0.72 0.809)
+\lvec (0.76 0.760)
+\lvec (0.80 0.707)
+\lvec (0.84 0.649)
+\lvec (0.88 0.587)
+\lvec (0.92 0.522)
+\lvec (0.96 0.454)
+\lvec (1.00 0.382)
+\lvec (1.04 0.309)
+\lvec (1.08 0.233)
+\lvec (1.12 0.156)
+\lvec (1.16 0.078)
+\lvec (1.20 0)
+\lvec (1.9 0)
+}
+\bigskip
+@end tex
+
+In this example, macro @code{\ticklab} places a labelled axis tick at a
+given position. The data is specified in a straightforward manner,
+having been scaled beforehand to give the desired aspect ratio for the
+graph.
+
+@example
+\centertexdraw@{
+\arrowheadtype t:F \arrowheadsize l:0.08 w:0.04
+\def\ds @{\displaystyle@}
+\def\ticklab (#1 #2)#3@{\move(#1 #2)
+ \bsegment
+ \lvec (0 0.05)
+ \textref h:C v:T \htext (0 -0.05)@{#3@}
+ \esegment@}
+\def\Rtext #1@{\bsegment
+ \textref h:L v:C \htext (+0.08 0)@{#1@}
+ \esegment@}
+
+\move (2.4 -0.3) % move to set the size
+
+\move (0 0)
+% Axes
+\avec (0 +1.4)
+\move (0 0) \avec (2.2 0) \Rtext@{$\omega$@}
+\ticklab (0 0) @{0@}
+\ticklab (0.8 0) @{$\ds @{\pi \over 2N@} $@}
+\ticklab (1.2 0) @{$\omega_s$@}
+\ticklab (1.6 0) @{$\ds @{\pi \over N@} $@}
+
+\linewd 0.025
+\move (0 1)
+\lvec (0.4 1)
+\lvec (0.44 0.998)
+\lvec (0.48 0.988)
+\lvec (0.52 0.973)
+\lvec (0.56 0.951)
+ ...
+\lvec (1.08 0.233)
+\lvec (1.12 0.156)
+\lvec (1.16 0.078)
+\lvec (1.20 0)
+\lvec (1.9 0)
+@}
+@end example
+
+@node Geometric construction, , Filter response graph, Examples
+@appendixsec Geometric construction
+@cindex example, circle and ellipse
+
+This example shows a geometric construction which places an ellipse
+tangent to an enclosing circle. The size of the ellipse is determined
+from geometric considerations. Macros are used to modularize the code.
+The example alters the unit scale factor. This allows the drawing to be
+carried out in units normalized to the radius of the circle.
+
+@tex
+\bigskip
+\centertexdraw{
+\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04
+\linewd 0.01
+\setunitscale 1.5 % circle will have radius 1.5 inches
+
+\def\Btext #1{\bsegment
+ \textref h:C v:T \htext (0 -0.04){#1}
+ \esegment}
+\def\Ttext #1{\bsegment
+ \textref h:C v:B \htext (0 0.04){#1}
+ \esegment}
+\def\Ltext #1{\bsegment
+ \textref h:R v:C \htext (-0.04 0){#1}
+ \esegment}
+\def\bdot {\fcir f:0 r:0.0133 }
+\def\vtick {\bsegment
+ \move (0 -0.05) \lvec (0 0.05)
+ \esegment}
+\def\htick {\bsegment
+ \move (-0.05 0) \lvec ( 0.05 0)
+ \esegment}
+\def\Hlen #1#2{\bsegment
+ \vtick \avec ({#1} 0) \vtick \avec (0 0)
+ \relsegscale 0.5
+ \move ({#1} 0) \Ttext {#2}
+ \esegment}
+\def\Vlen #1#2{\bsegment
+ \htick \avec (0 {#1}) \htick \avec (0 0)
+ \relsegscale 0.5
+ \move (0 {#1}) \Ltext {#2}
+ \esegment}
+
+\lcir r:1 % circle
+\move (-1.05 0) \lvec ( 1.05 0) % axes
+\move (0 -1.05) \lvec (0 1.05)
+
+\move (0 0) \lvec (0.707 0.707) \bdot
+\rmove (0.02 0.02) \textref h:L v:B \htext {X}
+\move (0.707 -0.707) \bdot
+\textref h:R v:T \htext(-0.02 -0.02){O}
+
+\move (0.5 0) % center of ellipse
+\bsegment
+ \lellip rx:0.435 ry:0.804
+ \bdot \Btext {$\beta_2$}
+ \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$}
+ \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$}
+\esegment
+}
+\bigskip
+@end tex
+@example
+\centertexdraw@{
+\arrowheadtype t:V \arrowheadsize l:0.08 w:0.04
+\linewd 0.01
+\setunitscale 1.5 % circle will have radius 1.5 inches
+
+\def\Btext #1@{\bsegment
+ \textref h:C v:T \htext (0 -0.04)@{#1@}
+ \esegment@}
+\def\Ttext #1@{\bsegment
+ \textref h:C v:B \htext (0 +0.04)@{#1@}
+ \esegment@}
+\def\Ltext #1@{\bsegment
+ \textref h:R v:C \htext (-0.04 0)@{#1@}
+ \esegment@}
+\def\bdot @{\fcir f:0 r:0.0133 @}
+\def\vtick @{\bsegment
+ \move (0 -0.05) \lvec (0 +0.05)
+ \esegment@}
+\def\htick @{\bsegment
+ \move (-0.05 0) \lvec (+0.05 0)
+ \esegment@}
+\def\Hlen #1#2@{\bsegment
+ \vtick \avec (@{#1@} 0) \vtick \avec (0 0)
+ \relsegscale 0.5
+ \move (@{#1@} 0) \Ttext @{#2@}
+ \esegment@}
+\def\Vlen #1#2@{\bsegment
+ \htick \avec (0 @{#1@}) \htick \avec (0 0)
+ \relsegscale 0.5
+ \move (0 @{#1@}) \Ltext @{#2@}
+ \esegment@}
+
+\lcir r:1 % circle
+\move (-1.05 0) \lvec ( 1.05 0) % axes
+\move (0 -1.05) \lvec (0 1.05)
+
+\move (0 0) \lvec (0.707 0.707) \bdot
+\rmove (0.02 0.02) \textref h:L v:B \htext @{X@}
+\move (0.707 -0.707) \bdot
+\textref h:R v:T \htext(-0.02 -0.02)@{O@}
+
+\move (0.5 0) % center of ellipse
+\bsegment
+ \lellip rx:0.435 ry:0.804
+ \bdot \Btext @{$\beta_2$@}
+ \move (0 0.15) \Hlen @{0.435@}@{$|\beta_1@{+@}\beta_3|$@}
+ \move (-0.7 0) \Vlen @{0.804@}@{$|\beta_1@{-@}\beta_3|$@}
+\esegment
+@}
+@end example
+
+
+@node Command Listing, Command Index, Examples, Top
+@appendix Alphabetic listing of commands
+@cindex listing of commands
+
+@table @code
+
+@item \arrowheadsize l:@var{length} w:@var{width}
+Set the arrowhead size to be @var{length} units long and @var{width}
+units wide. The width is measured across the ``base'' of the arrowhead.
+The initial arrowhead size has a @var{length} of 0.16 inches and a
+@var{width} of 0.08 inches.
+
+@item \arrowheadtype t:@var{type}
+Set the arrowhead type to @var{type}, where @var{type} is one of
+@code{F}, @code{T}, @code{W}, @code{V}, or @code{H}. There are two
+kinds of arrowheads. The first kind is a triangle. There are 3
+variants: type @code{T} is an empty triangle, type @code{F} is a filled
+triangle (using the current gray level for lines), type @code{W} is a
+triangle filled with white. The second kind of arrowhead is an open
+ended Vee. There are 2 variants: type @code{V} has the stem continue to
+the tip, type @code{H} has the stem stop at the base of the arrowhead.
+The initial arrowhead type is @code{T}.
+
+@item \avec (@var{x} @var{y})
+Draw a line with an arrowhead from the current position to
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The arrowhead is aligned with the line, with the tip at
+@code{(@var{x} @var{y})}.
+
+@item \begin@{texdraw@}
+Start a @TeX{}draw drawing. The drawing is terminated with an
+@code{\end@{texdraw@}} command. This command is for use with La@TeX{}.
+
+@item \bsegment
+Start a drawing segment. The coordinate system is shifted such that the
+current position corresponds to the coordinate @code{(0 0)}. Changes to
+scaling, position and line parameters stay local to the drawing segment.
+
+@item \btexdraw
+Start a @TeX{}draw drawing. The drawing is terminated with an
+@code{\etexdraw} command.
+
+@item \centertexdraw @{ ... @}
+Center a @TeX{}draw box. The argument contains @TeX{}draw commands.
+The resulting box has the horizontal size @code{\hsize} and height equal
+to the height of the drawing.
+
+@item \clvec (@var{x1} @var{y1})(@var{x2} @var{y2})(@var{x3} @var{y3})
+Draw a Bezier curve from the current position to the coordinate
+@code{(@var{x3} @var{y3})} which becomes the new current position. The
+coordinates @code{(@var{x1} @var{y1})} and @code{(@var{x2} @var{y2})}
+serve as control points for the curve. Only the last coordinate given
+is used to update the size of the drawing.
+
+@item \drawbb
+Draw a ruled box around the effective size of a drawing produced by
+@TeX{}draw commands.
+
+@item \drawdim @var{dim}
+Set the units to @var{dim}. The argument @var{dim} can be any valid
+@TeX{} dimension unit. The units are used to interpret coordinate
+values. Examples of valid units: @code{cm}, @code{mm}, @code{in},
+@code{pt}, and @code{bp}.
+
+@item \end@{texdraw@}
+End a @TeX{}draw drawing started with a @code{\begin@{texdraw@}}
+command. The resulting @TeX{}draw drawing is placed in a box with
+height equal to the height of the drawing and width equal to the width
+of the drawing. The depth of the box is zero. This command is for use
+with La@TeX{}.
+
+@item \esegment
+End a drawing segment. The current position in effect before the
+corresponding @code{\bsegment} command is restored. The scaling and
+line parameter values revert to those in effect before the corresponding
+@code{\bsegment} was invoked.
+
+@item \etexdraw
+End a @TeX{}draw drawing started with a @code{\btexdraw} command. The
+resulting @TeX{}draw drawing is placed in a box with height equal to the
+height of the drawing and width equal to the width of the drawing. The
+depth of the box is zero.
+
+@item \everytexdraw @{ ... @}
+Specify @TeX{}draw commands to be executed at the beginning of every
+@TeX{}draw drawing.
+
+@item \fcir f:@var{level} r:@var{radius}
+Draw a filled circle with center at the current position. The radius is
+specified by @var{radius}. The circle is painted with the gray level
+specified by @var{level}. A gray level of 1 corresponds to white, with
+decreasing values getting darker. The level 0 is full black. This
+command does not draw a line along the circumference. The drawing size
+is increased if necessary to contain the circle.
+
+@item \fellip f:@var{level} rx:@var{x-radius} ry:@var{y-radius}
+Draw a filled ellipse with center at the current position. The radius
+in the @var{x} direction is specified by @var{x-radius}. The radius in
+the @var{y} direction is specified by @var{y-radius}. The ellipse is
+painted with the gray level specified by @var{level}. A gray level of 1
+corresponds to white, with decreasing values getting darker. The level
+0 is full black. This command does not draw a line along the boundary
+of the ellipse. The drawing size is increased if necessary to contain
+the ellipse.
+
+@item \htext (@var{x} @var{y})@{@var{text}@}
+@itemx \htext @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text}
+horizontally with the text reference point at the coordinate
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The second form of this command places the @TeX{} text
+@var{text} horizontally with the text reference point at the current
+position. The text reference point is set with the @code{\textref}
+command.
+
+@item \ifill f:@var{level}
+Close the current path and paint the interior of the region with gray
+level @var{level}. The line around the path is not drawn. Gray levels
+are real values from 0 (black) through intermediate values (grays) to 1
+(white).
+
+@item \larc r:@var{radius} sd:@var{start-angle} ed:@var{end-angle}
+Draw a counterclockwise arc. The center of the arc is at the current
+position. The radius is specified by @var{radius}. The start and end
+angles (in degrees) are specified by @var{start-angle} and
+@var{end-angle}. This command does not affect the limits (size) of the
+drawing.
+
+@item \lcir r:@var{radius}
+Draw a circle with center at the current position. The radius is
+specified by @var{radius}. This command draws a line along the
+circumference of the circle. The drawing size is increased if necessary
+to contain the circle.
+
+@item \lellip rx:@var{x-radius} ry:@var{y-radius}
+Draw an ellipse with center at the current position. The radius in the
+@var{x} direction is specified by @var{x-radius}. The radius in the
+@var{y} direction is specified by @var{y-radius}. The drawing size is
+increased if necessary to contain the ellipse.
+
+@item \lfill f:@var{level}
+
+Close the current path, draw the line around the path using the current
+grey level for lines and paint the interior of the region with specified
+gray level @var{level}. Gray levels are real values from 0 (black)
+through intermediate values (grays) to 1 (white).
+
+@item \linewd @var{width}
+Set the line width to @var{width} units. Initially @var{width} is 0.01
+inches (corresponding to 3 pixels at 300 pixels to the inch).
+
+@item \lpatt (@var{pattern})
+Set lines to have the pattern @code{(@var{pattern})}. A pattern is a
+sequence of on/off lengths separated by blanks and enclosed in parentheses.
+The lengths alternately specify the length of a dash and the length of a
+gap between dashes. Each length is interpreted using the current
+scaling and drawing units. The pattern is used cyclically. The empty
+pattern signifies a solid line. The initial line pattern is a solid
+line, corresponding to the empty pattern @code{\lpatt ()}.
+
+@item \lvec (@var{x} @var{y})
+Draw a line from the current position to coordinate @code{(@var{x}
+@var{y})}. The new current position is @code{(@var{x} @var{y})}.
+
+@item \move (@var{x} @var{y})
+Move to coordinate @code{(@var{x} @var{y})}. The new current position
+is @code{(@var{x} @var{y})}.
+
+@item \ravec (@var{dx} @var{dy})
+Draw a line with an arrowhead from the current position, @var{dx} units
+in the @var{x} direction and @var{y} units in the @var{y} direction.
+The final position becomes the new current position. The arrowhead is
+aligned with the line, with the tip at the new current position.
+
+@item \relsegscale @var{value}
+Adjust the segment scale factor by multiplying by @var{value}. This has
+the effect of multiplying the current overall scale factor by the same
+factor. The overall scaling factor is the product of the unit scale
+factor and the segment scale factor.
+
+@item \relunitscale @var{value}
+Adjust the unit scale factor by multiplying by @var{value}. This has
+the effect of multiplying the overall scale factor by the same factor.
+The overall scaling factor is the product of the unit scale factor and
+the segment scale factor.
+
+@item \rlvec (@var{dx} @var{dy})
+Draw a line from the current position, @var{dx} units in the @var{x}
+direction and @var{dy} units in the @var{y} direction. The final
+position becomes the new current position.
+
+@item \rmove (@var{dx} @var{dy})
+Move from the current position, @var{dx} units in the @var{x} direction
+and @var{dy} units in the @var{y} direction. The final position becomes
+the new current position.
+
+@item \rtext td:@var{angle} (x y)@{@var{text}@}
+@itemx \rtext td:@var{angle} @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text} at an
+angle with the text reference point at the coordinate @code{(@var{x}
+@var{y})}. The new current position is @code{(@var{x} @var{y})}. The
+second form of this command places the @TeX{} text @var{text} at an
+angle with the text reference point at the current position. In both
+cases, the @TeX{} text is placed in a box and the box is rotated
+counterclockwise by @var{angle} degrees about the text reference point.
+The text reference point is set with the @code{\textref} command.
+
+@item \savecurrpos (*@var{px} *@var{py})
+Save the current position as the absolute position referenced by
+@code{(*@var{px} *@var{py})}.
+
+@item \savepos (@var{x} @var{y})(*@var{px} *@var{py})
+Save the coordinate position @code{(@var{x} @var{y})} as the absolute
+position referenced by @code{(*@var{px} *@var{py})}. The coordinate
+@code{(@var{x} @var{y})} is interpreted in the normal fashion as a
+coordinate relative to the current segment, using the current scaling
+factors and drawing unit.
+
+@item \setgray @var{level}
+Set the gray level of lines. Gray levels are real values from 0 (black)
+through intermediate values (gray) to 1 (white). The initial gray level
+is 0 corresponding to black.
+
+@item \setsegscale @var{scale}
+Set the segment scale factor. The argument @var{scale} is a real number
+which is used to scale coordinate values. The overall scale factor is
+the product of the unit scale factor and the segment scale factor.
+
+@item \setunitscale @var{scale}
+Set the unit scaling to @var{scale}. The argument @var{scale} is a real
+number which is used to scale coordinate values. The overall scaling
+factor is the product of the unit scale factor and the segment scale
+factor.
+
+@item \textref h:@var{h-ref} v:@var{v-ref}
+Set the text reference point for subsequent text commands. The
+horizontal reference point @var{h-ref} is one of @code{L}, @code{C} or
+@code{R} (left, center or right). The vertical reference point
+@var{v-ref} is one of @code{T}, @code{C} or @code{B} (top, center or
+bottom). For rotated text, the reference point is determined before
+rotation. The initial text reference point corresponds to
+@code{\textref h:L v:B}.
+
+@item \vtext (x y)@{@var{text}@}
+@itemx \vtext @{@var{text}@}
+The first form of this command places the @TeX{} text @var{text}
+vertically with the text reference point at the coordinate
+@code{(@var{x} @var{y})}. The new current position is @code{(@var{x}
+@var{y})}. The second form of this command places the @TeX{} text
+@var{text} vertically with the text reference point at the current
+position. In both cases, the @TeX{} text is placed in a box and the box
+is rotated counterclockwise by 90 degrees about the text reference
+point. The text reference point is set with the @code{\textref}
+command.
+
+@end table
+
+@node Command Index, Concept Index, Command Listing, Top
+@unnumbered Command Index
+@printindex fn
+
+@node Concept Index, , Command Index, Top
+@unnumbered Concept Index
+@printindex cp
+
+@bye
diff --git a/graphics/texdraw/test/ttexdraw.tex b/graphics/texdraw/test/ttexdraw.tex
new file mode 100644
index 0000000000..0d48972952
--- /dev/null
+++ b/graphics/texdraw/test/ttexdraw.tex
@@ -0,0 +1,204 @@
+\documentclass{article}
+\usepackage{texdraw}
+\usepacakge{amsmath}
+
+\begin{document}
+
+% Test TeXdraw macros - unusual cases
+
+% $Id: ttexdraw.tex 1.8 1999/11/15 TeXdraw-v2r3 $
+
+% check for extraneous characters in texdraw.tex
+\setbox0=\vbox{\input texdraw }
+\message {texdraw.tex box size:
+ height: \the\ht0, width: \the\wd0, depth: \the\dp0}
+
+\bigskip
+\bigskip
+
+% check for a zero sized box for a zero sized TeXdraw
+\setbox0=\hbox{\begin{texdraw}
+ \lvec (0 0)
+ \end{texdraw}}
+\message {TeXdraw box size:
+ height: \the\ht0, width: \the\wd0, depth: \the\dp0}
+
+\bigskip
+\bigskip
+
+\begin{texdraw}
+% text only, should be no PostScript file
+ \rtext td:-45 (2 2){Test Text}
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+\let\et=\etexdraw
+\def\etexdraw{\drawbb\et}
+
+\begin{texdraw}
+% blank lines OK?
+% box should be 2in by 2in
+% arc should go from inside to outside the box
+
+% \larc if no initial point defined
+\larc r:1 sd:45 ed:135
+
+% \ifill if path is empty
+\move (2 2)
+\ifill f:0.5
+
+\lvec (1 1)
+
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+% Testing restoration of position after segments
+\begin{texdraw}
+ \lvec (1 1)
+ \bsegment
+ \linewd 0.03
+ \lvec (1 0)
+ \esegment
+ \bsegment
+ \lvec (0 -1)
+ \esegment
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+% Check t:W arrows, should wipe out the line under the rightmost arrow head
+\begin{texdraw}
+ \arrowheadtype t:W
+ \arrowheadsize l:0.9 w:0.6
+ \linewd 0.05
+ \bsegment
+ \move (0 1)
+ \lvec (3 3)
+ \bsegment
+ \move (-3 -3)
+ \avec (0 0)
+ \esegment
+ \lvec (3 2)
+ \esegment
+ \move (3 0)
+ \bsegment
+ \move (0 1)
+ \lvec (3 3)
+ \rmove (0 0)
+ \bsegment
+ \move (-3 -3)
+ \avec (0 0)
+ \esegment
+ \lvec (3 2)
+ \esegment
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+% Check that paths continue under filled circles
+\begin{texdraw}
+ \bsegment
+ \lvec (1 1)
+ \bsegment
+ \move (-0.25 -0.25)
+ \fcir f:0.8 r:0.5
+ \esegment
+ \lvec (1 0)
+ \esegment
+ \move (3 0)
+ \bsegment
+ \lvec (1 1)
+ \rmove (0 0)
+ \bsegment
+ \move (-0.25 -0.25)
+ \fcir f:0.8 r:0.5
+ \esegment
+ \lvec (1 0)
+ \esegment
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+% Check that positions are restored correctly when the move pending and path
+% in progress flags are set
+
+\begin{texdraw}
+ \linewd 0.045
+ \lvec (1 0)
+ \bsegment
+ \move (0 -1)
+ \bsegment
+ \esegment
+ \lvec (0 0)
+ \esegment
+ \lvec (2 0)
+\end{texdraw}
+
+\bigskip
+\bigskip
+
+% Check \everytexdraw and \fellip
+\everytexdraw={\fellip f:0.8 rx:2.5 ry:1.0 }
+\begin{texdraw}
+ \lvec (0 0.75)
+\end{texdraw}
+\everytexdraw={}
+
+\bigskip
+\bigskip
+
+\def\ptext#1{\writeps{ gsave /Times-Roman findfont 41.6667
+scalefont setfont (#1) dup stringwidth exch neg 2 div exch neg 2 div rmoveto
+show grestore }}
+
+\begin{texdraw}
+ \move( 0 0)
+ \move(-1 -1) \rlvec( 2 0) \rlvec( 0 2) \rlvec( -2 0) \rlvec( 0 -2)
+ \lfill f:.8
+ \move( 0 .2)
+ \textref h:C v:C
+ \htext{This is a very long sentence to illustrate my point}
+ \move( 0 -.2)
+ \ptext{This is a very long sentence to illustrate my point}
+ \move( 0 0)
+ \move(-.5 -.5) \rlvec( 1 0) \rlvec( 0 1) \rlvec( -1 0) \rlvec( 0 -1)
+ \lfill f:.9
+\etexdraw
+
+\bigskip
+\bigskip
+
+% This example, with texdraw invoked from \text from within an equation,
+% ends up invoking texdraw 8 times (\gather together with \mathchoice).
+% A hook was built in to texdraw to detect half of these cases. Now only
+% 4 identical copies of the PS file are generated.
+% Note: To avoid generating the extra PS files, use a \savebox to create the
+% drawing and then place the box where desired.
+\begin{equation}
+\text{
+ \begin{texdraw}
+ \move(0 0)\lcir r:0.1
+ \end{texdraw}
+ }
+\end{equation}
+
+\bigskip
+\bigskip
+
+% extraneous data: generate an error message
+\message{ <<<<< Expect an error message: type return >>>>>}
+\btexdraw
+ \move (2 2)
+ \move (3 3)
+% Put in a spurious character
+a
+\end{texdraw}
+
+\end{document}
diff --git a/graphics/texdraw/texdraw.sty b/graphics/texdraw/texdraw.sty
new file mode 100644
index 0000000000..c91c6b5af0
--- /dev/null
+++ b/graphics/texdraw/texdraw.sty
@@ -0,0 +1,45 @@
+% TeXdraw macros
+
+% $Id: texdraw.sty 2.6 2019/04/18 TeXdraw-v2r3 $
+
+% Copyright (C) 1991-2019 Peter Kabal
+
+% This work is licensed under the Creative Commons Attribution (CC-BY)
+% License, any version. To view the licenses, visit
+% creativecommons.org/licenses/by or send a letter to
+% Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+
+% peter dot kabal at mcgill dot ca
+% http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/
+
+% ===============================================================
+
+\NeedsTeXFormat{LaTeX2e}
+
+% Pass all options to the graphics package
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
+\ProcessOptions
+
+% Load the graphics package if not already loaded
+\RequirePackage{graphics}
+
+% Define the error routine
+\def\t@xderror #1{%
+ \GenericError{%
+ \space\space\space\@spaces\@spaces\@spaces
+ }{%
+ TeXdraw Error: #1%
+ }{%
+ See the TeXdraw manual for an explanation.%
+ }{\@ehc}%
+}
+
+% Load the TeXdraw macros
+\input texdraw
+\ProvidesPackage{texdraw}[\TeXdrawId]
+\newenvironment{texdraw}{\leavevmode\btexdraw}{\etexdraw}
+
diff --git a/graphics/texdraw/texdraw.tex b/graphics/texdraw/texdraw.tex
new file mode 100644
index 0000000000..a326538bd6
--- /dev/null
+++ b/graphics/texdraw/texdraw.tex
@@ -0,0 +1,1168 @@
+% TeXdraw macros
+
+% $Id: texdraw.tex 2.7 2019/04/18 TeXdraw-v2r3 $
+
+% Copyright (C) 1991-2019 Peter Kabal
+
+% This work is licensed under the Creative Commons Attribution (CC-BY)
+% License, any version. To view the licenses, visit
+% creativecommons.org/licenses/by or send a letter to
+% Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+
+% peter dot kabal at mcgill dot ca
+% http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/
+
+\def\setRevDate $#1 #2 #3${#2}
+\def\TeXdrawId{\setRevDate $Date: 2019/04/18 14:10:45 $ TeXdraw V2R3}
+
+% ===============================================================
+
+% The TeXdraw macros allow PostScript line drawings and such to be
+% generated from within TeX and LaTeX.
+% (1) TeXdraw allows TeX text (either horizontal or rotated) to be
+% superimposed on the figure.
+% (2) TeXdraw implements a \bsegment-\esegment environment which allows
+% parameter changes and coordinate changes to be kept local. In
+% effect these segments are self-contained relocatable procedures.
+% (3) TeX's macro facility can be used to modularize drawing units and
+% produce more complex entities from simple elements.
+% (4) The drawing can be positioned on the page like any other TeX box.
+
+% TeXdraw coordinate units have positive X to the right and positive Y up.
+% The drawing units can be selected (initially inches). In addition, two
+% scaling parameters - unit scale and segment scale - are available. Their
+% effects are multiplicative.
+
+% Segments allow for relocatable drawing units. Inside each segment the
+% coordinates are relative to the initial point, which becomes (0 0).
+% Scaling is local to segments. Each segment inherits the unit scale
+% scaling from outside the segment, but any changes apply to that segment
+% and inferior segments. The segment scale factor is reset to unity on
+% entry to each segment.
+
+% The coordinates given as command arguments are used to determine
+% the size of the drawing. The width of the plot line, sizes of
+% arrowheads, arcs or text do not affect the size of the drawing.
+
+% TeXdraw writes PostScript commands to an intermediate file. After the
+% drawing is finished, the PostScript file is included in the document as a
+% PostSript include file.
+
+% This file is divided into 4 parts,
+% - TeXdraw user interface
+% - Utility definitions
+% - Low level definitions
+% - PostScript file macros
+
+
+\chardef\catamp=\the\catcode`\@
+\catcode`\@=11
+
+% ===============================================================
+% ===== TeXdraw user interface ==================================
+\long % \centertexdraw needs to be very \long
+\def\centertexdraw #1{\hbox to \hsize{\hss
+ \btexdraw #1\etexdraw
+ \hss}}
+
+% ====== Begin TeXdraw
+% Inside the texdraw box:
+% The \vbox should be of zero size; none of the TeXdraw drawing commands
+% generate text, the TeXdraw text commands generate zero size boxes.
+
+\def\btexdraw {\x@pix=0 \y@pix=0
+ \x@segoffpix=\x@pix \y@segoffpix=\y@pix
+ \let\p@sfile=\p@sundef
+% Set the default values (define outside of the group so that \etexdraw can
+% see the scaling parameters)
+ \t@exdrawdef
+ \setbox\t@xdbox=\vbox\bgroup\offinterlineskip
+ \global\d@bs=0 % pending segments
+ \global\p@osinitfalse
+ \s@avemove \x@pix \y@pix % capture the initial position
+ \m@pendingfalse
+ \global\p@osinitfalse % capture the next move
+ \p@athfalse
+ \the\everytexdraw}
+
+% ====== End TeXdraw
+% Write out a trailer, close the file, bring in the PostScript code as
+% a \special include file. The \special is offset on the page to be at
+% (llx,ury) in PostScript coordinates.
+
+% The drawing is placed in a \vbox of appropriate size (zero depth). The
+% temporary PostScript file is superimposed with offsets such that the
+% lower lefthand corner of the drawing is aligned with the lower lefthand of
+% the box.
+\def\etexdraw {\p@sclose % close the PostScript file
+ \egroup % ends the \vbox \bgroup
+ \vbox {\offinterlineskip
+ \pixtobp \xminpix \l@lxbp \pixtobp \yminpix \l@lybp
+ \pixtobp \xmaxpix \u@rxbp \pixtobp \ymaxpix \u@rybp
+ \ifx\p@sfile\p@sundef
+ \hbox{\t@xdempty
+ [{\l@lxbp},{\l@lybp}][{\u@rxbp},{\u@rybp}]}%
+ \else
+ \hbox{\t@xdinclude
+ [{\l@lxbp},{\l@lybp}][{\u@rxbp},{\u@rybp}]{\p@sfile}}%
+ \fi
+ \t@xdtext}%
+}
+% Superimpose TeX text. The position is temporarily offset to a position
+% corresponding to (0 0) to place the TeX text.
+\def\t@xdtext {
+ \ifdim \wd\t@xdbox>0pt
+ \t@xderror {TeXdraw box non-zero size, possible extraneous text}%
+ \fi
+ \pixtodim \xminpix \t@xpos \pixtodim \yminpix \t@ypos
+ \kern \t@ypos
+ \hbox {\kern -\t@xpos
+ \box\t@xdbox % TeX text
+ \kern \t@xpos}%
+ \kern -\t@ypos\relax
+}
+
+% ===== Drawing scaling
+% The units in any segment may be scaled arbitrarily. A unit scale is
+% local to a segment but affects enclosed segments unless specifically
+% overridden in that segment. In addition there is a segment scale. The
+% overall scale is the product of the two scaling factors.
+%
+% Scaling is handled entirely on the TeX side, the PostScript side gets
+% absolute pixel coordinates.
+
+% Drawing units, e.g. "in" or "cm"
+\def\drawdim #1 {\def\d@dim{#1\relax}}
+
+% \u@nitsc - unit scale
+% \s@egsc - segment scale
+% \d@sc - drawing scale, product of the unit scale and segment scale
+
+% Note that successive application of relative scale factors can lead
+% to poor accuracy of the final scale factor. Each scale factor is
+% represented to about 5 decimal digits after the decimal point.
+\def\setunitscale #1 {\edef\u@nitsc{#1}%
+ \realmult \u@nitsc \s@egsc \d@sc}
+\def\relunitscale #1 {\realmult {#1}\u@nitsc \u@nitsc
+ \realmult \u@nitsc \s@egsc \d@sc}
+\def\setsegscale #1 {\edef\s@egsc {#1}%
+ \realmult \u@nitsc \s@egsc \d@sc}
+\def\relsegscale #1 {\realmult {#1}\s@egsc \s@egsc
+ \realmult \u@nitsc \s@egsc \d@sc}
+
+% ===== Drawing segments
+% The position is restored after a segment.
+% Segments use TeX grouping on the TeX side and gsave/grestore on the
+% PostScript side to keep changes local. On the TeX side segments have
+% (0 0) as the initial point, while the PostScript side sees no scale
+% changes or translations.
+\def\bsegment {\ifp@ath
+ \f@lushbs
+ \f@lushmove
+ \fi
+ \begingroup
+ \x@segoffpix=\x@pix
+ \y@segoffpix=\y@pix
+ \setsegscale 1
+ \global\advance \d@bs by 1\relax}
+\def\esegment {\endgroup
+ \ifnum \d@bs=0
+ \writetx {es}%
+ \else
+ \global\advance \d@bs by -1
+ \fi}
+
+% Save a position
+% Save each coordinate as the macro "*name". The macro is defined to
+% be the pixel coordinate value.
+\def\savecurrpos (#1 #2){\getsympos (#1 #2)\a@rgx\a@rgy
+ \s@etcsn \a@rgx {\the\x@pix}%
+ \s@etcsn \a@rgy {\the\y@pix}}
+\def\savepos (#1 #2)(#3 #4){\getpos (#1 #2)\a@rgx\a@rgy
+ \coordtopix \a@rgx \t@pixa
+ \advance \t@pixa by \x@segoffpix
+ \coordtopix \a@rgy \t@pixb
+ \advance \t@pixb by \y@segoffpix
+ \getsympos (#3 #4)\a@rgx\a@rgy
+ \s@etcsn \a@rgx {\the\t@pixa}%
+ \s@etcsn \a@rgy {\the\t@pixb}}
+
+% ===== Line parameters
+% The following parameters apply to subsequent lines. Each of these
+% commands invokes a stroke to draw the previous line segments,
+% establishes the current point and then changes the line parameter.
+% The parameters are kept local by the PostScript gsave/grestore
+% mechanism. We use \writetx here, instead of \writeps, since we
+% do not want to flush any moves.
+\def\linewd #1 {\coordtopix {#1}\t@pixa
+ \f@lushbs
+ \writetx {\the\t@pixa\space sl}}
+\def\setgray #1 {\f@lushbs
+ \writetx {#1 sg}}
+\def\lpatt (#1){\listtopix (#1)\p@ixlist
+ \f@lushbs
+ \writetx {[\p@ixlist] sd}}
+
+% ===== Line drawing
+% PostScript uses the concept of a path consisting of line segments.
+% In this interface to PostScript, paths are continuous across the
+% beginning of segments. Paths terminate at the end of a segment with
+% an implicit move. In addition, paths are both terminated and started
+% with a move. There is a current point at all times, starting with
+% initial position (0,0).
+\def\lvec (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space lv}}
+\def\rlvec (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \r@elpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space lv}}
+\def\move (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \s@avemove \x@pix \y@pix}
+\def\rmove (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \r@elpospix \a@rgx \a@rgy
+ \s@avemove \x@pix \y@pix}
+
+% ===== Circles, ellipses and arcs
+% Note that arcs do not update the size of the drawing.
+% \lcir, stroked circle
+% r:#1 - radius
+% \fcir, filled circle
+% f:#1 - fill gray level, 0 is black, 1 is white
+% r:#2 - radius
+% \ellip, stroked ellipse
+% rx:#1 - x radius
+% ry:#2 - y radius
+% \fellip, filled ellipse
+% f:#1 - fill gray level, 0 is black, 1 is white
+% rx:#1 - x radius
+% ry:#2 - y radius
+% \larc, stroked counterclockwise arc, with the present position being
+% the center of the arc. Only the arc is drawn (not the line
+% joining the center to the beginning of the arc)
+% r:#1 - radius
+% sd:#2 - start angle (degrees)
+% ed:#3 - end angle (degrees)
+\def\lcir r:#1 {\coordtopix {#1}\t@pixa
+ \writeps {\the\t@pixa\space cr}%
+ \r@elupd \t@pixa \t@pixa
+ \r@elupd {-\t@pixa}{-\t@pixa}}
+\def\fcir f:#1 r:#2 {\coordtopix {#2}\t@pixa
+ \writeps {\the\t@pixa\space #1 fc}%
+ \r@elupd \t@pixa \t@pixa
+ \r@elupd {-\t@pixa}{-\t@pixa}}
+\def\lellip rx:#1 ry:#2 {\coordtopix {#1}\t@pixa
+ \coordtopix {#2}\t@pixb
+ \writeps {\the\t@pixa\space \the\t@pixb\space el}%
+ \r@elupd \t@pixa \t@pixb
+ \r@elupd {-\t@pixa}{-\t@pixb}}
+\def\fellip f:#1 rx:#2 ry:#3 {\coordtopix {#2}\t@pixa
+ \coordtopix {#3}\t@pixb
+ \writeps {\the\t@pixa\space \the\t@pixb\space #1 fe}%
+ \r@elupd \t@pixa \t@pixb
+ \r@elupd {-\t@pixa}{-\t@pixb}}
+\def\larc r:#1 sd:#2 ed:#3 {\coordtopix {#1}\t@pixa
+ \writeps {\the\t@pixa\space #2 #3 ar}}
+
+% ===== Fill commands
+% The form here completes a path with a closepath, applies the fill,
+% starts a newpath and moves to the current point. The gray level has
+% 0 as black and 1 as white. The current path is terminated.
+
+\def\ifill f:#1 {\writeps {#1 fl}} % Fill only
+\def\lfill f:#1 {\writeps {#1 fp}} % Stroke and fill
+
+% ===== Text
+% TeX text superimposed on the drawing
+% \htext (x y){text} or \htext {text}
+% \vtext (x y){text} or \vtext {text}
+% \rtext td:angle (x y){text} or \rtext td:angle {text}
+% \textref h:#1 v:#2
+
+% The TeX text (or whatever) is placed in an \hbox. The box is rotated
+% for vertical text. The text is placed on the drawing at the specified
+% location (coordinates specified) or the current location (coordinates
+% not specified). The text reference point is placed at that location.
+% For the purposes of determining the drawing size, the text box is of
+% zero size.
+
+% Horizontal text
+% Check if the argument starts with a left parenthesis
+\def\htext #1{\def\testit {#1}%
+ \ifx \testit\l@paren
+ \let\t@cmd=\h@move
+ \else
+ \let\t@cmd=\h@text
+ \fi
+ \t@cmd {#1}}
+
+% Rotated text
+\def\rtext td:#1 #2{\def\testit {#2}%
+ \ifx \testit\l@paren
+ \let\t@cmd=\r@move
+ \else
+ \let\t@cmd=\r@text
+ \fi
+ \t@cmd td:#1 {#2}}
+
+% Vertical text
+\def\vtext {\rtext td:90 }
+
+% Text reference point
+% h:#1 text horizontal reference point - L, C or R
+% v:#2 text vertical reference point - T, C or B
+\def\textref h:#1 v:#2 {\ifx #1R%
+ \edef\l@stuff {\hss}\edef\r@stuff {}%
+ \else
+ \ifx #1C%
+ \edef\l@stuff {\hss}\edef\r@stuff {\hss}%
+ \else % default L
+ \edef\l@stuff {}\edef\r@stuff {\hss}%
+ \fi
+ \fi
+ \ifx #2T%
+ \edef\t@stuff {}\edef\b@stuff {\vss}%
+ \else
+ \ifx #2C%
+ \edef\t@stuff {\vss}\edef\b@stuff {\vss}%
+ \else % default B
+ \edef\t@stuff {\vss}\edef\b@stuff {}%
+ \fi
+ \fi}
+
+% ===== Arrow vectors
+\def\avec (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space (\a@type) %
+ \the\a@lenpix\space \the\a@widpix\space av}}
+
+\def\ravec (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \r@elpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space (\a@type) %
+ \the\a@lenpix\space \the\a@widpix\space av}}
+
+% Arrowhead size
+% l:#1 - length of the arrowhead
+% w:#2 - width of the base of the arrowhead
+\def\arrowheadsize l:#1 w:#2 {\coordtopix{#1}\a@lenpix
+ \coordtopix{#2}\a@widpix}
+% Arrowhead type
+% t:#1 - arrowhead type, F filled triangle (using current gray level)
+% T empty closed triangle
+% W white filled triangle
+% V Vee shape, at the end of the vector
+% H (or other character) Vee shape, vector stops
+% short of the Vee
+\def\arrowheadtype t:#1 {\edef\a@type{#1}}
+
+% ===== Bezier curve
+% The initial point is assumed to be the current point. Only the last
+% coordinate affects the size of the plot.
+\def\clvec (#1 #2)(#3 #4)(#5 #6)%
+ {\getpos (#1 #2)\a@rgx\a@rgy
+ \coordtopix \a@rgx\t@pixa
+ \advance \t@pixa by \x@segoffpix
+ \coordtopix \a@rgy\t@pixb
+ \advance \t@pixb by \y@segoffpix
+ \getpos (#3 #4)\a@rgx\a@rgy
+ \coordtopix \a@rgx\t@pixc
+ \advance \t@pixc by \x@segoffpix
+ \coordtopix \a@rgy\t@pixd
+ \advance \t@pixd by \y@segoffpix
+ \getpos (#5 #6)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \writeps {\the\t@pixa\space \the\t@pixb\space
+ \the\t@pixc\space \the\t@pixd\space
+ \the\x@pix\space \the\y@pix\space cv}}
+
+% ===== Draw the bounding box
+\def\drawbb {\bsegment
+ \drawdim bp
+ \linewd 0.24 % line width 1/300 inch = 0.24 bp
+ \setunitscale {\p@sfactor}
+ \writeps {\the\xminpix\space \the\yminpix\space mv}%
+ \writeps {\the\xminpix\space \the\ymaxpix\space lv}%
+ \writeps {\the\xmaxpix\space \the\ymaxpix\space lv}%
+ \writeps {\the\xmaxpix\space \the\yminpix\space lv}%
+ \writeps {\the\xminpix\space \the\yminpix\space lv}%
+ \esegment}
+
+
+% ===============================================================
+% ===== Utility macros used by TeXdraw ==========================
+
+% ===== Decode coordinates
+% Get coordinates
+% This macro is used to get two arguments separated by a blank, with
+% possible leading and trailing blanks. Symbolic coordinates are
+% converted to user coordinates.
+% (#1 #2) - coordinates
+% #3 - macro name to receive the x-coordinate value
+% #4 - macro name to receive the y-coordinate value
+\def\getpos (#1 #2)#3#4{\g@etargxy #1 #2 {} \\#3#4%
+ \c@heckast #3%
+ \ifa@st
+ \g@etsympix #3\t@pixa
+ \advance \t@pixa by -\x@segoffpix
+ \pixtocoord \t@pixa #3%
+ \fi
+ \c@heckast #4%
+ \ifa@st
+ \g@etsympix #4\t@pixa
+ \advance \t@pixa by -\y@segoffpix
+ \pixtocoord \t@pixa #4%
+ \fi}
+
+% Get symbolic coordinate names
+% (#1 #2) - symbolic coordinates
+% #3 - macro name to receive the symbolic x coordinate name
+% #4 - macro name to receive the symbolic y coordinate name
+\def\getsympos (#1 #2)#3#4{\g@etargxy #1 #2 {} \\#3#4%
+ \c@heckast #3%
+ \ifa@st \else
+ \t@xderror {TeXdraw: invalid symbolic coordinate}%
+ \fi
+ \c@heckast #4%
+ \ifa@st \else
+ \t@xderror {TeXdraw: invalid symbolic coordinate}%
+ \fi}
+
+% ===== Convert a list of values to pixel values
+% (#1) - blank separated list of values in user coordinates
+% #2 - macro name to receive the blank separated list of pixel values
+\def\listtopix (#1)#2{\def #2{}%
+ \edef\l@ist {#1 }% % append a blank to the string
+ \m@oretrue
+ \loop
+ \expandafter\g@etitem \l@ist \\\a@rgx\l@ist
+ \a@pppix \a@rgx #2%
+ \ifx \l@ist\empty
+ \m@orefalse
+ \fi
+ \ifm@ore
+ \repeat}
+
+% ===== Real multiplication
+% This function uses the property that a box dimension may be scaled by
+% a real value. The values are converted to dimensions in units of pt.
+% This choice gives us a reasonable dynamic range. The final step is to
+% clean off the "pt" on the resulting dimension. Note that these are fixed
+% point operations with each operand represented to an accuracy of about 5
+% decimal places.
+
+% Note we must use magnified points not "true" points, since the answer is
+% expressed in magnified points. The result will be calculated in the same
+% manner no matter what the magnification is.
+% #1 and #2 are multiplicands
+% #3 macro name to capture the real result
+\def\realmult #1#2#3{\dimen0=#1pt
+ \dimen2=#2\dimen0
+ \edef #3{\expandafter\c@lean\the\dimen2}}
+
+% ===== Divide integers, real result
+% #1 integer numerator value
+% #2 integer denominator (divisor) value
+% #3 macro name to capture the real result
+\def\intdiv #1#2#3{\t@counta=#1
+ \t@countb=#2
+% Limitations: #1 must be negatable, i.e. it must not be the largest
+% magnitude negative number
+% #2 must be able to be multiplied by 2 without overflow
+% Calculate a*65536/b where the factor 65536 converts from pt to sp.
+% This operation can also be interpretated as an extended precision
+% numerator divided by the denominator. The scheme used is basically a
+% long division, except that it is bootstrapped by an integer divide.
+% The computations are carried out with positive numerator and
+% denominator, with the appropriate restoration of sign at the end.
+% \t@counta == remainder, r, initially set to a
+% \t@countb == denominator, b
+% \t@countc == quotient, q
+% \t@countd == +1, a and b have the same sign
+% -1, a and b have opposite signs
+% \t@counte == temporary register
+ \ifnum \t@countb<0
+ \t@counta=-\t@counta
+ \t@countb=-\t@countb
+ \fi
+ \t@countd=1 % record the sign
+ \ifnum \t@counta<0
+ \t@counta=-\t@counta
+ \t@countd=-1
+ \fi
+% % q=a/b, r=a-q*b
+ \t@countc=\t@counta \divide \t@countc by \t@countb
+ \t@counte=\t@countc \multiply \t@counte by \t@countb
+ \advance \t@counta by -\t@counte
+ \t@counte=-1
+ \loop
+ \advance \t@counte by 1
+ \ifnum \t@counte<16 % loop 16 times
+ \multiply \t@countc by 2 % q=2q
+ \multiply \t@counta by 2 % r=2r
+ \ifnum \t@counta<\t@countb \else % if ( r >= b )
+ \advance \t@countc by 1 % q=q+1
+ \advance \t@counta by -\t@countb % r=r-b
+ \fi
+ \repeat
+ \divide \t@countb by 2 % rounding
+ \ifnum \t@counta<\t@countb % if ( r >= b/2 ) q=q+1
+ \advance \t@countc by 1
+ \fi
+ \ifnum \t@countd<0 % restore the sign
+ \t@countc=-\t@countc
+ \fi
+ \dimen0=\t@countc sp % express as a dimension
+ \edef #3{\expandafter\c@lean\the\dimen0}}
+
+% ===============================================================
+% ===== Internal TeXdraw macros =================================
+
+% ===== Macros for converting between dimensions and units
+% Convert drawing units (coordinate value, scaled by the unit scale and
+% segment scale) to pixels. We use rounding to get more accurate results.
+% #1 dimension in drawing units
+% #2 count in pixels (returned into a count)
+\def\coordtopix #1#2{\dimen0=#1\d@dim
+ \dimen2=\d@sc\dimen0
+ \t@counta=\dimen2 % scaled dimension in sp
+ \t@countb=\s@ppix
+ \divide \t@countb by 2
+ \ifnum \t@counta<0 % rounding
+ \advance \t@counta by -\t@countb
+ \else
+ \advance \t@counta by \t@countb
+ \fi
+ \divide \t@counta by \s@ppix
+ #2=\t@counta}
+
+% Convert from absolute pixels to relative scaled coordinates
+% #1 - input integer pixel value
+% #2 - macro name to receive the character string corresponding to the
+% floating point coordinate value
+\def\pixtocoord #1#2{\t@counta=#1%
+ \multiply \t@counta by \s@ppix
+ \dimen0=\d@sc\d@dim
+ \t@countb=\dimen0
+ \intdiv \t@counta \t@countb #2}
+
+% Convert pixels to TeX dimensions.
+% #1 - input integer pixel value
+% #2 - returned dimension (returned into a dimension register)
+\def\pixtodim #1#2{\t@countb=#1%
+ \multiply \t@countb by \s@ppix
+ #2=\t@countb sp\relax}
+
+% Convert pixels to (integer) bp units
+% #1 - input pixel value
+% #2 - integer value, returned as a macro definition
+\def\pixtobp #1#2{\dimen0=\p@sfactor pt
+ \t@counta=\dimen0
+ \multiply \t@counta by #1%
+ \ifnum \t@counta < 0 % rounding
+ \advance \t@counta by -32768
+ \else
+ \advance \t@counta by 32768
+ \fi
+ \divide \t@counta by 65536
+ \edef #2{\the\t@counta}}
+
+% ===== Allocations for registers and counts
+% == Temporary count registers
+\newcount\t@counta \newcount\t@countb % Use at lowest levels
+\newcount\t@countc \newcount\t@countd
+\newcount\t@counte
+\newcount\t@pixa \newcount\t@pixb % Use for pixel values
+\newcount\t@pixc \newcount\t@pixd
+
+% == Temporary dimension registers
+\newdimen\t@xpos \newdimen\t@ypos
+
+% == Position and parameter registers
+% The minimum and maximum extent in the X and Y direction in pixel units
+% (updated globally to reach outside segments)
+\newcount\xminpix \newcount\xmaxpix
+\newcount\yminpix \newcount\ymaxpix
+
+% == Arrowhead parameters
+\newcount\a@lenpix \newcount\a@widpix
+
+% == Absolute pixel positions
+\newcount\x@pix \newcount\y@pix
+\newcount\x@segoffpix \newcount\y@segoffpix
+\newcount\x@savepix \newcount\y@savepix
+
+% == Conversion factor
+\newcount\s@ppix % sp/pixel
+
+% == Pending segments count
+\newcount\d@bs
+
+% == Counter to form unique file names
+\newcount\t@xdnum
+\global\t@xdnum=0
+
+% == TeXdraw box
+\newbox\t@xdbox
+
+% == Output stream number for the PostScript file
+\newwrite\drawfile
+
+% == \newif
+\newif\ifm@pending
+\newif\ifp@ath
+\newif\ifa@st
+\newif\ifm@ore
+\newif \ift@extonly
+\newif\ifp@osinit
+
+% == \newtoks
+\newtoks\everytexdraw
+
+% ===== Character definitions
+\def\l@paren{(}
+\def\a@st{*}
+
+% ===== Special character macros
+% Need to be able to insert "%", "{" and "}" characters into the
+% PostScript file.
+% Define macros which have these characters with category "other".
+% We will assume that these characters have the standard meanings -
+% after all, we use comments and braces in this code.
+\catcode`\%=12
+ \def\p@b {%!} \def\p@p {%%}
+\catcode`\%=14
+\catcode`\{=12 \catcode`\}=12 \catcode`\u=1 \catcode`\v=2
+ \def\l@br u{v \def\r@br u}v
+\catcode `\{=1 \catcode`\}=2 \catcode`\u=11 \catcode`\v=11
+
+% ===== Pixel conversion factors
+% The position is kept as an integer value (count). It is set to a
+% resolution corresponding to 300 units/inch. We refer to them as pixels,
+% but in fact the resolution is just that: movements are quantized to lie
+% on a grid with that resolution.
+
+% Using pixel units which correspond to the actual resolution of the device
+% has advantages in that all horizontal and vertical lines then will be
+% drawn with the same line thickness. In addition the coordinates are
+% then integer values (no decimal point or leading zeros) which leads
+% to a more compact PostScript file.
+
+% The following macro sets the conversion from PostScript units (bp) to the
+% integer units (pixels). The file inclusion \special environment in the
+% PostScript driver restores the context to default PostScript values
+% (bp or 72/in and origin in the lower lefthand corner). A scaling value
+% of 0.24 converts to 300/inch. Note that the PostScript commands written
+% to the temporary PostScript file do not depend on the TeX magnification
+% in effect. Magnification should be handled by the dvi to PostScript
+% driver at the time that the file is included in the output.
+
+% Calculate the conversion factors
+% Let s@ppix = sp/pixel = u / p, where u = sp/unit and p = pix/unit (both
+% integer values).
+% We calculate s@ppix as
+% s@ppix = [ (u+0.5p)/p ]
+% We also calculate the PostScript scale factor bp/pixel
+% Let b = sp/bp. We want p@sfactor = s@ppix/b. For 300 pixels/inch, this
+% gives p@sfactor=0.24. Using rounding
+% p@sfactor = [ (s@ppix+0.5b)/b ] .
+% To carry out the arithmetic, we will operate in sp units (integers) and
+% generate the answer in pt units (multiplying by sp/pt). This result will
+% expressed as a character string representing a real number after the "pt"
+% designator is stripped off.
+
+{\catcode`\p=12 \catcode`\t=12
+ \gdef\c@lean #1pt{#1}}
+
+\def\sppix#1/#2 {\dimen0=1#2 \s@ppix=\dimen0
+ \t@counta=#1%
+ \divide \t@counta by 2
+ \advance \s@ppix by \t@counta
+ \divide \s@ppix by #1% % \s@ppix available
+ \t@counta=\s@ppix
+ \multiply \t@counta by 65536 % 1 pt = 65536 sp
+ \advance \t@counta by 32891 % 0.5 bp = 32890.88 sp
+ \divide \t@counta by 65782 % 1 bp = 65781.76 sp
+ \dimen0=\t@counta sp
+ \edef\p@sfactor {\expandafter\c@lean\the\dimen0}}
+
+% ===== Low level coordinate decoding macros
+% Get two values, separated by a blank
+% Invoke as \g@etargxy <stuff> {} \\\ma\mb
+\def\g@etargxy #1 #2 #3 #4\\#5#6{\def #5{#1}%
+ \ifx #5\empty
+ \g@etargxy #2 #3 #4 \\#5#6% leading blank
+ \else
+ \def #6{#2}%
+ \def\a@rg {#3}%
+ \ifx \a@rg\empty \else
+ \t@xderror {TeXdraw: invalid coordinate}%
+ \fi
+ \fi}
+
+% Check for a leading asterisk
+% Sets \a@stfalse or \a@sttrue, test with \ifa@st
+\def\c@heckast #1{\expandafter
+ \c@heckastll #1\\}
+\def\c@heckastll #1#2\\{\def\testit {#1}%
+ \ifx \testit\a@st
+ \a@sttrue
+ \else
+ \a@stfalse
+ \fi}
+
+% Decode a symbolic coordinate
+% Pixel value returned to a count
+\def\g@etsympix #1#2{\expandafter
+ \ifx \csname #1\endcsname \relax
+ \t@xderror {TeXdraw: undefined symbolic coordinate}%
+ \fi
+ #2=\csname #1\endcsname}
+
+% Set a macro named #1 to have value #2
+\def\s@etcsn #1#2{\expandafter
+ \xdef\csname#1\endcsname {#2}}
+
+% ===== Low level list decoding macros
+% Pick off the first item -> #3, rest of string -> #4
+\def\g@etitem #1 #2\\#3#4{\edef #4{#2}\edef #3{#1}}
+\def\a@pppix #1#2{\edef\a@rg {#1}%
+ \ifx \a@rg\empty \else
+ \coordtopix {#1}\t@pixa
+ \ifx #2\empty
+ \edef #2{\the\t@pixa}%
+ \else
+ \edef #2{#2 \the\t@pixa}%
+ \fi
+ \fi}
+
+% ===== Macros for updating the position
+% Calculate the position in pixels and update the maximum excursions
+\def\s@etpospix #1#2{\coordtopix {#1}\x@pix
+ \advance \x@pix by \x@segoffpix
+ \coordtopix {#2}\y@pix
+ \advance \y@pix by \y@segoffpix
+ \u@pdateminmax \x@pix \y@pix}
+
+\def\r@elpospix #1#2{\coordtopix {#1}\t@pixa
+ \advance \x@pix by \t@pixa
+ \coordtopix {#2}\t@pixa
+ \advance \y@pix by \t@pixa
+ \u@pdateminmax \x@pix \y@pix}
+
+\def\r@elupd #1#2{\t@counta=\x@pix
+ \advance\t@counta by #1%
+ \t@countb=\y@pix
+ \advance\t@countb by #2%
+ \u@pdateminmax \t@counta \t@countb}
+
+\def\u@pdateminmax #1#2{\ifnum #1>\xmaxpix
+ \global\xmaxpix=#1%
+ \fi
+ \ifnum #1<\xminpix
+ \global\xminpix=#1%
+ \fi
+ \ifnum #2>\ymaxpix
+ \global\ymaxpix=#2%
+ \fi
+ \ifnum #2<\yminpix
+ \global\yminpix=#2%
+ \fi}
+
+% ===== Save moves / flush moves
+% A TeXdraw segment which generates only TeX text uses only move, begin
+% segment and end segment commands. The goal is to avoid writing out
+% empty segments for such cases. To this end, moves are held back and
+% only written out if necessary to set the position or terminate a path.
+% Also in this way, a TeXdraw drawing which generates only TeX text will
+% not generate a PostScript file.
+
+% Two flags are used. Both flags are local to a segment.
+% - move pending: Set when a move has been invoked but the move command
+% has not been written out to the PostScript file.
+% - path in progress: Set when a PostScript path has been started but the
+% path has not been terminated and stroked.
+% (1) Moves are kept back. Using TeX's groups, a local flag and local
+% position registers are used to keep track of whether the latest
+% move applicable to a given segment has been written out or not. In
+% effect there is a stack of pending moves, one for each level of
+% segment nesting.
+% (2) At the beginning of a segment, if a PS path is in progress and a
+% a move is pending, the move is written out, terminating the path
+% and stroking the path. This is done to ensure that the path is
+% stroked before lines and/or fills are executed in the segment.
+% (3) At the beginning of a segment, if a PS path is not in progress,
+% any pending moves are kept back. Effectively, the move will be
+% transferred into the segment. It will be written out only when
+% the position needs to be updated for some other command. Such
+% moves which are transferred into segments may have to be repeated
+% outside the segment. The move pending flag will be restored to
+% the value outside the segment on exit from the segment.
+% (4) A begin segment command is not written out, but instead a global
+% segment backlog counter is incremented. The backlog of begin
+% segment commands is written out when a drawing command is
+% encountered.
+% The effect of the above on the TeXdraw commands is as follows.
+% (a) move:
+% - set the current position
+% - record the position of the saved move
+% - set the move pending flag
+% (b) begin segment:
+% - if a path is in progress
+% - if a move is pending
+% - if there is a backlog of segments
+% - write out enough begin segments to clear the backlog
+% - write out the pending move
+% - reset the move pending flag (local to the containing segment,
+% but affects inferior segments)
+% - reset the path in progress flag
+% - increment the segment backlog counter
+% - begin a group
+% (c) end segment:
+% - end a group
+% - if there is no backlog of segments
+% - write an end segment command
+% - if there is a backlog of segments
+% - decrement the backlog counter, thereby omitting an empty
+% empty segment.
+% - the move pending flag and path in progress flag are automatically
+% restored on leaving the TeX group
+% (d) text:
+% - create a text box
+% (e) line parameters:
+% - if there is a backlog of segments
+% - write out enough begin segments to clear the backlog
+% - clear the path in progress flag
+% - write the PS command changing the line parameter
+% (f) other drawing commands:
+% - update the current position
+% - if there is a backlog of segments
+% - write out enough begin segments to clear the backlog
+% - if there is a pending move
+% - write out the pending move
+% - reset the move pending flag (local to this segment, but affects
+% inferior segments)
+% - set the path in progress flag
+% - write the drawing command
+% Notes:
+% (1) The es PS command strokes the path at the end of a segment to
+% ensure that the correct line parameters are used for the segment.
+% The path before the corresponding bs command is restored and
+% continued.
+% (2) The \f@lushbs and \f@lushmove commands must be invoked before each
+% drawing command written to the PS file. The macro \writeps includes
+% these operations.
+
+% Another awkward business has to do with initialization. We want a
+% default (0 0) initial position so that the user can draw vectors
+% immediately. However, if the user specifies another move before
+% beginning to draw, that position should be the initial position. The
+% importance of this initial position is that the determination of the
+% maximum excursion must take this value into account. We handle the
+% initialization in the \s@avemove and \f@lushmove macros. The macro
+% \ifp@osinit indicates whether the next move should be captured as the
+% initial values for \xminpix, \yminpix, \xmaxpix, and \ymaxpix. However,
+% if a \f@lushmove is invoked, then we assume that the appropriate initial
+% values have already been set. The "mv" command in PostScript is defined
+% to stroke the current path (if any) and move to the pixel coordinates
+% specified.
+
+% Note that \m@pendingtrue and \m@pendingfalse define the flag locally.
+% In addition, \x@savepix and \y@savepix are local variables. We make
+% use of the fact that the values of the flag and positions propagate
+% down to inferior segments but not up to superior segments. This
+% behaviour Is consistent with the gsave/grestore operation on the
+% PostScript side.
+\def\s@avemove #1#2{\x@savepix=#1\y@savepix=#2%
+ \m@pendingtrue
+ \ifp@osinit \else
+ \global\p@osinittrue
+ \global\xminpix=\x@savepix \global\yminpix=\y@savepix
+ \global\xmaxpix=\x@savepix \global\ymaxpix=\y@savepix
+ \fi}
+
+\def\f@lushmove {\global\p@osinittrue
+ \ifm@pending
+ \writetx {\the\x@savepix\space \the\y@savepix\space mv}%
+ \m@pendingfalse
+ \p@athfalse
+ \fi}
+
+% ===== Flush begin segment
+% \f@lushbs flushes any saved up \bsegments. Some of these may be
+% redundant, but we cannot know without looking ahead beyond the
+% \esegment.
+\def\f@lushbs {\loop
+ \ifnum \d@bs>0
+ \writetx {bs}%
+ \global\advance \d@bs by -1
+ \repeat}
+
+% ===== Internal text macros
+% Horizontal text, use only 3 levels of box nesting here
+\def\h@move #1#2 #3)#4{\move (#2 #3)%
+ \h@text {#4}}
+\def\h@text #1{\pixtodim \x@pix \t@xpos
+ \pixtodim \y@pix \t@ypos
+ \vbox to 0pt{\normalbaselines
+ \t@stuff
+ \kern -\t@ypos
+ \hbox to 0pt{\l@stuff
+ \kern \t@xpos
+ \hbox {#1}%
+ \kern -\t@xpos
+ \r@stuff}%
+ \kern \t@ypos
+ \b@stuff\relax}}
+
+% Rotated text
+% Uses 5 levels of box nesting here (so that the text reference point
+% is that <before> rotation). This was done so that the reference point
+% definition makes sense with arbitrary angle rotation. The text is
+% rotated with respect to the text reference point. The result is zero
+% sized. These macros generate in-line PostScript.
+% #1 - rotation angle in degrees
+% #2 - text to be rotated
+\def\r@move td:#1 #2#3 #4)#5{\move (#3 #4)%
+ \r@text td:#1 {#5}}
+\def\r@text td:#1 #2{\vbox to 0pt{\pixtodim \x@pix \t@xpos
+ \pixtodim \y@pix \t@ypos
+ \kern -\t@ypos
+ \hbox to 0pt{\kern \t@xpos
+ \rottxt {#1}{\z@sb {#2}}%
+ \hss}%
+ \vss}}
+\def\z@sb #1{\vbox to 0pt{\normalbaselines
+ \t@stuff
+ \hbox to 0pt{\l@stuff \hbox {#1}\r@stuff}%
+ \b@stuff}}
+
+% ===== Rotate text, in-line PostScript code
+\ifx \rotatebox\@undefined
+ \def\rottxt #1#2{\bgroup
+ \special {ps: gsave currentpoint currentpoint translate
+ #1\space neg rotate
+ neg exch neg exch translate}%
+ #2%
+ \special {ps: currentpoint grestore moveto}%
+ \egroup}
+\else
+ \let\rottxt=\rotatebox
+\fi
+
+% ===== Error message
+% If not defined, use the plain TeX errmessage macro
+\ifx \t@xderror\@undefined
+ \let\t@xderror=\errmessage
+\fi
+
+% ===== Default values
+% These are reset each time TeXdraw is invoked
+\def\t@exdrawdef {\sppix 300/in % 300 pixels/inch
+ \drawdim in % drawing units are inches
+ \edef\u@nitsc {1}% % unit scale 1 (has to be set
+ % before invoking \setsegscale)
+ \setsegscale 1 % segment scale 1
+ \arrowheadsize l:0.16 w:0.08
+ \arrowheadtype t:T
+ \textref h:L v:B }
+
+
+% ===============================================================
+% ===== PostScript file macros ==================================
+
+% ===== Include the TeXdraw graphics
+% The drawing in a box of appropriate size will be placed such that its
+% lower left hand corner will be at the current TeX position.
+\ifx \includegraphics\@undefined
+ \def\t@xdinclude [#1,#2][#3,#4]#5{%
+ \begingroup % keep definitions local
+ \message {<#5>}%
+ \leavevmode
+ \t@counta=-#1% % integer bounding box coordinates
+ \t@countb=-#2%
+ \setbox0=\hbox{%
+ \special {PSfile="#5"\space
+ hoffset=\the\t@counta\space voffset=\the\t@countb}}%
+ \t@ypos=#4 bp%
+ \advance \t@ypos by -#2 bp%
+ \t@xpos=#3 bp%
+ \advance \t@xpos by -#1 bp%
+ \dp0=0pt \ht0=\t@ypos \wd0=\t@xpos
+ \box0%
+ \endgroup}
+\else
+ \let\t@xdinclude=\includegraphics
+\fi
+
+% Leave space without including a PS file
+\def\t@xdempty [#1,#2][#3,#4]{%
+ \begingroup
+ \leavevmode
+ \setbox0=\hbox{}%
+ \t@ypos=#4 bp%
+ \advance \t@ypos by -#2 bp%
+ \t@xpos=#3 bp%
+ \advance \t@xpos by -#1 bp%
+ \dp0=0pt \ht0=\t@ypos \wd0=\t@xpos
+ \box0%
+ \endgroup}
+
+% ===== Write to the PostScript file
+% Macro to write PostScript commands to the temporary PostScript file
+% To decrease the size of the PostScript file, moves are kept back to
+% allow redundant multiple moves to be removed. In addition empty gsave/
+% grestore pairs are not written. The PostScript file is not opened if
+% TeXdraw has not generated any PostScript commands, i.e. it has produced
+% only TeX text.
+% \writeps : flushes the pending move to make sure things are positioned
+% correctly and flushes pending begin segments before calling
+% \writetx to write to the PostScript file
+% \writetx : writes directly to the PostScript file. This version is used
+% only for those commands which just change line parameters
+% without drawing. This routine opens the file and writes the
+% PS file header the first time it is called.
+% \p@swr : lowest level direct write to the PostScript file
+\def\writeps #1{\f@lushbs
+ \f@lushmove
+ \p@athtrue
+ \writetx {#1}}
+\def\writetx #1{\p@sopen
+ \ifx\p@sfile\p@sundef \else
+ \p@swr {#1}%
+ \fi}
+\def\p@swr #1{\immediate\write\drawfile {#1}}
+
+% ===== Open/Close a PostScript file
+% Open a PostScript file, write the definitions used by TeXdraw.
+\xdef\p@sundef{UnDeFiNeD}
+\def\p@sopen {%
+ \ifx\p@sfile\p@sundef
+ \p@sopenI
+ \fi
+}
+% The code has a hook to avoid generating the PS file under certain
+% circumstances. The amsmath package sometimes sets an expression twice,
+% once to measure it and again to actually typeset it. In the first case,
+% \ifmeasuring@ is set to true. For that setting, the PS file is not
+% generated.
+\def\p@sopenI {%
+ \ifx\ifmeasuring@\iftrue \else % \ifmeasuring@ undefined or false
+ \global\advance \t@xdnum by 1
+ \ifnum \t@xdnum<10
+ \xdef \p@sfile{\jobname.ps\the\t@xdnum}%
+ \else
+ \xdef \p@sfile{\jobname.p\the\t@xdnum}%
+ \fi
+ \t@xdopen \p@sfile
+ \fi
+}
+
+\def\p@sclose {
+ \ifx\p@sfile\p@sundef \else
+ \t@xdclose
+ \fi
+}
+\def\t@xdopen #1{%
+ \immediate\openout\drawfile=#1%
+ \p@swr {\p@b PS-Adobe-3.0 EPSF-3.0}%
+ \p@swr {\p@p BoundingBox: (atend)}%
+ \p@swr {\p@p Title: TeXdraw drawing: #1}%
+ \p@swr {\p@p Pages: 1}%
+ \p@swr {\p@p Creator: \TeXdrawId}%
+ \p@swr {\p@p CreationDate: \the\year/\the\month/\the\day}%
+ \p@swr {50 dict begin}%
+ \p@swr {/mv {stroke moveto} def}%
+ \p@swr {/lv {lineto} def}%
+ \p@swr {/st {currentpoint stroke moveto} def}%
+ \p@swr {/sl {st setlinewidth} def}%
+ \p@swr {/sd {st 0 setdash} def}%
+ \p@swr {/sg {st setgray} def}%
+ \p@swr {/bs {gsave} def /es {stroke grestore} def}%
+ \p@swr {/fl \l@br gsave setgray fill grestore}%
+ \p@swr { currentpoint newpath moveto\r@br\space def}%
+ \p@swr {/fp {gsave setgray fill grestore st} def}%
+ \p@swr {/cv {curveto} def}%
+ \p@swr {/cr \l@br gsave currentpoint newpath 3 -1 roll 0 360 arc}%
+ \p@swr { stroke grestore\r@br\space def}%
+ \p@swr {/fc \l@br gsave setgray currentpoint newpath}%
+ \p@swr { 3 -1 roll 0 360 arc fill grestore\r@br\space def}%
+ \p@swr {/ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def}%
+ \p@swr {/el \l@br gsave /svm matrix currentmatrix def}%
+ \p@swr { currentpoint translate scale newpath 0 0 1 0 360 arc}%
+ \p@swr { svm setmatrix stroke grestore\r@br\space def}%
+ \p@swr {/fe \l@br gsave setgray currentpoint translate scale newpath}%
+ \p@swr { 0 0 1 0 360 arc fill grestore\r@br\space def}%
+ \p@swr {/av \l@br /hhwid exch 2 div def /hlen exch def}%
+ \p@swr { /ah exch def /tipy exch def /tipx exch def}%
+ \p@swr { currentpoint /taily exch def /tailx exch def}%
+ \p@swr { /dx tipx tailx sub def /dy tipy taily sub def}%
+ \p@swr { /alen dx dx mul dy dy mul add sqrt def}%
+ \p@swr { /blen alen hlen sub def}%
+ \p@swr { gsave tailx taily translate dy dx atan rotate}%
+ \p@swr { (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse}%
+ \p@swr { stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto}%
+ \p@swr { (T) ah eq {closepath} if}%
+ \p@swr { (W) ah eq {gsave 1 setgray fill grestore closepath} if}%
+ \p@swr { (F) ah eq {fill} {stroke} ifelse}%
+ \p@swr { grestore tipx tipy moveto\r@br\space def}%
+ \p@swr {\p@sfactor\space \p@sfactor\space scale}%
+ \p@swr {1 setlinecap 1 setlinejoin}%
+ \p@swr {3 setlinewidth [] 0 setdash}%
+ \p@swr {0 0 moveto}%
+}
+
+% Notes:
+% - mv (move to) This command includes a stroke before the moveto. The
+% stroke terminates a path and the move begins another path.
+% - bs (begin segment) encloses a segment in a gsave/grestore to keep
+% changes to line parameters local.
+% - es (end segment) does a "stroke grestore" to make sure lines inside
+% the segment use the line parameters local to that segment
+% - ar (arc) The path is generated and stroked inside a gsave/grestore,
+% leaving the current path intact.
+% - cr (circle) The path is generated and stroked inside a gsave/grestore,
+% leaving the current path intact.
+% - fc (filled circle) The path is generated and filled inside a gsave/
+% grestore, keeping the fill level local to the circle. The current
+% path is left intact.
+% - el (ellipse) The path is generated and stroked inside a gsave/grestore,
+% leaving the current path intact. The elliptical path is defined
+% with different x and y scaling, then stroked with default scaling
+% to give a constant line thickness.
+% - fe (filled ellipse) The path is generated and filled inside a gsave/
+% grestore, leaving the current path intact.
+% - fl (fill) The current path is closed and filled inside a gsave/restore,
+% keeping the fill level local. A newpath terminates the path.
+% - fp (fill path) The current path is closed and then filled inside a
+% gsave/grestore. Finally the closed path is stroked, implicitly
+% terminating the path.
+% - av (arrow vector) The arrow vector is drawn inside a gsave/grestore.
+% The line width and type are those currently in effect. After the
+% grestore, the current path is continued with a move to the tip of
+% the vector.
+
+% ===== Close the PostScript file
+% Write a trailer with the BoundingBox, close the file. Note that the
+% BoundingBox may be larger than the commands in the PostScript file
+% indicate. This is due to the fact that multiple move commands in
+% a row are collapsed into a single move. The BoundingBox information
+% includes the effect of the moves which were expunged.
+\def\t@xdclose {%
+ \bgroup
+ \p@swr {stroke end showpage}%
+ \p@swr {\p@p Trailer:}%
+ \pixtobp \xminpix \l@lxbp \pixtobp \yminpix \l@lybp
+ \pixtobp \xmaxpix \u@rxbp \pixtobp \ymaxpix \u@rybp
+ \p@swr {\p@p BoundingBox: \l@lxbp\space \l@lybp\space
+ \u@rxbp\space \u@rybp}%
+ \p@swr {\p@p EOF}%
+ \egroup
+ \immediate\closeout\drawfile
+}
+
+% ===============================================================
+\catcode`\@=\catamp
diff --git a/graphics/texdraw/txdps.tex b/graphics/texdraw/txdps.tex
new file mode 100644
index 0000000000..482e3faf40
--- /dev/null
+++ b/graphics/texdraw/txdps.tex
@@ -0,0 +1,52 @@
+% TeXdraw macros to access PostScript builtins
+
+% $Id: txdps.tex 1.10 2019/04/18 TeXdraw-v2r3 $
+
+% Copyright (C) 1991-2019 Peter Kabal
+
+% This work is licensed under the Creative Commons Attribution (CC-BY)
+% License, any version. To view the licenses, visit
+% creativecommons.org/licenses/by or send a letter to
+% Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+
+% peter dot kabal at mcgill dot ca
+% http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/
+
+% ===============================================================
+
+\chardef\catamp=\the\catcode`\@
+\catcode`\@=11
+
+% The TeXdraw macros assume that a PostScript currentpoint is always
+% defined. When using the following macros, always finish off with
+% by reestablishing a PostScript currentpoint. This can be done with
+% a \PSmoveto command.
+
+\def\PSsetlinecap #1 {\writeps{#1 setlinecap}}
+\def\PSsetlinejoin #1 {\writeps{#1 setlinejoin}}
+\def\PSstroke {\writeps{stroke}}
+\def\PSnewpath {\writeps{newpath}}
+\def\PSclosepath {\writeps{closepath}}
+\def\PSfill {\writeps{fill}}
+\def\PSlineto (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space lineto}}
+\def\PSmoveto (#1 #2){\getpos (#1 #2)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \writeps {\the\x@pix\space \the\y@pix\space moveto}}
+\def\PSarc r:#1 sd:#2 ed:#3 (#4 #5){\getpos (#4 #5)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \coordtopix {#1}\t@pixa
+ \writeps{\the\x@pix\space \the\y@pix\space
+ \the\t@pixa\space #2 #3 arc}}
+\def\PSarcn r:#1 sd:#2 ed:#3 (#4 #5){\getpos (#4 #5)\a@rgx\a@rgy
+ \s@etpospix \a@rgx \a@rgy
+ \coordtopix {#1}\t@pixa
+ \writeps{\the\x@pix\space \the\y@pix\space
+ \the\t@pixa\space #2 #3 arcn}}
+
+\catcode`\@=\catamp
diff --git a/graphics/texdraw/txdtools.tex b/graphics/texdraw/txdtools.tex
new file mode 100644
index 0000000000..eea68fbd0c
--- /dev/null
+++ b/graphics/texdraw/txdtools.tex
@@ -0,0 +1,142 @@
+% TeXdraw toolbox macros, useful for extended TeXdraw commands
+
+% $Id: txdtools.tex 1.11 2019/04/18 TeXdraw-v2r3 $
+
+% Copyright (C) 1991-2019 Peter Kabal
+
+% This work is licensed under the Creative Commons Attribution (CC-BY)
+% License, any version. To view the licenses, visit
+% creativecommons.org/licenses/by or send a letter to
+% Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+% Peter Kabal
+% Department of Electrical & Computer Engineering
+% McGill University
+
+% peter dot kabal at mcgill dot ca
+% http://www-mmsp.ece.mcgill.ca/MMSP/Documents/Software/
+
+% ===============================================================
+
+% These macros use temporary count registers defined by TeXdraw
+% \t@counta \t@pixa
+% \t@countb \t@pixb
+% \t@countc \t@pixc
+% \t@pixd
+
+\chardef\catamp=\the\catcode`\@
+\catcode`\@=11
+
+
+% ===== Real arithmetic
+% Real addition
+% #1 - summand
+% #2 - summand
+% #3 - macro name to capture the real result
+\def\realadd #1#2#3{\dimen0=#1pt
+ \dimen2=#2pt
+ \advance \dimen0 by \dimen2
+ \edef #3{\expandafter\c@lean\the\dimen0}}
+
+% Real division
+% #1 - numerator
+% #2 - denominator (divisor)
+% #3 - macro name to capture the real result
+\def\realdiv #1#2#3{\dimen0=#1pt
+ \t@counta=\dimen0
+ \dimen0=#2pt
+ \t@countb=\dimen0
+ \intdiv \t@counta \t@countb #3}
+
+% ===== Integer arithmetic
+
+% Length of the hypotenuse
+% Find the length of a vector, lenhyp = sqrt(dx*dx + dy*dy)
+% #1 - integer value, dx
+% #2 - integer value, dy
+% #3 - count register to capture the integer value
+\def\lenhyp #1#2#3{\t@counta=#1%
+ \multiply \t@counta by \t@counta
+ \t@countb=#2%
+ \multiply \t@countb by \t@countb
+ \advance \t@counta by \t@countb
+ \sqrtnum \t@counta #3}
+
+% Square root of an integer
+% Newton-Raphson iteration to find the square root, integer argument
+% Let the current estimate of the square root of x be b(k).
+% Form an error function, e(k)=b(k)*b(k)-x. Follow the gradient of the
+% error to calculate the next guess,
+%
+% e(k) - 0 d e(k) b(k) + x/b(k)
+% ---------- = ------ = 2*b(k) ==> b(k+1) = -------------
+% b(k)-b(k+1) d b(k) 2
+%
+% Note this iteration does not work for x=0, since the guess is then b(k)=0.
+% Rename the count registers to have more suggestive names
+\let\bk=\t@counta
+\let\bn=\t@countb
+\let\xval=\t@countc
+\def\sqrtnum #1#2{\xval=#1%
+ \bk=\xval
+ \loop
+ \bn=\xval
+ \divide \bn by \bk
+ \advance \bn by \bk
+ \advance \bn by 1 % rounding
+ \divide \bn by 2
+ \ifnum \bn < \bk
+ \bk=\bn
+ \repeat
+ #2=\bn}
+
+% ===== Coordinate macros
+
+% Return the coordinates of the current position
+% #1 - macro name to capture the x-coordinate
+% #2 - macro name to capture the y-coordinate
+\def\currentpos #1#2{\t@pixa=\x@pix
+ \advance \t@pixa by -\x@segoffpix
+ \pixtocoord \t@pixa #1
+ \t@pixa=\y@pix
+ \advance \t@pixa by -\y@segoffpix
+ \pixtocoord \t@pixa #2}
+
+% Length of a vector
+% Find the length of the vector between coordinate (#1 #2) and
+% coordiante (#3 #4). The length is expressed relative to the
+% current scaling.
+% (#1 #2) - vector start coordinates
+% (#3 #4) - vector end coordinates
+% #5 - macro name to receive the length
+\def\vectlen (#1 #2)(#3 #4)#5{\getpos (#1 #2)\x@arga\y@arga
+ \getpos (#3 #4)\x@argb\y@argb
+ \coordtopix \x@arga \t@pixa
+ \coordtopix \x@argb \t@pixb
+ \advance \t@pixb by -\t@pixa
+ \coordtopix \y@arga \t@pixc
+ \coordtopix \y@argb \t@pixd
+ \advance \t@pixd by -\t@pixc
+ \lenhyp \t@pixb \t@pixd \t@pixc
+ \pixtocoord \t@pixc #5}
+
+% Cossine and sine
+% Find the cosine and sine of the angle of a vector directed from
+% the coordinate (#1 #2) to the coordinate (#3 #4).
+% (#1 #2) - start coordinates
+% (#3 #4) - end coordinates
+% #5 - macro name to receive the cosine of the angle
+% #6 - macro name to receive the sine of the angle
+\def\cossin (#1 #2)(#3 #4)#5#6{\getpos (#1 #2)\x@arga\y@arga
+ \getpos (#3 #4)\x@argb\y@argb
+ \coordtopix \x@arga \t@pixa
+ \coordtopix \x@argb \t@pixb
+ \advance \t@pixb by -\t@pixa
+ \coordtopix \y@arga \t@pixc
+ \coordtopix \y@argb \t@pixd
+ \advance \t@pixd by -\t@pixc
+ \lenhyp \t@pixb \t@pixd \t@pixc
+ \intdiv \t@pixb\t@pixc #5%
+ \intdiv \t@pixd\t@pixc #6}
+
+\catcode`\@=\catamp