// @(#)root/postscript:$Id$
// Author: Rene Brun, Olivier Couet, Pierre Juillot, Oleksandr Grebenyuk, Yue Shi Lai

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/


//______________________________________________________________________________
/* Begin_Html
 <center><h2>TPostScript: Graphics interface to PostScript</h2></center>
 This code was initially developed in the context of HIGZ and PAW
 by Olivier Couet and Pierre Juillot. It has been converted to a C++ class by
 Rene Brun.

 <P>To generate a Postscript (or encapsulated ps) file corresponding to
 a single image in a canvas, you can:

 <UL>
 <LI>Select the <B>Print PostScript</B> item in the canvas <B>File</B> menu.
 By default, a Postscript file with the name of the canvas.ps is generated.

 <br>
 <LI>Click in the canvas area, near the edges, with the right mouse button
 and select the <B>Print</B> item. You can select the name of the Postscript
 file. If the file name is xxx.ps, you will generate a Postscript file named
 xxx.ps. If the file name is xxx.eps, you generate an encapsulated Postscript
 file instead.
 <br>

 <LI>In your program (or macro), you can type:

 <P><TT><B>
 c1-&gt;Print(&quot;xxx.ps&quot;)</B> or <B>c1-&gt;Print(&quot;xxx.eps&quot;)
 </B></TT>

 <P>This will generate a file corresponding to the picture in the canvas
 pointed by <tt><B>c1</B></tt>.

 <P><TT><B>pad1-&gt;Print(&quot;xxx.ps&quot;)</B></TT>

 <P>prints only the picture in the pad pointed by <tt><B>pad1</B></tt>. The size
 of the Postscript picture, by default, is computed to keep the aspect ratio
 of the picture on the screen, where the size along x is always 20cm. You
 can set the size of the PostScript picture before generating the picture
 with a command such as:

 <PRE>
 TPostScript myps(&quot;myfile.ps&quot;,111)
 myps.Range(xsize,ysize);
 object-&gt;Draw();
 myps.Close();
 </PRE>

 <P>You can set the default paper size with:
 <PRE>
 gStyle-&gt;SetPaperSize(xsize,ysize);
 </PRE>
 <P>You can resume writing again in this file with <tt><B>myps.Open();</B></tt>.
 Note that you may have several Postscript files opened simultaneously.
 </UL>

 <H2>Output type</H2>

 The output type allows to define how the PostScript output will looks like.
 It allows to define the page format (A4, Legal etc..), the orientation
 (Portrait, Landscape) and the number of images (zones) per page.
 The output type has the following form:
 <pre>
 [Format][Nx][Ny][Type]
 </pre>
 Where:
 <ul>
 <li> Format : Is an integer between 0 and 99 defining the page format.
 Example:
 <br> Format = 3 the paper is in the standard A3 format.
 <br> Format = n (1<n<98) is an An format.
 <br> Format = 4 and Format=0 are the same and define an A4 page.
 <br> The A0 format is selected by Format=99.
 <br> The US format Letter is selected by Format = 100.
 <br> The US format Legal is selected by Format = 200.
 <br> The US format Ledger is selected by Format = 300.

 <li> Nx, Ny : Specify respectively the number of zones on the x and y axis.
 Nx and Ny are integers between 1 and 9.

 <li> Type : Can be equal to:
 <ul>
 <li> 1 : Portrait mode with a small margin at the bottom of the page.
 <li> 2 : Landscape mode with a small margin at the bottom of the page.
 <li> 4 : Portrait mode with a large margin at the bottom of the page.
 <li> 5 : Landscape mode with a large margin at the bottom of the page.
 The large margin is useful for some PostScript printers (very often
 for the colour printers) as they need more space to grip the paper
 for mechanical reasons. Note that some PostScript colour printers
 can also use the so called special A4 format permitting the full
 usage of the A4 area; in this case larger margins are not necessary
 and Type=1 or 2 can be used.
 <li> 3 : Encapsulated PostScript. This Type permits the generation of files
 which can be included in other documents, for example in LaTeX
 files.
 </ul>
 </ul>

 <H2>Making several pictures in the same Postscript file: case 1</H2>
 <P>The following macro is an example illustrating how to open a Postscript
 file and draw several pictures. The generation of a new Postscript page
 is automatic when <tt><B>TCanvas::Clear</B></tt> is called by
 <tt><b>object-&gt;Draw()</b></tt>.
 <PRE>
 {
 TFile f(&quot;hsimple.root&quot;);
 TCanvas c1(&quot;c1&quot;,&quot;canvas&quot;,800,600);

 <b>// select postscript output type</b>
 <b>// type = 111   portrait  ps</b>
 <b>// type = 112   landscape ps</b>
 <b>// type = 113   eps</b>
 Int_t type = 111;

 <b>// create a postscript file and set the paper size</b>
 TPostScript ps(&quot;test.ps&quot;,type);
 ps.Range(16,24);  //set x,y of printed page

 <b>// draw 3 histograms from file hsimple.root on separate pages</b>
 hpx-&gt;Draw();
 c1.Update();      //force drawing in a macro
 hprof-&gt;Draw();
 c1.Update();
 hpx-&gt;Draw(&quot;lego1&quot;);
 c1.Update();
 ps.Close();
 }
 </PRE>

 <H2>Making several pictures in the same Postscript file: case 2</H2>
 <P>This example shows 2 pages. The canvas is divided.
 <tt><B>TPostScript::NewPage</B></tt> must be called before starting a new
 picture.<tt><b>object-&gt;Draw</b></tt> does not clear the canvas in this case
 because we clear only the pads and not the main canvas.
 Note that <tt><b>c1-&gt;Update</b></tt> must be called at the end of the first
 picture.
 <PRE>
 {
 TFile *f1 = new TFile("hsimple.root");
 TCanvas *c1 = new TCanvas("c1");
 TPostScript *ps = new TPostScript("file.ps",112);
 c1-&gt;Divide(2,1);
 <b>// picture 1</b>
 ps-&gt;NewPage();
 c1-&gt;cd(1);
 hpx-&gt;Draw();
 c1-&gt;cd(2);
 hprof-&gt;Draw();
 c1-&gt;Update();

 <b>// picture 2</b>
 ps-&gt;NewPage();
 c1-&gt;cd(1);
 hpxpy-&gt;Draw();
 c1-&gt;cd(2);
 ntuple-&gt;Draw("px");
 c1-&gt;Update();
 ps-&gt;Close();

 <b>// invoke Postscript viewer</b>
 gSystem-&gt;Exec("gs file.ps");
 }
 </PRE>

 <H2>Making several pictures in the same Postscript file: case 3</H2>
 <b>This is the recommended way</b>. If the Postscript file name finishes with
 "(", the file remains opened (it is not closed). If the Postscript file name
 finishes with ")" and the file has been opened with "(", the file is closed.
 <P>Example:
 <PRE>
 {
 TCanvas c1("c1");
 h1.Draw();
 c1.Print("c1.ps(");  // write canvas and keep the ps file open
 h2.Draw();
 c1.Print("c1.ps");   // canvas is added to "c1.ps"
 h3.Draw();
 c1.Print("c1.ps)");  // canvas is added to "c1.ps" and ps file is closed
 }
 </PRE>
 The <tt>TCanvas::Print("file.ps(")</tt> mechanism is very useful, but it can
 be a little inconvenient to have the action of opening/closing a file being
 atomic with printing a page. Particularly if pages are being generated in some
 loop one needs to detect the special cases of first and last page and then
 munge the argument to Print() accordingly.
 <BR>The "[" and "]" can be used instead of "(" and ")" as shown below.
 <P>Example:
 <PRE>
 c1.Print("file.ps[");        // No actual print, just open file.ps

 for (int i=0; i<10; ++i) {
 // fill canvas for context i
 // ...

 c1.Print("file.ps");      // Actually print canvas to the file
 }

 c1.Print("file.ps]");        // No actual print, just close the file
 </PRE>

 <H2>Color Model</H2>
 TPostScript support two color model RGB and CMYK. CMY and CMYK models are
 subtractive color models unlike RGB which is an additive. They are mainly
 used for printing purposes. CMY means Cyan Magenta Yellow to convert RGB
 to CMY it is enough to do: C=1-R, M=1-G and Y=1-B. CMYK has one more
 component K (black). The conversion from RGB to CMYK is:
 <PRE>
 Double_t Black   = TMath::Min(TMath::Min(1-Red,1-Green),1-Blue);
 Double_t Cyan    = (1-Red-Black)/(1-Black);
 Double_t Magenta = (1-Green-Black)/(1-Black);
 Double_t Yellow  = (1-Blue-Black)/(1-Black);
 </PRE>
 CMYK add the black component which allows to have a better quality for black
 printing. PostScript support the CMYK model.
 <br>
 To change the color model use gStyle->SetColorModelPS(c).
 <ul>
 <li> c = 0 means TPostScript will use RGB color model (default)
 <li> c = 1 means TPostScript will use CMYK color model
 </ul>
 End_Html */

#ifdef WIN32
#pragma optimize("",off)
#endif

#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <wchar.h>

#include "Riostream.h"
#include "Byteswap.h"
#include "TROOT.h"
#include "TColor.h"
#include "TVirtualPad.h"
#include "TPoints.h"
#include "TPostScript.h"
#include "TStyle.h"
#include "TMath.h"
#include "TText.h"
#include "TSystem.h"
#include "TEnv.h"

#include "../../../graf2d/mathtext/inc/fontembed.h"

// to scale fonts to the same size as the old TT version
const Float_t kScale = 0.93376068;

// Array defining if a font must be embedded or not.
static Bool_t MustEmbed[32];

Int_t TPostScript::fgLineJoin = 0;

ClassImp(TPostScript)


//______________________________________________________________________________
TPostScript::TPostScript() : TVirtualPS()
{
   // Default PostScript constructor

   fStream          = 0;
   fType            = 0;
   gVirtualPS       = this;
   fBlue            = 0.;
   fBoundingBox     = kFALSE;
   fClear           = kFALSE;
   fClip            = 0;
   fClipStatus      = kFALSE;
   fCurrentColor    = 0;
   fDXC             = 0.;
   fDYC             = 0.;
   fFX              = 0.;
   fFY              = 0.;
   fGreen           = 0.;
   fIXzone          = 0;
   fIYzone          = 0;
   fLastCellBlue    = 0;
   fLastCellGreen   = 0;
   fLastCellRed     = 0;
   fLineJoin        = 0;
   fLineScale       = 0.;
   fMarkerSizeCur   = 0.;
   fMaxLines        = 0;
   fMaxsize         = 0;
   fMode            = 0;
   fNBSameColorCell = 0;
   fNXzone          = 0;
   fNYzone          = 0;
   fNbCellLine      = 0;
   fNbCellW         = 0;
   fNbinCT          = 0;
   fNpages          = 0;
   fRange           = kFALSE;
   fRed             = 0.;
   fSave            = 0;
   fX1v             = 0.;
   fX1w             = 0.;
   fX2v             = 0.;
   fX2w             = 0.;
   fXC              = 0.;
   fXVP1            = 0.;
   fXVP2            = 0.;
   fXVS1            = 0.;
   fXVS2            = 0.;
   fXsize           = 0.;
   fY1v             = 0.;
   fY1w             = 0.;
   fY2v             = 0.;
   fY2w             = 0.;
   fYC              = 0.;
   fYVP1            = 0.;
   fYVP2            = 0.;
   fYVS1            = 0.;
   fYVS2            = 0.;
   fYsize           = 0.;
   fZone            = kFALSE;
   fFileName        = "";
   fFontEmbed       = kFALSE;
   Int_t i;
   for (i=0; i<32; i++) fPatterns[i] = 0;
   for (i=0; i<32; i++) MustEmbed[i] = kFALSE;
   SetTitle("PS");
}


//______________________________________________________________________________
TPostScript::TPostScript(const char *fname, Int_t wtype)
:TVirtualPS(fname, wtype)
{
   // Initialize the PostScript interface
   //
   //  fname : PostScript file name
   //  wtype : PostScript workstation type
   //
   //
   //  The possible workstation types are:
   //     111 ps  Portrait
   //     112 ps  Landscape
   //     113 eps

   fStream = 0;
   SetTitle("PS");
   Open(fname, wtype);
}


//______________________________________________________________________________
void TPostScript::Open(const char *fname, Int_t wtype)
{
   // Open a PostScript file
   if (fStream) {
      Warning("Open", "postscript file already open");
      return;
   }

   fMarkerSizeCur = 0;
   fCurrentColor  = 0;
   fRed           = -1;
   fGreen         = -1;
   fBlue          = -1;
   fLenBuffer     = 0;
   fClip          = 0;
   fType          = abs(wtype);
   fClear         = kTRUE;
   fZone          = kFALSE;
   fSave          = 0;
   fFontEmbed     = kFALSE;
   SetLineScale(gStyle->GetLineScalePS());
   gStyle->GetPaperSize(fXsize, fYsize);
   fMode          = fType%10;
   Float_t xrange, yrange;
   if (gPad) {
      Double_t ww = gPad->GetWw();
      Double_t wh = gPad->GetWh();
      if (fType == 113) {
         ww *= gPad->GetWNDC();
         wh *= gPad->GetHNDC();
      }
      Double_t ratio = wh/ww;
      if (fType == 112) {
         xrange = fYsize;
         yrange = xrange*ratio;
         if (yrange > fXsize) { yrange = fXsize; xrange = yrange/ratio;}
      } else {
         xrange = fXsize;
         yrange = fXsize*ratio;
         if (yrange > fYsize) { yrange = fYsize; xrange = yrange/ratio;}
      }
      fXsize = xrange; fYsize = yrange;
   }

   // Open OS file
   fFileName = fname;
   fStream = new std::ofstream(fFileName.Data(),std::ios::out);
   if (fStream == 0 || gSystem->AccessPathName(fFileName.Data(),kWritePermission)) {
      printf("ERROR in TPostScript::Open: Cannot open file:%s\n",fFileName.Data());
      return;
   }
   gVirtualPS = this;

   for (Int_t i=0;i<fSizBuffer;i++) fBuffer[i] = ' ';
   if( fType == 113) {
      fBoundingBox = kFALSE;
      PrintStr("%!PS-Adobe-2.0 EPSF-2.0@");
   } else {
      fBoundingBox = kTRUE;
      PrintStr("%!PS-Adobe-2.0@");
      Initialize();
   }

   fClipStatus = kFALSE;
   fRange      = kFALSE;

   // Set a default range
   Range(fXsize, fYsize);

   fPrinted    = kFALSE;
   if (fType == 113) NewPage();
}


//______________________________________________________________________________
TPostScript::~TPostScript()
{
   // Default PostScript destructor

   Close();
}


//______________________________________________________________________________
void TPostScript::Close(Option_t *)
{
   // Close a PostScript file

   if (!gVirtualPS) return;
   if (!fStream) return;
   if (gPad) gPad->Update();
   if( fMode != 3) {
      SaveRestore(-1);
      if( fPrinted ) { PrintStr("showpage@"); SaveRestore(-1);}
      PrintStr("@");
      PrintStr("%%Trailer@");
      PrintStr("%%Pages: ");
      WriteInteger(fNpages);
      PrintStr("@");
      while (fSave > 0) { SaveRestore(-1); }
   } else {
      PrintStr("@");
      while (fSave > 0) { SaveRestore(-1); }
      PrintStr("showpage@");
      PrintStr("end@");
   }
   PrintStr("@");
   PrintStr("%%EOF@");

   // Embed the fonts previously used by TMathText
   if (!fFontEmbed) {
      // Close the file fFileName
      if (fStream) {
         PrintStr("@");
         fStream->close(); delete fStream; fStream = 0;
      }

      // Rename the file fFileName
      TString tmpname = Form("%s_tmp_%d",fFileName.Data(),gSystem->GetPid());
      if (gSystem->Rename( fFileName.Data() , tmpname.Data())) {
         Error("Text", "Cannot open temporary file: %s\n", tmpname.Data());
         return;
      }

      // Reopen the file fFileName
      fStream = new std::ofstream(fFileName.Data(),std::ios::out);
      if (fStream == 0 || gSystem->AccessPathName(fFileName.Data(),kWritePermission)) {
         Error("Text", "Cannot open file: %s\n", fFileName.Data());
         return;
      }

      // Embed the fonts at the right place
      FILE *sg = fopen(tmpname.Data(),"r");
      if (sg == 0) {
         Error("Text", "Cannot open file: %s\n", tmpname.Data());
         return;
      }
      char line[255];
      while (fgets(line,255,sg)) {
         if (strstr(line,"EndComments")) PrintStr("%%DocumentNeededResources: ProcSet (FontSetInit)@");
         fStream->write(line,strlen(line));
         if (!fFontEmbed && strstr(line,"m5")) {
            FontEmbed();
            PrintStr("@");
         }
      }
      fclose(sg);
      if (gSystem->Unlink(tmpname.Data())) return;
   }

   fFontEmbed = kFALSE;

   // Close file stream

   if (fStream) { fStream->close(); delete fStream; fStream = 0;}

   gVirtualPS = 0;
}


//______________________________________________________________________________
void TPostScript::On()
{
   // Activate an already open PostScript file

   if (!fType) {
      Error("On", "no postscript file open");
      Off();
      return;
   }
   gVirtualPS = this;
}


//______________________________________________________________________________
void TPostScript::Off()
{
   // Deactivate an already open PostScript file

   gVirtualPS = 0;
}


//______________________________________________________________________________
void TPostScript::CellArrayBegin(Int_t W, Int_t /*H*/, Double_t x1, Double_t x2,
                                 Double_t y1, Double_t y2)
{
   // Draw a Cell Array
   //
   // Drawing a PostScript Cell Array is in fact done thanks to three
   // procedures: CellArrayBegin, CellArrayFill, and CellArrayEnd.
   //
   // CellArrayBegin: Initiate the Cell Array by writing the necessary
   //                 PostScript procedures and the initial values of the
   //                 required parameters. The input parameters are:
   //                 W: number of boxes along the width.
   //                 H: number of boxes along the height
   //                 x1,x2,y1,y2: First box coordinates.
   // CellArrayFill:  Is called for each box of the Cell Array. The first
   //                 box is the top left one and the last box is the
   //                 bottom right one. The input parameters are the Red,
   //                 Green, and Blue components of the box colour. These
   //                 Levels are between 0 and 255.
   // CellArrayEnd:   Finishes the Cell Array.
   //
   // PostScript cannot handle arrays larger than 65535. So the Cell Array
   // is drawn in several pieces.

   Int_t ix1 = XtoPS(x1);
   Int_t iy1 = YtoPS(y1);

   Float_t wt = (288/2.54)*gPad->GetAbsWNDC()*
   fXsize*((x2 - x1)/(gPad->GetX2()-gPad->GetX1()));
   Float_t ht = (288/2.54)*gPad->GetAbsHNDC()*
   fYsize*((y2 - y1)/(gPad->GetY2()-gPad->GetY1()));

   fLastCellRed     = 300;
   fLastCellGreen   = 300;
   fLastCellBlue    = 300;
   fNBSameColorCell = 0;

   fNbinCT = 0;
   fNbCellW = W;
   fNbCellLine = 0;
   fMaxLines = 40000/(3*fNbCellW);

   // Define some paremeters
   PrintStr("@/WT"); WriteReal(wt)          ; PrintStr(" def"); // Cells width
   PrintStr(" /HT"); WriteReal(ht)          ; PrintStr(" def"); // Cells height
   PrintStr(" /XS"); WriteInteger(ix1)      ; PrintStr(" def"); // X start
   PrintStr(" /YY"); WriteInteger(iy1)      ; PrintStr(" def"); // Y start
   PrintStr(" /NX"); WriteInteger(W)        ; PrintStr(" def"); // Number of columns
   PrintStr(" /NY"); WriteInteger(fMaxLines); PrintStr(" def"); // Number of lines

   // This PS procedure draws one cell.
   PrintStr(" /DrawCell ");
   PrintStr(   "{WT HT XX YY bf");
   PrintStr(   " /NBBD NBBD 1 add def");
   PrintStr(   " NBBD NBB eq {exit} if");
   PrintStr(   " /XX WT XX add def");
   PrintStr(   " IX NX eq ");
   PrintStr(      "{/YY YY HT sub def");
   PrintStr(      " /XX XS def");
   PrintStr(      " /IX 0 def} if");
   PrintStr(   " /IX IX 1 add def} def");

   // This PS procedure draws fMaxLines line. It takes care of duplicated
   // colors. Values "n" greater than 300 mean than the previous color
   // should be duplicated n-300 times.
   PrintStr(" /DrawCT ");
   PrintStr(   "{/NBB NX NY mul def");
   PrintStr(   " /XX XS def");
   PrintStr(   " /IX 1 def");
   PrintStr(   " /NBBD 0 def");
   PrintStr(   " /RC 0 def /GC 1 def /BC 2 def");
   PrintStr(   " 1 1 NBB ");
   PrintStr(      "{/NB CT RC get def");
   PrintStr(      " NB 301 ge ");
   PrintStr(         "{/NBL NB 300 sub def");
   PrintStr(         " 1 1 NBL ");
   PrintStr(            "{DrawCell}");
   PrintStr(         " for");
   PrintStr(         " /RC RC 1 add def");
   PrintStr(         " /GC RC 1 add def");
   PrintStr(         " /BC RC 2 add def}");
   PrintStr(         "{CT RC get 255 div CT GC get 255 div CT BC get 255 div setrgbcolor");
   PrintStr(         " DrawCell");
   PrintStr(         " /RC RC 3 add def");
   PrintStr(         " /GC GC 3 add def");
   PrintStr(         " /BC BC 3 add def} ifelse NBBD NBB eq {exit} if} for");
   PrintStr(         " /YY YY HT sub def clear} def");

   PrintStr(" /CT [");
}


//______________________________________________________________________________
void TPostScript::CellArrayFill(Int_t r, Int_t g, Int_t b)
{
   // Paint the Cell Array

   if (fLastCellRed == r && fLastCellGreen == g && fLastCellBlue == b) {
      fNBSameColorCell++;
   } else {
      if (fNBSameColorCell != 0 ) {
         WriteInteger(fNBSameColorCell+300);
         fNBSameColorCell = 0;
      }
      WriteInteger(r);
      WriteInteger(g);
      WriteInteger(b);
      fLastCellRed = r;
      fLastCellGreen = g;
      fLastCellBlue = b;
   }

   fNbinCT++;
   if (fNbinCT == fNbCellW) {
      fNbCellLine++;
      fNbinCT = 0;
   }

   if (fNbCellLine == fMaxLines) {
      if (fNBSameColorCell != 0) WriteInteger(fNBSameColorCell+300);
      PrintStr("] def DrawCT /CT [");
      fNbCellLine = 0;
      fLastCellRed = 300;
      fLastCellGreen = 300;
      fLastCellBlue = 300;
      fNBSameColorCell = 0;
      fNbinCT = 0;
   }
}


//______________________________________________________________________________
void TPostScript::CellArrayEnd()
{
   // End the Cell Array painting

   if (fNBSameColorCell != 0 ) WriteInteger(fNBSameColorCell+300);
   PrintStr("] def /NY");
   WriteInteger(fNbCellLine);
   PrintStr(" def DrawCT ");
}


//______________________________________________________________________________
void TPostScript::DefineMarkers()
{
   // Define the markers

   PrintStr("/mp {newpath /y exch def /x exch def} def@");
   PrintStr("/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def@");
   PrintStr("/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def@");
   PrintStr("/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def@");
   PrintStr("/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def@");
   PrintStr("/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def@");
   PrintStr("/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def@");
   PrintStr("/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def@");
   PrintStr("/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d ");
   PrintStr(" 0 w3 neg d w3 0 d 0 w3 d w3 0 d ");
   PrintStr(" 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d");
   PrintStr(" 0 w3 neg d w3 neg 0 d cl s } def@");
   PrintStr("/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t");
   PrintStr(" 4 {side} repeat cl fill gr} def@");
   PrintStr("/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t");
   PrintStr(" 4 {side} repeat cl s gr} def@");
   PrintStr("/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d");
   PrintStr(" x w2 sub y w2 add m w w neg d x w2 sub y w2");
   PrintStr(" sub m w w d s} def@");
   PrintStr("/m32 {mp x y w2 sub m w2 w d w neg 0 d cl s} def@");
   PrintStr("/m33 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl f} def@");
   PrintStr("/m34 {mp x w2 sub y w2 sub w3 add m w3 0 d ");
   PrintStr(" 0 w3 neg d w3 0 d 0 w3 d w3 0 d ");
   PrintStr(" 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d");
   PrintStr(" 0 w3 neg d w3 neg 0 d cl f } def@");
   PrintStr("/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def@");
   PrintStr("/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def@");
}


//______________________________________________________________________________
void TPostScript::DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t  y2)
{
   // Draw a Box

   static Double_t x[4], y[4];
   Int_t ix1 = XtoPS(x1);
   Int_t ix2 = XtoPS(x2);
   Int_t iy1 = YtoPS(y1);
   Int_t iy2 = YtoPS(y2);
   Int_t fillis = fFillStyle/1000;
   Int_t fillsi = fFillStyle%1000;

   if (fillis == 3 || fillis == 2) {
      if (fillsi > 99) {
         x[0] = x1;   y[0] = y1;
         x[1] = x2;   y[1] = y1;
         x[2] = x2;   y[2] = y2;
         x[3] = x1;   y[3] = y2;
         return;
      }
      if (fillsi > 0 && fillsi < 26) {
         x[0] = x1;   y[0] = y1;
         x[1] = x2;   y[1] = y1;
         x[2] = x2;   y[2] = y2;
         x[3] = x1;   y[3] = y2;
         DrawPS(-4, &x[0], &y[0]);
      }
      if (fillsi == -3) {
         SetColor(5);
         WriteInteger(ix2 - ix1);
         WriteInteger(iy2 - iy1);
         WriteInteger(ix1);
         WriteInteger(iy1);
         PrintFast(3," bf");
      }
   }
   if (fillis == 1) {
      SetColor(fFillColor);
      WriteInteger(ix2 - ix1);
      WriteInteger(iy2 - iy1);
      WriteInteger(ix1);
      WriteInteger(iy1);
      PrintFast(3," bf");
   }
   if (fillis == 0) {
      if (fLineWidth<=0) return;
      SetColor(fLineColor);
      WriteInteger(ix2 - ix1);
      WriteInteger(iy2 - iy1);
      WriteInteger(ix1);
      WriteInteger(iy1);
      PrintFast(3," bl");
   }
}


//______________________________________________________________________________
void TPostScript::DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t  yt,
                            Int_t mode, Int_t border, Int_t dark, Int_t light)
{
   // Draw a Frame around a box
   //
   // mode = -1  box looks as it is behind the screen
   // mode =  1  box looks as it is in front of the screen
   // border is the border size in already precomputed PostScript units
   // dark  is the color for the dark part of the frame
   // light is the color for the light part of the frame

   static Int_t xps[7], yps[7];
   Int_t i, ixd0, iyd0, idx, idy, ixdi, iydi, ix, iy;

   // Draw top&left part of the box
   if (mode == -1) SetColor(dark);
   else            SetColor(light);
   Int_t bordPS = 4*border;
   xps[0] = XtoPS(xl);          yps[0] = YtoPS(yl);
   xps[1] = xps[0] + bordPS;    yps[1] = yps[0] + bordPS;
   xps[2] = xps[1];             yps[2] = YtoPS(yt) - bordPS;
   xps[3] = XtoPS(xt) - bordPS; yps[3] = yps[2];
   xps[4] = XtoPS(xt);          yps[4] = YtoPS(yt);
   xps[5] = xps[0];             yps[5] = yps[4];
   xps[6] = xps[0];             yps[6] = yps[0];

   ixd0 = xps[0];
   iyd0 = yps[0];
   WriteInteger(ixd0);
   WriteInteger(iyd0);

   PrintFast(2," m");
   idx = 0;
   idy = 0;
   for (i=1;i<7;i++) {
      ixdi = xps[i];
      iydi = yps[i];
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
         continue;
      }
      if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0; }
         if( !idx ) { idx = ix; continue;}
         if( ix*idx > 0 )       idx += ix;
         else { MovePS(idx,0);  idx  = ix; }
         continue;
      }
      if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( !idy) { idy = iy; continue;}
         if( iy*idy > 0 )         idy += iy;
         else { MovePS(0,idy);    idy  = iy; }
      }
   }
   if( idx ) MovePS(idx,0);
   if( idy ) MovePS(0,idy);
   PrintFast(2," f");

   // Draw bottom&right part of the box
   if (mode == -1) SetColor(light);
   else            SetColor(dark);
   xps[0] = XtoPS(xl);          yps[0] = YtoPS(yl);
   xps[1] = xps[0] + bordPS;    yps[1] = yps[0] + bordPS;
   xps[2] = XtoPS(xt) - bordPS; yps[2] = yps[1];
   xps[3] = xps[2];             yps[3] = YtoPS(yt) - bordPS;
   xps[4] = XtoPS(xt);          yps[4] = YtoPS(yt);
   xps[5] = xps[4];             yps[5] = yps[0];
   xps[6] = xps[0];             yps[6] = yps[0];

   ixd0 = xps[0];
   iyd0 = yps[0];
   WriteInteger(ixd0);
   WriteInteger(iyd0);

   PrintFast(2," m");
   idx = 0;
   idy = 0;
   for (i=1;i<7;i++) {
      ixdi = xps[i];
      iydi = yps[i];
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
         continue;
      }
      if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0; }
         if( !idx ) { idx = ix; continue;}
         if( ix*idx > 0 )       idx += ix;
         else { MovePS(idx,0);  idx  = ix; }
         continue;
      }
      if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( !idy) { idy = iy; continue;}
         if( iy*idy > 0 )         idy += iy;
         else { MovePS(0,idy);    idy  = iy; }
      }
   }
   if( idx ) MovePS(idx,0);
   if( idy ) MovePS(0,idy);
   PrintFast(2," f");
}


//______________________________________________________________________________
void TPostScript::DrawPolyLine(Int_t nn, TPoints *xy)
{
   // Draw a PolyLine
   //
   //  Draw a polyline through  the points xy.
   //  If nn=1 moves only to point x,y.
   //  If nn=0 the x,y are  written  in the PostScript file
   //          according to the current transformation.
   //  If nn>0 the line is clipped as a line.
   //  If nn<0 the line is clipped as a fill area.

   Int_t  i, n, ixd0, iyd0, idx, idy, ixdi, iydi, ix, iy;
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;
   if (nn > 0) {
      if (fLineWidth<=0) return;
      n = nn;
      SetLineStyle(fLineStyle);
      SetLineWidth(fLineWidth);
      SetColor(Int_t(fLineColor));
   } else {
      n = -nn;
      SetLineStyle(1);
      SetLineWidth(1);
      SetColor(Int_t(fLineColor));
   }

   ixd0 = XtoPS(xy[0].GetX());
   iyd0 = YtoPS(xy[0].GetY());
   WriteInteger(ixd0);
   WriteInteger(iyd0);
   if( n <= 1) {
      if( n == 0) goto END;
      PrintFast(2," m");
      goto END;
   }

   PrintFast(2," m");
   idx = 0;
   idy = 0;
   for (i=1;i<n;i++) {
      ixdi = XtoPS(xy[i].GetX());
      iydi = YtoPS(xy[i].GetY());
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
         continue;
      }
      if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0; }
         if( !idx ) { idx = ix; continue;}
         if( ix*idx > 0 )       idx += ix;
         else { MovePS(idx,0);  idx  = ix; }
         continue;
      }
      if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( !idy) { idy = iy; continue;}
         if( iy*idy > 0 )         idy += iy;
         else { MovePS(0,idy);    idy  = iy; }
      }
   }
   if( idx ) MovePS(idx,0);
   if( idy ) MovePS(0,idy);

   if (nn > 0 ) {
      if (xy[0].GetX() == xy[n-1].GetX() && xy[0].GetY() == xy[n-1].GetY()) PrintFast(3," cl");
      PrintFast(2," s");
   } else {
      PrintFast(2," f");
   }
END:
   if (nn < 0) {
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
   }
}


//______________________________________________________________________________
void TPostScript::DrawPolyLineNDC(Int_t nn, TPoints *xy)
{
   // Draw a PolyLine in NDC space
   //
   //  Draw a polyline through the points xy.
   //  If nn=1 moves only to point x,y.
   //  If nn=0 the x,y are  written  in the PostScript file
   //          according to the current transformation.
   //  If nn>0 the line is clipped as a line.
   //  If nn<0 the line is clipped as a fill area.

   Int_t  i, n, ixd0, iyd0, idx, idy, ixdi, iydi, ix, iy;
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;
   if (nn > 0) {
      if (fLineWidth<=0) return;
      n = nn;
      SetLineStyle(fLineStyle);
      SetLineWidth(fLineWidth);
      SetColor(Int_t(fLineColor));
   } else {
      n = -nn;
      SetLineStyle(1);
      SetLineWidth(1);
      SetColor(Int_t(fLineColor));
   }

   ixd0 = UtoPS(xy[0].GetX());
   iyd0 = VtoPS(xy[0].GetY());
   WriteInteger(ixd0);
   WriteInteger(iyd0);
   if( n <= 1) {
      if( n == 0) goto END;
      PrintFast(2," m");
      goto END;
   }

   PrintFast(2," m");
   idx = 0;
   idy = 0;
   for (i=1;i<n;i++) {
      ixdi = UtoPS(xy[i].GetX());
      iydi = VtoPS(xy[i].GetY());
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
         continue;
      }
      if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0; }
         if( !idx ) { idx = ix; continue;}
         if( ix*idx > 0 )       idx += ix;
         else { MovePS(idx,0);  idx  = ix; }
         continue;
      }
      if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( !idy) { idy = iy; continue;}
         if( iy*idy > 0 )         idy += iy;
         else { MovePS(0,idy);    idy  = iy; }
      }
   }
   if( idx ) MovePS(idx,0);
   if( idy ) MovePS(0,idy);

   if (nn > 0 ) {
      if (xy[0].GetX() == xy[n-1].GetX() && xy[0].GetY() == xy[n-1].GetY()) PrintFast(3," cl");
      PrintFast(2," s");
   } else {
      PrintFast(2," f");
   }
END:
   if (nn < 0) {
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
   }
}


//______________________________________________________________________________
void TPostScript::DrawPolyMarker(Int_t n, Float_t *x, Float_t *y)
{
   // Draw markers at the n WC points x, y

   Int_t i, np, markerstyle;
   Float_t markersize;
   static char chtemp[10];

   if (!fMarkerSize) return;
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;
   SetLineStyle(1);
   SetLineWidth(1);
   SetColor(Int_t(fMarkerColor));
   markerstyle = abs(fMarkerStyle);
   if (markerstyle <= 0) strlcpy(chtemp, " m20",10);
   if (markerstyle == 1) strlcpy(chtemp, " m20",10);
   if (markerstyle == 2) strlcpy(chtemp, " m2",10);
   if (markerstyle == 3) strlcpy(chtemp, " m31",10);
   if (markerstyle == 4) strlcpy(chtemp, " m24",10);
   if (markerstyle == 5) strlcpy(chtemp, " m5",10);
   if (markerstyle >= 6 && markerstyle <= 19) strlcpy(chtemp, " m20",10);
   if (markerstyle >= 20 && markerstyle <= 34 ) snprintf(chtemp,10," m%d", markerstyle);
   if (markerstyle >= 35) strlcpy(chtemp, " m20",10);

   // Set the PostScript marker size
   if (markerstyle == 1) {
      markersize = 2.;
   } else if (markerstyle == 6) {
      markersize = 4.;
   } else if (markerstyle == 7) {
      markersize = 8.;
   } else {
      Float_t symbolsize  = fMarkerSize;
      const Int_t kBASEMARKER = 8;
      Float_t sbase = symbolsize*kBASEMARKER;
      Float_t s2x = sbase / Float_t(gPad->GetWw() * gPad->GetAbsWNDC());
      markersize = this->UtoPS(s2x) - this->UtoPS(0);
   }

   if (fMarkerSizeCur != markersize) {
      fMarkerSizeCur = markersize;
      PrintFast(3," /w");
      WriteInteger(Int_t(markersize+0.5));
      PrintFast(40," def /w2 {w 2 div} def /w3 {w 3 div} def");
   }

   WriteInteger(XtoPS(x[0]));
   WriteInteger(YtoPS(y[0]));
   if (n == 1) {
      PrintStr(chtemp);
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
      return;
   }
   np = 1;
   for (i=1;i<n;i++) {
      WriteInteger(XtoPS(x[i]));
      WriteInteger(YtoPS(y[i]));
      np++;
      if (np == 100 || i == n-1) {
         WriteInteger(np);
         PrintFast(2," {");
         PrintStr(chtemp);
         PrintFast(3,"} R");
         np = 0;
      }
   }
   SetLineStyle(linestylesav);
   SetLineWidth(linewidthsav);
}


//______________________________________________________________________________
void TPostScript::DrawPolyMarker(Int_t n, Double_t *x, Double_t *y)
{
   // Draw markers at the n WC points x, y

   Int_t i, np, markerstyle;
   Float_t markersize;
   static char chtemp[10];

   if (!fMarkerSize) return;
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;
   SetLineStyle(1);
   SetLineWidth(1);
   SetColor(Int_t(fMarkerColor));
   markerstyle = abs(fMarkerStyle);
   if (markerstyle <= 0) strlcpy(chtemp, " m20",10);
   if (markerstyle == 1) strlcpy(chtemp, " m20",10);
   if (markerstyle == 2) strlcpy(chtemp, " m2",10);
   if (markerstyle == 3) strlcpy(chtemp, " m31",10);
   if (markerstyle == 4) strlcpy(chtemp, " m24",10);
   if (markerstyle == 5) strlcpy(chtemp, " m5",10);
   if (markerstyle >= 6 && markerstyle <= 19) strlcpy(chtemp, " m20",10);
   if (markerstyle >= 20 && markerstyle <= 34 ) snprintf(chtemp,10," m%d", markerstyle);
   if (markerstyle >= 35) strlcpy(chtemp, " m20",10);

   // Set the PostScript marker size
   if (markerstyle == 1) {
      markersize = 2.;
   } else if (markerstyle == 6) {
      markersize = 4.;
   } else if (markerstyle == 7) {
      markersize = 8.;
   } else {
      Float_t symbolsize  = fMarkerSize;
      const Int_t kBASEMARKER = 8;
      Float_t sbase = symbolsize*kBASEMARKER;
      Float_t s2x = sbase / Float_t(gPad->GetWw() * gPad->GetAbsWNDC());
      markersize = this->UtoPS(s2x) - this->UtoPS(0);
   }

   if (fMarkerSizeCur != markersize) {
      fMarkerSizeCur = markersize;
      PrintFast(3," /w");
      WriteInteger(Int_t(markersize+0.5));
      PrintFast(40," def /w2 {w 2 div} def /w3 {w 3 div} def");
   }

   WriteInteger(XtoPS(x[0]));
   WriteInteger(YtoPS(y[0]));
   if (n == 1) {
      PrintStr(chtemp);
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
      return;
   }
   np = 1;
   for (i=1;i<n;i++) {
      WriteInteger(XtoPS(x[i]));
      WriteInteger(YtoPS(y[i]));
      np++;
      if (np == 100 || i == n-1) {
         WriteInteger(np);
         PrintFast(2," {");
         PrintStr(chtemp);
         PrintFast(3,"} R");
         np = 0;
      }
   }
   SetLineStyle(linestylesav);
   SetLineWidth(linewidthsav);
}


//______________________________________________________________________________
void TPostScript::DrawPS(Int_t nn, Float_t *xw, Float_t *yw)
{
   // Draw a PolyLine
   //
   //  Draw a polyline through the points xw,yw.
   //  If nn=1 moves only to point xw,yw.
   //  If nn=0 the XW(1) and YW(1) are  written  in the PostScript file
   //          according to the current NT.
   //  If nn>0 the line is clipped as a line.
   //  If nn<0 the line is clipped as a fill area.

   static Float_t dyhatch[24] = {.0075,.0075,.0075,.0075,.0075,.0075,.0075,.0075,
      .01  ,.01  ,.01  ,.01  ,.01  ,.01  ,.01  ,.01  ,
      .015 ,.015 ,.015 ,.015 ,.015 ,.015 ,.015 ,.015};
   static Float_t anglehatch[24] = {180, 90,135, 45,150, 30,120, 60,
      180, 90,135, 45,150, 30,120, 60,
      180, 90,135, 45,150, 30,120, 60};
   Int_t  i, n, ixd0, iyd0, idx, idy, ixdi, iydi, ix, iy, fais, fasi;
   fais = fasi = n = 0;
   Int_t jxd0 = XtoPS(xw[0]);
   Int_t jyd0 = YtoPS(yw[0]);
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;

   if (nn > 0) {
      if (fLineWidth<=0) return;
      n = nn;
      SetLineStyle(fLineStyle);
      SetLineWidth(fLineWidth);
      SetColor(Int_t(fLineColor));
   }
   if (nn < 0) {
      n = -nn;
      SetLineStyle(1);
      SetLineWidth(1);
      SetColor(Int_t(fFillColor));
      fais = fFillStyle/1000;
      fasi = fFillStyle%1000;
      if (fais == 3 || fais == 2) {
         if (fasi > 100 && fasi <125) {
            DrawHatch(dyhatch[fasi-101],anglehatch[fasi-101], n, xw, yw);
            goto END;
         }
         if (fasi > 0 && fasi < 26) {
            SetFillPatterns(fasi, Int_t(fFillColor));
         }
      }
   }

   ixd0 = jxd0;
   iyd0 = jyd0;
   WriteInteger(ixd0);
   WriteInteger(iyd0);
   if( n <= 1) {
      if( n == 0) goto END;
      PrintFast(2," m");
      goto END;
   }

   PrintFast(2," m");
   idx = idy = 0;
   for (i=1;i<n;i++) {
      ixdi = XtoPS(xw[i]);
      iydi = YtoPS(yw[i]);
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
      } else if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0;}
         if( !idx ) { idx = ix;}
         else if( TMath::Sign(ix,idx) == ix )       idx += ix;
         else { MovePS(idx,0);  idx  = ix;}
      } else if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0;}
         if( !idy) { idy = iy;}
         else if( TMath::Sign(iy,idy) == iy)         idy += iy;
         else { MovePS(0,idy);    idy  = iy;}
      }
   }
   if (idx) MovePS(idx,0);
   if (idy) MovePS(0,idy);

   if (nn > 0 ) {
      if (xw[0] == xw[n-1] && yw[0] == yw[n-1]) PrintFast(3," cl");
      PrintFast(2," s");
   } else {
      if (fais == 0) {PrintFast(5," cl s"); goto END;}
      if (fais == 3 || fais == 2) {
         if (fasi > 0 && fasi < 26) {
            PrintFast(3," FA");
            fRed   = -1;
            fGreen = -1;
            fBlue  = -1;
         }
         goto END;
      }
      PrintFast(2," f");
   }
END:
   if (nn < 0) {
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
   }
}


//______________________________________________________________________________
void TPostScript::DrawPS(Int_t nn, Double_t *xw, Double_t *yw)
{
   // Draw a PolyLine
   //
   // Draw a polyline through  the points xw,yw.
   // If nn=1 moves only to point xw,yw.
   // If nn=0 the xw(1) and YW(1) are  written  in the PostScript file
   //         according to the current NT.
   // If nn>0 the line is clipped as a line.
   // If nn<0 the line is clipped as a fill area.

   static Float_t dyhatch[24] = {.0075,.0075,.0075,.0075,.0075,.0075,.0075,.0075,
      .01  ,.01  ,.01  ,.01  ,.01  ,.01  ,.01  ,.01  ,
      .015 ,.015 ,.015 ,.015 ,.015 ,.015 ,.015 ,.015};
   static Float_t anglehatch[24] = {180, 90,135, 45,150, 30,120, 60,
      180, 90,135, 45,150, 30,120, 60,
      180, 90,135, 45,150, 30,120, 60};
   Int_t  i, n, ixd0, iyd0, idx, idy, ixdi, iydi, ix, iy, fais, fasi;
   fais = fasi = n = 0;
   Int_t jxd0 = XtoPS(xw[0]);
   Int_t jyd0 = YtoPS(yw[0]);
   Style_t linestylesav = fLineStyle;
   Width_t linewidthsav = fLineWidth;

   if (nn > 0) {
      if (fLineWidth<=0) return;
      n = nn;
      SetLineStyle(fLineStyle);
      SetLineWidth(fLineWidth);
      SetColor(Int_t(fLineColor));
   }
   if (nn < 0) {
      n = -nn;
      SetLineStyle(1);
      SetLineWidth(1);
      SetColor(Int_t(fFillColor));
      fais = fFillStyle/1000;
      fasi = fFillStyle%1000;
      if (fais == 3 || fais == 2) {
         if (fasi > 100 && fasi <125) {
            DrawHatch(dyhatch[fasi-101],anglehatch[fasi-101], n, xw, yw);
            goto END;
         }
         if (fasi > 0 && fasi < 26) {
            SetFillPatterns(fasi, Int_t(fFillColor));
         }
      }
   }

   ixd0 = jxd0;
   iyd0 = jyd0;
   WriteInteger(ixd0);
   WriteInteger(iyd0);
   if( n <= 1) {
      if( n == 0) goto END;
      PrintFast(2," m");
      goto END;
   }

   PrintFast(2," m");
   idx = idy = 0;
   for (i=1;i<n;i++) {
      ixdi = XtoPS(xw[i]);
      iydi = YtoPS(yw[i]);
      ix   = ixdi - ixd0;
      iy   = iydi - iyd0;
      ixd0 = ixdi;
      iyd0 = iydi;
      if( ix && iy) {
         if( idx ) { MovePS(idx,0); idx = 0; }
         if( idy ) { MovePS(0,idy); idy = 0; }
         MovePS(ix,iy);
      } else if ( ix ) {
         if( idy )  { MovePS(0,idy); idy = 0;}
         if( !idx ) { idx = ix;}
         else if( TMath::Sign(ix,idx) == ix )       idx += ix;
         else { MovePS(idx,0);  idx  = ix;}
      } else if( iy ) {
         if( idx ) { MovePS(idx,0); idx = 0;}
         if( !idy) { idy = iy;}
         else if( TMath::Sign(iy,idy) == iy)         idy += iy;
         else { MovePS(0,idy);    idy  = iy;}
      }
   }
   if (idx) MovePS(idx,0);
   if (idy) MovePS(0,idy);

   if (nn > 0 ) {
      if (xw[0] == xw[n-1] && yw[0] == yw[n-1]) PrintFast(3," cl");
      PrintFast(2," s");
   } else {
      if (fais == 0) {PrintFast(5," cl s"); goto END;}
      if (fais == 3 || fais == 2) {
         if (fasi > 0 && fasi < 26) {
            PrintFast(3," FA");
            fRed   = -1;
            fGreen = -1;
            fBlue  = -1;
         }
         goto END;
      }
      PrintFast(2," f");
   }
END:
   if (nn < 0) {
      SetLineStyle(linestylesav);
      SetLineWidth(linewidthsav);
   }
}


//______________________________________________________________________________
void TPostScript::DrawHatch(Float_t, Float_t, Int_t, Float_t *, Float_t *)
{
   // Draw Fill area with hatch styles

   Warning("DrawHatch", "hatch fill style not yet implemented");
}


//______________________________________________________________________________
void TPostScript::DrawHatch(Float_t, Float_t, Int_t, Double_t *, Double_t *)
{
   // Draw Fill area with hatch styles

   Warning("DrawHatch", "hatch fill style not yet implemented");
}


//______________________________________________________________________________
Bool_t TPostScript::FontEmbedType1(const char *filename)
{
   std::ifstream font_file(filename, std::ios::binary);

   // We cannot read directly using iostream iterators due to
   // signedness
   font_file.seekg(0, std::ios::end);

   const size_t font_file_length = font_file.tellg();

   font_file.seekg(0, std::ios::beg);

   std::vector<unsigned char> font_data(font_file_length, '\0');

   font_file.read(reinterpret_cast<char *>(&font_data[0]),
                  font_file_length);

   std::string font_name;
   std::string postscript_string =
   mathtext::font_embed_postscript_t::font_embed_type_1(
                                                        font_name, font_data);

   if (!postscript_string.empty()) {
      PrintRaw(postscript_string.size(), postscript_string.data());
      PrintStr("@");

      return true;
   }

   return false;
}


//______________________________________________________________________________
Bool_t TPostScript::FontEmbedType2(const char *filename)
{
   std::ifstream font_file(filename, std::ios::binary);

   // We cannot read directly using iostream iterators due to
   // signedness
   font_file.seekg(0, std::ios::end);

   const size_t font_file_length = font_file.tellg();

   font_file.seekg(0, std::ios::beg);

   std::vector<unsigned char> font_data(font_file_length, '\0');

   font_file.read(reinterpret_cast<char *>(&font_data[0]), font_file_length);

   std::string font_name;
   std::string postscript_string =
   mathtext::font_embed_postscript_t::font_embed_type_2(font_name, font_data);

   if (!postscript_string.empty()) {
      PrintRaw(postscript_string.size(), postscript_string.data());
      PrintStr("@");

      return true;
   }

   return false;
}


//______________________________________________________________________________
Bool_t TPostScript::FontEmbedType42(const char *filename)
{
   std::ifstream font_file(filename, std::ios::binary);

    // We cannot read directly using iostream iterators due to signedness

   font_file.seekg(0, std::ios::end);

   const size_t font_file_length = font_file.tellg();

   font_file.seekg(0, std::ios::beg);

   std::vector<unsigned char> font_data(font_file_length, '\0');

   font_file.read(reinterpret_cast<char *>(&font_data[0]), font_file_length);

   std::string font_name;
   std::string postscript_string =
   mathtext::font_embed_postscript_t::font_embed_type_42(font_name, font_data);

   if (!postscript_string.empty()) {
      PrintRaw(postscript_string.size(), postscript_string.data());
      PrintStr("@");

      return true;
   }
   fprintf(stderr, "%s:%d:\n", __FILE__, __LINE__);

   return false;
}


//______________________________________________________________________________
void TPostScript::FontEmbed(void)
{
   // Embed font in PS file.

   static const char *fonttable[32][2] = {
      { "Root.TTFont.0", "FreeSansBold.otf" },
      { "Root.TTFont.1", "FreeSerifItalic.otf" },
      { "Root.TTFont.2", "FreeSerifBold.otf" },
      { "Root.TTFont.3", "FreeSerifBoldItalic.otf" },
      { "Root.TTFont.4", "FreeSans.otf" },
      { "Root.TTFont.5", "FreeSansOblique.otf" },
      { "Root.TTFont.6", "FreeSansBold.otf" },
      { "Root.TTFont.7", "FreeSansBoldOblique.otf" },
      { "Root.TTFont.8", "FreeMono.otf" },
      { "Root.TTFont.9", "FreeMonoOblique.otf" },
      { "Root.TTFont.10", "FreeMonoBold.otf" },
      { "Root.TTFont.11", "FreeMonoBoldOblique.otf" },
      { "Root.TTFont.12", "symbol.ttf" },
      { "Root.TTFont.13", "FreeSerif.otf" },
      { "Root.TTFont.14", "wingding.ttf" },
      { "Root.TTFont.15", "symbol.ttf" },
      { "Root.TTFont.STIXGen", "STIXGeneral.otf" },
      { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" },
      { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" },
      { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" },
      { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" },
      { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" },
      { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" },
      { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" },
      { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" },
      { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" },
      { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" },
      { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" },
      { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" },
      { "Root.TTFont.ME", "DroidSansFallback.ttf" },
      { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" },
      { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" }
   };

   PrintStr("%%IncludeResource: ProcSet (FontSetInit)@");

   // try to load font (font must be in Root.TTFontPath resource)
   const char *ttpath = gEnv->GetValue("Root.TTFontPath",
#ifdef TTFFONTDIR
                                       TTFFONTDIR
#else // TTFFONTDIR
                                       "$(ROOTSYS)/fonts"
#endif // TTFFONTDIR
                                       );

   for (Int_t fontid = 1; fontid < 30; fontid++) {
      if (fontid != 15 && MustEmbed[fontid-1]) {
         const char *filename = gEnv->GetValue(
                                               fonttable[fontid][0], fonttable[fontid][1]);
         char *ttfont = gSystem->Which(ttpath, filename, kReadPermission);
         if (!ttfont) {
            Error("TPostScript::FontEmbed",
                  "font %d (filename `%s') not found in path",
                  fontid, filename);
         } else {
            if (FontEmbedType2(ttfont)) {
               // nothing
            } else if(FontEmbedType1(ttfont)) {
               // nothing
            } else if(FontEmbedType42(ttfont)) {
               // nothing
            } else {
               Error("TPostScript::FontEmbed",
                     "failed to embed font %d (filename `%s')",
                     fontid, filename);
            }
            delete [] ttfont;
         }
      }
   }
   PrintStr("%%IncludeResource: font Times-Roman@");
   PrintStr("%%IncludeResource: font Times-Italic@");
   PrintStr("%%IncludeResource: font Times-Bold@");
   PrintStr("%%IncludeResource: font Times-BoldItalic@");
   PrintStr("%%IncludeResource: font Helvetica@");
   PrintStr("%%IncludeResource: font Helvetica-Oblique@");
   PrintStr("%%IncludeResource: font Helvetica-Bold@");
   PrintStr("%%IncludeResource: font Helvetica-BoldOblique@");
   PrintStr("%%IncludeResource: font Courier@");
   PrintStr("%%IncludeResource: font Courier-Oblique@");
   PrintStr("%%IncludeResource: font Courier-Bold@");
   PrintStr("%%IncludeResource: font Courier-BoldOblique@");
   PrintStr("%%IncludeResource: font Symbol@");
   PrintStr("%%IncludeResource: font ZapfDingbats@");

   fFontEmbed = kTRUE;
}


//______________________________________________________________________________
void TPostScript::FontEncode()
{
   // Font Re-encoding

   PrintStr("/reEncode ");
   PrintStr("{exch findfont");
   PrintStr(" dup length dict begin");
   PrintStr(" {1 index /FID eq ");
   PrintStr(" {pop pop}");
   PrintStr(" {def} ifelse");
   PrintStr(" } forall");
   PrintStr(" /Encoding exch def");
   PrintStr(" currentdict end");
   PrintStr(" dup /FontName get exch");
   PrintStr(" definefont pop");
   PrintStr(" } def");
   PrintStr(" [/Times-Bold /Times-Italic /Times-BoldItalic /Helvetica");
   PrintStr(" /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique");
   PrintStr(" /Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique");
   PrintStr(" /Times-Roman /AvantGarde-Book /AvantGarde-BookOblique");
   PrintStr(" /AvantGarde-Demi /AvantGarde-DemiOblique /Bookman-Demi");
   PrintStr(" /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic");
   PrintStr(" /Helvetica-Narrow /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique");
   PrintStr(" /Helvetica-Narrow-Oblique /NewCenturySchlbk-Roman /NewCenturySchlbk-Bold");
   PrintStr(" /NewCenturySchlbk-BoldItalic /NewCenturySchlbk-Italic");
   PrintStr(" /Palatino-Bold /Palatino-BoldItalic /Palatino-Italic /Palatino-Roman");
   PrintStr(" ] {ISOLatin1Encoding reEncode } forall");
}


//______________________________________________________________________________
void TPostScript::Initialize()
{
   // PostScript Initialisation
   //
   // This routine initialize the following PostScript procedures:
   //
   // +------------+------------------+-----------------------------------+
   // | Macro Name | Input parameters |            Explanation            |
   // +------------+------------------+-----------------------------------+
   // |     l      | x y              | Draw a line to the x y position   |
   // +------------+------------------+-----------------------------------+
   // |     m      | x y              | Move to the position x y          |
   // +------------+------------------+-----------------------------------+
   // |     box    | dx dy x y        | Define a box                      |
   // +------------+------------------+-----------------------------------+
   // |     bl     | dx dy x y        | Draw a line box                   |
   // +------------+------------------+-----------------------------------+
   // |     bf     | dx dy x y        | Draw a filled box                 |
   // +------------+------------------+-----------------------------------+
   // |     t      | x y              | Translate                         |
   // +------------+------------------+-----------------------------------+
   // |     r      | angle            | Rotate                            |
   // +------------+------------------+-----------------------------------+
   // |     rl     | i j              | Roll the stack                    |
   // +------------+------------------+-----------------------------------+
   // |     d      | x y              | Draw a relative line to x y       |
   // +------------+------------------+-----------------------------------+
   // |     X      | x                | Draw a relative line to x (y=0)   |
   // +------------+------------------+-----------------------------------+
   // |     Y      | y                | Draw a relative line to y (x=0)   |
   // +------------+------------------+-----------------------------------+
   // |     rm     | x y              | Move relatively to x y            |
   // +------------+------------------+-----------------------------------+
   // |     gr     |                  | Restore the graphic context       |
   // +------------+------------------+-----------------------------------+
   // |     lw     | lwidth           | Set line width to lwidth          |
   // +------------+------------------+-----------------------------------+
   // |     sd     | [] 0             | Set dash line define by []        |
   // +------------+------------------+-----------------------------------+
   // |     s      |                  | Stroke mode                       |
   // +------------+------------------+-----------------------------------+
   // |     c      | r g b            | Set rgb color to r g b            |
   // +------------+------------------+-----------------------------------+
   // |     cl     |                  | Close path                        |
   // +------------+------------------+-----------------------------------+
   // |     f      |                  | Fill the last describe path       |
   // +------------+------------------+-----------------------------------+
   // |     mXX    | x y              | Draw the marker type XX at (x,y)  |
   // +------------+------------------+-----------------------------------+
   // |     Zone   | ix iy            | Define the current zone           |
   // +------------+------------------+-----------------------------------+
   // |     black  |                  | The color is black                |
   // +------------+------------------+-----------------------------------+
   // |     C      | dx dy x y        | Clipping on                       |
   // +------------+------------------+-----------------------------------+
   // |     NC     |                  | Clipping off                      |
   // +------------+------------------+-----------------------------------+
   // |     R      |                  | repeat                            |
   // +------------+------------------+-----------------------------------+
   // |     ita    |                  | Used to make the symbols italic   |
   // +------------+------------------+-----------------------------------+
   // |     K      |                  | kshow                             |
   // +------------+------------------+-----------------------------------+

   Double_t rpxmin, rpymin, width, heigth;
   rpxmin = rpymin = width = heigth = 0;
   Int_t format;
   fNpages=1;
   for (Int_t i=0;i<32;i++) fPatterns[i]=0;

   // Mode is last digit of PostScript Workstation type
   //    mode=1,2 for portrait/landscape black and white
   //    mode=3 for Encapsulated PostScript File
   //    mode=4 for portrait colour
   //    mode=5 for lanscape colour
   Int_t atype = abs(fType);
   fMode       = atype%10;
   if( fMode <= 0 || fMode > 5) {
      Error("Initialize", "invalid file type %d", fMode);
      return;
   }

   // fNXzone (fNYzone) is the total number of windows in x (y)
   fNXzone = (atype%1000)/100;
   fNYzone = (atype%100)/10;
   if( fNXzone <= 0 ) fNXzone = 1;
   if( fNYzone <= 0 ) fNYzone = 1;
   fIXzone = 1;
   fIYzone = 1;

   // format = 0-99 is the European page format (A4,A3 ...)
   // format = 100 is the US format  8.5x11.0 inch
   // format = 200 is the US format  8.5x14.0 inch
   // format = 300 is the US format 11.0x17.0 inch
   format = atype/1000;
   if( format == 0 )  format = 4;
   if( format == 99 ) format = 0;

   PrintStr("%%Title: ");
   const char *pstitle = gStyle->GetTitlePS();
   if (gPad && !pstitle[0]) pstitle = gPad->GetMother()->GetTitle();
   if (strlen(GetName())<=80) PrintStr(GetName());
   if(!pstitle[0] && fMode != 3) {;
      PrintFast(2," (");
      if ( format <= 99 ) {;
         PrintFast(2," A");
         WriteInteger(format);
         PrintFast(1,")");
      }
      else {
         if ( format == 100 ) PrintFast(8," Letter)");
         if ( format == 200 ) PrintFast(7," Legal)");
         if ( format == 300 ) PrintFast(8," Ledger)");
      }
      PrintStr("@");
      PrintStr("%%Pages: (atend)@");
   }
   else {
      if (!strchr(pstitle,'\n')) {
         PrintFast(2,": ");
         PrintStr(pstitle);
      }
      PrintStr("@");
   }

   PrintFast(24,"%%Creator: ROOT Version ");
   PrintStr(gROOT->GetVersion());
   PrintStr("@");
   PrintFast(16,"%%CreationDate: ");
   TDatime t;
   PrintStr(t.AsString());
   PrintStr("@");

   if ( fMode == 1 || fMode == 4) PrintStr("%%Orientation: Portrait@");
   if ( fMode == 2 || fMode == 5) PrintStr("%%Orientation: Landscape@");

   PrintStr("%%EndComments@");
   PrintStr("%%BeginProlog@");

   if( fMode == 3)PrintStr("80 dict begin@");

   // Initialisation of PostScript procedures
   PrintStr("/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def@");
   PrintStr("/r {rotate} def /rl {roll}  def /R {repeat} def@");
   PrintStr("/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def@");
   if (gStyle->GetColorModelPS()) {
      PrintStr("/c {setcmykcolor} def /black {0 0 0 1 setcmykcolor} def /sd {setdash} def@");
   } else {
      PrintStr("/c {setrgbcolor} def /black {0 setgray} def /sd {setdash} def@");
   }
   PrintStr("/cl {closepath} def /sf {scalefont setfont} def /lw {setlinewidth} def@");
   PrintStr("/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def@");
   PrintStr("/NC{systemdict begin initclip end}def/C{NC box clip newpath}def@");
   PrintStr("/bl {box s} def /bf {gsave box gsave f grestore 1 lw [] 0 sd s grestore} def /Y { 0 exch d} def /X { 0 d} def @");
   PrintStr("/K {{pop pop 0 moveto} exch kshow} bind def@");
   PrintStr("/ita {/ang 15 def gsave [1 0 ang dup sin exch cos div 1 0 0] concat} def @");

   DefineMarkers();

   FontEncode();

   // mode=1 for portrait black/white
   if (fMode == 1)  {
      rpxmin = 0.7;
      rpymin = TMath::Sqrt(2.)*rpxmin;
      switch (format) {
         case 100 :
            width  = (8.5*2.54)-2.*rpxmin;
            heigth = (11.*2.54)-2.*rpymin;
            break;
         case 200 :
            width  = (8.5*2.54)-2.*rpxmin;
            heigth = (14.*2.54)-2.*rpymin;
            break;
         case 300 :
            width  = (11.*2.54)-2.*rpxmin;
            heigth = (17.*2.54)-2.*rpymin;
            break;
         default  :
            width  = 21.0-2.*rpxmin;
            heigth = 29.7-2.*rpymin;
      };
   }

   // mode=2 for landscape black/white
   if (fMode == 2)  {
      rpymin = 0.7;
      rpxmin = TMath::Sqrt(2.)*rpymin;
      switch (format) {
         case 100 :
            width  = (11.*2.54)-2.*rpxmin;
            heigth = (8.5*2.54)-2.*rpymin;
         case 200 :
            width  = (14.*2.54)-2.*rpxmin;
            heigth = (8.5*2.54)-2.*rpymin;
         case 300 :
            width  = (17.*2.54)-2.*rpxmin;
            heigth = (11.*2.54)-2.*rpymin;
         default  :
            width  = 29.7-2.*rpxmin;
            heigth = 21-2.*rpymin;
      };
   }

   // mode=3 encapsulated PostScript
   if (fMode == 3)  {
      width   = 20;
      heigth  = 20;
      format  = 4;
      fNXzone = 1;
      fNYzone = 1;
   }

   // mode=4 for portrait colour
   if (fMode == 4)  {
      rpxmin = 0.7;
      rpymin = 3.4;
      switch (format) {
         case 100 :
            width  = (8.5*2.54)-2.*rpxmin;
            heigth = (11.*2.54)-2.*rpymin;
         case 200 :
            width  = (8.5*2.54)-2.*rpxmin;
            heigth = (14.*2.54)-2.*rpymin;
         case 300 :
            width  = (11.*2.54)-2.*rpxmin;
            heigth = (17.*2.54)-2.*rpymin;
         default  :
            width  = (21.0-2*rpxmin);
            heigth = (29.7-2.*rpymin);
      };
   }

   // mode=5 for lanscape colour
   if (fMode == 5)  {
      rpxmin = 3.4;
      rpymin = 0.7;
      switch (format) {
         case 100 :
            width  = (11.*2.54)-2.*rpxmin;
            heigth = (8.5*2.54)-2.*rpymin;
         case 200 :
            width  = (14.*2.54)-2.*rpxmin;
            heigth = (8.5*2.54)-2.*rpymin;
         case 300 :
            width  = (17.*2.54)-2.*rpxmin;
            heigth = (11.*2.54)-2.*rpymin;
         default  :
            width  = (29.7-2*rpxmin);
            heigth = (21-2.*rpymin);
      };
   }

   Double_t value = 0;
   if       (format <  100) value = 21*TMath::Power(TMath::Sqrt(2.), 4-format);
   else  if (format == 100) value = 8.5*2.54;
   else  if (format == 200) value = 8.5*2.54;
   else  if (format == 300) value = 11.*2.54;
   if       (format >= 100) format = 4;

   // Compute size (in points) of the window for each picture = f(fNXzone,fNYzone)
   Double_t sizex = width/Double_t(fNXzone)*TMath::Power(TMath::Sqrt(2.), 4-format);
   Double_t sizey = heigth/Double_t(fNYzone)*TMath::Power(TMath::Sqrt(2.), 4-format);
   Int_t npx      = 4*CMtoPS(sizex);
   Int_t npy      = 4*CMtoPS(sizey);
   if (sizex > sizey) fMaxsize = CMtoPS(sizex);
   else               fMaxsize = CMtoPS(sizey);

   // Procedure Zone
   if (fMode != 3)  {
      PrintFast(33,"/Zone {/iy exch def /ix exch def ");
      PrintFast(10," ix 1 sub ");
      WriteInteger(npx);
      PrintFast(5," mul ");
      WriteReal(Float_t(fNYzone));
      PrintFast(8," iy sub ");
      WriteInteger(npy);
      PrintStr(" mul t} def@");
   } else {
      PrintStr("@");
   }

   PrintStr("%%EndProlog@");
   PrintStr("%%BeginSetup@");
   PrintStr("%%EndSetup@");
   PrintFast(8,"newpath ");
   SaveRestore(1);
   if (fMode == 1 || fMode == 4)  {
      WriteInteger(CMtoPS(rpxmin));
      WriteInteger(CMtoPS(rpymin));
      PrintFast(2," t");
   }
   if (fMode == 2 || fMode == 5)  {
      PrintFast(7," 90 r 0");
      WriteInteger(CMtoPS(-value));
      PrintFast(3," t ");
      WriteInteger(CMtoPS(rpxmin));
      WriteInteger(CMtoPS(rpymin));
      PrintFast(2," t");
   }

   PrintFast(15," .25 .25 scale ");
   if (fMode != 3) {
      SaveRestore(1);
      PrintStr("@");
      PrintStr("%%Page: 1 1@");
      SaveRestore(1);
   }

   //Check is user has defined a special header in the current style
   Int_t nh = strlen(gStyle->GetHeaderPS());
   if (nh) {
      PrintFast(nh,gStyle->GetHeaderPS());
      if (fMode != 3) SaveRestore(1);
   }
}


//______________________________________________________________________________
void TPostScript::MovePS(Int_t ix, Int_t iy)
{
   // Move to a new position

   if (ix != 0 && iy != 0)  {
      WriteInteger(ix);
      WriteInteger(iy);
      PrintFast(2," d");
   } else if (ix != 0)  {
      WriteInteger(ix);
      PrintFast(2," X");
   } else if (iy != 0)  {
      WriteInteger(iy);
      PrintFast(2," Y");
   }
}


//______________________________________________________________________________
void TPostScript::NewPage()
{
   // Move to a new PostScript page

   //   Compute pad conversion coefficients
   if (gPad) {
      //     if (!gPad->GetPadPaint()) gPad->Update();
      Double_t ww   = gPad->GetWw();
      Double_t wh   = gPad->GetWh();
      fYsize       = fXsize*wh/ww;
   } else fYsize = 27;

   if(fType  == 113 && !fBoundingBox) {
      Bool_t psave = fPrinted;
      PrintStr("@%%BoundingBox: ");
      Double_t xlow=0, ylow=0, xup=1, yup=1;
      if (gPad) {
         xlow = gPad->GetAbsXlowNDC();
         xup  = xlow + gPad->GetAbsWNDC();
         ylow = gPad->GetAbsYlowNDC();
         yup  = ylow + gPad->GetAbsHNDC();
      }
      WriteInteger(CMtoPS(fXsize*xlow));
      WriteInteger(CMtoPS(fYsize*ylow));
      WriteInteger(CMtoPS(fXsize*xup));
      WriteInteger(CMtoPS(fYsize*yup));
      PrintStr("@");
      Initialize();
      fBoundingBox  = kTRUE;
      fPrinted      = psave;
   }
   if (fPrinted) {
      if (fSave) SaveRestore(-1);
      fClear    = kTRUE;
      fPrinted  = kFALSE;
   }
   Zone();
}


//______________________________________________________________________________
void TPostScript::Range(Float_t xsize, Float_t ysize)
{
   // Set the range for the paper in centimeters

   Float_t xps=0, yps=0, xncm=0, yncm=0, dxwn=0, dywn=0, xwkwn=0, ywkwn=0, xymax=0;

   fXsize = xsize;
   fYsize = ysize;
   if( fType != 113) { xps = fXsize;  yps = fYsize; }
   else {              xps = xsize;   yps = ysize; }

   if( xsize <= xps && ysize < yps) {
      if ( xps > yps ) xymax = xps;
      else             xymax = yps;
      xncm  = xsize/xymax;
      yncm  = ysize/xymax;
      dxwn  = ((xps/xymax)-xncm)/2;
      dywn  = ((yps/xymax)-yncm)/2;
   } else {
      if (xps/yps < 1) xwkwn = xps/yps;
      else             xwkwn = 1;
      if (yps/xps < 1) ywkwn = yps/xps;
      else             ywkwn = 1;

      if (xsize < ysize)  {
         xncm = ywkwn*xsize/ysize;
         yncm = ywkwn;
         dxwn = (xwkwn-xncm)/2;
         dywn = 0;
         if( dxwn < 0) {
            xncm = xwkwn;
            dxwn = 0;
            yncm = xwkwn*ysize/xsize;
            dywn = (ywkwn-yncm)/2;
         }
      } else {
         xncm = xwkwn;
         yncm = xwkwn*ysize/xsize;
         dxwn = 0;
         dywn = (ywkwn-yncm)/2;
         if( dywn < 0) {
            yncm = ywkwn;
            dywn = 0;
            xncm = ywkwn*xsize/ysize;
            dxwn = (xwkwn-xncm)/2;
         }
      }
   }
   fXVP1  = dxwn;
   fXVP2  = xncm+dxwn;
   fYVP1  = dywn;
   fYVP2  = yncm+dywn;
   fRange = kTRUE;
}


//______________________________________________________________________________
void TPostScript::SaveRestore(Int_t flag)
{
   // Compute number of gsaves for restore
   // This allows to write the correct number of grestore at the
   // end of the PS file.

   if (flag == 1) { PrintFast(7," gsave ");  fSave++; }
   else           { PrintFast(4," gr ");     fSave--; }
}


//______________________________________________________________________________
void TPostScript::SetFillColor( Color_t cindex )
{
   // Set color index for fill areas

   fFillColor = cindex;
   if (gStyle->GetFillColor() <= 0) cindex = 0;
   SetColor(Int_t(cindex));
}


//______________________________________________________________________________
void TPostScript::SetFillPatterns(Int_t ipat, Int_t color)
{
   // Patterns definition
   //
   // Define the pattern ipat in the current PS file. ipat can vary from
   // 1 to 25. Together with the pattern, the color (color) in which the
   // pattern has to be drawn is also required. A pattern is defined in the
   // current PS file only the first time it is used. Some level 2
   // Postscript functions are used, so on level 1 printers, patterns will
   // not work. This is not a big problem because patterns are
   // defined only if they are used, so if they are not used a PS level 1
   // file will not be polluted by level 2 features, and in any case the old
   // patterns used a lot of memory which made them almost unusable on old
   // level 1 printers. Finally we should say that level 1 devices are
   // becoming very rare. The official PostScript is now level 3 !

   char cdef[28];
   char cpat[5];
   snprintf(cpat,5," P%2.2d", ipat);

   // fPatterns is used as an array of chars. If fPatterns[ipat] != 0 the
   // pattern number ipat as already be defined is this file and it
   // is not necessary to redefine it. fPatterns is set to zero in Initialize.
   // The pattern number 26 allows to know if the macro "cs" has already
   // been defined in the current file (see label 200).
   if (fPatterns[ipat] == 0) {

      // Define the Patterns. Line width must be 1
      // Setting fLineWidth to -1 will force the line width definition next time
      // TPostScript::SetLineWidth will be called.
      fLineWidth = -1;
      PrintFast(5," 1 lw");
      PrintStr(" << /PatternType 1 /PaintType 2 /TilingType 1");
      switch (ipat) {
         case 1 :
            PrintStr(" /BBox [ 0 0 98 4 ]");
            PrintStr(" /XStep 98 /YStep 4");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [1] 0 sd 2 4 m 99 4 l s 1 3 m 98 3 l s");
            PrintStr(" 2 2 m 99 2 l s 1 1 m 98 1 l s");
            PrintStr(" gr end } >> [ 4.0 0 0 4.0 0 0 ]");
            break;
         case 2 :
            PrintStr(" /BBox [ 0 0 96 4 ]");
            PrintStr(" /XStep 96 /YStep 4");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [1 3] 0 sd 2 4 m 98 4 l s 0 3 m 96 3 l s");
            PrintStr(" 2 2 m 98 2 l s 0 1 m 96 1 l s");
            PrintStr(" gr end } >> [ 3.0 0 0 3.0 0 0 ]");
            break;
         case 3 :
            PrintStr(" /BBox [ 0 0 96 16 ]");
            PrintStr(" /XStep 96 /YStep 16");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [1 3] 0 sd 2 13 m 98 13 l s 0 9 m 96 9 l s");
            PrintStr(" 2 5 m 98 5 l s 0 1 m 96 1 l s");
            PrintStr(" gr end } >> [ 2.0 0 0 2.0 0 0 ]");
            break;
         case 4 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 0 m 100 100 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 5 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 100 m 100 0 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 6 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 50 0 m 50 100 l s");
            PrintStr(" gr end } >> [ 0.12 0 0 0.12 0 0 ]");
            break;
         case 7 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 50 m 100 50 l s");
            PrintStr(" gr end } >> [ 0.12 0 0 0.12 0 0 ]");
            break;
         case 8 :
            PrintStr(" /BBox [ 0 0 101 101 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 0 m 0 30 l 30 0 l f 0 70 m 0 100 l 30 100 l f");
            PrintStr(" 70 100 m 100 100 l 100 70 l f 70 0 m 100 0 l");
            PrintStr(" 100 30 l f 50 20 m 20 50 l 50 80 l 80 50 l f");
            PrintStr(" 50 80 m 30 100 l s 20 50 m 0 30 l s 50 20 m");
            PrintStr(" 70 0 l s 80 50 m 100 70 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 9 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 50 m 50 50 50 180 360 arc");
            PrintStr(" 0 50 m 0 100 50 270 360 arc");
            PrintStr(" 50 100 m 100 100 50 180 270 arc s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 10 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 50 m 100 50 l 1 1 m 100 1 l");
            PrintStr(" 0 0 m 0 50 l 100 0 m 100 50 l");
            PrintStr(" 50 50 m 50 100 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 11 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 0 m 0 20 l 50 0 m 50 20 l");
            PrintStr(" 100 0 m 100 20 l 0 80 m 0 100 l");
            PrintStr(" 50 80 m 50 100 l 100 80 m 100 100 l");
            PrintStr(" 25 30 m 25 70 l 75 30 m 75 70 l");
            PrintStr(" 0 100 m 20 85 l 50 100 m 30 85 l");
            PrintStr(" 50 100 m 70 85 l 100 100 m 80 85 l");
            PrintStr(" 0 0 m 20 15 l 50 0 m 30 15 l");
            PrintStr(" 50 0 m 70 15 l 100 0 m 80 15 l");
            PrintStr(" 5 35 m 45 65 l 5 65 m 45 35 l");
            PrintStr(" 55 35 m 95 65 l 55 65 m 95 35 l s");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
            break;
         case 12 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 80 m 0 100 20 270 360 arc");
            PrintStr(" 30 100 m 50 100 20 180 360 arc");
            PrintStr(" 80 100 m 100 100 20 180 270 arc");
            PrintStr(" 20 0 m 0 0 20 0 90 arc");
            PrintStr(" 70 0 m 50 0 20 0 180 arc");
            PrintStr(" 100 20 m 100 0 20 90 180 arc");
            PrintStr(" 45 50 m 25 50 20 0 360 arc");
            PrintStr(" 95 50 m 75 50 20 0 360 arc s");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
            break;
         case 13 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 0 m 100 100 l 0 100 m 100 0 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 14 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 80 /YStep 80");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 20 m 100 20 l 20 0 m 20 100 l");
            PrintStr(" 0 80 m 100 80 l 80 0 m 80 100 l");
            PrintStr(" 20 40 m 60 40 l 60 20 m 60 60 l");
            PrintStr(" 40 40 m 40 80 l 40 60 m 80 60 l s");
            PrintStr(" gr end } >> [ 0.60 0 0 0.60 0 0 ]");
            break;
         case 15 :
            PrintStr(" /BBox [ 0 0 60 60 ]");
            PrintStr(" /XStep 60 /YStep 60");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 55 m 0 60 5 270 360 arc");
            PrintStr(" 25 60 m 30 60 5 180 360 arc");
            PrintStr(" 55 60 m 60 60 5 180 270 arc");
            PrintStr(" 20 30 m 15 30 5 0 360 arc");
            PrintStr(" 50 30 m 45 30 5 0 360");
            PrintStr(" arc 5 0 m 0 0 5 0 90 arc");
            PrintStr(" 35 0 m 30 0 5 0 180 arc");
            PrintStr(" 60 5 m 60 0 5 90 180 arc s");
            PrintStr(" gr end } >> [ 0.41 0 0 0.41 0 0 ]");
            break;
         case 16 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 50 50 m 25 50 25 0 180 arc s");
            PrintStr(" 50 50 m 75 50 25 180 360 arc s");
            PrintStr(" gr end } >> [ 0.4 0 0 0.2 0 0 ]");
            break;
         case 17 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [24] 0 setdash 0 0 m 100 100 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 18 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [24] 0 setdash 0 100 m 100 0 l s");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 19 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 90 50 m 50 50 40 0 360 arc");
            PrintStr(" 0 50 m 0 100 50 270 360 arc");
            PrintStr(" 50 0 m 0 0 50 0 90 arc");
            PrintStr(" 100 50 m 100 0 50 90 180 arc");
            PrintStr(" 50 100 m 100 100 50 180 270 arc s");
            PrintStr(" gr end } >> [ 0.47 0 0 0.47 0 0 ]");
            break;
         case 20 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 50 50 m 50 75 25 270 450 arc s");
            PrintStr(" 50 50 m 50 25 25 90  270 arc s");
            PrintStr(" gr end } >> [ 0.2 0 0 0.4 0 0 ]");
            break;
         case 21 :
            PrintStr(" /BBox [ 0 0 101 101 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 1 1 m 25 1 l 25 25 l 50 25 l 50 50 l");
            PrintStr(" 75 50 l 75 75 l 100 75 l 100 100 l");
            PrintStr(" 50 1 m 75 1 l 75 25 l 100 25 l 100 50 l");
            PrintStr(" 0 50 m 25 50 l 25 75 l 50 75 l 50 100 l s");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
            break;
         case 22 :
            PrintStr(" /BBox [ 0 0 101 101 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 1 100 m 25 100 l 25 75 l 50 75 l 50 50 l");
            PrintStr(" 75 50 l 75 25 l 100 25 l 100 1 l");
            PrintStr(" 50 100 m 75 100 l 75 75 l 100 75 l 100 50 l");
            PrintStr(" 0 50 m 25 50 l 25 25 l 50 25 l 50 1 l s");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
            break;
         case 23 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" [1 7] 0 sd 0 8 50 { dup dup m 2 mul 0 l s } for");
            PrintStr(" 0 8 50 { dup dup 2 mul 100 m 50 add exch 50");
            PrintStr(" add l s } for 100 0 m 100 100 l 50 50 l f");
            PrintStr(" gr end } >> [ 0.24 0 0 0.24 0 0 ]");
            break;
         case 24 :
            PrintStr(" /BBox [ 0 0 100 100 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 100 100 m 100 36 l 88 36 l 88 88 l f");
            PrintStr(" 100 0 m 100 12 l 56 12 l 50 0 l f");
            PrintStr(" 0 0 m 48 0 l 48 48 l 50 48 l 56 60 l");
            PrintStr(" 36 60 l 36 12 l 0 12 l f [1 7] 0 sd");
            PrintStr(" 61 8 87 { dup dup dup 12 exch m 88 exch l s");
            PrintStr(" 16 exch 4 sub m 88 exch 4 sub l s } for");
            PrintStr(" 13 8 35 { dup dup dup 0 exch m 36 exch l s");
            PrintStr(" 4 exch 4 sub m 36 exch 4 sub l s } for");
            PrintStr(" 37 8 59 { dup dup dup 12 exch m 36 exch l s");
            PrintStr(" 16 exch 4 sub m 36 exch 4 sub l s } for");
            PrintStr(" 13 8 60 { dup dup dup 56 exch m 100 exch l s");
            PrintStr(" 60 exch 4 sub m 100 exch 4 sub l s } for");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
            break;
         case 25 :
            PrintStr(" /BBox [ 0 0 101 101 ]");
            PrintStr(" /XStep 100 /YStep 100");
            PrintStr(" /PaintProc { begin gsave");
            PrintStr(" 0 0 m 30 30 l 70 30 l 70 70 l 100 100 l 100 0 l");
            PrintStr(" f 30 30 m 30 70 l 70 70 l f");
            PrintStr(" gr end } >> [ 0.5 0 0 0.5 0 0 ]");
      };
      snprintf(cdef,28," makepattern /%s exch def",&cpat[1]);
      PrintStr(cdef);
      fPatterns[ipat] = 1;
   }

   // Define the macro cs and FA if they are not yet defined.
   if (fPatterns[26] == 0) {
      if (gStyle->GetColorModelPS()) {
         PrintStr(" /cs {[/Pattern /DeviceCMYK] setcolorspace} def");
         PrintStr(" /FA {f [/DeviceCMYK] setcolorspace} def");
      } else {
         PrintStr(" /cs {[/Pattern /DeviceRGB] setcolorspace} def");
         PrintStr(" /FA {f [/DeviceRGB] setcolorspace} def");
      }
      fPatterns[26] = 1;
   }

   // Activate the pattern.
   PrintFast(3," cs");
   TColor *col = gROOT->GetColor(color);
   if (col) {
      Double_t colRed   = col->GetRed();
      Double_t colGreen = col->GetGreen();
      Double_t colBlue  = col->GetBlue();
      if (gStyle->GetColorModelPS()) {
         Double_t colBlack = TMath::Min(TMath::Min(1-colRed,1-colGreen),1-colBlue);
         if (colBlack==1) {
            WriteReal(0);
            WriteReal(0);
            WriteReal(0);
            WriteReal(colBlack);
         } else {
            Double_t colCyan    = (1-colRed-colBlack)/(1-colBlack);
            Double_t colMagenta = (1-colGreen-colBlack)/(1-colBlack);
            Double_t colYellow  = (1-colBlue-colBlack)/(1-colBlack);
            WriteReal(colCyan);
            WriteReal(colMagenta);
            WriteReal(colYellow);
            WriteReal(colBlack);
         }
      } else {
         WriteReal(colRed);
         WriteReal(colGreen);
         WriteReal(colBlue);
      }
   }
   PrintFast(4,cpat);
   PrintFast(9," setcolor");
}


//______________________________________________________________________________
void TPostScript::SetLineColor( Color_t cindex )
{
   // Set color index for lines

   fLineColor = cindex;
   SetColor(Int_t(cindex));
}


//______________________________________________________________________________
void TPostScript::SetLineJoin( Int_t linejoin )
{
   // Set the value of the global parameter TPostScript::fgLineJoin.
   // This parameter determines the appearance of joining lines in a PostScript
   // output.
   // It takes one argument which may be:
   //   - 0 (miter join)
   //   - 1 (round join)
   //   - 2 (bevel join)
   // The default value is 0 (miter join).
   //
   //Begin_Html
   /*
    <img src="gif/linejoin.gif">
    */
   //End_Html
   //
   // To change the line join behaviour just do:
   // TPostScript::SetLineJoin(2); // Set the PS line join to bevel.

   fgLineJoin = linejoin;
}


//______________________________________________________________________________
void TPostScript::SetLineStyle(Style_t linestyle)
{
   // Change the line style
   //
   //   linestyle = 2 dashed
   //             = 3  dotted
   //             = 4  dash-dotted
   //              else = solid
   //
   // See TStyle::SetLineStyleString for style definition

   if ( linestyle == fLineStyle) return;
   fLineStyle = linestyle;
   const char *st = gStyle->GetLineStyleString(linestyle);
   PrintFast(1,"[");
   Int_t nch = strlen(st);
   PrintFast(nch,st);
   PrintFast(6,"] 0 sd");
}


//______________________________________________________________________________
void TPostScript::SetLineWidth(Width_t linewidth)
{
   // Change the line width

   if ( linewidth == fLineWidth) return;
   fLineWidth = linewidth;
   if (fLineWidth!=0) {
      WriteInteger(Int_t(fLineScale*fLineWidth));
      PrintFast(3," lw");
   }
}


//______________________________________________________________________________
void TPostScript::SetMarkerColor( Color_t cindex )
{
   // Set color index for markers

   fMarkerColor = cindex;
   SetColor(Int_t(cindex));
}


//______________________________________________________________________________
void TPostScript::SetColor(Int_t color)
{
   // Set the current color.

   if (color < 0) color = 0;
   fCurrentColor = color;
   TColor *col = gROOT->GetColor(color);
   if (col)
      SetColor(col->GetRed(), col->GetGreen(), col->GetBlue());
   else
      SetColor(1., 1., 1.);
}


//______________________________________________________________________________
void TPostScript::SetColor(Float_t r, Float_t g, Float_t b)
{
   // Set directly current color (don't go via TColor).

   if (r == fRed && g == fGreen && b == fBlue) return;

   fRed   = r;
   fGreen = g;
   fBlue  = b;

   if (fRed <= 0 && fGreen <= 0 && fBlue <= 0 ) {
      PrintFast(6," black");
   } else {
      if (gStyle->GetColorModelPS()) {
         Double_t colBlack   = TMath::Min(TMath::Min(1-fRed,1-fGreen),1-fBlue);
         Double_t colCyan    = (1-fRed-colBlack)/(1-colBlack);
         Double_t colMagenta = (1-fGreen-colBlack)/(1-colBlack);
         Double_t colYellow  = (1-fBlue-colBlack)/(1-colBlack);
         WriteReal(colCyan);
         WriteReal(colMagenta);
         WriteReal(colYellow);
         WriteReal(colBlack);
      } else {
         WriteReal(fRed);
         WriteReal(fGreen);
         WriteReal(fBlue);
      }
      PrintFast(2," c");
   }
}


//______________________________________________________________________________
void TPostScript::SetTextColor( Color_t cindex )
{
   // Set color index for text

   fTextColor = cindex;

   SetColor( Int_t(cindex) );
}


//______________________________________________________________________________
void TPostScript::Text(Double_t xx, Double_t yy, const char *chars)
{
   // Write a string of characters
   //
   // This routine writes the string chars into a PostScript file
   // at position xx,yy in world coordinates.

   static const char *psfont[31][2] = {
      { "Root.PSFont.1",             "/Times-Italic" },
      { "Root.PSFont.2",             "/Times-Bold" },
      { "Root.PSFont.3",             "/Times-BoldItalic" },
      { "Root.PSFont.4",             "/Helvetica" },
      { "Root.PSFont.5",             "/Helvetica-Oblique" },
      { "Root.PSFont.6",             "/Helvetica-Bold" },
      { "Root.PSFont.7",             "/Helvetica-BoldOblique" },
      { "Root.PSFont.8",             "/Courrier" },
      { "Root.PSFont.9",             "/Courrier-Oblique" },
      { "Root.PSFont.10",            "/Courrier-Bold" },
      { "Root.PSFont.11",            "/Courrier-BoldOblique" },
      { "Root.PSFont.12",            "/Symbol" },
      { "Root.PSFont.13",            "/Times-Roman" },
      { "Root.PSFont.14",            "/ZapfDingbats" },
      { "Root.PSFont.15",            "/Symbol" },
      { "Root.PSFont.STIXGen",       "/STIXGeneral" },
      { "Root.PSFont.STIXGenIt",     "/STIXGeneral-Italic" },
      { "Root.PSFont.STIXGenBd",     "/STIXGeneral-Bold" },
      { "Root.PSFont.STIXGenBdIt",   "/STIXGeneral-BoldItalic" },
      { "Root.PSFont.STIXSiz1Sym",   "/STIXSize1Symbols" },
      { "Root.PSFont.STIXSiz1SymBd", "/STIXSize1Symbols-Bold" },
      { "Root.PSFont.STIXSiz2Sym",   "/STIXSize2Symbols" },
      { "Root.PSFont.STIXSiz2SymBd", "/STIXSize2Symbols-Bold" },
      { "Root.PSFont.STIXSiz3Sym",   "/STIXSize3Symbols" },
      { "Root.PSFont.STIXSiz3SymBd", "/STIXSize3Symbols-Bold" },
      { "Root.PSFont.STIXSiz4Sym",   "/STIXSize4Symbols" },
      { "Root.PSFont.STIXSiz4SymBd", "/STIXSize4Symbols-Bold" },
      { "Root.PSFont.STIXSiz5Sym",   "/STIXSize5Symbols" },
      { "Root.PSFont.ME",            "/DroidSansFallback" },
      { "Root.PSFont.CJKMing",       "/DroidSansFallback" },
      { "Root.PSFont.CJKGothic",     "/DroidSansFallback" }
   };

   const Double_t kDEGRAD = TMath::Pi()/180.;
   Double_t x = xx;
   Double_t y = yy;
   if (!gPad) return;

   // Compute the font size. Exit if it is 0
   // The font size is computed from the TTF size to get exactly the same
   // size on the screen and in the PostScript file.
   Double_t wh = (Double_t)gPad->XtoPixel(gPad->GetX2());
   Double_t hh = (Double_t)gPad->YtoPixel(gPad->GetY1());
   Float_t tsize, ftsize;

   if (wh < hh) {
      tsize         = fTextSize*wh;
      Int_t sizeTTF = (Int_t)(tsize*kScale+0.5); // TTF size
      ftsize        = (sizeTTF*fXsize*gPad->GetAbsWNDC())/wh;
   } else {
      tsize         = fTextSize*hh;
      Int_t sizeTTF = (Int_t)(tsize*kScale+0.5); // TTF size
      ftsize        = (sizeTTF*fYsize*gPad->GetAbsHNDC())/hh;
   }
   Double_t fontsize = 4*(72*(ftsize)/2.54);
   if( fontsize <= 0) return;

   Float_t tsizex = gPad->AbsPixeltoX(Int_t(tsize))-gPad->AbsPixeltoX(0);
   Float_t tsizey = gPad->AbsPixeltoY(0)-gPad->AbsPixeltoY(Int_t(tsize));

   Int_t font = abs(fTextFont)/10;
   if( font > 31 || font < 1) font = 1;

   // Text color.
   SetColor(Int_t(fTextColor));

   // Text alignment.
   Int_t txalh = fTextAlign/10;
   if (txalh <1) txalh = 1; if (txalh > 3) txalh = 3;
   Int_t txalv = fTextAlign%10;
   if (txalv <1) txalv = 1; if (txalv > 3) txalv = 3;
   if (txalv == 3) {
      y -= 0.8*tsizey*TMath::Cos(kDEGRAD*fTextAngle);
      x += 0.8*tsizex*TMath::Sin(kDEGRAD*fTextAngle);
   } else if (txalv == 2) {
      y -= 0.4*tsizey*TMath::Cos(kDEGRAD*fTextAngle);
      x += 0.4*tsizex*TMath::Sin(kDEGRAD*fTextAngle);
   }

   UInt_t w = 0, w0 = 0;
   Bool_t kerning;
   // In order to measure the precise character positions we need to trick
   // FreeType into rendering high-resolution characters otherwise it will
   // stick to the screen pixel grid, which is far worse than we can achieve
   // on print.
   const Float_t scale = 16.0;
   // Save current text attributes.
   TText saveAttText;
   saveAttText.TAttText::operator=(*this);
   const Int_t len=strlen(chars);
   Int_t *charWidthsCumul = 0;
   TText t;
   t.SetTextSize(fTextSize * scale);
   t.SetTextFont(fTextFont);
   t.GetTextAdvance(w, chars);
   t.GetTextAdvance(w0, chars, kFALSE);
   t.TAttText::Modify();
   if (w0-w != 0) kerning = kTRUE;
   else        kerning = kFALSE;
   if (kerning) {
      // Calculate the individual character placements.
      charWidthsCumul = new Int_t[len];
      for (Int_t i = len - 1;i >= 0;i--) {
         UInt_t ww = 0;
         t.GetTextAdvance(ww, chars + i);
         Double_t wwl = (gPad->AbsPixeltoX(ww)-gPad->AbsPixeltoX(0));
         charWidthsCumul[i] = (Int_t)((XtoPS(wwl) - XtoPS(0)) / scale);
      }
   }
   // Restore text attributes.
   saveAttText.TAttText::Modify();

   Double_t charsLength = gPad->AbsPixeltoX(w)-gPad->AbsPixeltoX(0);
   Int_t psCharsLength = (Int_t)((XtoPS(charsLength)-XtoPS(0)) / scale);

   // Text angle.
   Int_t psangle = Int_t(0.5 + fTextAngle);

   // Save context.
   PrintStr("@");
   SaveRestore(1);

   // Clipping
   Int_t xc1 = XtoPS(gPad->GetX1());
   Int_t xc2 = XtoPS(gPad->GetX2());
   Int_t yc1 = YtoPS(gPad->GetY1());
   Int_t yc2 = YtoPS(gPad->GetY2());
   WriteInteger(xc2 - xc1);
   WriteInteger(yc2 - yc1);
   WriteInteger(xc1);
   WriteInteger(yc1);
   PrintStr(" C");

   // Output text position and angle. The text position is computed
   // using Double_t to avoid precision problems.
   Double_t vx  = (x - gPad->GetX1())/(gPad->GetX2()-gPad->GetX1());
   Double_t cmx = fXsize*(gPad->GetAbsXlowNDC()+vx*gPad->GetAbsWNDC());
   WriteReal((288.*cmx)/2.54);
   Double_t vy  = (y - gPad->GetY1())/(gPad->GetY2()-gPad->GetY1());
   Double_t cmy = fYsize*(gPad->GetAbsYlowNDC()+vy*gPad->GetAbsHNDC());
   WriteReal((288.*cmy)/2.54);
   PrintStr(Form(" t %d r ", psangle));
   if(txalh == 2) PrintStr(Form(" %d 0 t ", -psCharsLength/2));
   if(txalh == 3) PrintStr(Form(" %d 0 t ", -psCharsLength));
   PrintStr(gEnv->GetValue(psfont[font-1][0], psfont[font-1][1]));
   if (font != 15) {
      PrintStr(Form(" findfont %g sf 0 0 m ",fontsize));
   } else {
      PrintStr(Form(" findfont %g sf 0 0 m ita ",fontsize));
   }

   if (kerning) {
      PrintStr("@");
      // Output individual character placements
      for (Int_t i = len-1; i >= 1; i--) {
         WriteInteger(charWidthsCumul[0] - charWidthsCumul[i]);
      }
      delete [] charWidthsCumul;
      PrintStr("@");
   }

   // Output text.
   PrintStr("(");

   // Inside a PostScript string, the new line (if needed to break up long lines) must be escaped by a backslash.
   const char *crsave = fImplicitCREsc;
   fImplicitCREsc = "\\";

   char str[8];
   for (Int_t i=0; i<len;i++) {
      if (chars[i]!='\n') {
         if (chars[i]=='(' || chars[i]==')' || chars[i]=='\\') {
            snprintf(str,8,"\\%c",chars[i]);
            PrintStr(str);
         } else if ((chars[i]=='-') && (font != 12)) {
            PrintStr("\\255");
         } else {
            snprintf(str,8,"%c",chars[i]);
            PrintFast(1,str);
         }
      }
   }
   PrintStr(")");
   fImplicitCREsc = crsave;

   if (kerning) {
      if (font != 15) PrintStr(" K NC");
      else            PrintStr(" K gr NC");
   } else {
      if (font != 15) PrintStr(" show NC");
      else            PrintStr(" show gr NC");
   }

   SaveRestore(-1);
}


//______________________________________________________________________________
void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars)
{
   // Write a string of characters
   //
   // This routine writes the string chars into a PostScript file
   // at position xx,yy in world coordinates.

   static const char *psfont[31][2] = {
      { "Root.PSFont.1", "/FreeSerifItalic" },
      { "Root.PSFont.2", "/FreeSerifBold" },
      { "Root.PSFont.3", "/FreeSerifBoldItalic" },
      { "Root.PSFont.4", "/FreeSans" },
      { "Root.PSFont.5", "/FreeSansOblique" },
      { "Root.PSFont.6", "/FreeSansBold" },
      { "Root.PSFont.7", "/FreeSansBoldOblique" },
      { "Root.PSFont.8", "/FreeMono" },
      { "Root.PSFont.9", "/FreeMonoOblique" },
      { "Root.PSFont.10", "/FreeMonoBold" },
      { "Root.PSFont.11", "/FreeMonoBoldOblique" },
      { "Root.PSFont.12", "/SymbolMT" },
      { "Root.PSFont.13", "/FreeSerif" },
      { "Root.PSFont.14", "/Wingdings-Regular" },
      { "Root.PSFont.15", "/SymbolMT" },
      { "Root.PSFont.STIXGen", "/STIXGeneral" },
      { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
      { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
      { "Root.PSFont.STIXGenBdIt", "/STIXGeneral-BoldItalic" },
      { "Root.PSFont.STIXSiz1Sym", "/STIXSize1Symbols" },
      { "Root.PSFont.STIXSiz1SymBd", "/STIXSize1Symbols-Bold" },
      { "Root.PSFont.STIXSiz2Sym", "/STIXSize2Symbols" },
      { "Root.PSFont.STIXSiz2SymBd", "/STIXSize2Symbols-Bold" },
      { "Root.PSFont.STIXSiz3Sym", "/STIXSize3Symbols" },
      { "Root.PSFont.STIXSiz3SymBd", "/STIXSize3Symbols-Bold" },
      { "Root.PSFont.STIXSiz4Sym", "/STIXSize4Symbols" },
      { "Root.PSFont.STIXSiz4SymBd", "/STIXSize4Symbols-Bold" },
      { "Root.PSFont.STIXSiz5Sym", "/STIXSize5Symbols" },
      { "Root.PSFont.ME", "/DroidSansFallback" },
      { "Root.PSFont.CJKMing", "/DroidSansFallback" },
      { "Root.PSFont.CJKGothic", "/DroidSansFallback" }
   };

   Int_t len = wcslen(chars);
   if (len<=0) return;

   const Double_t kDEGRAD = TMath::Pi()/180.;
   Double_t x = xx;
   Double_t y = yy;
   if (!gPad) return;

   // Compute the font size. Exit if it is 0
   // The font size is computed from the TTF size to get exactly the same
   // size on the screen and in the PostScript file.
   Double_t wh = (Double_t)gPad->XtoPixel(gPad->GetX2());
   Double_t hh = (Double_t)gPad->YtoPixel(gPad->GetY1());
   Float_t tsize, ftsize;

   if (wh < hh) {
      tsize         = fTextSize*wh;
      Int_t sizeTTF = (Int_t)(tsize*kScale+0.5); // TTF size
      ftsize        = (sizeTTF*fXsize*gPad->GetAbsWNDC())/wh;
   } else {
      tsize         = fTextSize*hh;
      Int_t sizeTTF = (Int_t)(tsize*kScale+0.5); // TTF size
      ftsize        = (sizeTTF*fYsize*gPad->GetAbsHNDC())/hh;
   }
   Double_t fontsize = 4*(72*(ftsize)/2.54);
   if( fontsize <= 0) return;

   Float_t tsizex = gPad->AbsPixeltoX(Int_t(tsize))-gPad->AbsPixeltoX(0);
   Float_t tsizey = gPad->AbsPixeltoY(0)-gPad->AbsPixeltoY(Int_t(tsize));

   Int_t font = abs(fTextFont)/10;
   if( font > 29 || font < 1) font = 1;

   // Text color.
   SetColor(Int_t(fTextColor));

   // Text alignment.
   Int_t txalh = fTextAlign/10;
   if (txalh <1) txalh = 1; if (txalh > 3) txalh = 3;
   Int_t txalv = fTextAlign%10;
   if (txalv <1) txalv = 1; if (txalv > 3) txalv = 3;
   if (txalv == 3) {
      y -= 0.8*tsizey*TMath::Cos(kDEGRAD*fTextAngle);
      x += 0.8*tsizex*TMath::Sin(kDEGRAD*fTextAngle);
   } else if (txalv == 2) {
      y -= 0.4*tsizey*TMath::Cos(kDEGRAD*fTextAngle);
      x += 0.4*tsizex*TMath::Sin(kDEGRAD*fTextAngle);
   }
   UInt_t w = 0,  h = 0;

   TText t;
   t.SetTextSize(fTextSize);
   t.SetTextFont(fTextFont);
   t.GetTextExtent(w, h, chars);
   Double_t charsLength = gPad->AbsPixeltoX(w)-gPad->AbsPixeltoX(0);
   Int_t psCharsLength = XtoPS(charsLength)-XtoPS(0);

   // Text angle.
   Int_t psangle = Int_t(0.5 + fTextAngle);

   // Save context.
   PrintStr("@");
   SaveRestore(1);

   // Clipping
   Int_t xc1 = XtoPS(gPad->GetX1());
   Int_t xc2 = XtoPS(gPad->GetX2());
   Int_t yc1 = YtoPS(gPad->GetY1());
   Int_t yc2 = YtoPS(gPad->GetY2());
   WriteInteger(xc2 - xc1);
   WriteInteger(yc2 - yc1);
   WriteInteger(xc1);
   WriteInteger(yc1);
   PrintStr(" C");

   // Output text position and angle.
   WriteInteger(XtoPS(x));
   WriteInteger(YtoPS(y));
   PrintStr(Form(" t %d r ", psangle));
   if(txalh == 2) PrintStr(Form(" %d 0 t ", -psCharsLength/2));
   if(txalh == 3) PrintStr(Form(" %d 0 t ", -psCharsLength));
   MustEmbed[font-1] = kTRUE; // This font will be embedded in the file at EOF time.
   PrintStr(gEnv->GetValue(psfont[font-1][0], psfont[font-1][1]));
   PrintStr(Form(" findfont %g sf 0 0 m ",fontsize));

   // Output text.
   if (len > 1) PrintStr(Form("%d ", len));
   for(Int_t i = 0; i < len; i++) {
      // Adobe Glyph Naming Convention
      // http://www.adobe.com/devnet/opentype/archives/glyph.html
#include "AdobeGlyphList.h"
      const wchar_t *lower = std::lower_bound(
                                              adobe_glyph_ucs, adobe_glyph_ucs + nadobe_glyph,
                                              chars[i]);
      if(lower <  adobe_glyph_ucs + nadobe_glyph &&
         *lower == chars[i]) {
         // Named glyph from AGL 1.2
         const unsigned long index =
         lower - adobe_glyph_ucs;
         PrintStr(Form("/%s ", adobe_glyph_name[index]));
      }
      else if((unsigned int)chars[i] < 0xffff) {
         // Unicode BMP
         PrintStr(Form("/uni%04X ",
                       (unsigned int)chars[i]));
      }
      else {
         // Unicode supplemental planes
         PrintStr(Form("/u%04X ",
                       (unsigned int)chars[i]));
      }
   }
   if(len > 1) {
      PrintStr("{glyphshow} repeat ");
   }
   else {
      PrintStr("glyphshow ");
   }

   PrintStr("NC");

   SaveRestore(-1);
}


//______________________________________________________________________________
void TPostScript::TextNDC(Double_t u, Double_t v, const char *chars)
{
   // Write a string of characters in NDC

   Double_t x = gPad->GetX1() + u*(gPad->GetX2() - gPad->GetX1());
   Double_t y = gPad->GetY1() + v*(gPad->GetY2() - gPad->GetY1());
   Text(x, y, chars);
}


//______________________________________________________________________________
void TPostScript::TextNDC(Double_t u, Double_t v, const wchar_t *chars)
{
   // Write a string of characters in NDC

   Double_t x = gPad->GetX1() + u*(gPad->GetX2() - gPad->GetX1());
   Double_t y = gPad->GetY1() + v*(gPad->GetY2() - gPad->GetY1());
   Text(x, y, chars);
}


//______________________________________________________________________________
Int_t TPostScript::UtoPS(Double_t u)
{
   // Convert U from NDC coordinate to PostScript

   Double_t cm = fXsize*(gPad->GetAbsXlowNDC() + u*gPad->GetAbsWNDC());
   return Int_t(0.5 + 288*cm/2.54);
}


//______________________________________________________________________________
Int_t TPostScript::VtoPS(Double_t v)
{
   // Convert V from NDC coordinate to PostScript

   Double_t cm = fYsize*(gPad->GetAbsYlowNDC() + v*gPad->GetAbsHNDC());
   return Int_t(0.5 + 288*cm/2.54);
}


//______________________________________________________________________________
Int_t TPostScript::XtoPS(Double_t x)
{
   // Convert X from world coordinate to PostScript

   Double_t u = (x - gPad->GetX1())/(gPad->GetX2() - gPad->GetX1());
   return  UtoPS(u);
}


//______________________________________________________________________________
Int_t TPostScript::YtoPS(Double_t y)
{
   // Convert Y from world coordinate to PostScript

   Double_t v = (y - gPad->GetY1())/(gPad->GetY2() - gPad->GetY1());
   return  VtoPS(v);
}


//______________________________________________________________________________
void TPostScript::Zone()
{
   // Initialize the PostScript page in zones

   if( !fClear )return;
   fClear = kFALSE;

   // When Zone has been called, fZone is TRUE
   fZone = kTRUE;

   if( fIYzone > fNYzone) {
      fIYzone=1;
      if( fMode != 3) {
         PrintStr("@showpage");
         SaveRestore(-1);
         fNpages++;
         PrintStr("@%%Page:");
         WriteInteger(fNpages);
         WriteInteger(fNpages);
         PrintStr("@");
      } else {
         PrintFast(9," showpage");
         SaveRestore(-1);
      }
   }

   // No grestore the first time
   if( fMode != 3) {
      if( fIXzone != 1 || fIYzone != 1) SaveRestore(-1);
      SaveRestore(1);
      PrintStr("@");
      WriteInteger(fIXzone);
      WriteInteger(fIYzone);
      PrintFast(5," Zone");
      PrintStr("@");
      fIXzone++;
      if( fIXzone > fNXzone) { fIXzone=1; fIYzone++; }
   }

   // Picture Initialisation
   SaveRestore(1);
   if (fgLineJoin) {
      WriteInteger(fgLineJoin);
      PrintFast(12," setlinejoin");
   }
   PrintFast(6," 0 0 t");
   fRed     = -1;
   fGreen   = -1;
   fBlue    = -1;
   fPrinted = kFALSE;
   fLineColor  = -1;
   fLineStyle  = -1;
   fLineWidth  = -1;
   fFillColor  = -1;
   fFillStyle  = -1;
   fMarkerSizeCur = -1;
}
 TPostScript.cxx:1
 TPostScript.cxx:2
 TPostScript.cxx:3
 TPostScript.cxx:4
 TPostScript.cxx:5
 TPostScript.cxx:6
 TPostScript.cxx:7
 TPostScript.cxx:8
 TPostScript.cxx:9
 TPostScript.cxx:10
 TPostScript.cxx:11
 TPostScript.cxx:12
 TPostScript.cxx:13
 TPostScript.cxx:14
 TPostScript.cxx:15
 TPostScript.cxx:16
 TPostScript.cxx:17
 TPostScript.cxx:18
 TPostScript.cxx:19
 TPostScript.cxx:20
 TPostScript.cxx:21
 TPostScript.cxx:22
 TPostScript.cxx:23
 TPostScript.cxx:24
 TPostScript.cxx:25
 TPostScript.cxx:26
 TPostScript.cxx:27
 TPostScript.cxx:28
 TPostScript.cxx:29
 TPostScript.cxx:30
 TPostScript.cxx:31
 TPostScript.cxx:32
 TPostScript.cxx:33
 TPostScript.cxx:34
 TPostScript.cxx:35
 TPostScript.cxx:36
 TPostScript.cxx:37
 TPostScript.cxx:38
 TPostScript.cxx:39
 TPostScript.cxx:40
 TPostScript.cxx:41
 TPostScript.cxx:42
 TPostScript.cxx:43
 TPostScript.cxx:44
 TPostScript.cxx:45
 TPostScript.cxx:46
 TPostScript.cxx:47
 TPostScript.cxx:48
 TPostScript.cxx:49
 TPostScript.cxx:50
 TPostScript.cxx:51
 TPostScript.cxx:52
 TPostScript.cxx:53
 TPostScript.cxx:54
 TPostScript.cxx:55
 TPostScript.cxx:56
 TPostScript.cxx:57
 TPostScript.cxx:58
 TPostScript.cxx:59
 TPostScript.cxx:60
 TPostScript.cxx:61
 TPostScript.cxx:62
 TPostScript.cxx:63
 TPostScript.cxx:64
 TPostScript.cxx:65
 TPostScript.cxx:66
 TPostScript.cxx:67
 TPostScript.cxx:68
 TPostScript.cxx:69
 TPostScript.cxx:70
 TPostScript.cxx:71
 TPostScript.cxx:72
 TPostScript.cxx:73
 TPostScript.cxx:74
 TPostScript.cxx:75
 TPostScript.cxx:76
 TPostScript.cxx:77
 TPostScript.cxx:78
 TPostScript.cxx:79
 TPostScript.cxx:80
 TPostScript.cxx:81
 TPostScript.cxx:82
 TPostScript.cxx:83
 TPostScript.cxx:84
 TPostScript.cxx:85
 TPostScript.cxx:86
 TPostScript.cxx:87
 TPostScript.cxx:88
 TPostScript.cxx:89
 TPostScript.cxx:90
 TPostScript.cxx:91
 TPostScript.cxx:92
 TPostScript.cxx:93
 TPostScript.cxx:94
 TPostScript.cxx:95
 TPostScript.cxx:96
 TPostScript.cxx:97
 TPostScript.cxx:98
 TPostScript.cxx:99
 TPostScript.cxx:100
 TPostScript.cxx:101
 TPostScript.cxx:102
 TPostScript.cxx:103
 TPostScript.cxx:104
 TPostScript.cxx:105
 TPostScript.cxx:106
 TPostScript.cxx:107
 TPostScript.cxx:108
 TPostScript.cxx:109
 TPostScript.cxx:110
 TPostScript.cxx:111
 TPostScript.cxx:112
 TPostScript.cxx:113
 TPostScript.cxx:114
 TPostScript.cxx:115
 TPostScript.cxx:116
 TPostScript.cxx:117
 TPostScript.cxx:118
 TPostScript.cxx:119
 TPostScript.cxx:120
 TPostScript.cxx:121
 TPostScript.cxx:122
 TPostScript.cxx:123
 TPostScript.cxx:124
 TPostScript.cxx:125
 TPostScript.cxx:126
 TPostScript.cxx:127
 TPostScript.cxx:128
 TPostScript.cxx:129
 TPostScript.cxx:130
 TPostScript.cxx:131
 TPostScript.cxx:132
 TPostScript.cxx:133
 TPostScript.cxx:134
 TPostScript.cxx:135
 TPostScript.cxx:136
 TPostScript.cxx:137
 TPostScript.cxx:138
 TPostScript.cxx:139
 TPostScript.cxx:140
 TPostScript.cxx:141
 TPostScript.cxx:142
 TPostScript.cxx:143
 TPostScript.cxx:144
 TPostScript.cxx:145
 TPostScript.cxx:146
 TPostScript.cxx:147
 TPostScript.cxx:148
 TPostScript.cxx:149
 TPostScript.cxx:150
 TPostScript.cxx:151
 TPostScript.cxx:152
 TPostScript.cxx:153
 TPostScript.cxx:154
 TPostScript.cxx:155
 TPostScript.cxx:156
 TPostScript.cxx:157
 TPostScript.cxx:158
 TPostScript.cxx:159
 TPostScript.cxx:160
 TPostScript.cxx:161
 TPostScript.cxx:162
 TPostScript.cxx:163
 TPostScript.cxx:164
 TPostScript.cxx:165
 TPostScript.cxx:166
 TPostScript.cxx:167
 TPostScript.cxx:168
 TPostScript.cxx:169
 TPostScript.cxx:170
 TPostScript.cxx:171
 TPostScript.cxx:172
 TPostScript.cxx:173
 TPostScript.cxx:174
 TPostScript.cxx:175
 TPostScript.cxx:176
 TPostScript.cxx:177
 TPostScript.cxx:178
 TPostScript.cxx:179
 TPostScript.cxx:180
 TPostScript.cxx:181
 TPostScript.cxx:182
 TPostScript.cxx:183
 TPostScript.cxx:184
 TPostScript.cxx:185
 TPostScript.cxx:186
 TPostScript.cxx:187
 TPostScript.cxx:188
 TPostScript.cxx:189
 TPostScript.cxx:190
 TPostScript.cxx:191
 TPostScript.cxx:192
 TPostScript.cxx:193
 TPostScript.cxx:194
 TPostScript.cxx:195
 TPostScript.cxx:196
 TPostScript.cxx:197
 TPostScript.cxx:198
 TPostScript.cxx:199
 TPostScript.cxx:200
 TPostScript.cxx:201
 TPostScript.cxx:202
 TPostScript.cxx:203
 TPostScript.cxx:204
 TPostScript.cxx:205
 TPostScript.cxx:206
 TPostScript.cxx:207
 TPostScript.cxx:208
 TPostScript.cxx:209
 TPostScript.cxx:210
 TPostScript.cxx:211
 TPostScript.cxx:212
 TPostScript.cxx:213
 TPostScript.cxx:214
 TPostScript.cxx:215
 TPostScript.cxx:216
 TPostScript.cxx:217
 TPostScript.cxx:218
 TPostScript.cxx:219
 TPostScript.cxx:220
 TPostScript.cxx:221
 TPostScript.cxx:222
 TPostScript.cxx:223
 TPostScript.cxx:224
 TPostScript.cxx:225
 TPostScript.cxx:226
 TPostScript.cxx:227
 TPostScript.cxx:228
 TPostScript.cxx:229
 TPostScript.cxx:230
 TPostScript.cxx:231
 TPostScript.cxx:232
 TPostScript.cxx:233
 TPostScript.cxx:234
 TPostScript.cxx:235
 TPostScript.cxx:236
 TPostScript.cxx:237
 TPostScript.cxx:238
 TPostScript.cxx:239
 TPostScript.cxx:240
 TPostScript.cxx:241
 TPostScript.cxx:242
 TPostScript.cxx:243
 TPostScript.cxx:244
 TPostScript.cxx:245
 TPostScript.cxx:246
 TPostScript.cxx:247
 TPostScript.cxx:248
 TPostScript.cxx:249
 TPostScript.cxx:250
 TPostScript.cxx:251
 TPostScript.cxx:252
 TPostScript.cxx:253
 TPostScript.cxx:254
 TPostScript.cxx:255
 TPostScript.cxx:256
 TPostScript.cxx:257
 TPostScript.cxx:258
 TPostScript.cxx:259
 TPostScript.cxx:260
 TPostScript.cxx:261
 TPostScript.cxx:262
 TPostScript.cxx:263
 TPostScript.cxx:264
 TPostScript.cxx:265
 TPostScript.cxx:266
 TPostScript.cxx:267
 TPostScript.cxx:268
 TPostScript.cxx:269
 TPostScript.cxx:270
 TPostScript.cxx:271
 TPostScript.cxx:272
 TPostScript.cxx:273
 TPostScript.cxx:274
 TPostScript.cxx:275
 TPostScript.cxx:276
 TPostScript.cxx:277
 TPostScript.cxx:278
 TPostScript.cxx:279
 TPostScript.cxx:280
 TPostScript.cxx:281
 TPostScript.cxx:282
 TPostScript.cxx:283
 TPostScript.cxx:284
 TPostScript.cxx:285
 TPostScript.cxx:286
 TPostScript.cxx:287
 TPostScript.cxx:288
 TPostScript.cxx:289
 TPostScript.cxx:290
 TPostScript.cxx:291
 TPostScript.cxx:292
 TPostScript.cxx:293
 TPostScript.cxx:294
 TPostScript.cxx:295
 TPostScript.cxx:296
 TPostScript.cxx:297
 TPostScript.cxx:298
 TPostScript.cxx:299
 TPostScript.cxx:300
 TPostScript.cxx:301
 TPostScript.cxx:302
 TPostScript.cxx:303
 TPostScript.cxx:304
 TPostScript.cxx:305
 TPostScript.cxx:306
 TPostScript.cxx:307
 TPostScript.cxx:308
 TPostScript.cxx:309
 TPostScript.cxx:310
 TPostScript.cxx:311
 TPostScript.cxx:312
 TPostScript.cxx:313
 TPostScript.cxx:314
 TPostScript.cxx:315
 TPostScript.cxx:316
 TPostScript.cxx:317
 TPostScript.cxx:318
 TPostScript.cxx:319
 TPostScript.cxx:320
 TPostScript.cxx:321
 TPostScript.cxx:322
 TPostScript.cxx:323
 TPostScript.cxx:324
 TPostScript.cxx:325
 TPostScript.cxx:326
 TPostScript.cxx:327
 TPostScript.cxx:328
 TPostScript.cxx:329
 TPostScript.cxx:330
 TPostScript.cxx:331
 TPostScript.cxx:332
 TPostScript.cxx:333
 TPostScript.cxx:334
 TPostScript.cxx:335
 TPostScript.cxx:336
 TPostScript.cxx:337
 TPostScript.cxx:338
 TPostScript.cxx:339
 TPostScript.cxx:340
 TPostScript.cxx:341
 TPostScript.cxx:342
 TPostScript.cxx:343
 TPostScript.cxx:344
 TPostScript.cxx:345
 TPostScript.cxx:346
 TPostScript.cxx:347
 TPostScript.cxx:348
 TPostScript.cxx:349
 TPostScript.cxx:350
 TPostScript.cxx:351
 TPostScript.cxx:352
 TPostScript.cxx:353
 TPostScript.cxx:354
 TPostScript.cxx:355
 TPostScript.cxx:356
 TPostScript.cxx:357
 TPostScript.cxx:358
 TPostScript.cxx:359
 TPostScript.cxx:360
 TPostScript.cxx:361
 TPostScript.cxx:362
 TPostScript.cxx:363
 TPostScript.cxx:364
 TPostScript.cxx:365
 TPostScript.cxx:366
 TPostScript.cxx:367
 TPostScript.cxx:368
 TPostScript.cxx:369
 TPostScript.cxx:370
 TPostScript.cxx:371
 TPostScript.cxx:372
 TPostScript.cxx:373
 TPostScript.cxx:374
 TPostScript.cxx:375
 TPostScript.cxx:376
 TPostScript.cxx:377
 TPostScript.cxx:378
 TPostScript.cxx:379
 TPostScript.cxx:380
 TPostScript.cxx:381
 TPostScript.cxx:382
 TPostScript.cxx:383
 TPostScript.cxx:384
 TPostScript.cxx:385
 TPostScript.cxx:386
 TPostScript.cxx:387
 TPostScript.cxx:388
 TPostScript.cxx:389
 TPostScript.cxx:390
 TPostScript.cxx:391
 TPostScript.cxx:392
 TPostScript.cxx:393
 TPostScript.cxx:394
 TPostScript.cxx:395
 TPostScript.cxx:396
 TPostScript.cxx:397
 TPostScript.cxx:398
 TPostScript.cxx:399
 TPostScript.cxx:400
 TPostScript.cxx:401
 TPostScript.cxx:402
 TPostScript.cxx:403
 TPostScript.cxx:404
 TPostScript.cxx:405
 TPostScript.cxx:406
 TPostScript.cxx:407
 TPostScript.cxx:408
 TPostScript.cxx:409
 TPostScript.cxx:410
 TPostScript.cxx:411
 TPostScript.cxx:412
 TPostScript.cxx:413
 TPostScript.cxx:414
 TPostScript.cxx:415
 TPostScript.cxx:416
 TPostScript.cxx:417
 TPostScript.cxx:418
 TPostScript.cxx:419
 TPostScript.cxx:420
 TPostScript.cxx:421
 TPostScript.cxx:422
 TPostScript.cxx:423
 TPostScript.cxx:424
 TPostScript.cxx:425
 TPostScript.cxx:426
 TPostScript.cxx:427
 TPostScript.cxx:428
 TPostScript.cxx:429
 TPostScript.cxx:430
 TPostScript.cxx:431
 TPostScript.cxx:432
 TPostScript.cxx:433
 TPostScript.cxx:434
 TPostScript.cxx:435
 TPostScript.cxx:436
 TPostScript.cxx:437
 TPostScript.cxx:438
 TPostScript.cxx:439
 TPostScript.cxx:440
 TPostScript.cxx:441
 TPostScript.cxx:442
 TPostScript.cxx:443
 TPostScript.cxx:444
 TPostScript.cxx:445
 TPostScript.cxx:446
 TPostScript.cxx:447
 TPostScript.cxx:448
 TPostScript.cxx:449
 TPostScript.cxx:450
 TPostScript.cxx:451
 TPostScript.cxx:452
 TPostScript.cxx:453
 TPostScript.cxx:454
 TPostScript.cxx:455
 TPostScript.cxx:456
 TPostScript.cxx:457
 TPostScript.cxx:458
 TPostScript.cxx:459
 TPostScript.cxx:460
 TPostScript.cxx:461
 TPostScript.cxx:462
 TPostScript.cxx:463
 TPostScript.cxx:464
 TPostScript.cxx:465
 TPostScript.cxx:466
 TPostScript.cxx:467
 TPostScript.cxx:468
 TPostScript.cxx:469
 TPostScript.cxx:470
 TPostScript.cxx:471
 TPostScript.cxx:472
 TPostScript.cxx:473
 TPostScript.cxx:474
 TPostScript.cxx:475
 TPostScript.cxx:476
 TPostScript.cxx:477
 TPostScript.cxx:478
 TPostScript.cxx:479
 TPostScript.cxx:480
 TPostScript.cxx:481
 TPostScript.cxx:482
 TPostScript.cxx:483
 TPostScript.cxx:484
 TPostScript.cxx:485
 TPostScript.cxx:486
 TPostScript.cxx:487
 TPostScript.cxx:488
 TPostScript.cxx:489
 TPostScript.cxx:490
 TPostScript.cxx:491
 TPostScript.cxx:492
 TPostScript.cxx:493
 TPostScript.cxx:494
 TPostScript.cxx:495
 TPostScript.cxx:496
 TPostScript.cxx:497
 TPostScript.cxx:498
 TPostScript.cxx:499
 TPostScript.cxx:500
 TPostScript.cxx:501
 TPostScript.cxx:502
 TPostScript.cxx:503
 TPostScript.cxx:504
 TPostScript.cxx:505
 TPostScript.cxx:506
 TPostScript.cxx:507
 TPostScript.cxx:508
 TPostScript.cxx:509
 TPostScript.cxx:510
 TPostScript.cxx:511
 TPostScript.cxx:512
 TPostScript.cxx:513
 TPostScript.cxx:514
 TPostScript.cxx:515
 TPostScript.cxx:516
 TPostScript.cxx:517
 TPostScript.cxx:518
 TPostScript.cxx:519
 TPostScript.cxx:520
 TPostScript.cxx:521
 TPostScript.cxx:522
 TPostScript.cxx:523
 TPostScript.cxx:524
 TPostScript.cxx:525
 TPostScript.cxx:526
 TPostScript.cxx:527
 TPostScript.cxx:528
 TPostScript.cxx:529
 TPostScript.cxx:530
 TPostScript.cxx:531
 TPostScript.cxx:532
 TPostScript.cxx:533
 TPostScript.cxx:534
 TPostScript.cxx:535
 TPostScript.cxx:536
 TPostScript.cxx:537
 TPostScript.cxx:538
 TPostScript.cxx:539
 TPostScript.cxx:540
 TPostScript.cxx:541
 TPostScript.cxx:542
 TPostScript.cxx:543
 TPostScript.cxx:544
 TPostScript.cxx:545
 TPostScript.cxx:546
 TPostScript.cxx:547
 TPostScript.cxx:548
 TPostScript.cxx:549
 TPostScript.cxx:550
 TPostScript.cxx:551
 TPostScript.cxx:552
 TPostScript.cxx:553
 TPostScript.cxx:554
 TPostScript.cxx:555
 TPostScript.cxx:556
 TPostScript.cxx:557
 TPostScript.cxx:558
 TPostScript.cxx:559
 TPostScript.cxx:560
 TPostScript.cxx:561
 TPostScript.cxx:562
 TPostScript.cxx:563
 TPostScript.cxx:564
 TPostScript.cxx:565
 TPostScript.cxx:566
 TPostScript.cxx:567
 TPostScript.cxx:568
 TPostScript.cxx:569
 TPostScript.cxx:570
 TPostScript.cxx:571
 TPostScript.cxx:572
 TPostScript.cxx:573
 TPostScript.cxx:574
 TPostScript.cxx:575
 TPostScript.cxx:576
 TPostScript.cxx:577
 TPostScript.cxx:578
 TPostScript.cxx:579
 TPostScript.cxx:580
 TPostScript.cxx:581
 TPostScript.cxx:582
 TPostScript.cxx:583
 TPostScript.cxx:584
 TPostScript.cxx:585
 TPostScript.cxx:586
 TPostScript.cxx:587
 TPostScript.cxx:588
 TPostScript.cxx:589
 TPostScript.cxx:590
 TPostScript.cxx:591
 TPostScript.cxx:592
 TPostScript.cxx:593
 TPostScript.cxx:594
 TPostScript.cxx:595
 TPostScript.cxx:596
 TPostScript.cxx:597
 TPostScript.cxx:598
 TPostScript.cxx:599
 TPostScript.cxx:600
 TPostScript.cxx:601
 TPostScript.cxx:602
 TPostScript.cxx:603
 TPostScript.cxx:604
 TPostScript.cxx:605
 TPostScript.cxx:606
 TPostScript.cxx:607
 TPostScript.cxx:608
 TPostScript.cxx:609
 TPostScript.cxx:610
 TPostScript.cxx:611
 TPostScript.cxx:612
 TPostScript.cxx:613
 TPostScript.cxx:614
 TPostScript.cxx:615
 TPostScript.cxx:616
 TPostScript.cxx:617
 TPostScript.cxx:618
 TPostScript.cxx:619
 TPostScript.cxx:620
 TPostScript.cxx:621
 TPostScript.cxx:622
 TPostScript.cxx:623
 TPostScript.cxx:624
 TPostScript.cxx:625
 TPostScript.cxx:626
 TPostScript.cxx:627
 TPostScript.cxx:628
 TPostScript.cxx:629
 TPostScript.cxx:630
 TPostScript.cxx:631
 TPostScript.cxx:632
 TPostScript.cxx:633
 TPostScript.cxx:634
 TPostScript.cxx:635
 TPostScript.cxx:636
 TPostScript.cxx:637
 TPostScript.cxx:638
 TPostScript.cxx:639
 TPostScript.cxx:640
 TPostScript.cxx:641
 TPostScript.cxx:642
 TPostScript.cxx:643
 TPostScript.cxx:644
 TPostScript.cxx:645
 TPostScript.cxx:646
 TPostScript.cxx:647
 TPostScript.cxx:648
 TPostScript.cxx:649
 TPostScript.cxx:650
 TPostScript.cxx:651
 TPostScript.cxx:652
 TPostScript.cxx:653
 TPostScript.cxx:654
 TPostScript.cxx:655
 TPostScript.cxx:656
 TPostScript.cxx:657
 TPostScript.cxx:658
 TPostScript.cxx:659
 TPostScript.cxx:660
 TPostScript.cxx:661
 TPostScript.cxx:662
 TPostScript.cxx:663
 TPostScript.cxx:664
 TPostScript.cxx:665
 TPostScript.cxx:666
 TPostScript.cxx:667
 TPostScript.cxx:668
 TPostScript.cxx:669
 TPostScript.cxx:670
 TPostScript.cxx:671
 TPostScript.cxx:672
 TPostScript.cxx:673
 TPostScript.cxx:674
 TPostScript.cxx:675
 TPostScript.cxx:676
 TPostScript.cxx:677
 TPostScript.cxx:678
 TPostScript.cxx:679
 TPostScript.cxx:680
 TPostScript.cxx:681
 TPostScript.cxx:682
 TPostScript.cxx:683
 TPostScript.cxx:684
 TPostScript.cxx:685
 TPostScript.cxx:686
 TPostScript.cxx:687
 TPostScript.cxx:688
 TPostScript.cxx:689
 TPostScript.cxx:690
 TPostScript.cxx:691
 TPostScript.cxx:692
 TPostScript.cxx:693
 TPostScript.cxx:694
 TPostScript.cxx:695
 TPostScript.cxx:696
 TPostScript.cxx:697
 TPostScript.cxx:698
 TPostScript.cxx:699
 TPostScript.cxx:700
 TPostScript.cxx:701
 TPostScript.cxx:702
 TPostScript.cxx:703
 TPostScript.cxx:704
 TPostScript.cxx:705
 TPostScript.cxx:706
 TPostScript.cxx:707
 TPostScript.cxx:708
 TPostScript.cxx:709
 TPostScript.cxx:710
 TPostScript.cxx:711
 TPostScript.cxx:712
 TPostScript.cxx:713
 TPostScript.cxx:714
 TPostScript.cxx:715
 TPostScript.cxx:716
 TPostScript.cxx:717
 TPostScript.cxx:718
 TPostScript.cxx:719
 TPostScript.cxx:720
 TPostScript.cxx:721
 TPostScript.cxx:722
 TPostScript.cxx:723
 TPostScript.cxx:724
 TPostScript.cxx:725
 TPostScript.cxx:726
 TPostScript.cxx:727
 TPostScript.cxx:728
 TPostScript.cxx:729
 TPostScript.cxx:730
 TPostScript.cxx:731
 TPostScript.cxx:732
 TPostScript.cxx:733
 TPostScript.cxx:734
 TPostScript.cxx:735
 TPostScript.cxx:736
 TPostScript.cxx:737
 TPostScript.cxx:738
 TPostScript.cxx:739
 TPostScript.cxx:740
 TPostScript.cxx:741
 TPostScript.cxx:742
 TPostScript.cxx:743
 TPostScript.cxx:744
 TPostScript.cxx:745
 TPostScript.cxx:746
 TPostScript.cxx:747
 TPostScript.cxx:748
 TPostScript.cxx:749
 TPostScript.cxx:750
 TPostScript.cxx:751
 TPostScript.cxx:752
 TPostScript.cxx:753
 TPostScript.cxx:754
 TPostScript.cxx:755
 TPostScript.cxx:756
 TPostScript.cxx:757
 TPostScript.cxx:758
 TPostScript.cxx:759
 TPostScript.cxx:760
 TPostScript.cxx:761
 TPostScript.cxx:762
 TPostScript.cxx:763
 TPostScript.cxx:764
 TPostScript.cxx:765
 TPostScript.cxx:766
 TPostScript.cxx:767
 TPostScript.cxx:768
 TPostScript.cxx:769
 TPostScript.cxx:770
 TPostScript.cxx:771
 TPostScript.cxx:772
 TPostScript.cxx:773
 TPostScript.cxx:774
 TPostScript.cxx:775
 TPostScript.cxx:776
 TPostScript.cxx:777
 TPostScript.cxx:778
 TPostScript.cxx:779
 TPostScript.cxx:780
 TPostScript.cxx:781
 TPostScript.cxx:782
 TPostScript.cxx:783
 TPostScript.cxx:784
 TPostScript.cxx:785
 TPostScript.cxx:786
 TPostScript.cxx:787
 TPostScript.cxx:788
 TPostScript.cxx:789
 TPostScript.cxx:790
 TPostScript.cxx:791
 TPostScript.cxx:792
 TPostScript.cxx:793
 TPostScript.cxx:794
 TPostScript.cxx:795
 TPostScript.cxx:796
 TPostScript.cxx:797
 TPostScript.cxx:798
 TPostScript.cxx:799
 TPostScript.cxx:800
 TPostScript.cxx:801
 TPostScript.cxx:802
 TPostScript.cxx:803
 TPostScript.cxx:804
 TPostScript.cxx:805
 TPostScript.cxx:806
 TPostScript.cxx:807
 TPostScript.cxx:808
 TPostScript.cxx:809
 TPostScript.cxx:810
 TPostScript.cxx:811
 TPostScript.cxx:812
 TPostScript.cxx:813
 TPostScript.cxx:814
 TPostScript.cxx:815
 TPostScript.cxx:816
 TPostScript.cxx:817
 TPostScript.cxx:818
 TPostScript.cxx:819
 TPostScript.cxx:820
 TPostScript.cxx:821
 TPostScript.cxx:822
 TPostScript.cxx:823
 TPostScript.cxx:824
 TPostScript.cxx:825
 TPostScript.cxx:826
 TPostScript.cxx:827
 TPostScript.cxx:828
 TPostScript.cxx:829
 TPostScript.cxx:830
 TPostScript.cxx:831
 TPostScript.cxx:832
 TPostScript.cxx:833
 TPostScript.cxx:834
 TPostScript.cxx:835
 TPostScript.cxx:836
 TPostScript.cxx:837
 TPostScript.cxx:838
 TPostScript.cxx:839
 TPostScript.cxx:840
 TPostScript.cxx:841
 TPostScript.cxx:842
 TPostScript.cxx:843
 TPostScript.cxx:844
 TPostScript.cxx:845
 TPostScript.cxx:846
 TPostScript.cxx:847
 TPostScript.cxx:848
 TPostScript.cxx:849
 TPostScript.cxx:850
 TPostScript.cxx:851
 TPostScript.cxx:852
 TPostScript.cxx:853
 TPostScript.cxx:854
 TPostScript.cxx:855
 TPostScript.cxx:856
 TPostScript.cxx:857
 TPostScript.cxx:858
 TPostScript.cxx:859
 TPostScript.cxx:860
 TPostScript.cxx:861
 TPostScript.cxx:862
 TPostScript.cxx:863
 TPostScript.cxx:864
 TPostScript.cxx:865
 TPostScript.cxx:866
 TPostScript.cxx:867
 TPostScript.cxx:868
 TPostScript.cxx:869
 TPostScript.cxx:870
 TPostScript.cxx:871
 TPostScript.cxx:872
 TPostScript.cxx:873
 TPostScript.cxx:874
 TPostScript.cxx:875
 TPostScript.cxx:876
 TPostScript.cxx:877
 TPostScript.cxx:878
 TPostScript.cxx:879
 TPostScript.cxx:880
 TPostScript.cxx:881
 TPostScript.cxx:882
 TPostScript.cxx:883
 TPostScript.cxx:884
 TPostScript.cxx:885
 TPostScript.cxx:886
 TPostScript.cxx:887
 TPostScript.cxx:888
 TPostScript.cxx:889
 TPostScript.cxx:890
 TPostScript.cxx:891
 TPostScript.cxx:892
 TPostScript.cxx:893
 TPostScript.cxx:894
 TPostScript.cxx:895
 TPostScript.cxx:896
 TPostScript.cxx:897
 TPostScript.cxx:898
 TPostScript.cxx:899
 TPostScript.cxx:900
 TPostScript.cxx:901
 TPostScript.cxx:902
 TPostScript.cxx:903
 TPostScript.cxx:904
 TPostScript.cxx:905
 TPostScript.cxx:906
 TPostScript.cxx:907
 TPostScript.cxx:908
 TPostScript.cxx:909
 TPostScript.cxx:910
 TPostScript.cxx:911
 TPostScript.cxx:912
 TPostScript.cxx:913
 TPostScript.cxx:914
 TPostScript.cxx:915
 TPostScript.cxx:916
 TPostScript.cxx:917
 TPostScript.cxx:918
 TPostScript.cxx:919
 TPostScript.cxx:920
 TPostScript.cxx:921
 TPostScript.cxx:922
 TPostScript.cxx:923
 TPostScript.cxx:924
 TPostScript.cxx:925
 TPostScript.cxx:926
 TPostScript.cxx:927
 TPostScript.cxx:928
 TPostScript.cxx:929
 TPostScript.cxx:930
 TPostScript.cxx:931
 TPostScript.cxx:932
 TPostScript.cxx:933
 TPostScript.cxx:934
 TPostScript.cxx:935
 TPostScript.cxx:936
 TPostScript.cxx:937
 TPostScript.cxx:938
 TPostScript.cxx:939
 TPostScript.cxx:940
 TPostScript.cxx:941
 TPostScript.cxx:942
 TPostScript.cxx:943
 TPostScript.cxx:944
 TPostScript.cxx:945
 TPostScript.cxx:946
 TPostScript.cxx:947
 TPostScript.cxx:948
 TPostScript.cxx:949
 TPostScript.cxx:950
 TPostScript.cxx:951
 TPostScript.cxx:952
 TPostScript.cxx:953
 TPostScript.cxx:954
 TPostScript.cxx:955
 TPostScript.cxx:956
 TPostScript.cxx:957
 TPostScript.cxx:958
 TPostScript.cxx:959
 TPostScript.cxx:960
 TPostScript.cxx:961
 TPostScript.cxx:962
 TPostScript.cxx:963
 TPostScript.cxx:964
 TPostScript.cxx:965
 TPostScript.cxx:966
 TPostScript.cxx:967
 TPostScript.cxx:968
 TPostScript.cxx:969
 TPostScript.cxx:970
 TPostScript.cxx:971
 TPostScript.cxx:972
 TPostScript.cxx:973
 TPostScript.cxx:974
 TPostScript.cxx:975
 TPostScript.cxx:976
 TPostScript.cxx:977
 TPostScript.cxx:978
 TPostScript.cxx:979
 TPostScript.cxx:980
 TPostScript.cxx:981
 TPostScript.cxx:982
 TPostScript.cxx:983
 TPostScript.cxx:984
 TPostScript.cxx:985
 TPostScript.cxx:986
 TPostScript.cxx:987
 TPostScript.cxx:988
 TPostScript.cxx:989
 TPostScript.cxx:990
 TPostScript.cxx:991
 TPostScript.cxx:992
 TPostScript.cxx:993
 TPostScript.cxx:994
 TPostScript.cxx:995
 TPostScript.cxx:996
 TPostScript.cxx:997
 TPostScript.cxx:998
 TPostScript.cxx:999
 TPostScript.cxx:1000
 TPostScript.cxx:1001
 TPostScript.cxx:1002
 TPostScript.cxx:1003
 TPostScript.cxx:1004
 TPostScript.cxx:1005
 TPostScript.cxx:1006
 TPostScript.cxx:1007
 TPostScript.cxx:1008
 TPostScript.cxx:1009
 TPostScript.cxx:1010
 TPostScript.cxx:1011
 TPostScript.cxx:1012
 TPostScript.cxx:1013
 TPostScript.cxx:1014
 TPostScript.cxx:1015
 TPostScript.cxx:1016
 TPostScript.cxx:1017
 TPostScript.cxx:1018
 TPostScript.cxx:1019
 TPostScript.cxx:1020
 TPostScript.cxx:1021
 TPostScript.cxx:1022
 TPostScript.cxx:1023
 TPostScript.cxx:1024
 TPostScript.cxx:1025
 TPostScript.cxx:1026
 TPostScript.cxx:1027
 TPostScript.cxx:1028
 TPostScript.cxx:1029
 TPostScript.cxx:1030
 TPostScript.cxx:1031
 TPostScript.cxx:1032
 TPostScript.cxx:1033
 TPostScript.cxx:1034
 TPostScript.cxx:1035
 TPostScript.cxx:1036
 TPostScript.cxx:1037
 TPostScript.cxx:1038
 TPostScript.cxx:1039
 TPostScript.cxx:1040
 TPostScript.cxx:1041
 TPostScript.cxx:1042
 TPostScript.cxx:1043
 TPostScript.cxx:1044
 TPostScript.cxx:1045
 TPostScript.cxx:1046
 TPostScript.cxx:1047
 TPostScript.cxx:1048
 TPostScript.cxx:1049
 TPostScript.cxx:1050
 TPostScript.cxx:1051
 TPostScript.cxx:1052
 TPostScript.cxx:1053
 TPostScript.cxx:1054
 TPostScript.cxx:1055
 TPostScript.cxx:1056
 TPostScript.cxx:1057
 TPostScript.cxx:1058
 TPostScript.cxx:1059
 TPostScript.cxx:1060
 TPostScript.cxx:1061
 TPostScript.cxx:1062
 TPostScript.cxx:1063
 TPostScript.cxx:1064
 TPostScript.cxx:1065
 TPostScript.cxx:1066
 TPostScript.cxx:1067
 TPostScript.cxx:1068
 TPostScript.cxx:1069
 TPostScript.cxx:1070
 TPostScript.cxx:1071
 TPostScript.cxx:1072
 TPostScript.cxx:1073
 TPostScript.cxx:1074
 TPostScript.cxx:1075
 TPostScript.cxx:1076
 TPostScript.cxx:1077
 TPostScript.cxx:1078
 TPostScript.cxx:1079
 TPostScript.cxx:1080
 TPostScript.cxx:1081
 TPostScript.cxx:1082
 TPostScript.cxx:1083
 TPostScript.cxx:1084
 TPostScript.cxx:1085
 TPostScript.cxx:1086
 TPostScript.cxx:1087
 TPostScript.cxx:1088
 TPostScript.cxx:1089
 TPostScript.cxx:1090
 TPostScript.cxx:1091
 TPostScript.cxx:1092
 TPostScript.cxx:1093
 TPostScript.cxx:1094
 TPostScript.cxx:1095
 TPostScript.cxx:1096
 TPostScript.cxx:1097
 TPostScript.cxx:1098
 TPostScript.cxx:1099
 TPostScript.cxx:1100
 TPostScript.cxx:1101
 TPostScript.cxx:1102
 TPostScript.cxx:1103
 TPostScript.cxx:1104
 TPostScript.cxx:1105
 TPostScript.cxx:1106
 TPostScript.cxx:1107
 TPostScript.cxx:1108
 TPostScript.cxx:1109
 TPostScript.cxx:1110
 TPostScript.cxx:1111
 TPostScript.cxx:1112
 TPostScript.cxx:1113
 TPostScript.cxx:1114
 TPostScript.cxx:1115
 TPostScript.cxx:1116
 TPostScript.cxx:1117
 TPostScript.cxx:1118
 TPostScript.cxx:1119
 TPostScript.cxx:1120
 TPostScript.cxx:1121
 TPostScript.cxx:1122
 TPostScript.cxx:1123
 TPostScript.cxx:1124
 TPostScript.cxx:1125
 TPostScript.cxx:1126
 TPostScript.cxx:1127
 TPostScript.cxx:1128
 TPostScript.cxx:1129
 TPostScript.cxx:1130
 TPostScript.cxx:1131
 TPostScript.cxx:1132
 TPostScript.cxx:1133
 TPostScript.cxx:1134
 TPostScript.cxx:1135
 TPostScript.cxx:1136
 TPostScript.cxx:1137
 TPostScript.cxx:1138
 TPostScript.cxx:1139
 TPostScript.cxx:1140
 TPostScript.cxx:1141
 TPostScript.cxx:1142
 TPostScript.cxx:1143
 TPostScript.cxx:1144
 TPostScript.cxx:1145
 TPostScript.cxx:1146
 TPostScript.cxx:1147
 TPostScript.cxx:1148
 TPostScript.cxx:1149
 TPostScript.cxx:1150
 TPostScript.cxx:1151
 TPostScript.cxx:1152
 TPostScript.cxx:1153
 TPostScript.cxx:1154
 TPostScript.cxx:1155
 TPostScript.cxx:1156
 TPostScript.cxx:1157
 TPostScript.cxx:1158
 TPostScript.cxx:1159
 TPostScript.cxx:1160
 TPostScript.cxx:1161
 TPostScript.cxx:1162
 TPostScript.cxx:1163
 TPostScript.cxx:1164
 TPostScript.cxx:1165
 TPostScript.cxx:1166
 TPostScript.cxx:1167
 TPostScript.cxx:1168
 TPostScript.cxx:1169
 TPostScript.cxx:1170
 TPostScript.cxx:1171
 TPostScript.cxx:1172
 TPostScript.cxx:1173
 TPostScript.cxx:1174
 TPostScript.cxx:1175
 TPostScript.cxx:1176
 TPostScript.cxx:1177
 TPostScript.cxx:1178
 TPostScript.cxx:1179
 TPostScript.cxx:1180
 TPostScript.cxx:1181
 TPostScript.cxx:1182
 TPostScript.cxx:1183
 TPostScript.cxx:1184
 TPostScript.cxx:1185
 TPostScript.cxx:1186
 TPostScript.cxx:1187
 TPostScript.cxx:1188
 TPostScript.cxx:1189
 TPostScript.cxx:1190
 TPostScript.cxx:1191
 TPostScript.cxx:1192
 TPostScript.cxx:1193
 TPostScript.cxx:1194
 TPostScript.cxx:1195
 TPostScript.cxx:1196
 TPostScript.cxx:1197
 TPostScript.cxx:1198
 TPostScript.cxx:1199
 TPostScript.cxx:1200
 TPostScript.cxx:1201
 TPostScript.cxx:1202
 TPostScript.cxx:1203
 TPostScript.cxx:1204
 TPostScript.cxx:1205
 TPostScript.cxx:1206
 TPostScript.cxx:1207
 TPostScript.cxx:1208
 TPostScript.cxx:1209
 TPostScript.cxx:1210
 TPostScript.cxx:1211
 TPostScript.cxx:1212
 TPostScript.cxx:1213
 TPostScript.cxx:1214
 TPostScript.cxx:1215
 TPostScript.cxx:1216
 TPostScript.cxx:1217
 TPostScript.cxx:1218
 TPostScript.cxx:1219
 TPostScript.cxx:1220
 TPostScript.cxx:1221
 TPostScript.cxx:1222
 TPostScript.cxx:1223
 TPostScript.cxx:1224
 TPostScript.cxx:1225
 TPostScript.cxx:1226
 TPostScript.cxx:1227
 TPostScript.cxx:1228
 TPostScript.cxx:1229
 TPostScript.cxx:1230
 TPostScript.cxx:1231
 TPostScript.cxx:1232
 TPostScript.cxx:1233
 TPostScript.cxx:1234
 TPostScript.cxx:1235
 TPostScript.cxx:1236
 TPostScript.cxx:1237
 TPostScript.cxx:1238
 TPostScript.cxx:1239
 TPostScript.cxx:1240
 TPostScript.cxx:1241
 TPostScript.cxx:1242
 TPostScript.cxx:1243
 TPostScript.cxx:1244
 TPostScript.cxx:1245
 TPostScript.cxx:1246
 TPostScript.cxx:1247
 TPostScript.cxx:1248
 TPostScript.cxx:1249
 TPostScript.cxx:1250
 TPostScript.cxx:1251
 TPostScript.cxx:1252
 TPostScript.cxx:1253
 TPostScript.cxx:1254
 TPostScript.cxx:1255
 TPostScript.cxx:1256
 TPostScript.cxx:1257
 TPostScript.cxx:1258
 TPostScript.cxx:1259
 TPostScript.cxx:1260
 TPostScript.cxx:1261
 TPostScript.cxx:1262
 TPostScript.cxx:1263
 TPostScript.cxx:1264
 TPostScript.cxx:1265
 TPostScript.cxx:1266
 TPostScript.cxx:1267
 TPostScript.cxx:1268
 TPostScript.cxx:1269
 TPostScript.cxx:1270
 TPostScript.cxx:1271
 TPostScript.cxx:1272
 TPostScript.cxx:1273
 TPostScript.cxx:1274
 TPostScript.cxx:1275
 TPostScript.cxx:1276
 TPostScript.cxx:1277
 TPostScript.cxx:1278
 TPostScript.cxx:1279
 TPostScript.cxx:1280
 TPostScript.cxx:1281
 TPostScript.cxx:1282
 TPostScript.cxx:1283
 TPostScript.cxx:1284
 TPostScript.cxx:1285
 TPostScript.cxx:1286
 TPostScript.cxx:1287
 TPostScript.cxx:1288
 TPostScript.cxx:1289
 TPostScript.cxx:1290
 TPostScript.cxx:1291
 TPostScript.cxx:1292
 TPostScript.cxx:1293
 TPostScript.cxx:1294
 TPostScript.cxx:1295
 TPostScript.cxx:1296
 TPostScript.cxx:1297
 TPostScript.cxx:1298
 TPostScript.cxx:1299
 TPostScript.cxx:1300
 TPostScript.cxx:1301
 TPostScript.cxx:1302
 TPostScript.cxx:1303
 TPostScript.cxx:1304
 TPostScript.cxx:1305
 TPostScript.cxx:1306
 TPostScript.cxx:1307
 TPostScript.cxx:1308
 TPostScript.cxx:1309
 TPostScript.cxx:1310
 TPostScript.cxx:1311
 TPostScript.cxx:1312
 TPostScript.cxx:1313
 TPostScript.cxx:1314
 TPostScript.cxx:1315
 TPostScript.cxx:1316
 TPostScript.cxx:1317
 TPostScript.cxx:1318
 TPostScript.cxx:1319
 TPostScript.cxx:1320
 TPostScript.cxx:1321
 TPostScript.cxx:1322
 TPostScript.cxx:1323
 TPostScript.cxx:1324
 TPostScript.cxx:1325
 TPostScript.cxx:1326
 TPostScript.cxx:1327
 TPostScript.cxx:1328
 TPostScript.cxx:1329
 TPostScript.cxx:1330
 TPostScript.cxx:1331
 TPostScript.cxx:1332
 TPostScript.cxx:1333
 TPostScript.cxx:1334
 TPostScript.cxx:1335
 TPostScript.cxx:1336
 TPostScript.cxx:1337
 TPostScript.cxx:1338
 TPostScript.cxx:1339
 TPostScript.cxx:1340
 TPostScript.cxx:1341
 TPostScript.cxx:1342
 TPostScript.cxx:1343
 TPostScript.cxx:1344
 TPostScript.cxx:1345
 TPostScript.cxx:1346
 TPostScript.cxx:1347
 TPostScript.cxx:1348
 TPostScript.cxx:1349
 TPostScript.cxx:1350
 TPostScript.cxx:1351
 TPostScript.cxx:1352
 TPostScript.cxx:1353
 TPostScript.cxx:1354
 TPostScript.cxx:1355
 TPostScript.cxx:1356
 TPostScript.cxx:1357
 TPostScript.cxx:1358
 TPostScript.cxx:1359
 TPostScript.cxx:1360
 TPostScript.cxx:1361
 TPostScript.cxx:1362
 TPostScript.cxx:1363
 TPostScript.cxx:1364
 TPostScript.cxx:1365
 TPostScript.cxx:1366
 TPostScript.cxx:1367
 TPostScript.cxx:1368
 TPostScript.cxx:1369
 TPostScript.cxx:1370
 TPostScript.cxx:1371
 TPostScript.cxx:1372
 TPostScript.cxx:1373
 TPostScript.cxx:1374
 TPostScript.cxx:1375
 TPostScript.cxx:1376
 TPostScript.cxx:1377
 TPostScript.cxx:1378
 TPostScript.cxx:1379
 TPostScript.cxx:1380
 TPostScript.cxx:1381
 TPostScript.cxx:1382
 TPostScript.cxx:1383
 TPostScript.cxx:1384
 TPostScript.cxx:1385
 TPostScript.cxx:1386
 TPostScript.cxx:1387
 TPostScript.cxx:1388
 TPostScript.cxx:1389
 TPostScript.cxx:1390
 TPostScript.cxx:1391
 TPostScript.cxx:1392
 TPostScript.cxx:1393
 TPostScript.cxx:1394
 TPostScript.cxx:1395
 TPostScript.cxx:1396
 TPostScript.cxx:1397
 TPostScript.cxx:1398
 TPostScript.cxx:1399
 TPostScript.cxx:1400
 TPostScript.cxx:1401
 TPostScript.cxx:1402
 TPostScript.cxx:1403
 TPostScript.cxx:1404
 TPostScript.cxx:1405
 TPostScript.cxx:1406
 TPostScript.cxx:1407
 TPostScript.cxx:1408
 TPostScript.cxx:1409
 TPostScript.cxx:1410
 TPostScript.cxx:1411
 TPostScript.cxx:1412
 TPostScript.cxx:1413
 TPostScript.cxx:1414
 TPostScript.cxx:1415
 TPostScript.cxx:1416
 TPostScript.cxx:1417
 TPostScript.cxx:1418
 TPostScript.cxx:1419
 TPostScript.cxx:1420
 TPostScript.cxx:1421
 TPostScript.cxx:1422
 TPostScript.cxx:1423
 TPostScript.cxx:1424
 TPostScript.cxx:1425
 TPostScript.cxx:1426
 TPostScript.cxx:1427
 TPostScript.cxx:1428
 TPostScript.cxx:1429
 TPostScript.cxx:1430
 TPostScript.cxx:1431
 TPostScript.cxx:1432
 TPostScript.cxx:1433
 TPostScript.cxx:1434
 TPostScript.cxx:1435
 TPostScript.cxx:1436
 TPostScript.cxx:1437
 TPostScript.cxx:1438
 TPostScript.cxx:1439
 TPostScript.cxx:1440
 TPostScript.cxx:1441
 TPostScript.cxx:1442
 TPostScript.cxx:1443
 TPostScript.cxx:1444
 TPostScript.cxx:1445
 TPostScript.cxx:1446
 TPostScript.cxx:1447
 TPostScript.cxx:1448
 TPostScript.cxx:1449
 TPostScript.cxx:1450
 TPostScript.cxx:1451
 TPostScript.cxx:1452
 TPostScript.cxx:1453
 TPostScript.cxx:1454
 TPostScript.cxx:1455
 TPostScript.cxx:1456
 TPostScript.cxx:1457
 TPostScript.cxx:1458
 TPostScript.cxx:1459
 TPostScript.cxx:1460
 TPostScript.cxx:1461
 TPostScript.cxx:1462
 TPostScript.cxx:1463
 TPostScript.cxx:1464
 TPostScript.cxx:1465
 TPostScript.cxx:1466
 TPostScript.cxx:1467
 TPostScript.cxx:1468
 TPostScript.cxx:1469
 TPostScript.cxx:1470
 TPostScript.cxx:1471
 TPostScript.cxx:1472
 TPostScript.cxx:1473
 TPostScript.cxx:1474
 TPostScript.cxx:1475
 TPostScript.cxx:1476
 TPostScript.cxx:1477
 TPostScript.cxx:1478
 TPostScript.cxx:1479
 TPostScript.cxx:1480
 TPostScript.cxx:1481
 TPostScript.cxx:1482
 TPostScript.cxx:1483
 TPostScript.cxx:1484
 TPostScript.cxx:1485
 TPostScript.cxx:1486
 TPostScript.cxx:1487
 TPostScript.cxx:1488
 TPostScript.cxx:1489
 TPostScript.cxx:1490
 TPostScript.cxx:1491
 TPostScript.cxx:1492
 TPostScript.cxx:1493
 TPostScript.cxx:1494
 TPostScript.cxx:1495
 TPostScript.cxx:1496
 TPostScript.cxx:1497
 TPostScript.cxx:1498
 TPostScript.cxx:1499
 TPostScript.cxx:1500
 TPostScript.cxx:1501
 TPostScript.cxx:1502
 TPostScript.cxx:1503
 TPostScript.cxx:1504
 TPostScript.cxx:1505
 TPostScript.cxx:1506
 TPostScript.cxx:1507
 TPostScript.cxx:1508
 TPostScript.cxx:1509
 TPostScript.cxx:1510
 TPostScript.cxx:1511
 TPostScript.cxx:1512
 TPostScript.cxx:1513
 TPostScript.cxx:1514
 TPostScript.cxx:1515
 TPostScript.cxx:1516
 TPostScript.cxx:1517
 TPostScript.cxx:1518
 TPostScript.cxx:1519
 TPostScript.cxx:1520
 TPostScript.cxx:1521
 TPostScript.cxx:1522
 TPostScript.cxx:1523
 TPostScript.cxx:1524
 TPostScript.cxx:1525
 TPostScript.cxx:1526
 TPostScript.cxx:1527
 TPostScript.cxx:1528
 TPostScript.cxx:1529
 TPostScript.cxx:1530
 TPostScript.cxx:1531
 TPostScript.cxx:1532
 TPostScript.cxx:1533
 TPostScript.cxx:1534
 TPostScript.cxx:1535
 TPostScript.cxx:1536
 TPostScript.cxx:1537
 TPostScript.cxx:1538
 TPostScript.cxx:1539
 TPostScript.cxx:1540
 TPostScript.cxx:1541
 TPostScript.cxx:1542
 TPostScript.cxx:1543
 TPostScript.cxx:1544
 TPostScript.cxx:1545
 TPostScript.cxx:1546
 TPostScript.cxx:1547
 TPostScript.cxx:1548
 TPostScript.cxx:1549
 TPostScript.cxx:1550
 TPostScript.cxx:1551
 TPostScript.cxx:1552
 TPostScript.cxx:1553
 TPostScript.cxx:1554
 TPostScript.cxx:1555
 TPostScript.cxx:1556
 TPostScript.cxx:1557
 TPostScript.cxx:1558
 TPostScript.cxx:1559
 TPostScript.cxx:1560
 TPostScript.cxx:1561
 TPostScript.cxx:1562
 TPostScript.cxx:1563
 TPostScript.cxx:1564
 TPostScript.cxx:1565
 TPostScript.cxx:1566
 TPostScript.cxx:1567
 TPostScript.cxx:1568
 TPostScript.cxx:1569
 TPostScript.cxx:1570
 TPostScript.cxx:1571
 TPostScript.cxx:1572
 TPostScript.cxx:1573
 TPostScript.cxx:1574
 TPostScript.cxx:1575
 TPostScript.cxx:1576
 TPostScript.cxx:1577
 TPostScript.cxx:1578
 TPostScript.cxx:1579
 TPostScript.cxx:1580
 TPostScript.cxx:1581
 TPostScript.cxx:1582
 TPostScript.cxx:1583
 TPostScript.cxx:1584
 TPostScript.cxx:1585
 TPostScript.cxx:1586
 TPostScript.cxx:1587
 TPostScript.cxx:1588
 TPostScript.cxx:1589
 TPostScript.cxx:1590
 TPostScript.cxx:1591
 TPostScript.cxx:1592
 TPostScript.cxx:1593
 TPostScript.cxx:1594
 TPostScript.cxx:1595
 TPostScript.cxx:1596
 TPostScript.cxx:1597
 TPostScript.cxx:1598
 TPostScript.cxx:1599
 TPostScript.cxx:1600
 TPostScript.cxx:1601
 TPostScript.cxx:1602
 TPostScript.cxx:1603
 TPostScript.cxx:1604
 TPostScript.cxx:1605
 TPostScript.cxx:1606
 TPostScript.cxx:1607
 TPostScript.cxx:1608
 TPostScript.cxx:1609
 TPostScript.cxx:1610
 TPostScript.cxx:1611
 TPostScript.cxx:1612
 TPostScript.cxx:1613
 TPostScript.cxx:1614
 TPostScript.cxx:1615
 TPostScript.cxx:1616
 TPostScript.cxx:1617
 TPostScript.cxx:1618
 TPostScript.cxx:1619
 TPostScript.cxx:1620
 TPostScript.cxx:1621
 TPostScript.cxx:1622
 TPostScript.cxx:1623
 TPostScript.cxx:1624
 TPostScript.cxx:1625
 TPostScript.cxx:1626
 TPostScript.cxx:1627
 TPostScript.cxx:1628
 TPostScript.cxx:1629
 TPostScript.cxx:1630
 TPostScript.cxx:1631
 TPostScript.cxx:1632
 TPostScript.cxx:1633
 TPostScript.cxx:1634
 TPostScript.cxx:1635
 TPostScript.cxx:1636
 TPostScript.cxx:1637
 TPostScript.cxx:1638
 TPostScript.cxx:1639
 TPostScript.cxx:1640
 TPostScript.cxx:1641
 TPostScript.cxx:1642
 TPostScript.cxx:1643
 TPostScript.cxx:1644
 TPostScript.cxx:1645
 TPostScript.cxx:1646
 TPostScript.cxx:1647
 TPostScript.cxx:1648
 TPostScript.cxx:1649
 TPostScript.cxx:1650
 TPostScript.cxx:1651
 TPostScript.cxx:1652
 TPostScript.cxx:1653
 TPostScript.cxx:1654
 TPostScript.cxx:1655
 TPostScript.cxx:1656
 TPostScript.cxx:1657
 TPostScript.cxx:1658
 TPostScript.cxx:1659
 TPostScript.cxx:1660
 TPostScript.cxx:1661
 TPostScript.cxx:1662
 TPostScript.cxx:1663
 TPostScript.cxx:1664
 TPostScript.cxx:1665
 TPostScript.cxx:1666
 TPostScript.cxx:1667
 TPostScript.cxx:1668
 TPostScript.cxx:1669
 TPostScript.cxx:1670
 TPostScript.cxx:1671
 TPostScript.cxx:1672
 TPostScript.cxx:1673
 TPostScript.cxx:1674
 TPostScript.cxx:1675
 TPostScript.cxx:1676
 TPostScript.cxx:1677
 TPostScript.cxx:1678
 TPostScript.cxx:1679
 TPostScript.cxx:1680
 TPostScript.cxx:1681
 TPostScript.cxx:1682
 TPostScript.cxx:1683
 TPostScript.cxx:1684
 TPostScript.cxx:1685
 TPostScript.cxx:1686
 TPostScript.cxx:1687
 TPostScript.cxx:1688
 TPostScript.cxx:1689
 TPostScript.cxx:1690
 TPostScript.cxx:1691
 TPostScript.cxx:1692
 TPostScript.cxx:1693
 TPostScript.cxx:1694
 TPostScript.cxx:1695
 TPostScript.cxx:1696
 TPostScript.cxx:1697
 TPostScript.cxx:1698
 TPostScript.cxx:1699
 TPostScript.cxx:1700
 TPostScript.cxx:1701
 TPostScript.cxx:1702
 TPostScript.cxx:1703
 TPostScript.cxx:1704
 TPostScript.cxx:1705
 TPostScript.cxx:1706
 TPostScript.cxx:1707
 TPostScript.cxx:1708
 TPostScript.cxx:1709
 TPostScript.cxx:1710
 TPostScript.cxx:1711
 TPostScript.cxx:1712
 TPostScript.cxx:1713
 TPostScript.cxx:1714
 TPostScript.cxx:1715
 TPostScript.cxx:1716
 TPostScript.cxx:1717
 TPostScript.cxx:1718
 TPostScript.cxx:1719
 TPostScript.cxx:1720
 TPostScript.cxx:1721
 TPostScript.cxx:1722
 TPostScript.cxx:1723
 TPostScript.cxx:1724
 TPostScript.cxx:1725
 TPostScript.cxx:1726
 TPostScript.cxx:1727
 TPostScript.cxx:1728
 TPostScript.cxx:1729
 TPostScript.cxx:1730
 TPostScript.cxx:1731
 TPostScript.cxx:1732
 TPostScript.cxx:1733
 TPostScript.cxx:1734
 TPostScript.cxx:1735
 TPostScript.cxx:1736
 TPostScript.cxx:1737
 TPostScript.cxx:1738
 TPostScript.cxx:1739
 TPostScript.cxx:1740
 TPostScript.cxx:1741
 TPostScript.cxx:1742
 TPostScript.cxx:1743
 TPostScript.cxx:1744
 TPostScript.cxx:1745
 TPostScript.cxx:1746
 TPostScript.cxx:1747
 TPostScript.cxx:1748
 TPostScript.cxx:1749
 TPostScript.cxx:1750
 TPostScript.cxx:1751
 TPostScript.cxx:1752
 TPostScript.cxx:1753
 TPostScript.cxx:1754
 TPostScript.cxx:1755
 TPostScript.cxx:1756
 TPostScript.cxx:1757
 TPostScript.cxx:1758
 TPostScript.cxx:1759
 TPostScript.cxx:1760
 TPostScript.cxx:1761
 TPostScript.cxx:1762
 TPostScript.cxx:1763
 TPostScript.cxx:1764
 TPostScript.cxx:1765
 TPostScript.cxx:1766
 TPostScript.cxx:1767
 TPostScript.cxx:1768
 TPostScript.cxx:1769
 TPostScript.cxx:1770
 TPostScript.cxx:1771
 TPostScript.cxx:1772
 TPostScript.cxx:1773
 TPostScript.cxx:1774
 TPostScript.cxx:1775
 TPostScript.cxx:1776
 TPostScript.cxx:1777
 TPostScript.cxx:1778
 TPostScript.cxx:1779
 TPostScript.cxx:1780
 TPostScript.cxx:1781
 TPostScript.cxx:1782
 TPostScript.cxx:1783
 TPostScript.cxx:1784
 TPostScript.cxx:1785
 TPostScript.cxx:1786
 TPostScript.cxx:1787
 TPostScript.cxx:1788
 TPostScript.cxx:1789
 TPostScript.cxx:1790
 TPostScript.cxx:1791
 TPostScript.cxx:1792
 TPostScript.cxx:1793
 TPostScript.cxx:1794
 TPostScript.cxx:1795
 TPostScript.cxx:1796
 TPostScript.cxx:1797
 TPostScript.cxx:1798
 TPostScript.cxx:1799
 TPostScript.cxx:1800
 TPostScript.cxx:1801
 TPostScript.cxx:1802
 TPostScript.cxx:1803
 TPostScript.cxx:1804
 TPostScript.cxx:1805
 TPostScript.cxx:1806
 TPostScript.cxx:1807
 TPostScript.cxx:1808
 TPostScript.cxx:1809
 TPostScript.cxx:1810
 TPostScript.cxx:1811
 TPostScript.cxx:1812
 TPostScript.cxx:1813
 TPostScript.cxx:1814
 TPostScript.cxx:1815
 TPostScript.cxx:1816
 TPostScript.cxx:1817
 TPostScript.cxx:1818
 TPostScript.cxx:1819
 TPostScript.cxx:1820
 TPostScript.cxx:1821
 TPostScript.cxx:1822
 TPostScript.cxx:1823
 TPostScript.cxx:1824
 TPostScript.cxx:1825
 TPostScript.cxx:1826
 TPostScript.cxx:1827
 TPostScript.cxx:1828
 TPostScript.cxx:1829
 TPostScript.cxx:1830
 TPostScript.cxx:1831
 TPostScript.cxx:1832
 TPostScript.cxx:1833
 TPostScript.cxx:1834
 TPostScript.cxx:1835
 TPostScript.cxx:1836
 TPostScript.cxx:1837
 TPostScript.cxx:1838
 TPostScript.cxx:1839
 TPostScript.cxx:1840
 TPostScript.cxx:1841
 TPostScript.cxx:1842
 TPostScript.cxx:1843
 TPostScript.cxx:1844
 TPostScript.cxx:1845
 TPostScript.cxx:1846
 TPostScript.cxx:1847
 TPostScript.cxx:1848
 TPostScript.cxx:1849
 TPostScript.cxx:1850
 TPostScript.cxx:1851
 TPostScript.cxx:1852
 TPostScript.cxx:1853
 TPostScript.cxx:1854
 TPostScript.cxx:1855
 TPostScript.cxx:1856
 TPostScript.cxx:1857
 TPostScript.cxx:1858
 TPostScript.cxx:1859
 TPostScript.cxx:1860
 TPostScript.cxx:1861
 TPostScript.cxx:1862
 TPostScript.cxx:1863
 TPostScript.cxx:1864
 TPostScript.cxx:1865
 TPostScript.cxx:1866
 TPostScript.cxx:1867
 TPostScript.cxx:1868
 TPostScript.cxx:1869
 TPostScript.cxx:1870
 TPostScript.cxx:1871
 TPostScript.cxx:1872
 TPostScript.cxx:1873
 TPostScript.cxx:1874
 TPostScript.cxx:1875
 TPostScript.cxx:1876
 TPostScript.cxx:1877
 TPostScript.cxx:1878
 TPostScript.cxx:1879
 TPostScript.cxx:1880
 TPostScript.cxx:1881
 TPostScript.cxx:1882
 TPostScript.cxx:1883
 TPostScript.cxx:1884
 TPostScript.cxx:1885
 TPostScript.cxx:1886
 TPostScript.cxx:1887
 TPostScript.cxx:1888
 TPostScript.cxx:1889
 TPostScript.cxx:1890
 TPostScript.cxx:1891
 TPostScript.cxx:1892
 TPostScript.cxx:1893
 TPostScript.cxx:1894
 TPostScript.cxx:1895
 TPostScript.cxx:1896
 TPostScript.cxx:1897
 TPostScript.cxx:1898
 TPostScript.cxx:1899
 TPostScript.cxx:1900
 TPostScript.cxx:1901
 TPostScript.cxx:1902
 TPostScript.cxx:1903
 TPostScript.cxx:1904
 TPostScript.cxx:1905
 TPostScript.cxx:1906
 TPostScript.cxx:1907
 TPostScript.cxx:1908
 TPostScript.cxx:1909
 TPostScript.cxx:1910
 TPostScript.cxx:1911
 TPostScript.cxx:1912
 TPostScript.cxx:1913
 TPostScript.cxx:1914
 TPostScript.cxx:1915
 TPostScript.cxx:1916
 TPostScript.cxx:1917
 TPostScript.cxx:1918
 TPostScript.cxx:1919
 TPostScript.cxx:1920
 TPostScript.cxx:1921
 TPostScript.cxx:1922
 TPostScript.cxx:1923
 TPostScript.cxx:1924
 TPostScript.cxx:1925
 TPostScript.cxx:1926
 TPostScript.cxx:1927
 TPostScript.cxx:1928
 TPostScript.cxx:1929
 TPostScript.cxx:1930
 TPostScript.cxx:1931
 TPostScript.cxx:1932
 TPostScript.cxx:1933
 TPostScript.cxx:1934
 TPostScript.cxx:1935
 TPostScript.cxx:1936
 TPostScript.cxx:1937
 TPostScript.cxx:1938
 TPostScript.cxx:1939
 TPostScript.cxx:1940
 TPostScript.cxx:1941
 TPostScript.cxx:1942
 TPostScript.cxx:1943
 TPostScript.cxx:1944
 TPostScript.cxx:1945
 TPostScript.cxx:1946
 TPostScript.cxx:1947
 TPostScript.cxx:1948
 TPostScript.cxx:1949
 TPostScript.cxx:1950
 TPostScript.cxx:1951
 TPostScript.cxx:1952
 TPostScript.cxx:1953
 TPostScript.cxx:1954
 TPostScript.cxx:1955
 TPostScript.cxx:1956
 TPostScript.cxx:1957
 TPostScript.cxx:1958
 TPostScript.cxx:1959
 TPostScript.cxx:1960
 TPostScript.cxx:1961
 TPostScript.cxx:1962
 TPostScript.cxx:1963
 TPostScript.cxx:1964
 TPostScript.cxx:1965
 TPostScript.cxx:1966
 TPostScript.cxx:1967
 TPostScript.cxx:1968
 TPostScript.cxx:1969
 TPostScript.cxx:1970
 TPostScript.cxx:1971
 TPostScript.cxx:1972
 TPostScript.cxx:1973
 TPostScript.cxx:1974
 TPostScript.cxx:1975
 TPostScript.cxx:1976
 TPostScript.cxx:1977
 TPostScript.cxx:1978
 TPostScript.cxx:1979
 TPostScript.cxx:1980
 TPostScript.cxx:1981
 TPostScript.cxx:1982
 TPostScript.cxx:1983
 TPostScript.cxx:1984
 TPostScript.cxx:1985
 TPostScript.cxx:1986
 TPostScript.cxx:1987
 TPostScript.cxx:1988
 TPostScript.cxx:1989
 TPostScript.cxx:1990
 TPostScript.cxx:1991
 TPostScript.cxx:1992
 TPostScript.cxx:1993
 TPostScript.cxx:1994
 TPostScript.cxx:1995
 TPostScript.cxx:1996
 TPostScript.cxx:1997
 TPostScript.cxx:1998
 TPostScript.cxx:1999
 TPostScript.cxx:2000
 TPostScript.cxx:2001
 TPostScript.cxx:2002
 TPostScript.cxx:2003
 TPostScript.cxx:2004
 TPostScript.cxx:2005
 TPostScript.cxx:2006
 TPostScript.cxx:2007
 TPostScript.cxx:2008
 TPostScript.cxx:2009
 TPostScript.cxx:2010
 TPostScript.cxx:2011
 TPostScript.cxx:2012
 TPostScript.cxx:2013
 TPostScript.cxx:2014
 TPostScript.cxx:2015
 TPostScript.cxx:2016
 TPostScript.cxx:2017
 TPostScript.cxx:2018
 TPostScript.cxx:2019
 TPostScript.cxx:2020
 TPostScript.cxx:2021
 TPostScript.cxx:2022
 TPostScript.cxx:2023
 TPostScript.cxx:2024
 TPostScript.cxx:2025
 TPostScript.cxx:2026
 TPostScript.cxx:2027
 TPostScript.cxx:2028
 TPostScript.cxx:2029
 TPostScript.cxx:2030
 TPostScript.cxx:2031
 TPostScript.cxx:2032
 TPostScript.cxx:2033
 TPostScript.cxx:2034
 TPostScript.cxx:2035
 TPostScript.cxx:2036
 TPostScript.cxx:2037
 TPostScript.cxx:2038
 TPostScript.cxx:2039
 TPostScript.cxx:2040
 TPostScript.cxx:2041
 TPostScript.cxx:2042
 TPostScript.cxx:2043
 TPostScript.cxx:2044
 TPostScript.cxx:2045
 TPostScript.cxx:2046
 TPostScript.cxx:2047
 TPostScript.cxx:2048
 TPostScript.cxx:2049
 TPostScript.cxx:2050
 TPostScript.cxx:2051
 TPostScript.cxx:2052
 TPostScript.cxx:2053
 TPostScript.cxx:2054
 TPostScript.cxx:2055
 TPostScript.cxx:2056
 TPostScript.cxx:2057
 TPostScript.cxx:2058
 TPostScript.cxx:2059
 TPostScript.cxx:2060
 TPostScript.cxx:2061
 TPostScript.cxx:2062
 TPostScript.cxx:2063
 TPostScript.cxx:2064
 TPostScript.cxx:2065
 TPostScript.cxx:2066
 TPostScript.cxx:2067
 TPostScript.cxx:2068
 TPostScript.cxx:2069
 TPostScript.cxx:2070
 TPostScript.cxx:2071
 TPostScript.cxx:2072
 TPostScript.cxx:2073
 TPostScript.cxx:2074
 TPostScript.cxx:2075
 TPostScript.cxx:2076
 TPostScript.cxx:2077
 TPostScript.cxx:2078
 TPostScript.cxx:2079
 TPostScript.cxx:2080
 TPostScript.cxx:2081
 TPostScript.cxx:2082
 TPostScript.cxx:2083
 TPostScript.cxx:2084
 TPostScript.cxx:2085
 TPostScript.cxx:2086
 TPostScript.cxx:2087
 TPostScript.cxx:2088
 TPostScript.cxx:2089
 TPostScript.cxx:2090
 TPostScript.cxx:2091
 TPostScript.cxx:2092
 TPostScript.cxx:2093
 TPostScript.cxx:2094
 TPostScript.cxx:2095
 TPostScript.cxx:2096
 TPostScript.cxx:2097
 TPostScript.cxx:2098
 TPostScript.cxx:2099
 TPostScript.cxx:2100
 TPostScript.cxx:2101
 TPostScript.cxx:2102
 TPostScript.cxx:2103
 TPostScript.cxx:2104
 TPostScript.cxx:2105
 TPostScript.cxx:2106
 TPostScript.cxx:2107
 TPostScript.cxx:2108
 TPostScript.cxx:2109
 TPostScript.cxx:2110
 TPostScript.cxx:2111
 TPostScript.cxx:2112
 TPostScript.cxx:2113
 TPostScript.cxx:2114
 TPostScript.cxx:2115
 TPostScript.cxx:2116
 TPostScript.cxx:2117
 TPostScript.cxx:2118
 TPostScript.cxx:2119
 TPostScript.cxx:2120
 TPostScript.cxx:2121
 TPostScript.cxx:2122
 TPostScript.cxx:2123
 TPostScript.cxx:2124
 TPostScript.cxx:2125
 TPostScript.cxx:2126
 TPostScript.cxx:2127
 TPostScript.cxx:2128
 TPostScript.cxx:2129
 TPostScript.cxx:2130
 TPostScript.cxx:2131
 TPostScript.cxx:2132
 TPostScript.cxx:2133
 TPostScript.cxx:2134
 TPostScript.cxx:2135
 TPostScript.cxx:2136
 TPostScript.cxx:2137
 TPostScript.cxx:2138
 TPostScript.cxx:2139
 TPostScript.cxx:2140
 TPostScript.cxx:2141
 TPostScript.cxx:2142
 TPostScript.cxx:2143
 TPostScript.cxx:2144
 TPostScript.cxx:2145
 TPostScript.cxx:2146
 TPostScript.cxx:2147
 TPostScript.cxx:2148
 TPostScript.cxx:2149
 TPostScript.cxx:2150
 TPostScript.cxx:2151
 TPostScript.cxx:2152
 TPostScript.cxx:2153
 TPostScript.cxx:2154
 TPostScript.cxx:2155
 TPostScript.cxx:2156
 TPostScript.cxx:2157
 TPostScript.cxx:2158
 TPostScript.cxx:2159
 TPostScript.cxx:2160
 TPostScript.cxx:2161
 TPostScript.cxx:2162
 TPostScript.cxx:2163
 TPostScript.cxx:2164
 TPostScript.cxx:2165
 TPostScript.cxx:2166
 TPostScript.cxx:2167
 TPostScript.cxx:2168
 TPostScript.cxx:2169
 TPostScript.cxx:2170
 TPostScript.cxx:2171
 TPostScript.cxx:2172
 TPostScript.cxx:2173
 TPostScript.cxx:2174
 TPostScript.cxx:2175
 TPostScript.cxx:2176
 TPostScript.cxx:2177
 TPostScript.cxx:2178
 TPostScript.cxx:2179
 TPostScript.cxx:2180
 TPostScript.cxx:2181
 TPostScript.cxx:2182
 TPostScript.cxx:2183
 TPostScript.cxx:2184
 TPostScript.cxx:2185
 TPostScript.cxx:2186
 TPostScript.cxx:2187
 TPostScript.cxx:2188
 TPostScript.cxx:2189
 TPostScript.cxx:2190
 TPostScript.cxx:2191
 TPostScript.cxx:2192
 TPostScript.cxx:2193
 TPostScript.cxx:2194
 TPostScript.cxx:2195
 TPostScript.cxx:2196
 TPostScript.cxx:2197
 TPostScript.cxx:2198
 TPostScript.cxx:2199
 TPostScript.cxx:2200
 TPostScript.cxx:2201
 TPostScript.cxx:2202
 TPostScript.cxx:2203
 TPostScript.cxx:2204
 TPostScript.cxx:2205
 TPostScript.cxx:2206
 TPostScript.cxx:2207
 TPostScript.cxx:2208
 TPostScript.cxx:2209
 TPostScript.cxx:2210
 TPostScript.cxx:2211
 TPostScript.cxx:2212
 TPostScript.cxx:2213
 TPostScript.cxx:2214
 TPostScript.cxx:2215
 TPostScript.cxx:2216
 TPostScript.cxx:2217
 TPostScript.cxx:2218
 TPostScript.cxx:2219
 TPostScript.cxx:2220
 TPostScript.cxx:2221
 TPostScript.cxx:2222
 TPostScript.cxx:2223
 TPostScript.cxx:2224
 TPostScript.cxx:2225
 TPostScript.cxx:2226
 TPostScript.cxx:2227
 TPostScript.cxx:2228
 TPostScript.cxx:2229
 TPostScript.cxx:2230
 TPostScript.cxx:2231
 TPostScript.cxx:2232
 TPostScript.cxx:2233
 TPostScript.cxx:2234
 TPostScript.cxx:2235
 TPostScript.cxx:2236
 TPostScript.cxx:2237
 TPostScript.cxx:2238
 TPostScript.cxx:2239
 TPostScript.cxx:2240
 TPostScript.cxx:2241
 TPostScript.cxx:2242
 TPostScript.cxx:2243
 TPostScript.cxx:2244
 TPostScript.cxx:2245
 TPostScript.cxx:2246
 TPostScript.cxx:2247
 TPostScript.cxx:2248
 TPostScript.cxx:2249
 TPostScript.cxx:2250
 TPostScript.cxx:2251
 TPostScript.cxx:2252
 TPostScript.cxx:2253
 TPostScript.cxx:2254
 TPostScript.cxx:2255
 TPostScript.cxx:2256
 TPostScript.cxx:2257
 TPostScript.cxx:2258
 TPostScript.cxx:2259
 TPostScript.cxx:2260
 TPostScript.cxx:2261
 TPostScript.cxx:2262
 TPostScript.cxx:2263
 TPostScript.cxx:2264
 TPostScript.cxx:2265
 TPostScript.cxx:2266
 TPostScript.cxx:2267
 TPostScript.cxx:2268
 TPostScript.cxx:2269
 TPostScript.cxx:2270
 TPostScript.cxx:2271
 TPostScript.cxx:2272
 TPostScript.cxx:2273
 TPostScript.cxx:2274
 TPostScript.cxx:2275
 TPostScript.cxx:2276
 TPostScript.cxx:2277
 TPostScript.cxx:2278
 TPostScript.cxx:2279
 TPostScript.cxx:2280
 TPostScript.cxx:2281
 TPostScript.cxx:2282
 TPostScript.cxx:2283
 TPostScript.cxx:2284
 TPostScript.cxx:2285
 TPostScript.cxx:2286
 TPostScript.cxx:2287
 TPostScript.cxx:2288
 TPostScript.cxx:2289
 TPostScript.cxx:2290
 TPostScript.cxx:2291
 TPostScript.cxx:2292
 TPostScript.cxx:2293
 TPostScript.cxx:2294
 TPostScript.cxx:2295
 TPostScript.cxx:2296
 TPostScript.cxx:2297
 TPostScript.cxx:2298
 TPostScript.cxx:2299
 TPostScript.cxx:2300
 TPostScript.cxx:2301
 TPostScript.cxx:2302
 TPostScript.cxx:2303
 TPostScript.cxx:2304
 TPostScript.cxx:2305
 TPostScript.cxx:2306
 TPostScript.cxx:2307
 TPostScript.cxx:2308
 TPostScript.cxx:2309
 TPostScript.cxx:2310
 TPostScript.cxx:2311
 TPostScript.cxx:2312
 TPostScript.cxx:2313
 TPostScript.cxx:2314
 TPostScript.cxx:2315
 TPostScript.cxx:2316
 TPostScript.cxx:2317
 TPostScript.cxx:2318
 TPostScript.cxx:2319
 TPostScript.cxx:2320
 TPostScript.cxx:2321
 TPostScript.cxx:2322
 TPostScript.cxx:2323
 TPostScript.cxx:2324
 TPostScript.cxx:2325
 TPostScript.cxx:2326
 TPostScript.cxx:2327
 TPostScript.cxx:2328
 TPostScript.cxx:2329
 TPostScript.cxx:2330
 TPostScript.cxx:2331
 TPostScript.cxx:2332
 TPostScript.cxx:2333
 TPostScript.cxx:2334
 TPostScript.cxx:2335
 TPostScript.cxx:2336
 TPostScript.cxx:2337
 TPostScript.cxx:2338
 TPostScript.cxx:2339
 TPostScript.cxx:2340
 TPostScript.cxx:2341
 TPostScript.cxx:2342
 TPostScript.cxx:2343
 TPostScript.cxx:2344
 TPostScript.cxx:2345
 TPostScript.cxx:2346
 TPostScript.cxx:2347
 TPostScript.cxx:2348
 TPostScript.cxx:2349
 TPostScript.cxx:2350
 TPostScript.cxx:2351
 TPostScript.cxx:2352
 TPostScript.cxx:2353
 TPostScript.cxx:2354
 TPostScript.cxx:2355
 TPostScript.cxx:2356
 TPostScript.cxx:2357
 TPostScript.cxx:2358
 TPostScript.cxx:2359
 TPostScript.cxx:2360
 TPostScript.cxx:2361
 TPostScript.cxx:2362
 TPostScript.cxx:2363
 TPostScript.cxx:2364
 TPostScript.cxx:2365
 TPostScript.cxx:2366
 TPostScript.cxx:2367
 TPostScript.cxx:2368
 TPostScript.cxx:2369
 TPostScript.cxx:2370
 TPostScript.cxx:2371
 TPostScript.cxx:2372
 TPostScript.cxx:2373
 TPostScript.cxx:2374
 TPostScript.cxx:2375
 TPostScript.cxx:2376
 TPostScript.cxx:2377
 TPostScript.cxx:2378
 TPostScript.cxx:2379
 TPostScript.cxx:2380
 TPostScript.cxx:2381
 TPostScript.cxx:2382
 TPostScript.cxx:2383
 TPostScript.cxx:2384
 TPostScript.cxx:2385
 TPostScript.cxx:2386
 TPostScript.cxx:2387
 TPostScript.cxx:2388
 TPostScript.cxx:2389
 TPostScript.cxx:2390
 TPostScript.cxx:2391
 TPostScript.cxx:2392
 TPostScript.cxx:2393
 TPostScript.cxx:2394
 TPostScript.cxx:2395
 TPostScript.cxx:2396
 TPostScript.cxx:2397
 TPostScript.cxx:2398
 TPostScript.cxx:2399
 TPostScript.cxx:2400
 TPostScript.cxx:2401
 TPostScript.cxx:2402
 TPostScript.cxx:2403
 TPostScript.cxx:2404
 TPostScript.cxx:2405
 TPostScript.cxx:2406
 TPostScript.cxx:2407
 TPostScript.cxx:2408
 TPostScript.cxx:2409
 TPostScript.cxx:2410
 TPostScript.cxx:2411
 TPostScript.cxx:2412
 TPostScript.cxx:2413
 TPostScript.cxx:2414
 TPostScript.cxx:2415
 TPostScript.cxx:2416
 TPostScript.cxx:2417
 TPostScript.cxx:2418
 TPostScript.cxx:2419
 TPostScript.cxx:2420
 TPostScript.cxx:2421
 TPostScript.cxx:2422
 TPostScript.cxx:2423
 TPostScript.cxx:2424
 TPostScript.cxx:2425
 TPostScript.cxx:2426
 TPostScript.cxx:2427
 TPostScript.cxx:2428
 TPostScript.cxx:2429
 TPostScript.cxx:2430
 TPostScript.cxx:2431
 TPostScript.cxx:2432
 TPostScript.cxx:2433
 TPostScript.cxx:2434
 TPostScript.cxx:2435
 TPostScript.cxx:2436
 TPostScript.cxx:2437
 TPostScript.cxx:2438
 TPostScript.cxx:2439
 TPostScript.cxx:2440
 TPostScript.cxx:2441
 TPostScript.cxx:2442
 TPostScript.cxx:2443
 TPostScript.cxx:2444
 TPostScript.cxx:2445
 TPostScript.cxx:2446
 TPostScript.cxx:2447
 TPostScript.cxx:2448
 TPostScript.cxx:2449
 TPostScript.cxx:2450
 TPostScript.cxx:2451
 TPostScript.cxx:2452
 TPostScript.cxx:2453
 TPostScript.cxx:2454
 TPostScript.cxx:2455
 TPostScript.cxx:2456
 TPostScript.cxx:2457
 TPostScript.cxx:2458
 TPostScript.cxx:2459
 TPostScript.cxx:2460
 TPostScript.cxx:2461
 TPostScript.cxx:2462
 TPostScript.cxx:2463
 TPostScript.cxx:2464
 TPostScript.cxx:2465
 TPostScript.cxx:2466
 TPostScript.cxx:2467
 TPostScript.cxx:2468
 TPostScript.cxx:2469
 TPostScript.cxx:2470
 TPostScript.cxx:2471
 TPostScript.cxx:2472
 TPostScript.cxx:2473
 TPostScript.cxx:2474
 TPostScript.cxx:2475
 TPostScript.cxx:2476
 TPostScript.cxx:2477
 TPostScript.cxx:2478
 TPostScript.cxx:2479
 TPostScript.cxx:2480
 TPostScript.cxx:2481
 TPostScript.cxx:2482
 TPostScript.cxx:2483
 TPostScript.cxx:2484
 TPostScript.cxx:2485
 TPostScript.cxx:2486
 TPostScript.cxx:2487
 TPostScript.cxx:2488
 TPostScript.cxx:2489
 TPostScript.cxx:2490
 TPostScript.cxx:2491
 TPostScript.cxx:2492
 TPostScript.cxx:2493
 TPostScript.cxx:2494
 TPostScript.cxx:2495
 TPostScript.cxx:2496
 TPostScript.cxx:2497
 TPostScript.cxx:2498
 TPostScript.cxx:2499
 TPostScript.cxx:2500
 TPostScript.cxx:2501
 TPostScript.cxx:2502
 TPostScript.cxx:2503
 TPostScript.cxx:2504
 TPostScript.cxx:2505
 TPostScript.cxx:2506
 TPostScript.cxx:2507
 TPostScript.cxx:2508
 TPostScript.cxx:2509
 TPostScript.cxx:2510
 TPostScript.cxx:2511
 TPostScript.cxx:2512
 TPostScript.cxx:2513
 TPostScript.cxx:2514
 TPostScript.cxx:2515
 TPostScript.cxx:2516
 TPostScript.cxx:2517
 TPostScript.cxx:2518
 TPostScript.cxx:2519
 TPostScript.cxx:2520
 TPostScript.cxx:2521
 TPostScript.cxx:2522
 TPostScript.cxx:2523
 TPostScript.cxx:2524
 TPostScript.cxx:2525
 TPostScript.cxx:2526
 TPostScript.cxx:2527
 TPostScript.cxx:2528
 TPostScript.cxx:2529
 TPostScript.cxx:2530
 TPostScript.cxx:2531
 TPostScript.cxx:2532
 TPostScript.cxx:2533
 TPostScript.cxx:2534
 TPostScript.cxx:2535
 TPostScript.cxx:2536
 TPostScript.cxx:2537
 TPostScript.cxx:2538
 TPostScript.cxx:2539
 TPostScript.cxx:2540
 TPostScript.cxx:2541
 TPostScript.cxx:2542
 TPostScript.cxx:2543
 TPostScript.cxx:2544
 TPostScript.cxx:2545
 TPostScript.cxx:2546
 TPostScript.cxx:2547
 TPostScript.cxx:2548
 TPostScript.cxx:2549
 TPostScript.cxx:2550
 TPostScript.cxx:2551
 TPostScript.cxx:2552
 TPostScript.cxx:2553
 TPostScript.cxx:2554
 TPostScript.cxx:2555
 TPostScript.cxx:2556
 TPostScript.cxx:2557
 TPostScript.cxx:2558
 TPostScript.cxx:2559
 TPostScript.cxx:2560
 TPostScript.cxx:2561
 TPostScript.cxx:2562
 TPostScript.cxx:2563
 TPostScript.cxx:2564
 TPostScript.cxx:2565
 TPostScript.cxx:2566
 TPostScript.cxx:2567
 TPostScript.cxx:2568
 TPostScript.cxx:2569
 TPostScript.cxx:2570
 TPostScript.cxx:2571
 TPostScript.cxx:2572
 TPostScript.cxx:2573
 TPostScript.cxx:2574
 TPostScript.cxx:2575
 TPostScript.cxx:2576
 TPostScript.cxx:2577
 TPostScript.cxx:2578
 TPostScript.cxx:2579
 TPostScript.cxx:2580
 TPostScript.cxx:2581
 TPostScript.cxx:2582
 TPostScript.cxx:2583
 TPostScript.cxx:2584
 TPostScript.cxx:2585
 TPostScript.cxx:2586
 TPostScript.cxx:2587
 TPostScript.cxx:2588
 TPostScript.cxx:2589
 TPostScript.cxx:2590
 TPostScript.cxx:2591
 TPostScript.cxx:2592
 TPostScript.cxx:2593
 TPostScript.cxx:2594
 TPostScript.cxx:2595
 TPostScript.cxx:2596
 TPostScript.cxx:2597
 TPostScript.cxx:2598
 TPostScript.cxx:2599
 TPostScript.cxx:2600
 TPostScript.cxx:2601
 TPostScript.cxx:2602
 TPostScript.cxx:2603
 TPostScript.cxx:2604
 TPostScript.cxx:2605
 TPostScript.cxx:2606
 TPostScript.cxx:2607
 TPostScript.cxx:2608
 TPostScript.cxx:2609
 TPostScript.cxx:2610
 TPostScript.cxx:2611
 TPostScript.cxx:2612
 TPostScript.cxx:2613
 TPostScript.cxx:2614
 TPostScript.cxx:2615
 TPostScript.cxx:2616
 TPostScript.cxx:2617
 TPostScript.cxx:2618
 TPostScript.cxx:2619
 TPostScript.cxx:2620
 TPostScript.cxx:2621
 TPostScript.cxx:2622
 TPostScript.cxx:2623
 TPostScript.cxx:2624
 TPostScript.cxx:2625
 TPostScript.cxx:2626
 TPostScript.cxx:2627
 TPostScript.cxx:2628
 TPostScript.cxx:2629
 TPostScript.cxx:2630
 TPostScript.cxx:2631
 TPostScript.cxx:2632
 TPostScript.cxx:2633
 TPostScript.cxx:2634
 TPostScript.cxx:2635
 TPostScript.cxx:2636
 TPostScript.cxx:2637
 TPostScript.cxx:2638
 TPostScript.cxx:2639
 TPostScript.cxx:2640
 TPostScript.cxx:2641
 TPostScript.cxx:2642
 TPostScript.cxx:2643
 TPostScript.cxx:2644
 TPostScript.cxx:2645
 TPostScript.cxx:2646
 TPostScript.cxx:2647
 TPostScript.cxx:2648
 TPostScript.cxx:2649
 TPostScript.cxx:2650
 TPostScript.cxx:2651
 TPostScript.cxx:2652
 TPostScript.cxx:2653
 TPostScript.cxx:2654
 TPostScript.cxx:2655
 TPostScript.cxx:2656
 TPostScript.cxx:2657
 TPostScript.cxx:2658
 TPostScript.cxx:2659
 TPostScript.cxx:2660
 TPostScript.cxx:2661
 TPostScript.cxx:2662
 TPostScript.cxx:2663
 TPostScript.cxx:2664
 TPostScript.cxx:2665
 TPostScript.cxx:2666
 TPostScript.cxx:2667
 TPostScript.cxx:2668
 TPostScript.cxx:2669
 TPostScript.cxx:2670
 TPostScript.cxx:2671
 TPostScript.cxx:2672
 TPostScript.cxx:2673
 TPostScript.cxx:2674
 TPostScript.cxx:2675
 TPostScript.cxx:2676
 TPostScript.cxx:2677
 TPostScript.cxx:2678
 TPostScript.cxx:2679
 TPostScript.cxx:2680
 TPostScript.cxx:2681
 TPostScript.cxx:2682
 TPostScript.cxx:2683
 TPostScript.cxx:2684
 TPostScript.cxx:2685
 TPostScript.cxx:2686
 TPostScript.cxx:2687
 TPostScript.cxx:2688
 TPostScript.cxx:2689
 TPostScript.cxx:2690
 TPostScript.cxx:2691
 TPostScript.cxx:2692
 TPostScript.cxx:2693
 TPostScript.cxx:2694
 TPostScript.cxx:2695
 TPostScript.cxx:2696
 TPostScript.cxx:2697
 TPostScript.cxx:2698
 TPostScript.cxx:2699
 TPostScript.cxx:2700
 TPostScript.cxx:2701
 TPostScript.cxx:2702
 TPostScript.cxx:2703
 TPostScript.cxx:2704
 TPostScript.cxx:2705
 TPostScript.cxx:2706
 TPostScript.cxx:2707
 TPostScript.cxx:2708
 TPostScript.cxx:2709
 TPostScript.cxx:2710
 TPostScript.cxx:2711
 TPostScript.cxx:2712
 TPostScript.cxx:2713
 TPostScript.cxx:2714
 TPostScript.cxx:2715
 TPostScript.cxx:2716
 TPostScript.cxx:2717
 TPostScript.cxx:2718
 TPostScript.cxx:2719
 TPostScript.cxx:2720
 TPostScript.cxx:2721
 TPostScript.cxx:2722
 TPostScript.cxx:2723
 TPostScript.cxx:2724
 TPostScript.cxx:2725
 TPostScript.cxx:2726
 TPostScript.cxx:2727
 TPostScript.cxx:2728
 TPostScript.cxx:2729
 TPostScript.cxx:2730
 TPostScript.cxx:2731
 TPostScript.cxx:2732
 TPostScript.cxx:2733
 TPostScript.cxx:2734
 TPostScript.cxx:2735
 TPostScript.cxx:2736
 TPostScript.cxx:2737
 TPostScript.cxx:2738
 TPostScript.cxx:2739
 TPostScript.cxx:2740
 TPostScript.cxx:2741
 TPostScript.cxx:2742
 TPostScript.cxx:2743
 TPostScript.cxx:2744
 TPostScript.cxx:2745
 TPostScript.cxx:2746
 TPostScript.cxx:2747
 TPostScript.cxx:2748
 TPostScript.cxx:2749
 TPostScript.cxx:2750
 TPostScript.cxx:2751
 TPostScript.cxx:2752
 TPostScript.cxx:2753
 TPostScript.cxx:2754
 TPostScript.cxx:2755
 TPostScript.cxx:2756
 TPostScript.cxx:2757
 TPostScript.cxx:2758
 TPostScript.cxx:2759
 TPostScript.cxx:2760
 TPostScript.cxx:2761
 TPostScript.cxx:2762
 TPostScript.cxx:2763
 TPostScript.cxx:2764
 TPostScript.cxx:2765
 TPostScript.cxx:2766
 TPostScript.cxx:2767
 TPostScript.cxx:2768
 TPostScript.cxx:2769
 TPostScript.cxx:2770
 TPostScript.cxx:2771
 TPostScript.cxx:2772
 TPostScript.cxx:2773
 TPostScript.cxx:2774
 TPostScript.cxx:2775
 TPostScript.cxx:2776
 TPostScript.cxx:2777
 TPostScript.cxx:2778
 TPostScript.cxx:2779
 TPostScript.cxx:2780
 TPostScript.cxx:2781
 TPostScript.cxx:2782
 TPostScript.cxx:2783
 TPostScript.cxx:2784
 TPostScript.cxx:2785
 TPostScript.cxx:2786
 TPostScript.cxx:2787
 TPostScript.cxx:2788
 TPostScript.cxx:2789
 TPostScript.cxx:2790
 TPostScript.cxx:2791
 TPostScript.cxx:2792
 TPostScript.cxx:2793
 TPostScript.cxx:2794
 TPostScript.cxx:2795
 TPostScript.cxx:2796
 TPostScript.cxx:2797
 TPostScript.cxx:2798
 TPostScript.cxx:2799
 TPostScript.cxx:2800
 TPostScript.cxx:2801
 TPostScript.cxx:2802
 TPostScript.cxx:2803
 TPostScript.cxx:2804
 TPostScript.cxx:2805
 TPostScript.cxx:2806
 TPostScript.cxx:2807
 TPostScript.cxx:2808
 TPostScript.cxx:2809
 TPostScript.cxx:2810
 TPostScript.cxx:2811
 TPostScript.cxx:2812
 TPostScript.cxx:2813
 TPostScript.cxx:2814
 TPostScript.cxx:2815
 TPostScript.cxx:2816
 TPostScript.cxx:2817
 TPostScript.cxx:2818
 TPostScript.cxx:2819
 TPostScript.cxx:2820
 TPostScript.cxx:2821
 TPostScript.cxx:2822
 TPostScript.cxx:2823
 TPostScript.cxx:2824
 TPostScript.cxx:2825
 TPostScript.cxx:2826
 TPostScript.cxx:2827
 TPostScript.cxx:2828
 TPostScript.cxx:2829
 TPostScript.cxx:2830
 TPostScript.cxx:2831
 TPostScript.cxx:2832
 TPostScript.cxx:2833
 TPostScript.cxx:2834
 TPostScript.cxx:2835
 TPostScript.cxx:2836
 TPostScript.cxx:2837
 TPostScript.cxx:2838
 TPostScript.cxx:2839
 TPostScript.cxx:2840
 TPostScript.cxx:2841
 TPostScript.cxx:2842
 TPostScript.cxx:2843
 TPostScript.cxx:2844
 TPostScript.cxx:2845
 TPostScript.cxx:2846
 TPostScript.cxx:2847
 TPostScript.cxx:2848
 TPostScript.cxx:2849
 TPostScript.cxx:2850
 TPostScript.cxx:2851
 TPostScript.cxx:2852
 TPostScript.cxx:2853
 TPostScript.cxx:2854
 TPostScript.cxx:2855
 TPostScript.cxx:2856
 TPostScript.cxx:2857
 TPostScript.cxx:2858
 TPostScript.cxx:2859
 TPostScript.cxx:2860
 TPostScript.cxx:2861
 TPostScript.cxx:2862
 TPostScript.cxx:2863
 TPostScript.cxx:2864
 TPostScript.cxx:2865
 TPostScript.cxx:2866
 TPostScript.cxx:2867
 TPostScript.cxx:2868
 TPostScript.cxx:2869
 TPostScript.cxx:2870
 TPostScript.cxx:2871
 TPostScript.cxx:2872
 TPostScript.cxx:2873
 TPostScript.cxx:2874
 TPostScript.cxx:2875
 TPostScript.cxx:2876
 TPostScript.cxx:2877
 TPostScript.cxx:2878
 TPostScript.cxx:2879
 TPostScript.cxx:2880
 TPostScript.cxx:2881
 TPostScript.cxx:2882
 TPostScript.cxx:2883
 TPostScript.cxx:2884
 TPostScript.cxx:2885
 TPostScript.cxx:2886
 TPostScript.cxx:2887
 TPostScript.cxx:2888
 TPostScript.cxx:2889
 TPostScript.cxx:2890
 TPostScript.cxx:2891
 TPostScript.cxx:2892
 TPostScript.cxx:2893
 TPostScript.cxx:2894
 TPostScript.cxx:2895
 TPostScript.cxx:2896
 TPostScript.cxx:2897
 TPostScript.cxx:2898
 TPostScript.cxx:2899
 TPostScript.cxx:2900
 TPostScript.cxx:2901
 TPostScript.cxx:2902
 TPostScript.cxx:2903
 TPostScript.cxx:2904
 TPostScript.cxx:2905
 TPostScript.cxx:2906
 TPostScript.cxx:2907
 TPostScript.cxx:2908
 TPostScript.cxx:2909
 TPostScript.cxx:2910
 TPostScript.cxx:2911
 TPostScript.cxx:2912
 TPostScript.cxx:2913
 TPostScript.cxx:2914
 TPostScript.cxx:2915
 TPostScript.cxx:2916
 TPostScript.cxx:2917
 TPostScript.cxx:2918
 TPostScript.cxx:2919
 TPostScript.cxx:2920
 TPostScript.cxx:2921
 TPostScript.cxx:2922
 TPostScript.cxx:2923
 TPostScript.cxx:2924
 TPostScript.cxx:2925
 TPostScript.cxx:2926
 TPostScript.cxx:2927
 TPostScript.cxx:2928
 TPostScript.cxx:2929
 TPostScript.cxx:2930
 TPostScript.cxx:2931
 TPostScript.cxx:2932
 TPostScript.cxx:2933
 TPostScript.cxx:2934
 TPostScript.cxx:2935
 TPostScript.cxx:2936
 TPostScript.cxx:2937
 TPostScript.cxx:2938
 TPostScript.cxx:2939
 TPostScript.cxx:2940
 TPostScript.cxx:2941
 TPostScript.cxx:2942
 TPostScript.cxx:2943
 TPostScript.cxx:2944
 TPostScript.cxx:2945
 TPostScript.cxx:2946
 TPostScript.cxx:2947
 TPostScript.cxx:2948
 TPostScript.cxx:2949
 TPostScript.cxx:2950
 TPostScript.cxx:2951
 TPostScript.cxx:2952
 TPostScript.cxx:2953
 TPostScript.cxx:2954
 TPostScript.cxx:2955
 TPostScript.cxx:2956
 TPostScript.cxx:2957
 TPostScript.cxx:2958
 TPostScript.cxx:2959
 TPostScript.cxx:2960
 TPostScript.cxx:2961
 TPostScript.cxx:2962
 TPostScript.cxx:2963
 TPostScript.cxx:2964
 TPostScript.cxx:2965
 TPostScript.cxx:2966
 TPostScript.cxx:2967
 TPostScript.cxx:2968
 TPostScript.cxx:2969
 TPostScript.cxx:2970
 TPostScript.cxx:2971
 TPostScript.cxx:2972
 TPostScript.cxx:2973
 TPostScript.cxx:2974
 TPostScript.cxx:2975
 TPostScript.cxx:2976
 TPostScript.cxx:2977
 TPostScript.cxx:2978
 TPostScript.cxx:2979
 TPostScript.cxx:2980
 TPostScript.cxx:2981
 TPostScript.cxx:2982
 TPostScript.cxx:2983
 TPostScript.cxx:2984
 TPostScript.cxx:2985
 TPostScript.cxx:2986
 TPostScript.cxx:2987
 TPostScript.cxx:2988
 TPostScript.cxx:2989
 TPostScript.cxx:2990
 TPostScript.cxx:2991
 TPostScript.cxx:2992
 TPostScript.cxx:2993
 TPostScript.cxx:2994
 TPostScript.cxx:2995
 TPostScript.cxx:2996
 TPostScript.cxx:2997
 TPostScript.cxx:2998
 TPostScript.cxx:2999
 TPostScript.cxx:3000
 TPostScript.cxx:3001
 TPostScript.cxx:3002
 TPostScript.cxx:3003
 TPostScript.cxx:3004
 TPostScript.cxx:3005
 TPostScript.cxx:3006
 TPostScript.cxx:3007
 TPostScript.cxx:3008
 TPostScript.cxx:3009
 TPostScript.cxx:3010
 TPostScript.cxx:3011
 TPostScript.cxx:3012
 TPostScript.cxx:3013
 TPostScript.cxx:3014
 TPostScript.cxx:3015
 TPostScript.cxx:3016
 TPostScript.cxx:3017
 TPostScript.cxx:3018
 TPostScript.cxx:3019
 TPostScript.cxx:3020
 TPostScript.cxx:3021
 TPostScript.cxx:3022
 TPostScript.cxx:3023
 TPostScript.cxx:3024
 TPostScript.cxx:3025
 TPostScript.cxx:3026
 TPostScript.cxx:3027
 TPostScript.cxx:3028
 TPostScript.cxx:3029
 TPostScript.cxx:3030
 TPostScript.cxx:3031
 TPostScript.cxx:3032
 TPostScript.cxx:3033
 TPostScript.cxx:3034
 TPostScript.cxx:3035
 TPostScript.cxx:3036
 TPostScript.cxx:3037
 TPostScript.cxx:3038
 TPostScript.cxx:3039
 TPostScript.cxx:3040
 TPostScript.cxx:3041
 TPostScript.cxx:3042
 TPostScript.cxx:3043
 TPostScript.cxx:3044
 TPostScript.cxx:3045
 TPostScript.cxx:3046
 TPostScript.cxx:3047
 TPostScript.cxx:3048
 TPostScript.cxx:3049
 TPostScript.cxx:3050
 TPostScript.cxx:3051
 TPostScript.cxx:3052
 TPostScript.cxx:3053
 TPostScript.cxx:3054
 TPostScript.cxx:3055
 TPostScript.cxx:3056
 TPostScript.cxx:3057
 TPostScript.cxx:3058
 TPostScript.cxx:3059
 TPostScript.cxx:3060
 TPostScript.cxx:3061
 TPostScript.cxx:3062
 TPostScript.cxx:3063
 TPostScript.cxx:3064
 TPostScript.cxx:3065
 TPostScript.cxx:3066
 TPostScript.cxx:3067
 TPostScript.cxx:3068
 TPostScript.cxx:3069
 TPostScript.cxx:3070
 TPostScript.cxx:3071
 TPostScript.cxx:3072
 TPostScript.cxx:3073
 TPostScript.cxx:3074
 TPostScript.cxx:3075
 TPostScript.cxx:3076
 TPostScript.cxx:3077
 TPostScript.cxx:3078
 TPostScript.cxx:3079
 TPostScript.cxx:3080
 TPostScript.cxx:3081
 TPostScript.cxx:3082
 TPostScript.cxx:3083
 TPostScript.cxx:3084
 TPostScript.cxx:3085
 TPostScript.cxx:3086
 TPostScript.cxx:3087
 TPostScript.cxx:3088
 TPostScript.cxx:3089
 TPostScript.cxx:3090
 TPostScript.cxx:3091
 TPostScript.cxx:3092
 TPostScript.cxx:3093
 TPostScript.cxx:3094
 TPostScript.cxx:3095
 TPostScript.cxx:3096
 TPostScript.cxx:3097