ROOT logo

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned int magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* Object support */
struct sqltvn
{
  unsigned char *tvnvsn; 
  unsigned short tvnvsnl; 
  unsigned char *tvnnm;
  unsigned short tvnnml; 
  unsigned char *tvnsnm;
  unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;

struct sqladts
{
  unsigned int adtvsn; 
  unsigned short adtmode; 
  unsigned short adtnum;  
  sqltvn adttvn[1];       
};
typedef struct sqladts sqladts;

static struct sqladts sqladt = {
  1,1,0,
};

/* Binding to PL/SQL Records */
struct sqltdss
{
  unsigned int tdsvsn; 
  unsigned short tdsnum; 
  unsigned char *tdsval[1]; 
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
  1,
  0,
};

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[20];
};
static const struct sqlcxp sqlfpn =
{
    19,
    "hshowerparora2io.pc"
};


static unsigned int sqlctx = 39698211;


static struct sqlexd {
   unsigned long  sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   occurs;
      const short *cud;
   unsigned char  *sqlest;
      const char  *stmt;
   sqladts *sqladtp;
   sqltdss *sqltdsp;
   unsigned char  **sqphsv;
   unsigned long  *sqphsl;
            int   *sqphss;
            short **sqpind;
            int   *sqpins;
   unsigned long  *sqparm;
   unsigned long  **sqparc;
   unsigned short  *sqpadto;
   unsigned short  *sqptdso;
   unsigned int   sqlcmax;
   unsigned int   sqlcmin;
   unsigned int   sqlcincr;
   unsigned int   sqlctimeout;
   unsigned int   sqlcnowait;
            int   sqfoff;
   unsigned int   sqcmod;
   unsigned int   sqfmod;
   unsigned int   sqlpfmem;
   unsigned char  *sqhstv[9];
   unsigned long  sqhstl[9];
            int   sqhsts[9];
            short *sqindv[9];
            int   sqinds[9];
   unsigned long  sqharm[9];
   unsigned long  *sqharc[9];
   unsigned short  sqadto[9];
   unsigned short  sqtdso[9];
} sqlstm = {13,9};

// Prototypes
extern "C" {
  void sqlcxt (void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlcx2t(void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlbuft(void **, char *);
  void sqlgs2t(void **, char *);
  void sqlorat(void **, unsigned int *, void *);
}

// Forms Interface
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL  = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }

 static const char *sq0002 = 
"select sector ,module ,pad_col ,pad_row ,slope ,offset ,threshold ,gain  fro\
m shower_ana2.shw_calpar_data_view where vers_id=:b0           ";

typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,170,0,4,116,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
36,0,0,2,139,0,9,167,0,0,1,1,0,1,0,1,3,0,0,
55,0,0,2,0,0,13,170,0,0,8,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,3,0,0,2,4,0,0,2,4,
0,0,2,4,0,0,2,4,0,0,
102,0,0,2,0,0,15,202,0,0,0,0,0,1,0,
117,0,0,3,154,0,4,262,0,0,5,0,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,2,9,0,0,2,9,0,0,
152,0,0,4,251,0,6,336,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
187,0,0,5,170,0,3,415,0,0,9,9,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,
4,0,0,1,4,0,0,1,4,0,0,1,4,0,0,
};


//*-- AUTHOR : Ilse Koenig

//_HADES_CLASS_DESCRIPTION 
//////////////////////////////////////////////////////////////////////////////
// HShowerParOra2Io
//
// Interface class to database Oracle for input/output of parameters needed
// by the SHOWER detector for runs since 2010
// (uses the Oracle C/C++ precompiler)
//
//////////////////////////////////////////////////////////////////////////////
using namespace std;
#include "hshowerparora2io.h"
#include "hparora2set.h"
#include "hshowercalpar.h"
#include "hshowergeompar.h"
#include "hgeomcompositevolume.h"
#include "hora2geomdetversion.h"
#include "TClass.h"
#include <iostream>
#include <iomanip>
#include <unistd.h>

#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern


// Oracle communication area
#include <oraca.h>
// SQL Communications Area
#include <sqlca.h>
#include <sqlcpr.h>

ClassImp(HShowerParOra2Io)
	
#define SHOWER_MAXSEC      6
#define SHOWER_MAXSECMODS  3
#define SHOWER_MAXMODS 	  18
#define SHOWER_MAXARR 	5000
#define SHOWER_MAXPADS  1024


HShowerParOra2Io::HShowerParOra2Io(HOra2Conn* pC) : HDetParOra2Io(pC) {
  // constructor
  // sets the name of the I/O class "HShowerParIo"
  // gets the pointer to the connection class
  fName="HShowerParIo";
  initModules=new TArrayI(SHOWER_MAXMODS);
  geomVers=0;
}


HShowerParOra2Io::~HShowerParOra2Io() {
  // destructor
  if (initModules) delete initModules;
  if (geomVers) delete geomVers;
}


Bool_t HShowerParOra2Io::init(HParSet* pPar,Int_t* set) {
  // calls special read-function for each parameter container
  if (getRunStart(pPar)<0) {
    pPar->setInputVersion(-1,inputNumber);
    return kFALSE;
  }
  const Text_t* name=pPar->IsA()->GetName();
  if (strcmp(name,"HShowerCalPar")==0)
    return read(((HShowerCalPar*)pPar),set);
  if (strcmp(name,"HShowerGeomPar")==0) 
    return read(((HShowerGeomPar*)pPar),set);
  Error("init","Initialization of %s not possible from Oracle!",name);
  return kFALSE;
}


Int_t HShowerParOra2Io::write(HParSet* pPar) {
  // calls the appropriate write function for the container
  if (getRunStart(pPar)<=0) return -1;
  const Text_t* name=pPar->IsA()->GetName();
  if (!strcmp(name,"HShowerCalPar"))
    return writePar((HShowerCalPar*)pPar);
  if (strcmp(name,"HShowerGeomPar")==0)
    return writeAlignment((HShowerGeomPar*)pPar);
  Error("write","Storage of %s not possible in Oracle!",name);
  return 0;
}

Bool_t HShowerParOra2Io::getVersion(HParSet* pPar,Int_t& version) {
  // checks, if the parameter container needs to be reinitialized
  // reads the newest version valid for the current event file
  // returns kTRUE, if new parameters must be read
  // returns kFALSE, if no reinitialization needed or not valid version found
  HParOra2Set* oraSet=getOraSet(pPar);
  if (oraSet->contextId==-1 || runStart==-1) {
    pPar->setInputVersion(-1,inputNumber);
    version=-1;
    return kFALSE;
  }
  Int_t contVers=pPar->getInputVersion(inputNumber);
  if (contVers!=-1 && runStart>=oraSet->versDate[0] && runStart<=oraSet->versDate[1]) {
    version=contVers;
    return kFALSE;
  }
  const Char_t* containerClass=pPar->IsA()->GetName();
  oraSet->clearVersDate();
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int context;
    int vers;
    double since;
    double until;
  /* EXEC SQL END DECLARE SECTION; */ 

  context=oraSet->contextId;
  /* EXEC SQL WHENEVER SQLERROR DO showSqlError("getVersion(HParSet*,Int_t&)"); */ 

  /* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */ 

  if (strcmp(containerClass,"HShowerCalPar")==0) {
    /* EXEC SQL SELECT vers_id,
                    hanadate.date_to_number(valid_since),
                    hanadate.date_to_number(valid_until)
             INTO :vers, :since, :until
             FROM shower_ana2.shw_calpar_vers_at_date
             WHERE context_id = :context; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 4;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.stmt = "select vers_id ,hanadate.date_to_number(valid_since) ,han\
adate.date_to_number(valid_until) into :b0,:b1,:b2  from shower_ana2.shw_calpa\
r_vers_at_date where context_id=:b3";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )5;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.sqlpfmem = (unsigned int  )0;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqhstv[0] = (unsigned char  *)&vers;
    sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[0] = (         int  )0;
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)&since;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[1] = (         int  )0;
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)&until;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[2] = (         int  )0;
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqhstv[3] = (unsigned char  *)&context;
    sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[3] = (         int  )0;
    sqlstm.sqindv[3] = (         short *)0;
    sqlstm.sqinds[3] = (         int  )0;
    sqlstm.sqharm[3] = (unsigned long )0;
    sqlstm.sqadto[3] = (unsigned short )0;
    sqlstm.sqtdso[3] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode == 1403) goto notfound;
    if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}


  }
  version=vers;
  oraSet->versDate[0]=since;
  oraSet->versDate[1]=until;
  return kTRUE;
notfound:
  pPar->setInputVersion(-1,inputNumber);
  version=-1;
  return kFALSE;
};

Bool_t HShowerParOra2Io::read(HShowerCalPar* pPar, Int_t* set) {
  // reads the calibration parameters and fill the ShowerCalPar container
  Int_t oraVersion=-1;
  Bool_t rc=getVersion(pPar,oraVersion);
  if (oraVersion<0) return kFALSE;
  if (oraVersion>=0&&rc==kFALSE) return kTRUE;
  pPar->clear();
  initModules->Reset();
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int vers;
    struct {
      int p_sec[SHOWER_MAXARR];
      int p_mod[SHOWER_MAXARR];
      int p_col[SHOWER_MAXARR];
      int p_row[SHOWER_MAXARR];
      float slo[SHOWER_MAXARR];
      float ofs[SHOWER_MAXARR];
      float thr[SHOWER_MAXARR];
      float gai[SHOWER_MAXARR];
    } cal;
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR DO showSqlError("read(HShowerCalPar*,Int_t*)"); */ 

  /* EXEC SQL WHENEVER NOT FOUND CONTINUE; */ 

  /* EXEC SQL DECLARE cal_cur CURSOR FOR
    SELECT sector, module, pad_col, pad_row, slope, offset, threshold, gain
      FROM shower_ana2.shw_calpar_data_view
      WHERE vers_id = :vers; */ 

  Bool_t isOpenCursor=kFALSE;
  Bool_t allFound=kTRUE;
  Int_t s=-1, m=-1, nTot=0, nLast=0;
  HLocation loc;
  loc.setNIndex(4);
  HShowerCalParCell* pCell=0;
  vers=oraVersion;
  /* EXEC SQL OPEN cal_cur; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = sq0002;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )36;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqcmod = (unsigned int )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&vers;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("read(HShowerCalPar*,Int_t*)");
}


  isOpenCursor=kTRUE;
  do {
    /* EXEC SQL FETCH cal_cur INTO :cal; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 8;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )5000;
    sqlstm.offset = (unsigned int  )55;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.sqlpfmem = (unsigned int  )0;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqfoff = (         int )0;
    sqlstm.sqfmod = (unsigned int )2;
    sqlstm.sqhstv[0] = (unsigned char  *)cal.p_sec;
    sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[0] = (         int  )sizeof(int);
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqharc[0] = (unsigned long  *)0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)cal.p_mod;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[1] = (         int  )sizeof(int);
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqharc[1] = (unsigned long  *)0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)cal.p_col;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[2] = (         int  )sizeof(int);
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqharc[2] = (unsigned long  *)0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqhstv[3] = (unsigned char  *)cal.p_row;
    sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[3] = (         int  )sizeof(int);
    sqlstm.sqindv[3] = (         short *)0;
    sqlstm.sqinds[3] = (         int  )0;
    sqlstm.sqharm[3] = (unsigned long )0;
    sqlstm.sqharc[3] = (unsigned long  *)0;
    sqlstm.sqadto[3] = (unsigned short )0;
    sqlstm.sqtdso[3] = (unsigned short )0;
    sqlstm.sqhstv[4] = (unsigned char  *)cal.slo;
    sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
    sqlstm.sqhsts[4] = (         int  )sizeof(float);
    sqlstm.sqindv[4] = (         short *)0;
    sqlstm.sqinds[4] = (         int  )0;
    sqlstm.sqharm[4] = (unsigned long )0;
    sqlstm.sqharc[4] = (unsigned long  *)0;
    sqlstm.sqadto[4] = (unsigned short )0;
    sqlstm.sqtdso[4] = (unsigned short )0;
    sqlstm.sqhstv[5] = (unsigned char  *)cal.ofs;
    sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
    sqlstm.sqhsts[5] = (         int  )sizeof(float);
    sqlstm.sqindv[5] = (         short *)0;
    sqlstm.sqinds[5] = (         int  )0;
    sqlstm.sqharm[5] = (unsigned long )0;
    sqlstm.sqharc[5] = (unsigned long  *)0;
    sqlstm.sqadto[5] = (unsigned short )0;
    sqlstm.sqtdso[5] = (unsigned short )0;
    sqlstm.sqhstv[6] = (unsigned char  *)cal.thr;
    sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
    sqlstm.sqhsts[6] = (         int  )sizeof(float);
    sqlstm.sqindv[6] = (         short *)0;
    sqlstm.sqinds[6] = (         int  )0;
    sqlstm.sqharm[6] = (unsigned long )0;
    sqlstm.sqharc[6] = (unsigned long  *)0;
    sqlstm.sqadto[6] = (unsigned short )0;
    sqlstm.sqtdso[6] = (unsigned short )0;
    sqlstm.sqhstv[7] = (unsigned char  *)cal.gai;
    sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
    sqlstm.sqhsts[7] = (         int  )sizeof(float);
    sqlstm.sqindv[7] = (         short *)0;
    sqlstm.sqinds[7] = (         int  )0;
    sqlstm.sqharm[7] = (unsigned long )0;
    sqlstm.sqharc[7] = (unsigned long  *)0;
    sqlstm.sqadto[7] = (unsigned short )0;
    sqlstm.sqtdso[7] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) showSqlError("read(HShowerCalPar*,Int_t*)");
}


    nLast=sqlca.sqlerrd[2]-nTot;
    if (nLast>0) {
      for (Int_t i=0;i<nLast;i++) {
        s=cal.p_sec[i]-1;
        m=cal.p_mod[i];
        if (set[s*3+m]) {
          loc[0] = s;
          loc[1] = m;
          loc[2] = cal.p_row[i];
          loc[3] = cal.p_col[i];
          pCell = (HShowerCalParCell*)pPar->getSlot(loc);
          if (pCell) {
            pCell = new(pCell) HShowerCalParCell;
            pCell->setSlope(cal.slo[i]);
            pCell->setOffset(cal.ofs[i]);
            pCell->setThreshold(cal.thr[i]);
            pCell->setGain(cal.gai[i]);
          } else {
            Error("read(HShowerCalPar*,Int_t*)",
                  "slot not found:  %i %i %i %i",loc[0],loc[1],loc[2],loc[3]);

            allFound=kFALSE;
            break;
          }
          initModules->AddAt(1,s*3+m);
        }
        nTot++;
      }
    }
  } while (nLast==SHOWER_MAXARR&&nTot<=20000&&allFound);
  if (isOpenCursor) {
    /* EXEC SQL CLOSE cal_cur; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 8;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )102;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) showSqlError("read(HShowerCalPar*,Int_t*)");
}


    for(Int_t i=0;i<SHOWER_MAXMODS;i++) {
      if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
    }
  } else allFound=kFALSE;
  if (allFound) {
    setChanged(pPar,oraVersion);
    printInfo(pPar->GetName());
  } else {
    pPar->setInputVersion(-1,inputNumber);
  }
  return allFound;
}


Bool_t HShowerParOra2Io::read(HShowerGeomPar* pPar, Int_t* set) {
  // reads the geometry of the Shower and fills the ShowerGeomPar container
  Bool_t allFound=kTRUE;
  Int_t detId=-1;
  if (!geomVers) {
    detId=getDetectorId(pPar->getDetectorName());
    geomVers=new HOra2GeomDetVersion(pPar->getDetectorName(),detId);
  } else {
    detId=geomVers->getDetectorId();
  }
  if (detId<=0) {
    allFound=kFALSE;
    delete geomVers;
    geomVers=0;
  }
  if (detId>0&&pPar->isFirstInitialization()) {
    if (!readGeomNames(pPar,set)) {
      allFound=kFALSE;
      pPar->clear();
    } else addGeomOraSet(pPar);
  }  
  if (allFound) allFound=readDetectorGeometry(pPar,set,geomVers);
  return allFound;    
}

Bool_t HShowerParOra2Io::readGeomNames(HShowerGeomPar* pPar,Int_t* set) {
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    struct {
      int id[SHOWER_MAXMODS];
      int sector[SHOWER_MAXMODS];
      int module[SHOWER_MAXMODS];
      /* varchar modName[SHOWER_MAXMODS][9]; */ 
struct { unsigned short len; unsigned char arr[10]; } modName[18];

      /* varchar compName[SHOWER_MAXMODS][9]; */ 
struct { unsigned short len; unsigned char arr[10]; } compName[18];

    } mods;
    struct {
      short id_Ind[SHOWER_MAXMODS];
      short sector_Ind[SHOWER_MAXMODS];
      short module_Ind[SHOWER_MAXMODS];
      short modName_Ind[SHOWER_MAXMODS];
      short compName_Ind[SHOWER_MAXMODS];
    } mods_Ind;
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR DO showSqlError("readGeomNames()"); */ 

  /* EXEC SQL WHENEVER NOT FOUND CONTINUE; */ 


  /* EXEC SQL SELECT module_id, sector, module, geom_module_name, geom_component_name
           INTO :mods INDICATOR :mods_Ind
           FROM shower_ana2.shw_setup_at_date; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 8;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select module_id ,sector ,module ,geom_module_name ,geom_co\
mponent_name into :s1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 ,:s9:s10   from shower_ana2.s\
hw_setup_at_date ";
  sqlstm.iters = (unsigned int  )18;
  sqlstm.offset = (unsigned int  )117;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)mods.id;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )sizeof(int);
  sqlstm.sqindv[0] = (         short *)mods_Ind.id_Ind;
  sqlstm.sqinds[0] = (         int  )sizeof(short);
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqharc[0] = (unsigned long  *)0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)mods.sector;
  sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[1] = (         int  )sizeof(int);
  sqlstm.sqindv[1] = (         short *)mods_Ind.sector_Ind;
  sqlstm.sqinds[1] = (         int  )sizeof(short);
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqharc[1] = (unsigned long  *)0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)mods.module;
  sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[2] = (         int  )sizeof(int);
  sqlstm.sqindv[2] = (         short *)mods_Ind.module_Ind;
  sqlstm.sqinds[2] = (         int  )sizeof(short);
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqharc[2] = (unsigned long  *)0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqhstv[3] = (unsigned char  *)mods.modName;
  sqlstm.sqhstl[3] = (unsigned long )11;
  sqlstm.sqhsts[3] = (         int  )12;
  sqlstm.sqindv[3] = (         short *)mods_Ind.modName_Ind;
  sqlstm.sqinds[3] = (         int  )sizeof(short);
  sqlstm.sqharm[3] = (unsigned long )0;
  sqlstm.sqharc[3] = (unsigned long  *)0;
  sqlstm.sqadto[3] = (unsigned short )0;
  sqlstm.sqtdso[3] = (unsigned short )0;
  sqlstm.sqhstv[4] = (unsigned char  *)mods.compName;
  sqlstm.sqhstl[4] = (unsigned long )11;
  sqlstm.sqhsts[4] = (         int  )12;
  sqlstm.sqindv[4] = (         short *)mods_Ind.compName_Ind;
  sqlstm.sqinds[4] = (         int  )sizeof(short);
  sqlstm.sqharm[4] = (unsigned long )0;
  sqlstm.sqharc[4] = (unsigned long  *)0;
  sqlstm.sqadto[4] = (unsigned short )0;
  sqlstm.sqtdso[4] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("readGeomNames()");
}


  Int_t pos, sec, mod;
  Char_t ref[10];
  initModules->Reset();
  for(Int_t i=0;i<sqlca.sqlerrd[2];i++) {
    sec=mods.sector[i]-1;
    mod=mods.module[i];
    HModGeomPar* pMod=pPar->getModule(sec,mod);
    pos=sec*SHOWER_MAXSECMODS + mod;
    if (pMod && set[pos]) {
      if (mods_Ind.modName_Ind[i]!=-1) {
        mods.modName[i].arr[mods.modName[i].len]='\0';
        pMod->SetName((Char_t*)(mods.modName[i].arr));
        initModules->AddAt(pos+1,pos);
        strcpy(ref,(Char_t*)(mods.modName[i].arr));
        ref[4]='1'; // reference module in sector 1
                    // not yet introduced in database
        pMod->setRefName(ref);
        Int_t mr=pPar->getModNumInMod(ref);
        HGeomCompositeVolume* refMod=pPar->getRefVolume(mr);
        if (refMod==0) {
          refMod=new HGeomCompositeVolume(pPar->getNumComponents());
          refMod->SetName(ref);
          pPar->addRefVolume(refMod,mr);
        }
        pMod->setVolume(refMod);
        //In Shower case this is  a wires plane (3)
        if (mods_Ind.compName_Ind[i]!=-1) {
          HGeomVolume* volu=refMod->getComponent(0);
          mods.compName[i].arr[mods.compName[i].len]='\0';
          volu->SetName((Char_t*)(mods.compName[i].arr));          
        }
      }
    }
  }
  Bool_t allFound=kTRUE;
  for(Int_t i=0;i<SHOWER_MAXMODS;i++) {
    if (set[i]>0 && initModules->At(i)==0) allFound=kFALSE;
  }
  return allFound;
}

Int_t HShowerParOra2Io::createVers(HParSet* pPar) {
  // creates a new version for the parameters
  // returns the new version
  cout<<"---------------  "<<pPar->GetName()<<"   ---------------\n";
  if (strlen(pPar->getAuthor())==0) {
    Error("createVers(...)",
          "author of parameters not defined");
    return -1;
  }
  if (strlen(pPar->getDescription())==0) {
    Error("createVers(...)",
          "descriction of parameters not defined");
    return -1;
  }
  const Char_t* contName=pPar->IsA()->GetName();
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int context;
    int vers=-1;
    int run;
    char* creator;
    char* descript;
  /* EXEC SQL END DECLARE SECTION; */ 

  context = getContextId(contName,pPar->getParamContext());
  if (context==-1) return -1;
  run=getActRunId();
  creator=(Char_t*)pPar->getAuthor();
  descript=(Char_t*)pPar->getDescription();
  /* EXEC SQL WHENEVER SQLERROR GOTO not_found; */ 

  /* EXEC SQL WHENEVER NOT FOUND GOTO not_found; */ 

  if (strcmp(contName,"HShowerCalPar")==0) {
    /* EXEC SQL EXECUTE
      BEGIN
        SELECT shower_ana2.shower_par_query.next_version INTO :vers FROM DUAL;
        INSERT INTO shower_ana2.shw_calpar_vers
                     (vers_id, orig_context_id, run_id, author, description)
               VALUES (:vers, :context, :run, :creator, :descript);
      END;
    END-EXEC; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 8;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.stmt = "begin SELECT shower_ana2 . shower_par_query . next_versio\
n INTO :vers FROM DUAL ; INSERT INTO shower_ana2 . shw_calpar_vers ( vers_id ,\
 orig_context_id , run_id , author , description ) VALUES ( :vers , :context ,\
 :run , :creator , :descript ) ; END ;";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )152;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqhstv[0] = (unsigned char  *)&vers;
    sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[0] = (         int  )0;
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)&context;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[1] = (         int  )0;
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)&run;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[2] = (         int  )0;
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqhstv[3] = (unsigned char  *)creator;
    sqlstm.sqhstl[3] = (unsigned long )0;
    sqlstm.sqhsts[3] = (         int  )0;
    sqlstm.sqindv[3] = (         short *)0;
    sqlstm.sqinds[3] = (         int  )0;
    sqlstm.sqharm[3] = (unsigned long )0;
    sqlstm.sqadto[3] = (unsigned short )0;
    sqlstm.sqtdso[3] = (unsigned short )0;
    sqlstm.sqhstv[4] = (unsigned char  *)descript;
    sqlstm.sqhstl[4] = (unsigned long )0;
    sqlstm.sqhsts[4] = (         int  )0;
    sqlstm.sqindv[4] = (         short *)0;
    sqlstm.sqinds[4] = (         int  )0;
    sqlstm.sqharm[4] = (unsigned long )0;
    sqlstm.sqadto[4] = (unsigned short )0;
    sqlstm.sqtdso[4] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode == 1403) goto not_found;
    if (sqlca.sqlcode < 0) goto not_found;
}


  }
  cout<<"Oracle version for "<<pPar->GetName()<<" created:  "<<vers<<endl;
  return vers;
not_found:
  showSqlError("createVers()");
  return -1;
}

Int_t HShowerParOra2Io::writePar(HShowerCalPar* pPar) {
  // creates a new version and writes the calibration parameters to Oracle
  if(!pPar) return -1;
  Int_t version=createVers(pPar);
  if (version==-1) return -1;
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int p_sec[SHOWER_MAXARR];
    int p_mod[SHOWER_MAXARR];
    int p_col[SHOWER_MAXARR];
    int p_row[SHOWER_MAXARR];
    int vers[SHOWER_MAXPADS];
    float slo[SHOWER_MAXPADS];
    float ofs[SHOWER_MAXPADS];
    float trh[SHOWER_MAXPADS];
    float gai[SHOWER_MAXPADS];
    int rows_to_insert;
  /* EXEC SQL END DECLARE SECTION; */ 

  HLocation loc;
  loc.set(4,0,0,0,0);
  HShowerCalParCell* pCell=0;
  Float_t cs=0, co=0, cg=0, ct=0;
  for(Int_t s=0;s<pPar->getNSectors();s++){ 
    for(Int_t m=0;m<pPar->getNModules();m++){ 
      Int_t nCell=-1;
      Int_t sId=(s+1)*10+m;
      if (sId>0){ 
        loc[0] = s;
        loc[1] = m;
        for(Int_t r=0;r<pPar->getNRows();r++) {
          loc[2]=r;
          for(Int_t c=0;c<pPar->getNColumns();c++){ 
            loc[3]=c;
            pCell = (HShowerCalParCell*)pPar->getObject(loc);
            if (pCell) {
              cs=pCell->getSlope();
              co=pCell->getOffset();
              ct=pCell->getThreshold();
              cg=pCell->getGain();
              if (co!=0 || cs!=1) { // only non-default values
                nCell++;
                if (nCell==SHOWER_MAXPADS) {
                  Error("writePar(HShowerCalPar*)","\n Number of Pads > 1024\n");
                  rollback();
                  return -1;
                }
                p_sec[nCell]=s+1;
                p_mod[nCell]=m;
                p_row[nCell]=r;
                p_col[nCell]=c;
                vers[nCell]=version;
                slo[nCell]=cs;
                ofs[nCell]=co;
                trh[nCell]=ct;
                gai[nCell]=cg;
              }
            }
          }
        }
      }
      if (nCell==-1) continue;
      rows_to_insert=nCell+1;
      /* EXEC SQL WHENEVER SQLERROR GOTO not_found; */ 

      /* EXEC SQL WHENEVER NOT FOUND GOTO not_found; */ 

      /* EXEC SQL FOR :rows_to_insert
        INSERT INTO shower_ana2.shw_calpar_data
            (vers_id, pad_id, slope, offset,threshold,gain )
            VALUES (:vers,
                    shower_ana2.shower_par_query.get_pad_id(:p_sec,:p_mod,:p_row,:p_col),
                    :slo, :ofs, :trh,:gai); */ 

{
      struct sqlexd sqlstm;
      sqlorat((void **)0, &sqlctx, &oraca);
      sqlstm.sqlvsn = 13;
      sqlstm.arrsiz = 9;
      sqlstm.sqladtp = &sqladt;
      sqlstm.sqltdsp = &sqltds;
      sqlstm.stmt = "insert into shower_ana2.shw_calpar_data (vers_id,pad_id\
,slope,offset,threshold,gain) values (:b1,shower_ana2.shower_par_query.get_pad\
_id(:b2,:b3,:b4,:b5),:b6,:b7,:b8,:b9)";
      sqlstm.iters = (unsigned int  )rows_to_insert;
      sqlstm.offset = (unsigned int  )187;
      sqlstm.cud = sqlcud0;
      sqlstm.sqlest = (unsigned char  *)&sqlca;
      sqlstm.sqlety = (unsigned short)4352;
      sqlstm.occurs = (unsigned int  )0;
      sqlstm.sqhstv[0] = (unsigned char  *)vers;
      sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
      sqlstm.sqhsts[0] = (         int  )sizeof(int);
      sqlstm.sqindv[0] = (         short *)0;
      sqlstm.sqinds[0] = (         int  )0;
      sqlstm.sqharm[0] = (unsigned long )0;
      sqlstm.sqharc[0] = (unsigned long  *)0;
      sqlstm.sqadto[0] = (unsigned short )0;
      sqlstm.sqtdso[0] = (unsigned short )0;
      sqlstm.sqhstv[1] = (unsigned char  *)p_sec;
      sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
      sqlstm.sqhsts[1] = (         int  )sizeof(int);
      sqlstm.sqindv[1] = (         short *)0;
      sqlstm.sqinds[1] = (         int  )0;
      sqlstm.sqharm[1] = (unsigned long )0;
      sqlstm.sqharc[1] = (unsigned long  *)0;
      sqlstm.sqadto[1] = (unsigned short )0;
      sqlstm.sqtdso[1] = (unsigned short )0;
      sqlstm.sqhstv[2] = (unsigned char  *)p_mod;
      sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
      sqlstm.sqhsts[2] = (         int  )sizeof(int);
      sqlstm.sqindv[2] = (         short *)0;
      sqlstm.sqinds[2] = (         int  )0;
      sqlstm.sqharm[2] = (unsigned long )0;
      sqlstm.sqharc[2] = (unsigned long  *)0;
      sqlstm.sqadto[2] = (unsigned short )0;
      sqlstm.sqtdso[2] = (unsigned short )0;
      sqlstm.sqhstv[3] = (unsigned char  *)p_row;
      sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
      sqlstm.sqhsts[3] = (         int  )sizeof(int);
      sqlstm.sqindv[3] = (         short *)0;
      sqlstm.sqinds[3] = (         int  )0;
      sqlstm.sqharm[3] = (unsigned long )0;
      sqlstm.sqharc[3] = (unsigned long  *)0;
      sqlstm.sqadto[3] = (unsigned short )0;
      sqlstm.sqtdso[3] = (unsigned short )0;
      sqlstm.sqhstv[4] = (unsigned char  *)p_col;
      sqlstm.sqhstl[4] = (unsigned long )sizeof(int);
      sqlstm.sqhsts[4] = (         int  )sizeof(int);
      sqlstm.sqindv[4] = (         short *)0;
      sqlstm.sqinds[4] = (         int  )0;
      sqlstm.sqharm[4] = (unsigned long )0;
      sqlstm.sqharc[4] = (unsigned long  *)0;
      sqlstm.sqadto[4] = (unsigned short )0;
      sqlstm.sqtdso[4] = (unsigned short )0;
      sqlstm.sqhstv[5] = (unsigned char  *)slo;
      sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
      sqlstm.sqhsts[5] = (         int  )sizeof(float);
      sqlstm.sqindv[5] = (         short *)0;
      sqlstm.sqinds[5] = (         int  )0;
      sqlstm.sqharm[5] = (unsigned long )0;
      sqlstm.sqharc[5] = (unsigned long  *)0;
      sqlstm.sqadto[5] = (unsigned short )0;
      sqlstm.sqtdso[5] = (unsigned short )0;
      sqlstm.sqhstv[6] = (unsigned char  *)ofs;
      sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
      sqlstm.sqhsts[6] = (         int  )sizeof(float);
      sqlstm.sqindv[6] = (         short *)0;
      sqlstm.sqinds[6] = (         int  )0;
      sqlstm.sqharm[6] = (unsigned long )0;
      sqlstm.sqharc[6] = (unsigned long  *)0;
      sqlstm.sqadto[6] = (unsigned short )0;
      sqlstm.sqtdso[6] = (unsigned short )0;
      sqlstm.sqhstv[7] = (unsigned char  *)trh;
      sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
      sqlstm.sqhsts[7] = (         int  )sizeof(float);
      sqlstm.sqindv[7] = (         short *)0;
      sqlstm.sqinds[7] = (         int  )0;
      sqlstm.sqharm[7] = (unsigned long )0;
      sqlstm.sqharc[7] = (unsigned long  *)0;
      sqlstm.sqadto[7] = (unsigned short )0;
      sqlstm.sqtdso[7] = (unsigned short )0;
      sqlstm.sqhstv[8] = (unsigned char  *)gai;
      sqlstm.sqhstl[8] = (unsigned long )sizeof(float);
      sqlstm.sqhsts[8] = (         int  )sizeof(float);
      sqlstm.sqindv[8] = (         short *)0;
      sqlstm.sqinds[8] = (         int  )0;
      sqlstm.sqharm[8] = (unsigned long )0;
      sqlstm.sqharc[8] = (unsigned long  *)0;
      sqlstm.sqadto[8] = (unsigned short )0;
      sqlstm.sqtdso[8] = (unsigned short )0;
      sqlstm.sqphsv = sqlstm.sqhstv;
      sqlstm.sqphsl = sqlstm.sqhstl;
      sqlstm.sqphss = sqlstm.sqhsts;
      sqlstm.sqpind = sqlstm.sqindv;
      sqlstm.sqpins = sqlstm.sqinds;
      sqlstm.sqparm = sqlstm.sqharm;
      sqlstm.sqparc = sqlstm.sqharc;
      sqlstm.sqpadto = sqlstm.sqadto;
      sqlstm.sqptdso = sqlstm.sqtdso;
      sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
      if (sqlca.sqlcode == 1403) goto not_found;
      if (sqlca.sqlcode < 0) goto not_found;
}


      cout<<"sector: "<<s<<" module: "<<m<<"    "<<rows_to_insert<<" rows inserted\n";
    }
  }
  cout<<"****************************************************************\n";
  commit();
  pPar->setChanged(kFALSE);
  return version;
not_found:
  showSqlError("writePar(HShowerCalPar*)");
  rollback();
  return -1;
}
  
void HShowerParOra2Io::printInfo(const Char_t* contName) {
  // prints the modules initialized from Oracle
  Bool_t first=kTRUE;
  cout<<'\n';
  for(Int_t i=0;i<SHOWER_MAXMODS;i++) {
    if (initModules->At(i)>0) {
      if (first) {
        cout<<contName<<": modules(s) initialized from Oracle: ";
        first=kFALSE;
      }
      cout<<i<<" ";
    }
  }
  cout<<endl;
}





/*
Bool_t HShowerParOra2Io::fillGeom(HShowerGeometry* pPar){
  //Function for calculating the module centers and tranformation used in analysis
  //(corresponding to the PAD_FIBREs)
  //For more info see documentation:
  //http://hades.if.uj.edu.pl/docs/shower/geometry
  HGeomVector vm[3] = { HGeomVector(0.000 , 0.00 ,  -4.0), 
                        HGeomVector(0.000 , 0.00 ,  67.6), 
                        HGeomVector(0.000 , 0.00 , 134.9)};
  pPar->m_nSectors = pPar->getMaxSectors();
  pPar->m_nModules = pPar->getMaxModules();
  pPar->m_nRows = 32; //! 
  pPar->m_nColumns = 32;//!
  pPar->m_nLab = 1;//!
  Int_t angle[6] = {0,300,240,180,120,60};
  for (Int_t s=0;s<pPar->getMaxSectors();s++){
    pPar->sectors[s].reset();
    pPar->sectors[s].setAngleRot(angle[s]);
    pPar->sectors[s].transform.setRotMatrix(
                     pPar->getModule(s,0)->getLabTransform().getRotMatrix());
    pPar->sectors[s].transform.setTransVector(
                     pPar->getModule(s,0)->getLabTransform().getTransVector());
    for(Int_t m=0;m<pPar->getMaxModules();m++){
      HModGeomPar* pMod = pPar->getModule(s,m);
      HShowerModuleGeom *pModGeom = new HShowerModuleGeom;
      pModGeom->setModuleID(m);
      HGeomRotation rotM = pMod->getLabTransform().getRotMatrix();
      pModGeom->transform.setRotMatrix(pMod->getLabTransform().getRotMatrix());
      HGeomVector v = pMod->getLabTransform().getTransVector();
      HGeomVector v_mod = rotM*vm[m]+v;
      //set new vector for modules;
      pModGeom->transform.setTransVector(v_mod);
      pPar->sectors[s].addModule(pModGeom);
    }  
  }
  HGeomVector *points[4];
  HShowerFrameCorner *pFC;

  for(Int_t m = 0; m < 3; m++) {
    HGeomCompositeVolume* refMod=pPar->getRefVolume(m);
    HGeomVolume *comp = refMod->getComponent(0);//only one comp; wires plane
    points[0] = comp->getPoint(3);//geant coordinate system is left-handed!! 
    points[1] = comp->getPoint(2);//
    points[2] = comp->getPoint(1);//
    points[3] = comp->getPoint(0);//
    pPar->frames[m].reset();
    pPar->frames[m].setModuleID(m);
    for (Int_t i=0;i<4;i++){
      pFC = new HShowerFrameCorner;
      pFC->setX(points[i]->getX()*0.1);
      pFC->setY(points[i]->getY()*0.1);
      if(i==0 || i==3) pFC->setFlagArea(1);
      else pFC->setFlagArea(0);
      pPar->frames[m].addCorner(pFC);
    }
  }
  if(!readGeom(pPar)) return kFALSE;
  pPar->attachTables(); 
  return kTRUE;
}


Bool_t HShowerParOra2Io::readGeom(HShowerGeometry* pPar){
  //Function for reading information about pads, wires etc.
  //which is not accesible via HDetGeomPar interface
  EXEC SQL BEGIN DECLARE SECTION;
    struct  {
      int id[267]; //3*89 wires
      int wire_id[267];
      float wire_coord[267];
      float distance[267];
      int   module_type_id[267];
    }wire;
    struct {
      int id[SHOWER_MAXPADS];
      int module_type_id[SHOWER_MAXPADS];
      float x_ld[SHOWER_MAXPADS];
      float x_lu[SHOWER_MAXPADS];
      float x_rd[SHOWER_MAXPADS];
      float x_ru[SHOWER_MAXPADS];
      float y_ld[SHOWER_MAXPADS];
      float y_lu[SHOWER_MAXPADS];
      float y_rd[SHOWER_MAXPADS];
      float y_ru[SHOWER_MAXPADS];
      int pad_flag[SHOWER_MAXPADS];
      int linked_to[SHOWER_MAXPADS] ;
    }data;
    int mod_id;
  EXEC SQL END DECLARE SECTION;

  EXEC SQL WHENEVER SQLERROR DO showSqlError("readWires()");
  EXEC SQL WHENEVER NOT FOUND CONTINUE;
  EXEC SQL DECLARE pad_cur CURSOR FOR
            SELECT id,module_type_id,
                   X_LD,Y_LD, X_LU, Y_LU, X_RD,Y_RD, X_RU,Y_RU,PAD_FLAG,LINKED_TO  
            FROM shower_ana.shw_pad_geom
            WHERE module_type_id= :mod_id;
  Int_t l;
  for(Int_t m=0;m<3;m++){  //3 modules 0,1,2
    mod_id=m;
    EXEC SQL OPEN pad_cur;
    EXEC SQL FETCH pad_cur INTO :data;
    Int_t nPads = sqlca.sqlerrd[2];
    pPar->pads[m].createPads(32,32);
    pPar->pads[m].setModuleID(m);
    HShowerPad* p = new HShowerPad;
    for(Int_t i=0; i <nPads; i++) {
      p->setPadNr((data.id[i]-1)-(m*1024));
      pPar->pads[m].setPad(p, (data.id[i]-1)-(m*1024));
    }
    delete p;
    for(Int_t n=0; n<nPads;n++){
      HShowerPad* pad = pPar->pads[m].getPad((data.id[n]-1)-(m*1024));
      if(pad){
        pad->fXld = data.x_ld[n];
        pad->fYld = data.x_lu[n];
        pad->fXlu = data.x_rd[n];
        pad->fYlu = data.x_ru[n];
        pad->fXrd = data.y_ld[n];
        pad->fYrd = data.y_lu[n];
        pad->fXru = data.y_rd[n];
        pad->fYru = data.y_ru[n];
        pPar->pads[m].setFrame(pPar->getFrame(m));
        //Calculate pad flag (0,1,2)  
        HShowerFrame* phFrame = pPar->pads[m].getFrame();
        if ((!phFrame->isOut(pad->fXld, pad->fYld)) &&
            (!phFrame->isOut(pad->fXlu, pad->fYlu)) &&
            (!phFrame->isOut(pad->fXru, pad->fYru)) &&
            (!phFrame  ->isOut(pad->fXrd, pad->fYrd))) {
          pad->setPadFlag(1);
        } else if (!phFrame->isOut(pad->fXld, pad->fYld) ||
                   !phFrame->isOut(pad->fXlu, pad->fYlu) ||
                   !phFrame->isOut(pad->fXru, pad->fYru) ||
                   !phFrame->isOut(pad->fXrd, pad->fYrd)) {
          pad->setPadFlag(2);
        } else {
          pad->setPadFlag(0);
        }

        pad->setLinkedNr(data.pad_flag[n]);
        if (pad->getLinkedNr()) {
          if (pad->linkPad) delete [] pad->linkPad;
          pad->linkPad = new HShowerPad*[pad->getLinkedNr()];
          for (Int_t k=0; k<pad->getLinkedNr(); k++) {
            l = data.linked_to[n];
            pad->linkPad[k] = pPar->pads[m].getPad(l);
          }
        }
      }
    }
  }
  EXEC SQL CLOSE pad_cur;
  EXEC SQL SELECT id,wire_id,wire_coord,distance,module_type_id
           INTO :wire
           FROM shower_ana.shw_wire
           ORDER BY id;
  HShowerWire* pWire;
  Int_t nWires = sqlca.sqlerrd[2];
  pPar->wires[0].reset();
  pPar->wires[1].reset();
  pPar->wires[2].reset();

  for(Int_t w=0;w<nWires;w++){
    pPar->wires[wire.module_type_id[w]].setModuleID(wire.module_type_id[w]);
    pWire = new HShowerWire;
    pWire->setNrWire(wire.wire_id[w]);
    pWire->setYWire(wire.wire_coord[w]);
    pPar->wires[wire.module_type_id[w]].setDistWire(wire.distance[w]);
    pPar->wires[wire.module_type_id[w]].addWire(pWire);
  }
  return kTRUE;
}                  

*/

 hshowerparora2io.pc.cc:1
 hshowerparora2io.pc.cc:2
 hshowerparora2io.pc.cc:3
 hshowerparora2io.pc.cc:4
 hshowerparora2io.pc.cc:5
 hshowerparora2io.pc.cc:6
 hshowerparora2io.pc.cc:7
 hshowerparora2io.pc.cc:8
 hshowerparora2io.pc.cc:9
 hshowerparora2io.pc.cc:10
 hshowerparora2io.pc.cc:11
 hshowerparora2io.pc.cc:12
 hshowerparora2io.pc.cc:13
 hshowerparora2io.pc.cc:14
 hshowerparora2io.pc.cc:15
 hshowerparora2io.pc.cc:16
 hshowerparora2io.pc.cc:17
 hshowerparora2io.pc.cc:18
 hshowerparora2io.pc.cc:19
 hshowerparora2io.pc.cc:20
 hshowerparora2io.pc.cc:21
 hshowerparora2io.pc.cc:22
 hshowerparora2io.pc.cc:23
 hshowerparora2io.pc.cc:24
 hshowerparora2io.pc.cc:25
 hshowerparora2io.pc.cc:26
 hshowerparora2io.pc.cc:27
 hshowerparora2io.pc.cc:28
 hshowerparora2io.pc.cc:29
 hshowerparora2io.pc.cc:30
 hshowerparora2io.pc.cc:31
 hshowerparora2io.pc.cc:32
 hshowerparora2io.pc.cc:33
 hshowerparora2io.pc.cc:34
 hshowerparora2io.pc.cc:35
 hshowerparora2io.pc.cc:36
 hshowerparora2io.pc.cc:37
 hshowerparora2io.pc.cc:38
 hshowerparora2io.pc.cc:39
 hshowerparora2io.pc.cc:40
 hshowerparora2io.pc.cc:41
 hshowerparora2io.pc.cc:42
 hshowerparora2io.pc.cc:43
 hshowerparora2io.pc.cc:44
 hshowerparora2io.pc.cc:45
 hshowerparora2io.pc.cc:46
 hshowerparora2io.pc.cc:47
 hshowerparora2io.pc.cc:48
 hshowerparora2io.pc.cc:49
 hshowerparora2io.pc.cc:50
 hshowerparora2io.pc.cc:51
 hshowerparora2io.pc.cc:52
 hshowerparora2io.pc.cc:53
 hshowerparora2io.pc.cc:54
 hshowerparora2io.pc.cc:55
 hshowerparora2io.pc.cc:56
 hshowerparora2io.pc.cc:57
 hshowerparora2io.pc.cc:58
 hshowerparora2io.pc.cc:59
 hshowerparora2io.pc.cc:60
 hshowerparora2io.pc.cc:61
 hshowerparora2io.pc.cc:62
 hshowerparora2io.pc.cc:63
 hshowerparora2io.pc.cc:64
 hshowerparora2io.pc.cc:65
 hshowerparora2io.pc.cc:66
 hshowerparora2io.pc.cc:67
 hshowerparora2io.pc.cc:68
 hshowerparora2io.pc.cc:69
 hshowerparora2io.pc.cc:70
 hshowerparora2io.pc.cc:71
 hshowerparora2io.pc.cc:72
 hshowerparora2io.pc.cc:73
 hshowerparora2io.pc.cc:74
 hshowerparora2io.pc.cc:75
 hshowerparora2io.pc.cc:76
 hshowerparora2io.pc.cc:77
 hshowerparora2io.pc.cc:78
 hshowerparora2io.pc.cc:79
 hshowerparora2io.pc.cc:80
 hshowerparora2io.pc.cc:81
 hshowerparora2io.pc.cc:82
 hshowerparora2io.pc.cc:83
 hshowerparora2io.pc.cc:84
 hshowerparora2io.pc.cc:85
 hshowerparora2io.pc.cc:86
 hshowerparora2io.pc.cc:87
 hshowerparora2io.pc.cc:88
 hshowerparora2io.pc.cc:89
 hshowerparora2io.pc.cc:90
 hshowerparora2io.pc.cc:91
 hshowerparora2io.pc.cc:92
 hshowerparora2io.pc.cc:93
 hshowerparora2io.pc.cc:94
 hshowerparora2io.pc.cc:95
 hshowerparora2io.pc.cc:96
 hshowerparora2io.pc.cc:97
 hshowerparora2io.pc.cc:98
 hshowerparora2io.pc.cc:99
 hshowerparora2io.pc.cc:100
 hshowerparora2io.pc.cc:101
 hshowerparora2io.pc.cc:102
 hshowerparora2io.pc.cc:103
 hshowerparora2io.pc.cc:104
 hshowerparora2io.pc.cc:105
 hshowerparora2io.pc.cc:106
 hshowerparora2io.pc.cc:107
 hshowerparora2io.pc.cc:108
 hshowerparora2io.pc.cc:109
 hshowerparora2io.pc.cc:110
 hshowerparora2io.pc.cc:111
 hshowerparora2io.pc.cc:112
 hshowerparora2io.pc.cc:113
 hshowerparora2io.pc.cc:114
 hshowerparora2io.pc.cc:115
 hshowerparora2io.pc.cc:116
 hshowerparora2io.pc.cc:117
 hshowerparora2io.pc.cc:118
 hshowerparora2io.pc.cc:119
 hshowerparora2io.pc.cc:120
 hshowerparora2io.pc.cc:121
 hshowerparora2io.pc.cc:122
 hshowerparora2io.pc.cc:123
 hshowerparora2io.pc.cc:124
 hshowerparora2io.pc.cc:125
 hshowerparora2io.pc.cc:126
 hshowerparora2io.pc.cc:127
 hshowerparora2io.pc.cc:128
 hshowerparora2io.pc.cc:129
 hshowerparora2io.pc.cc:130
 hshowerparora2io.pc.cc:131
 hshowerparora2io.pc.cc:132
 hshowerparora2io.pc.cc:133
 hshowerparora2io.pc.cc:134
 hshowerparora2io.pc.cc:135
 hshowerparora2io.pc.cc:136
 hshowerparora2io.pc.cc:137
 hshowerparora2io.pc.cc:138
 hshowerparora2io.pc.cc:139
 hshowerparora2io.pc.cc:140
 hshowerparora2io.pc.cc:141
 hshowerparora2io.pc.cc:142
 hshowerparora2io.pc.cc:143
 hshowerparora2io.pc.cc:144
 hshowerparora2io.pc.cc:145
 hshowerparora2io.pc.cc:146
 hshowerparora2io.pc.cc:147
 hshowerparora2io.pc.cc:148
 hshowerparora2io.pc.cc:149
 hshowerparora2io.pc.cc:150
 hshowerparora2io.pc.cc:151
 hshowerparora2io.pc.cc:152
 hshowerparora2io.pc.cc:153
 hshowerparora2io.pc.cc:154
 hshowerparora2io.pc.cc:155
 hshowerparora2io.pc.cc:156
 hshowerparora2io.pc.cc:157
 hshowerparora2io.pc.cc:158
 hshowerparora2io.pc.cc:159
 hshowerparora2io.pc.cc:160
 hshowerparora2io.pc.cc:161
 hshowerparora2io.pc.cc:162
 hshowerparora2io.pc.cc:163
 hshowerparora2io.pc.cc:164
 hshowerparora2io.pc.cc:165
 hshowerparora2io.pc.cc:166
 hshowerparora2io.pc.cc:167
 hshowerparora2io.pc.cc:168
 hshowerparora2io.pc.cc:169
 hshowerparora2io.pc.cc:170
 hshowerparora2io.pc.cc:171
 hshowerparora2io.pc.cc:172
 hshowerparora2io.pc.cc:173
 hshowerparora2io.pc.cc:174
 hshowerparora2io.pc.cc:175
 hshowerparora2io.pc.cc:176
 hshowerparora2io.pc.cc:177
 hshowerparora2io.pc.cc:178
 hshowerparora2io.pc.cc:179
 hshowerparora2io.pc.cc:180
 hshowerparora2io.pc.cc:181
 hshowerparora2io.pc.cc:182
 hshowerparora2io.pc.cc:183
 hshowerparora2io.pc.cc:184
 hshowerparora2io.pc.cc:185
 hshowerparora2io.pc.cc:186
 hshowerparora2io.pc.cc:187
 hshowerparora2io.pc.cc:188
 hshowerparora2io.pc.cc:189
 hshowerparora2io.pc.cc:190
 hshowerparora2io.pc.cc:191
 hshowerparora2io.pc.cc:192
 hshowerparora2io.pc.cc:193
 hshowerparora2io.pc.cc:194
 hshowerparora2io.pc.cc:195
 hshowerparora2io.pc.cc:196
 hshowerparora2io.pc.cc:197
 hshowerparora2io.pc.cc:198
 hshowerparora2io.pc.cc:199
 hshowerparora2io.pc.cc:200
 hshowerparora2io.pc.cc:201
 hshowerparora2io.pc.cc:202
 hshowerparora2io.pc.cc:203
 hshowerparora2io.pc.cc:204
 hshowerparora2io.pc.cc:205
 hshowerparora2io.pc.cc:206
 hshowerparora2io.pc.cc:207
 hshowerparora2io.pc.cc:208
 hshowerparora2io.pc.cc:209
 hshowerparora2io.pc.cc:210
 hshowerparora2io.pc.cc:211
 hshowerparora2io.pc.cc:212
 hshowerparora2io.pc.cc:213
 hshowerparora2io.pc.cc:214
 hshowerparora2io.pc.cc:215
 hshowerparora2io.pc.cc:216
 hshowerparora2io.pc.cc:217
 hshowerparora2io.pc.cc:218
 hshowerparora2io.pc.cc:219
 hshowerparora2io.pc.cc:220
 hshowerparora2io.pc.cc:221
 hshowerparora2io.pc.cc:222
 hshowerparora2io.pc.cc:223
 hshowerparora2io.pc.cc:224
 hshowerparora2io.pc.cc:225
 hshowerparora2io.pc.cc:226
 hshowerparora2io.pc.cc:227
 hshowerparora2io.pc.cc:228
 hshowerparora2io.pc.cc:229
 hshowerparora2io.pc.cc:230
 hshowerparora2io.pc.cc:231
 hshowerparora2io.pc.cc:232
 hshowerparora2io.pc.cc:233
 hshowerparora2io.pc.cc:234
 hshowerparora2io.pc.cc:235
 hshowerparora2io.pc.cc:236
 hshowerparora2io.pc.cc:237
 hshowerparora2io.pc.cc:238
 hshowerparora2io.pc.cc:239
 hshowerparora2io.pc.cc:240
 hshowerparora2io.pc.cc:241
 hshowerparora2io.pc.cc:242
 hshowerparora2io.pc.cc:243
 hshowerparora2io.pc.cc:244
 hshowerparora2io.pc.cc:245
 hshowerparora2io.pc.cc:246
 hshowerparora2io.pc.cc:247
 hshowerparora2io.pc.cc:248
 hshowerparora2io.pc.cc:249
 hshowerparora2io.pc.cc:250
 hshowerparora2io.pc.cc:251
 hshowerparora2io.pc.cc:252
 hshowerparora2io.pc.cc:253
 hshowerparora2io.pc.cc:254
 hshowerparora2io.pc.cc:255
 hshowerparora2io.pc.cc:256
 hshowerparora2io.pc.cc:257
 hshowerparora2io.pc.cc:258
 hshowerparora2io.pc.cc:259
 hshowerparora2io.pc.cc:260
 hshowerparora2io.pc.cc:261
 hshowerparora2io.pc.cc:262
 hshowerparora2io.pc.cc:263
 hshowerparora2io.pc.cc:264
 hshowerparora2io.pc.cc:265
 hshowerparora2io.pc.cc:266
 hshowerparora2io.pc.cc:267
 hshowerparora2io.pc.cc:268
 hshowerparora2io.pc.cc:269
 hshowerparora2io.pc.cc:270
 hshowerparora2io.pc.cc:271
 hshowerparora2io.pc.cc:272
 hshowerparora2io.pc.cc:273
 hshowerparora2io.pc.cc:274
 hshowerparora2io.pc.cc:275
 hshowerparora2io.pc.cc:276
 hshowerparora2io.pc.cc:277
 hshowerparora2io.pc.cc:278
 hshowerparora2io.pc.cc:279
 hshowerparora2io.pc.cc:280
 hshowerparora2io.pc.cc:281
 hshowerparora2io.pc.cc:282
 hshowerparora2io.pc.cc:283
 hshowerparora2io.pc.cc:284
 hshowerparora2io.pc.cc:285
 hshowerparora2io.pc.cc:286
 hshowerparora2io.pc.cc:287
 hshowerparora2io.pc.cc:288
 hshowerparora2io.pc.cc:289
 hshowerparora2io.pc.cc:290
 hshowerparora2io.pc.cc:291
 hshowerparora2io.pc.cc:292
 hshowerparora2io.pc.cc:293
 hshowerparora2io.pc.cc:294
 hshowerparora2io.pc.cc:295
 hshowerparora2io.pc.cc:296
 hshowerparora2io.pc.cc:297
 hshowerparora2io.pc.cc:298
 hshowerparora2io.pc.cc:299
 hshowerparora2io.pc.cc:300
 hshowerparora2io.pc.cc:301
 hshowerparora2io.pc.cc:302
 hshowerparora2io.pc.cc:303
 hshowerparora2io.pc.cc:304
 hshowerparora2io.pc.cc:305
 hshowerparora2io.pc.cc:306
 hshowerparora2io.pc.cc:307
 hshowerparora2io.pc.cc:308
 hshowerparora2io.pc.cc:309
 hshowerparora2io.pc.cc:310
 hshowerparora2io.pc.cc:311
 hshowerparora2io.pc.cc:312
 hshowerparora2io.pc.cc:313
 hshowerparora2io.pc.cc:314
 hshowerparora2io.pc.cc:315
 hshowerparora2io.pc.cc:316
 hshowerparora2io.pc.cc:317
 hshowerparora2io.pc.cc:318
 hshowerparora2io.pc.cc:319
 hshowerparora2io.pc.cc:320
 hshowerparora2io.pc.cc:321
 hshowerparora2io.pc.cc:322
 hshowerparora2io.pc.cc:323
 hshowerparora2io.pc.cc:324
 hshowerparora2io.pc.cc:325
 hshowerparora2io.pc.cc:326
 hshowerparora2io.pc.cc:327
 hshowerparora2io.pc.cc:328
 hshowerparora2io.pc.cc:329
 hshowerparora2io.pc.cc:330
 hshowerparora2io.pc.cc:331
 hshowerparora2io.pc.cc:332
 hshowerparora2io.pc.cc:333
 hshowerparora2io.pc.cc:334
 hshowerparora2io.pc.cc:335
 hshowerparora2io.pc.cc:336
 hshowerparora2io.pc.cc:337
 hshowerparora2io.pc.cc:338
 hshowerparora2io.pc.cc:339
 hshowerparora2io.pc.cc:340
 hshowerparora2io.pc.cc:341
 hshowerparora2io.pc.cc:342
 hshowerparora2io.pc.cc:343
 hshowerparora2io.pc.cc:344
 hshowerparora2io.pc.cc:345
 hshowerparora2io.pc.cc:346
 hshowerparora2io.pc.cc:347
 hshowerparora2io.pc.cc:348
 hshowerparora2io.pc.cc:349
 hshowerparora2io.pc.cc:350
 hshowerparora2io.pc.cc:351
 hshowerparora2io.pc.cc:352
 hshowerparora2io.pc.cc:353
 hshowerparora2io.pc.cc:354
 hshowerparora2io.pc.cc:355
 hshowerparora2io.pc.cc:356
 hshowerparora2io.pc.cc:357
 hshowerparora2io.pc.cc:358
 hshowerparora2io.pc.cc:359
 hshowerparora2io.pc.cc:360
 hshowerparora2io.pc.cc:361
 hshowerparora2io.pc.cc:362
 hshowerparora2io.pc.cc:363
 hshowerparora2io.pc.cc:364
 hshowerparora2io.pc.cc:365
 hshowerparora2io.pc.cc:366
 hshowerparora2io.pc.cc:367
 hshowerparora2io.pc.cc:368
 hshowerparora2io.pc.cc:369
 hshowerparora2io.pc.cc:370
 hshowerparora2io.pc.cc:371
 hshowerparora2io.pc.cc:372
 hshowerparora2io.pc.cc:373
 hshowerparora2io.pc.cc:374
 hshowerparora2io.pc.cc:375
 hshowerparora2io.pc.cc:376
 hshowerparora2io.pc.cc:377
 hshowerparora2io.pc.cc:378
 hshowerparora2io.pc.cc:379
 hshowerparora2io.pc.cc:380
 hshowerparora2io.pc.cc:381
 hshowerparora2io.pc.cc:382
 hshowerparora2io.pc.cc:383
 hshowerparora2io.pc.cc:384
 hshowerparora2io.pc.cc:385
 hshowerparora2io.pc.cc:386
 hshowerparora2io.pc.cc:387
 hshowerparora2io.pc.cc:388
 hshowerparora2io.pc.cc:389
 hshowerparora2io.pc.cc:390
 hshowerparora2io.pc.cc:391
 hshowerparora2io.pc.cc:392
 hshowerparora2io.pc.cc:393
 hshowerparora2io.pc.cc:394
 hshowerparora2io.pc.cc:395
 hshowerparora2io.pc.cc:396
 hshowerparora2io.pc.cc:397
 hshowerparora2io.pc.cc:398
 hshowerparora2io.pc.cc:399
 hshowerparora2io.pc.cc:400
 hshowerparora2io.pc.cc:401
 hshowerparora2io.pc.cc:402
 hshowerparora2io.pc.cc:403
 hshowerparora2io.pc.cc:404
 hshowerparora2io.pc.cc:405
 hshowerparora2io.pc.cc:406
 hshowerparora2io.pc.cc:407
 hshowerparora2io.pc.cc:408
 hshowerparora2io.pc.cc:409
 hshowerparora2io.pc.cc:410
 hshowerparora2io.pc.cc:411
 hshowerparora2io.pc.cc:412
 hshowerparora2io.pc.cc:413
 hshowerparora2io.pc.cc:414
 hshowerparora2io.pc.cc:415
 hshowerparora2io.pc.cc:416
 hshowerparora2io.pc.cc:417
 hshowerparora2io.pc.cc:418
 hshowerparora2io.pc.cc:419
 hshowerparora2io.pc.cc:420
 hshowerparora2io.pc.cc:421
 hshowerparora2io.pc.cc:422
 hshowerparora2io.pc.cc:423
 hshowerparora2io.pc.cc:424
 hshowerparora2io.pc.cc:425
 hshowerparora2io.pc.cc:426
 hshowerparora2io.pc.cc:427
 hshowerparora2io.pc.cc:428
 hshowerparora2io.pc.cc:429
 hshowerparora2io.pc.cc:430
 hshowerparora2io.pc.cc:431
 hshowerparora2io.pc.cc:432
 hshowerparora2io.pc.cc:433
 hshowerparora2io.pc.cc:434
 hshowerparora2io.pc.cc:435
 hshowerparora2io.pc.cc:436
 hshowerparora2io.pc.cc:437
 hshowerparora2io.pc.cc:438
 hshowerparora2io.pc.cc:439
 hshowerparora2io.pc.cc:440
 hshowerparora2io.pc.cc:441
 hshowerparora2io.pc.cc:442
 hshowerparora2io.pc.cc:443
 hshowerparora2io.pc.cc:444
 hshowerparora2io.pc.cc:445
 hshowerparora2io.pc.cc:446
 hshowerparora2io.pc.cc:447
 hshowerparora2io.pc.cc:448
 hshowerparora2io.pc.cc:449
 hshowerparora2io.pc.cc:450
 hshowerparora2io.pc.cc:451
 hshowerparora2io.pc.cc:452
 hshowerparora2io.pc.cc:453
 hshowerparora2io.pc.cc:454
 hshowerparora2io.pc.cc:455
 hshowerparora2io.pc.cc:456
 hshowerparora2io.pc.cc:457
 hshowerparora2io.pc.cc:458
 hshowerparora2io.pc.cc:459
 hshowerparora2io.pc.cc:460
 hshowerparora2io.pc.cc:461
 hshowerparora2io.pc.cc:462
 hshowerparora2io.pc.cc:463
 hshowerparora2io.pc.cc:464
 hshowerparora2io.pc.cc:465
 hshowerparora2io.pc.cc:466
 hshowerparora2io.pc.cc:467
 hshowerparora2io.pc.cc:468
 hshowerparora2io.pc.cc:469
 hshowerparora2io.pc.cc:470
 hshowerparora2io.pc.cc:471
 hshowerparora2io.pc.cc:472
 hshowerparora2io.pc.cc:473
 hshowerparora2io.pc.cc:474
 hshowerparora2io.pc.cc:475
 hshowerparora2io.pc.cc:476
 hshowerparora2io.pc.cc:477
 hshowerparora2io.pc.cc:478
 hshowerparora2io.pc.cc:479
 hshowerparora2io.pc.cc:480
 hshowerparora2io.pc.cc:481
 hshowerparora2io.pc.cc:482
 hshowerparora2io.pc.cc:483
 hshowerparora2io.pc.cc:484
 hshowerparora2io.pc.cc:485
 hshowerparora2io.pc.cc:486
 hshowerparora2io.pc.cc:487
 hshowerparora2io.pc.cc:488
 hshowerparora2io.pc.cc:489
 hshowerparora2io.pc.cc:490
 hshowerparora2io.pc.cc:491
 hshowerparora2io.pc.cc:492
 hshowerparora2io.pc.cc:493
 hshowerparora2io.pc.cc:494
 hshowerparora2io.pc.cc:495
 hshowerparora2io.pc.cc:496
 hshowerparora2io.pc.cc:497
 hshowerparora2io.pc.cc:498
 hshowerparora2io.pc.cc:499
 hshowerparora2io.pc.cc:500
 hshowerparora2io.pc.cc:501
 hshowerparora2io.pc.cc:502
 hshowerparora2io.pc.cc:503
 hshowerparora2io.pc.cc:504
 hshowerparora2io.pc.cc:505
 hshowerparora2io.pc.cc:506
 hshowerparora2io.pc.cc:507
 hshowerparora2io.pc.cc:508
 hshowerparora2io.pc.cc:509
 hshowerparora2io.pc.cc:510
 hshowerparora2io.pc.cc:511
 hshowerparora2io.pc.cc:512
 hshowerparora2io.pc.cc:513
 hshowerparora2io.pc.cc:514
 hshowerparora2io.pc.cc:515
 hshowerparora2io.pc.cc:516
 hshowerparora2io.pc.cc:517
 hshowerparora2io.pc.cc:518
 hshowerparora2io.pc.cc:519
 hshowerparora2io.pc.cc:520
 hshowerparora2io.pc.cc:521
 hshowerparora2io.pc.cc:522
 hshowerparora2io.pc.cc:523
 hshowerparora2io.pc.cc:524
 hshowerparora2io.pc.cc:525
 hshowerparora2io.pc.cc:526
 hshowerparora2io.pc.cc:527
 hshowerparora2io.pc.cc:528
 hshowerparora2io.pc.cc:529
 hshowerparora2io.pc.cc:530
 hshowerparora2io.pc.cc:531
 hshowerparora2io.pc.cc:532
 hshowerparora2io.pc.cc:533
 hshowerparora2io.pc.cc:534
 hshowerparora2io.pc.cc:535
 hshowerparora2io.pc.cc:536
 hshowerparora2io.pc.cc:537
 hshowerparora2io.pc.cc:538
 hshowerparora2io.pc.cc:539
 hshowerparora2io.pc.cc:540
 hshowerparora2io.pc.cc:541
 hshowerparora2io.pc.cc:542
 hshowerparora2io.pc.cc:543
 hshowerparora2io.pc.cc:544
 hshowerparora2io.pc.cc:545
 hshowerparora2io.pc.cc:546
 hshowerparora2io.pc.cc:547
 hshowerparora2io.pc.cc:548
 hshowerparora2io.pc.cc:549
 hshowerparora2io.pc.cc:550
 hshowerparora2io.pc.cc:551
 hshowerparora2io.pc.cc:552
 hshowerparora2io.pc.cc:553
 hshowerparora2io.pc.cc:554
 hshowerparora2io.pc.cc:555
 hshowerparora2io.pc.cc:556
 hshowerparora2io.pc.cc:557
 hshowerparora2io.pc.cc:558
 hshowerparora2io.pc.cc:559
 hshowerparora2io.pc.cc:560
 hshowerparora2io.pc.cc:561
 hshowerparora2io.pc.cc:562
 hshowerparora2io.pc.cc:563
 hshowerparora2io.pc.cc:564
 hshowerparora2io.pc.cc:565
 hshowerparora2io.pc.cc:566
 hshowerparora2io.pc.cc:567
 hshowerparora2io.pc.cc:568
 hshowerparora2io.pc.cc:569
 hshowerparora2io.pc.cc:570
 hshowerparora2io.pc.cc:571
 hshowerparora2io.pc.cc:572
 hshowerparora2io.pc.cc:573
 hshowerparora2io.pc.cc:574
 hshowerparora2io.pc.cc:575
 hshowerparora2io.pc.cc:576
 hshowerparora2io.pc.cc:577
 hshowerparora2io.pc.cc:578
 hshowerparora2io.pc.cc:579
 hshowerparora2io.pc.cc:580
 hshowerparora2io.pc.cc:581
 hshowerparora2io.pc.cc:582
 hshowerparora2io.pc.cc:583
 hshowerparora2io.pc.cc:584
 hshowerparora2io.pc.cc:585
 hshowerparora2io.pc.cc:586
 hshowerparora2io.pc.cc:587
 hshowerparora2io.pc.cc:588
 hshowerparora2io.pc.cc:589
 hshowerparora2io.pc.cc:590
 hshowerparora2io.pc.cc:591
 hshowerparora2io.pc.cc:592
 hshowerparora2io.pc.cc:593
 hshowerparora2io.pc.cc:594
 hshowerparora2io.pc.cc:595
 hshowerparora2io.pc.cc:596
 hshowerparora2io.pc.cc:597
 hshowerparora2io.pc.cc:598
 hshowerparora2io.pc.cc:599
 hshowerparora2io.pc.cc:600
 hshowerparora2io.pc.cc:601
 hshowerparora2io.pc.cc:602
 hshowerparora2io.pc.cc:603
 hshowerparora2io.pc.cc:604
 hshowerparora2io.pc.cc:605
 hshowerparora2io.pc.cc:606
 hshowerparora2io.pc.cc:607
 hshowerparora2io.pc.cc:608
 hshowerparora2io.pc.cc:609
 hshowerparora2io.pc.cc:610
 hshowerparora2io.pc.cc:611
 hshowerparora2io.pc.cc:612
 hshowerparora2io.pc.cc:613
 hshowerparora2io.pc.cc:614
 hshowerparora2io.pc.cc:615
 hshowerparora2io.pc.cc:616
 hshowerparora2io.pc.cc:617
 hshowerparora2io.pc.cc:618
 hshowerparora2io.pc.cc:619
 hshowerparora2io.pc.cc:620
 hshowerparora2io.pc.cc:621
 hshowerparora2io.pc.cc:622
 hshowerparora2io.pc.cc:623
 hshowerparora2io.pc.cc:624
 hshowerparora2io.pc.cc:625
 hshowerparora2io.pc.cc:626
 hshowerparora2io.pc.cc:627
 hshowerparora2io.pc.cc:628
 hshowerparora2io.pc.cc:629
 hshowerparora2io.pc.cc:630
 hshowerparora2io.pc.cc:631
 hshowerparora2io.pc.cc:632
 hshowerparora2io.pc.cc:633
 hshowerparora2io.pc.cc:634
 hshowerparora2io.pc.cc:635
 hshowerparora2io.pc.cc:636
 hshowerparora2io.pc.cc:637
 hshowerparora2io.pc.cc:638
 hshowerparora2io.pc.cc:639
 hshowerparora2io.pc.cc:640
 hshowerparora2io.pc.cc:641
 hshowerparora2io.pc.cc:642
 hshowerparora2io.pc.cc:643
 hshowerparora2io.pc.cc:644
 hshowerparora2io.pc.cc:645
 hshowerparora2io.pc.cc:646
 hshowerparora2io.pc.cc:647
 hshowerparora2io.pc.cc:648
 hshowerparora2io.pc.cc:649
 hshowerparora2io.pc.cc:650
 hshowerparora2io.pc.cc:651
 hshowerparora2io.pc.cc:652
 hshowerparora2io.pc.cc:653
 hshowerparora2io.pc.cc:654
 hshowerparora2io.pc.cc:655
 hshowerparora2io.pc.cc:656
 hshowerparora2io.pc.cc:657
 hshowerparora2io.pc.cc:658
 hshowerparora2io.pc.cc:659
 hshowerparora2io.pc.cc:660
 hshowerparora2io.pc.cc:661
 hshowerparora2io.pc.cc:662
 hshowerparora2io.pc.cc:663
 hshowerparora2io.pc.cc:664
 hshowerparora2io.pc.cc:665
 hshowerparora2io.pc.cc:666
 hshowerparora2io.pc.cc:667
 hshowerparora2io.pc.cc:668
 hshowerparora2io.pc.cc:669
 hshowerparora2io.pc.cc:670
 hshowerparora2io.pc.cc:671
 hshowerparora2io.pc.cc:672
 hshowerparora2io.pc.cc:673
 hshowerparora2io.pc.cc:674
 hshowerparora2io.pc.cc:675
 hshowerparora2io.pc.cc:676
 hshowerparora2io.pc.cc:677
 hshowerparora2io.pc.cc:678
 hshowerparora2io.pc.cc:679
 hshowerparora2io.pc.cc:680
 hshowerparora2io.pc.cc:681
 hshowerparora2io.pc.cc:682
 hshowerparora2io.pc.cc:683
 hshowerparora2io.pc.cc:684
 hshowerparora2io.pc.cc:685
 hshowerparora2io.pc.cc:686
 hshowerparora2io.pc.cc:687
 hshowerparora2io.pc.cc:688
 hshowerparora2io.pc.cc:689
 hshowerparora2io.pc.cc:690
 hshowerparora2io.pc.cc:691
 hshowerparora2io.pc.cc:692
 hshowerparora2io.pc.cc:693
 hshowerparora2io.pc.cc:694
 hshowerparora2io.pc.cc:695
 hshowerparora2io.pc.cc:696
 hshowerparora2io.pc.cc:697
 hshowerparora2io.pc.cc:698
 hshowerparora2io.pc.cc:699
 hshowerparora2io.pc.cc:700
 hshowerparora2io.pc.cc:701
 hshowerparora2io.pc.cc:702
 hshowerparora2io.pc.cc:703
 hshowerparora2io.pc.cc:704
 hshowerparora2io.pc.cc:705
 hshowerparora2io.pc.cc:706
 hshowerparora2io.pc.cc:707
 hshowerparora2io.pc.cc:708
 hshowerparora2io.pc.cc:709
 hshowerparora2io.pc.cc:710
 hshowerparora2io.pc.cc:711
 hshowerparora2io.pc.cc:712
 hshowerparora2io.pc.cc:713
 hshowerparora2io.pc.cc:714
 hshowerparora2io.pc.cc:715
 hshowerparora2io.pc.cc:716
 hshowerparora2io.pc.cc:717
 hshowerparora2io.pc.cc:718
 hshowerparora2io.pc.cc:719
 hshowerparora2io.pc.cc:720
 hshowerparora2io.pc.cc:721
 hshowerparora2io.pc.cc:722
 hshowerparora2io.pc.cc:723
 hshowerparora2io.pc.cc:724
 hshowerparora2io.pc.cc:725
 hshowerparora2io.pc.cc:726
 hshowerparora2io.pc.cc:727
 hshowerparora2io.pc.cc:728
 hshowerparora2io.pc.cc:729
 hshowerparora2io.pc.cc:730
 hshowerparora2io.pc.cc:731
 hshowerparora2io.pc.cc:732
 hshowerparora2io.pc.cc:733
 hshowerparora2io.pc.cc:734
 hshowerparora2io.pc.cc:735
 hshowerparora2io.pc.cc:736
 hshowerparora2io.pc.cc:737
 hshowerparora2io.pc.cc:738
 hshowerparora2io.pc.cc:739
 hshowerparora2io.pc.cc:740
 hshowerparora2io.pc.cc:741
 hshowerparora2io.pc.cc:742
 hshowerparora2io.pc.cc:743
 hshowerparora2io.pc.cc:744
 hshowerparora2io.pc.cc:745
 hshowerparora2io.pc.cc:746
 hshowerparora2io.pc.cc:747
 hshowerparora2io.pc.cc:748
 hshowerparora2io.pc.cc:749
 hshowerparora2io.pc.cc:750
 hshowerparora2io.pc.cc:751
 hshowerparora2io.pc.cc:752
 hshowerparora2io.pc.cc:753
 hshowerparora2io.pc.cc:754
 hshowerparora2io.pc.cc:755
 hshowerparora2io.pc.cc:756
 hshowerparora2io.pc.cc:757
 hshowerparora2io.pc.cc:758
 hshowerparora2io.pc.cc:759
 hshowerparora2io.pc.cc:760
 hshowerparora2io.pc.cc:761
 hshowerparora2io.pc.cc:762
 hshowerparora2io.pc.cc:763
 hshowerparora2io.pc.cc:764
 hshowerparora2io.pc.cc:765
 hshowerparora2io.pc.cc:766
 hshowerparora2io.pc.cc:767
 hshowerparora2io.pc.cc:768
 hshowerparora2io.pc.cc:769
 hshowerparora2io.pc.cc:770
 hshowerparora2io.pc.cc:771
 hshowerparora2io.pc.cc:772
 hshowerparora2io.pc.cc:773
 hshowerparora2io.pc.cc:774
 hshowerparora2io.pc.cc:775
 hshowerparora2io.pc.cc:776
 hshowerparora2io.pc.cc:777
 hshowerparora2io.pc.cc:778
 hshowerparora2io.pc.cc:779
 hshowerparora2io.pc.cc:780
 hshowerparora2io.pc.cc:781
 hshowerparora2io.pc.cc:782
 hshowerparora2io.pc.cc:783
 hshowerparora2io.pc.cc:784
 hshowerparora2io.pc.cc:785
 hshowerparora2io.pc.cc:786
 hshowerparora2io.pc.cc:787
 hshowerparora2io.pc.cc:788
 hshowerparora2io.pc.cc:789
 hshowerparora2io.pc.cc:790
 hshowerparora2io.pc.cc:791
 hshowerparora2io.pc.cc:792
 hshowerparora2io.pc.cc:793
 hshowerparora2io.pc.cc:794
 hshowerparora2io.pc.cc:795
 hshowerparora2io.pc.cc:796
 hshowerparora2io.pc.cc:797
 hshowerparora2io.pc.cc:798
 hshowerparora2io.pc.cc:799
 hshowerparora2io.pc.cc:800
 hshowerparora2io.pc.cc:801
 hshowerparora2io.pc.cc:802
 hshowerparora2io.pc.cc:803
 hshowerparora2io.pc.cc:804
 hshowerparora2io.pc.cc:805
 hshowerparora2io.pc.cc:806
 hshowerparora2io.pc.cc:807
 hshowerparora2io.pc.cc:808
 hshowerparora2io.pc.cc:809
 hshowerparora2io.pc.cc:810
 hshowerparora2io.pc.cc:811
 hshowerparora2io.pc.cc:812
 hshowerparora2io.pc.cc:813
 hshowerparora2io.pc.cc:814
 hshowerparora2io.pc.cc:815
 hshowerparora2io.pc.cc:816
 hshowerparora2io.pc.cc:817
 hshowerparora2io.pc.cc:818
 hshowerparora2io.pc.cc:819
 hshowerparora2io.pc.cc:820
 hshowerparora2io.pc.cc:821
 hshowerparora2io.pc.cc:822
 hshowerparora2io.pc.cc:823
 hshowerparora2io.pc.cc:824
 hshowerparora2io.pc.cc:825
 hshowerparora2io.pc.cc:826
 hshowerparora2io.pc.cc:827
 hshowerparora2io.pc.cc:828
 hshowerparora2io.pc.cc:829
 hshowerparora2io.pc.cc:830
 hshowerparora2io.pc.cc:831
 hshowerparora2io.pc.cc:832
 hshowerparora2io.pc.cc:833
 hshowerparora2io.pc.cc:834
 hshowerparora2io.pc.cc:835
 hshowerparora2io.pc.cc:836
 hshowerparora2io.pc.cc:837
 hshowerparora2io.pc.cc:838
 hshowerparora2io.pc.cc:839
 hshowerparora2io.pc.cc:840
 hshowerparora2io.pc.cc:841
 hshowerparora2io.pc.cc:842
 hshowerparora2io.pc.cc:843
 hshowerparora2io.pc.cc:844
 hshowerparora2io.pc.cc:845
 hshowerparora2io.pc.cc:846
 hshowerparora2io.pc.cc:847
 hshowerparora2io.pc.cc:848
 hshowerparora2io.pc.cc:849
 hshowerparora2io.pc.cc:850
 hshowerparora2io.pc.cc:851
 hshowerparora2io.pc.cc:852
 hshowerparora2io.pc.cc:853
 hshowerparora2io.pc.cc:854
 hshowerparora2io.pc.cc:855
 hshowerparora2io.pc.cc:856
 hshowerparora2io.pc.cc:857
 hshowerparora2io.pc.cc:858
 hshowerparora2io.pc.cc:859
 hshowerparora2io.pc.cc:860
 hshowerparora2io.pc.cc:861
 hshowerparora2io.pc.cc:862
 hshowerparora2io.pc.cc:863
 hshowerparora2io.pc.cc:864
 hshowerparora2io.pc.cc:865
 hshowerparora2io.pc.cc:866
 hshowerparora2io.pc.cc:867
 hshowerparora2io.pc.cc:868
 hshowerparora2io.pc.cc:869
 hshowerparora2io.pc.cc:870
 hshowerparora2io.pc.cc:871
 hshowerparora2io.pc.cc:872
 hshowerparora2io.pc.cc:873
 hshowerparora2io.pc.cc:874
 hshowerparora2io.pc.cc:875
 hshowerparora2io.pc.cc:876
 hshowerparora2io.pc.cc:877
 hshowerparora2io.pc.cc:878
 hshowerparora2io.pc.cc:879
 hshowerparora2io.pc.cc:880
 hshowerparora2io.pc.cc:881
 hshowerparora2io.pc.cc:882
 hshowerparora2io.pc.cc:883
 hshowerparora2io.pc.cc:884
 hshowerparora2io.pc.cc:885
 hshowerparora2io.pc.cc:886
 hshowerparora2io.pc.cc:887
 hshowerparora2io.pc.cc:888
 hshowerparora2io.pc.cc:889
 hshowerparora2io.pc.cc:890
 hshowerparora2io.pc.cc:891
 hshowerparora2io.pc.cc:892
 hshowerparora2io.pc.cc:893
 hshowerparora2io.pc.cc:894
 hshowerparora2io.pc.cc:895
 hshowerparora2io.pc.cc:896
 hshowerparora2io.pc.cc:897
 hshowerparora2io.pc.cc:898
 hshowerparora2io.pc.cc:899
 hshowerparora2io.pc.cc:900
 hshowerparora2io.pc.cc:901
 hshowerparora2io.pc.cc:902
 hshowerparora2io.pc.cc:903
 hshowerparora2io.pc.cc:904
 hshowerparora2io.pc.cc:905
 hshowerparora2io.pc.cc:906
 hshowerparora2io.pc.cc:907
 hshowerparora2io.pc.cc:908
 hshowerparora2io.pc.cc:909
 hshowerparora2io.pc.cc:910
 hshowerparora2io.pc.cc:911
 hshowerparora2io.pc.cc:912
 hshowerparora2io.pc.cc:913
 hshowerparora2io.pc.cc:914
 hshowerparora2io.pc.cc:915
 hshowerparora2io.pc.cc:916
 hshowerparora2io.pc.cc:917
 hshowerparora2io.pc.cc:918
 hshowerparora2io.pc.cc:919
 hshowerparora2io.pc.cc:920
 hshowerparora2io.pc.cc:921
 hshowerparora2io.pc.cc:922
 hshowerparora2io.pc.cc:923
 hshowerparora2io.pc.cc:924
 hshowerparora2io.pc.cc:925
 hshowerparora2io.pc.cc:926
 hshowerparora2io.pc.cc:927
 hshowerparora2io.pc.cc:928
 hshowerparora2io.pc.cc:929
 hshowerparora2io.pc.cc:930
 hshowerparora2io.pc.cc:931
 hshowerparora2io.pc.cc:932
 hshowerparora2io.pc.cc:933
 hshowerparora2io.pc.cc:934
 hshowerparora2io.pc.cc:935
 hshowerparora2io.pc.cc:936
 hshowerparora2io.pc.cc:937
 hshowerparora2io.pc.cc:938
 hshowerparora2io.pc.cc:939
 hshowerparora2io.pc.cc:940
 hshowerparora2io.pc.cc:941
 hshowerparora2io.pc.cc:942
 hshowerparora2io.pc.cc:943
 hshowerparora2io.pc.cc:944
 hshowerparora2io.pc.cc:945
 hshowerparora2io.pc.cc:946
 hshowerparora2io.pc.cc:947
 hshowerparora2io.pc.cc:948
 hshowerparora2io.pc.cc:949
 hshowerparora2io.pc.cc:950
 hshowerparora2io.pc.cc:951
 hshowerparora2io.pc.cc:952
 hshowerparora2io.pc.cc:953
 hshowerparora2io.pc.cc:954
 hshowerparora2io.pc.cc:955
 hshowerparora2io.pc.cc:956
 hshowerparora2io.pc.cc:957
 hshowerparora2io.pc.cc:958
 hshowerparora2io.pc.cc:959
 hshowerparora2io.pc.cc:960
 hshowerparora2io.pc.cc:961
 hshowerparora2io.pc.cc:962
 hshowerparora2io.pc.cc:963
 hshowerparora2io.pc.cc:964
 hshowerparora2io.pc.cc:965
 hshowerparora2io.pc.cc:966
 hshowerparora2io.pc.cc:967
 hshowerparora2io.pc.cc:968
 hshowerparora2io.pc.cc:969
 hshowerparora2io.pc.cc:970
 hshowerparora2io.pc.cc:971
 hshowerparora2io.pc.cc:972
 hshowerparora2io.pc.cc:973
 hshowerparora2io.pc.cc:974
 hshowerparora2io.pc.cc:975
 hshowerparora2io.pc.cc:976
 hshowerparora2io.pc.cc:977
 hshowerparora2io.pc.cc:978
 hshowerparora2io.pc.cc:979
 hshowerparora2io.pc.cc:980
 hshowerparora2io.pc.cc:981
 hshowerparora2io.pc.cc:982
 hshowerparora2io.pc.cc:983
 hshowerparora2io.pc.cc:984
 hshowerparora2io.pc.cc:985
 hshowerparora2io.pc.cc:986
 hshowerparora2io.pc.cc:987
 hshowerparora2io.pc.cc:988
 hshowerparora2io.pc.cc:989
 hshowerparora2io.pc.cc:990
 hshowerparora2io.pc.cc:991
 hshowerparora2io.pc.cc:992
 hshowerparora2io.pc.cc:993
 hshowerparora2io.pc.cc:994
 hshowerparora2io.pc.cc:995
 hshowerparora2io.pc.cc:996
 hshowerparora2io.pc.cc:997
 hshowerparora2io.pc.cc:998
 hshowerparora2io.pc.cc:999
 hshowerparora2io.pc.cc:1000
 hshowerparora2io.pc.cc:1001
 hshowerparora2io.pc.cc:1002
 hshowerparora2io.pc.cc:1003
 hshowerparora2io.pc.cc:1004
 hshowerparora2io.pc.cc:1005
 hshowerparora2io.pc.cc:1006
 hshowerparora2io.pc.cc:1007
 hshowerparora2io.pc.cc:1008
 hshowerparora2io.pc.cc:1009
 hshowerparora2io.pc.cc:1010
 hshowerparora2io.pc.cc:1011
 hshowerparora2io.pc.cc:1012
 hshowerparora2io.pc.cc:1013
 hshowerparora2io.pc.cc:1014
 hshowerparora2io.pc.cc:1015
 hshowerparora2io.pc.cc:1016
 hshowerparora2io.pc.cc:1017
 hshowerparora2io.pc.cc:1018
 hshowerparora2io.pc.cc:1019
 hshowerparora2io.pc.cc:1020
 hshowerparora2io.pc.cc:1021
 hshowerparora2io.pc.cc:1022
 hshowerparora2io.pc.cc:1023
 hshowerparora2io.pc.cc:1024
 hshowerparora2io.pc.cc:1025
 hshowerparora2io.pc.cc:1026
 hshowerparora2io.pc.cc:1027
 hshowerparora2io.pc.cc:1028
 hshowerparora2io.pc.cc:1029
 hshowerparora2io.pc.cc:1030
 hshowerparora2io.pc.cc:1031
 hshowerparora2io.pc.cc:1032
 hshowerparora2io.pc.cc:1033
 hshowerparora2io.pc.cc:1034
 hshowerparora2io.pc.cc:1035
 hshowerparora2io.pc.cc:1036
 hshowerparora2io.pc.cc:1037
 hshowerparora2io.pc.cc:1038
 hshowerparora2io.pc.cc:1039
 hshowerparora2io.pc.cc:1040
 hshowerparora2io.pc.cc:1041
 hshowerparora2io.pc.cc:1042
 hshowerparora2io.pc.cc:1043
 hshowerparora2io.pc.cc:1044
 hshowerparora2io.pc.cc:1045
 hshowerparora2io.pc.cc:1046
 hshowerparora2io.pc.cc:1047
 hshowerparora2io.pc.cc:1048
 hshowerparora2io.pc.cc:1049
 hshowerparora2io.pc.cc:1050
 hshowerparora2io.pc.cc:1051
 hshowerparora2io.pc.cc:1052
 hshowerparora2io.pc.cc:1053
 hshowerparora2io.pc.cc:1054
 hshowerparora2io.pc.cc:1055
 hshowerparora2io.pc.cc:1056
 hshowerparora2io.pc.cc:1057
 hshowerparora2io.pc.cc:1058
 hshowerparora2io.pc.cc:1059
 hshowerparora2io.pc.cc:1060
 hshowerparora2io.pc.cc:1061
 hshowerparora2io.pc.cc:1062
 hshowerparora2io.pc.cc:1063
 hshowerparora2io.pc.cc:1064
 hshowerparora2io.pc.cc:1065
 hshowerparora2io.pc.cc:1066
 hshowerparora2io.pc.cc:1067
 hshowerparora2io.pc.cc:1068
 hshowerparora2io.pc.cc:1069
 hshowerparora2io.pc.cc:1070
 hshowerparora2io.pc.cc:1071
 hshowerparora2io.pc.cc:1072
 hshowerparora2io.pc.cc:1073
 hshowerparora2io.pc.cc:1074
 hshowerparora2io.pc.cc:1075
 hshowerparora2io.pc.cc:1076
 hshowerparora2io.pc.cc:1077
 hshowerparora2io.pc.cc:1078
 hshowerparora2io.pc.cc:1079
 hshowerparora2io.pc.cc:1080
 hshowerparora2io.pc.cc:1081
 hshowerparora2io.pc.cc:1082
 hshowerparora2io.pc.cc:1083
 hshowerparora2io.pc.cc:1084
 hshowerparora2io.pc.cc:1085
 hshowerparora2io.pc.cc:1086
 hshowerparora2io.pc.cc:1087
 hshowerparora2io.pc.cc:1088
 hshowerparora2io.pc.cc:1089
 hshowerparora2io.pc.cc:1090
 hshowerparora2io.pc.cc:1091
 hshowerparora2io.pc.cc:1092
 hshowerparora2io.pc.cc:1093
 hshowerparora2io.pc.cc:1094
 hshowerparora2io.pc.cc:1095
 hshowerparora2io.pc.cc:1096
 hshowerparora2io.pc.cc:1097
 hshowerparora2io.pc.cc:1098
 hshowerparora2io.pc.cc:1099
 hshowerparora2io.pc.cc:1100
 hshowerparora2io.pc.cc:1101
 hshowerparora2io.pc.cc:1102
 hshowerparora2io.pc.cc:1103
 hshowerparora2io.pc.cc:1104
 hshowerparora2io.pc.cc:1105
 hshowerparora2io.pc.cc:1106
 hshowerparora2io.pc.cc:1107
 hshowerparora2io.pc.cc:1108
 hshowerparora2io.pc.cc:1109
 hshowerparora2io.pc.cc:1110
 hshowerparora2io.pc.cc:1111
 hshowerparora2io.pc.cc:1112
 hshowerparora2io.pc.cc:1113
 hshowerparora2io.pc.cc:1114
 hshowerparora2io.pc.cc:1115
 hshowerparora2io.pc.cc:1116
 hshowerparora2io.pc.cc:1117
 hshowerparora2io.pc.cc:1118
 hshowerparora2io.pc.cc:1119
 hshowerparora2io.pc.cc:1120
 hshowerparora2io.pc.cc:1121
 hshowerparora2io.pc.cc:1122
 hshowerparora2io.pc.cc:1123
 hshowerparora2io.pc.cc:1124
 hshowerparora2io.pc.cc:1125
 hshowerparora2io.pc.cc:1126
 hshowerparora2io.pc.cc:1127
 hshowerparora2io.pc.cc:1128
 hshowerparora2io.pc.cc:1129
 hshowerparora2io.pc.cc:1130
 hshowerparora2io.pc.cc:1131
 hshowerparora2io.pc.cc:1132
 hshowerparora2io.pc.cc:1133
 hshowerparora2io.pc.cc:1134
 hshowerparora2io.pc.cc:1135
 hshowerparora2io.pc.cc:1136
 hshowerparora2io.pc.cc:1137
 hshowerparora2io.pc.cc:1138
 hshowerparora2io.pc.cc:1139
 hshowerparora2io.pc.cc:1140
 hshowerparora2io.pc.cc:1141
 hshowerparora2io.pc.cc:1142
 hshowerparora2io.pc.cc:1143
 hshowerparora2io.pc.cc:1144
 hshowerparora2io.pc.cc:1145
 hshowerparora2io.pc.cc:1146
 hshowerparora2io.pc.cc:1147
 hshowerparora2io.pc.cc:1148
 hshowerparora2io.pc.cc:1149
 hshowerparora2io.pc.cc:1150
 hshowerparora2io.pc.cc:1151
 hshowerparora2io.pc.cc:1152
 hshowerparora2io.pc.cc:1153
 hshowerparora2io.pc.cc:1154
 hshowerparora2io.pc.cc:1155
 hshowerparora2io.pc.cc:1156
 hshowerparora2io.pc.cc:1157
 hshowerparora2io.pc.cc:1158
 hshowerparora2io.pc.cc:1159
 hshowerparora2io.pc.cc:1160
 hshowerparora2io.pc.cc:1161
 hshowerparora2io.pc.cc:1162
 hshowerparora2io.pc.cc:1163
 hshowerparora2io.pc.cc:1164
 hshowerparora2io.pc.cc:1165
 hshowerparora2io.pc.cc:1166
 hshowerparora2io.pc.cc:1167
 hshowerparora2io.pc.cc:1168
 hshowerparora2io.pc.cc:1169
 hshowerparora2io.pc.cc:1170
 hshowerparora2io.pc.cc:1171
 hshowerparora2io.pc.cc:1172
 hshowerparora2io.pc.cc:1173
 hshowerparora2io.pc.cc:1174
 hshowerparora2io.pc.cc:1175
 hshowerparora2io.pc.cc:1176
 hshowerparora2io.pc.cc:1177
 hshowerparora2io.pc.cc:1178
 hshowerparora2io.pc.cc:1179
 hshowerparora2io.pc.cc:1180
 hshowerparora2io.pc.cc:1181
 hshowerparora2io.pc.cc:1182
 hshowerparora2io.pc.cc:1183
 hshowerparora2io.pc.cc:1184
 hshowerparora2io.pc.cc:1185
 hshowerparora2io.pc.cc:1186
 hshowerparora2io.pc.cc:1187
 hshowerparora2io.pc.cc:1188
 hshowerparora2io.pc.cc:1189
 hshowerparora2io.pc.cc:1190
 hshowerparora2io.pc.cc:1191
 hshowerparora2io.pc.cc:1192
 hshowerparora2io.pc.cc:1193
 hshowerparora2io.pc.cc:1194
 hshowerparora2io.pc.cc:1195
 hshowerparora2io.pc.cc:1196
 hshowerparora2io.pc.cc:1197
 hshowerparora2io.pc.cc:1198
 hshowerparora2io.pc.cc:1199
 hshowerparora2io.pc.cc:1200
 hshowerparora2io.pc.cc:1201
 hshowerparora2io.pc.cc:1202
 hshowerparora2io.pc.cc:1203
 hshowerparora2io.pc.cc:1204
 hshowerparora2io.pc.cc:1205
 hshowerparora2io.pc.cc:1206
 hshowerparora2io.pc.cc:1207
 hshowerparora2io.pc.cc:1208
 hshowerparora2io.pc.cc:1209
 hshowerparora2io.pc.cc:1210
 hshowerparora2io.pc.cc:1211
 hshowerparora2io.pc.cc:1212
 hshowerparora2io.pc.cc:1213
 hshowerparora2io.pc.cc:1214
 hshowerparora2io.pc.cc:1215
 hshowerparora2io.pc.cc:1216
 hshowerparora2io.pc.cc:1217
 hshowerparora2io.pc.cc:1218
 hshowerparora2io.pc.cc:1219
 hshowerparora2io.pc.cc:1220
 hshowerparora2io.pc.cc:1221
 hshowerparora2io.pc.cc:1222
 hshowerparora2io.pc.cc:1223
 hshowerparora2io.pc.cc:1224
 hshowerparora2io.pc.cc:1225
 hshowerparora2io.pc.cc:1226
 hshowerparora2io.pc.cc:1227
 hshowerparora2io.pc.cc:1228
 hshowerparora2io.pc.cc:1229
 hshowerparora2io.pc.cc:1230
 hshowerparora2io.pc.cc:1231
 hshowerparora2io.pc.cc:1232
 hshowerparora2io.pc.cc:1233
 hshowerparora2io.pc.cc:1234
 hshowerparora2io.pc.cc:1235
 hshowerparora2io.pc.cc:1236
 hshowerparora2io.pc.cc:1237
 hshowerparora2io.pc.cc:1238
 hshowerparora2io.pc.cc:1239
 hshowerparora2io.pc.cc:1240
 hshowerparora2io.pc.cc:1241
 hshowerparora2io.pc.cc:1242
 hshowerparora2io.pc.cc:1243
 hshowerparora2io.pc.cc:1244
 hshowerparora2io.pc.cc:1245
 hshowerparora2io.pc.cc:1246
 hshowerparora2io.pc.cc:1247
 hshowerparora2io.pc.cc:1248
 hshowerparora2io.pc.cc:1249
 hshowerparora2io.pc.cc:1250
 hshowerparora2io.pc.cc:1251
 hshowerparora2io.pc.cc:1252
 hshowerparora2io.pc.cc:1253
 hshowerparora2io.pc.cc:1254
 hshowerparora2io.pc.cc:1255
 hshowerparora2io.pc.cc:1256
 hshowerparora2io.pc.cc:1257
 hshowerparora2io.pc.cc:1258
 hshowerparora2io.pc.cc:1259
 hshowerparora2io.pc.cc:1260
 hshowerparora2io.pc.cc:1261
 hshowerparora2io.pc.cc:1262
 hshowerparora2io.pc.cc:1263
 hshowerparora2io.pc.cc:1264
 hshowerparora2io.pc.cc:1265
 hshowerparora2io.pc.cc:1266
 hshowerparora2io.pc.cc:1267
 hshowerparora2io.pc.cc:1268
 hshowerparora2io.pc.cc:1269
 hshowerparora2io.pc.cc:1270
 hshowerparora2io.pc.cc:1271
 hshowerparora2io.pc.cc:1272
 hshowerparora2io.pc.cc:1273
 hshowerparora2io.pc.cc:1274
 hshowerparora2io.pc.cc:1275
 hshowerparora2io.pc.cc:1276
 hshowerparora2io.pc.cc:1277
 hshowerparora2io.pc.cc:1278
 hshowerparora2io.pc.cc:1279
 hshowerparora2io.pc.cc:1280
 hshowerparora2io.pc.cc:1281
 hshowerparora2io.pc.cc:1282
 hshowerparora2io.pc.cc:1283
 hshowerparora2io.pc.cc:1284
 hshowerparora2io.pc.cc:1285
 hshowerparora2io.pc.cc:1286
 hshowerparora2io.pc.cc:1287
 hshowerparora2io.pc.cc:1288
 hshowerparora2io.pc.cc:1289
 hshowerparora2io.pc.cc:1290
 hshowerparora2io.pc.cc:1291
 hshowerparora2io.pc.cc:1292
 hshowerparora2io.pc.cc:1293
 hshowerparora2io.pc.cc:1294
 hshowerparora2io.pc.cc:1295
 hshowerparora2io.pc.cc:1296
 hshowerparora2io.pc.cc:1297
 hshowerparora2io.pc.cc:1298
 hshowerparora2io.pc.cc:1299
 hshowerparora2io.pc.cc:1300
 hshowerparora2io.pc.cc:1301