ROOT logo
// @(#)root/io:$Id: TBufferFile.cxx 28845 2009-06-08 13:53:44Z rdm $
// Author: Rene Brun 17/01/2007

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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TBufferFile                                                          //
//                                                                      //
// The concrete implementation of TBuffer for writing/reading to/from a //
// ROOT file or socket.                                                 //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <string.h>
#include <typeinfo>

#include "TFile.h"
#include "TBufferFile.h"
#include "TExMap.h"
#include "TClass.h"
#include "TProcessID.h"
#include "TRefTable.h"
#include "TStorage.h"
#include "TError.h"
#include "TClonesArray.h"
#include "TStreamer.h"
#include "TStreamerInfo.h"
#include "TStreamerElement.h"
#include "TSchemaRuleSet.h"

#if (defined(__linux) || defined(__APPLE__)) && defined(__i386__) && \
     defined(__GNUC__)
#define USE_BSWAPCPY
#endif

#ifdef USE_BSWAPCPY
#include "Bswapcpy.h"
#endif


const UInt_t kNullTag           = 0;
const UInt_t kNewClassTag       = 0xFFFFFFFF;
const UInt_t kClassMask         = 0x80000000;  // OR the class index with this
const UInt_t kByteCountMask     = 0x40000000;  // OR the byte count with this
const UInt_t kMaxMapCount       = 0x3FFFFFFE;  // last valid fMapCount and byte count
const Version_t kByteCountVMask = 0x4000;      // OR the version byte count with this
const Version_t kMaxVersion     = 0x3FFF;      // highest possible version number
const Int_t  kMapOffset         = 2;   // first 2 map entries are taken by null obj and self obj

Int_t TBufferFile::fgMapSize   = kMapSize;


ClassImp(TBufferFile)

//______________________________________________________________________________
static inline ULong_t Void_Hash(const void *ptr)
{
   // Return hash value for this object.

   return TString::Hash(&ptr, sizeof(void*));
}

//______________________________________________________________________________
TBufferFile::TBufferFile(TBuffer::EMode mode)
            :TBuffer(mode),
             fDisplacement(0),fPidOffset(0), fMap(0), fClassMap(0),
             fInfo(0), fInfoStack()
{
   // Create an I/O buffer object. Mode should be either TBuffer::kRead or
   // TBuffer::kWrite. By default the I/O buffer has a size of
   // TBuffer::kInitialSize (1024) bytes.

   fMapCount     = 0;
   fMapSize      = fgMapSize;
   fMap          = 0;
   fClassMap     = 0;
   fParent       = 0;
   fDisplacement = 0;
}

//______________________________________________________________________________
TBufferFile::TBufferFile(TBuffer::EMode mode, Int_t bufsiz)
            :TBuffer(mode,bufsiz),
             fDisplacement(0),fPidOffset(0), fMap(0), fClassMap(0),
             fInfo(0), fInfoStack()
{
   // Create an I/O buffer object. Mode should be either TBuffer::kRead or
   // TBuffer::kWrite.

   fMapCount = 0;
   fMapSize  = fgMapSize;
   fMap      = 0;
   fClassMap = 0;
   fDisplacement = 0;
}

//______________________________________________________________________________
TBufferFile::TBufferFile(TBuffer::EMode mode, Int_t bufsiz, void *buf, Bool_t adopt, ReAllocCharFun_t reallocfunc) :
   TBuffer(mode,bufsiz,buf,adopt,reallocfunc),
   fDisplacement(0),fPidOffset(0), fMap(0), fClassMap(0),
   fInfo(0), fInfoStack()
{
   // Create an I/O buffer object. Mode should be either TBuffer::kRead or
   // TBuffer::kWrite. By default the I/O buffer has a size of
   // TBuffer::kInitialSize (1024) bytes. An external buffer can be passed
   // to TBuffer via the buf argument. By default this buffer will be adopted
   // unless adopt is false.
   // If the new buffer is _not_ adopted and no memory allocation routine
   // is provided, a Fatal error will be issued if the Buffer attempts to
   // expand.

   fMapCount = 0;
   fMapSize  = fgMapSize;
   fMap      = 0;
   fClassMap = 0;
   fDisplacement = 0;
}

//______________________________________________________________________________
TBufferFile::~TBufferFile()
{
   // Delete an I/O buffer object.

   delete fMap;
   delete fClassMap;
}

//______________________________________________________________________________
Int_t TBufferFile::GetVersionOwner() const
{
   // Return the version number of the owner file.

   TFile *file = (TFile*)GetParent();
   if (file) return file->GetVersion();
   else return 0;
}

//______________________________________________________________________________
void TBufferFile::IncrementLevel(TVirtualStreamerInfo* info)
{
   // Increment level.

   fInfoStack.push_back(fInfo);
   fInfo = (TStreamerInfo*)info;
}

//______________________________________________________________________________
void TBufferFile::DecrementLevel(TVirtualStreamerInfo* /*info*/)
{
   // Decrement level.

   fInfo = fInfoStack.back();
   fInfoStack.pop_back();
}

//______________________________________________________________________________
void TBufferFile::PushDataCache(TVirtualArray *obj)
{
   // Push a new data cache area onto the list of area to be used for
   // temporarily store 'missing' data members.

   fCacheStack.push_back(obj);
}

//______________________________________________________________________________
TVirtualArray *TBufferFile::PeekDataCache() const
{
   // Return the 'current' data cache area from the list of area to be used for
   // temporarily store 'missing' data members.

   if (fCacheStack.empty()) return 0;
   return fCacheStack.back();
}

//______________________________________________________________________________
TVirtualArray *TBufferFile::PopDataCache()
{
   // Pop and Return the 'current' data cache area from the list of area to be used for
   // temporarily store 'missing' data members.

   TVirtualArray *val = PeekDataCache();
   fCacheStack.pop_back();
   return val;
}

//______________________________________________________________________________
static void frombufOld(char *&buf, Long_t *x)
{
   // Files written with versions older than 3.00/06 had a non-portable
   // implementation of Long_t/ULong_t. These types should not have been
   // used at all. However, because some users had already written many
   // files with these types we provide this dirty patch for "backward
   // compatibility"

#ifdef R__BYTESWAP
#ifdef R__B64
   char *sw = (char *)x;
   sw[0] = buf[7];
   sw[1] = buf[6];
   sw[2] = buf[5];
   sw[3] = buf[4];
   sw[4] = buf[3];
   sw[5] = buf[2];
   sw[6] = buf[1];
   sw[7] = buf[0];
#else
   char *sw = (char *)x;
   sw[0] = buf[3];
   sw[1] = buf[2];
   sw[2] = buf[1];
   sw[3] = buf[0];
#endif
#else
   memcpy(x, buf, sizeof(Long_t));
#endif
   buf += sizeof(Long_t);
}

//______________________________________________________________________________
void TBufferFile::ReadLong(Long_t &l)
{
   // Read Long from TBuffer.

   TFile *file = (TFile*)fParent;
   if (file && file->GetVersion() < 30006) {
      frombufOld(fBufCur, &l);
   } else {
      frombuf(fBufCur, &l);
   }
}

//_______________________________________________________________________
void TBufferFile::ReadTString(TString &s)
{
   // Read string from TBuffer.

   s.Streamer(*this);
}

//_______________________________________________________________________
void TBufferFile::WriteTString(const TString &s)
{
   // Write string to TBuffer.

   ((TString&)s).Streamer(*this);
}

//______________________________________________________________________________
void TBufferFile::SetByteCount(UInt_t cntpos, Bool_t packInVersion)
{
   // Set byte count at position cntpos in the buffer. Generate warning if
   // count larger than kMaxMapCount. The count is excluded its own size.

   UInt_t cnt = UInt_t(fBufCur - fBuffer) - cntpos - sizeof(UInt_t);
   char  *buf = (char *)(fBuffer + cntpos);

   // if true, pack byte count in two consecutive shorts, so it can
   // be read by ReadVersion()
   if (packInVersion) {
      union {
         UInt_t    cnt;
         Version_t vers[2];
      } v;
      v.cnt = cnt;
#ifdef R__BYTESWAP
      tobuf(buf, Version_t(v.vers[1] | kByteCountVMask));
      tobuf(buf, v.vers[0]);
#else
      tobuf(buf, Version_t(v.vers[0] | kByteCountVMask));
      tobuf(buf, v.vers[1]);
#endif
   } else
      tobuf(buf, cnt | kByteCountMask);

   if (cnt >= kMaxMapCount) {
      Error("WriteByteCount", "bytecount too large (more than %d)", kMaxMapCount);
      // exception
   }
}

//______________________________________________________________________________
Int_t TBufferFile::CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char *classname)
{
   // Check byte count with current buffer position. They should
   // match. If not print warning and position buffer in correct
   // place determined by the byte count. Startpos is position of
   // first byte where the byte count is written in buffer.
   // Returns 0 if everything is ok, otherwise the bytecount offset
   // (< 0 when read too little, >0 when read too much).

   if (!bcnt) return 0;

   Int_t  offset = 0;

   Long_t endpos = Long_t(fBuffer) + startpos + bcnt + sizeof(UInt_t);

   if (Long_t(fBufCur) != endpos) {
      offset = Int_t(Long_t(fBufCur) - endpos);

      const char *name = clss ? clss->GetName() : classname ? classname : 0;

      if (name) {
         if (offset < 0) {
            Error("CheckByteCount", "object of class %s read too few bytes: %d instead of %d",
                  name,bcnt+offset,bcnt);
         }
         if (offset > 0) {
            Error("CheckByteCount", "object of class %s read too many bytes: %d instead of %d",
                  name,bcnt+offset,bcnt);
            if (fParent)
               Warning("CheckByteCount","%s::Streamer() not in sync with data on file %s, fix Streamer()",
                       name, fParent->GetName());
            else
               Warning("CheckByteCount","%s::Streamer() not in sync with data, fix Streamer()",
                       name);
         }
      }
      if ( ((char *)endpos) > fBufMax ) {
         offset = fBufMax-fBufCur;
         Error("CheckByteCount",
               "Byte count probably corrupted around buffer position %d:\n\t%d for a possible maximum of %d",
               startpos, bcnt, offset);
         fBufCur = fBufMax;

      } else {

         fBufCur = (char *) endpos;

      }
   }
   return offset;
}

//______________________________________________________________________________
Int_t TBufferFile::CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)
{
   // Check byte count with current buffer position. They should
   // match. If not print warning and position buffer in correct
   // place determined by the byte count. Startpos is position of
   // first byte where the byte count is written in buffer.
   // Returns 0 if everything is ok, otherwise the bytecount offset
   // (< 0 when read too little, >0 when read too much).

   if (!bcnt) return 0;
   return CheckByteCount( startpos, bcnt, clss, 0);
}

//______________________________________________________________________________
Int_t TBufferFile::CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname)
{
   // Check byte count with current buffer position. They should
   // match. If not print warning and position buffer in correct
   // place determined by the byte count. Startpos is position of
   // first byte where the byte count is written in buffer.
   // Returns 0 if everything is ok, otherwise the bytecount offset
   // (< 0 when read too little, >0 when read too much).

   if (!bcnt) return 0;
   return CheckByteCount( startpos, bcnt, 0, classname);
}

//______________________________________________________________________________
void TBufferFile::ReadFloat16(Float_t *f, TStreamerElement *ele)
{
   // Read a Float16_t from the buffer,
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16().

   if (ele && ele->GetFactor() != 0) {
      //a range was specified. We read an integer and convert it back to a double.
      UInt_t aint; *this >> aint; f[0] = (Float_t)(aint/ele->GetFactor() + ele->GetXmin());
   } else {
      Int_t nbits = 0;
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) nbits = 12;
      //we read the exponent and the truncated mantissa of the float
      //and rebuild the float.
      union {
         Float_t xx;
         Int_t ix;
      };
      UChar_t  theExp;
      UShort_t theMan;
      *this >> theExp;
      *this >> theMan;
      ix = theExp;
      ix <<= 23;
      ix |= (theMan & ((1<<(nbits+1))-1)) <<(23-nbits);
      if(1<<(nbits+1) & theMan) xx=-xx;
      f[0] = xx;
   }
}

//______________________________________________________________________________
void TBufferFile::ReadDouble32(Double_t *d, TStreamerElement *ele)
{
   // Read a Double32_t from the buffer,
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32().

   if (ele && ele->GetFactor() != 0) {
      //a range was specified. We read an integer and convert it back to a double.
      UInt_t aint; *this >> aint; d[0] = (Double_t)(aint/ele->GetFactor() + ele->GetXmin());
   } else {
      Int_t nbits = 0;
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) {
         //we read a float and convert it to double
         Float_t afloat;
         *this >> afloat;
         d[0] = (Double_t)afloat;
      } else {
         //we read the exponent and the truncated mantissa of the float
         //and rebuild the double.
         union {
            Float_t xx;
            Int_t ix;
         };
         UChar_t  theExp;
         UShort_t theMan;
         *this >> theExp;
         *this >> theMan;
         ix = theExp;
         ix <<= 23;
         ix |= (theMan & ((1<<(nbits+1))-1)) <<(23-nbits);
         if(1<<(nbits+1) & theMan) xx=-xx;
         d[0] = (Double_t)xx;
      }
   }
}

//______________________________________________________________________________
void TBufferFile::WriteFloat16(Float_t *f, TStreamerElement *ele)
{
   // write a Float16_t to the buffer.
   // The following cases are supported for streaming a Float16_t type
   // depending on the range declaration in the comment field of the data member:
   //  A-    Float16_t     fNormal;
   //  B-    Float16_t     fTemperature; //[0,100]
   //  C-    Float16_t     fCharge;      //[-1,1,2]
   //  D-    Float16_t     fVertex[3];   //[-30,30,10]
   //  E-    Float16_t     fChi2;        //[0,0,6]
   //  F-    Int_t          fNsp;
   //        Float16_t*    fPointValue;   //[fNsp][0,3]
   //
   // In case A fNormal is converted from a Float_t to a Float_t with mantissa truncated to 12 bits
   // In case B fTemperature is converted to a 32 bit unsigned integer
   // In case C fCharge is converted to a 2 bits unsigned integer
   // In case D the array elements of fVertex are converted to an unsigned 10 bits integer
   // In case E fChi2 is converted to a Float_t with truncated precision at 6 bits
   // In case F the fNsp elements of array fPointvalue are converted to an unsigned 32 bit integer
   //           Note that the range specifier must follow the dimension specifier.
   // the case B has more precision (9 to 10 significative digits than case A (6 to 7 digits).
   //
   // The range specifier has the general format: [xmin,xmax] or [xmin,xmax,nbits]
   //  [0,1]
   //  [-10,100];
   //  [-pi,pi], [-pi/2,pi/4],[-2pi,2*pi]
   //  [-10,100,16]
   //  [0,0,8]
   // if nbits is not specified, or nbits <2 or nbits>16 it is set to 16
   // if (xmin==0 and xmax==0 and nbits <=14) the float word will have
   // its mantissa truncated to nbits significative bits.
   //
   // IMPORTANT NOTE
   // --------------
   // --NOTE 1
   // Lets assume an original variable float x:
   // When using the format [0,0,8] (ie range not specified) you get the best
   // relative precision when storing and reading back the truncated x, say xt.
   // The variance of (x-xt)/x will be better than when specifying a range
   // for the same number of bits. However the precision relative to the
   // range (x-xt)/(xmax-xmin) will be worst, and vice-versa.
   // The format [0,0,8] is also interesting when the range of x is infinite
   // or unknown.
   //
   // --NOTE 2
   // It is important to understand the difference with the meaning of nbits
   //  -in case of [-1,1,nbits], nbits is the total number of bits used to make
   //    the conversion from a float to an integer
   //  -in case of [0,0,nbits], nbits is the number of bits used for the mantissa
   //
   //  see example of use of the Float16_t data type in tutorial double32.C
   //
   //Begin_Html
   /*
     <img src="gif/double32.gif">
   */
   //End_Html

   if (ele && ele->GetFactor() != 0) {
      //A range is specified. We normalize the double to the range and
      //convert it to an integer using a scaling factor that is a function of nbits.
      //see TStreamerElement::GetRange.
      Double_t x = f[0];
      Double_t xmin = ele->GetXmin();
      Double_t xmax = ele->GetXmax();
      if (x < xmin) x = xmin;
      if (x > xmax) x = xmax;
      UInt_t aint = UInt_t(0.5+ele->GetFactor()*(x-xmin)); *this << aint;
   } else {
      Int_t nbits = 0;
      //number of bits stored in fXmin (see TStreamerElement::GetRange)
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) nbits = 12;
      //a range is not specified, but nbits is.
      //In this case we truncate the mantissa to nbits and we stream
      //the exponent as a UChar_t and the mantissa as a UShort_t.
      union {
         Float_t xx;
         Int_t ix;
      };
      xx = f[0];
      UChar_t  theExp = (UChar_t)(0x000000ff & ((ix<<1)>>24));
      UShort_t theMan = ((1<<(nbits+1))-1) & (ix>>(23-nbits-1));
      theMan++;
      theMan = theMan>>1;
      if (theMan&1<<nbits) theMan = (1<<nbits) - 1;
      if (xx < 0) theMan |= 1<<(nbits+1);
      *this << theExp;
      *this << theMan;
   }
}

//______________________________________________________________________________
void TBufferFile::WriteDouble32(Double_t *d, TStreamerElement *ele)
{
   // write a Double32_t to the buffer.
   // The following cases are supported for streaming a Double32_t type
   // depending on the range declaration in the comment field of the data member:
   //  A-    Double32_t     fNormal;
   //  B-    Double32_t     fTemperature; //[0,100]
   //  C-    Double32_t     fCharge;      //[-1,1,2]
   //  D-    Double32_t     fVertex[3];   //[-30,30,10]
   //  E-    Double32_t     fChi2;        //[0,0,6]
   //  F-    Int_t          fNsp;
   //        Double32_t*    fPointValue;   //[fNsp][0,3]
   //
   // In case A fNormal is converted from a Double_t to a Float_t
   // In case B fTemperature is converted to a 32 bit unsigned integer
   // In case C fCharge is converted to a 2 bits unsigned integer
   // In case D the array elements of fVertex are converted to an unsigned 10 bits integer
   // In case E fChi2 is converted to a Float_t with mantissa truncated precision at 6 bits
   // In case F the fNsp elements of array fPointvalue are converted to an unsigned 32 bit integer
   //           Note that the range specifier must follow the dimension specifier.
   // the case B has more precision (9 to 10 significative digits than case A (6 to 7 digits).
   //
   // The range specifier has the general format: [xmin,xmax] or [xmin,xmax,nbits]
   //  [0,1]
   //  [-10,100];
   //  [-pi,pi], [-pi/2,pi/4],[-2pi,2*pi]
   //  [-10,100,16]
   //  [0,0,8]
   // if nbits is not specified, or nbits <2 or nbits>32 it is set to 32
   // if (xmin==0 and xmax==0 and nbits <=14) the double word will be converted
   // to a float and its mantissa truncated to nbits significative bits.
   //
   // IMPORTANT NOTEs
   // --------------
   // --NOTE 1
   // Lets assume an original variable double x:
   // When using the format [0,0,8] (ie range not specified) you get the best
   // relative precision when storing and reading back the truncated x, say xt.
   // The variance of (x-xt)/x will be better than when specifying a range
   // for the same number of bits. However the precision relative to the
   // range (x-xt)/(xmax-xmin) will be worst, and vice-versa.
   // The format [0,0,8] is also interesting when the range of x is infinite
   // or unknown.
   //
   // --NOTE 2
   // It is important to understand the difference with the meaning of nbits
   //  -in case of [-1,1,nbits], nbits is the total number of bits used to make
   //    the conversion from a double to an integer
   //  -in case of [0,0,nbits], nbits is the number of bits used for the mantissa
   //
   //  see example of use of the Double32_t data type in tutorial double32.C
   //
   //Begin_Html
   /*
     <img src="gif/double32.gif">
   */
   //End_Html

   if (ele && ele->GetFactor() != 0) {
      //A range is specified. We normalize the double to the range and
      //convert it to an integer using a scaling factor that is a function of nbits.
      //see TStreamerElement::GetRange.
      Double_t x = d[0];
      Double_t xmin = ele->GetXmin();
      Double_t xmax = ele->GetXmax();
      if (x < xmin) x = xmin;
      if (x > xmax) x = xmax;
      UInt_t aint = UInt_t(0.5+ele->GetFactor()*(x-xmin)); *this << aint;
   } else {
      Int_t nbits = 0;
      //number of bits stored in fXmin (see TStreamerElement::GetRange)
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) {
         //if no range and no bits specified, we convert from double to float
         Float_t afloat = (Float_t)d[0];
         *this << afloat;
      } else {
         //a range is not specified, but nbits is.
         //In this case we truncate the mantissa to nbits and we stream
         //the exponent as a UChar_t and the mantissa as a UShort_t.
         union {
            Float_t xx;
            Int_t ix;
         };
         xx = (Float_t)d[0];
         UChar_t  theExp = (UChar_t)(0x000000ff & ((ix<<1)>>24));
         UShort_t theMan = ((1<<(nbits+1))-1) & (ix>>(23-nbits-1)) ;
         theMan++;
         theMan = theMan>>1;
         if (theMan&1<<nbits) theMan = (1<<nbits)-1 ;
         if (xx < 0) theMan |= 1<<(nbits+1);
         *this << theExp;
         *this << theMan;
      }
   }
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Bool_t *&b)
{
   // Read array of bools from the I/O buffer. Returns the number of
   // bools read. If argument is a 0 pointer then space will be
   // allocated for the array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || n > fBufSize) return 0;

   if (!b) b = new Bool_t[n];

   if (sizeof(Bool_t) > 1) {
      for (int i = 0; i < n; i++)
         frombuf(fBufCur, &b[i]);
   } else {
      Int_t l = sizeof(Bool_t)*n;
      memcpy(b, fBufCur, l);
      fBufCur += l;
   }

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Char_t *&c)
{
   // Read array of characters from the I/O buffer. Returns the number of
   // characters read. If argument is a 0 pointer then space will be
   // allocated for the array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Char_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!c) c = new Char_t[n];

   memcpy(c, fBufCur, l);
   fBufCur += l;

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Short_t *&h)
{
   // Read array of shorts from the I/O buffer. Returns the number of shorts
   // read. If argument is a 0 pointer then space will be allocated for the
   // array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Short_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!h) h = new Short_t[n];

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy16(h, fBufCur, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &h[i]);
# endif
#else
   memcpy(h, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Int_t *&ii)
{
   // Read array of ints from the I/O buffer. Returns the number of ints
   // read. If argument is a 0 pointer then space will be allocated for the
   // array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Int_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ii) ii = new Int_t[n];

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(ii, fBufCur, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ii[i]);
# endif
#else
   memcpy(ii, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Long_t *&ll)
{
   // Read array of longs from the I/O buffer. Returns the number of longs
   // read. If argument is a 0 pointer then space will be allocated for the
   // array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Long_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ll) ll = new Long_t[n];

   TFile *file = (TFile*)fParent;
   if (file && file->GetVersion() < 30006) {
      for (int i = 0; i < n; i++) frombufOld(fBufCur, &ll[i]);
   } else {
      for (int i = 0; i < n; i++) frombuf(fBufCur, &ll[i]);
   }
   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Long64_t *&ll)
{
   // Read array of long longs from the I/O buffer. Returns the number of
   // long longs read. If argument is a 0 pointer then space will be
   // allocated for the array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Long64_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ll) ll = new Long64_t[n];

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ll[i]);
#else
   memcpy(ll, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Float_t *&f)
{
   // Read array of floats from the I/O buffer. Returns the number of floats
   // read. If argument is a 0 pointer then space will be allocated for the
   // array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Float_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!f) f = new Float_t[n];

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(f, fBufCur, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &f[i]);
# endif
#else
   memcpy(f, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArray(Double_t *&d)
{
   // Read array of doubles from the I/O buffer. Returns the number of doubles
   // read. If argument is a 0 pointer then space will be allocated for the
   // array.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Double_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!d) d = new Double_t[n];

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &d[i]);
#else
   memcpy(d, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArrayFloat16(Float_t *&f, TStreamerElement *ele)
{
   // Read array of floats (written as truncated float) from the I/O buffer.
   // Returns the number of floats read.
   // If argument is a 0 pointer then space will be allocated for the array.
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || 4*n > fBufSize) return 0;

   if (!f) f = new Float_t[n];

   ReadFastArrayFloat16(f,n,ele);

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadArrayDouble32(Double_t *&d, TStreamerElement *ele)
{
   // Read array of doubles (written as float) from the I/O buffer.
   // Returns the number of doubles read.
   // If argument is a 0 pointer then space will be allocated for the array.
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || 4*n > fBufSize) return 0;

   if (!d) d = new Double_t[n];

   ReadFastArrayDouble32(d,n,ele);

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Bool_t *b)
{
   // Read array of bools from the I/O buffer. Returns the number of bools
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || n > fBufSize) return 0;

   if (!b) return 0;

   if (sizeof(Bool_t) > 1) {
      for (int i = 0; i < n; i++)
         frombuf(fBufCur, &b[i]);
   } else {
      Int_t l = sizeof(Bool_t)*n;
      memcpy(b, fBufCur, l);
      fBufCur += l;
   }

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Char_t *c)
{
   // Read array of characters from the I/O buffer. Returns the number of
   // characters read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Char_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!c) return 0;

   memcpy(c, fBufCur, l);
   fBufCur += l;

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Short_t *h)
{
   // Read array of shorts from the I/O buffer. Returns the number of shorts
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Short_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!h) return 0;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy16(h, fBufCur, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &h[i]);
# endif
#else
   memcpy(h, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Int_t *ii)
{
   // Read array of ints from the I/O buffer. Returns the number of ints
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Int_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ii) return 0;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(ii, fBufCur, n);
   fBufCur += sizeof(Int_t)*n;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ii[i]);
# endif
#else
   memcpy(ii, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Long_t *ll)
{
   // Read array of longs from the I/O buffer. Returns the number of longs
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Long_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ll) return 0;

   TFile *file = (TFile*)fParent;
   if (file && file->GetVersion() < 30006) {
      for (int i = 0; i < n; i++) frombufOld(fBufCur, &ll[i]);
   } else {
      for (int i = 0; i < n; i++) frombuf(fBufCur, &ll[i]);
   }
   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Long64_t *ll)
{
   // Read array of long longs from the I/O buffer. Returns the number of
   // long longs read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Long64_t)*n;

   if (l <= 0 || l > fBufSize) return 0;

   if (!ll) return 0;

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ll[i]);
#else
   memcpy(ll, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Float_t *f)
{
   // Read array of floats from the I/O buffer. Returns the number of floats
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Float_t)*n;

   if (n <= 0 || l > fBufSize) return 0;

   if (!f) return 0;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(f, fBufCur, n);
   fBufCur += sizeof(Float_t)*n;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &f[i]);
# endif
#else
   memcpy(f, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArray(Double_t *d)
{
   // Read array of doubles from the I/O buffer. Returns the number of doubles
   // read.

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;
   Int_t l = sizeof(Double_t)*n;

   if (n <= 0 || l > fBufSize) return 0;

   if (!d) return 0;

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &d[i]);
#else
   memcpy(d, fBufCur, l);
   fBufCur += l;
#endif

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArrayFloat16(Float_t *f, TStreamerElement *ele)
{
   // Read array of floats (written as truncated float) from the I/O buffer.
   // Returns the number of floats read.
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || 4*n > fBufSize) return 0;

   if (!f) return 0;

   ReadFastArrayFloat16(f,n,ele);

   return n;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadStaticArrayDouble32(Double_t *d, TStreamerElement *ele)
{
   // Read array of doubles (written as float) from the I/O buffer.
   // Returns the number of doubles read.
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32

   R__ASSERT(IsReading());

   Int_t n;
   *this >> n;

   if (n <= 0 || 4*n > fBufSize) return 0;

   if (!d) return 0;

   ReadFastArrayDouble32(d,n,ele);

   return n;
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Bool_t *b, Int_t n)
{
   // Read array of n bools from the I/O buffer.

   if (n <= 0 || n > fBufSize) return;

   if (sizeof(Bool_t) > 1) {
      for (int i = 0; i < n; i++)
         frombuf(fBufCur, &b[i]);
   } else {
      Int_t l = sizeof(Bool_t)*n;
      memcpy(b, fBufCur, l);
      fBufCur += l;
   }
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Char_t *c, Int_t n)
{
   // Read array of n characters from the I/O buffer.

   if (n <= 0 || n > fBufSize) return;

   Int_t l = sizeof(Char_t)*n;
   memcpy(c, fBufCur, l);
   fBufCur += l;
}

//______________________________________________________________________________
void TBufferFile::ReadFastArrayString(Char_t *c, Int_t n)
{
   // Read array of n characters from the I/O buffer.

   Int_t len;
   UChar_t lenchar;
   *this >> lenchar;
   if (lenchar < 255) {
      len = lenchar;
   } else {
      *this >> len;
   }
   if (len) {
      if (len <= 0 || len > fBufSize) return;
      Int_t blen = len;
      if (len >= n) len = n-1;

      Int_t l = sizeof(Char_t)*len;
      memcpy(c, fBufCur, l);
      fBufCur += blen;

      c[len] = 0;
   } else {
      c[0] = 0;
   }
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Short_t *h, Int_t n)
{
   // Read array of n shorts from the I/O buffer.

   Int_t l = sizeof(Short_t)*n;
   if (n <= 0 || l > fBufSize) return;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy16(h, fBufCur, n);
   fBufCur += sizeof(Short_t)*n;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &h[i]);
# endif
#else
   memcpy(h, fBufCur, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Int_t *ii, Int_t n)
{
   // Read array of n ints from the I/O buffer.

   Int_t l = sizeof(Int_t)*n;
   if (l <= 0 || l > fBufSize) return;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(ii, fBufCur, n);
   fBufCur += sizeof(Int_t)*n;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ii[i]);
# endif
#else
   memcpy(ii, fBufCur, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Long_t *ll, Int_t n)
{
   // Read array of n longs from the I/O buffer.

   Int_t l = sizeof(Long_t)*n;
   if (l <= 0 || l > fBufSize) return;

   TFile *file = (TFile*)fParent;
   if (file && file->GetVersion() < 30006) {
      for (int i = 0; i < n; i++) frombufOld(fBufCur, &ll[i]);
   } else {
      for (int i = 0; i < n; i++) frombuf(fBufCur, &ll[i]);
   }
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Long64_t *ll, Int_t n)
{
   // Read array of n long longs from the I/O buffer.

   Int_t l = sizeof(Long64_t)*n;
   if (l <= 0 || l > fBufSize) return;

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &ll[i]);
#else
   memcpy(ll, fBufCur, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Float_t *f, Int_t n)
{
   // Read array of n floats from the I/O buffer.

   Int_t l = sizeof(Float_t)*n;
   if (l <= 0 || l > fBufSize) return;

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(f, fBufCur, n);
   fBufCur += sizeof(Float_t)*n;
# else
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &f[i]);
# endif
#else
   memcpy(f, fBufCur, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(Double_t *d, Int_t n)
{
   // Read array of n doubles from the I/O buffer.

   Int_t l = sizeof(Double_t)*n;
   if (l <= 0 || l > fBufSize) return;

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      frombuf(fBufCur, &d[i]);
#else
   memcpy(d, fBufCur, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele)
{
   // Read array of n floats (written as truncated float) from the I/O buffer.
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16

   if (n <= 0 || 4*n > fBufSize) return;

   if (ele && ele->GetFactor() != 0) {
      //a range was specified. We read an integer and convert it back to a float
      Double_t xmin = ele->GetXmin();
      Double_t factor = ele->GetFactor();
      for (int j=0;j < n; j++) {
         UInt_t aint; *this >> aint; f[j] = (Float_t)(aint/factor + xmin);
      }
   } else {
      Int_t i;
      Int_t nbits = 0;
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) nbits = 12;
      //we read the exponent and the truncated mantissa of the float
      //and rebuild the new float.
      union {
         Float_t xx;
         Int_t ix;
      };
      UChar_t  theExp;
      UShort_t theMan;
      for (i = 0; i < n; i++) {
         *this >> theExp;
         *this >> theMan;
         ix = theExp;
         ix <<= 23;
         ix |= (theMan & ((1<<(nbits+1))-1)) <<(23-nbits);
         if(1<<(nbits+1) & theMan) xx=-xx;
         f[i] = xx;
      }
   }
}

//______________________________________________________________________________
void TBufferFile::ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele)
{
   // Read array of n doubles (written as float) from the I/O buffer.
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32

   if (n <= 0 || 4*n > fBufSize) return;

   if (ele && ele->GetFactor() != 0) {
      //a range was specified. We read an integer and convert it back to a double.
      Double_t xmin = ele->GetXmin();
      Double_t factor = ele->GetFactor();
      for (int j=0;j < n; j++) {
         UInt_t aint; *this >> aint; d[j] = (Double_t)(aint/factor + xmin);
      }
   } else {
      Int_t i;
      Int_t nbits = 0;
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) {
         //we read a float and convert it to double
         Float_t afloat;
         for (i = 0; i < n; i++) {
            *this >> afloat;
            d[i] = (Double_t)afloat;
         }
      } else {
         //we read the exponent and the truncated mantissa of the float
         //and rebuild the double.
         union {
            Float_t xx;
            Int_t ix;
         };
         UChar_t  theExp;
         UShort_t theMan;
         for (i = 0; i < n; i++) {
            *this >> theExp;
            *this >> theMan;
            ix = theExp;
            ix <<= 23;
            ix |= (theMan & ((1<<(nbits+1))-1)) <<(23-nbits);
            if (1<<(nbits+1) & theMan) xx=-xx;
            d[i] = (Double_t)xx;
         }
      }
   }
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(void  *start, const TClass *cl, Int_t n,
                                TMemberStreamer *streamer, const TClass* onFileClass )
{
   // Read an array of 'n' objects from the I/O buffer.
   // Stores the objects read starting at the address 'start'.
   // The objects in the array are assume to be of class 'cl'.

   if (streamer) {
      streamer->SetOnFileClass(onFileClass);
      (*streamer)(*this,start,0);
      return;
   }

   int objectSize = cl->Size();
   char *obj = (char*)start;
   char *end = obj + n*objectSize;

   for(; obj<end; obj+=objectSize) ((TClass*)cl)->Streamer(obj,*this, onFileClass);
}

//______________________________________________________________________________
void TBufferFile::ReadFastArray(void **start, const TClass *cl, Int_t n,
                                Bool_t isPreAlloc, TMemberStreamer *streamer, const TClass* onFileClass)
{
   // Read an array of 'n' objects from the I/O buffer.
   // The objects read are stored starting at the address '*start'
   // The objects in the array are assumed to be of class 'cl' or a derived class.
   // 'mode' indicates whether the data member is marked with '->'

   // if isPreAlloc is true (data member has a ->) we can assume that the pointer (*start)
   // is never 0.

   if (streamer) {
      if (isPreAlloc) {
         for (Int_t j=0;j<n;j++) {
            if (!start[j]) start[j] = cl->New();
         }
      }
      streamer->SetOnFileClass(onFileClass);
      (*streamer)(*this,(void*)start,0);
      return;
   }

   if (!isPreAlloc) {

      for (Int_t j=0; j<n; j++){
         //delete the object or collection
         void *old = start[j];
         start[j] = ReadObjectAny(cl);
         if (old && old!=start[j] &&
             TStreamerInfo::CanDelete()
             // There are some cases where the user may set up a pointer in the (default)
             // constructor but not mark this pointer as transient.  Sometime the value
             // of this pointer is the address of one of the object with just created
             // and the following delete would result in the deletion (possibly of the
             // top level object we are goint to return!).
             // Eventhough this is a user error, we could prevent the crash by simply
             // adding:
             // && !CheckObject(start[j],cl)
             // However this can increase the read time significantly (10% in the case
             // of one TLine pointer in the test/Track and run ./Event 200 0 0 20 30000
             //
             // If ReadObjectAny returned the same value as we previous had, this means
             // that when writing this object (start[j] had already been written and
             // is indeed pointing to the same object as the object the user set up
             // in the default constructor).
             ) {
            ((TClass*)cl)->Destructor(old,kFALSE); // call delete and desctructor
         }
      }

   } else {	//case //-> in comment

      for (Int_t j=0; j<n; j++){
         if (!start[j]) start[j] = ((TClass*)cl)->New();
         ((TClass*)cl)->Streamer(start[j],*this,onFileClass);
      }

   }
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Bool_t *b, Int_t n)
{
   // Write array of n bools into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(b);

   Int_t l = sizeof(UChar_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   if (sizeof(Bool_t) > 1) {
      for (int i = 0; i < n; i++)
         tobuf(fBufCur, b[i]);
   } else {
      memcpy(fBufCur, b, l);
      fBufCur += l;
   }
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Char_t *c, Int_t n)
{
   // Write array of n characters into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(c);

   Int_t l = sizeof(Char_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   memcpy(fBufCur, c, l);
   fBufCur += l;
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Short_t *h, Int_t n)
{
   // Write array of n shorts into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(h);

   Int_t l = sizeof(Short_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy16(fBufCur, h, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, h[i]);
# endif
#else
   memcpy(fBufCur, h, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Int_t *ii, Int_t n)
{
   // Write array of n ints into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(ii);

   Int_t l = sizeof(Int_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(fBufCur, ii, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, ii[i]);
# endif
#else
   memcpy(fBufCur, ii, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Long_t *ll, Int_t n)
{
   // Write array of n longs into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(ll);

   Int_t l = 8*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));
   for (int i = 0; i < n; i++) tobuf(fBufCur, ll[i]);
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const ULong_t *ll, Int_t n)
{
   // Write array of n unsigned longs into the I/O buffer.
   // This is an explicit case for unsigned longs since signed longs
   // have a special tobuf().

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(ll);

   Int_t l = 8*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));
   for (int i = 0; i < n; i++) tobuf(fBufCur, ll[i]);
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Long64_t *ll, Int_t n)
{
   // Write array of n long longs into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(ll);

   Int_t l = sizeof(Long64_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, ll[i]);
#else
   memcpy(fBufCur, ll, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Float_t *f, Int_t n)
{
   // Write array of n floats into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(f);

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(fBufCur, f, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, f[i]);
# endif
#else
   memcpy(fBufCur, f, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteArray(const Double_t *d, Int_t n)
{
   // Write array of n doubles into the I/O buffer.

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(d);

   Int_t l = sizeof(Double_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, d[i]);
#else
   memcpy(fBufCur, d, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteArrayFloat16(const Float_t *f, Int_t n, TStreamerElement *ele)
{
   // Write array of n floats (as truncated float) into the I/O buffer.
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(f);

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   WriteFastArrayFloat16(f,n,ele);
}

//______________________________________________________________________________
void TBufferFile::WriteArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele)
{
   // Write array of n doubles (as float) into the I/O buffer.
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32

   R__ASSERT(IsWriting());

   *this << n;

   if (n <= 0) return;

   R__ASSERT(d);

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   WriteFastArrayDouble32(d,n,ele);
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Bool_t *b, Int_t n)
{
   // Write array of n bools into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(UChar_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   if (sizeof(Bool_t) > 1) {
      for (int i = 0; i < n; i++)
         tobuf(fBufCur, b[i]);
   } else {
      memcpy(fBufCur, b, l);
      fBufCur += l;
   }
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Char_t *c, Int_t n)
{
   // Write array of n characters into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Char_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   memcpy(fBufCur, c, l);
   fBufCur += l;
}

//______________________________________________________________________________
void TBufferFile::WriteFastArrayString(const Char_t *c, Int_t n)
{
   // Write array of n characters into the I/O buffer.

   if (n < 255) {
      *this << (UChar_t)n;
   } else {
      *this << (UChar_t)255;
      *this << n;
   }

   if (n <= 0) return;

   Int_t l = sizeof(Char_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   memcpy(fBufCur, c, l);
   fBufCur += l;
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Short_t *h, Int_t n)
{
   // Write array of n shorts into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Short_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy16(fBufCur, h, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, h[i]);
# endif
#else
   memcpy(fBufCur, h, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Int_t *ii, Int_t n)
{
   // Write array of n ints into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Int_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(fBufCur, ii, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, ii[i]);
# endif
#else
   memcpy(fBufCur, ii, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Long_t *ll, Int_t n)
{
   // Write array of n longs into the I/O buffer.

   if (n <= 0) return;

   Int_t l = 8*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   for (int i = 0; i < n; i++) tobuf(fBufCur, ll[i]);
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const ULong_t *ll, Int_t n)
{
   // Write array of n unsigned longs into the I/O buffer.
   // This is an explicit case for unsigned longs since signed longs
   // have a special tobuf().

   if (n <= 0) return;

   Int_t l = 8*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   for (int i = 0; i < n; i++) tobuf(fBufCur, ll[i]);
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Long64_t *ll, Int_t n)
{
   // Write array of n long longs into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Long64_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, ll[i]);
#else
   memcpy(fBufCur, ll, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Float_t *f, Int_t n)
{
   // Write array of n floats into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
# ifdef USE_BSWAPCPY
   bswapcpy32(fBufCur, f, n);
   fBufCur += l;
# else
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, f[i]);
# endif
#else
   memcpy(fBufCur, f, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(const Double_t *d, Int_t n)
{
   // Write array of n doubles into the I/O buffer.

   if (n <= 0) return;

   Int_t l = sizeof(Double_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

#ifdef R__BYTESWAP
   for (int i = 0; i < n; i++)
      tobuf(fBufCur, d[i]);
#else
   memcpy(fBufCur, d, l);
   fBufCur += l;
#endif
}

//______________________________________________________________________________
void TBufferFile::WriteFastArrayFloat16(const Float_t *f, Int_t n, TStreamerElement *ele)
{
   // Write array of n floats (as truncated float) into the I/O buffer.
   // see comments about Float16_t encoding at TBufferFile::WriteFloat16

   if (n <= 0) return;

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   if (ele && ele->GetFactor()) {
      //A range is specified. We normalize the float to the range and
      //convert it to an integer using a scaling factor that is a function of nbits.
      //see TStreamerElement::GetRange.
      Double_t factor = ele->GetFactor();
      Double_t xmin = ele->GetXmin();
      Double_t xmax = ele->GetXmax();
      for (int j = 0; j < n; j++) {
         Float_t x = f[j];
         if (x < xmin) x = xmin;
         if (x > xmax) x = xmax;
         UInt_t aint = UInt_t(0.5+factor*(x-xmin)); *this << aint;
      }
   } else {
      Int_t nbits = 0;
      //number of bits stored in fXmin (see TStreamerElement::GetRange)
      if (ele) nbits = (Int_t)ele->GetXmin();
      if (!nbits) nbits = 12;
      Int_t i;
      //a range is not specified, but nbits is.
      //In this case we truncate the mantissa to nbits and we stream
      //the exponent as a UChar_t and the mantissa as a UShort_t.
      union {
         Float_t xx;
         Int_t ix;
      };
      for (i = 0; i < n; i++) {
         xx = f[i];
         UChar_t  theExp = (UChar_t)(0x000000ff & ((ix<<1)>>24));
         UShort_t theMan = ((1<<(nbits+1))-1) & (ix>>(23-nbits-1));
         theMan++;
         theMan = theMan>>1;
         if (theMan&1<<nbits) theMan = (1<<nbits) - 1;
         if (xx < 0) theMan |= 1<<(nbits+1);
         *this << theExp;
         *this << theMan;
      }
   }
}

//______________________________________________________________________________
void TBufferFile::WriteFastArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele)
{
   // Write array of n doubles (as float) into the I/O buffer.
   // see comments about Double32_t encoding at TBufferFile::WriteDouble32

   if (n <= 0) return;

   Int_t l = sizeof(Float_t)*n;
   if (fBufCur + l > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+l));

   if (ele && ele->GetFactor()) {
      //A range is specified. We normalize the double to the range and
      //convert it to an integer using a scaling factor that is a function of nbits.
      //see TStreamerElement::GetRange.
      Double_t factor = ele->GetFactor();
      Double_t xmin = ele->GetXmin();
      Double_t xmax = ele->GetXmax();
      for (int j = 0; j < n; j++) {
         Double_t x = d[j];
         if (x < xmin) x = xmin;
         if (x > xmax) x = xmax;
         UInt_t aint = UInt_t(0.5+factor*(x-xmin)); *this << aint;
      }
   } else {
      Int_t nbits = 0;
      //number of bits stored in fXmin (see TStreamerElement::GetRange)
      if (ele) nbits = (Int_t)ele->GetXmin();
      Int_t i;
      if (!nbits) {
         //if no range and no bits specified, we convert from double to float
         for (i = 0; i < n; i++) {
            Float_t afloat = (Float_t)d[i];
            *this << afloat;
         }
      } else {
         //a range is not specified, but nbits is.
         //In this case we truncate the mantissa to nbits and we stream
         //the exponent as a UChar_t and the mantissa as a UShort_t.
         union {
            Float_t xx;
            Int_t ix;
         };
         for (i = 0; i < n; i++) {
            xx = (Float_t)d[i];
            UChar_t  theExp = (UChar_t)(0x000000ff & ((ix<<1)>>24));
            UShort_t theMan = ((1<<(nbits+1))-1) & (ix>>(23-nbits-1));
            theMan++;
            theMan = theMan>>1;
            if(theMan&1<<nbits) theMan = (1<<nbits) - 1;
            if (xx < 0) theMan |= 1<<(nbits+1);
            *this << theExp;
            *this << theMan;
         }
      }
   }
}

//______________________________________________________________________________
void TBufferFile::WriteFastArray(void  *start, const TClass *cl, Int_t n,
                             TMemberStreamer *streamer)
{
   // Write an array of object starting at the address 'start' and of length 'n'
   // the objects in the array are assumed to be of class 'cl'

   if (streamer) {
      (*streamer)(*this, start, 0);
      return;
   }

   char *obj = (char*)start;
   if (!n) n=1;
   int size = cl->Size();

   for(Int_t j=0; j<n; j++,obj+=size) {
      ((TClass*)cl)->Streamer(obj,*this);
   }
}

//______________________________________________________________________________
Int_t TBufferFile::WriteFastArray(void **start, const TClass *cl, Int_t n,
                             Bool_t isPreAlloc, TMemberStreamer *streamer)
{
   // Write an array of object starting at the address '*start' and of length 'n'
   // the objects in the array are of class 'cl'
   // 'isPreAlloc' indicates whether the data member is marked with '->'
   // Return:
   //  0: success
   //  2: truncated success (i.e actual class is missing. Only ptrClass saved.)

   // if isPreAlloc is true (data member has a ->) we can assume that the pointer
   // is never 0.

   if (streamer) {
      (*streamer)(*this,(void*)start,0);
      return 0;
   }

   int strInfo = 0;

   Int_t res = 0;

   if (!isPreAlloc) {

      for (Int_t j=0;j<n;j++) {
         //must write StreamerInfo if pointer is null
         if (!strInfo && !start[j] ) {
            TStreamerInfo *info = (TStreamerInfo*)((TClass*)cl)->GetStreamerInfo();
            ForceWriteInfo(info,kFALSE);
         }
         strInfo = 2003;
         res |= WriteObjectAny(start[j],cl);
      }

   } else {	//case //-> in comment

      for (Int_t j=0;j<n;j++) {
         if (!start[j]) start[j] = ((TClass*)cl)->New();
         ((TClass*)cl)->Streamer(start[j],*this);
      }

   }
   return res;
}

//______________________________________________________________________________
TObject *TBufferFile::ReadObject(const TClass * /*clReq*/)
{
   // Read object from I/O buffer. clReq is NOT used.
   // The value returned is the address of the actual start in memory of
   // the object. Note that if the actual class of the object does not
   // inherit first from TObject, the type of the pointer is NOT 'TObject*'.
   // [More accurately, the class needs to start with the TObject part, for
   // the pointer to be a real TObject*].
   // We recommend using ReadObjectAny instead of ReadObject

   return (TObject*) ReadObjectAny(0);
}

//______________________________________________________________________________
void TBufferFile::SkipObjectAny()
{
   // Skip any kind of object from buffer

   UInt_t start, count;
   ReadVersion(&start, &count);
   SetBufferOffset(start+count+sizeof(UInt_t));
}

//______________________________________________________________________________
void *TBufferFile::ReadObjectAny(const TClass *clCast)
{
   // Read object from I/O buffer.
   // A typical use for this function is:
   //    MyClass *ptr = (MyClass*)b.ReadObjectAny(MyClass::Class());
   // I.e. clCast should point to a TClass object describing the class pointed
   // to by your pointer.
   // In case of multiple inheritance, the return value might not be the
   // real beginning of the object in memory.  You will need to use a
   // dynamic_cast later if you need to retrieve it.

   R__ASSERT(IsReading());

   // make sure fMap is initialized
   InitMap();

   // before reading object save start position
   UInt_t startpos = UInt_t(fBufCur-fBuffer);

   // attempt to load next object as TClass clCast
   UInt_t tag;       // either tag or byte count
   TClass *clRef = ReadClass(clCast, &tag);
   TClass *clOnfile = 0;
   Int_t baseOffset = 0;
   if (clRef && (clRef!=(TClass*)(-1)) && clCast) {
      //baseOffset will be -1 if clRef does not inherit from clCast.
      baseOffset = clRef->GetBaseClassOffset(clCast);
      if (baseOffset == -1) {
         // The 2 classes are unrelated, maybe there is a converter between the 2.

         if (!clCast->GetSchemaRules() ||
             !clCast->GetSchemaRules()->HasRuleWithSourceClass(clRef->GetName()))
         {
            // There is no converter
            Error("ReadObject", "got object of wrong class! requested %s but got %s",
                  clCast->GetName(), clRef->GetName());

            CheckByteCount(startpos, tag, (TClass*)0); // avoid mis-leading byte count error message
            return 0; // We better return at this point
         }
         baseOffset = 0; // For now we do not support requesting from a class that is the base of one of the class for which there is transformation to ....

         Info("ReadObjectAny","Using Converter StreamerInfo from %s to %s",clRef->GetName(),clCast->GetName());
         clRef = const_cast<TClass*>(clCast);

      }
      if (clCast->GetClassInfo() && !clRef->GetClassInfo()) {
         //we cannot mix a compiled class with an emulated class in the inheritance
         Error("ReadObject", "trying to read an emulated class (%s) to store in a compiled pointer (%s)",
               clRef->GetName(),clCast->GetName());
         CheckByteCount(startpos, tag, (TClass*)0); // avoid mis-leading byte count error message
         return 0;
      }
   }

   // check if object has not already been read
   // (this can only happen when called via CheckObject())
   char *obj;
   if (fVersion > 0) {
      obj = (char *) fMap->GetValue(startpos+kMapOffset);
      if (obj == (void*) -1) obj = 0;
      if (obj) {
         CheckByteCount(startpos, tag, (TClass*)0);
         return (obj+baseOffset);
      }
   }

   // unknown class, skip to next object and return 0 obj
   if (clRef == (TClass*) -1) {
      if (fBufCur >= fBufMax) return 0;
      if (fVersion > 0)
         MapObject((TObject*) -1, startpos+kMapOffset);
      else
         MapObject((void*)0, 0, fMapCount);
      CheckByteCount(startpos, tag, (TClass*)0);
      return 0;
   }

   if (!clRef) {

      // got a reference to an already read object
      if (fVersion > 0) {
         tag += fDisplacement;
         tag = CheckObject(tag, clCast);
      } else {
         if (tag > (UInt_t)fMap->GetSize()) {
            Error("ReadObject", "object tag too large, I/O buffer corrupted");
            return 0;
            // exception
         }
      }
      obj = (char *) fMap->GetValue(tag);
      clRef = (TClass*) fClassMap->GetValue(tag);

      if (clRef && (clRef!=(TClass*)(-1)) && clCast) {
         //baseOffset will be -1 if clRef does not inherit from clCast.
         baseOffset = clRef->GetBaseClassOffset(clCast);
         if (baseOffset == -1) {
            Error("ReadObject", "Got object of wrong class (Got %s while expecting %s)",
                  clRef->GetName(),clCast->GetName());
            // exception
            baseOffset = 0;
         }
      }

      // There used to be a warning printed here when:
      //   obj && isTObject && !((TObject*)obj)->IsA()->InheritsFrom(clReq)
      // however isTObject was based on clReq (now clCast).
      // If the test was to fail, then it is as likely that the object is not a TObject
      // and then we have a potential core dump.
      // At this point (missing clRef), we do NOT have enough information to really
      // answer the question: is the object read of the type I requested.

   } else {

      // allocate a new object based on the class found
      obj = (char*)clRef->New();
      if (!obj) {
         Error("ReadObject", "could not create object of class %s",
               clRef->GetName());
         // exception
         return 0;
      }

      // add to fMap before reading rest of object
      if (fVersion > 0)
         MapObject(obj, clRef, startpos+kMapOffset);
      else
         MapObject(obj, clRef, fMapCount);

      // let the object read itself
      clRef->Streamer( obj, *this, clOnfile );

      CheckByteCount(startpos, tag, clRef);
   }

   return obj+baseOffset;
}

//______________________________________________________________________________
void TBufferFile::WriteObject(const TObject *obj)
{
   // Write object to I/O buffer.

   WriteObjectAny(obj, TObject::Class());
}

//______________________________________________________________________________
void TBufferFile::WriteObjectClass(const void *actualObjectStart, const TClass *actualClass)
{
   // Write object to I/O buffer.
   // This function assumes that the value of 'actualObjectStart' is the actual start of
   // the object of class 'actualClass'

   R__ASSERT(IsWriting());

   if (!actualObjectStart) {

      // save kNullTag to represent NULL pointer
      *this << kNullTag;

   } else {

      // make sure fMap is initialized
      InitMap();

      ULong_t idx;
      UInt_t slot;
      ULong_t hash = Void_Hash(actualObjectStart);

      if ((idx = (ULong_t)fMap->GetValue(hash, (Long_t)actualObjectStart, slot)) != 0) {

         // truncation is OK the value we did put in the map is an 30-bit offset
         // and not a pointer
         UInt_t objIdx = UInt_t(idx);

         // save index of already stored object
         *this << objIdx;

      } else {

         // A warning to let the user know it will need to change the class code
         // to  be able to read this back.
         if (actualClass->HasDefaultConstructor() == 0) {
            Warning("WriteObjectAny", "since %s has no public constructor\n"
               "\twhich can be called without argument, objects of this class\n"
               "\tcan not be read with the current library. You will need to\n"
               "\tadd a default constructor before attempting to read it.",
               actualClass->GetName());
         }

         // reserve space for leading byte count
         UInt_t cntpos = UInt_t(fBufCur-fBuffer);
         fBufCur += sizeof(UInt_t);

         // write class of object first
         Int_t mapsize = fMap->Capacity(); // The slot depends on the capacity and WriteClass might induce an increase.
         WriteClass(actualClass);

         // add to map before writing rest of object (to handle self reference)
         // (+kMapOffset so it's != kNullTag)
         //MapObject(actualObjectStart, actualClass, cntpos+kMapOffset);
         UInt_t offset = cntpos+kMapOffset;
         if (mapsize == fMap->Capacity()) {
            fMap->AddAt(slot, hash, (Long_t)actualObjectStart, offset);
         } else {
            // The slot depends on the capacity and WriteClass has induced an increase.
            fMap->Add(hash, (Long_t)actualObjectStart, offset);
         }
         // No need to keep track of the class in write mode
         // fClassMap->Add(hash, (Long_t)obj, (Long_t)((TObject*)obj)->IsA());
         fMapCount++;

         ((TClass*)actualClass)->Streamer((void*)actualObjectStart,*this);

         // write byte count
         SetByteCount(cntpos);
      }
   }
}

namespace {
   struct DynamicType {
      // Helper class to enable typeid on any address
      // Used in code similar to:
      //    typeid( * (DynamicType*) void_ptr );
      virtual ~DynamicType() {}
   };
}

//______________________________________________________________________________
Int_t TBufferFile::WriteObjectAny(const void *obj, const TClass *ptrClass)
{
   // Write object to I/O buffer.
   // This function assumes that the value in 'obj' is the value stored in
   // a pointer to a "ptrClass". The actual type of the object pointed to
   // can be any class derived from "ptrClass".
   // Return:
   //  0: failure
   //  1: success
   //  2: truncated success (i.e actual class is missing. Only ptrClass saved.)

   if (!obj) {
      WriteObjectClass(0, 0);
      return 1;
   }

   if (!ptrClass) {
      Error("WriteObjectAny", "ptrClass argument may not be 0");
      return 0;
   }

   TClass *clActual = ptrClass->GetActualClass(obj);

   if (clActual==0) {
      // The ptrClass is a class with a virtual table and we have no
      // TClass with the actual type_info in memory.

      DynamicType* d_ptr = (DynamicType*)obj;
      Warning("WriteObjectAny",
              "An object of type %s (from type_info) passed through a %s pointer was truncated (due a missing dictionary)!!!",
              typeid(*d_ptr).name(),ptrClass->GetName());
      WriteObjectClass(obj, ptrClass);
      return 2;
   } else if (clActual && (clActual != ptrClass)) {
      const char *temp = (const char*) obj;
      temp -= clActual->GetBaseClassOffset(ptrClass);
      WriteObjectClass(temp, clActual);
      return 1;
   } else {
      WriteObjectClass(obj, ptrClass);
      return 1;
   }
}

//______________________________________________________________________________
TClass *TBufferFile::ReadClass(const TClass *clReq, UInt_t *objTag)
{
   // Read class definition from I/O buffer. clReq can be used to cross check
   // if the actually read object is of the requested class. objTag is
   // set in case the object is a reference to an already read object.

   R__ASSERT(IsReading());

   // read byte count and/or tag (older files don't have byte count)
   TClass *cl;
   if (fBufCur < fBuffer || fBufCur > fBufMax) {
      fBufCur = fBufMax;
      cl = (TClass*)-1;
      return cl;
   }
   UInt_t bcnt, tag, startpos = 0;
   *this >> bcnt;
   if (!(bcnt & kByteCountMask) || bcnt == kNewClassTag) {
      tag  = bcnt;
      bcnt = 0;
   } else {
      fVersion = 1;
      startpos = UInt_t(fBufCur-fBuffer);
      *this >> tag;
   }

   // in case tag is object tag return tag
   if (!(tag & kClassMask)) {
      if (objTag) *objTag = tag;
      return 0;
   }

   if (tag == kNewClassTag) {

      // got a new class description followed by a new object
      // (class can be 0 if class dictionary is not found, in that
      // case object of this class must be skipped)
      cl = TClass::Load(*this);

      // add class to fMap for later reference
      if (fVersion > 0) {
         // check if class was already read
         TClass *cl1 = (TClass *)fMap->GetValue(startpos+kMapOffset);
         if (cl1 != cl)
            MapObject(cl ? cl : (TObject*) -1, startpos+kMapOffset);
      } else
         MapObject(cl, fMapCount);

   } else {

      // got a tag to an already seen class
      UInt_t clTag = (tag & ~kClassMask);

      if (fVersion > 0) {
         clTag += fDisplacement;
         clTag = CheckObject(clTag, clReq, kTRUE);
      } else {
         if (clTag == 0 || clTag > (UInt_t)fMap->GetSize()) {
            Error("ReadClass", "illegal class tag=%d (0<tag<=%d), I/O buffer corrupted",
                  clTag, fMap->GetSize());
            // exception
         }
      }

      // class can be 0 if dictionary was not found
      cl = (TClass *)fMap->GetValue(clTag);
   }

   if (cl && clReq &&
       (!cl->InheritsFrom(clReq) &&
        !(clReq->GetSchemaRules() &&
          clReq->GetSchemaRules()->HasRuleWithSourceClass(cl->GetName()) )
        ) ) {
      Error("ReadClass", "got wrong class: %s", cl->GetName());
      // exception
   }

   // return bytecount in objTag
   if (objTag) *objTag = (bcnt & ~kByteCountMask);

   // case of unknown class
   if (!cl) cl = (TClass*)-1;

   return cl;
}

//______________________________________________________________________________
void TBufferFile::WriteClass(const TClass *cl)
{
   // Write class description to I/O buffer.

   R__ASSERT(IsWriting());

   ULong_t idx;
   ULong_t hash = Void_Hash(cl);
   UInt_t slot;

   if ((idx = (ULong_t)fMap->GetValue(hash, (Long_t)cl,slot)) != 0) {

      // truncation is OK the value we did put in the map is an 30-bit offset
      // and not a pointer
      UInt_t clIdx = UInt_t(idx);

      // save index of already stored class
      *this << (clIdx | kClassMask);

   } else {

      // offset in buffer where class info is written
      UInt_t offset = UInt_t(fBufCur-fBuffer);

      // save new class tag
      *this << kNewClassTag;

      // write class name
      cl->Store(*this);

      // store new class reference in fMap (+kMapOffset so it's != kNullTag)
      CheckCount(offset+kMapOffset);
      fMap->AddAt(slot, hash, (Long_t)cl, offset+kMapOffset);
      fMapCount++;
   }
}

//______________________________________________________________________________
Version_t TBufferFile::ReadVersion(UInt_t *startpos, UInt_t *bcnt, const TClass *cl)
{
   // Read class version from I/O buffer.

   Version_t version;

   if (startpos && bcnt) {
      // before reading object save start position
      *startpos = UInt_t(fBufCur-fBuffer);

      // read byte count (older files don't have byte count)
      // byte count is packed in two individual shorts, this to be
      // backward compatible with old files that have at this location
      // only a single short (i.e. the version)
      union {
         UInt_t     cnt;
         Version_t  vers[2];
      } v;
#ifdef R__BYTESWAP
      *this >> v.vers[1];
      *this >> v.vers[0];
#else
      *this >> v.vers[0];
      *this >> v.vers[1];
#endif

      // no bytecount, backup and read version
      if (!(v.cnt & kByteCountMask)) {
         fBufCur -= sizeof(UInt_t);
         v.cnt = 0;
      }
      *bcnt = (v.cnt & ~kByteCountMask);
      *this >> version;

   } else {

      // not interested in byte count
      *this >> version;

      // if this is a byte count, then skip next short and read version
      if (version & kByteCountVMask) {
         *this >> version;
         *this >> version;
      }
   }
   if (cl && cl->GetClassVersion() != 0) {
      if (version <= 0)  {
         UInt_t checksum = 0;
         *this >> checksum;
         TStreamerInfo *vinfo = (TStreamerInfo*)cl->FindStreamerInfo(checksum);
         if (vinfo) {
            version = vinfo->GetClassVersion();
         } else {
            // There are some cases (for example when the buffer was stored outside of
            // a ROOT file) where we do not have a TStreamerInfo.  If the checksum is
            // the one from the current class, we can still assume that we can read
            // the data so let use it.
            if (checksum==cl->GetCheckSum() || checksum==cl->GetCheckSum(1)) {
               version = cl->GetClassVersion();
            } else {
               if (fParent) {
                  Error("ReadVersion", "Could not find the StreamerInfo with a checksum of %d for the class \"%s\" in %s.",
                  checksum, cl->GetName(), ((TFile*)fParent)->GetName());
               } else {
                  Error("ReadVersion", "Could not find the StreamerInfo with a checksum of %d for the class \"%s\"( buffer with no parent)",
                  checksum, cl->GetName());
               }
               return 0;
            }
         }
      }  else if (version == 1 && fParent && ((TFile*)fParent)->GetVersion()<40000 ) {
         // We could have a file created using a Foreign class before
         // the introduction of the CheckSum.  We need to check
         if ((!cl->IsLoaded() || cl->IsForeign()) &&
            cl->GetStreamerInfos()->GetLast()>1 ) {

            const TList *list = ((TFile*)fParent)->GetStreamerInfoCache();
            const TStreamerInfo *local = (TStreamerInfo*)list->FindObject(cl->GetName());
            if ( local )  {
               UInt_t checksum = local->GetCheckSum();
               TStreamerInfo *vinfo = (TStreamerInfo*)cl->FindStreamerInfo(checksum);
               if (vinfo) {
                  version = vinfo->GetClassVersion();
               } else {
                  Error("ReadVersion", "Could not find the StreamerInfo with a checksum of %d for the class \"%s\" in %s.",
                        checksum, cl->GetName(), ((TFile*)fParent)->GetName());
                  return 0;
               }
            }
            else  {
               Error("ReadVersion", "Class %s not known to file %s.",
                 cl->GetName(), ((TFile*)fParent)->GetName());
               version = 0;
            }
         }
      }
   }
   return version;
}

//______________________________________________________________________________
UInt_t TBufferFile::WriteVersion(const TClass *cl, Bool_t useBcnt)
{
   // Write class version to I/O buffer.

   UInt_t cntpos = 0;
   if (useBcnt) {
      // reserve space for leading byte count
      cntpos   = UInt_t(fBufCur-fBuffer);
      fBufCur += sizeof(UInt_t);
   }

   Version_t version = cl->GetClassVersion();
   if (version<=1 && cl->IsForeign()) {
      *this << Version_t(0);
      *this << cl->GetCheckSum();
   } else {
      if (version > kMaxVersion) {
         Error("WriteVersion", "version number cannot be larger than %hd)",
               kMaxVersion);
         version = kMaxVersion;
      }
      *this <<version;
   }

   // return position where to store possible byte count
   return cntpos;
}

//______________________________________________________________________________
UInt_t TBufferFile::WriteVersionMemberWise(const TClass *cl, Bool_t useBcnt)
{
   // Write class version to I/O buffer after setting the kStreamedMemberWise
   // bit in the version number.

   UInt_t cntpos = 0;
   if (useBcnt) {
      // reserve space for leading byte count
      cntpos   = UInt_t(fBufCur-fBuffer);
      fBufCur += sizeof(UInt_t);
   }

   Version_t version = cl->GetClassVersion();
   if (version<=1 && cl->IsForeign()) {
      Error("WriteVersionMemberWise", "Member-wise streaming of foreign collection not yet implemented!");
      *this << Version_t(0);
      *this << cl->GetCheckSum();
   } else {
      if (version > kMaxVersion) {
         Error("WriteVersionMemberWise", "version number cannot be larger than %hd)",
               kMaxVersion);
         version = kMaxVersion;
      }
      version |= kStreamedMemberWise;
      *this <<version;
   }

   // return position where to store possible byte count
   return cntpos;
}

//______________________________________________________________________________
void TBufferFile::StreamObject(void *obj, const type_info &typeinfo, const TClass* onFileClass )
{
   // Stream an object given its C++ typeinfo information.

   TClass *cl = TClass::GetClass(typeinfo);
   cl->Streamer(obj, *this, (TClass*)onFileClass );
}

//______________________________________________________________________________
void TBufferFile::StreamObject(void *obj, const char *className, const TClass* onFileClass)
{
   // Stream an object given the name of its actual class.

   TClass *cl = TClass::GetClass(className);
   cl->Streamer(obj, *this, (TClass*)onFileClass );
}

//______________________________________________________________________________
void TBufferFile::StreamObject(void *obj, const TClass *cl, const TClass* onFileClass )
{
   // Stream an object given a pointer to its actual class.

   ((TClass*)cl)->Streamer(obj, *this, (TClass*)onFileClass );
}

//______________________________________________________________________________
void TBufferFile::StreamObject(TObject *obj)
{
   // Stream an object inheriting from TObject using its streamer.

   obj->Streamer(*this);
}

//______________________________________________________________________________
void TBufferFile::CheckCount(UInt_t offset)
{
   // Check if offset is not too large (< kMaxMapCount) when writing.

   if (IsWriting()) {
      if (offset >= kMaxMapCount) {
         Error("CheckCount", "buffer offset too large (larger than %d)", kMaxMapCount);
         // exception
      }
   }
}

//______________________________________________________________________________
UInt_t TBufferFile::CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass)
{
   // Check for object in the read map. If the object is 0 it still has to be
   // read. Try to read it from the buffer starting at location offset. If the
   // object is -1 then it really does not exist and we return 0. If the object
   // exists just return the offset.

   // in position 0 we always have the reference to the null object
   if (!offset) return offset;

   Long_t cli;

   if (readClass) {
      if ((cli = fMap->GetValue(offset)) == 0) {
         // No class found at this location in map. It might have been skipped
         // as part of a skipped object. Try to explicitely read the class.

         // save fBufCur and set to place specified by offset (-kMapOffset-sizeof(bytecount))
         char *bufsav = fBufCur;
         fBufCur = (char *)(fBuffer + offset-kMapOffset-sizeof(UInt_t));

         TClass *c = ReadClass(cl);
         if (c == (TClass*) -1) {
            // mark class as really not available
            fMap->Remove(offset);
            fMap->Add(offset, -1);
            offset = 0;
            if (cl)
               Warning("CheckObject", "reference to unavailable class %s,"
                       " pointers of this type will be 0", cl->GetName());
            else
               Warning("CheckObject", "reference to an unavailable class,"
                       " pointers of that type will be 0");
         }

         fBufCur = bufsav;

      } else if (cli == -1) {

         // class really does not exist
         return 0;
      }

   } else {

      if ((cli = fMap->GetValue(offset)) == 0) {
         // No object found at this location in map. It might have been skipped
         // as part of a skipped object. Try to explicitely read the object.

         // save fBufCur and set to place specified by offset (-kMapOffset)
         char *bufsav = fBufCur;
         fBufCur = (char *)(fBuffer + offset-kMapOffset);

         TObject *obj = ReadObject(cl);
         if (!obj) {
            // mark object as really not available
            fMap->Remove(offset);
            fMap->Add(offset, -1);
            Warning("CheckObject", "reference to object of unavailable class %s, offset=%d"
                    " pointer will be 0", cl ? cl->GetName() : "TObject",offset);
            offset = 0;
         }

         fBufCur = bufsav;

      } else if (cli == -1) {

         // object really does not exist
         return 0;
      }

   }

   return offset;
}

//______________________________________________________________________________
Bool_t TBufferFile::CheckObject(const TObject *obj)
{
   // Check if the specified object is already in the buffer.
   // Returns kTRUE if object already in the buffer, kFALSE otherwise
   // (also if obj is 0 or TBuffer not in writing mode).

   return CheckObject(obj, TObject::Class());
}

//______________________________________________________________________________
Bool_t TBufferFile::CheckObject(const void *obj, const TClass *ptrClass)
{
   // Check if the specified object of the specified class is already in
   // the buffer. Returns kTRUE if object already in the buffer,
   // kFALSE otherwise (also if obj is 0 ).

   if (!obj || !fMap || !ptrClass) return kFALSE;

   TClass *clActual = ptrClass->GetActualClass(obj);

   ULong_t idx;

   if (clActual && (ptrClass != clActual)) {
      const char *temp = (const char*) obj;
      temp -= clActual->GetBaseClassOffset(ptrClass);
      idx = (ULong_t)fMap->GetValue(Void_Hash(temp), (Long_t)temp);
   } else {
      idx = (ULong_t)fMap->GetValue(Void_Hash(obj), (Long_t)obj);
   }

   return idx ? kTRUE : kFALSE;
}

//______________________________________________________________________________
void TBufferFile::SetPidOffset(UShort_t offset)
{
   // This offset is used when a key (or basket) is transfered from one
   // file to the other.  In this case the TRef and TObject might have stored a
   // pid index (to retrieve TProcessIDs) which refered to their order on the original
   // file, the fPidOffset is to be added to those values to correctly find the
   // TProcessID.  This fPidOffset needs to be increment if the key/basket is copied
   // and need to be zero for new key/basket.

   fPidOffset = offset;
}

//______________________________________________________________________________
void TBufferFile::GetMappedObject(UInt_t tag, void* &ptr, TClass* &ClassPtr) const
{
   // Retrieve the object stored in the buffer's object map at 'tag'
   // Set ptr and ClassPtr respectively to the address of the object and
   // a pointer to its TClass.

   if (tag > (UInt_t)fMap->GetSize()) {
      ptr = 0;
      ClassPtr = 0;
   } else {
      ptr = (void*)fMap->GetValue(tag);
      ClassPtr = (TClass*) fClassMap->GetValue(tag);
   }
}

//______________________________________________________________________________
void TBufferFile::MapObject(const TObject *obj, UInt_t offset)
{
   // Add object to the fMap container.
   // If obj is not 0 add object to the map (in read mode also add 0 objects to
   // the map). This method may only be called outside this class just before
   // calling obj->Streamer() to prevent self reference of obj, in case obj
   // contains (via via) a pointer to itself. In that case offset must be 1
   // (default value for offset).

   if (IsWriting()) {
      if (!fMap) InitMap();

      if (obj) {
         CheckCount(offset);
         ULong_t hash = Void_Hash(obj);
         fMap->Add(hash, (Long_t)obj, offset);
         // No need to keep track of the class in write mode
         // fClassMap->Add(hash, (Long_t)obj, (Long_t)((TObject*)obj)->IsA());
         fMapCount++;
      }
   } else {
      if (!fMap || !fClassMap) InitMap();

      fMap->Add(offset, (Long_t)obj);
      fClassMap->Add(offset,
             (obj && obj != (TObject*)-1) ? (Long_t)((TObject*)obj)->IsA() : 0);
      fMapCount++;
   }
}

//______________________________________________________________________________
void TBufferFile::MapObject(const void *obj, const TClass* cl, UInt_t offset)
{
   // Add object to the fMap container.
   // If obj is not 0 add object to the map (in read mode also add 0 objects to
   // the map). This method may only be called outside this class just before
   // calling obj->Streamer() to prevent self reference of obj, in case obj
   // contains (via via) a pointer to itself. In that case offset must be 1
   // (default value for offset).

   if (IsWriting()) {
      if (!fMap) InitMap();

      if (obj) {
         CheckCount(offset);
         ULong_t hash = Void_Hash(obj);
         fMap->Add(hash, (Long_t)obj, offset);
         // No need to keep track of the class in write mode
         // fClassMap->Add(hash, (Long_t)obj, (Long_t)cl);
         fMapCount++;
      }
   } else {
      if (!fMap || !fClassMap) InitMap();

      fMap->Add(offset, (Long_t)obj);
      fClassMap->Add(offset, (Long_t)cl);
      fMapCount++;
   }
}

//______________________________________________________________________________
void TBufferFile::SetReadParam(Int_t mapsize)
{
   // Set the initial size of the map used to store object and class
   // references during reading. The default size is kMapSize=503.
   // Increasing the default has the benefit that when reading many
   // small objects the map does not need to be resized too often
   // (the system is always dynamic, even with the default everything
   // will work, only the initial resizing will cost some time).
   // This method can only be called directly after the creation of
   // the TBuffer, before any reading is done. Globally this option
   // can be changed using SetGlobalReadParam().

   R__ASSERT(IsReading());
   R__ASSERT(fMap == 0);

   fMapSize = mapsize;
}

//______________________________________________________________________________
void TBufferFile::SetWriteParam(Int_t mapsize)
{
   // Set the initial size of the hashtable used to store object and class
   // references during writing. The default size is kMapSize=503.
   // Increasing the default has the benefit that when writing many
   // small objects the hashtable does not get too many collisions
   // (the system is always dynamic, even with the default everything
   // will work, only a large number of collisions will cost performance).
   // For optimal performance hashsize should always be a prime.
   // This method can only be called directly after the creation of
   // the TBuffer, before any writing is done. Globally this option
   // can be changed using SetGlobalWriteParam().

   R__ASSERT(IsWriting());
   R__ASSERT(fMap == 0);

   fMapSize = mapsize;
}

//______________________________________________________________________________
void TBufferFile::InitMap()
{
   // Create the fMap container and initialize them
   // with the null object.

   if (IsWriting()) {
      if (!fMap) {
         fMap = new TExMap(fMapSize);
         // No need to keep track of the class in write mode
         // fClassMap = new TExMap(fMapSize);
         fMapCount = 0;
      }
   } else {
      if (!fMap) {
         fMap = new TExMap(fMapSize);
         fMap->Add(0, kNullTag);      // put kNullTag in slot 0
         fMapCount = 1;
      } else if (fMapCount==0) {
         fMap->Add(0, kNullTag);      // put kNullTag in slot 0
         fMapCount = 1;
      }
      if (!fClassMap) {
         fClassMap = new TExMap(fMapSize);
         fClassMap->Add(0, kNullTag);      // put kNullTag in slot 0
      }
   }
}

//______________________________________________________________________________
void TBufferFile::ResetMap()
{
   // Delete existing fMap and reset map counter.

   if (fMap) fMap->Delete();
   if (fClassMap) fClassMap->Delete();
   fMapCount     = 0;
   fDisplacement = 0;

   // reset user bits
   ResetBit(kUser1);
   ResetBit(kUser2);
   ResetBit(kUser3);
}

//______________________________________________________________________________
Int_t TBufferFile::ReadBuf(void *buf, Int_t max)
{
   // Read max bytes from the I/O buffer into buf. The function returns
   // the actual number of bytes read.

   R__ASSERT(IsReading());

   if (max == 0) return 0;

   Int_t n = TMath::Min(max, (Int_t)(fBufMax - fBufCur));

   memcpy(buf, fBufCur, n);
   fBufCur += n;

   return n;
}

//______________________________________________________________________________
void TBufferFile::WriteBuf(const void *buf, Int_t max)
{
   // Write max bytes from buf into the I/O buffer.

   R__ASSERT(IsWriting());

   if (max == 0) return;

   if (fBufCur + max > fBufMax) Expand(TMath::Max(2*fBufSize, fBufSize+max));

   memcpy(fBufCur, buf, max);
   fBufCur += max;
}

//______________________________________________________________________________
char *TBufferFile::ReadString(char *s, Int_t max)
{
   // Read string from I/O buffer. String is read till 0 character is
   // found or till max-1 characters are read (i.e. string s has max
   // bytes allocated). If max = -1 no check on number of character is
   // made, reading continues till 0 character is found.

   R__ASSERT(IsReading());

   char  ch;
   Int_t nr = 0;

   if (max == -1) max = kMaxInt;

   while (nr < max-1) {

      *this >> ch;

      // stop when 0 read
      if (ch == 0) break;

      s[nr++] = ch;
   }

   s[nr] = 0;
   return s;
}

//______________________________________________________________________________
void TBufferFile::WriteString(const char *s)
{
   // Write string to I/O buffer. Writes string upto and including the
   // terminating 0.

   WriteBuf(s, (strlen(s)+1)*sizeof(char));
}

//______________________________________________________________________________
TProcessID *TBufferFile::GetLastProcessID(TRefTable *reftable) const
{
   // Return the last TProcessID in the file.

   TFile *file = (TFile*)GetParent();
   // warn if the file contains > 1 PID (i.e. if we might have ambiguity)
   if (file && !reftable->TestBit(TRefTable::kHaveWarnedReadingOld) && file->GetNProcessIDs()>1) {
      Warning("ReadBuffer", "The file was written during several processes with an "
         "older ROOT version; the TRefTable entries might be inconsistent.");
      reftable->SetBit(TRefTable::kHaveWarnedReadingOld);
   }

   // the file's last PID is the relevant one, all others might have their tables overwritten
   TProcessID *fileProcessID = TProcessID::GetProcessID(0);
   if (file && file->GetNProcessIDs() > 0) {
      // take the last loaded PID
      fileProcessID = (TProcessID *) file->GetListOfProcessIDs()->Last();
   }
   return fileProcessID;
}

//______________________________________________________________________________
TProcessID *TBufferFile::ReadProcessID(UShort_t pidf)
{
   // The TProcessID with number pidf is read from file.
   // If the object is not already entered in the gROOT list, it is added.

   TFile *file = (TFile*)GetParent();
   if (!file) {
      if (!pidf) return TProcessID::GetPID(); //may happen when cloning an object
      return 0;
   }
   return file->ReadProcessID(pidf);
}

//______________________________________________________________________________
UInt_t TBufferFile::GetTRefExecId()
{
   // Return the exec id stored in the current TStreamerInfo element.
   // The execid has been saved in the unique id of the TStreamerElement
   // being read by TStreamerElement::Streamer.
   // The current element (fgElement) is set as a static global
   // by TStreamerInfo::ReadBuffer (Clones) when reading this TRef.

   return TStreamerInfo::GetCurrentElement()->GetUniqueID();
}

//______________________________________________________________________________
UShort_t TBufferFile::WriteProcessID(TProcessID *pid)
{
   // Check if the ProcessID pid is already in the file.
   // If not, add it and return the index number in the local file list.

   TFile *file = (TFile*)GetParent();
   if (!file) return 0;
   return file->WriteProcessID(pid);
}

//---- Utilities for TStreamerInfo ----------------------------------------------

//______________________________________________________________________________
void TBufferFile::ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force)
{
   // force writing the TStreamerInfo to the file

   if (info) info->ForceWriteInfo((TFile*)GetParent(),force);
}


//______________________________________________________________________________
void TBufferFile::ForceWriteInfoClones(TClonesArray *a)
{
   // Make sure TStreamerInfo is not optimized, otherwise it will not be
   // possible to support schema evolution in read mode.
   // In case the StreamerInfo has already been computed and optimized,
   // one must disable the option BypassStreamer.

   Bool_t optim = TStreamerInfo::CanOptimize();
   if (optim) TStreamerInfo::Optimize(kFALSE);
   TStreamerInfo *sinfo = (TStreamerInfo*)a->GetClass()->GetStreamerInfo();
   ForceWriteInfo(sinfo,kFALSE);
   if (optim) TStreamerInfo::Optimize(kTRUE);
   if (sinfo->IsOptimized()) a->BypassStreamer(kFALSE);
}

//______________________________________________________________________________
Int_t TBufferFile::ReadClones(TClonesArray *a, Int_t nobjects, Version_t objvers)
{
   // Interface to TStreamerInfo::ReadBufferClones.

   char **arr = (char **)a->GetObjectRef(0);
   //a->GetClass()->GetStreamerInfo()->ReadBufferClones(*this,a,nobjects,-1,0);
   TStreamerInfo *info = (TStreamerInfo*)a->GetClass()->GetStreamerInfo(objvers);
   return info->ReadBuffer(*this,arr,-1,nobjects,0,1);
}

//______________________________________________________________________________
Int_t TBufferFile::WriteClones(TClonesArray *a, Int_t nobjects)
{
   // Interface to TStreamerInfo::WriteBufferClones.

   char **arr = reinterpret_cast<char**>(a->GetObjectRef(0));
   //a->GetClass()->GetStreamerInfo()->WriteBufferClones(*this,(TClonesArray*)a,nobjects,-1,0);
   TStreamerInfo *info = (TStreamerInfo*)a->GetClass()->GetStreamerInfo();
   return info->WriteBufferAux(*this,arr,-1,nobjects,0,1);
}

//______________________________________________________________________________
Int_t TBufferFile::ReadClassEmulated(const TClass *cl, void *object, const TClass *onFileClass)
{
   // Read emulated class.

   UInt_t start,count;
   //We assume that the class was written with a standard streamer
   //We attempt to recover if a version count was not written
   Version_t v = ReadVersion(&start,&count);
   void *ptr = &object;
   if (count) {
      TStreamerInfo *sinfo = 0;
      if( onFileClass ) {
         sinfo = (TStreamerInfo*)cl->GetConversionStreamerInfo( onFileClass, v );
         if( !sinfo )
            return 0;
      }

      sinfo = (TStreamerInfo*)cl->GetStreamerInfo(v);
      sinfo->ReadBuffer(*this,(char**)ptr,-1);
      if (sinfo->IsRecovered()) count=0;
      CheckByteCount(start,count,cl);
   } else {
      SetBufferOffset(start);
      ((TStreamerInfo*)cl->GetStreamerInfo())->ReadBuffer(*this,(char**)ptr,-1);
   }
   return 0;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadClassBuffer(const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onFileClass)
{
   // Deserialize information from a buffer into an object.
   //
   // Note: This function is called by the xxx::Streamer()
   //       functions in rootcint-generated dictionaries.
   //   // This function assumes that the class version and the byte count
   // information have been read.
   //
   //   version  is the version number of the class
   //   start    is the starting position in the buffer b
   //   count    is the number of bytes for this object in the buffer
   //

   // The StreamerInfo should exist at this point.
   TObjArray *infos = cl->GetStreamerInfos();
   Int_t ninfos = infos->GetSize();
   if (version < -1 || version >= ninfos) {
      Error("ReadBuffer1", "class: %s, attempting to access a wrong version: %d",cl->GetName(),version);
      CheckByteCount(start, count, cl);
      return 0;
   }
   //---------------------------------------------------------------------------
   // The ondisk class has been specified so get foreign streamer info
   //---------------------------------------------------------------------------
   TStreamerInfo *sinfo = 0;
   if( onFileClass ) {
      sinfo = (TStreamerInfo*)cl->GetConversionStreamerInfo( onFileClass, version );
      if( !sinfo ) {
         Error( "ReadClassBuffer", "Could not find the right streamer info" );
         CheckByteCount(start, count, onFileClass);
         return 0;
      }
   }
   //---------------------------------------------------------------------------
   // Get local streamer info
   //---------------------------------------------------------------------------
   else {
      sinfo = (TStreamerInfo*)infos->At(version);
      if (sinfo == 0) {
         const_cast<TClass*>(cl)->BuildRealData(pointer);
         sinfo = new TStreamerInfo(const_cast<TClass*>(cl));
         infos->AddAtAndExpand(sinfo, version);
         if (gDebug > 0) printf("Creating StreamerInfo for class: %s, version: %d\n", cl->GetName(), version);
         sinfo->Build();
         //} else if (!fRealData) {
      } else if (!sinfo->GetOffsets()) {
         const_cast<TClass*>(cl)->BuildRealData(pointer);
         sinfo->BuildOld();
      }
   }

   // Deserialize the object.
   void *ptr = &pointer;
   sinfo->ReadBuffer(*this, (char**)ptr,-1);
   if (sinfo->IsRecovered()) count=0;

   // Check that the buffer position corresponds to the byte count.
   CheckByteCount(start, count, cl);
   return 0;
}

//______________________________________________________________________________
Int_t TBufferFile::ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onFileClass)
{
   // Deserialize information from a buffer into an object.
   //
   // Note: This function is called by the xxx::Streamer()
   //       functions in rootcint-generated dictionaries.
   //

   // Read the class version from the buffer.
   UInt_t R__s = 0; // Start of object.
   UInt_t R__c = 0; // Count of bytes.
   Version_t version;

   if( onFileClass )
      version = ReadVersion(&R__s, &R__c, onFileClass);
   else
      version = ReadVersion(&R__s, &R__c, cl);

   Bool_t v2file = kFALSE;
   TFile *file = (TFile*)GetParent();
   if (file && file->GetVersion() < 30000) {
      version = -1; //This is old file
      v2file = kTRUE;
   }

   // The StreamerInfo should exist at this point.

   //---------------------------------------------------------------------------
   // The ondisk class has been specified so get foreign streamer info
   //---------------------------------------------------------------------------
   TStreamerInfo *sinfo = 0;
   if( onFileClass ) {
      sinfo = (TStreamerInfo*)cl->GetConversionStreamerInfo( onFileClass, version );
      if( !sinfo ) {
         Error( "ReadClassBuffer", "Could not find the right streamer info" );
         CheckByteCount(R__s, R__c, onFileClass);
         return 0;
      }
   }
   //---------------------------------------------------------------------------
   // Get local streamer info
   //---------------------------------------------------------------------------
   else {
      TObjArray *infos = cl->GetStreamerInfos();
      Int_t ninfos = infos->GetSize();
      if (version < -1 || version >= ninfos) {
         Error("ReadClassBuffer","class: %s, attempting to access a wrong version: %d, object skipped at offset %d",
            cl->GetName(), version,Length());
         CheckByteCount(R__s, R__c, cl);
         return 0;
      }
      sinfo = (TStreamerInfo*) infos->At(version);
      if (sinfo == 0) {
         const_cast<TClass*>(cl)->BuildRealData(pointer);
         sinfo = new TStreamerInfo(const_cast<TClass*>(cl));
         infos->AddAtAndExpand(sinfo,version);
         if (gDebug > 0) printf("Creating StreamerInfo for class: %s, version: %d\n", cl->GetName(), version);
         sinfo->Build();

         if (v2file) sinfo->BuildEmulated(file);

      } else if (!sinfo->GetOffsets()) {
         const_cast<TClass*>(cl)->BuildRealData(pointer);
         sinfo->BuildOld();
      }
   }

   //deserialize the object
   void *ptr = &pointer;
   sinfo->ReadBuffer(*this, (char**)ptr,-1);
   if (sinfo->IsRecovered()) R__c=0;

   // Check that the buffer position corresponds to the byte count.
   CheckByteCount(R__s, R__c, cl);

   if (gDebug > 2) printf(" ReadBuffer for class: %s has read %d bytes\n", cl->GetName(), R__c);

   return 0;
}

//______________________________________________________________________________
Int_t TBufferFile::WriteClassBuffer(const TClass *cl, void *pointer)
{
   // Function called by the Streamer functions to serialize object at p
   // to buffer b. The optional argument info may be specified to give an
   // alternative StreamerInfo instead of using the default StreamerInfo
   // automatically built from the class definition.
   // For more information, see class TStreamerInfo.

   //build the StreamerInfo if first time for the class
   TStreamerInfo *sinfo = (TStreamerInfo*)const_cast<TClass*>(cl)->GetCurrentStreamerInfo();
   if (sinfo == 0) {
      const_cast<TClass*>(cl)->BuildRealData(pointer);
      sinfo = new TStreamerInfo(const_cast<TClass*>(cl));
      const_cast<TClass*>(cl)->SetCurrentStreamerInfo(sinfo);
      cl->GetStreamerInfos()->AddAtAndExpand(sinfo,cl->GetClassVersion());
      if (gDebug > 0) printf("Creating StreamerInfo for class: %s, version: %d\n",cl->GetName(),cl->GetClassVersion());
      sinfo->Build();
   } else if (!sinfo->GetOffsets()) {
      const_cast<TClass*>(cl)->BuildRealData(pointer);
      sinfo->BuildOld();
   }
   // This is necessary because it might be induced later anyway if an object
   // of the same type is either a base class or a pointer data member of this
   // class of any contained objects.
   if (sinfo->IsOptimized() && !TVirtualStreamerInfo::CanOptimize()) sinfo->Compile();

   //write the class version number and reserve space for the byte count
   UInt_t R__c = WriteVersion(cl, kTRUE);

   //serialize the object
   void *ptr = &pointer;
   sinfo->WriteBufferAux(*this,(char**)ptr,-1,1,0,0); // NOTE: expanded

   //write the byte count at the start of the buffer
   SetByteCount(R__c, kTRUE);

   if (gDebug > 2) printf(" WriteBuffer for class: %s version %d has written %d bytes\n",cl->GetName(),cl->GetClassVersion(),UInt_t(fBufCur - fBuffer) - R__c - (UInt_t)sizeof(UInt_t));
   return 0;
}

//---- Static functions --------------------------------------------------------

//______________________________________________________________________________
void TBufferFile::SetGlobalReadParam(Int_t mapsize)
{
   // Set the initial size of the map used to store object and class
   // references during reading. The default size is kMapSize=503.
   // Increasing the default has the benefit that when reading many
   // small objects the array does not need to be resized too often
   // (the system is always dynamic, even with the default everything
   // will work, only the initial resizing will cost some time).
   // Per TBuffer object this option can be changed using SetReadParam().

   fgMapSize = mapsize;
}

//______________________________________________________________________________
void TBufferFile::SetGlobalWriteParam(Int_t mapsize)
{
   // Set the initial size of the hashtable used to store object and class
   // references during writing. The default size is kMapSize=503.
   // Increasing the default has the benefit that when writing many
   // small objects the hashtable does not get too many collisions
   // (the system is always dynamic, even with the default everything
   // will work, only a large number of collisions will cost performance).
   // For optimal performance hashsize should always be a prime.
   // Per TBuffer object this option can be changed using SetWriteParam().

   fgMapSize = mapsize;
}

//______________________________________________________________________________
Int_t TBufferFile::GetGlobalReadParam()
{
   // Get default read map size.

   return fgMapSize;
}

//______________________________________________________________________________
Int_t TBufferFile::GetGlobalWriteParam()
{
   // Get default write map size.

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