home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / chip-cd_2000_05.zip / 05 / software / grafika / igrafx / data1.cab / FilterPsiImport / IMPSI2.FLT / PSIRC / SYSTEM < prev   
Text File  |  1999-02-19  |  23KB  |  547 lines

  1. %**********************************************************************/
  2. %*                                                                    */
  3. %*  Copyright (C) 1993-1997                                           */
  4. %*  by Liberty Systems, Redlands, CA.  All rights reserved.           */
  5. %*                                                                    */
  6. %*  This program is the exclusive property of Liberty Systems and is  */
  7. %*  issued in strict confidence under a prearranged license agreement */
  8. %*  and is not to be disclosed in any manner to persons outside the   */
  9. %*  licensed organization and shall not be reproduced or disseminated */
  10. %*  in whole or part to anyone outside the licensed organization      */
  11. %*  without the prior written approval of Liberty Systems unless      */
  12. %*  otherwise provided for by such license agreement.                 */
  13. %*                                                                    */
  14. %*  This program may be used and copied only in accordance with the   */
  15. %*  terms of said license agreement and with the inclusion of the     */
  16. %*  above copyright notice.  No title to and ownership of the         */
  17. %*  software is hereby transfered.  The information in this software  */
  18. %*  is subject to change without notice and should not be construed   */
  19. %*  as a commitment by Liberty Systems.                               */
  20. %*                                                                    */
  21. %**********************************************************************/
  22.  
  23. false limitaccess
  24. /@bd { bind def } bind def
  25.  
  26. %
  27. %  Initialize the error handling
  28. %
  29.  
  30. false setglobal
  31. /$error <<
  32.    /newerror false
  33.    /recordstacks true
  34.    /binary false
  35. >> def
  36.  
  37. /@err_name 20 string def
  38. /@ostack 10 array def
  39. /@estack 250 array def
  40. /@dstack 20 array def
  41. /@err_file (%stderr) (w) file def
  42. true setglobal
  43.  
  44. /@std_ehandler {
  45.    currentfile resetfile
  46.    false setglobal
  47.    $error begin
  48.    /newerror true def
  49.    /errorname exch def
  50.    /command exch def
  51.    @ostack length count lt {@ostack length}{count}ifelse
  52.      @ostack exch 0 exch getinterval astore /ostack exch def
  53.      ostack aload pop
  54.    @estack execstack /estack exch def
  55.    @dstack dictstack /dstack exch def
  56.    end stop } @bd
  57.  
  58. false setglobal
  59. /errordict <<
  60.    /handleerror {
  61.       signalerror
  62.       @err_file (Error Type:     ) writestring
  63.       @err_file $error /errorname get @err_name cvs writestring
  64.       @err_file (\nCurrent Object: ) writestring
  65.       $error /command get =
  66. %     @err_file (Operand Stack: ) writestring
  67. %     $error /ostack get ==
  68. %     @err_file (Execution Stack: ) writestring
  69. %     $error /estack get ==
  70. %     @err_file (Dictionary Stack: ) writestring
  71. %     $error /dstack get ==
  72.       $error /newerror false put }
  73.    /configurationerror { /configurationerror @std_ehandler }
  74.    /dictfull { /dictfull @std_ehandler }
  75.    /dictstackoverflow { /dictstackoverflow @std_ehandler }
  76.    /dictstackunderflow { /dictstackunderflow @std_ehandler }
  77.    /execstackoverflow { /execstackoverflow @std_ehandler }
  78.    /interrupt { /interrupt @std_ehandler }
  79.    /invalidaccess { /invalidaccess @std_ehandler }
  80.    /invalidcontext { /invalidcontext @std_ehandler }
  81.    /invalidexit { /invalidcontext @std_ehandler }
  82.    /invalidfileaccess { /invalidfileaccess @std_ehandler }
  83.    /invalidfont { /invalidfont @std_ehandler }
  84.    /invalidid { /invalidid @std_ehandler }
  85.    /invalidrestore { /invalidrestore @std_ehandler }
  86.    /ioerror { /ioerror @std_ehandler }
  87.    /limitcheck { /limitcheck @std_ehandler }
  88.    /nocurrentpoint { /nocurrentpoint @std_ehandler }
  89.    /rangecheck { /rangecheck @std_ehandler }
  90.    /stackoverflow { /stackoverflow @std_ehandler }
  91.    /stackunderflow { /stackunderflow @std_ehandler }
  92.    /syntaxerror { /syntaxerror @std_ehandler }
  93.    /timeout { /timeout @std_ehandler }
  94.    /typecheck { /typecheck @std_ehandler }
  95.    /undefined { /undefined @std_ehandler }
  96.    /undefinedfilename { /undefinedfilename @std_ehandler }
  97.    /undefinedresource { /undefinedresource @std_ehandler }
  98.    /undefinedresult { /undefinedresult @std_ehandler }
  99.    /unmatchedmark { /unmatchedmark @std_ehandler }
  100.    /unregistered { /unregistered @std_ehandler }
  101.    /VMerror { /VMerror @std_ehandler }
  102.    /sysmem { /sysmem @std_ehandler } >> def
  103. true setglobal
  104.  
  105. %
  106. %  Initialize encodings
  107. %
  108.  
  109. /StandardEncoding [/.notdef 31{dup}repeat/space/exclam 
  110.    /quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft 
  111.    /parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three
  112.    /four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
  113.    /question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
  114.    /bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b 
  115.    /c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright 
  116.    /asciitilde/.notdef 33{dup}repeat/exclamdown/cent/sterling/fraction/yen
  117.    /florin/section/currency/quotesingle/quotedblleft/guillemotleft
  118.    /guilsinglleft/guilsinglright/fi/fl/.notdef/endash/dagger/daggerdbl
  119.    /periodcentered/.notdef/paragraph/bullet/quotesinglbase/quotedblbase
  120.    /quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
  121.    /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis
  122.    /.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/emdash/.notdef
  123.    15{dup}repeat/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
  124.    /Lslash/Oslash/OE/ordmasculine/.notdef 4{dup}repeat/ae/.notdef/.notdef
  125.    /.notdef/dotlessi/.notdef/.notdef/lslash/oslash/oe/germandbls/.notdef
  126.    /.notdef/.notdef/.notdef] def
  127. /ISOLatin1Encoding [ StandardEncoding 0 128 getinterval aload pop
  128.    83 -1 roll pop /minus 83 1 roll
  129.    /.notdef 15{dup}repeat/dotlessi/grave/acute/circumflex/tilde/macron
  130.    /breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
  131.    /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
  132.    /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen
  133.    /registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
  134.    /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright
  135.    /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex
  136.    /Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis
  137.    /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex
  138.    /Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
  139.    /Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring
  140.    /ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute
  141.    /icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde
  142.    /odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute
  143.    /thorn/ydieresis] def
  144. /SymbolEncoding [ StandardEncoding 0 32 getinterval aload pop
  145.    /space/exclam/universal/numbersign/existential/percent/ampersand/suchthat
  146.    /parenleft/parenright/asteriskmath/plus/comma/minus/period/slash/zero/one
  147.    /two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal
  148.    /greater/question/congruent/Alpha/Beta/Chi/Delta/Epsilon/Phi/Gamma/Eta
  149.    /Iota/theta1/Kappa/Lambda/Mu/Nu/Omicron/Pi/Theta/Rho/Sigma/Tau/Upsilon
  150.    /sigma1/Omega/Xi/Psi/Zeta/bracketleft/therefore/bracketright
  151.    /perpendicular/underscore/radicalex/alpha/beta/chi/delta/epsilon/phi/gamma
  152.    /eta/iota/phi1/kappa/lambda/mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon
  153.    /omega1/omega/xi/psi/zeta/braceleft/bar/braceright/similar/.notdef
  154.    33{dup}repeat/Upsilon1/minute/lessequal/fraction/infinity/florin/club
  155.    /diamond/heart/spade/arrowboth/arrowleft/arrowup/arrowright/arrowdown
  156.    /degree/plusminus/second/greaterequal/multiply/proportional/partialdiff
  157.    /bullet/divide/notequal/equivalence/approxequal/ellipsis/arrowvertex
  158.    /arrowhorizex/carriagereturn/aleph/Ifraktur/Rfraktur/weierstrass
  159.    /circlemultiply/circleplus/emptyset/intersection/union/propersuperset
  160.    /reflexsuperset/notsubset/propersubset/reflexsubset/element/notelement
  161.    /angle/gradient/registerserif/copyrightserif/trademarkserif/product
  162.    /radical/dotmath/logicalnot/logicaland/logicalor/arrowdblboth
  163.    /arrowdblleft/arrowdblup/arrowdblright/arrowdbldown/lozenge/angleleft
  164.    /registersans/copyrightsans/trademarksans/summation/parenlefttp
  165.    /parenleftex/parenleftbt/bracketlefttp/bracketleftex/bracketleftbt
  166.    /bracelefttp/braceleftmid/braceleftbt/braceex/.notdef/angleright/integral
  167.    /integraltp/integralex/integralbt/parenrighttp/parenrightex/parenrightbt
  168.    /bracketrighttp/bracketrightex/bracketrightbt/bracerighttp/bracerightmid
  169.    /bracerightbt/.notdef] def
  170.  
  171. %
  172. %  Initialize the resources
  173. %
  174.  
  175. /@reschktyp{dup type .rd/InstanceType known
  176.   {.rd/InstanceType get ne{/defineresouece errordict/typecheck get exec}if}{pop}ifelse}@bd
  177. /@defres{@reschktyp .rd/Instances get 3 1 roll dup 4 1 roll put}@bd
  178. /@udefres { .rd/Instances get exch undef } @bd
  179. /@fndres { .rd/Instances get exch get } @bd
  180. /@resstt { .rd/Instances get exch known dup { 0 -1 true } if } @bd
  181. /@resfor { pop/.prc exch def/.tmp exch def .rd/Instances get
  182.           {pop .tmp wild{.prc}{pop}ifelse}forall} @bd
  183. /@generic { /DefineResource {@defres} /UndefineResource {@udefres}
  184.        /FindResource {@fndres} /ResourceStatus {@resstt}
  185.        /ResourceForAll {@resfor} /ResourceFileName {@resnam}
  186.            /Category } @bd
  187. /@fnt_defres { dup /@name 3 index put dup /FID 1 put readonly
  188.    @reschktyp systemdict/FontDirectory get 3 1 roll dup 4 1 roll put } @bd
  189. /@fnt_udefres { systemdict /FontDirectory get exch undef } @bd
  190.  
  191. /@fntfind
  192. { systemdict/FontDirectory get exch 2 copy known
  193.   {get true}
  194.   { exch pop currentglobal not
  195.     { systemdict/GlobalFontDirectory get exch 2 copy known
  196.       {get true}{pop pop false}ifelse
  197.     }
  198.     {pop false}ifelse
  199.   }ifelse
  200. } @bd
  201.  
  202. /@fnt_fndres
  203. { dup @fntfind
  204.   {  dup/Device known 1 index/Embed known or
  205.     {exch pop}
  206.     { 2 copy efontcheck
  207.       {efontload}{exch pop}ifelse
  208.     }ifelse
  209.   }
  210.   { dup fontcheck
  211.     {dup fontload systemdict/FontDirectory get exch get}
  212.     { /Courier eq{/findresource errordict/invalidfont get exec}if
  213.       /Courier @fnt_fndres
  214.     }ifelse
  215.   }ifelse
  216. } @bd
  217.  
  218. /@fnt_resstt
  219. { dup @fntfind
  220.   {pop pop 0 -1 true}
  221.   {fontcheck{2 -1 true}{false}ifelse}ifelse
  222. } @bd
  223.  
  224. /@fnt_resfor { systemdict /FontDirectory get {pop 3 index wild {2 index exec} {pop} ifelse}
  225.       forall pop pop pop } @bd
  226. /@fnt_setup { /DefineResource {@fnt_defres} /UndefineResource {@fnt_udefres}
  227.        /FindResource {@fnt_fndres} /ResourceStatus {@fnt_resstt}
  228.        /ResourceForAll {@fnt_resfor} /ResourceFileName {@resnam}
  229.            /Category } @bd
  230.  
  231. false setglobal
  232. /LocalFontDirectory <<>> def
  233. true setglobal
  234. /GlobalFontDirectory <<>> def
  235. /SharedFontDirectory GlobalFontDirectory def
  236. /FontDirectory GlobalFontDirectory def
  237.  
  238. /@category <<
  239.    /Font << @fnt_setup /Font /InstanceType /dicttype /Instances LocalFontDirectory >>
  240.    /Encoding << @generic /Encoding /InstanceType /arraytype /Instances
  241.       << /StandardEncoding StandardEncoding /ISOLatin1Encoding
  242.      ISOLatin1Encoding >> >>
  243.    /Form << @generic /Form /InstanceType /dicttype /Instances << >> >>
  244.    /Pattern << @generic /Pattern /InstanceType /dicttype /Instances << >> >>
  245.    /ProcSet << @generic /ProcSet /InstanceType /dicttype /Instances << >> >>
  246.    /ColorSpace << @generic /ColorSpace /InstanceType /arraytype /Instances
  247.       << >> >>
  248.    /Halftone << @generic /Halftone /InstanceType /dicttype /Instances << >> >>
  249.    /ColorRendering << @generic /ColorRendering /InstanceType /dicttype
  250.       /Instances << >> >>
  251.  
  252.    /Filter << @generic /Filter /InstanceType /nametype /Instances
  253.       << /ASCIIHexEncode dup /ASCIIHexDecode dup /ASCII85Encode dup
  254.      /ASCII85Decode dup /LZWEncode dup /LZWDecode dup
  255.      /RunLengthEncode dup /RunLengthDecode dup /CCITTFaxEncode dup
  256.      /CCITTFaxDecode dup /DCTEncode dup /DCTDecode dup
  257.      /NullEncode dup /SubFileDecode dup >> >>
  258.    /ColorSpaceFamily << @generic /ColorSpaceFamily /InstanceType /nametype
  259.       /Instances << /DeviceGray dup /DeviceRGB dup /DeviceCMYK dup
  260.      /CIEBasedABC dup /CIEBasedA dup /Pattern dup /Indexed dup
  261.      /Separation dup >> >>
  262.    /Emulator << @generic /Emulator /InstanceType /nametype /Instances << >> >>
  263.    /IODevice << @generic /IODevice /InstanceType /nametype /Instances << >> >>
  264.    /ColorRenderingType << @generic /ColorRenderingType /InstanceType
  265.       /integertype /Instances << >> >>
  266.    /FMapType << @generic /FMapType /InstanceType /integertype /Instances
  267.       << >> >>
  268.    /FontType << @generic /FontType /InstanceType /integertype /Instances
  269.       << 0 dup 1 dup 3 dup >> >>
  270.    /FormType << @generic /FormType /InstanceType /integertype /Instances
  271.       << >> >>
  272.    /HalftoneType << @generic /HalftoneType /InstanceType /integertype
  273.       /Instances << >> >>
  274.    /ImageType << @generic /ImageType /InstanceType /integertype /Instances
  275.       << >> >>
  276.    /PatternType << @generic /PatternType /InstanceType /integertype /Instances
  277.       << >> >>
  278.  
  279.    /Category << @generic /Category /InstanceType /dicttype >>
  280.    /Generic << @generic /Generic /Instances <<>> >>
  281. >> def
  282.  
  283. @category /Category get /Instances @category put
  284.  
  285. %
  286. %  Initialize the resource tokens
  287. %
  288.  
  289. /@resbegin { @category exch get /.rd exch def } @bd
  290. /defineresource { false limitaccess @resbegin .rd/DefineResource get exec true limitaccess } @bd
  291. /undefineresource { false limitaccess @resbegin .rd/UndefineResource get exec true limitaccess } @bd
  292. /findresource { false limitaccess 2 copy mark 3 1 roll
  293.   {@resbegin .rd/FindResource get exec}stopped true limitaccess
  294.   {cleartomark /findresource errordict/undefined get exec}
  295.   {exch 4 2 roll cleartomark}ifelse} @bd
  296. /resourcestatus { false limitaccess @resbegin .rd/ResourceStatus get exec true limitaccess } @bd
  297. /resourceforall { false limitaccess @resbegin .rd/ResourceForAll get exec true limitaccess } @bd
  298.  
  299. %
  300. %  Define font related tokens
  301. %
  302.  
  303. /@mtx1 matrix def
  304. /@mtx2 matrix def
  305. /@fakefont { <<
  306.    /FontName 5 -1 roll /FontMatrix 6 -1 roll /UniqueID 7 -1 roll
  307.    /UniqID 1 index
  308.    /FontInfo <<
  309.       /version () /Notice () /FullName () /Weight () /ItalicAngle 0
  310.       /isFixedPitch false /UnderlinePosition 0 /UnderlineThickness 20 >>
  311.    /Encoding 13 -1 roll {SymbolEncoding}{StandardEncoding}ifelse
  312.    /PaintType 0
  313.    /FontType 1 /Device true /FontBBox {0 0 1000 1000} /Metrics <<>>
  314.    /StrokeWidth 0 /Private <<>> /CharStrings <</space {}>> /FID 1 >>
  315.    dup /FontName get exch definefont pop } @bd
  316. /@val_font { type /dicttype eq not
  317.    {/makefont errordict /typecheck get exec } if } @bd
  318.  
  319. /scalefont { 1 index @val_font exch 1 dict copy dup dup /FontMatrix get
  320.    @mtx1 copy 4 -1 roll dup @mtx2 scale matrix concatmatrix
  321.    /FontMatrix exch put } @bd
  322. /makefont { 1 index @val_font exch 1 dict copy dup dup /FontMatrix get
  323.    @mtx1 copy 4 -1 roll matrix concatmatrix /FontMatrix exch put } @bd
  324. /findfont { /Font findresource } @bd
  325. /definefont { /Font defineresource } @bd
  326. /undefinefont { /Font undefineresource } @bd
  327.  
  328. %
  329. %  Initialize some tokens
  330. %
  331.  
  332. /@savglob false def
  333. /@cachelimit 250 def
  334. /@cachesize 100000 def
  335. /@cachelower 25 def
  336. /@ucachelimit 0 def
  337. /@ismatrix {dup type /arraytype eq
  338.   {dup length 6 eq{
  339.     /@ismtx true def
  340.     {dup type /realtype eq exch type /integertype eq or not
  341.     {/@ismtx false def exit}if}forall
  342.     @ismtx}
  343.     {pop false}ifelse}{pop false}ifelse} @bd
  344. /@drawrect
  345.   {4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto
  346.    neg 0 rlineto closepath} @bd
  347.  
  348. /prompt { (PS> ) print flush } @bd
  349. /handleerror { errordict /handleerror get exec } @bd
  350. /execuserobject { userdict /UserObjects get exch get exec } @bd
  351. /undefineuserobject { userdict /UserObjects get exch null put } @bd
  352. /defineuserobject { 1 index 0 lt { /defineuserobject errordict /rangecheck get exec } if
  353.    systemdict /@savglob currentglobal put false setglobal
  354.    userdict /UserObjects 2 copy known not
  355.       { 2 copy 5 index 99 add 100 idiv 100 mul array put } if
  356.    get dup length 3 index exch ge
  357.       { 2 index 99 add 100 idiv 100 mul array exch 1 index copy pop
  358.     dup userdict /UserObjects 3 -1 roll put } if
  359.    3 1 roll put
  360.    systemdict /@savglob get setglobal } @bd
  361. /findencoding { /Encoding findresource } @bd
  362. /version (54.0) def
  363. /languagelevel 2 def
  364. /product (Liberty Systems - PSI) def
  365. /revision 400 def
  366. /start { product print (    Revision: ) print revision 100 div
  367.       @err_name cvs print (\n) print
  368.    (Copyright (C) 1993-1997 Liberty Systems, Redlands, CA.\n) print
  369.    (All rights reserved.\n) print } @bd
  370. /setgray { /DeviceGray setcolorspace setcolor } @bd
  371. /setrgbcolor { /DeviceRGB setcolorspace setcolor } @bd
  372. /setcmykcolor { /DeviceCMYK setcolorspace setcolor } @bd
  373. /currentscreen { currentcolorscreen 12 3 roll 9 { pop } repeat } @bd
  374. /setscreen { 3 { 3 copy } repeat setcolorscreen
  375.    currentscreen 3 1 roll pop pop
  376.    -.5 -.5 2 index exec pop
  377.     .5 -.5 2 index exec pop
  378.    -.5  .5 2 index exec pop
  379.     .5  .5 2 index exec pop pop } @bd
  380. 20 0 {pop} setscreen
  381. /strokepath {} @bd
  382. /echo {pop} @bd
  383. /initgraphics { initmatrix newpath initclip 1 setlinewidth 0 setlinecap
  384.    0 setlinejoin [] 0 setdash 0 setgray 10 setmiterlimit } @bd
  385. /setcachelimit { dup type /integertype eq { systemdict begin /@cachelimit exch def end}
  386.    { /setcachelimit errordict /typecheck get exec } ifelse } @bd
  387. /cachestatus {systemdict begin 0 @cachesize 0 40 0 500 @cachelimit end} @bd
  388. /setcacheparams {
  389.    systemdict begin
  390.    dup type /marktype ne {/@cachelimit exch def}if
  391.    dup type /marktype ne {/@cachelower exch def}if
  392.    dup type /marktype ne {/@cachesize exch def}if
  393.    cleartomark end} @bd
  394. /currentcacheparams {systemdict begin
  395.    mark @cachesize @cachelower @cachelimit end} @bd
  396. /setucacheparams {
  397.    dup type /marktype ne {/@ucachelimit exch def}if
  398.    cleartomark} @bd
  399. /ucachestatus {mark 0 0 0 0 @ucachelimit} @bd
  400. /setcachedevice { 4{pop}repeat setcharwidth } @bd
  401. /setcachedevice2 { 8{pop}repeat setcharwidth } @bd
  402. /execform { gsave dup /Matrix get concat
  403.    dup /BBox get aload pop exch 3 index sub exch 2 index sub
  404.    rectclip dup /PaintProc get exec grestore } @bd
  405. /selectfont { dup type /arraytype eq
  406.    {exch findfont exch makefont setfont}
  407.    {exch findfont exch scalefont setfont} ifelse } @bd
  408. /ucache {} @bd
  409. /setshared {setglobal} @bd
  410. /currentshared {currentglobal} @bd
  411. /ufill {gsave newpath uappend fill grestore} @bd
  412. /ueofill {gsave newpath uappend eofill grestore} @bd
  413. /ustroke {gsave newpath dup @ismatrix{exch uappend concat}
  414.   {uappend}ifelse stroke grestore} @bd
  415. /ustrokepath {newpath dup @ismatrix
  416.   {exch uappend matrix currentmatrix exch concat strokepath setmatrix}
  417.   {newpath uappend strokepath}ifelse} @bd
  418. /upath {[exch{/ucache cvx}if pathbbox/setbbox cvx
  419.   {/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx}pathforall]cvx} @bd
  420. /uappend {dup type /arraytype eq exch dup type /packedarraytype eq 3 -1 roll
  421.   or not {/uappend errordict /typecheck get exec}if dup length 2 eq
  422.   {uappendencoded}{systemdict begin cvx exec end}ifelse} @bd
  423. /packedarray {array astore readonly} @bd
  424. /setpacking {userdict begin /@packing exch def end} @bd
  425. /currentpacking {userdict /@packing get} @bd
  426. /printobject {(%stdout)(w)file 3 1 roll writeobject} @bd
  427. /setpagedevice {pop} @bd
  428. /currentdevparams {pop <<>>} @bd
  429. /setdevparams {pop pop} @bd
  430. /currentsystemparams {<<>>} @bd
  431. /setsystemparams {pop} @bd
  432. /currentuserparams {<<>>} @bd
  433. /setuserparams {pop} @bd
  434. /currentcolorrendering {<<>>} @bd
  435. /setcolorrendering {pop} @bd
  436. /ineofill {
  437.   dup type /arraytype eq 1 index type /packedarraytype eq or
  438.   {gsave newpath uappend intersectingpaths grestore}
  439.   {xyineofill}ifelse} @bd
  440. /infill {
  441.   dup type /arraytype eq 1 index type /packedarraytype eq or
  442.   {gsave newpath uappend intersectingpaths grestore}
  443.   {xyinfill}ifelse} @bd
  444. /instroke {
  445.   dup type /arraytype eq 1 index type /packedarraytype eq or
  446.   {gsave newpath uappend intersectingpaths grestore}
  447.   {xyinstroke}ifelse} @bd
  448. /inueofill {gsave newpath uappend ineofill grestore} @bd
  449. /inufill {gsave newpath uappend infill grestore} @bd
  450. /inustroke {gsave newpath dup @ismatrix{exch uappend concat}
  451.   {uappend}ifelse instroke grestore} @bd
  452. /setpattern {currentcolorspace 0 get /Pattern ne
  453.   {[/Pattern currentcolorspace]setcolorspace}if setcolor} @bd
  454. /makepattern {gsave concat <<>> copy dup newpath
  455.   gstate currentgstate /Implementation exch put grestore} @bd
  456. /rootfont {currentfont} @bd
  457. /startjob {pop pop false} @bd
  458. /=print {(%stdout)(w)file exch dup type /stringtype eq
  459.   {writestring} {save 3 1 roll 256 string cvs writestring restore}
  460.   ifelse} @bd
  461. <</Angle 0. /SpotFunction {} /HalftoneType 1 /Frequency 10.>> sethalftone
  462.  
  463. /letter { statusdict begin 0 setpagetype end } def
  464. /note { statusdict begin 1 setpagetype end } def
  465. /legal {} def
  466. /a4 {} def
  467.  
  468. %
  469. %  Create the page device dictionary
  470. %
  471.  
  472. /currentpagedevice
  473.   << /PageSize [792 792]
  474.      /MediaColor null
  475.      /MediaWeight null
  476.      /MediaType null
  477.      /InputAttributes <<>>
  478.      /ManualFeed false
  479.      /ImagingBBox null
  480.      /OutputType null
  481.      /OutputAttributes <<>>
  482.      /NumCopies null
  483.      /Collate false
  484.      /Duplex false
  485.      /Tumble false
  486.      /OutputFaceUp false
  487.      /Jog 0
  488.      /Separations false
  489.      /HWResolution [400 400]
  490.      /Margins [0 0]
  491.      /NegativePrint false
  492.      /MirrorPrint false
  493.      /Orientation 0
  494.      /CutMedia 0
  495.      /AdvanceMedia 0
  496.      /AdvanceDistance 0
  497.      /Policies <<>>
  498.      /Install {}
  499.      /BeginPage {}
  500.      /EndPage {} >> def
  501.  
  502. %
  503. %  Create the 'statusdict' dictionary
  504. %
  505.  
  506. false setglobal
  507. /statusdict
  508.   << /product (Liberty Systems - PSI)
  509.      /processcolors 3
  510.      /setpageparams {4{pop}repeat}
  511.      /setjobtimeout {pop}
  512.      /lettertray {}
  513.      /setduplexmode {pop}
  514.      /settumble {pop}
  515.      /setpagetype {statusdict exch /pagetype exch put} >> def
  516. true setglobal
  517.  
  518. %
  519. %  Create the 'internaldict' dictionary
  520. %
  521.  
  522. %false setglobal
  523. %/@internaldict <<>> def
  524. %true setglobal
  525. %/internaldict {dup type /integertype eq not{/internaldict errordict /invalidaccess get exec}if
  526. %  dup 1183615869 eq not{/internaldict errordict /invalidaccess get exec}if pop @internaldict} @bd
  527. %
  528. %  COMMENTED OUT DUE TO A BUG IN SOME TYPE1 FONTS.  IF 'internaldict'
  529. %  EXISTS, BUT STARTLOCK AND STRTLCK DON'T EXIST IN 'internaldict', a
  530. %  VALUE GETS LEFT ON THE OP STACK.
  531.  
  532. %
  533. %  Initialize the global and user dictionary
  534. %
  535.  
  536. systemdict readonly pop
  537. /globaldict 200 dict def
  538. /shareddict globaldict def
  539. false setglobal
  540. /userdict 200 dict def
  541. globaldict begin
  542. userdict begin
  543. /@packing false def
  544. true limitaccess
  545. /Times-Roman findfont 12 scalefont setfont
  546. /=string 256 string def
  547.