static char *PS_head[] = {
	"%ps_include: begin",
	"save",
	"/ed {exch def} def",
	"{} /showpage ed",
	"{} /copypage ed",
	"{} /erasepage ed",
	"{} /letter ed",
	"36 dict dup /PS-include-dict-dw ed begin",
	"/context ed",
	"count array astore /o-stack ed",
	"%ps_include: variables begin",
	0
};

static char *PS_setup[] = {
	"%ps_include: variables end",
	"{dup mul exch dup mul add sqrt} /len ed",
	"{2 copy gt {exch} if pop} /min ed",
	"{2 copy lt {exch} if pop} /max ed",
	"{6 array} /n ed",
	"n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed",
	"urx llx sub 0 A dtransform len /Sx ed",
	"0 ury lly sub A dtransform len /Sy ed",
	"llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed",
/*	"rot dup sin abs /S ed cos abs /C ed",
/*	"Sx S mul Sy C mul add /H ed",
/*	"Sx C mul Sy S mul add /W ed",
/*	"sy H div /Scaley ed",
/*	"sx W div /Scalex ed",
/*	"s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if",
/*	"sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed",
/*	"sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed",
/*	"urx llx sub 0 A dtransform exch atan rot exch sub /rot ed",
/*	"n currentmatrix initgraphics setmatrix",
*/	"sx Sx div /Scalex ed",
	"sy Sy div /Scaley ed",
	"cx cy translate",
	"Scalex Scaley scale",
/*	"rot rotate",
*/	"Cx neg Cy neg translate",
	"A concat",
	"newpath",
	"end",
	"%ps_include: inclusion begin",
	0
};

static char *PS_tail[] = {
	"%ps_include: inclusion end",
	"PS-include-dict-dw begin",
	"clear o-stack aload pop",
	"context end restore",
	"%ps_include: end",
	0
};

static char *Pic_setup[] = {
	"%ps_include: variables end",
	"{dup mul exch dup mul add sqrt} /len ed",
	"{2 copy gt {exch} if pop} /min ed",
	"{2 copy lt {exch} if pop} /max ed",
	"{6 array} /n ed",
	"n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed",
	"urx llx sub 0 A dtransform len /Sx ed",
	"0 ury lly sub A dtransform len /Sy ed",
	"llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed",
/*	"rot dup sin abs /S ed cos abs /C ed",
/*	"Sx S mul Sy C mul add /H ed",
/*	"Sx C mul Sy S mul add /W ed",
/*	"sy H div /Scaley ed",
/*	"sx W div /Scalex ed",
/*	"s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if",
/*	"sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed",
/*	"sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed",
/*	"urx llx sub 0 A dtransform exch atan rot exch sub /rot ed",
/*	"n currentmatrix initgraphics setmatrix",
*/	"sx Sx div /Scalex ed",
	"sy Sy div /Scaley ed",
	"BoB concat",
	"cx cy translate",
	"newpath sx 2 div sy 2 div moveto sx neg 0 rlineto",
	"0 sy neg rlineto sx 0 rlineto closepath clip",
	"Scalex Scaley scale",
/*	"rot rotate",
*/	"Cx neg Cy neg translate",
	"A concat",
	"newpath",
	"end",
	"%ps_include: inclusion begin",
	0
};
