home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / text / tex / 10430 < prev    next >
Encoding:
Text File  |  1992-08-22  |  61.0 KB  |  1,343 lines

  1. Newsgroups: comp.text.tex
  2. Path: sparky!uunet!paladin.american.edu!darwin.sura.net!jvnc.net!princeton!zandtwerk.Princeton.EDU!tvz
  3. From: tvz@Princeton.EDU (Timothy Van Zandt)
  4. Subject: Announcing PSTricks v0.91: PostScript Macros for Generic TeX
  5. Message-ID: <1992Aug23.101307.26260@Princeton.EDU>
  6. Originator: tvz@zandtwerk.Princeton.EDU
  7. Keywords: PostScript
  8. Sender: news@Princeton.EDU (USENET News System)
  9. Nntp-Posting-Host: zandtwerk.princeton.edu
  10. Organization: Princeton University
  11. Date: Sun, 23 Aug 1992 10:13:07 GMT
  12. Lines: 1329
  13.  
  14. Version 0.91 of PSTricks was announced to users on a mailing list
  15. after its completion last June, but this is the first "public"
  16. announcement because I was away for the summer.
  17.  
  18. The most important change is that the \dbox macro has been
  19. replaced by a collection of very powerful and flexible node
  20. connection macros, which are good for trees, mathematical
  21. diagrams, and connecting information.
  22.  
  23. There are also some new graphics objects, including an arc
  24. object that allows arrowsheads, and various curve interpolation
  25. objects.
  26.  
  27. For those who are new, PSTricks is a kitchen sink of PostScript-
  28. based TeX macros. Among other things, it is probably the most
  29. powerful TeX drawing package around. It can be used with
  30. most TeX macro packages, including Plain TeX, LaTeX, AmS-TeX
  31. and AmS-LaTeX.
  32.  
  33. Attached are a read-me file, and the TeX input and PostScript output
  34. for a test file, to give you a taste of the package.
  35.  
  36. PSTricks is available via anonymous ftp from the /pub directory
  37. at Princeton.EDU. You should also pick up pstricks.bug from the
  38. same place. Despite the warning at the beginning of the readme
  39. file, this release has proved to be stable.
  40.  
  41. Tim
  42. ---
  43. Timothy Van Zandt   (609)258-4050  tvz@Princeton.EDU (NeXTMail)
  44. Dept. of Economics,  Princeton University,  Princeton, NJ 08544
  45.  
  46.  
  47.  
  48. ***********************************************************************
  49. ****      "readme" file for PSTricks package, v0.91, 92/06/17      ****
  50. ***********************************************************************
  51.  
  52. Warning: This is a particularly unstable and preliminary release.
  53.  
  54. COPYRIGHT 1992, by Timothy Van Zandt, tvz@Princeton.EDU
  55.  
  56. DESCRIPTION:
  57.  
  58.   pstricks.tex is an extensive collection of PostScript macros that is
  59.   compatible with most TeX macro packages, including Plain TeX , LaTeX
  60.   and AmS-LaTeX. Included are macros for color, graphics, rotation,
  61.   trees and overlays. It has several special features:
  62.   * There is a wide variety of graphics (picture drawing) macros, with
  63.     a flexible interface and with color support. All lines and outlines
  64.     can be solid, dotted or dashed. Lines and curves can have arrowheads,
  65.     t-bars, brackets or circles on the ends. Regions can be filled
  66.     with solid colors, lines or crosshatch.
  67.   * There is support for polar and cartesian coordinate systems.
  68.   * There are macros for plots.
  69.   * Nested rotations can be made with respect to the physical page.
  70.   * There is flexible node macros, useful for trees, mathematical
  71.     diagrams, and linking information of any kind.
  72.   * There is a powerful loop macro that is useful for making pictures.
  73.   * There are macros for coloring or shading the cells of tables.
  74.   PSTricks lets you have your cake (TeX) and eat it too (PostScript)!
  75.   
  76. FILES:
  77.  
  78.   Inputs:
  79.     pstricks.tex : The main macro file, for use with a header file.
  80.     pstricks.sty : The same as pstricks.tex, but the .sty extension.
  81.     pstricks.con : The configuration file for pstricks.tex.
  82.  
  83.   Documentation:
  84.     pst-usr1.ps  : User's Guide, part I.
  85.     pst-usr2.ps  : User's Guide, part II.
  86.     pst-test.tex : A test file.
  87.     pst-read.me  : This file.
  88.     
  89.   Sources:
  90.     pstricks.doc : Documentation and code for pstricks.tex.
  91.     pst-code.tex : For typesetting pstricks.doc.
  92.     pst-user.tex : User's Guide.
  93.     tvz-hax.sty  : Macros for printing documentation.
  94.     2up.tex      : More macros for printing documentation.
  95.     npsfont.sty  : Used for printing the User's Guide.
  96.     pst-make.tex : For making a stripped input file and header file.
  97.     
  98.   Header:
  99.     pstricks.pro : A PostScript prologue (for use with dvips).
  100.  
  101. INSTALLATION FOR USERS OF ROKICKI'S DVIPS:
  102.  
  103.   1. Put the three input files where your TeX looks for inputs.
  104.      
  105.   2. Put the file pstricks.pro where dvips looks for inputs.
  106.      Probably /usr/lib/tex/ps on unix systems.
  107.     
  108.   3. Print pst-usr1.ps and pst-usr2.ps, which is the User's Guide
  109.      for pstricks.tex. The last few pages of pst-usr2.ps
  110.      are a Quick Reference.
  111.    
  112.   4. Have fun!
  113.   
  114. INSTALLATION FOR USERS OF OTHER DVI-TO-PS DRIVERS:
  115.  
  116.   PSTricks has only been tested extensively with Rokicki's dvips.
  117.   However, it should be able to adapted to other drivers with
  118.   similar capabilities.
  119.  
  120.   1. Print the User's Guide.
  121.   
  122.   2. Use pstricks.doc as your input file for now (rather than pstricks.tex).
  123.   
  124.   3. Examine the configuration file pstricks.con. Uncomment
  125.      the \iffalse...\fi surrounding the commands for dvips.
  126.      Try to define the required commands appropriately for you driver,
  127.      but don't use a header file yet (i.e., leave \pstheader
  128.      undefined).
  129.     
  130.   3. Run pst-test.tex through Plain TeX until you get things to work
  131.      as well as possible. You may not be able to use all of PSTricks features,
  132.      but if you can define \pstverb and \pstunit, you at least can use
  133.      all the graphics objects.
  134.      
  135.   4. When satisfied, run pst-make with Plain TeX or LaTeX. Put the
  136.      file pstricks.tex that is generated where you TeX looks for inputs,
  137.      along with pstricks.con and pstricks.sty. If you opt to generate
  138.      and use a header file, put this where your dvi driver looks for
  139.      such a beast. Then define \pstheader properly in the configuration
  140.      file. PSTRicks works much more quickly and generates smaller
  141.      PostScript files when used with the header file.
  142.   
  143. UPGRADING FROM PREVIOUS VERSIONS:
  144.  
  145.   Much has changed. You should reinstall the package in its entirety.
  146.   As previously announced, \dbox and \rotate have been removed. \psput
  147.   has been replaced by \rput, with new syntax. However, the command
  148.   \OldPsput defines \psput to work with the old syntax; the command
  149.   \NewPsput defines \psput to work with the new syntax. See the
  150.   "Changes" section below for more information.
  151.   
  152. TIPS FOR HACKERS:
  153.  
  154.   The file pstricks.doc contains the documentation and code, using
  155.   Frank Mittelbach's doc system. You can typeset this, if desired,
  156.   by running LaTeX on pst-code.tex. See pst-code.tex for details.
  157.   (However, the commentary is currently out of date.)
  158.   
  159.   If you want to modify the internals of PSTricks, don't use a
  160.   PostScript header file (i.e., don't use \pstheader in pstricks.con)
  161.   and use pstricks.doc as your input file. This allows you to modify
  162.   both the TeX and the PostScript macros.
  163.   
  164.   When you don't expect to make more changes for a while, run
  165.   pst-make to generate a new compact macro file and a new
  166.   PostScript header file (if desired). If using a header file,
  167.   don't forget to defined \pstheader in pstricks.con.
  168.  
  169. USING PSTRICKS WITH SUN' PAGEVIEW/NEWSPRINT/OPENWINDOWS
  170.  
  171.   Sun's PageView/NeWSPrint/OpenWindows have many bugs,
  172.   especially with the wrong combination of versions.
  173.   Workarounds for several of these have been coded into
  174.   PSTricks. However, arrows may sometimes do odd things
  175.   when used in landscape mode with dvips. Report other problems
  176.   to tvz@Princeton.
  177.  
  178. GETTING PSTRICKS
  179.  
  180.   The PSTricks package is available from the /pub directory at
  181.   Princeton.EDU, and at other archives.
  182.   
  183.   A bug list pstricks.bug is kept up-to-date on Princeton.EDU.
  184.   
  185.   Send requests to get on or off a mailing list for PSTricks to
  186.   tvz@Princeton.
  187.   
  188. PSTRICKS.TEX AND SEMINAR.STY
  189.  
  190.   The PSTricks package grew out of macros originally written for the
  191.   Seminar package.  seminar.sty is a LaTeX style for slides and notes.
  192.   seminar.sty, combined with pstricks.tex and your favorite macros for
  193.   inclusion of EPS files, make a complete TeX presentation software package.
  194.   
  195.   PSTricks v0.91 works with seminar.sty version 0.92, and maybe later
  196.   versions as well. The Seminar package is also available from
  197.   Princeton.EDU, and perhaps from wherever else you got PSTricks.
  198.   
  199. ACKNOWLEDGEMENTS: 
  200.  
  201.   The author is thankful to Frank Mittelbach for his  documentation system.
  202.   
  203.   The algorithm in the \psdoodle macro was adapted from a C program by
  204.   Shamim Zvonko Mohamed.
  205.   
  206.   The basic idea for the node macros is from Emma Pease's tree-dvips.sty.
  207.  
  208. COPYING:
  209.  
  210.   Copying of part or all of any file in the pstricks package
  211.   is allowed under the following conditions only:
  212.   (1) You may freely distribute unchanged copies of the files. Please
  213.       include the documentation when you do so.
  214.   (2) You may modify a renamed copy of any file, but only for personal
  215.       use or use within an organization.
  216.   (3) You may copy fragments from the files, for personal use or for use
  217.       in a macro package for distribution, as long as credit is given
  218.       where credit is due.
  219.  
  220.   You are NOT ALLOWED to take money for the distribution or use of
  221.   these files or modified versions or fragments thereof, except for
  222.   a nominal charge for copying etc.
  223.  
  224. BUGS:
  225.  
  226.   Too many to list, and who knows what they are anyway. These files are all
  227.   preliminary and unstable. Not for use as children's sleepware.
  228.   
  229.   Please report bugs, enhancements and other comments, especially positive
  230.   or negative experiences with DVI-to-PS converters and previewers, to
  231.  
  232.              Timothy Van Zandt, tvz@Princeton.edu.
  233.  
  234.   Thanks.
  235.  
  236. CHANGES:
  237.  
  238. Policy: These macros are preliminary, but future incompatible changes
  239. to the user interface will be minimized. (A promise broken once already.)
  240.  
  241. Key: In listings below,
  242.     + means addition,
  243.     * means change,
  244.     ! means change that may cause problems with old files.
  245.  
  246. v.9: Much internal code was changed, and additional features were added.
  247.   See the User's Guide for details.
  248.  
  249.  ! The syntax of \dline has changed several times.
  250.  
  251.  ! With \multido, the backslash should now be included with variable
  252.    names in the variable declarations.
  253.  
  254.  * Memory stats with LaTeX's article style:
  255.     40179 words of memory
  256.      2740 multiletter control
  257.  
  258.  
  259. v.91:
  260.  
  261.  * In spite of the many new features, the input file is smaller in bytes,
  262.    and runs significantly faster (at least if used with a header file).
  263.    The macros use up slightly more words of memory, and significantly
  264.    more command sequences. Here are the stats with LaTeX's article
  265.    style:
  266.      41586 words of memory
  267.       2966 multiletter control sequences
  268.        
  269.  ! \dbox and \rotate eliminated.
  270.  
  271.  ! \psput replaced by \rput, with new syntax:
  272.       OLD:  \psput[angle]<ref point>(x,y){stuff}
  273.       NEW:  \rput[ref point]{angle}(x,y){stuff}
  274.    \OldPsput sets up \psput with the old syntax (this may disappear some
  275.    day; keep it in a safe place if you expect to need it for a long time).
  276.    
  277.  ! System for specifying angles for nested rotations with \psput has changed.
  278.       OLD:  p0{angle}, p1{angle}, p2{angle}, etc.
  279.       NEW:  *angle  works like p0{angle}; p1{angle} capability eliminated.
  280.    N, S, E and W have same meaning as before.
  281.  
  282.  ! enddotsize parameter changed to dotsize.
  283.  
  284.  ! For specifying the origin as the baseline for the \pspicture
  285.    environment, leave the optional argument [] empty (rather than
  286.    [o]).
  287.    
  288.  ! B is not allowed as the y-coordinate when setting the reference point
  289.    in \rput using coordinates. E.g., [Bl] and [B] are OK, but [.3,B] is
  290.    not.
  291.    
  292.  * \sunpatch not needed anymore.
  293.  
  294.  * PostScript header file (if being used) is included at the beginning,
  295.    rather than on demand. 
  296.  
  297.  + cornersize parameter added, for specifying whether radius of corners
  298.    in \psframe and related box macros is given in relative terms (using
  299.    framearc) or absolute terms (using linearc).
  300.    
  301.  + \psclip and \clipbox macros added.
  302.  
  303.  + \Cartesian and \Polar commands added, for switching coordinate
  304.    systems.
  305.    
  306.  + border=dim parameter added, for giving appearance of one line
  307.    crossing over another.
  308.  
  309.  + showpoints=bool parameter added. If true, a dot is placed at appropriate 
  310.    coordinates.
  311.    
  312.  + \psdots graphics object added.
  313.  
  314.  + \psarc graphics object added.
  315.  
  316.  + \parabola graphics object added.
  317.  
  318.  + \pscurve, \psccurve, \psecurve, \psdoodle, \psedoodle, and \pscdoodle
  319.    graphics objects added.
  320.  
  321.  + \qline and \qdisk graphics objects added.
  322.  
  323.  + \psplot, \parametericplot and \listplot graphics objects added.
  324.  
  325.  + node connection (e.g., tree) macros added!!
  326.  
  327. %%%%%%%%%%%%%%%%%%%%%% END pst-read.me %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  328.  
  329.  
  330. %%%%%%%%%%%%%%%%%%% pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  331. %% Test file for pstricks.tex, v0.91 and maybe later versions.
  332. %%
  333. %% Run with Plain TeX.
  334. %%
  335. %% PAGE 1: Pure graphics objects. These us \psunit and \pstverb.
  336. %%
  337. \input pstricks
  338.  
  339. \newpsobject{mygrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt}
  340. \hbox{}\vfill
  341.  
  342. \pspicture(-1,-1)(9,2)\mygrid
  343. \psline[linewidth=1.5pt,linestyle=dotted]{**-)}(2.5,1.5)
  344. \psline[linewidth=2pt,linestyle=dashed,
  345.   linearc=.5,linecolor=gray]{|->}(3,-.5)(5.5,1.8)(7,-1)
  346. \qline(9,-1)(8,2)
  347. \endpspicture
  348.  
  349. \vfill
  350.  
  351. \pspicture(-1,-1)(9,2)\mygrid
  352. \qdisk(0,0){1}
  353. \pswedge[linecolor=gray,fillstyle=solid]{.8}{0}{70}
  354. \pscircle[linewidth=2pt,linestyle=dashed](4,.5){1.5}
  355. \psellipse[fillstyle=crosshatch*,fillcolor=lightgray]
  356.   (7.5,.5)(1,1.5)
  357. \endpspicture
  358.  
  359. \vfill
  360.  
  361. \pspicture(-1,-1)(9,3)\mygrid
  362. \parabola*(0,0)(1,3)
  363. \Cartesian(.01,1)
  364. \parabola{<->}(900,3)(600,-1)
  365. \endpspicture
  366.  
  367. \vfill
  368.  
  369. \eject
  370.  
  371. %% PAGE 2: Color (using \pstVerb) and rotation (using \pstVerb and \pstrotate).
  372.  
  373. \hbox{}\vfill
  374.  
  375. Here is {\gray some gray text }
  376.  
  377. \vskip 1cm
  378. Here is a lightgray line:{\lightgray \hrulefill}
  379.  
  380. \vskip 1cm
  381. And a dark gray blob:
  382.  
  383. {\darkgray \hrule height 1cm width 5 cm }
  384. \vfill
  385.  
  386. \centerline{
  387. \rotateleft{Left} \rotatedown{Down} \rotateright{Right}
  388. \scalebox{2}{Big} \scalebox{1,-1}{Flip}}
  389.  
  390. \vfill
  391.  
  392. \rput[l]{-45}{This runs diagonally down and to the right}
  393. \rput{45}(2in,0){This runs up to the right}
  394.  
  395. \vfill
  396.  
  397. \eject
  398.  
  399. %% PAGE 3: Nodes and node connections. These use \pstVerb, \pstverbscale,
  400. %% and maybe \pstrotate.
  401.  
  402. \hbox{}\vfill
  403.  
  404. $$\matrix{&\rnode{a}{$A$}\cr\noalign{\vskip 2cm}%
  405.   \rnode{b}{$B$}\qquad&\rnode{c}{$C$}\cr}$$
  406.  
  407. \psset{nodesep=3pt}
  408. \ncline{->}{a}{b}\Mput[r]{$f$}
  409. \ncline{->}{a}{c}\Mput[l]{$g$}
  410. \ncline[linestyle=dotted]{->}{b}{c}\Mput[t]{$h$}
  411.  
  412. \vfill
  413.  
  414. \pspicture(0,-1)(7.5,1)
  415. \pnode{a}
  416. \cnodeput(1.5,0){b}{0}
  417. \cnodeput(3,0){c}{1}
  418. \cnodeput(4.5,0){d}{2}
  419. \cnodeput(6,0){e}{3}
  420. \psset{arrows=->,nodesep=0}
  421. \pslabelsep=3pt
  422. \ncline{a}{b}\Mput[b]{start}
  423. \ncline{b}{c}\Mput[t]{a}
  424. \ncline{c}{d}\Mput[b]{b}
  425. \ncline{d}{e}\Mput[b]{b}
  426. \psset{arm=.6,linearc=.4,angleA=0,angleB=90}
  427. \ncangles{b}{b}\Lput[r](1.5){b}
  428. \ncangles{e}{b}\Lput[r](1.5){b}
  429. \psset{angleB=-90}
  430. \ncangles{c}{c}\Lput[r](1.5){a}
  431. \ncangles{d}{c}\Lput[r](1.5){a}
  432. \ncangles{e}{c}\Lput[r](1.5){a}
  433. \endpspicture
  434.  
  435. \vfill
  436.  
  437. \pspicture(0.4,.2)(9.8,6.2)
  438. \rput(2,6){\rnode{G}{\psframebox{GOAT}}}
  439. \rput(2,.5){\rnode{I}{\psframebox{GOAT}}}
  440. \ncangles[angleA=90, angleB=180, nodesepB=3pt, linearc=3pt,
  441.   armA=2cm]{<-**}{I}{G}
  442. \lput*(2.5){Doom}
  443. \Lput[l](.5){Zoom}
  444. {\Polar
  445. \rput{10}(7,30){\rnode{A}{\psframebox{Polar Coor}}}
  446. \rput(5,10){\rnode{B}{\psframebox{Polar Coor}}}}%
  447. \ncline{->}{A}{B}
  448. \mput{\pnode{Y}}
  449. \cnodeput[linewidth=1.5pt](9.5,6){H}{H}
  450. \cnodeput[linewidth=1.5pt](8,1){M}{M}
  451. \newpsobject{myarc}{ncarc}{nodesep=3pt,offset=2pt,arrows=->}
  452. \myarc{H}{M}\mput*{r}
  453. \myarc{M}{H}\mput*{l}\lput(.75){\pnode{Z}}
  454. \nccurve[angleA=135, angleB=135, ncurv=1.8]{Z}{Y}\Lput[b]{:D}{Doom}
  455. \endpspicture
  456.  
  457. \vfill
  458.  
  459. \bye
  460. %%%%%%%%%%%%%%%%%%%%%%%%%%%% END pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%
  461.  
  462.  
  463. %!PS-Adobe-2.0
  464. %%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
  465. %%Title: pst-test.dvi
  466. %%Pages: 3 1
  467. %%BoundingBox: 0 0 612 792
  468. %%EndComments
  469. %%BeginProcSet: tex.pro
  470. /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
  471. load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
  472. isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
  473. Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
  474. round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
  475. N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
  476. /vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
  477. statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
  478. /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
  479. /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
  480. /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2
  481. array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
  482. B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
  483. setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup
  484. length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{
  485. ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B
  486. /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
  487. N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
  488. dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
  489. ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
  490. ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
  491. imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
  492. put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
  493. div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
  494. known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
  495. showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
  496. known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
  497. array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
  498. /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
  499. /rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
  500. 7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
  501. TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
  502. -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
  503. moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
  504. 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
  505. /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
  506. }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
  507. a}B /bos{/SS save N}B /eos{clear SS restore}B end
  508. %%EndProcSet
  509. %%BeginProcSet: pstricks.pro
  510. /tx@Dict 200 dict def tx@Dict begin
  511. /ADict 25 dict def /cm { matrix currentmatrix } def
  512. /slw { setlinewidth } def /clw { currentlinewidth} def
  513. /cp { currentpoint } def /ed { exch def } def
  514. /stp { .996264 dup scale } def
  515. /stv { SDict begin normalscale end .996264 dup scale } def
  516. /Setvmtrx { gsave matrix identmatrix setmatrix stv /vmtrx cm def grestore }
  517. def
  518. /PtoC { 2 copy cos mul 3 1 roll sin mul } def
  519. /Div { dup 0 eq { pop } { div } ifelse } def
  520. /Atan { /atan load stopped { pop pop 0 } if } def
  521. /DotSize { clw mul add mul 2 div /DS ed } def
  522. /SD { 0 360 arc closepath fill } def
  523. /SQ { /r ed r r moveto r r neg lineto r neg r neg lineto r neg r lineto
  524. closepath fill } def
  525. /ST { /y ed /x ed x y moveto x neg y lineto 0 x lineto closepath fill } def
  526. /SP { /r ed gsave 0 r moveto 4 { 72 rotate 0 r lineto } repeat closepath fill
  527. grestore } def
  528. /Plus { /r ed r 0 moveto r neg 0 lineto stroke 0 r moveto 0 r neg lineto
  529. stroke } def
  530. /NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch cvi
  531. def } def
  532. /Dots { NArray n 1 gt { DotB /n n 2 sub def } { /n n 1 sub def } ifelse n {
  533. Dot } repeat n 0 ge { DotA } if } def
  534. /Line { NArray n 0 eq not { n 1 eq { 0 0 4 2 roll /n 2 def } if ArrowB moveto
  535. /n n 2 sub def n { Lineto } repeat cp 4 2 roll ArrowA lineto pop pop } if }
  536. def
  537. /Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } ifelse {
  538. pop } repeat a } def
  539. /CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq and {
  540. pop pop /n n 1 sub def } if } def
  541. /Polygon { NArray n 2 eq { 0 0 6 2 roll /n 3 def } if n 3 lt { n { pop pop }
  542. repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ed /x0 ed /y1 ed /x1
  543. ed x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 moveto /n n 2
  544. sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto Lineto pop pop
  545. closepath } ifelse } def
  546. /Pyth { dup mul exch dup mul add sqrt } def
  547. /DoodCCa { /y ed /x ed 2 copy y sub /dy1 ed x sub /dx1 ed /l1 dx1 dy1 Pyth def
  548. } def
  549. /DoodCC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
  550. def DoodCCa /dx dx0 l1 mul dx1 l0 mul add def /dy dy0 l1 mul dy1 l0 mul add
  551. def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div
  552. 2 div def /x2 x l0 dx mul m mul sub def /y2 y l0 dy mul m mul sub def /dx l1
  553. dx mul m mul neg def /dy l1 dy mul m mul neg def } def
  554. /DoodIC { /a a 2 mul 3 div 45 cos b exp div def DoodCCa /dx 0 def /dy 0 def }
  555. def
  556. /CurveIC { /y ed /x ed /dx 0 def /dy 0 def } def
  557. /CurveCC { /x1 x dx sub def /y1 y dy sub def /dx x 5 index sub 2 div r mul def
  558. /dy y 4 index sub 2 div r mul def /y ed /x ed /x2 x dx add def /y2 y dy add
  559. def } def
  560. /BOC { IC CC x2 y2 x1 y1 ArrowB 2 copy moveto 4 2 roll x y curveto } def
  561. /NC { CC x1 y1 x2 y2 x y curveto } def
  562. /EOC { x dx sub y dy sub 4 2 roll ArrowA 2 copy curveto } def
  563. /BAC { IC CC x y moveto CC x1 y1 cp ArrowB moveto } def
  564. /NAC { x2 y2 x y curveto CC x1 y1 } def
  565. /EAC { x2 y2 x y ArrowA curveto pop pop } def
  566. /OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def n {
  567. NC } repeat EOC } ifelse } def
  568. /AltCurve { NArray n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n {
  569. NAC } repeat EAC } ifelse } def
  570. /ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { CheckClosed }
  571. if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } repeat closepath pop
  572. pop } ifelse } def
  573. /PathLength { flattenpath /z 0 def { /y1 ed /x1 ed /y2 y1 def /x2 x1 def } {
  574. /y ed /x ed /z z y y1 sub dup mul x x1 sub dup mul add sqrt add def /y1 y def
  575. /x1 x def } {} { /y y2 def /x x2 def /z z y y1 sub dup mul x x1 sub dup mul
  576. add sqrt add def /y1 y def /x1 x def } pathforall z } def
  577. /DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
  578. PathLength } ifelse /b ed /x ed /y ed /z y x add def b a .5 sub 2 mul y mul
  579. sub z div round z mul a .5 sub 2 mul y mul add b exch div dup /y exch y mul
  580. def /x exch x mul def y x 2 array astore 1 a sub y mul setdash stroke } def
  581. /DotLine { /b PathLength def /a ed /x ed /y clw def /z y x add def a 0 gt { /b
  582. b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add def } if }
  583. ifelse } ifelse /c b z div round def b c z mul sub c div x add y add 0 exch 2
  584. array astore a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1
  585. setlinecap stroke } def
  586. /LineFill { gsave clip /a ed pathbbox exch /x2 ed a div ceiling exch a div
  587. floor dup a mul 0 exch translate sub 1 add cvi /y ed /x1 ed newpath 2
  588. setlinecap y {x1 0 moveto x2 0 lineto stroke 0 a translate} repeat grestore }
  589. def
  590. /BeginArrow { ADict begin gsave /y1 ed /x1 ed /y2 ed /x2 ed /dy y2 y1 sub def
  591. /dx x2 x1 sub def x1 y1 translate /angle dx neg dy Atan def angle rotate
  592. newpath } def
  593. /EndArrow { angle neg rotate x1 neg y1 neg translate x2 y2 cp grestore end }
  594. def
  595. /Arrow { clw mul add 4 -1 roll mul dup 2 div /w ed mul dup /h ed mul /a ed w
  596. neg h moveto 0 0 lineto w h lineto w neg a neg rlineto gsave fill grestore }
  597. def
  598. /Tbar { clw mul add exch pop mul 2 div /z ed z neg clw 2 div moveto z 2 mul 0
  599. rlineto stroke 0 clw moveto } def
  600. /Bracket { clw mul add 3 -1 roll mul dup clw sub 2 div /z ed mul /a ed z neg a
  601. moveto z neg clw 2 div lineto z clw 2 div lineto z a lineto stroke 0 clw
  602. moveto } def
  603. /RoundBracket { clw mul add 3 -1 roll mul dup 2 div clw 8 div sub /z ed mul
  604. clw 2 div sub /a ed a z lt { z dup mul a dup mul add a 2 mul Div dup a sub z
  605. exch Atan /a ed /z ed } { /a 90 def } ifelse 0 z clw 2 div add z 270 a sub 270
  606. a add arc stroke 0 clw moveto } def
  607. /EndDot { DotSize { /z DS def } { /z 0 def } ifelse /b ed 0 z DS SD b { 0 z DS
  608. clw sub SD } if 0 DS z add clw 4 div sub moveto } def
  609. /Frame { /a .5 clw mul def 3 -1 roll 2 copy gt { exch } if a sub /y2 ed a add
  610. /y1 ed 2 copy gt { exch } if a sub /x2 ed a add /x1 ed x1 x2 eq y1 y2 eq or {
  611. pop pop x1 y1 moveto x2 y2 lineto } { /b y1 y2 sub abs x1 x2 sub abs 2 copy gt
  612. {exch pop} {pop} ifelse 2 div a sub def { b mul /b ed } { dup b lt { /b ed } {
  613. pop } ifelse } ifelse x1 y1 y2 add 2 div moveto x1 y2 x1 x2 add 2 div y2 b
  614. arcto 4 {pop} repeat x2 y2 x2 y1 y2 add 2 div b arcto 4 {pop} repeat x2 y1 x1
  615. x2 add 2 div y1 b arcto 4 {pop} repeat x1 y1 x1 y1 y2 add 2 div b arcto 4
  616. {pop} repeat closepath } ifelse } def
  617. /Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 sub 3
  618. div def /dy y0 y1 sub 3 div def x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
  619. moveto x0 dx sub y0 dy add x1 y1 ArrowA curveto /Points [ x1 y1 x0 y0 x0 2 mul
  620. x1 sub y1 ] def } def
  621. /Grid { /a { (    ) } def /b ed /d ed /n ed /c ed c div /cy ed c div /cx ed cy
  622. div cvi /y ed cx div cvi /x ed cy div cvi /y2 ed cx div cvi /x2 ed cy div cvi
  623. /y1 ed cx div cvi /x1 ed /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1
  624. sub 0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div clw 2 div add def
  625. /Helvetica findfont b scalefont setfont /b b .95 mul clw 2 div add def } if
  626. gsave n 0 gt { 1 setlinecap [ 0 cy n div ] 0 setdash } { 2 setlinecap } ifelse
  627. /c x1 def /i 500 w mul x1 add def /e y cy mul def /f y1 cy mul def /g y2 cy
  628. mul def x1 cx mul 0 translate { newpath 0 e moveto b 0 gt { gsave d c a cvs
  629. dup stringwidth pop /z2 ed w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
  630. {z1} ifelse rmoveto show grestore } if 0 f moveto 0 g lineto stroke cx w mul 0
  631. translate c x2 eq c i eq or {exit} if /c c w add def } loop grestore gsave n 0
  632. gt { 0 setlinecap [ 0 cx n div ] 0 setdash } { 2 setlinecap } ifelse /c y1 def
  633. /i 500 h mul y1 add def /e x cx mul def /f x1 cx mul def /g x2 cx mul def 0 y1
  634. cy mul translate { newpath e 0 moveto b 0 gt { gsave d c a cvs dup stringwidth
  635. pop /z2 ed w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt {z1} {b neg} ifelse
  636. rmoveto show grestore } if f 0 moveto g 0 lineto stroke 0 cy h mul translate c
  637. y2 eq c i eq or {exit} if /c c h add def } loop grestore } def
  638. /ArcArrow { /d ed /@b ed /a ed /TDict 2 dict def TDict begin /stroke { } def
  639. /fill { } def gsave 0 1 0 0 @b grestore end c mul /e ed pop pop pop /f clw 8
  640. div c mul neg def r a e d PtoC r a PtoC @b 4 { pop } repeat a e d f d } def
  641. /ArcPoints { /Points [ r 3 index PtoC 0 0 r 8 index PtoC ] def } def
  642. /Ellipse { /b ed /a ed /y ed /x ed /y0 ed /x0 ed x0 y0 translate /mtrx cm def
  643. x y scale 0 0 1 a b arc mtrx setmatrix /Points [ 0 0 ] def } def
  644. /ScalePoints { /y ed /x ed counttomark dup dup cvi eq not { exch pop } if /m
  645. exch def /n m 2 div cvi def n { y mul m 1 roll x mul m 1 roll } repeat } def
  646. /Scale { cp cp translate 4 2 roll scale neg exch neg exch translate } def
  647. /Rot { cp cp translate 3 -1 roll neg rotate neg exch neg exch translate } def
  648. /Tr { Setvmtrx vmtrx transform translate } def
  649. /ClipBox { /mtrx cm def stv /a ed /b ed /c ed 0 c neg rmoveto a 0 rlineto 0 b
  650. c add rlineto a neg 0 rlineto closepath clip newpath mtrx setmatrix } def
  651. /GetCoor { nodeA begin x y mtrxf transform cm itransform end nodeB begin x y
  652. mtrxf transform cm itransform end } def
  653. /GetAngle { GetCoor 3 -1 roll sub 3 1 roll sub neg Atan  } def
  654. /GetDPos { angle 1 0 mtrxf dtransform cm idtransform exch atan sub dup sin
  655. /@sin ed cos /@cos ed getpos y add exch x add exch mtrxf transform cm
  656. itransform offset angle cos mul add exch offset angle sin mul sub exch } def
  657. /GetPos { nodeA begin /angle angleA def /offset offsetA def /nodesep nodesepA
  658. def GetDPos end /y1 ed /x1 ed nodeB begin /angle angleB def /offset offsetB
  659. def /nodesep nodesepB def GetDPos end /y2 ed /x2 ed } def
  660. /GetDist { x1 x2 sub y1 y2 sub Pyth  } def
  661. /InitPnode { /y ed /x ed /getpos { nodesep @cos mul nodesep @sin mul } def }
  662. def
  663. /InitCnode { /y ed /x ed /getpos { nodesep r add dup @cos mul exch @sin mul }
  664. def } def
  665. /GetRnodePos { @cos 0 gt { /dx r nodesep add def } { /dx l nodesep sub def }
  666. ifelse @sin 0 gt { /dy u nodesep add def } { /dy d nodesep sub def } ifelse dx
  667. @sin mul abs dy @cos mul abs gt { dy @cos mul @sin div dy } { dx dup @sin mul
  668. @cos div } ifelse } def
  669. /InitRnode { /r ed r mul neg /l ed /r r l add def /x l neg def { neg /d ed /u
  670. ed /y 0 def } { neg /y ed y sub /u ed u mul neg /d ed /u u d add def /y y d
  671. sub def } ifelse /getpos { GetRnodePos } def } def
  672. /InitNC { tx@Dict nodeA known tx@Dict nodeB known and dup { /nodeA nodeA load
  673. def /nodeB nodeB load def } if } def
  674. /LineMP { 4 copy 1 t sub mul exch t mul add 3 1 roll 1 t sub mul exch t mul
  675. add exch 6 2 roll sub 3 1 roll sub Atan  } def
  676. /NCLine { GetAngle /angleA ed /angleB angleA 180 add def GetPos x2 y2 x1 y1
  677. ArrowA 4 2 roll ArrowB moveto lineto /lvar [ x2 x1 y2 y1 ] cvx def /lpos {
  678. lvar LineMP } def } def
  679. /NCCoor { /lvar [ GetCoor 3 1 roll 4 1 roll ] cvx def /lpos { lvar LineMP }
  680. def } def
  681. /BezierMidpoint { /y3 ed /x3 ed /y2 ed /x2 ed /y1 ed /x1 ed /y0 ed /x0 ed /t
  682. ed /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 mul cx sub
  683. def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx sub def /ay y3 y0
  684. sub cy sub by sub def ax t 3 exp mul bx t t mul mul add cx t mul add x0 add ay
  685. t 3 exp mul by t t mul mul add cy t mul add y0 add 3 ay t t mul mul mul 2 by t
  686. mul mul add cy add 3 ax t t mul mul mul 2 bx t mul mul add cx add atan } def
  687. /GetArms { /x1a armA angleA cos mul x1 add def /y1a armA angleA sin mul y1 add
  688. def /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul y2 add def }
  689. def
  690. /NCCurve { GetPos GetDist 2 div dup 3 -1 roll mul /armA ed mul /armB ed
  691. GetArms /lvar [ x1a y1a x1 y1 ArrowA 4 2 roll x2a y2a x2 y2 ArrowB ] cvx def
  692. lvar moveto 6 2 roll 4 2 roll curveto /lpos { t lvar BezierMidpoint } def }
  693. def
  694. /AnglesMP { lvar t 3 gt { /t t 3 sub def } { t 2 gt { /t t 2 sub def 10 -2
  695. roll } { t 1 gt { /t t 1 sub def 10 -4 roll } { 10 4 roll } ifelse } ifelse }
  696. ifelse 6 { pop } repeat 3 -1 roll exch LineMP  } def
  697. /NCAngles { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx
  698. transform pop x2a y2a mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [
  699. armA 0 ne { x1 y1 } if x1a y1a x0 y0 x2a y2a armB 0 ne { x2 y2 } if ] Line
  700. /lvar [ x2 y2 x2a y2a x0 y0 x1a y1a x1 y1 ] cvx def /lpos { AnglesMP } def }
  701. def
  702. /NCAngle { GetPos /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul
  703. y2 add def /mtrx angleA matrix rotate def x2a y2a mtrx transform pop x1 y1
  704. mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [ x1 y1 x0 y0 x2a y2a
  705. armB 0 ne { x2 y2 } if ] Line /lvar [ x2 y2 x2 y2 x2a y2a x0 y0 x1 y1 ] cvx
  706. def /lpos { AnglesMP } def } def
  707. /NCBar { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx transform
  708. pop x2a y2a mtrx transform pop sub dup 0 mtrx itransform 3 -1 roll 0 gt { /y2a
  709. exch y2a add def /x2a exch x2a add def } { /y1a exch neg y1a add def /x2a exch
  710. neg x2a add def } ifelse [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
  711. y2 x2a y2a x1a y1a x1 y1 ] cvx def /lpos { lvar AnglesMP } def } def
  712. /NCDiag { GetPos GetArms [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
  713. y2 x2a y2a x1a y1a x1 y1] cvx def /lpos { AnglesMP } def } def
  714. /LLPut { /lmtrx cm def /langle 0 def tx@Dict /lpos known { Setvmtrx lpos
  715. /langle ed vmtrx transform cp 3 -1 roll sub neg 3 1 roll sub exch translate }
  716. { pop } ifelse } def
  717. /LPut { /lmtrx cm def tx@Dict /lpos known { Setvmtrx lpos pop vmtrx transform
  718. cp 3 -1 roll sub neg 3 1 roll sub exch translate } if } def
  719. /BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { cp OLUnit translate
  720. moveto /IfVisible true def } if } { IfVisible { cp OLUnit neg exch neg exch
  721. translate moveto /IfVisible false def } if } ifelse } def
  722. /InitOL { Setvmtrx /OLUnit [ 2890.79999 dup vmtrx dtransform ] cvx def /BOL {
  723. BeginOL } def /IfVisible true def } def
  724. end
  725. %%EndProcSet
  726. %%BeginProcSet: special.pro
  727. TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs
  728. 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP false N /BBcalc false N
  729. /p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{
  730. @scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true
  731. N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X}
  732. B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B
  733. /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type
  734. /dicttype eq{md begin /letter{}N /note{}N /legal{}N /od{txpose 1 0 mtx
  735. defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{
  736. itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2
  737. roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll
  738. itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array
  739. astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{
  740. PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR
  741. pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
  742. get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
  743. not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if
  744. yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270
  745. rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get
  746. ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not
  747. and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip
  748. not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}
  749. ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
  750. TR .96 dup scale neg S neg S TR}if}N /cp{pop pop showpage pm restore}N end}if}
  751. if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{
  752. DVImag dup scale}if}N /psfts{S 65536 div N}N /startTexFig{/psf$SavedState save
  753. N userdict maxlength dict begin /magscale false def normalscale currentpoint
  754. TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
  755. /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx
  756. sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx
  757. psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N
  758. /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{psf$llx psf$lly
  759. psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll
  760. S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end
  761. psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave
  762. normalscale currentpoint TR @SpecialDefaults}N /@setspecial{CLIP{newpath 0 0
  763. moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR
  764. hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg
  765. TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore
  766. clear SpecialSave restore end}N /@defspecial{SDict begin}N /@fedspecial{end}B
  767. /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY X N 1
  768. setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY
  769. moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix
  770. currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix
  771. setmatrix}N end
  772. %%EndProcSet
  773. TeXDict begin 1000 300 300 @start /Fa 6 105 df<00000C0000000C0000001C0000001C
  774. 0000003C0000007C0000005C0000009C0000008E0000010E0000010E0000020E0000040E000004
  775. 0E0000080E0000080E0000100E0000200E00003FFE000040070000400700008007000100070001
  776. 0007000200070002000700060007001E000700FF807FF01C1D7F9C1F>65
  777. D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000F0007000F00070
  778. 01E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C003C0038003C003
  779. 8003C0038003C0038003C0070007800700070007000E0007001C000E007800FFFFC0001C1C7E9B
  780. 1F>I<0001F808000E061800380138006000F001C0007003800070070000300F0000200E000020
  781. 1C0000203C0000203C000000780000007800000078000000F0000000F0000000F0000000F00000
  782. 00F0000100F0000100F0000100700002007000020030000400380008001C0010000E0060000701
  783. 800000FE00001D1E7E9C1E>I<0001E0000630000E78000CF0001C60001C00001C00001C00003C
  784. 0000380000380003FFC000380000380000700000700000700000700000700000E00000E00000E0
  785. 0000E00000E00001C00001C00001C00001C00001C000018000038000038000630000F30000F600
  786. 00E4000078000015257E9C14>102 D<007180018B800307800607800E07000C07001C07001C07
  787. 00380E00380E00380E00380E00381C00381C00381C00183C0008F8000738000038000038000070
  788. 00607000F06000F0E000E180007E0000111A7F9114>I<0FC00001C00001C00003800003800003
  789. 80000380000700000700000700000700000E3E000EC3000F03800E03801E03801C03801C03801C
  790. 0380380700380700380700380E00700E20700E20701C20701C40E00C80600700131D7E9C18>I
  791. E /Fb 40 122 df<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E0
  792. 07E007E007E007E007E00760066006700E300C300C18180C3007E0101D7E9B15>48
  793. D<030007003F00C700070007000700070007000700070007000700070007000700070007000700
  794. 07000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80F
  795. F807F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023FFE7F
  796. FEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C00180030006007E000
  797. 30001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<60F0F0
  798. 600000000000000000000060F0F06004127C910C>58 D<000600000006000000060000000F0000
  799. 000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041E0
  800. 000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C000600
  801. 3E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F0038
  802. 0F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C
  803. 0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E
  804. 9B1D>I<001F808000E0618001801980070007800E0003801C0003801C00018038000180780000
  805. 807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000
  806. 0000700000807800008078000080380000801C0001001C0001000E000200070004000180080000
  807. E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E000F0007000F0007000F
  808. 0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E0
  809. 0F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F0007000F000E000F001C
  810. 000F007000FFFFC0001B1C7E9B20>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00
  811. 040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00
  812. 000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>70 D<001F808000E0618001
  813. 801980070007800E0003801C0003801C00018038000180780000807800008070000080F0000000
  814. F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007
  815. 80380007801C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>
  816. I<FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00
  817. 3C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F
  818. 003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B
  819. 1F>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
  820. 0F00000F00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F0030
  821. 0F00700F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F8000BC00178000BC0
  822. 0178000BC001780009E002780009E002780008F004780008F004780008F0047800087808780008
  823. 780878000878087800083C107800083C107800083C107800081E207800081E207800081E207800
  824. 080F407800080F40780008078078000807807800080780780008030078001C03007800FF8307FF
  825. 80211C7E9B26>I<003F800000E0E0000380380007001C000E000E001C0007003C000780380003
  826. 80780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000
  827. 01E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C0003
  828. 80380000E0E000003F80001B1E7E9C20>79 D<FFFF800F00E00F00780F003C0F001C0F001E0F00
  829. 1E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00
  830. 000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0
  831. 000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F00
  832. 78000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F
  833. 0078000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82
  834. D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F
  835. 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
  836. 0F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B
  837. 1E>84 D<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C
  838. 0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00203C00
  839. 607800E0F803E0FFFFE0141C7E9B19>90 D<1FC000307000783800781C00301C00001C00001C00
  840. 01FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>
  841. 97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C00
  842. 1D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C0
  843. 1C01801E030019060010F800131D7F9C17>I<003F000007000007000007000007000007000007
  844. 0000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700E007
  845. 00E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>100
  846. D<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F12
  847. 7F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E00
  848. 0E000E000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38
  849. C01C3880181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800
  850. 001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C
  851. 7F9215>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
  852. 7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  853. 03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000
  854. 00000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF
  855. 80091D7F9C0C>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
  856. 00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C
  857. 3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>107 D<FC001C001C001C001C001C001C
  858. 001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
  859. 1C001C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C
  860. 01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
  861. 1C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D
  862. 03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  863. 03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0
  864. E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C
  865. 001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01
  866. C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A
  867. 7F9117>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00
  868. FFC00D127F9110>114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018
  869. C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C00
  870. 1C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C
  871. 03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  872. 07800C07800E1B8003E3F014127F9117>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E
  873. 0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C07000
  874. 01C0700001803000008020001B127F911E>119 D<7F8FF00F03800F030007020003840001C800
  875. 01D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF8151280
  876. 9116>I<FF07E03C03801C01001C01000E02000E020007040007040007040003880003880003D8
  877. 0001D00001D00000E00000E00000E000004000004000008000008000F08000F10000F300006600
  878. 003C0000131A7F9116>I E end
  879. %%EndProlog
  880. %%BeginSetup
  881. %%Feature: *Resolution 300
  882. TeXDict begin 
  883. %%EndSetup
  884. %%Page: 1 1
  885. bop 201 641 a @beginspecial @setspecial
  886.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  887. -28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
  888. 1 10 { 0. setgray } 7.0 Grid grestore end 
  889. @endspecial @beginspecial
  890. @setspecial
  891.  tx@Dict begin stp 1.5 slw 0 setgray  /ArrowA { BeginArrow {false}
  892. true 1. 1.0 3. EndDot  EndArrow } def /ArrowB { BeginArrow 1. 0.4 1.0
  893. 4. RoundBracket  EndArrow } def [ 71.13185 42.67911  ] /Lineto { lineto
  894. } def Line  gsave 0 setgray 3.0  -1 -2 add DotLine  grestore end 
  895. @endspecial @beginspecial @setspecial
  896.  tx@Dict begin stp 2.0 slw 0.5 setgray  /ArrowA { BeginArrow 1. 0.4
  897. 1.0 4. Tbar  EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
  898. Arrow  EndArrow } def [ 85.35823 -14.22636  156.49008 51.21501  199.1692
  899. -28.45274  ] /r 14.22636 def /Lineto { Arcto } def Line  gsave 0.5
  900. setgray 5.0 3.0  -1 -2 add DashLine  grestore end 
  901. @endspecial
  902. @beginspecial @setspecial
  903.  tx@Dict begin stp 1.0 slw 0 setgray 256.07469 -28.45274 moveto 227.62195
  904. 56.90549 lineto 0 setlinecap stroke end 
  905. @endspecial 717 x @beginspecial
  906. @setspecial
  907.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  908. -28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
  909. 1 10 { 0. setgray } 7.0 Grid grestore end 
  910. @endspecial @beginspecial @setspecial
  911.  tx@Dict begin stp 0 setgray 0.0 0.0 28.45274 SD end 
  912. @endspecial
  913. @beginspecial @setspecial
  914.  tx@Dict begin stp 1.0 slw 0.5 setgray  0.0 0.0 translate newpath 0
  915. 0 newpath moveto /r 22.76227 clw 2 div sub def 0 0 r 0. 70. arc closepath
  916. gsave 1. setgray  fill grestore gsave 0.5 setgray 0 setlinecap stroke
  917. grestore end 
  918. @endspecial @beginspecial @setspecial
  919.  tx@Dict begin stp 2.0 slw 0 setgray  113.81097 14.22636 42.67911 clw
  920. 2 div sub 0 360 arc closepath  gsave 0 setgray 5.0 3.0  4 DashLine
  921.  grestore end
  922.  
  923. @endspecial @beginspecial @setspecial
  924.  tx@Dict begin stp 1.0 slw 0 setgray  213.39557 14.22636 28.45274 42.67911
  925. 0 360 Ellipse  gsave 0.75 setgray  fill grestore gsave 45. rotate 0.8
  926.  slw 0 setgray 5.0  LineFill grestore gsave 90 rotate gsave 45. rotate
  927. 0.8  slw 0 setgray 5.0  LineFill grestore grestore gsave 0 setgray
  928. 0 setlinecap stroke grestore end 
  929. @endspecial 835 x
  930. @beginspecial @setspecial
  931.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  932. -28.45274 256.07469 85.35823 -28.45274 -28.45274 28.45274 28.45274
  933. 1 10 { 0. setgray } 7.0 Grid grestore end 
  934. @endspecial @beginspecial @setspecial
  935.  tx@Dict begin stp 0.0 slw 0 setgray  /ArrowA { } def  /ArrowB { }
  936. def  0.0 0.0 28.45274 85.35823 Parab  gsave 0 setgray  fill grestore
  937. gsave 0 setgray  grestore end
  938.  
  939. @endspecial @beginspecial @setspecial
  940.  tx@Dict begin stp 1.0 slw 0 setgray  /ArrowA { BeginArrow 1. 0.3 1.4
  941. 1.0 3.2 Arrow  EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
  942. Arrow  EndArrow } def 255.92651 85.35823 170.61768 -28.45274 Parab
  943.  gsave 0 setgray 0 setlinecap stroke grestore end 
  944. @endspecial 965 2770
  945. a Fb(1)p eop
  946. %%Page: 2 2
  947. bop 83 583 a Fb(Here)15 b(is)f
  948.  0.5 setgray
  949. 223 583 a Fb(some)f(gra)o(y)g(text)i
  950.  0 setgray
  951. 83 751 a Fb(Here)g(is)f(a)f(ligh)o(tgra)o(y)g
  952. (line:)p  0.75 setgray
  953. 509 751 1443 2 v 1952 751 a
  954.  0 setgray
  955. 83 919 a Fb(And)h(a)g(dark)g(gra)o(y)f(blob:)0 927 y
  956.  0.25 setgray
  957. 0 1045 591 119 v 0 1045 a
  958.  0 setgray
  959. 786 1637 a
  960.  tx@Dict begin  90 Rot  end
  961. 786 1637 a Fb(Left)-73 b
  962.  tx@Dict begin  -90 Rot  end
  963. 904 1637 a
  964.  tx@Dict begin  180 Rot  end
  965. 904 1666 a Fb(Do)o(wn)904 1637 y
  966.  tx@Dict begin  -180 Rot  end
  967. 955 1637 a
  968.  tx@Dict begin  -90 Rot  end
  969. 854 1666 a Fb(Righ)o(t)955 1637 y
  970.  tx@Dict begin  90 Rot  end
  971. 982 1637 a
  972.  tx@Dict begin  2. 2. Scale  end
  973. 982 1637 a Fb(Big)-62 b
  974.  tx@Dict begin  1 2. div 1 2. div Scale  end
  975. 1134 1637 a
  976.  tx@Dict begin  1. -1. Scale  end
  977. 1134 1637 a Fb(Flip)-74 b
  978.  tx@Dict begin  1 1. div 1 -1. div Scale  end
  979. 83 2179 a
  980.  tx@Dict begin  -45. Rot  end
  981. 83 2189 a Fb(This)14 b(runs)g(diagonally)e(do)o(wn)h(and)h(to)g(the)g(righ)o
  982. (t)83 2179 y
  983.  tx@Dict begin  -45. neg Rot  end
  984. 683 2179 a
  985.  tx@Dict begin  45. Rot  end
  986. 455 2189 a Fb(This)g(runs)g(up)g(to)g(the)h(righ)o(t)683 2179
  987. y
  988.  tx@Dict begin  45. neg Rot  end
  989. 965 2770 a Fb(2)p eop
  990. %%Page: 3 3
  991. bop 1038 379 a
  992.  
  993.  tx@Dict begin gsave stv cp translate /node@a 18 dict def node@a begin /mtrxf
  994. cm def .5 6.83331 0.0 false .5 7.50002 InitRnode end grestore end
  995. 1038 379 a Fa(A)880 665 y
  996.  
  997.  tx@Dict begin gsave stv cp translate /node@b 18 dict def node@b begin /mtrxf
  998. cm def .5 6.83331 0.0 false .5 8.0868 InitRnode end grestore end
  999. 880 665 a Fa(B)127 b
  1000.  
  1001.  tx@Dict begin gsave stv cp translate /node@c 18 dict def node@c begin /mtrxf
  1002. cm def .5 6.83331 0.0 false .5 7.86249 InitRnode end grestore end
  1003. 1038 665 a Fa(C)0 708 y
  1004.  
  1005.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1006. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@b def
  1007. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1008. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1009. grestore end
  1010. 0 708 a
  1011.  tx@Dict begin  /t 0.5 def LLPut  end
  1012. -46 719 a Fa(f)0 708 y
  1013.  tx@Dict begin  lmtrx setmatrix end
  1014. 0 708 a
  1015.  
  1016.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1017. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@c def
  1018. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1019. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1020. grestore end
  1021. 0 708 a
  1022.  tx@Dict begin  /t 0.5 def LLPut  end
  1023. 21 713 a Fa(g)0 708 y
  1024.  tx@Dict begin  lmtrx setmatrix end
  1025. 0 708 a
  1026.  
  1027.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1028. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@b def /nodeB /node@c def
  1029. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1030. EndArrow } def NCLine gsave 0 setgray 3.0 0 -2 add DotLine grestore } if
  1031. grestore end
  1032. 0 708 a
  1033.  tx@Dict begin  /t 0.5 def LLPut  end
  1034. -12 758 a Fa(h)0 708 y
  1035.  tx@Dict begin  lmtrx setmatrix end
  1036. 83 1083 a
  1037.  
  1038.  tx@Dict begin gsave stv cp translate /node@a 10 dict def node@a begin /mtrxf
  1039. cm def 0.0 0.0 InitPnode end grestore end
  1040. 260 1083 a
  1041.  
  1042.  tx@Dict begin gsave stv cp translate /node@b 12 dict def node@b begin /mtrxf
  1043. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1044. InitCnode end grestore end
  1045. 260 1083 a @beginspecial @setspecial
  1046.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1047. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1048. 0 setlinecap stroke grestore end 
  1049. @endspecial 250 1096
  1050. a Fb(0)437 1083 y
  1051.  
  1052.  tx@Dict begin gsave stv cp translate /node@c 12 dict def node@c begin /mtrxf
  1053. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1054. InitCnode end grestore end
  1055. 437 1083 a @beginspecial @setspecial
  1056.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1057. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1058. 0 setlinecap stroke grestore end 
  1059. @endspecial 427 1096
  1060. a Fb(1)615 1083 y
  1061.  
  1062.  tx@Dict begin gsave stv cp translate /node@d 12 dict def node@d begin /mtrxf
  1063. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1064. InitCnode end grestore end
  1065. 615 1083 a @beginspecial @setspecial
  1066.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1067. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1068. 0 setlinecap stroke grestore end 
  1069. @endspecial 605 1096
  1070. a Fb(2)792 1083 y
  1071.  
  1072.  tx@Dict begin gsave stv cp translate /node@e 12 dict def node@e begin /mtrxf
  1073. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1074. InitCnode end grestore end
  1075. 792 1083 a @beginspecial @setspecial
  1076.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1077. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1078. 0 setlinecap stroke grestore end 
  1079. @endspecial 782 1096
  1080. a Fb(3)83 1083 y
  1081.  
  1082.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1083. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@a def /nodeB /node@b def
  1084. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1085. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1086. grestore end
  1087. 83 1083 a
  1088.  tx@Dict begin  /t 0.5 def LLPut  end
  1089. 40 1070 a Fb(start)83 1083 y
  1090.  tx@Dict begin  lmtrx setmatrix end
  1091. 83 1083 a
  1092.  
  1093.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1094. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@c def
  1095. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1096. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1097. grestore end
  1098. 83 1083 a
  1099.  tx@Dict begin  /t 0.5 def LLPut  end
  1100. 73 1113 a Fb(a)83 1083 y
  1101.  tx@Dict begin  lmtrx setmatrix end
  1102. 83 1083 a
  1103.  
  1104.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1105. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@d def
  1106. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1107. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1108. grestore end
  1109. 83 1083 a
  1110.  tx@Dict begin  /t 0.5 def LLPut  end
  1111. 71 1070 a Fb(b)83 1083 y
  1112.  tx@Dict begin  lmtrx setmatrix end
  1113. 83 1083 a
  1114.  
  1115.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1116. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@e def
  1117. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1118. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1119. grestore end
  1120. 83 1083 a
  1121.  tx@Dict begin  /t 0.5 def LLPut  end
  1122. 71 1070 a Fb(b)83 1083 y
  1123.  tx@Dict begin  lmtrx setmatrix end
  1124. 83 1083 a
  1125.  
  1126.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1127. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@b def
  1128. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1129. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1130. 90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1131. setlinecap stroke grestore } if grestore end
  1132. 83 1083 a
  1133.  tx@Dict begin  /t 1.5 def LLPut  end
  1134. 47 1097 a Fb(b)83 1083 y
  1135.  tx@Dict begin  lmtrx setmatrix end
  1136. 83 1083 a
  1137.  
  1138.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1139. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@b def
  1140. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1141. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1142. 90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1143. setlinecap stroke grestore } if grestore end
  1144. 83 1083 a
  1145.  tx@Dict begin  /t 1.5 def LLPut  end
  1146. 47 1097 a Fb(b)83 1083 y
  1147.  tx@Dict begin  lmtrx setmatrix end
  1148. 83 1083 a
  1149.  
  1150.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1151. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@c def
  1152. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1153. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1154. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1155. setlinecap stroke grestore } if grestore end
  1156. 83 1083 a
  1157.  tx@Dict begin  /t 1.5 def LLPut  end
  1158. 50 1092 a Fb(a)83 1083 y
  1159.  tx@Dict begin  lmtrx setmatrix end
  1160. 83 1083 a
  1161.  
  1162.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1163. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@c def
  1164. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1165. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1166. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1167. setlinecap stroke grestore } if grestore end
  1168. 83 1083 a
  1169.  tx@Dict begin  /t 1.5 def LLPut  end
  1170. 50 1092 a Fb(a)83 1083 y
  1171.  tx@Dict begin  lmtrx setmatrix end
  1172. 83 1083 a
  1173.  
  1174.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1175. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@c def
  1176. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1177. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1178. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1179. setlinecap stroke grestore } if grestore end
  1180. 83 1083 a
  1181.  tx@Dict begin  /t 1.5 def LLPut  end
  1182. 50 1092 a Fb(a)83 1083 y
  1183.  tx@Dict begin  lmtrx setmatrix end
  1184. 195 1495 a
  1185.  
  1186.  tx@Dict begin gsave stv cp translate /node@G 18 dict def node@G begin /mtrxf
  1187. cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
  1188. 195 1512 a @beginspecial @setspecial
  1189.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 37.23615 14.83331
  1190. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1191. @endspecial 211 1495
  1192. a Fb(GO)o(A)m(T)195 2145 y
  1193.  
  1194.  tx@Dict begin gsave stv cp translate /node@I 18 dict def node@I begin /mtrxf
  1195. cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
  1196. 195 2161 a @beginspecial @setspecial
  1197.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 37.23615 14.83331
  1198. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1199. @endspecial 211 2145
  1200. a Fb(GO)o(A)m(T)36 2189 y
  1201.  
  1202.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1203. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@I def /nodeB /node@G def
  1204. InitNC { /ArrowA { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow EndArrow } def /ArrowB
  1205. { BeginArrow {false} true 1. 1.0 3. EndDot EndArrow } def /r 3.0 def /Lineto {
  1206. Arcto } def /angleA 90. def /angleB 180. def /armA 56.9055 def /armB 10.0 def
  1207. NCAngles gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1208. 36 2189 a
  1209.  tx@Dict begin  /t 2.5 def LLPut  end
  1210. -35 2220 a @beginspecial @setspecial
  1211.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 34.25008 14.83331
  1212. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1213. @endspecial -19 2204
  1214. a Fb(Do)q(om)36 2189 y
  1215.  tx@Dict begin  lmtrx setmatrix end
  1216. 36 2189 a
  1217.  tx@Dict begin  /t 0.5 def LLPut  end
  1218. 57 2204 a Fb(Zo)q(om)36 2189 y
  1219.  tx@Dict begin  lmtrx setmatrix end
  1220. 36 2189 a
  1221.  tx@Dict begin  199.1692 30. PtoC Tr  end
  1222. 36 2189 a
  1223.  tx@Dict begin  10. Rot  end
  1224. -80 2204 a
  1225.  
  1226.  tx@Dict begin gsave stv cp translate /node@A 18 dict def node@A begin /mtrxf
  1227. cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
  1228. -80 2220 a @beginspecial @setspecial
  1229.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 55.97232 14.94444
  1230. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1231. @endspecial -64 2204
  1232. a Fb(P)o(olar)13 b(Co)q(or)36 2189 y
  1233.  tx@Dict begin  10. neg Rot  end
  1234. 36 2189 a
  1235.  tx@Dict begin  199.1692 30. PtoC neg exch neg exch Tr  end
  1236. 36 2189 a
  1237.  tx@Dict begin  142.26372 10. PtoC Tr  end
  1238. -80 2204 a
  1239.  
  1240.  tx@Dict begin gsave stv cp translate /node@B 18 dict def node@B begin /mtrxf
  1241. cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
  1242. -80 2220 a @beginspecial @setspecial
  1243.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 55.97232 14.94444
  1244. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1245. @endspecial -64 2204
  1246. a Fb(P)o(olar)g(Co)q(or)36 2189 y
  1247.  tx@Dict begin  142.26372 10. PtoC neg exch neg exch Tr  end
  1248. 36 2189 a
  1249.  
  1250.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1251. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@A def /nodeB /node@B def
  1252. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1253. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1254. grestore end
  1255. 36 2189 a
  1256.  tx@Dict begin  /t 0.5 def LLPut  end
  1257. 36 2189 a
  1258.  
  1259.  tx@Dict begin gsave stv cp translate /node@Y 10 dict def node@Y begin /mtrxf
  1260. cm def 0.0 0.0 InitPnode end grestore end
  1261. 36 2189 a
  1262.  tx@Dict begin  lmtrx setmatrix end
  1263. 1158 1481 a
  1264.  
  1265.  tx@Dict begin gsave stv cp translate /node@H 12 dict def node@H begin /mtrxf
  1266. cm def /r 7.50002 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
  1267. InitCnode end grestore end
  1268. 1158 1481 a @beginspecial @setspecial
  1269.  tx@Dict begin stp 1.5 slw 0 setgray  0 0 7.50002 2 div 6.83331 0.0
  1270. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1271. 0 setlinecap stroke grestore end 
  1272. @endspecial 1142 1495
  1273. a Fb(H)981 2071 y
  1274.  
  1275.  tx@Dict begin gsave stv cp translate /node@M 12 dict def node@M begin /mtrxf
  1276. cm def /r 9.16669 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
  1277. InitCnode end grestore end
  1278. 981 2071 a @beginspecial @setspecial
  1279.  tx@Dict begin stp 1.5 slw 0 setgray  0 0 9.16669 2 div 6.83331 0.0
  1280. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1281. 0 setlinecap stroke grestore end 
  1282. @endspecial 962 2085
  1283. a Fb(M)36 2189 y
  1284.  
  1285.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
  1286. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@H def /nodeB /node@M def
  1287. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1288. EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
  1289. 0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1290. 36 2189 a
  1291.  tx@Dict begin  /t 0.5 def LLPut  end
  1292. 11 2215 a @beginspecial @setspecial
  1293.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 11.91667 12.30554
  1294. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1295. @endspecial 28 2198 a
  1296. Fb(r)36 2189 y
  1297.  tx@Dict begin  lmtrx setmatrix end
  1298. 36 2189 a
  1299.  
  1300.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
  1301. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@M def /nodeB /node@H def
  1302. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1303. EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
  1304. 0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1305. 36 2189 a
  1306.  tx@Dict begin  /t 0.5 def LLPut  end
  1307. 14 2220 a @beginspecial @setspecial
  1308.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 10.77779 14.94444
  1309. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1310. @endspecial 30 2204 a
  1311. Fb(l)36 2189 y
  1312.  tx@Dict begin  lmtrx setmatrix end
  1313. 36 2189 a
  1314.  tx@Dict begin  /t 0.75 def LLPut  end
  1315. 36 2189 a
  1316.  
  1317.  tx@Dict begin gsave stv cp translate /node@Z 10 dict def node@Z begin /mtrxf
  1318. cm def 0.0 0.0 InitPnode end grestore end
  1319. 36 2189 a
  1320.  tx@Dict begin  lmtrx setmatrix end
  1321. 36 2189 a
  1322.  
  1323.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1324. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@Z def /nodeB /node@Y def
  1325. InitNC { /ArrowA { } def /ArrowB { } def /angleA 135. def /angleB 135. def 1.8
  1326. 1.8 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1327. 36 2189 a
  1328.  tx@Dict begin  /t 0.5 def LLPut  end
  1329. 36 2189 a
  1330.  tx@Dict begin  langle 180 add Rot  end
  1331. -19 2169 a Fb(Do)q(om)36 2189 y
  1332.  tx@Dict begin  langle 180 add neg Rot  end
  1333. 36 2189 a
  1334.  tx@Dict begin  lmtrx setmatrix end
  1335. 965 2770 a Fb(3)p eop
  1336. %%Trailer
  1337. end
  1338. userdict /end-hook known{end-hook}if
  1339. %%EOF
  1340. -- 
  1341. Timothy Van Zandt   (609)258-4050  tvz@Princeton.EDU (NeXTMail)
  1342. Dept. of Economics,  Princeton University,  Princeton, NJ 08544
  1343.