diff options
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp | 230 |
1 files changed, 129 insertions, 101 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp index 04abb6227dd..9c5991217d6 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp @@ -2,7 +2,7 @@ ** psdefs.cpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2019 Martin Gieseking <martin.gieseking@uos.de> ** +** Copyright (C) 2005-2020 Martin Gieseking <martin.gieseking@uos.de> ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** @@ -22,104 +22,132 @@ const char *PSInterpreter::PSDEFS = "<</Install{matrix setmatrix}/HWResolution[72 72]/PageSize[10000 10000]/Imaging" -"BBox null>>setpagedevice/@dodraw true store/@patcnt 0 store/@GD globaldict def" -"/@SD systemdict def/@UD userdict def @GD/@nulldev false put true setglobal @SD" -"/:save @SD/save get put @SD/:restore @SD/restore get put @SD/:gsave @SD/gsave " -"get put @SD/:grestore @SD/grestore get put @SD/:grestoreall @SD/grestoreall ge" -"t put @SD/:newpath @SD/newpath get put @SD/:stroke @SD/stroke get put @SD/:fil" -"l @SD/fill get put @SD/:eofill @SD/eofill get put @SD/:clip @SD/clip get put @" -"SD/:eoclip @SD/eoclip get put @SD/:charpath @SD/charpath get put @SD/:show @SD" -"/show get put @SD/:stringwidth @SD/stringwidth get put @SD/:nulldevice @SD/nul" -"ldevice get put @SD/.setopacityalpha known not{@SD/.setopacityalpha{pop}put}if" -" @SD/.setshapealpha known not{@SD/.setshapealpha{pop}put}if @SD/.setblendmode " -"known not{@SD/.setblendmode{pop}put}if @SD/prseq{-1 1{-1 roll =only( )print}fo" -"r(\\n)print}put @SD/prcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxall{" -"{cvx}forall}put @SD/defpr{[exch[/copy @SD]cvxall 5 -1 roll dup 6 1 roll[/get/e" -"xec]cvxall 6 -1 roll dup 7 1 roll 4 -1 roll dup 5 1 roll dup length string cvs" -"/prcmd cvx]cvx def}put @SD/querypos{{currentpoint}stopped{$error/newerror fals" -"e put}{2(querypos)prcmd}ifelse}put @SD/applyscalevals{1 0 dtransform exch dup " -"mul exch dup mul add sqrt 0 1 dtransform exch dup mul exch dup mul add sqrt 1 " -"0 dtransform dup mul exch dup dup mul 3 -1 roll add dup 0 eq{pop}{sqrt div}ife" -"lse 3(applyscalevals)prcmd}put @SD/prpath{{2(moveto)prcmd}{2(lineto)prcmd}{6(c" -"urveto)prcmd}{0(closepath)prcmd}pathforall}put @SD/nulldevice{@GD/@nulldev tru" -"e put :nulldevice 1 1(setnulldevice)prcmd}put @SD/charpath{/@dodraw false stor" -"e :charpath/@dodraw true store}put @SD/stringwidth{/@dodraw false store :strin" -"gwidth/@dodraw true store}put @SD/show{@dodraw @GD/@nulldev get not and{dup :g" -"save currentpoint 2{50 mul exch}repeat :newpath moveto 50 50/scale sysexec tru" -"e charpath fill :grestore/@dodraw false store :show/@dodraw true store}{:show}" -"ifelse}put @SD/varxyshow{exch dup type/arraytype eq{<</arr 3 -1 roll/prc 5 -1 " -"roll/chr 1 string/idx 0>>begin{chr 0 3 -1 roll put :gsave chr show :grestore c" -"urrentpoint prc moveto/idx idx 1 add store}forall end}{pop show}ifelse}put @SD" -"/xyshow{{exch arr idx 2 mul get add exch arr idx 2 mul 1 add get add}varxyshow" -"}put @SD/xshow{{exch arr idx get add exch}varxyshow}put @SD/yshow{{arr idx get" -" add}varxyshow}put @SD/awidthshow{{1 string dup 0 5 index put :gsave show :gre" -"store pop 0 rmoveto 3 index eq{4 index 4 index rmoveto}if 1 index 1 index rmov" -"eto}exch cshow 5{pop}repeat}put @SD/widthshow{0 0 3 -1 roll pstack awidthshow}" -"put @SD/ashow{0 0 0 6 3 roll awidthshow}put @SD/newpath{:newpath 1 1(newpath)p" -"rcmd}put @SD/stroke{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prcmd" -" prpath 0(stroke)prcmd :newpath}{:stroke}ifelse}put @SD/fill{@dodraw @GD/@null" -"dev get not and{prcolor 0 1(newpath)prcmd prpath 0(fill)prcmd :newpath}{:fill}" -"ifelse}put @SD/eofill{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prc" -"md prpath 0(eofill)prcmd :newpath}{:eofill}ifelse}put @SD/clip{:clip @GD/@null" -"dev get not{0 1(newpath)prcmd prpath 0(clip)prcmd}if}put @SD/eoclip{:eoclip @G" -"D/@nulldev get not{0 1(newpath)prcmd prpath 0(eoclip)prcmd}}put @SD/shfill{beg" -"in currentdict/ShadingType known currentdict/ColorSpace known and currentdict/" -"DataSource known and currentdict/Function known not and ShadingType 4 ge and D" -"ataSource type/arraytype eq and{<</DeviceGray 1/DeviceRGB 3/DeviceCMYK 4/bgkno" -"wn currentdict/Background known/bbknown currentdict/BBox known>>begin currentd" -"ict ColorSpace known{ShadingType ColorSpace load bgknown{1 Background aload po" -"p}{0}ifelse bbknown{1 BBox aload pop}{0}ifelse ShadingType 5 eq{VerticesPerRow" -"}if DataSource aload length 4 add bgknown{ColorSpace load add}if bbknown{4 add" -"}if ShadingType 5 eq{1 add}if(shfill)prcmd}if end}if end}put/@rect{4 -2 roll m" -"oveto exch dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}bind def/" -"@rectcc{4 -2 roll moveto 2 copy 0 lt exch 0 lt xor{dup 0 exch rlineto exch 0 r" -"lineto neg 0 exch rlineto}{exch dup 0 rlineto exch 0 exch rlineto neg 0 rlinet" -"o}ifelse closepath}bind def @SD/rectclip{:newpath dup type/arraytype eq{aload " -"length 4 idiv{@rectcc}repeat}{@rectcc}ifelse clip :newpath}put @SD/rectfill{gs" -"ave :newpath dup type/arraytype eq{aload length 4 idiv{@rectcc}repeat}{@rectcc" -"}ifelse fill grestore}put @SD/rectstroke{gsave :newpath dup type/arraytype eq{" -"aload length 4 idiv{@rect}repeat}{@rect}ifelse stroke grestore}put false setgl" -"obal @SD readonly pop/initclip 0 defpr/clippath 0 defpr/sysexec{@SD exch get e" -"xec}def/adddot{dup length 1 add string dup 0 46 put dup 3 -1 roll 1 exch putin" -"terval}def/setlinewidth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}def/setl" -"inecap 1 defpr/setlinejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark 3 1 roll" -" 2 copy/setdash sysexec exch aload length 1 add -1 roll counttomark(setdash)pr" -"cmd pop}def/@setpagedevice{pop<<>>/setpagedevice sysexec matrix setmatrix newp" -"ath 0(setpagedevice)prcmd}def/@checknulldev{@GD/@nulldev get{currentpagedevice" -" maxlength 0 ne{@GD/@nulldev false put 0 1(setnulldevice)prcmd}if}if}def/prcol" -"or{currentrgbcolor 3(setrgbcolor)prcmd}def/printgstate{@dodraw @GD/@nulldev ge" -"t not and{matrix currentmatrix aload pop 6(setmatrix)prcmd applyscalevals curr" -"entlinewidth 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd currentlin" -"ejoin 1(setlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd currentrgbco" -"lor 3(setrgbcolor)prcmd currentdash mark 3 1 roll exch aload length 1 add -1 r" -"oll counttomark(setdash)prcmd pop}if}def/setgstate{/setgstate sysexec printgst" -"ate}def/save{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)p" -"rcmd}def/restore{:restore @checknulldev printgstate @UD/@saveID known{@UD begi" -"n @saveID end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore @" -"checknulldev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @checkn" -"ulldev setstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw a" -"nd{dup 1(rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arra" -"ytype ne @dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def/" -"translate{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/transl" -"ate sysexec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix)" -"prcmd applyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{ma" -"trix currentmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 " -"-1 roll>>begin dup/XUID[1000000 @patcnt]put mx/makepattern sysexec dup dup beg" -"in PatternType @patcnt BBox aload pop XStep YStep PaintType mx aload pop 15(ma" -"kepattern)prcmd :newpath matrix setmatrix PaintProc 0 1(makepattern)prcmd end/" -"@patcnt @patcnt 1 add store end grestore}def/setpattern{begin PatternType 1 eq" -"{PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload leng" -"th -1 roll pop]setcolorspace/setcolor sysexec XUID aload pop exch pop currentr" -"gbcolor :grestore 4}ifelse(setpattern)prcmd}{/setpattern sysexec}ifelse end}de" -"f/setcolor{dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor " -"sysexec setrgbcolor}ifelse}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolo" -"r 3 defpr/setrgbcolor 3 defpr/.setopacityalpha{dup/.setopacityalpha sysexec 1(" -"setopacityalpha)prcmd}def/.setshapealpha{dup/.setshapealpha sysexec 1(setshape" -"alpha)prcmd}def/.setblendmode{dup/.setblendmode sysexec<</Normal 0/Compatible " -"0/Multiply 1/Screen 2/Overlay 3/SoftLight 4/HardLight 5/ColorDodge 6/ColorBurn" -" 7/Darken 8/Lighten 9/Difference 10/Exclusion 11/Hue 12/Saturation 13/Color 14" -"/Luminosity 15/CompatibleOverprint 16>>exch get 1(setblendmode)prcmd}def/@pdfp" -"agecount{(r)file runpdfbegin pdfpagecount runpdfend}def/@pdfpagebox{(r)file ru" -"npdfbegin dup dup 1 lt exch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget p" -"op aload pop}ifelse runpdfend}def DELAYBIND{.bindnow}if "; +"BBox null>>setpagedevice/@dodraw true store/@GD globaldict def/@SD systemdict " +"def/@UD userdict def @GD/@nulldev false put @GD/@patcnt 0 put true setglobal @" +"SD/:save @SD/save get put @SD/:restore @SD/restore get put @SD/:gsave @SD/gsav" +"e get put @SD/:grestore @SD/grestore get put @SD/:grestoreall @SD/grestoreall " +"get put @SD/:newpath @SD/newpath get put @SD/:stroke @SD/stroke get put @SD/:f" +"ill @SD/fill get put @SD/:eofill @SD/eofill get put @SD/:clip @SD/clip get put" +" @SD/:eoclip @SD/eoclip get put @SD/:charpath @SD/charpath get put @SD/:show @" +"SD/show get put @SD/:stringwidth @SD/stringwidth get put @SD/:nulldevice @SD/n" +"ulldevice get put @SD/:image @SD/image get put @SD/:colorimage @SD/colorimage " +"get put @SD/.setopacityalpha known not{@SD/.setopacityalpha{pop}put}if @SD/.se" +"tshapealpha known not{@SD/.setshapealpha{pop}put}if @SD/.setblendmode known no" +"t{@SD/.setblendmode{pop}put}if @SD/prseq{-1 1{-1 roll =only( )print}for(\\n)pr" +"int}put @SD/prcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxall{{cvx}for" +"all}put @SD/defpr{[exch[/copy @SD]cvxall 5 -1 roll dup 6 1 roll[/get/exec]cvxa" +"ll 6 -1 roll dup 7 1 roll 4 -1 roll dup 5 1 roll dup length string cvs/prcmd c" +"vx]cvx def}put @SD/querypos{{currentpoint}stopped{$error/newerror false put}{2" +"(querypos)prcmd}ifelse}put @SD/applyscalevals{1 0 dtransform exch dup mul exch" +" dup mul add sqrt 0 1 dtransform exch dup mul exch dup mul add sqrt 1 0 dtrans" +"form dup mul exch dup dup mul 3 -1 roll add dup 0 eq{pop}{sqrt div}ifelse 3(ap" +"plyscalevals)prcmd}put @SD/prpath{{2(moveto)prcmd}{2(lineto)prcmd}{6(curveto)p" +"rcmd}{0(closepath)prcmd}pathforall}put @SD/nulldevice{@GD/@nulldev true put :n" +"ulldevice 1 1(setnulldevice)prcmd}put @SD/charpath{/@dodraw false store :charp" +"ath/@dodraw true store}put @SD/stringwidth{/@dodraw false store :stringwidth/@" +"dodraw true store}put @SD/show{@dodraw @GD/@nulldev get not and{dup :gsave cur" +"rentpoint 2{50 mul exch}repeat :newpath moveto 50 50/scale sysexec true charpa" +"th fill :grestore/@dodraw false store :show/@dodraw true store}{:show}ifelse}p" +"ut @SD/varxyshow{dup 0 ge{<</chr 3 -1 roll string/prc 5 -1 roll/arr 7 -1 roll/" +"str 9 -1 roll/idx 0>>begin 0 chr length str length 1 sub{str exch chr length g" +"etinterval/chr exch store :gsave chr show :grestore currentpoint prc moveto/id" +"x idx 1 add store}for end}{pop pop show}ifelse}put @SD/xyshow{dup dup type/arr" +"aytype eq exch length 0 gt and{dup length 2 idiv 2 index length exch idiv}{-1}" +"ifelse{exch arr idx 2 mul get add exch arr idx 2 mul 1 add get add}exch varxys" +"how}put @SD/xshow{dup dup type/arraytype eq exch length 0 gt and{dup length 2 " +"index length exch idiv}{-1}ifelse{exch arr idx get add exch}exch varxyshow}put" +" @SD/yshow{dup dup type/arraytype eq exch length 0 gt and{dup length 2 index l" +"ength exch idiv}{-1}ifelse{arr idx get add}exch varxyshow}put @SD/awidthshow{{" +"1 string dup 0 5 index put :gsave show :grestore pop 0 rmoveto 3 index eq{4 in" +"dex 4 index rmoveto}if 1 index 1 index rmoveto}exch cshow 5{pop}repeat}put @SD" +"/widthshow{0 0 3 -1 roll awidthshow}put @SD/ashow{0 0 0 6 3 roll awidthshow}pu" +"t @SD/newpath{:newpath 1 1(newpath)prcmd}put @SD/stroke{@dodraw @GD/@nulldev g" +"et not and{prcolor 0 1(newpath)prcmd prpath 0(stroke)prcmd :newpath}{:stroke}i" +"felse}put @SD/fill{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prcmd " +"prpath 0(fill)prcmd :newpath}{:fill}ifelse}put @SD/eofill{@dodraw @GD/@nulldev" +" get not and{prcolor 0 1(newpath)prcmd prpath 0(eofill)prcmd :newpath}{:eofill" +"}ifelse}put @SD/clip{:clip @GD/@nulldev get not{0 1(newpath)prcmd prpath 0(cli" +"p)prcmd}if}put @SD/eoclip{:eoclip @GD/@nulldev get not{0 1(newpath)prcmd prpat" +"h 0(eoclip)prcmd}}put @SD/shfill{begin currentdict/ShadingType known currentdi" +"ct/ColorSpace known and currentdict/DataSource known and currentdict/Function " +"known not and ShadingType 4 ge{DataSource type/arraytype eq{<</DeviceGray 1/De" +"viceRGB 3/DeviceCMYK 4/bgknown currentdict/Background known/bbknown currentdic" +"t/BBox known>>begin currentdict ColorSpace known{ShadingType ColorSpace load b" +"gknown{1 Background aload pop}{0}ifelse bbknown{1 BBox aload pop}{0}ifelse Sha" +"dingType 5 eq{VerticesPerRow}if DataSource aload length 4 add bgknown{ColorSpa" +"ce load add}if bbknown{4 add}if ShadingType 5 eq{1 add}if(shfill)prcmd}if end}" +"if}if end}put @SD/image{dup type/dicttype eq{dup}{<</Width 6 index/Height 7 in" +"dex/colorimg false>>}ifelse @execimg}put @SD/colorimage{<<2 index{/Width 2 ind" +"ex 8 add index/Height 4 index 9 add index}{/Width 8 index/Height 9 index}ifels" +"e/colorimg true>>@execimg}put/@imgbase(./)def/@imgdevice(jpeg)def/@execimg{@GD" +"/@imgcnt 2 copy .knownget{1 add}{1}ifelse put begin<</imgdev null/imgid @GD/@i" +"mgcnt get/ispng @imgdevice 0 3 getinterval(png)eq dup/suffix exch{(.png)}{(.jp" +"g)}ifelse/colorimg currentdict/colorimg .knownget dup{pop}if/colordev 1 index " +"currentcolorspace dup length 1 ne exch 0 get/DeviceGray ne or or>>begin @imgde" +"vice(png)ne @imgdevice(jpeg)ne and{@imgdevice cvn}{colordev{ispng{/png16m}{/jp" +"eg}ifelse}{ispng{/pnggray}{/jpeggray}ifelse}ifelse}ifelse dup devicedict exch " +"known{:gsave/imgdev exch finddevice def mark/OutputFile @imgbase imgid 20 stri" +"ng cvs strconcat suffix strconcat/PageSize[Width Height]/UseFastColor true isp" +"ng{@imgdevice(pngmonod)eq{/MinFeatureSize where{pop/MinFeatureSize MinFeatureS" +"ize}if}if}{/JPEGQ where{pop/JPEGQ JPEGQ}if}ifelse imgdev putdeviceprops setdev" +"ice[Width 0 0 Height neg 0 Height]/setmatrix sysexec colorimg{:colorimage}{:im" +"age}ifelse/copypage sysexec mark/OutputFile()imgdev putdeviceprops pop :gresto" +"re imgid Width Height 3(image)prcmd}{pop colorimg{:colorimage}{:image}ifelse}i" +"felse end end}def/@rect{4 -2 roll moveto exch dup 0 rlineto exch 0 exch rlinet" +"o neg 0 rlineto closepath}bind def/@rectcc{4 -2 roll moveto 2 copy 0 lt exch 0" +" lt xor{dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto}{exch dup 0 rline" +"to exch 0 exch rlineto neg 0 rlineto}ifelse closepath}bind def @SD/rectclip{:n" +"ewpath dup type/arraytype eq{aload length 4 idiv{@rectcc}repeat}{@rectcc}ifels" +"e clip :newpath}put @SD/rectfill{:gsave :newpath dup type/arraytype eq{aload l" +"ength 4 idiv{@rectcc}repeat}{@rectcc}ifelse fill :grestore}put @SD/rectstroke{" +"gsave :newpath dup type/arraytype eq{aload length 4 idiv{@rect}repeat}{@rect}i" +"felse stroke grestore}put false setglobal @SD readonly pop/initclip 0 defpr/cl" +"ippath 0 defpr/sysexec{@SD exch get exec}def/adddot{dup length 1 add string du" +"p 0 46 put dup 3 -1 roll 1 exch putinterval}def/setlinewidth{dup/setlinewidth " +"sysexec 1(setlinewidth)prcmd}def/setlinecap 1 defpr/setlinejoin 1 defpr/setmit" +"erlimit 1 defpr/setdash{mark 3 1 roll 2 copy/setdash sysexec exch aload length" +" 1 add -1 roll counttomark(setdash)prcmd pop}def/@setpagedevice{pop<<>>/setpag" +"edevice sysexec matrix setmatrix newpath 0(setpagedevice)prcmd}def/@checknulld" +"ev{@GD/@nulldev get{currentpagedevice maxlength 0 ne{@GD/@nulldev false put 0 " +"1(setnulldevice)prcmd}if}if}def/prcolor{currentcolorspace @setcolorspace curre" +"ntrgbcolor 3(setrgbcolor)prcmd}def/printgstate{@dodraw @GD/@nulldev get not an" +"d{matrix currentmatrix aload pop 6(setmatrix)prcmd applyscalevals currentlinew" +"idth 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd currentlinejoin 1(" +"setlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd prcolor currentdash " +"mark 3 1 roll exch aload length 1 add -1 roll counttomark(setdash)prcmd pop}if" +"}def/strconcat{exch dup length 2 index length add string dup dup 4 2 roll copy" +" length 4 -1 roll putinterval}def/setgstate{/setgstate sysexec printgstate}def" +"/save{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)prcmd}de" +"f/restore{:restore @checknulldev printgstate @UD/@saveID known{@UD begin @save" +"ID end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore @checknu" +"lldev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @checknulldev " +"setstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw and{dup " +"1(rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arraytype n" +"e @dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def/transla" +"te{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/translate sys" +"exec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix)prcmd a" +"pplyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{matrix cu" +"rrentmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 -1 roll" +">>begin<</XUID[1000000 @patcnt]>>copy mx/makepattern sysexec dup begin Pattern" +"Type 2 lt{PatternType @patcnt BBox aload pop XStep YStep PaintType mx aload po" +"p 15(makepattern)prcmd :newpath matrix setmatrix dup PaintProc 0 1(makepattern" +")prcmd @GD/@patcnt @patcnt 1 add put}if end end grestore}def/setpattern{begin " +"PatternType 1 eq{PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolor" +"space aload length -1 roll pop]/setcolorspace sysexec/setcolor sysexec XUID al" +"oad pop exch pop currentrgbcolor :grestore 4}ifelse(setpattern)prcmd currentco" +"lorspace 0 get/Pattern ne{[/Pattern currentcolorspace]/setcolorspace sysexec}i" +"f currentcolorspace @setcolorspace}{/setpattern sysexec}ifelse end}def/setcolo" +"r{dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor sysexec s" +"etrgbcolor}ifelse}def/setcolorspace{dup/setcolorspace sysexec @setcolorspace}d" +"ef/@setcolorspace{dup type/arraytype eq{0 get}if/Pattern eq{1}{0}ifelse 1(setc" +"olorspace)prcmd}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor 3 defpr/s" +"etrgbcolor 3 defpr/.setopacityalpha{dup/.setopacityalpha sysexec 1(setopacitya" +"lpha)prcmd}def/.setshapealpha{dup/.setshapealpha sysexec 1(setshapealpha)prcmd" +"}def/.setblendmode{dup/.setblendmode sysexec<</Normal 0/Compatible 0/Multiply " +"1/Screen 2/Overlay 3/SoftLight 4/HardLight 5/ColorDodge 6/ColorBurn 7/Darken 8" +"/Lighten 9/Difference 10/Exclusion 11/Hue 12/Saturation 13/Color 14/Luminosity" +" 15/CompatibleOverprint 16>>exch get 1(setblendmode)prcmd}def/@pdfpagecount{(r" +")file runpdfbegin pdfpagecount runpdfend}def/@pdfpagebox{(r)file runpdfbegin d" +"up dup 1 lt exch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget pop aload po" +"p}ifelse runpdfend}def DELAYBIND{.bindnow}if "; |