PNG  IHDR pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F@8N ' p @8N@8}' p '#@8N@8N pQ9p!i~}|6-ӪG` VP.@*j>[ K^<֐Z]@8N'KQ<Q(`s" 'hgpKB`R@Dqj '  'P$a ( `D$Na L?u80e J,K˷NI'0eݷ(NI'؀ 2ipIIKp`:O'`ʤxB8Ѥx Ѥx $ $P6 :vRNb 'p,>NB 'P]-->P T+*^h& p '‰a ‰ (ĵt#u33;Nt̵'ޯ; [3W ~]0KH1q@8]O2]3*̧7# *p>us p _6]/}-4|t'|Smx= DoʾM×M_8!)6lq':l7!|4} '\ne t!=hnLn (~Dn\+‰_4k)0e@OhZ`F `.m1} 'vp{F`ON7Srx 'D˸nV`><;yMx!IS钦OM)Ե٥x 'DSD6bS8!" ODz#R >S8!7ّxEh0m$MIPHi$IvS8IN$I p$O8I,sk&I)$IN$Hi$I^Ah.p$MIN$IR8I·N "IF9Ah0m$MIN$IR8IN$I 3jIU;kO$ɳN$+ q.x* tEXtComment

Viewing File: /usr/share/ghostscript/Resource/Init/gs_dscp.ps

% Copyright (C) 2001-2021 Artifex Software, Inc.
% All Rights Reserved.
%
% This software is provided AS-IS with no warranty, either express or
% implied.
%
% This software is distributed under license and may not be copied,
% modified or distributed except as expressly authorized under the terms
% of the license contained in the file LICENSE in this distribution.
%
% Refer to licensing information at http://www.artifex.com or contact
% Artifex Software, Inc.,  1305 Grant Avenue - Suite 200, Novato,
% CA 94945, U.S.A., +1(415)492-9861, for further information.
%

%  Postscript interface routines to DSC parser

/send_orientation {			% <orientation> send_orientation -
        % .parse_dsc_comments returns -1 for an Orientation key with an
        % unrecognized value.
  dup 0 ge {
    << /Orientation 2 index >> setpagedevice
  } if pop
} bind def

% This dictionary contains local handlers for DSC comments.
% See header in zdscpars.c for more information.
% <dsc_dict> handler <dsc_dict>
/DSCparseprocs mark
   /Orientation { dup /Orientation get send_orientation } bind
   /PageOrientation { dup /PageOrientation .knownget { send_orientation }
                      { dup /Orientation .knownget { send_orientation } if }
                      ifelse } bind
   /Page { dup /Orientation .knownget { send_orientation } if } bind
   /NOP { } bind
.dicttomark readonly def

% This procedure is called whenever a DSC comment is found by the interpreter
/do_parse_dsc //false def
/parse_dsc {				% <file> <DSC string> [<prev proc>]
                                        %   parse_dsc -
        % Run any previously installed parser.
  0 get dup //null eq { pop } { 3 copy exec pop } ifelse

  do_parse_dsc {			% Check if this parser is enabled
    currentglobal //true setglobal	% Go to global VM, save old state
    3 1 roll				% Put old VM state under <file> <string>
    dsc_dict exch			% <VM state> <file> <dict> <string>
    .parse_dsc_comments			% <VM state> <file> <dict> <DSC name>
    4 -1 roll				% Get old VM state from under <file> <dict> <DSC name>
    setglobal				% restore previous VM state
    //DSCparseprocs exch .knownget {	% Check DSC name against local handler list
      exec				% execute any local handler
    } if
  } if
  pop pop				% remove file, dict
} bind def

% Check whether the currently installed parser is the one defined in this file.
/.using_parse_dsc {			% - .using_parse_dsc <proc> <using?>
  currentuserparams /ProcessDSCComment get
  dup //null eq { pop {{//null} //parse_dsc exec} } if
  dup length 3 eq {
    dup dup length 1 sub get /parse_dsc load eq
  } {
    //false
  } ifelse
} bind def

% Establish a binding for dsc_dict.
userdict /dsc_dict //null put

% - dsc_init -
/dsc_init {				% Initialize DSC parser
  currentglobal //true setglobal
  /dsc_dict 50 dict store		% Size must be large enough for all DSC values
  dsc_dict .initialize_dsc_parser
  .using_parse_dsc {
        % Already using this parser.
    pop
  } {
        % Encapsulate the previous parser.  We know it is in global VM:
        % allocate the new one in global VM as well.
    1 array astore
    /parse_dsc load /exec load 3 array astore cvx readonly
    << /ProcessDSCComment 3 -1 roll >>
    setuserparams
  } ifelse
  setglobal
  /do_parse_dsc //true def
} bind def

% Enable the DSC parser defined in this file.
% - enable_dsc -
/enable_dsc {
  dsc_init
} bind def

% Disable the DSC parser defined in this file.
% - disable_dsc -
/disable_dsc {
        % There might be another parser installed: if so, restore it.
        % (If it has encapsulated our parser, we can't.)
  .using_parse_dsc {
        % Restore the parser we encapsulated.
    0 get 0 get
    currentglobal //true setglobal exch
    << /ProcessDSCComment 3 -1 roll >>
    exch setglobal setuserparams
  } {
    pop
  } ifelse
        % If we couldn't restore the old parser, at least disable ours.
  /do_parse_dsc //false def
} bind def
Back to Directory=ceiIENDB`