/*****************************************************************************/
/*									     */
/*  REGENERATE CYCLES							     */
/*  11/14/13 (dkc)							     */
/*									     */
/*  This C program regenerates cycles for the 3n+c sequence given entry      */
/*  points.  The number of even and odd elements in the extended sequences   */
/*  are counted.							     */
/*									     */
/*    "jump=0" indicates a no-jump attachment point                          */
/*    "jump=1" indicates a one-jump attachment point                         */
/*    "jump=2" indicates a multiple-jump attachment point                    */
/*    "jump=3" indicates a jumped-over attachment point                      */
/*									     */
/*  "delta" denotes the number of odd elements in the jump minus j where     */
/*  t=u(mod 2^j) (for one-jump or multiple-jump attachment points).  The     */
/*  domains of the cycles are also computed.				     */
/*									     */
/*****************************************************************************/
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include "ln.h"
#include "att1t.h"
#include "att2t.h"
#include "att3t.h"
#include "att4t.h"
#include "att5t.h"
#include "att6t.h"
#include "att7t.h"
#include "att8t.h"
#include "att9t.h"
#include "att10t.h"
#include "att11t.h"
#include "att12t.h"
#include "att13t.h"
#include "att14t.h"
#include "att15t.h"
extern char *malloc();
unsigned int euclid(unsigned int a, unsigned int b);
unsigned int halbhung(unsigned int l, unsigned int n, unsigned int *M,
		      unsigned int *N, unsigned int *sv, unsigned int *A,
		      unsigned int *B, unsigned int *C, unsigned int *D,
		      unsigned int *L, unsigned int *S, unsigned int m);
void add64(unsigned int *A, unsigned int *B);
void sub64(unsigned int *A, unsigned int *B);
void div64_32(unsigned int *A, unsigned int *B, unsigned int C);
unsigned int regen(unsigned int A, unsigned int B, unsigned int c,
		   unsigned char *cflag, unsigned int *sinp,
		   unsigned index, unsigned int z, unsigned int *range) {
unsigned int first,C[2],L[2],T[2],V[2],Z[2],flag;
flag=range[0];
Z[0]=0;
Z[1]=0;
C[0]=0;
C[1]=c;
T[0]=A;
T[1]=B;
V[0]=T[0];
V[1]=T[1];
//
// begin loop
//
aloop:
   first=0;
   while ((T[1]&3)==0) {
      T[1]=(T[1]>>2)|(T[0]<<30);
      T[0]=(int)T[0]>>2;
      if ((T[1]&1)==1)
	 goto qskip;
      if (first==0)
	 first=1;
      sinp[2*index]=T[0];
      sinp[2*index+1]=T[1];
      cflag[index]=z;
      index=index+1;
      if (index>30999)
	 return(0);
      if ((T[0]==V[0])&&(T[1]==V[1]))
	 return(index);
      }
   if ((T[1]&1)==0) {
      T[1]=(T[1]>>1)|(T[0]<<31);
      T[0]=(int)T[0]>>1;
      }
qskip:
   L[0]=(T[0]<<1)|(T[1]>>31);
   L[1]=T[1]<<1;
   add64(L, T);
   add64(C, T);
//
   if (flag==0) {
      L[0]=T[0];
      L[1]=T[1];
      if ((L[0]&0x80000000)!=0)
	 sub64(Z, L);
      if ((L[0]!=0)||((L[1]&0x80000000)!=0)) {
	 flag=1;
	 range[0]=flag;
	 }
      }
//
   if ((T[0]!=V[0])||(T[1]!=V[1]))
      goto aloop;
//
return(index);
}

int main () {

unsigned int conv[89*2]={ // generalized continued-fraction convergents of log(3)/log(2)
 1,1, 2,1, 3,2, 4,2, 5,3, 6,4, 8,5, 9,6, 11,7, 16,10, 19,12, 24,15, 27,17,
 38,24, 46,29, 57,36, 65,41, 76,48, 84,53, 130,82, 149,94, 168,106, 233,147, 
 252,159, 317,200, 336,212, 401,253, 420,265, 485,306, 504,318, 569,359, 
 970,612, 1054,665, 1455,918, 1539,971, 2108,1330, 2593,1636, 3162,1995, 
 3647,2301, 4216,2660, 4701,2966, 5270,3325, 5755,3631, 6324,3990, 
 6809,4296, 7378,4655, 7863,4961, 8432,5320, 8917,5626, 9486,5985, 
 9971,6291, 10540,6650, 11025,6956, 11594,7315, 12079,7621, 12648,7980, 
 13133,8286, 13702,8645, 14187,8951, 14756,9310, 15241,9616, 15810,9975, 
 16295,10281, 16864,10640, 17349,10946, 17918,11305, 18403,11611, 
 18972,11970, 19457,12276, 20026,12635, 20511,12941, 21080,13300, 
 21565,13606, 22134,13965, 22619,14271, 23188,14630, 23673,14936, 
 24242,15295, 24727,15601, 25296,15960, 25781,16266, 49454,31202, 
 50508,31867, 74181,46803, 75235,47468, 101016,63734, 125743,79335, 
 151524,95601, 176251,111202};

//unsigned int climit=200000;
unsigned int climit=25000;
unsigned int youonly=0;   // sum of reciprocals flag, normally set to 0
unsigned int tonly=0;  // sum of reciprocals flag, normally set to 0
unsigned int outsel=0;  // select values corresponding to tables
// (1) maxu/minu<delta^i, (2) maxt/mint<delta^i, (3) maxtu/mintu<delta^i, (4) maxt/lambdat<delta^i, (5) maxu/lambdau<delta^i, (6) maxtu/lambda<delta^i (7) lambdau/minu<delta^i
// (8) lambda/lambda1<delta^i or maxtu/lambda1<delta^i, (9) miscellaneous, (10) maxu*minu/lambdau^2>delta, (11) maxu*minu/lambdau^2, (12) maxtu*mintu/lambda^2, (13) maxt*mint/lambdat^2
// (14) maxt*mint/lambdat^2>delta, (15) utmax/utmin<delta^i, parity vector p, (16) maxtu*mintu/lambda^2>delta, (17) second inequality exceptions (minu), a values, (18) histodp
// (19) umin and c values for exceptions, (20) L-K (doesn't take into account interrelated cycles)
unsigned int rowcol=0;  // select row or column, normally set to 0
unsigned int parpflag=0;  // if set, skip l,m values not equal to those of parity vector p
unsigned int lammax=0;  // if set, select utmax instead of lambda
unsigned int hflag=0;	 // selects which c value to histogram values
unsigned int hflag1=0;	 // selects which c value to histogram values
unsigned int indmin=0;	 // selects (l,m) value
unsigned int indmax=0;	 // Note: Could include different (l,m) values.
unsigned int bypass=0;	 // normally set to 0
unsigned int wflag=1;	 // normally set to 1
unsigned int infin=0;	 // normally set to 0
unsigned int eowrite=1;  // normally set to 1 (set to 2 to output (L,K) values)
unsigned int flag13=0;	 // normally set to 0 (for "histov" and "histob")
unsigned int flag14=2;	 // normally set to 2 (definition of "d", plus, minus, or average)
unsigned int flag15=0;	 // normally set to 1 (Euclidean G.C.D. flag)
unsigned int flag16=0;	 // normally set to 0 (select log(3)/log(2), 3/2, 1.67, or 1.75)
unsigned int overrider=0;  // normally set to 0 (for parity vector p and continued-fraction convergents)  
unsigned int numbc=6667+6666+6667+6667+6666+3334+3333+3333+3334+3333+3333+3334+3333+3333+3334;	// number of c values
unsigned int cbegin=1;	 // beginning c value
//
// Note: The "jumps", "cflag", and "ES" arrays must be the same size.
//
int k,delta,deltae,sum;
unsigned int cyccnt,mcount,hcount,icount,lcount,oddsum,evensum,hsum,jsum,dcount,deemax,savel,saven,savesee;
unsigned int c,cmax,cmin,savec,badcomp,compcnt,a,grthone,elk,badeven,hist1p[100],hist1n[100],hist2p[100],hist2n[100];
unsigned int g,h,i,m,iters,j,count,first,odds,evens,flag,lodds,levens,jump,jcnt,hh;
unsigned int flag0,offset,index,total,county,countn,countx,grodd,guodd,gtodd;
unsigned int histo[100],mincnt,hismin[20],savjmp,second,histoj[200],histom[15];
unsigned int jumps[31000],mflag,attcnt,savind,newhis[100],oldhis[100],histon[40];
unsigned int histoh[1500],histoi[200],histox[200],badcnt,badcntu,badcntup,badcntuq,badcntur,badcntus,primary,jmpcnt,tempi;
unsigned int badcntut,badcntuu,badcntuv,badcntuw,badcnttp,badcnttq,badcnttr,badcntts,badcnttt;
unsigned int badcnttu,badcnttv,badcnttw,badcnttx,badcntty,badcnttz,badcountt,badcountu,badcounttu;
unsigned int badcntvp,badcntvq,badcntvr,badcntvs,badcntvt,badcntvu,badcntvv,badcntvw,badcntvx,badcntvy,badcntvz;
unsigned int badt1,badt2,badt3,badt4,badt5,badt6,badt7,badt8,badt9,badtu1,badtu2,badtu3,badtu4,badtu5,badtu6,badtu7,badtu8,badtu9;
unsigned int firstt,savjump,savcnt,tmpcnt,twojmp,lasthop,jmphop,offset1,jmpsum;
unsigned int twojmp0,twojmp1,twojmp2,twojmp3,glohop,glojmp,tmpjump,histoy[200];
unsigned int histoz[200],histow[500],histov[5500],histos[1300],offset2,badtucnt;
unsigned int concov[89*6],histot[50],offset4,concove[89*3],histoa[50],histob[600];
unsigned int histou[100],offset5,patcnt,cyccntu,cyccntb,histor[200],offset3,equcnt;
unsigned int histod[6500],offset6,kl[100*2],klcount,OLDT[2],GLOMAX[2];
//unsigned int ncyc[30],TSAVE[2],USAVE[2],outkl[20000*2],outklind,cycsav[100*2];
unsigned int ncyc[30],TSAVE[2],USAVE[2],cycsav[100*2];
//unsigned int lamcnt,OLDS[2],LASTT[2],n,cycsavind,outcnt[6667],wrap,offset12;
unsigned int lamcnt,OLDS[2],LASTT[2],n,offset12;
unsigned int histodd[6500],ii,histodp[500],offset10,error[8],OLDU[2],offset11;
unsigned int EM[4],EN[4],sv[2002],em,A[32],B[32],C[32],D[32],L[32],S[32];
unsigned int flubs,flubx,pcount,chhist[80],jj,GLOMIN[2],LASTODD[2],LOCMIN[2];
unsigned int l1flag,l2flag,l3flag,d1hist[80],d2hist[80],d3hist[80],LOCMAX[2];
unsigned int kk,SAVET[2],V[2],range[2];
unsigned int TEE[2],YOU[2],TMPS[2],TS[7000*2],MAXTU[2],MINTU[2],SUMTU[2],SUMT[2];
unsigned int UT[12000*2],STU[6000*4],SUMU[2],MAXT[2],MINT[2],MAXU[2],MINU[2];
unsigned int KSAVE[2],KSAVEP[2],onecnt,d4hist[80],d5hist[80],d6hist[80];
unsigned int begind,oldii,offset7,offset8,offset9,l4flag,l5flag,l6flag;
unsigned int CP[2],K[2],O[2],OR[2],E[2],Q[2],T[2],U[2],M[2],Z[2],ES[31000*2];
unsigned int count1,count2,count3,count4,count5,count6,d0hist[80],offdp,offdp3;
unsigned int d7hist[80],d8hist[80],d9hist[80],d10hist[80],levenpp,levenpm;
unsigned int d11hist[40],d12hist[40],d13hist[40],d14hist[40],d15hist[40];
unsigned int d16hist[40],d17hist[40],d18hist[40],d19hist[40],d20hist[40];
unsigned int d21hist[40],d22hist[40],d23hist[40],d24hist[40],d25hist[40];
unsigned int d26hist[40],d27hist[40],d28hist[40],d29hist[40],d30hist[40];
unsigned int d31hist[40],d32hist[40],d33hist[40],d34hist[40],d35hist[40];
unsigned int d36hist[40],d37hist[40],d38hist[40],d39hist[40],d40hist[40];
unsigned int d41hist[40],d42hist[40],d43hist[40],d44hist[40],d45hist[40];
unsigned int d46hist[40],d47hist[40],d48hist[40],d49hist[40];
unsigned int d50hist[40],d51hist[40],d52hist[40],d53hist[40],d54hist[40];
unsigned int d55hist[40],d56hist[40],d57hist[40],d58hist[40],d59hist[40];
unsigned int d60hist[40],d61hist[40],d62hist[40],d63hist[40],d64hist[40];
unsigned int d65hist[40],d66hist[40],d67hist[40],d68hist[40],d69hist[40];
unsigned int d70hist[80],d71hist[80],d72hist[40],d73hist[40],d74hist[40];
unsigned int d75hist[40],d76hist[40],d77hist[40],d78hist[40],d79hist[40];
unsigned int d80hist[40],d81hist[40],d82hist[40],d83hist[40],d84hist[40];
unsigned int d85hist[40],d86hist[40],d87hist[40],d88hist[40],d89hist[40];
unsigned int d90hist[40],d91hist[40],d92hist[40],d93hist[40],d94hist[40];
unsigned int d95hist[40],d96hist[40],d97hist[40],d98hist[40],d99hist[40];
unsigned int d100hist[80],d101hist[80],d102hist[80],d103hist[80];
unsigned int d104hist[80],d105hist[80],d106hist[80],d107hist[80];
unsigned int d108hist[80],d109hist[80],d110hist[80],d111hist[80];
unsigned int AP[2],z,index1,iters1,tswitch,ucnt,tcnt,utcnt,lncnt,eqcnt,lintcnt,uhist[20],thist[20],uthist[20],eqhist[100];
unsigned int grhist[40],greven,lingre,guhist[40],gueven,gthist[40],gteven,eqexcept[3];
unsigned int utlncnt,utecnt,tepcnt,lnsky,lnskyt,LKcnt,maxjj;
unsigned char cflag[31000];
double maxminrat,minmaxrat,deltaef,detemp,savemin,savemax,savemaxu,saveminu,savemaxt,savemint;
double lambda,d,dmin,dmax,del,maxdel,mindel,sumrec,tempf,chain,rat,oldchn,teed,tmpchain,newchain;
double ratdel,tempg,cap,cam,bp,bm,savchain,maxcmp,mean,std,var,maxdiff,f;
double lambdat,lambdau,lambda1,lambda2,lambda3,lambda4,lambda5,lambda6,dtemp,etemp,belfact;
errno_t err;
unsigned int *table,*table1,*table2,*table3,*table4,*table5;
unsigned int *table6;
double *table7;
unsigned int indx[100];
FILE *Outfp;
err = fopen_s(&Outfp,"outx.dat","w");
table=(unsigned int*) malloc(200*30*4);
if (table==NULL) {
	printf("not enough memory \n");
	return;
}
table1=(unsigned int*) malloc(200*30*4);
if (table1==NULL) {
	printf("not enough memory \n");
	return;
}
table2=(unsigned int*) malloc(200*30*4);
if (table2==NULL) {
	printf("not enough memory \n");
	return;
}
table3=(unsigned int*) malloc(200*30*4);
if (table3==NULL) {
	printf("not enough memory \n");
	return;
}
table4=(unsigned int*) malloc(200*30*4);
if (table4==NULL) {
	printf("not enough memory \n");
	return;
}
table5=(unsigned int*) malloc(200*30*4);
if (table5==NULL) {
	printf("not enough memory \n");
	return;
}
table6=(unsigned int*) malloc(200000*10*4);
if (table6==NULL) {
	printf("not enough memory \n");
	return;
}
table7=(double*) malloc(700000*8);
if (table7==NULL) {
	printf("not enough memory \n");
	return;
}
for (i=0; i<100; i++) {
	hist1p[i]=0;
	hist1n[i]=0;
	hist2p[i]=0;
	hist2n[i]=0;
}
badeven=0;
elk=0;
grthone=0;
maxjj=0;
utcnt=0;
ucnt=0;
tcnt=0;
lncnt=0;
eqcnt=0;
lintcnt=0;
utlncnt=0;
utecnt=0;
tepcnt=0;
greven=0;
lingre=0;
gueven=0;
gteven=0;
grodd=0;
guodd=0;
gtodd=0;
lnsky=0;
lnskyt=0;
LKcnt=0;
deemax=0;
eqexcept[0]=0;
eqexcept[1]=0;
eqexcept[2]=0;
for (i=0; i<20; i++) {
	uhist[i]=0;
	uthist[i]=0;
}
for (i=0; i<40; i++) {
	grhist[i]=0;
	guhist[i]=0;
	gthist[i]=0;
}
for (i=0; i<20; i++)
	thist[i]=0;
for (i=0; i<100; i++)
	eqhist[i]=0;
for (i=0; i<100; i++)
	indx[i]=0;
for (i=0; i<2000000; i++)
	table6[i]=0;
for (i=0; i<200000; i++)
	table7[i]=0.0;
for (i=0; i<6000; i++) {
	table[i]=0;
	table1[i]=0;
	table2[i]=0;
	table3[i]=0;
	table4[i]=0;
	table5[i]=0;
}
flubs=0;
flubx=0;
maxdiff=0.0;
pcount=0;
em=32;
for (i=0; i<8; i++)
   error[i]=0;
for (i=0; i<80; i++) {
   chhist[i]=0;
   d0hist[i]=0;
   d1hist[i]=0;
   d2hist[i]=0;
   d3hist[i]=0;
   d4hist[i]=0;
   d5hist[i]=0;
   d6hist[i]=0;
   d7hist[i]=0;
   d8hist[i]=0;
   d9hist[i]=0;
   d10hist[i]=0;
   d70hist[i]=0;
   d71hist[i]=0;
   d100hist[i]=0;
   d101hist[i]=0;
   d102hist[i]=0;
   d103hist[i]=0;
   d104hist[i]=0;
   d105hist[i]=0;
   d106hist[i]=0;
   d107hist[i]=0;
   d108hist[i]=0;
   d109hist[i]=0;
   d110hist[i]=0;
   d111hist[i]=0;
   }
for (i=0; i<40; i++) {
   d11hist[i]=0;
   d12hist[i]=0;
   d13hist[i]=0;
   d14hist[i]=0;
   d15hist[i]=0;
   d16hist[i]=0;
   d17hist[i]=0;
   d80hist[i]=0;
   d81hist[i]=0;
   d82hist[i]=0;
   d83hist[i]=0;
   d84hist[i]=0;
   d85hist[i]=0;
   d86hist[i]=0;
   d87hist[i]=0;
   d88hist[i]=0;
   d89hist[i]=0;
   d90hist[i]=0;
   d91hist[i]=0;
   d92hist[i]=0;
   d93hist[i]=0;
   d94hist[i]=0;
   d95hist[i]=0;
   d96hist[i]=0;
   d97hist[i]=0;
   d98hist[i]=0;
   d99hist[i]=0;
   }
for (i=0; i<40; i++) {
   d18hist[i]=0;
   d19hist[i]=0;
   d20hist[i]=0;
   d21hist[i]=0;
   d22hist[i]=0;
   d23hist[i]=0;
   d24hist[i]=0;
   d25hist[i]=0;
   d42hist[i]=0;
   d43hist[i]=0;
   d44hist[i]=0;
   d45hist[i]=0;
   d46hist[i]=0;
   d47hist[i]=0;
   d48hist[i]=0;
   d49hist[i]=0;
   d72hist[i]=0;
   d73hist[i]=0;
   d74hist[i]=0;
   d75hist[i]=0;
   d76hist[i]=0;
   d77hist[i]=0;
   d78hist[i]=0;
   d79hist[i]=0;
   }
for (i=0; i<40; i++) {
   d26hist[i]=0;
   d27hist[i]=0;
   d28hist[i]=0;
   d29hist[i]=0;
   d30hist[i]=0;
   d31hist[i]=0;
   d32hist[i]=0;
   d33hist[i]=0;
   }
for (i=0; i<40; i++) {
   d34hist[i]=0;
   d35hist[i]=0;
   d36hist[i]=0;
   d37hist[i]=0;
   d38hist[i]=0;
   d39hist[i]=0;
   d40hist[i]=0;
   d41hist[i]=0;
   }
for (i=0; i<40; i++) {
   d50hist[i]=0;
   d51hist[i]=0;
   d52hist[i]=0;
   d53hist[i]=0;
   d54hist[i]=0;
   d55hist[i]=0;
   d56hist[i]=0;
   d57hist[i]=0;
   d58hist[i]=0;
   d59hist[i]=0;
   d60hist[i]=0;
   d61hist[i]=0;
   d62hist[i]=0;
   d63hist[i]=0;
   d64hist[i]=0;
   d65hist[i]=0;
   d66hist[i]=0;
   d67hist[i]=0;
   d68hist[i]=0;
   d69hist[i]=0;
   }
for (i=0; i<100; i++) {
   histo[i]=0;
   newhis[i]=0;
   oldhis[i]=0;
   }
for (i=0; i<200; i++) {
   histox[i]=0;
   histoy[i]=0;
   histor[i]=0;
   histoz[i]=0;
   histoj[i]=0;
   histoi[i]=0;
   }
for (i=0; i<500; i++)
   histodp[i]=0;
for (i=0; i<500; i++)
   histow[i]=0;
for (i=0; i<1500; i++)
   histoh[i]=0;
for (i=0; i<15; i++)
   histom[i]=0;
for (i=0; i<20; i++)
   hismin[i]=0;
for (i=0; i<40; i++)
   histon[i]=0;
for (i=0; i<100; i++)
   histou[i]=0;
for (i=0; i<600; i++)
   histob[i]=0;
for (i=0; i<50; i++) {
   histot[i]=0;
   histoa[i]=0;
   }
for (i=0; i<89*3; i++)
   concove[i]=0;
for (i=0; i<89*6; i++)
   concov[i]=0;
for (i=0; i<1300; i++)
   histos[i]=0;
for (i=0; i<6500; i++) {  // these two arrays must be the same size
   histod[i]=0;
   histodd[i]=0;
   }
for (i=0; i<5500; i++)
   histov[i]=0;
for (i=0; i<30; i++)
   ncyc[i]=0;
/*
for (i=0; i<6667; i++)
   outcnt[i]=0;
outklind=0; */
count1=0;
count2=0;
count3=0;
count4=0;
count5=0;
count6=0;
badcnt=0;
badcntu=0;
badcntup=0;
badcntuq=0;
badcntur=0;
badcntus=0;
badcntut=0;
badcntuu=0;
badcntuv=0;
badcntuw=0;
badcnttp=0;
badcnttq=0;
badcnttr=0;
badcntts=0;
badcnttt=0;
badcnttu=0;
badcnttv=0;
badcnttw=0;
badcnttx=0;
badcntty=0;
badcnttz=0;
badt1=0;
badt2=0;
badt3=0;
badt4=0;
badt5=0;
badt6=0;
badt7=0;
badt8=0;
badt9=0;
badtucnt=0;
badcntvp=0;
badcntvq=0;
badcntvr=0;
badcntvs=0;
badcntvt=0;
badcntvu=0;
badcntvv=0;
badcntvw=0;
badcntvx=0;
badcntvy=0;
badcntvz=0;
badtu1=0;
badtu2=0;
badtu3=0;
badtu4=0;
badtu5=0;
badtu6=0;
badtu7=0;
badtu8=0;
badtu9=0;
badcomp=0;
compcnt=0;
cyccntu=0;
cyccntb=0;
equcnt=0;
maxcmp=0.0;
primary=0;
rat=log(3.0)/log(2.0);
ratdel=rat/(rat-1.0);
offset=20;
offset1=110;
offset2=220;
offset3=100;
offset4=25;
offset5=70;
offset6=275;
offset7=500;
offset8=260;
offset9=4200;
offset10=5200;
offset11=1000;
offset12=1200;
offdp=20;
offdp3=40;
maxdel=-1000000.0;
mindel=1000000.0;
maxminrat=0.0;
minmaxrat=65536.0*65536.0*65536.0;
lamcnt=0;
county=0;
countn=0;
countx=0;
cyccnt=0;
mcount=0;
glohop=0;
glojmp=0;
twojmp=0;
twojmp0=0;
twojmp1=0;
twojmp2=0;
twojmp3=0;
jmphop=0;
Z[0]=0;
Z[1]=0;
onecnt=0;
index1=0;
tswitch=0;
c=cbegin;
for (h=0; h<numbc; h++) {
   range[0]=0;
   CP[0]=0;
   CP[1]=(unsigned int)c;
   if (c<20000)
      iters1=size1[h];
   else {
      if (c<40000) {
	 if (tswitch==0) {
	    index1=0;
	    tswitch=1;
	    }
	 iters1=size2[h-6667];
	 }
      else {
	 if (c<60000) {
	    if (tswitch==1) {
	       index1=0;
	       tswitch=0;
	       }
	    iters1=size3[h-6667-6666];
	    }
	 else {
	    if (c<80000) {
	       if (tswitch==0) {
		  index1=0;
		  tswitch=1;
		  }
	       iters1=size4[h-6667-6666-6667];
	       }
	    else {
	       if (c<100000) {
		  if (tswitch==1) {
		     index1=0;
		     tswitch=0;
		     }
		  iters1=size5[h-6667-6666-6667-6667];
		  }
	       else {
		  if (c<110000) {
		     if (tswitch==0) {
			index1=0;
			tswitch=1;
			}
		     iters1=size6[h-6667-6666-6667-6667-6666];
		     }
		  else {
		     if (c<120000) {
			if (tswitch==1) {
			   index1=0;
			   tswitch=0;
			   }
			iters1=size7[h-6667-6666-6667-6667-6666-3334];
			}
		     else {
			if (c<130000) {
			   if (tswitch==0) {
			      index1=0;
			      tswitch=1;
			      }
			   iters1=size8[h-6667-6666-6667-6667-6666-3334-3333];
			   }
			else {
			   if (c<140000) {
			      if (tswitch==1) {
				 index1=0;
				 tswitch=0;
				 }
			      iters1=size9[h-6667-6666-6667-6667-6666-3334-3333-3333];
			      }
			   else {
			      if (c<150000) {
				 if (tswitch==0) {
				    index1=0;
				    tswitch=1;
				    }
				 iters1=size10[h-6667-6666-6667-6667-6666-3334-3333-3333-3334];
				 }
			      else {
				 if (c<160000) {
				    if (tswitch==1) {
				       index1=0;
				       tswitch=0;
				       }
				    iters1=size11[h-6667-6666-6667-6667-6666-3334-3333-3333-3334-3333];
				    }
				 else {
				    if (c<170000) {
				       if (tswitch==0) {
					  index1=0;
					  tswitch=1;
					  }
				       iters1=size12[h-6667-6666-6667-6667-6666-3334-3333-3333-3334-3333-3333];
				       }
				    else {
				       if (c<180000) {
					  if (tswitch==1) {
					     index1=0;
					     tswitch=0;
					     }
					  iters1=size13[h-6667-6666-6667-6667-6666-3334-3333-3333-3334-3333-3333-3334];
					  }
				       else {
					  if (c<190000) {
					     if (tswitch==0) {
						index1=0;
						tswitch=1;
						}
					     iters1=size14[h-6667-6666-6667-6667-6666-3334-3333-3333-3334-3333-3333-3334-3333];
					     }
					  else {
					     if (tswitch==1) {
						index1=0;
						tswitch=0;
						}
					     iters1=size15[h-6667-6666-6667-6667-6666-3334-3333-3333-3334-3333-3333-3334-3333-3333];
					     }
					  }
				       }
				    }
				 }
			      }
			   }
			}
		     }
		  }
	       }
	    }
	 }
      }
   if (iters1>14000) {
      printf("error: arrays (s, temps, jumps, ES) not big enough \n");
      goto zskip;
      }
   z=0;
   iters=0;
   for (i=0; i<iters1; i++) {
      if (c<20000)
	 AP[1]=(unsigned int)att1[i+index1];
      else {
	 if (c<40000)
	    AP[1]=(unsigned int)att2[i+index1];
	 else {
	    if (c<60000)
	       AP[1]=(unsigned int)att3[i+index1];
	    else {
	       if (c<80000)
		  AP[1]=(unsigned int)att4[i+index1];
	       else {
		  if (c<100000)
		     AP[1]=(unsigned int)att5[i+index1];
		  else {
		     if (c<110000)
			AP[1]=(unsigned int)att6[i+index1];
		     else {
			if (c<120000)
			   AP[1]=(unsigned int)att7[i+index1];
			else {
			   if (c<130000)
			      AP[1]=(unsigned int)att8[i+index1];
			   else {
			      if (c<140000)
				 AP[1]=(unsigned int)att9[i+index1];
			      else {
				 if (c<150000)
				    AP[1]=(unsigned int)att10[i+index1];
				 else {
				    if (c<160000)
				       AP[1]=(unsigned int)att11[i+index1];
				    else {
				       if (c<170000)
					  AP[1]=(unsigned int)att12[i+index1];
				       else {
					  if (c<180000)
					     AP[1]=(unsigned int)att13[i+index1];
					  else {
					     if (c<190000)
						AP[1]=(unsigned int)att14[i+index1];
					     else
						AP[1]=(unsigned int)att15[i+index1];
					     }
					  }
				       }
				    }
				 }
			      }
			   }
			}
		     }
		  }
	       }
	    }
	 }
      if ((AP[1]&0x80000000)!=0)
	 AP[0]=0xffffffff;
      else
	 AP[0]=0;
//
//  set first word
//
      if ((c==467)&&(AP[1]==0x59f50ee4))
	 AP[0]=0xffffffff;
      if (c==3949) {
	 if (AP[1]==0x9610d0e6)
	    AP[0]=0;
	 if (AP[1]==0x1ce41f70)
	    AP[0]=1;
	 }
      if (c==5137) {
	 if (AP[1]==0x6fa35098)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x10922e5e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5630ae4a)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x00524660)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6d8d6c22)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x75d815a4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x9bfe48c6)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0xf7bf157a)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0xdce7ad12)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x0b2850de)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x46c97c3a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5a8b939a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4f514348)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x537bff30)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x137ec610)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x04dfb184)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7b9565e2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xc1d86a28)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x14a8ea0e)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x896e9d50)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x625ba754)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe47232fa)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5727200c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x97ef9100)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x65fbe440)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x196886e4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5bd6ff3c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x642d566e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x49cdb8fe)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x8be46252)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xf7046baa)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x65eec8a2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4fd563be)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xcba20e18)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x72e88386)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x312420aa)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x2bae5f92)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6576451a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x56bc28b4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5bcc665e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x2c6977c2)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7c7db276)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x461a371c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf8b9cb42)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3f757366)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x73b21d74)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x61c6bdb6)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7ceff1dc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1da422e2)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xfe73cb64)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x60c9761c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x89b091dc)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x4421b2b6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xdab7522a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x296c412e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3451e938)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xa92c4a22)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xb1a84b54)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7d17cdde)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x8af091f0)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x62bc247c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x68777cc0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x559a1182)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x9bec7fdc)
	    AP[0]=0xfffffff8;
	 if (AP[1]==0xa955eb58)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x6a557ad6)
	    AP[0]=0xffffffff;
	 }
      if ((c==10663)&&(AP[1]==0x89cadabc))
	 AP[0]=0;
      if (c==13033) {
	 if (AP[1]==0x86afb44c)
	    AP[0]=0;
	 if (AP[1]==0xa1cfd02e)
	    AP[0]=0;
	 if (AP[1]==0x3c93c3b2)
	    AP[0]=9;
	 if (AP[1]==0x9909a550)
	    AP[0]=2;
	 if (AP[1]==0xa6426954)
	    AP[0]=0;
	 }
      if ((c==13889)&&(AP[1]==0xb61feca8))
	 AP[0]=0;
      if ((c==14857)&&(AP[1]==0x05aa7d42))
	 AP[0]=1;
      if (c==15217) {
	 if (AP[1]==0x6249cc02)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6ca1a200)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x745873e2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x583babe0)
	    AP[0]=0xffffffff;
	 }
      if ((c==15343)&&(AP[1]==0xab72f760))
	 AP[0]=0;
      if (c==15913) {
	 if (AP[1]==0xddbb59ce)
	    AP[0]=0;
	 if (AP[1]==0x18a19bec)
	    AP[0]=1;
	 }
      if (c==17021) {
	 if (AP[1]==0xc4cf57a0)
	    AP[0]=0;
	 if (AP[1]==0x238981ea)
	    AP[0]=1;
	 if (AP[1]==0x943282a0)
	    AP[0]=0;
	 if (AP[1]==0xd75f9f04)
	    AP[0]=0;
	 if (AP[1]==0x76f31934)
	    AP[0]=2;
	 if (AP[1]==0xb5d7cc08)
	    AP[0]=0;
	 if (AP[1]==0xd6342702)
	    AP[0]=1;
	 if (AP[1]==0xb0539f40)
	    AP[0]=0;
	 }
      if ((c==18631)&&(AP[1]==0x48f4e5f6))
	 AP[0]=0xffffffff;
      if ((c==19189)&&(AP[1]==0x8fa27166))
	 AP[0]=0;
      if (c==20729) {
	 if (AP[1]==0xe24a3aee)
	    AP[0]=0;
	 if (AP[1]==0x610605d6)
	    AP[0]=1;
	 if (AP[1]==0x060b16dc)
	    AP[0]=1;
	 if (AP[1]==0x97c9ac98)
	    AP[0]=1;
	 if (AP[1]==0xc69395e4)
	    AP[0]=0;
	 if (AP[1]==0xa34e86b0)
	    AP[0]=0;
	 }
      if (c==21091) {
	 if (AP[1]==0x02b30d5a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x0f9087c8)
	    AP[0]=0xffffffff;
	 }
      if ((c==22937)&&(AP[1]==0xf54f2a4a))
	 AP[0]=0;
      if (c==23173) {
	 if (AP[1]==0x526d70c6)
	    AP[0]=1;
	 if (AP[1]==0x029491ee)
	    AP[0]=2;
	 if (AP[1]==0xd916eea0)
	    AP[0]=0;
	 }
      if ((c==23563)&&(AP[1]==0x985144c0))
	 AP[0]=0;
      if ((c==23617)&&(AP[1]==0x18df53b4))
	 AP[0]=1;
      if ((c==26305)&&(AP[1]==0xb63536a8))
	 AP[0]=0;
      if ((c==26513)&&(AP[1]==0x2c2e8800))
	 AP[0]=1;
      if ((c==26923)&&(AP[1]==0xa33b9286))
	 AP[0]=0;
      if ((c==28345)&&(AP[1]==0xa2735d2a))
	 AP[0]=0;
      if (c==28493) {
	 if (AP[1]==0xfbade37c)
	    AP[0]=1;
	 if (AP[1]==0xf0f40106)
	    AP[0]=0;
	 if (AP[1]==0x8907280a)
	    AP[0]=0xc;
	 if (AP[1]==0x30f5b360)
	    AP[0]=1;
	 if (AP[1]==0x49cf69c2)
	    AP[0]=5;
	 }
      if (c==28615) {
	 if (AP[1]==0x53be0ebe)
	    AP[0]=1;
	 if (AP[1]==0x2035e656)
	    AP[0]=2;
	 if (AP[1]==0xcc145252)
	    AP[0]=0;
	 if (AP[1]==0x024a9b3c)
	    AP[0]=1;
	 }
      if ((c==30337)&&(AP[1]==0x8b4b9306))
	 AP[0]=0;
      if (c==30799) {
	 if (AP[1]==0x21463d46)
	    AP[0]=1;
	 if (AP[1]==0x9c9be132)
	    AP[0]=0;
	 if (AP[1]==0x842414e0)
	    AP[0]=0;
	 }
      if (c==30809) {
	 if (AP[1]==0xc703b7f2)
	    AP[0]=5;
	 if (AP[1]==0x87a32986)
	    AP[0]=39;
	 if (AP[1]==0xc2e0862c)
	    AP[0]=18;
	 if (AP[1]==0x46cf70f4)
	    AP[0]=5;
	 if (AP[1]==0xfd470344)
	    AP[0]=0;
	 if (AP[1]==0xe439ef48)
	    AP[0]=0;
	 if (AP[1]==0x647e106a)
	    AP[0]=2;
	 if (AP[1]==0xe5af643e)
	    AP[0]=0;
	 if (AP[1]==0xc1cc8b7e)
	    AP[0]=0;
	 if (AP[1]==0xa385249c)
	    AP[0]=0;
	 if (AP[1]==0x5d4063e4)
	    AP[0]=1;
	 if (AP[1]==0x2abb6f7e)
	    AP[0]=1;
	 if (AP[1]==0xfc0eb4fc)
	    AP[0]=0;
	 if (AP[1]==0x8867a5ae)
	    AP[0]=0;
	 if (AP[1]==0x817b37b2)
	    AP[0]=0;
	 if (AP[1]==0x16e15c84)
	    AP[0]=11;
	 if (AP[1]==0xa1aeaa0e)
	    AP[0]=2;
	 if (AP[1]==0xfef3239c)
	    AP[0]=4;
	 if (AP[1]==0x1d03a172)
	    AP[0]=7;
	 if (AP[1]==0x9d296680)
	    AP[0]=9;
	 if (AP[1]==0x674a59a0)
	    AP[0]=2;
	 if (AP[1]==0x99d29668)
	    AP[0]=0;
	 if (AP[1]==0x91a1bd2e)
	    AP[0]=1;
	 if (AP[1]==0x28066a98)
	    AP[0]=7;
	 if (AP[1]==0xca019aa6)
	    AP[0]=1;
	 if (AP[1]==0xca019aa6)
	    AP[0]=1;
	 if (AP[1]==0xc13903be)
	    AP[0]=0;
	 if (AP[1]==0xa308aa12)
	    AP[0]=0;
	 if (AP[1]==0x90e54e2e)
	    AP[0]=0;
	 if (AP[1]==0x29e4ec4a)
	    AP[0]=5;
	 if (AP[1]==0xefb5f6b2)
	    AP[0]=1;
	 if (AP[1]==0xdb55b72e)
	    AP[0]=0;
	 if (AP[1]==0x384ce98c)
	    AP[0]=1;
	 if (AP[1]==0xf442d07a)
	    AP[0]=1;
	 if (AP[1]==0xbb992c44)
	    AP[0]=0;
	 if (AP[1]==0x1d8ed584)
	    AP[0]=2;
	 if (AP[1]==0xab5af33e)
	    AP[0]=0;
	 if (AP[1]==0x90954c26)
	    AP[0]=0;
	 if (AP[1]==0xb02922ba)
	    AP[0]=0;
	 if (AP[1]==0x6c0fc8ce)
	    AP[0]=1;
	 if (AP[1]==0xc42216f0)
	    AP[0]=5;
	 if (AP[1]==0x710885bc)
	    AP[0]=1;
	 if (AP[1]==0x33528ce8)
	    AP[0]=1;
	 if (AP[1]==0xcbbda482)
	    AP[0]=0;
	 if (AP[1]==0xd99340e4)
	    AP[0]=0;
	 if (AP[1]==0xf4583c8e)
	    AP[0]=2;
	 if (AP[1]==0x4f5d7cea)
	    AP[0]=6;
	 if (AP[1]==0x5dc32cee)
	    AP[0]=2;
	 if (AP[1]==0xfeabf952)
	    AP[0]=2;
	 if (AP[1]==0xd7a092c6)
	    AP[0]=0;
	 if (AP[1]==0x5966c2f6)
	    AP[0]=1;
	 if (AP[1]==0xc24a18e2)
	    AP[0]=0;
	 if (AP[1]==0xe648cdb2)
	    AP[0]=1;
	 if (AP[1]==0x03a6a3e6)
	    AP[0]=1;
	 if (AP[1]==0x7c3fb870)
	    AP[0]=11;
	 if (AP[1]==0xdf0fee1c)
	    AP[0]=2;
	 if (AP[1]==0xb9bdabca)
	    AP[0]=2;
	 if (AP[1]==0x05a73e82)
	    AP[0]=1;
	 if (AP[1]==0x748e9f82)
	    AP[0]=1;
	 if (AP[1]==0x1bb2b7c4)
	    AP[0]=3;
	 if (AP[1]==0xa7d81fd4)
	    AP[0]=0;
	 }
      if ((c==30815)&&(AP[1]==0x8f43d076))
	  AP[0]=0;
      if ((c==30959)&&(AP[1]==0xc843e2d6))
	  AP[0]=0;
      if (c==31639) {
	 if (AP[1]==0xb6613838)
	    AP[0]=9;
	 if (AP[1]==0x6d984e0e)
	    AP[0]=2;
	 if (AP[1]==0xaed30c06)
	    AP[0]=0;
	 if (AP[1]==0x940efd8c)
	    AP[0]=10;
	 if (AP[1]==0xfbc2ee70)
	    AP[0]=1;
	 if (AP[1]==0xcd2056f2)
	    AP[0]=0;
	 if (AP[1]==0x2411f376)
	    AP[0]=1;
	 if (AP[1]==0x8a9fa732)
	    AP[0]=0;
	 if (AP[1]==0xaf730aa6)
	    AP[0]=0;
	 }
      if (c==31843) {
	 if (AP[1]==0x28aeebf4)
	    AP[0]=7;
	 if (AP[1]==0x18b7da24)
	    AP[0]=5;
	 if (AP[1]==0x6ef40318)
	    AP[0]=1;
	 }
      if ((c==32593)&&(AP[1]==0x885d7f62))
	 AP[0]=0;
      if (c==32735) {
	 if (AP[1]==0x8010cb56)
	    AP[0]=1;
	 if (AP[1]==0x90066c38)
	    AP[0]=0;
	 }
      if (c==33587) {
	 if (AP[1]==0x68e2f65a)
	    AP[0]=2;
	 if (AP[1]==0xdc23f098)
	    AP[0]=3;
	 if (AP[1]==0xf708fc26)
	    AP[0]=0;
	 }
      if (c==33641) {
	 if (AP[1]==0xf446a43c)
	    AP[0]=1;
	 if (AP[1]==0xd30e6956)
	    AP[0]=0;
	 }
      if (c==33899) {
	 if (AP[1]==0x6e42ac4e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x726bfe80)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x2844171c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7e1b5e38)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5344cf7a)
	    AP[0]=0xffffffff;
	 }
      if ((c==35491)&&(AP[1]==0xe25bb43e))
	 AP[0]=0;
      if (c==35681) {
	 if (AP[1]==0xec9c51a)
	    AP[0]=2;
	 if (AP[1]==0xc58bccc2)
	    AP[0]=0;
	 }
      if (c==36691) {
	 if (AP[1]==0xc24b4966)
	    AP[0]=1;
	 if (AP[1]==0x8e7a7258)
	    AP[0]=0;
	 }
      if ((c==37351)&&(AP[1]==0x85bd0eee))
	 AP[0]=0;
      if (c==38671) {
	 if (AP[1]==0xe3f78b5a)
	    AP[0]=0;
	 if (AP[1]==0x803b9ccc)
	    AP[0]=0;
	 }
      if (c==38777) {
	 if (AP[1]==0xbd0c4406)
	    AP[0]=0;
	 if (AP[1]==0x976a464a)
	    AP[0]=0;
	 }
      if ((c==39067)&&(AP[1]==0x37bddd0c))
	 AP[0]=1;
      if (c==39409) {
	 if (AP[1]==0x6f2b5a94)
	    AP[0]=2;
	 if (AP[1]==0x840cbb4e)
	    AP[0]=0;
	 if (AP[1]==0xab623c02)
	    AP[0]=0;
	 if (AP[1]==0xbf265772)
	    AP[0]=0;
	 if (AP[1]==0x90f734e0)
	    AP[0]=0;
	 if (AP[1]==0x9bce7fec)
	    AP[0]=0;
	 if (AP[1]==0x88636702)
	    AP[0]=0;
	 if (AP[1]==0xf2772886)
	    AP[0]=0;
	 if (AP[1]==0xfff785f8)
	    AP[0]=0;
	 }
      if ((c==39611)&&(AP[1]==0xfaccc6dc))
	 AP[0]=0;
      if ((c==40057)&&(AP[1]==0x004b81a8))
	 AP[0]=1;
      if (c==40295) {
	 if (AP[1]==0x96127ebe)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7c91f98a)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xad439da)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0xfb230af0)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x679c4812)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5ded3f18)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x28e08772)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7ec8c2bc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1af8b186)
	    AP[0]=0xffffffff;
	 }
      if (c==40741) {
	 if (AP[1]==0xc8418714)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3e874350)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x381dc766)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5759dd3a)
	    AP[0]=0xffffffff;
	 }
      if ((c==40831)&&(AP[1]==0x92af1dbc))
	 AP[0]=0;
      if ((c==41057)&&(AP[1]==0xd7bd2534))
	 AP[0]=1;
      if ((c==41191)&&(AP[1]==0x37bdd8e6))
	 AP[0]=1;
      if ((c==41597)&&(AP[1]==0xcace7d9c))
	 AP[0]=0;
      if (c==42019) {
	 if (AP[1]==0x867e274c)
	    AP[0]=1;
	 if (AP[1]==0x114ffb5e)
	    AP[0]=4;
	 }
      if (c==42317) {
	 if (AP[1]==0xb81a5342)
	    AP[0]=0;
	 }
      if (c==42763) {
	 if (AP[1]==0xb53b6262)
	    AP[0]=0;
	 if (AP[1]==0xb7bca88c)
	    AP[0]=0;
	 }
      if (c==42887) {
	 if (AP[1]==0x4a97567a)
	    AP[0]=1;
	 if (AP[1]==0x190fde12)
	    AP[0]=0x43;
	 if (AP[1]==0x0f63e7f8)
	    AP[0]=0x132;
	 if (AP[1]==0x83d8f9fe)
	    AP[0]=0x4c;
	 if (AP[1]==0x6b705bd0)
	    AP[0]=0x30;
	 if (AP[1]==0x1adc16f4)
	    AP[0]=0xc;
	 if (AP[1]==0x9e218caa)
	    AP[0]=8;
	 if (AP[1]==0xd8f347d4)
	    AP[0]=4;
	 if (AP[1]==0x5d04d4e8)
	    AP[0]=1;
	 }
      if (c==44411) {
	 if (AP[1]==0x52c27f8e)
	    AP[0]=3;
	 if (AP[1]==0x3f091b34)
	    AP[0]=1;
	 if (AP[1]==0x8698a57c)
	    AP[0]=0;
	 }
      if ((c==44515)&&(AP[1]==0x874cf1e0))
	 AP[0]=0;
      if ((c==44711)&&(AP[1]==0x26660716))
	 AP[0]=1;
      if ((c==44837)&&(AP[1]==0x020f916a))
	 AP[0]=1;
      if ((c==44837)&&(AP[1]==0x020f916a))
	 AP[0]=1;
      if ((c==45941)&&(AP[1]==0xdbaba8fe))
	 AP[0]=0;
      if (c==47275) {
	 if (AP[1]==0x63643446)
	    AP[0]=1;
	 if (AP[1]==0x515a0996)
	    AP[0]=1;
	 if (AP[1]==0xa01d9f2e)
	    AP[0]=0;
	 }
      if ((c==47351)&&(AP[1]==0xd522d0dc))
	 AP[0]=2;
      if ((c==47657)&&(AP[1]==0x8bd9de54))
	 AP[0]=0;
      if (c==47677) {
	 if (AP[1]==0xa9b42330)
	    AP[0]=4;
	 if (AP[1]==0x2a6d08cc)
	    AP[0]=1;
	 }
      if (c==47737) {
	 if (AP[1]==0x2fac837c)
	    AP[0]=1;
	 if (AP[1]==0x801da4e8)
	    AP[0]=0;
	 }
      if (c==48191) {
	 if (AP[1]==0x0277c912)
	    AP[0]=1;
	 if (AP[1]==0xda15f132)
	    AP[0]=0;
	 if (AP[1]==0xcf044516)
	    AP[0]=0;
	 }
      if (c==48229) {
	 if (AP[1]==0x428c94c2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7b8d75ec)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1d7f0f74)
	    AP[0]=0xffffffff;
	 }
      if (c==48523) {
	 if (AP[1]==0xce6ce4d4)
	    AP[0]=0;
	 if (AP[1]==0x25ede48c)
	    AP[0]=1;
	 if (AP[1]==0x9731807e)
	    AP[0]=0;
	 }
      if ((c==49037)&&(AP[1]==0xd5348ff8))
	 AP[0]=0;
      if ((c==49205)&&(AP[1]==0x8c4e0894))
	 AP[0]=0;
      if (c==49331) {
	 if (AP[1]==0xb89e53ba)
	    AP[0]=0;
	 if (AP[1]==0x836fe796)
	    AP[0]=0;
	 if (AP[1]==0xece01daa)
	    AP[0]=0;
	 if (AP[1]==0xc7ddfddc)
	    AP[0]=0;
	 }
      if ((c==49543)&&(AP[1]==0xcf4b39ca))
	 AP[0]=0;
      if (c==50605) {
	 if (AP[1]==0xe22e8592)
	    AP[0]=2;
	 if (AP[1]==0x14d1a382)
	    AP[0]=1;
	 }
      if (c==50071) {
	 if (AP[1]==0x24975830)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xbf713818)
	    AP[0]=0xfffffffe;
	 }
      if ((c==50371)&&(AP[1]==0xd346f57e))
	 AP[0]=0;
      if ((c==51167)&&(AP[1]==0xcac908be))
	 AP[0]=1;
      if (c==52643) {
	 if (AP[1]==0x35d28fba)
	    AP[0]=1;
	 if (AP[1]==0xd073c5e8)
	    AP[0]=9;
	 if (AP[1]==0x741cf17a)
	    AP[0]=2;
	 if (AP[1]==0xf710632c)
	    AP[0]=1;
	 }
      if (c==53891) {
	 if (AP[1]==0x8065bab4)
	    AP[0]=1;
	 if (AP[1]==0xf3420bc0)
	    AP[0]=0;
	 }
      if ((c==55055)&&(AP[1]==0x8c8bb60c))
	 AP[0]=0;
      if (c==55825) {
	 if (AP[1]==0x1b847c86)
	    AP[0]=1;
	 if (AP[1]==0x9f7b0e56)
	    AP[0]=0;
	 if (AP[1]==0xd2d6d16c)
	    AP[0]=1;
	 }
      if (c==56353) {
	 if (AP[1]==0x9808d154)
	    AP[0]=1;
	 if (AP[1]==0x178d1636)
	    AP[0]=4;
	 if (AP[1]==0x96e86c6a)
	    AP[0]=2;
	 if (AP[1]==0xf8975fb0)
	    AP[0]=0;
	 if (AP[1]==0xbfa92bb4)
	    AP[0]=0;
	 }
      if (c==56413) {
	 if (AP[1]==0x417d83ec)
	    AP[0]=0xffffffed;
	 if (AP[1]==0x17a1f956)
	    AP[0]=0xfffffff8;
	 if (AP[1]==0x5008bbac)
	    AP[0]=0xfffffff5;
	 if (AP[1]==0x643cf6e0)
	    AP[0]=0xfffffff8;
	 if (AP[1]==0x190f3db8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7869abce)
	    AP[0]=0xffffffff;
	 }
      if (c==56737) {
	 if (AP[1]==0xad176db4)
	    AP[0]=2;
	 if (AP[1]==0x80749bfa)
	    AP[0]=0;
	 }
      if (c==56941) {
	 if (AP[1]==0x293bbe40)
	    AP[0]=16;
	 if (AP[1]==0xa4eef90)
	    AP[0]=4;
	 if (AP[1]==0x0293bbe4)
	    AP[0]=1;
	 }
      if ((c==57427)&&(AP[1]==0xc7ee74a2))
	 AP[0]=0;
      if (c==57691) {
	 if (AP[1]==0x9c3dc588)
	    AP[0]=0;
	 if (AP[1]==0x7ea1fd8a)
	    AP[0]=1;
	 if (AP[1]==0xd66a6e4c)
	    AP[0]=2;
	 if (AP[1]==0x83def9c4)
	    AP[0]=1;
	 }
      if (c==57941) {
	 if (AP[1]==0xa5a54f46)
	    AP[0]=0;
	 if (AP[1]==0x8bc487a8)
	    AP[0]=0;
	 }
      if ((c==58241)&&(AP[1]==0x57cb6fd4))
	 AP[0]=1;
      if (c==58943) {
	 if (AP[1]==0x5eb1baba)
	    AP[0]=1;
	 if (AP[1]==0xc54488f0)
	    AP[0]=0;
	 }
      if ((c==59087)&&(AP[1]==0x9ea5be7a))
	 AP[0]=0;
      if ((c==59213)&&(AP[1]==0x92bbebfa))
	 AP[0]=0;
      if ((c==59299)&&(AP[1]==0xb334b06e))
	 AP[0]=0;
      if (c==59575) {
	 if (AP[1]==0xd8b6d83a)
	    AP[0]=10;
	 if (AP[1]==0x936dca7c)
	    AP[0]=4;
	 if (AP[1]==0xf719fb9c)
	    AP[0]=0;
	 }
      if ((c==59687)&&(AP[1]==0xa0746c9e))
	 AP[0]=0;
      if (c==59695) {
	 if (AP[1]==0xd5b21d88)
	    AP[0]=0;
	 if (AP[1]==0x927e3164)
	    AP[0]=0;
	 }
      if (c==59767) {
	 if (AP[1]==0x5b49692e)
	    AP[0]=1;
	 if (AP[1]==0xf73fdfe6)
	    AP[0]=0;
	 }
      if ((c==60503)&&(AP[1]==0x8d9073dc))
	 AP[0]=0;
      if ((c==60841)&&(AP[1]==0x7dffd324))
	 AP[0]=1;
      if ((c==60883)&&(AP[1]==0x8f3bdcd4))
	 AP[0]=0;
      if (c==61135) {
	 if (AP[1]==0xb35236f2)
	    AP[0]=5;
	 if (AP[1]==0xcf4e79f2)
	    AP[0]=4;
	 if (AP[1]==0x0eeb527a)
	    AP[0]=4;
	 if (AP[1]==0x4864f3a6)
	    AP[0]=2;
	 if (AP[1]==0xdb261712)
	    AP[0]=0;
	 if (AP[1]==0xd006fc30)
	    AP[0]=0;
	 }
      if ((c==61147)&&(AP[1]==0x8b2dc9de))
	 AP[0]=0;
      if ((c==61325)&&(AP[1]==0x8161ab64))
	 AP[0]=0;
      if (c==61489) {
	 if (AP[1]==0xb0fcb7f8)
	    AP[0]=0;
	 if (AP[1]==0x899ec172)
	    AP[0]=11;
	 if (AP[1]==0x3d93d9aa)
	    AP[0]=9;
	 if (AP[1]==0x7717adac)
	    AP[0]=3;
	 if (AP[1]==0x8fa7c9e0)
	    AP[0]=1;
	 if (AP[1]==0xb41a23cc)
	    AP[0]=0;
	 }
      if ((c==61823)&&(AP[1]==0xdb5f6b76))
	 AP[0]=0;
      if ((c==61825)&&(AP[1]==0x8e6e4dc8))
	 AP[0]=0;
      if (c==61979) {
	 if (AP[1]==0xcd82e180)
	    AP[0]=16;
	 if (AP[1]==0x3360b860)
	    AP[0]=4;
	 if (AP[1]==0x0cd82e18)
	    AP[0]=1;
	 }
      if ((c==62167)&&(AP[1]==0xd85d1b70))
	 AP[0]=0;
      if (c==62299) {
	 if (AP[1]==0xc87c8bd4)
	    AP[0]=1;
	 if (AP[1]==0xe77c62f6)
	    AP[0]=1;
	 if (AP[1]==0xe75f5d9e)
	    AP[0]=0;
	 }
      if (c==62675) {
	 if (AP[1]==0x0f35314e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x138acfec)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0xebad5edc)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x3607b582)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe0716e8e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x95ae0634)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x477a4454)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd78a45d4)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x1f3b6558)
	    AP[0]=0xffffffff;
	 }
      if ((c==63307)&&(AP[1]==0x9651784c))
	 AP[0]=0;
      if (c==63991) {
	 if (AP[1]==0xb9ab4592)
	    AP[0]=0;
	 if (AP[1]==0x10bdcbc2)
	    AP[0]=2;
	 if (AP[1]==0x34a34242)
	    AP[0]=2;
	 if (AP[1]==0x2ecddf5e)
	    AP[0]=30;
	 if (AP[1]==0x533821b8)
	    AP[0]=14;
	 if (AP[1]==0x94ce086e)
	    AP[0]=3;
	 if (AP[1]==0xc164064a)
	    AP[0]=0;
	 }
      if ((c==64417)&&(AP[1]==0xb17a7d66))
	 AP[0]=0;
      if ((c==64543)&&(AP[1]==0xe7f05ecc))
	 AP[0]=0;
      if (c==65225) {
	 if (AP[1]==0xe02f3d1e)
	    AP[0]=0;
	 if (AP[1]==0xbd290a20)
	    AP[0]=0;
	 }
      if (c==65251) {
	 if (AP[1]==0x8f9bc056)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x64969c22)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x66960326)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x28d6ea00)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xb14fe1fe)
	    AP[0]=0xfffffffe;
	 }
      if ((c==65705)&&(AP[1]==0x9acd66e4))
	 AP[0]=0;
      if ((c==65977)&&(AP[1]==0x96c9e2a8))
	 AP[0]=0;
      if (c==66563) {
	 if (AP[1]==0x3df0bf22)
	    AP[0]=1;
	 if (AP[1]==0x2dcdcc6c)
	    AP[0]=1;
	 }
      if (c==66781) {
	 if (AP[1]==0xa9c868be)
	    AP[0]=0xffffff7d;
	 if (AP[1]==0xaf74f484)
	    AP[0]=0xffffffb5;
	 if (AP[1]==0x10e62f10)
	    AP[0]=0xfffffff2;
	 if (AP[1]==0x84398bc4)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x58cb0b6c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3b25f2d6)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0x5c72c4ea)
	    AP[0]=0xfffffff8;
	 if (AP[1]==0x8fd37966)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0x1e09b786)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0x33479c0c)
	    AP[0]=0xfffffff6;
	 if (AP[1]==0xb2b05528)
	    AP[0]=0xfffffff6;
	 if (AP[1]==0xacac154a)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xcaea0f2a)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x119baace)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x79e8331e)
	    AP[0]=0xffffffff;
	 }
      if (c==66805) {
	 if (AP[1]==0x825e30b6)
	    AP[0]=0;
	 if (AP[1]==0xa50147b8)
	    AP[0]=0;
	 }
      if ((c==66925)&&(AP[1]==0x86764858))
	 AP[0]=0;
      if (c==67087) {
	 if (AP[1]==0x0e456966)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x855a490a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xe22ee142)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0xe6848a82)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xf4d1a038)
	    AP[0]=0xfffffffe;
	 }
      if ((c==67199)&&(AP[1]==0xa4ec7a9e))
	 AP[0]=0;
      if ((c==67547)&&(AP[1]==0x5faa1b60))
	 AP[0]=1;
      if (c==67841) {
	 if (AP[1]==0x3fc8774e)
	    AP[0]=1;
	 if (AP[1]==0x606cb91e)
	    AP[0]=3;
	 if (AP[1]==0x460bb494)
	    AP[0]=4;
	 if (AP[1]==0xcd22741c)
	    AP[0]=0;
	 }
      if (c==67907) {
	 if (AP[1]==0x16656a66)
	    AP[0]=1;
	 if (AP[1]==0xa73f32ca)
	    AP[0]=0;
	 if (AP[1]==0x8d1e8dda)
	    AP[0]=0;
	 if (AP[1]==0xb29cc658)
	    AP[0]=0;
	 }
      if ((c==68461)&&(AP[1]==0x82506be0))
	 AP[0]=0;
      if ((c==68921)&&(AP[1]==0xecb5694a))
	 AP[0]=0;
      if ((c==68947)&&(AP[1]==0xd760b87c))
	 AP[0]=0;
      if (c==69301) {
	 if (AP[1]==0xa3ca3a16)
	    AP[0]=0;
	 if (AP[1]==0x5dd48a0a)
	    AP[0]=1;
	 }
      if (c==69391) {
	 if (AP[1]==0x8cb7fa82)
	    AP[0]=0;
	 if (AP[1]==0x8594837e)
	    AP[0]=0;
	 }
      if (c==69901) {
	 if (AP[1]==0x102b0112)
	    AP[0]=1;
	 if (AP[1]==0xc7e43bb8)
	    AP[0]=0;
	 }
      if ((c==70067)&&(AP[1]==0xce7b21f0))
	 AP[0]=0;
      if ((c==70247)&&(AP[1]==0x32dcbbd8))
	 AP[0]=1;
      if ((c==70289)&&(AP[1]==0x8bd54a0e))
	 AP[0]=0;
      if ((c==70331)&&(AP[1]==0xd8f117b0))
	 AP[0]=0;
      if ((c==70397)&&(AP[1]==0x3189a5f4))
	 AP[0]=1;
      if (c==70489) {
	 if (AP[1]==0x1cffb9f2)
	    AP[0]=2;
	 if (AP[1]==0x68fc2b86)
	    AP[0]=2;
	 if (AP[1]==0x24d505c4)
	    AP[0]=1;
	 }
      if ((c==70649)&&(AP[1]==0x8719e2ba))
	 AP[0]=0;
      if ((c==70763)&&(AP[1]==0x9cd9eaac))
	 AP[0]=0;
      if ((c==70801)&&(AP[1]==0x81e241d0))
	 AP[0]=0;
      if (c==70925) {
	 if (AP[1]==0x185c0124)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x788c2e6c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x54b19732)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x35cd7bba)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xec71bb4a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7d39c202)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x512719fe)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7781d072)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd0ba5c50)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x742e9714)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xc99f68fe)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3b985066)
	    AP[0]=0xffffffff;
	 }
      if (c==71233) {
	 if (AP[1]==0x9815027e)
	    AP[0]=0000000000;
	 if (AP[1]==0x89a67c22)
	    AP[0]=0x00000002;
	 if (AP[1]==0xb6b74ca6)
	    AP[0]=0000000000;
	 if (AP[1]==0x38a7894e)
	    AP[0]=0x00000001;
	 if (AP[1]==0x4de2c7d4)
	    AP[0]=0x00000001;
	 }
      if (c==71339) {
	 if (AP[1]==0x07dd7324)
	    AP[0]=0x00000001;
	 if (AP[1]==0x82c06d52)
	    AP[0]=0x00000002;
	 if (AP[1]==0x043173c8)
	    AP[0]=0x00000003;
	 if (AP[1]==0xc10c5cf2)
	    AP[0]=0000000000;
	 }
      if (c==71395) {
	 if (AP[1]==0x525dc490)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x784abd66)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x71a37fd6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7aab1bb4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x64e939e0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf54664d8)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x7d519936)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x266ec8aa)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xc886ac0a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xf932ec56)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x30f45338)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0x4c3d14ce)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5c972d86)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xeff2b83a)
	    AP[0]=0xfffffffe;
	 }
      if (c==71515) {
	 if (AP[1]==0xd5ce2696)
	    AP[0]=0;
	 if (AP[1]==0xabb7da5c)
	    AP[0]=0;
	 if (AP[1]==0x94468f24)
	    AP[0]=0;
	 if (AP[1]==0xe3266438)
	    AP[0]=0;
	 if (AP[1]==0xcf6b2b52)
	    AP[0]=0;
	 }
      if ((c==71551)&&(AP[1]==0x9ff64bd0))
	 AP[0]=0;
      if ((c==71629)&&(AP[1]==0x05923ab2))
	 AP[0]=1;
      if (c==71671) {
	 if (AP[1]==0x9e5f3f86)
	    AP[0]=1;
	 if (AP[1]==0x9b63fdd0)
	    AP[0]=0;
	 }
      if (c==72089) {
	 if (AP[1]==0x4ba528b0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x75a017cc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xfb7c4ba0)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x32278dee)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7124bbf6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6013865a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x17462dc0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x37b5e526)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xd3818712)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x63172e48)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd1cde5c4)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xc8c443d8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3daf6ac6)
	    AP[0]=0xffffffff;
	 }
      if (c==72451) {
	 if (AP[1]==0xb2712c4a)
	    AP[0]=0;
	 if (AP[1]==0x9690cd72)
	    AP[0]=0;
	 }
      if (c==72743) {
	 if (AP[1]==0xc2b8a4fc)
	    AP[0]=0;
	 if (AP[1]==0x8aa4a9fe)
	    AP[0]=0;
	 if (AP[1]==0x839d425c)
	    AP[0]=0;
	 }
      if (c==72779) {
	 if (AP[1]==0x1249aab4)
	    AP[0]=2;
	 if (AP[1]==0x79887d12)
	    AP[0]=1;
	 if (AP[1]==0xc9961b32)
	    AP[0]=0;
	 }
      if ((c==73013)&&(AP[1]==0x88243748))
	 AP[0]=0;
      if ((c==73087)&&(AP[1]==0x9aa20dec))
	 AP[0]=0;
      if ((c==73115)&&(AP[1]==0xa29f606e))
	 AP[0]=0;
      if (c==73265) {
	 if (AP[1]==0x0d5a74d6)
	    AP[0]=1;
	 if (AP[1]==0x6c0fb590)
	    AP[0]=1;
	 }
      if (c==73457) {
	 if (AP[1]==0x7fc892d4)
	    AP[0]=10;
	 if (AP[1]==0xf7f5e344)
	    AP[0]=1;
	 if (AP[1]==0xc9d47bde)
	    AP[0]=0;
	 if (AP[1]==0x7f2d152a)
	    AP[0]=1;
	 if (AP[1]==0x8fb12fac)
	    AP[0]=0;
	 }
      if (c==73511) {
	 if (AP[1]==0x42451024)
	    AP[0]=1;
	 if (AP[1]==0xcbf1fb7e)
	    AP[0]=0;
	 if (AP[1]==0x46b42538)
	    AP[0]=1;
	 }
      if (c==73825) {
	 if (AP[1]==0x870f5ede)
	    AP[0]=0;
	 if (AP[1]==0xaaf1bdd6)
	    AP[0]=0;
	 if (AP[1]==0x9246b308)
	    AP[0]=0;
	 }
      if ((c==74405)&&(AP[1]==0xf01785d4))
	 AP[0]=0;
      if ((c==74419)&&(AP[1]==0xbb3b8206))
	 AP[0]=0;
      if ((c==74467)&&(AP[1]==0x990d26dc))
	 AP[0]=0;
      if ((c==74503)&&(AP[1]==0xdf67cd18))
	 AP[0]=1;
      if (c==74867) {
	 if (AP[1]==0xaa7e9c90)
	    AP[0]=0;
	 if (AP[1]==0x15425986)
	    AP[0]=1;
	 }
      if (c==74869) {
	 if (AP[1]==0xf559e5de)
	    AP[0]=5;
	 if (AP[1]==0x5a034816)
	    AP[0]=3;
	 if (AP[1]==0x28bbd41e)
	    AP[0]=24;
	 if (AP[1]==0x96ea5e1a)
	    AP[0]=13;
	 if (AP[1]==0x5de046ca)
	    AP[0]=18;
	 if (AP[1]==0x2a6793dc)
	    AP[0]=5;
	 if (AP[1]==0xa26c4a34)
	    AP[0]=1;
	 }
      if (c==74897) {
	 if (AP[1]==0x0d960a60)
	    AP[0]=3;
	 if (AP[1]==0xc3658298)
	    AP[0]=0;
	 }
      if (c==74977) {
	 if (AP[1]==0xb781b17c)
	    AP[0]=0;
	 if (AP[1]==0x054e1ace)
	    AP[0]=1;
	 if (AP[1]==0x7e00d834)
	    AP[0]=3;
	 if (AP[1]==0xa7a071c2)
	    AP[0]=0;
	 }
      if ((c==74989)&&(AP[1]==0x90bf23c0))
	 AP[0]=0;
      if (c==75067) {
	 if (AP[1]==0xbf7e3f7a)
	    AP[0]=0;
	 if (AP[1]==0x1695a196)
	    AP[0]=8;
	 if (AP[1]==0x465a95bc)
	    AP[0]=2;
	 }
      if ((c==75259)&&(AP[1]==0xe1a17c1c))
	 AP[0]=0;
      if (c==75325) {
	 if (AP[1]==0xd207d862)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7cb99272)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf709cc60)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x7dc27318)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1cb83f72)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x78554dd4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x0415c530)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7f536680)
	    AP[0]=0xffffffff;
	 }
      if ((c==75331)&&(AP[1]==0xc4a6f4e2))
	 AP[0]=0;
      if ((c==75383)&&(AP[1]==0x96ab029c))
	 AP[0]=0;
      if ((c==75667)&&(AP[1]==0x8e9e4378))
	 AP[0]=0;
      if ((c==75815)&&(AP[1]==0x3fb6b906))
	 AP[0]=1;
      if ((c==75859)&&(AP[1]==0x37bd9530))
	 AP[0]=1;
      if ((c==75971)&&(AP[1]==0x8e0c7d4a))
	 AP[0]=0;
      if (c==76085) {
	 if (AP[1]==0x86fe968c)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x88f4c872)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x735c1578)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf8d6d2e2)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x70f86318)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x50098798)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3269bb60)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7a94bb9e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7c59dbba)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3de4b762)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5d64576e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x569c7eac)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5f3a6018)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xae2af2aa)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x09c9eba2)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0x23ac02aa)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xf072848e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x766b8bbc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5e46d060)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0x5791b418)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x6cf2e1d6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x36ea75fc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd64b6ade)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xc88b25de)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x50ceff0e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xdc541056)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x49230f62)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xfb6d7012)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x67a4b1ae)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x8609c190)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0x61827064)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7236ee7a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x66dff4a4)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x1bc78eb8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6298a304)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf94a7838)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x0ee5a54a)
	    AP[0]=0xfffffff1;
	 if (AP[1]==0xcc311884)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0x36497ee6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x77b68954)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xdaa611ec)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0xcdff0f3a)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0xb65d45f4)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0xaefa79da)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x71d2b8c0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xeb37f7d6)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x8e9b7210)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0xe3a6dc84)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x9ae12bda)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x69580bd8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7f361958)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x58c6cd2e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x9acc7b00)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x17477b9e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7d18ef4a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x72a9896c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4c800ac2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xb1a2f1ce)
	    AP[0]=0xfffffff9;
	 if (AP[1]==0x01357906)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x51067f0c)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x4a301e88)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd55d40c6)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x04080f96)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4dc5f0c0)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x3c9dbd3c)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x34ad4d16)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1ed0d44e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xc34a9a72)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0xc93c4438)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x66b2da96)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x088239a8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3fdc00f2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x467c4286)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x8b7a3910)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7584bb9e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x468ae79e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x71a82d58)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x53fc184c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x650b1586)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7d42bb18)
	    AP[0]=0xffffffff;
	 }
      if (c==76141) {
	 if (AP[1]==0xabdb0842)
	    AP[0]=2;
	 if (AP[1]==0x000726d74)
	    AP[0]=1;
	 }
      if (c==76171) {
	 if (AP[1]==0x6ad415ea)
	    AP[0]=4;
	 if (AP[1]==0xde5a44bc)
	    AP[0]=18;
	 if (AP[1]==0x89b13746)
	    AP[0]=3;
	 if (AP[1]==0x3d2403d6)
	    AP[0]=2;
	 if (AP[1]==0xb559b1a0)
	    AP[0]=0;
	 }
      if ((c==76235)&&(AP[1]==0xa12c8dee))
	 AP[0]=0;
      if ((c==76405)&&(AP[1]==0xb5b2a442))
	 AP[0]=0;
      if ((c==76535)&&(AP[1]==0xca445e5e))
	 AP[0]=0;
      if (c==76895) {
	 if (AP[1]==0x952e82ee)
	    AP[0]=0;
	 if (AP[1]==0x9f52cb08)
	    AP[0]=0;
	 }
      if ((c==77189)&&(AP[1]==0xc46a0120))
	 AP[0]=0;
      if (c==77287) {
	 if (AP[1]==0xc0fa1572)
	    AP[0]=0;
	 if (AP[1]==0x6e5ea80c)
	    AP[0]=1;
	 }
      if (c==77299) {
	 if (AP[1]==0x90f6f118)
	    AP[0]=0;
	 if (AP[1]==0x1ff811b2)
	    AP[0]=1;
	 if (AP[1]==0xa1fc46ac)
	    AP[0]=0;
	 }
      if (c==77393) {
	 if (AP[1]==0x72311088)
	    AP[0]=2;
	 if (AP[1]==0x9c8c4422)
	    AP[0]=0;
	 }
      if (c==77465) {
	 if (AP[1]==0x989e2bc6)
	    AP[0]=3;
	 if (AP[1]==0x69e0ca08)
	    AP[0]=3;
	 if (AP[1]==0xda783282)
	    AP[0]=0;
	 if (AP[1]==0x9b8aba36)
	    AP[0]=0;
	 }
      if ((c==77717)&&(AP[1]==0xbc393504))
	 AP[0]=0;
      if (c==77791) {
	 if (AP[1]==0xa3e66bfe)
	    AP[0]=0;
	 if (AP[1]==0x93b45878)
	    AP[0]=0;
	 }
      if (c==78083) {
	 if (AP[1]==0x194d6da2)
	    AP[0]=1;
	 if (AP[1]==0xfaf19128)
	    AP[0]=1;
	 }
      if ((c==78581)&&(AP[1]==0x98873c66))
	 AP[0]=0;
      if (c==79103) {
	 if (AP[1]==0xcbacc20c)
	    AP[0]=0;
	 if (AP[1]==0x9ae78afa)
	    AP[0]=0;
	 }
      if ((c==79169)&&(AP[1]==0xaf366334))
	 AP[0]=0;
      if ((c==79409)&&(AP[1]==0xa6604540))
	 AP[0]=0;
      if (c==79513) {
	 if (AP[1]==0x7d88aa38)
	    AP[0]=6;
	 if (AP[1]==0x9f622a8e)
	    AP[0]=1;
	 if (AP[1]==0x14985cca)
	    AP[0]=3;
	 if (AP[1]==0x27b97072)
	    AP[0]=1;
	 }
      if (c==79621) {
	 if (AP[1]==0xbb010a1c)
	    AP[0]=0;
	 if (AP[1]==0x2b95fd32)
	    AP[0]=1;
	 }
      if (c==80335) {
	 if (AP[1]==0xefbb3548)
	    AP[0]=2;
	 if (AP[1]==0xbbeecd52)
	    AP[0]=0;
	 }
      if ((c==80807)&&(AP[1]==0xd558226c))
	 AP[0]=0;
      if (c==80989) {
	 if (AP[1]==0x92c94112)
	    AP[0]=24;
	 if (AP[1]==0x370bc77e)
	    AP[0]=9;
	 if (AP[1]==0xe339db8c)
	    AP[0]=3;
	 if (AP[1]==0x890e4cb4)
	    AP[0]=5;
	 if (AP[1]==0xc7468d32)
	    AP[0]=0;
	 }
      if ((c==81043)&&(AP[1]==0x9b182d74))
	 AP[0]=0;
      if ((c==81235)&&(AP[1]==0x8ee8dc1c))
	 AP[0]=0;
      if (c==81319) {
	 if (AP[1]==0xec9227e0)
	    AP[0]=1;
	 if (AP[1]==0xde056f98)
	    AP[0]=0;
	 }
      if ((c==81421)&&(AP[1]==0xc37a3be4))
	 AP[0]=0;
      if ((c==81521)&&(AP[1]==0xd38d8a4c))
	 AP[0]=0;
      if ((c==81599)&&(AP[1]==0x3553021e))
	 AP[0]=0xffffffff;
      if ((c==81851)&&(AP[1]==0x8b6ec91a))
	 AP[0]=0;
      if (c==81943) {
	 if (AP[1]==0x355c602a)
	    AP[0]=12;
	 if (AP[1]==0xde04be26)
	    AP[0]=6;
	 if (AP[1]==0x93421754)
	    AP[0]=2;
	 if (AP[1]==0xb96b5e9e)
	    AP[0]=0;
	 if (AP[1]==0x8403bbb4)
	    AP[0]=0;
	 }
      if ((c==82189)&&(AP[1]==0xefcda9e4))
	 AP[0]=0;
      if (c==82745) {
	 if (AP[1]==0xae5493c2)
	    AP[0]=0;
	 if (AP[1]==0xa2e89b10)
	    AP[0]=1;
	 }
      if ((c==83183)&&(AP[1]==0xc6108128))
	 AP[0]=0;
      if (c==83581) {
	 if (AP[1]==0xbb68530e)
	    AP[0]=0;
	 if (AP[1]==0xc8263f78)
	    AP[0]=0;
	 }
      if (c==83647) {
	 if (AP[1]==0x165c848c)
	    AP[0]=2;
	 if (AP[1]==0xf0c75a48)
	    AP[0]=0;
	 }
      if ((c==83977)&&(AP[1]==0xc24103c8))
	 AP[0]=1;
      if ((c==84197)&&(AP[1]==0x83860562))
	 AP[0]=0;
      if (c==84229) {
	 if (AP[1]==0xee9cadbe)
	    AP[0]=0;
	 if (AP[1]==0x8638ef5e)
	    AP[0]=0;
	 }
      if (c==84679) {
	 if (AP[1]==0xdf7b5d42)
	    AP[0]=0;
	 if (AP[1]==0xbc919f7c)
	    AP[0]=0;
	 }
      if (c==84767) {
	 if (AP[1]==0x53ee499a)
	    AP[0]=3;
	 if (AP[1]==0xdf36d85a)
	    AP[0]=1;
	 if (AP[1]==0x0d8fa8a6)
	    AP[0]=1;
	 }
      if (c==85105) {
	 if (AP[1]==0x112baa76)
	    AP[0]=0x00000001;
	 if (AP[1]==0xdef230e2)
	    AP[0]=0x00000019;
	 if (AP[1]==0x11d4fa1a)
	    AP[0]=0x00000003;
	 if (AP[1]==0x26b030e6)
	    AP[0]=0x00000001;
	 if (AP[1]==0xa5c3eb48)
	    AP[0]=0;
	 if (AP[1]==0x871540f6)
	    AP[0]=0;
	 if (AP[1]==0xc9096776)
	    AP[0]=0x00000005;
	 if (AP[1]==0x16c9df08)
	    AP[0]=0x00000003;
	 if (AP[1]==0xc5b277c2)
	    AP[0]=0;
	 if (AP[1]==0xf143879e)
	    AP[0]=0;
	 if (AP[1]==0xaf100c54)
	    AP[0]=0x00000002;
	 if (AP[1]==0x80d3556c)
	    AP[0]=0;
	 if (AP[1]==0xa7ed39ce)
	    AP[0]=0;
	 if (AP[1]==0x8db1b38c)
	    AP[0]=0;
	 if (AP[1]==0xeff65202)
	    AP[0]=0x00000002;
	 if (AP[1]==0xd37dd882)
	    AP[0]=0;
	 if (AP[1]==0xb2d40f78)
	    AP[0]=0x00000001;
	 if (AP[1]==0xce63ed5c)
	    AP[0]=0;
	 if (AP[1]==0xb0b577b8)
	    AP[0]=0x00000004;
	 if (AP[1]==0x2c2d5dee)
	    AP[0]=0x00000001;
	 if (AP[1]==0xab6abd32)
	    AP[0]=0x00000001;
	 if (AP[1]==0x2a13240c)
	    AP[0]=0x0000004e;
	 if (AP[1]==0xfbd631ea)
	    AP[0]=0x00000015;
	 if (AP[1]==0x3e70a5d4)
	    AP[0]=0x00000008;
	 if (AP[1]==0x8bb57234)
	    AP[0]=0x00000001;
	 if (AP[1]==0x9df5cf9a)
	    AP[0]=0;
	 if (AP[1]==0xb30877dc)
	    AP[0]=0;
	 if (AP[1]==0xbf9a1a9e)
	    AP[0]=0;
	 if (AP[1]==0x17c12d80)
	    AP[0]=0x00000008;
	 if (AP[1]==0x05f04b60)
	    AP[0]=0x00000002;
	 if (AP[1]==0x817c12d8)
	    AP[0]=0;
	 if (AP[1]==0x139a313a)
	    AP[0]=0x00000093;
	 if (AP[1]==0x275a2592)
	    AP[0]=0x00000037;
	 if (AP[1]==0x449b3520)
	    AP[0]=0x00000017;
	 if (AP[1]==0xd126cd48)
	    AP[0]=0x00000005;
	 if (AP[1]==0x7449b352)
	    AP[0]=0x00000001;
	 }
      if ((c==85141)&&(AP[1]==0xe32ed014))
	 AP[0]=1;
      if ((c==85297)&&(AP[1]==0xa58490e8))
	 AP[0]=0;
      if (c==85339) {
	 if (AP[1]==0x16523e8e)
	    AP[0]=2;
	 if (AP[1]==0xc85f2acc)
	    AP[0]=0;
	 }
      if ((c==85393)&&(AP[1]==0x81553524))
	 AP[0]=1;
      if ((c==85811)&&(AP[1]==0x88a1993e))
	 AP[0]=0;
      if (c==85855) {
	 if (AP[1]==0x3e251018)
	    AP[0]=3;
	 if (AP[1]==0xcf894406)
	    AP[0]=0;
	 }
      if ((c==85999)&&(AP[1]==0x982bad20))
	 AP[0]=0;
      if ((c==86437)&&(AP[1]==0xc5673a8a))
	 AP[0]=0;
      if ((c==86627)&&(AP[1]==0xafde89b8))
	 AP[0]=1;
      if ((c==86671)&&(AP[1]==0x9d2f6850))
	 AP[0]=0;
      if (c==86713) {
	 if (AP[1]==0x0ebe5644)
	    AP[0]=9;
	 if (AP[1]==0xe91d592a)
	    AP[0]=1;
	 if (AP[1]==0xb76b561e)
	    AP[0]=0;
	 }
      if (c==87391) {
	 if (AP[1]==0x6b8779f0)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x70ed772a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x57a523a2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x2aefb682)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x66898d30)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x69e624f6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5a78f52a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4a79630e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x77d20e0e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5a8dd34c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xfaf9baa4)
	    AP[0]=0xfffffffe;
	 }
      if (c==87575) {
	 if (AP[1]==0x16b3433e)
	    AP[0]=2;
	 if (AP[1]==0xa92ff650)
	    AP[0]=0;
	 }
      if ((c==88661)&&(AP[1]==0xb174373e))
	 AP[0]=0;
      if (c==88673) {
	 if (AP[1]==0x97c2f2ae)
	    AP[0]=0;
	 if (AP[1]==0x800e1816)
	    AP[0]=0;
	 if (AP[1]==0xcd97fc8c)
	    AP[0]=1;
	 if (AP[1]==0x81d39784)
	    AP[0]=0;
	 }
      if ((c==88721)&&(AP[1]==0x3099207a))
	 AP[0]=1;
      if ((c==88841)&&(AP[1]==0x02d44194))
	 AP[0]=1;
      if (c==89015) {
	 if (AP[1]==0x19a33898)
	    AP[0]=2;
	 if (AP[1]==0x8668ce26)
	    AP[0]=0;
	 }
      if ((c==89309)&&(AP[1]==0x87787c16))
	 AP[0]=0;
      if (c==89555) {
	 if (AP[1]==0x997598da)
	    AP[0]=1;
	 if (AP[1]==0x6a8592be)
	    AP[0]=3;
	 if (AP[1]==0x47f26e7c)
	    AP[0]=1;
	 }
      if (c==89587) {
	 if (AP[1]==0xecf11784)
	    AP[0]=2;
	 if (AP[1]==0x63777d50)
	    AP[0]=1;
	 }
      if (c==90695) {
	 if (AP[1]==0x843086d2)
	    AP[0]=0;
	 if (AP[1]==0xa7503a42)
	    AP[0]=0;
	 if (AP[1]==0x8d2d55dc)
	    AP[0]=0;
	 }
      if ((c==90727)&&(AP[1]==0x81bcf98c))
	 AP[0]=0;
      if (c==90763) {
	 if (AP[1]==0xec22fa8a)
	    AP[0]=0;
	 if (AP[1]==0x503bd580)
	    AP[0]=1;
	 }
      if (c==91043) {
	 if (AP[1]==0x5125da7c)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7da0a0ce)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x636f9570)
	    AP[0]=0xffffffff;
	 }
      if (c==91241) {
	 if (AP[1]==0xaf46eb14)
	    AP[0]=0;
	 if (AP[1]==0x049c1400)
	    AP[0]=20;
	 if (AP[1]==0x01270500)
	    AP[0]=5;
	 if (AP[1]==0x4049c140)
	    AP[0]=1;
	 }
      if (c==91397) {
	 if (AP[1]==0x01f5292a)
	    AP[0]=3;
	 if (AP[1]==0xd88d8fc6)
	    AP[0]=0;
	 }
      if (c==91861) {
	 if (AP[1]==0x231c5e3a)
	    AP[0]=23;
	 if (AP[1]==0xf183d7cc)
	    AP[0]=32;
	 if (AP[1]==0xb9fa77a2)
	    AP[0]=11;
	 if (AP[1]==0x65be4692)
	    AP[0]=4;
	 if (AP[1]==0xa627b42c)
	    AP[0]=1;
	 if (AP[1]==0x90bc4f0c)
	    AP[0]=1;
	 if (AP[1]==0xa9111b76)
	    AP[0]=0;
	 if (AP[1]==0xd5fc7fa2)
	    AP[0]=0;
	 }
      if ((c==91921)&&(AP[1]==0x9989afb8))
	 AP[0]=0;
      if (c==92141) {
	 if (AP[1]==0x2944fdfe)
	    AP[0]=1;
	 if (AP[1]==0xf213408a)
	    AP[0]=7;
	 if (AP[1]==0x8399660a)
	    AP[0]=2;
	 if (AP[1]==0x01bdbd42)
	    AP[0]=1;
	 }
      if (c==92155) {
	 if (AP[1]==0x39caccf2)
	    AP[0]=4;
	 if (AP[1]==0x2745330c)
	    AP[0]=10;
	 if (AP[1]==0x2449df00)
	    AP[0]=2;
	 if (AP[1]==0x891277c0)
	    AP[0]=0;
	 }
      if (c==92485) {
	 if (AP[1]==0xfbcb2e78)
	    AP[0]=2;
	 if (AP[1]==0xbef2cb9e)
	    AP[0]=0;
	 }
      if (c==93725) {
	 if (AP[1]==0x2367ac96)
	    AP[0]=1;
	 if (AP[1]==0xb8693cd0)
	    AP[0]=0;
	 }
      if ((c==93779)&&(AP[1]==0x98ac21a4))
	 AP[0]=0;
      if (c==93857) {
	 if (AP[1]==0x64b51e9e)
	    AP[0]=1;
	 if (AP[1]==0xf9dc6f38)
	    AP[0]=2;
	 if (AP[1]==0xbe771bce)
	    AP[0]=0;
	 }
      if (c==94015) {
	 if (AP[1]==0x1f2f772e)
	    AP[0]=1;
	 if (AP[1]==0x65641ea4)
	    AP[0]=2;
	 if (AP[1]==0x02c7f108)
	    AP[0]=1;
	 if (AP[1]==0xcf4be188)
	    AP[0]=0;
	 }
      if ((c==94343)&&(AP[1]==0x881144f0))
	 AP[0]=0;
      if (c==94447) {
	 if (AP[1]==0x66ff92dc)
	    AP[0]=0xffffffef;
	 if (AP[1]==0x5fccc5ba)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x85e415ce)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xf2d52314)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xa35a5e82)
	    AP[0]=0xfffffff5;
	 if (AP[1]==0xe2c14d02)
	    AP[0]=0xfffffff2;
	 }
      if ((c==94597)&&(AP[1]==0xe54b95f4))
	 AP[0]=0;
      if ((c==94675)&&(AP[1]==0x87d25c0e))
	 AP[0]=0;
      if (c==94697) {
	 if (AP[1]==0xef02c6bc)
	    AP[0]=2;
	 if (AP[1]==0x3cd6e31c)
	    AP[0]=1;
	 }
      if (c==94949) {
	 if (AP[1]==0x81e462de)
	    AP[0]=0;
	 if (AP[1]==0x83b723be)
	    AP[0]=0;
	 }
      if ((c==95035)&&(AP[1]==0xaf00c8ee))
	 AP[0]=0;
      if ((c==95171)&&(AP[1]==0x67999e3c))
	 AP[0]=2;
      if ((c==95393)&&(AP[1]==0x92f7b834))
	 AP[0]=0;
      if ((c==95399)&&(AP[1]==0xc41108d8))
	 AP[0]=0;
      if (c==95665) {
	 if (AP[1]==0xa159b56e)
	    AP[0]=0;
	 if (AP[1]==0xac5107fe)
	    AP[0]=0;
	 if (AP[1]==0xa393814e)
	    AP[0]=0;
	 if (AP[1]==0x8a0630dc)
	    AP[0]=0;
	 if (AP[1]==0x936bb6c0)
	    AP[0]=0;
	 }
      if ((c==95873)&&(AP[1]==0xa6deb368))
	 AP[0]=0;
      if (c==96029) {
	 if (AP[1]==0xea6052ce)
	    AP[0]=8;
	 if (AP[1]==0x03d71906)
	    AP[0]=5;
	 if (AP[1]==0xa00fa896)
	    AP[0]=7;
	 if (AP[1]==0xd34b948c)
	    AP[0]=4;
	 if (AP[1]==0xdee0b9d6)
	    AP[0]=6;
	 if (AP[1]==0xe42e01c2)
	    AP[0]=4;
	 if (AP[1]==0xd5919e70)
	    AP[0]=1;
	 }
      if ((c==96187)&&(AP[1]==0x94337338))
	 AP[0]=0;
      if (c==96361) {
	 if (AP[1]==0x80c5b402)
	    AP[0]=1;
	 if (AP[1]==0xa254bd10)
	    AP[0]=0;
	 }
      if ((c==96407)&&(AP[1]==0x82fea364))
	 AP[0]=0;
      if ((c==96517)&&(AP[1]==0xaa2ff5ac))
	 AP[0]=0;
      if ((c==96791)&&(AP[1]==0xabd1f58e))
	 AP[0]=0;
      if (c==96985) {
	 if (AP[1]==0x941fdd72)
	    AP[0]=0;
	 if (AP[1]==0x9e34dd6e)
	    AP[0]=0;
	 if (AP[1]==0xc83de9c8)
	    AP[0]=0;
	 }
      if (c==97087) {
	 if (AP[1]==0x915e6032)
	    AP[0]=0;
	 if (AP[1]==0x9b4059a4)
	    AP[0]=0;
	 }
      if (c==97217) {
	 if (AP[1]==0x4b978cf4)
	    AP[0]=1;
	 if (AP[1]==0xbd1f70fc)
	    AP[0]=0;
	 if (AP[1]==0xfd149934)
	    AP[0]=7;
	 if (AP[1]==0x7f743baa)
	    AP[0]=1;
	 if (AP[1]==0x8fcbf550)
	    AP[0]=0;
	 }
      if (c==97513) {
	 if (AP[1]==0xe70e3896)
	    AP[0]=0;
	 if (AP[1]==0x81f8ede6)
	    AP[0]=0;
	 if (AP[1]==0x8ed2acc2)
	    AP[0]=0;
	 }
      if ((c==97529)&&(AP[1]==0xd00ff652))
	 AP[0]=0;
      if ((c==97759)&&(AP[1]==0x8f356bd6))
	 AP[0]=0;
      if ((c==98093)&&(AP[1]==0x99843a70))
	 AP[0]=0;
      if (c==98257) {
	 if (AP[1]==0x9864dbee)
	    AP[0]=0;
	 if (AP[1]==0x895483ea)
	    AP[0]=0;
	 }
      if (c==98315) {
	 if (AP[1]==0xd2fa9b00)
	    AP[0]=2;
	 if (AP[1]==0xb4bea6c0)
	    AP[0]=0;
	 }
      if (c==98585) {
	 if (AP[1]==0xcd052634)
	    AP[0]=14;
	 if (AP[1]==0xc6715770)
	    AP[0]=2;
	 if (AP[1]==0xb19c55dc)
	    AP[0]=0;
	 }
      if ((c==98909)&&(AP[1]==0x806da7f0))
	 AP[0]=0;
      if (c==99173) {
	 if (AP[1]==0x8c2b7fee)
	    AP[0]=0;
	 if (AP[1]==0x89b709ae)
	    AP[0]=0;
	 }
      if (c==99419) {
	 if (AP[1]==0x8ce8ddc0)
	    AP[0]=6;
	 if (AP[1]==0xa33a3770)
	    AP[0]=1;
	 }
      if ((c==99569)&&(AP[1]==0xff8b12fa))
	 AP[0]=0;
      if ((c==99743)&&(AP[1]==0xa5e31524))
	 AP[0]=0;
      if ((c==99901)&&(AP[1]==0xb95cb138))
	 AP[0]=1;
//
// Note: Not all big attachment points given for c>100000
//
      if ((c==103261)&&(AP[1]==0xbb750f68))
	 AP[0]=0xfffffffb;
      if (c==103645) {
	 if (AP[1]==0xea2ace18)
	    AP[0]=8;
	 if (AP[1]==0xad16aadc)
	    AP[0]=4;
	 if (AP[1]==0xba1c78de)
	    AP[0]=0;
	 if (AP[1]==0x96b3a004)
	    AP[0]=0;
	 }
      if ((c==106051)&&(AP[1]==0x8c0291be))
	 AP[0]=0xffffffe0;
      if ((c==106519)&&(AP[1]==0x8f707486))
	 AP[0]=0xfffffffa;
      if ((c==112445)&&(AP[1]==0x94441a06))
	 AP[0]=0;
      if ((c==118829)&&(AP[1]==0x49ee59f2))
	 AP[0]=0xffffffff;
      if ((c==126245)&&(AP[1]==0x8f1e3f60))
	 AP[0]=0;
      if ((c==132175)&&(AP[1]==0x636820e8))
	 AP[0]=0xffffffff;
      if ((c==133357)&&(AP[1]==0x85c8018c))
	 AP[0]=0xfffffffe;
      if (c==137003) {
	 if (AP[1]==0xd28fd794)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x8f7245fa)
	    AP[0]=0xffffffa2;
	 }
      if (c==138197) {
	 if (AP[1]==0x2eaded22)
	    AP[0]=0xfffffff5;
	 if (AP[1]==0x510706ec)
	    AP[0]=0xfffffff6;
	 }
      if ((c==148019)&&(AP[1]==0xef84eb50))
	 AP[0]=0xfffffffd;
      if ((c==155275)&&(AP[1]==0x5147163a))
	 AP[0]=6;
      if ((c==156695)&&(AP[1]==0x30642f1c))
	 AP[0]=0xfffffffe;
      if (c==157439) {
	 if (AP[1]==0xb4a5a222)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x06af2aec)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6c1fda66)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xb451c9b8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x4d287086)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe0facf70)
	    AP[0]=0xfffffffe;
	 }
      if (c==158195) {
	 if (AP[1]==0x993a246a)
	    AP[0]=0;
	 if (AP[1]==0x51f9724e)
	    AP[0]=2;
	 if (AP[1]==0xd1cb53da)
	    AP[0]=24;
	 if (AP[1]==0x8c896fa6)
	    AP[0]=0;
	 if (AP[1]==0x8162db6c)
	    AP[0]=0;
	 if (AP[1]==0xfc4a80ee)
	    AP[0]=0;
	 if (AP[1]==0xd0c73d16)
	    AP[0]=1;
	 }
      if (c==158921) {
	 if (AP[1]==0xb37bf3bc)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xb3c1c418)
	    AP[0]=0xfffffff2;
	 }
      if (c==165857) {
	 if (AP[1]==0x069fa392)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3293d6ba)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4eccb614)
	    AP[0]=0xfffffffb;
	 }
      if ((c==167191)&&(AP[1]==0x2ad39bc0))
	  AP[0]=0xfffffffe;
      if ((c==167273)&&(AP[1]==0x58323238))
	 AP[0]=1;
      if (c==168881) {
	 if (AP[1]==0xda21a36a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7a20fe34)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x2d698f04)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x72bb254c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5eee41a4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x50500920)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe3a49d44)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x45cf94da)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x764da0ae)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0x427ff298)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xcec93998)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xa0530ad6)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x85651d96)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0x41371bd8)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x2d111ad0)
	    AP[0]=0xfffffff4;
	 if (AP[1]==0xb993a48c)
	    AP[0]=0xfffffff9;
	 }
      if (c==169495) {
	 if (AP[1]==0x4d634956)
	    AP[0]= 0xffffffff;
	 if (AP[1]==0x0f08dc50)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xab6c29fe)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xb188fdfc)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x1552ce0e)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xfdbfb118)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xb231aa84)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x588d5abe)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3a1cd3c8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x74da14c8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x440d5a98)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe35aa338)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x4296dc7c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4bd6ea4c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5da2b1e0)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0x81d1acf8)
	    AP[0]=0xfffffffc;
	 if (AP[1]==0xabc2ba3a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x77b75832)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x769d4bde)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf64f9c62)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x6951c056)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x2144b416)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x6f46c484)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5da4faf8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x23628f08)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x0dca809c)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0x1810e3f8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x8b55874c)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xa7049658)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0xb36b9216)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x48cc8558)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x705715b2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3b5a8bc8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4bc10f28)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4ede9ede)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x51bf9e34)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7f1f66fc)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x20bc5536)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x58ed4126)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x33e3ca7a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7c921670)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1d4c0366)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x31e78a88)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x4983a27a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xa7a7e24c)
	    AP[0]=0xfffffffb;
	 }
      if (c==169949) {
	 if (AP[1]==0x9f9cdfbc)
	    AP[0]=2;
	 if (AP[1]==0x81c15ed8)
	    AP[0]=0;
	 }
      if (c==173111) {
	 if (AP[1]==0x6570036a)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x122f8d94)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xf8902abc)
	    AP[0]=0xfffffffe;
	 }
      if ((c==176263)&&(AP[1]==0xc4e649d8))
	 AP[0]=0;
      if (c==178825) {
	 if (AP[1]==0x86cf4f3c)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x1cc39646)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7ba57fb2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x39589862)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xbc490972)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x736e35f6)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x11e36700)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x94c2a180)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x47f66eb0)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x6992840c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x388d0c7a)
	    AP[0]=0xffffffee;
	 if (AP[1]==0x4952e706)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x00554b34)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x8b2c2dd8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x43942af0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x037b3866)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6dc45a46)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x939e9e38)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xca667a1e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x97f5df14)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x66bf76f2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7b270a58)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x36450a52)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6d44bf54)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x7105cdf0)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xe82c5fe0)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x9c6ed270)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x17e1c8e8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x9599dc3c)
	    AP[0]=0xfffffffb;
	 if (AP[1]==0xdcd0af84)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x85c57c68)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x5b339d72)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x3c1104a2)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xe687ca76)
	    AP[0]=0xfffffffa;
	 if (AP[1]==0x17b017fc)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xa23d7fb2)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x6cea6fc2)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xb7000b08)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x3bed4cf8)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x69f95e88)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x9fde3da4)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x761a2fea)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x153b4d10)
	    AP[0]=0xffffffff;
	 }
      if ((c==182881)&&(AP[1]==0x65e45c4c))
	 AP[0]=0xffffffff;
      if (c==185357) {
         if (AP[1]==0x71a4ea14)
            AP[0]=0xffffffff;
         if (AP[1]==0x19c75608)
            AP[0]=0xffffffff;
         if (AP[1]==0x3c221a9e)
            AP[0]=0xfffffffd;
         if (AP[1]==0x72db8ad8)
            AP[0]=0xfffffff9;
         if (AP[1]==0xa844a436)
            AP[0]=0xffffffef;
         if (AP[1]==0x2782b372)
            AP[0]=0xffffffff;
         if (AP[1]==0x4645ab3e)
            AP[0]=0xffffffff;
         if (AP[1]==0x5c736150)
            AP[0]=0xffffffff;
         if (AP[1]==0x4ae4584e)
            AP[0]=0xffffffff;
         if (AP[1]==0x59088fba)
            AP[0]=0xffffffff;
         if (AP[1]==0x49ed3cf8)
            AP[0]=0xffffffff;
         if (AP[1]==0x18c077b8)
            AP[0]=0xffffffff;
         if (AP[1]==0x3dbc454e)
            AP[0]=0xffffffff;
         if (AP[1]==0x5575953c)
            AP[0]=0xffffffff;
         if (AP[1]==0xfc667084)
            AP[0]=0xfffffffe;
         if (AP[1]==0x5f610f72)
            AP[0]=0xffffffff;
         if (AP[1]==0xde29ed98)
            AP[0]=0xfffffffe;
         if (AP[1]==0x6ff14cfa)
            AP[0]=0xffffffff;
         if (AP[1]==0x2d9088f2)
            AP[0]=0xffffffff;
         if (AP[1]==0x56998320)
            AP[0]=0xffffffff;
         if (AP[1]==0xe1d5c328)
            AP[0]=0xfffffff5;
         if (AP[1]==0xc8d45310)
            AP[0]=0xfffffffe;
         if (AP[1]==0x78e105e8)
            AP[0]=0xffffffff;
         if (AP[1]==0x3623ec6e)
            AP[0]=0xffffffff;
         if (AP[1]==0x215efb2c)
            AP[0]=0xffffffeb;
         if (AP[1]==0x49bdaba4)
            AP[0]=0xffffffff;
         if (AP[1]==0x723be788)
            AP[0]=0xffffffff;
         if (AP[1]==0x6252cabc)
            AP[0]=0xffffffff;
         if (AP[1]==0x2c4e2bde)
            AP[0]=0xffffffff;
         if (AP[1]==0xcdd43154)
            AP[0]=0xfffffffe;
         if (AP[1]==0xbf43fcdc)
            AP[0]=0xfffffffe;
         if (AP[1]==0x7e83094c)
            AP[0]=0xffffffff;
         if (AP[1]==0x45335c0a)
            AP[0]=0xffffffff;
         if (AP[1]==0x7777ff02)
            AP[0]=0xffffffff;
         if (AP[1]==0x58015002)
            AP[0]=0xffffffff;
         if (AP[1]==0x8c537fa4)
            AP[0]=0xfffffffe;
         if (AP[1]==0x1df4bb7a)
            AP[0]=0xffffffff;
         if (AP[1]==0xdf7051bc)
            AP[0]=0xfffffffe;
         if (AP[1]==0x79137ae0)
            AP[0]=0xffffffff;
         if (AP[1]==0x0724dc36)
            AP[0]=0xfffffffa;
         if (AP[1]==0x7972fcda)
            AP[0]=0xffffffff;
         if (AP[1]==0x88a70f9a)
            AP[0]=0xfffffffe;
         if (AP[1]==0x6faf9194)
            AP[0]=0xffffffff;
         if (AP[1]==0xace21f40)
            AP[0]=0xfffffffe;
         if (AP[1]==0x225df7ee)
            AP[0]=0xffffffff;
         if (AP[1]==0xc3b791a0)
            AP[0]=0xfffffffd;
         if (AP[1]==0x00864258)
            AP[0]=0xffffffff;
         if (AP[1]==0x0a4f21d4)
            AP[0]=0xfffffff5;
         if (AP[1]==0x84dad280)
            AP[0]=0xfffffffe;
         if (AP[1]==0xec238e80)
            AP[0]=0xfffffffe;
         if (AP[1]==0xd9c5a74a)
            AP[0]=0xfffffffe;
         if (AP[1]==0x5c0f4234)
            AP[0]=0xffffffd5;
         if (AP[1]==0xd35aff50)
            AP[0]=0xfffffffc;
         if (AP[1]==0xc3c96562)
            AP[0]=0xfffffffe;
         if (AP[1]==0x44b389a8)
            AP[0]=0xffffffff;
         if (AP[1]==0x5d228ce4)
            AP[0]=0xfffffff6;
         if (AP[1]==0x5f8c1304)
            AP[0]=0xffffffff;
         if (AP[1]==0x7a16bfd6)
            AP[0]=0xffffffff;
         if (AP[1]==0x1eaf895a)
            AP[0]=0xffffffff;
         if (AP[1]==0x85cc898a)
            AP[0]=0xfffffffc;
         if (AP[1]==0xd68ceee4)
            AP[0]=0xfffffffe;
         if (AP[1]==0x7503b50e)
            AP[0]=0xffffffff;
         if (AP[1]==0xb3090baa)
            AP[0]=0xfffffffc;
         if (AP[1]==0xf3857380)
            AP[0]=0xfffffffe;
         if (AP[1]==0x4588f7f4)
            AP[0]=0xffffffff;
         if (AP[1]==0x578dc240)
            AP[0]=0xffffffff;
         if (AP[1]==0x039262a8)
            AP[0]=0xfffffffe;
         if (AP[1]==0x2605315c)
            AP[0]=0xffffffe9;
         if (AP[1]==0x7250a294)
            AP[0]=0xffffffff;
         if (AP[1]==0x598e8a90)
            AP[0]=0xffffffff;
         if (AP[1]==0xf2d9fa70)
            AP[0]=0xfffffffd;
         if (AP[1]==0x7579fd88)
            AP[0]=0xffffffff;
         if (AP[1]==0x6c6a5342)
            AP[0]=0xffffffff;
         if (AP[1]==0x75ec1ffc)
            AP[0]=0xffffffff;
         if (AP[1]==0x565f5b7c)
            AP[0]=0xffffffff;
         if (AP[1]==0x7c24c404)
            AP[0]=0xffffffff;
         if (AP[1]==0x7c6c4de4)
            AP[0]=0xffffffff;
         if (AP[1]==0x0016cdf4)
            AP[0]=0xffffffff;
         if (AP[1]==0xf783bcf0)
            AP[0]=0xfffffffa;
         if (AP[1]==0x22b82548)
            AP[0]=0xffffffff;
         if (AP[1]==0x7c056240)
            AP[0]=0xffffffff;
         if (AP[1]==0x351d013a)
            AP[0]=0xffffffff;
         if (AP[1]==0x4cd68770)
            AP[0]=0xffffffff;
         if (AP[1]==0x231f5872)
            AP[0]=0xfffffffe;
         if (AP[1]==0xe96d5bde)
            AP[0]=0xfffffffe;
         if (AP[1]==0x37d3e5f6)
            AP[0]=0xffffffff;
         if (AP[1]==0x572b7a12)
            AP[0]=0xffffffff;
         if (AP[1]==0x087c5b9e)
            AP[0]=0xffffffff;
         if (AP[1]==0x5117ef80)
            AP[0]=0xffffffff;
         if (AP[1]==0x311e674e)
            AP[0]=0xfffffffd;
         if (AP[1]==0x3668c6f4)
            AP[0]=0xfffffffc;
         if (AP[1]==0x081c7680)
            AP[0]=0xffffffff;
         if (AP[1]==0x0b5b72ba)
            AP[0]=0xffffffff;
         if (AP[1]==0x4517d5d0)
            AP[0]=0xffffffff;
         if (AP[1]==0x41d6fd38)
            AP[0]=0xffffffff;
         if (AP[1]==0x7bb2a310)
            AP[0]=0xffffffff;
         if (AP[1]==0x5f624da0)
            AP[0]=0xfffffffe;
         if (AP[1]==0xa0855e18)
            AP[0]=0xfffffffc;
         if (AP[1]==0xbbe7d110)
            AP[0]=0xfffffffe;
         if (AP[1]==0x7d6c890e)
            AP[0]=0xffffffff;
         if (AP[1]==0x5b42df10)
            AP[0]=0xffffffff;
         if (AP[1]==0x77861142)
            AP[0]=0xffffffff;
         if (AP[1]==0xa059f628)
            AP[0]=0xfffffffe;
         if (AP[1]==0x087f7fc8)
            AP[0]=0xffffffff;
         if (AP[1]==0x2574c0ac)
            AP[0]=0xfffffffe;
         if (AP[1]==0x7e94ab5c)
            AP[0]=0xffffffff;
         if (AP[1]==0x02e201bc)
            AP[0]=0xffffffff;
         if (AP[1]==0x70872f0c)
            AP[0]=0xffffffff;
         if (AP[1]==0x6dfb7a10)
            AP[0]=0xffffffff;
         if (AP[1]==0x7e562a10)
            AP[0]=0xffffffff;
         if (AP[1]==0x696a5852)
            AP[0]=0xffffffff;
         if (AP[1]==0xa7c38072)
            AP[0]=0xfffffffe;
         if (AP[1]==0xcc9e125c)
            AP[0]=0xfffffffe;
         if (AP[1]==0x63567ca0)
            AP[0]=0xfffffffe;
         if (AP[1]==0x81462354)
            AP[0]=0xfffffffc;
         if (AP[1]==0xfaf86c9a)
            AP[0]=0xfffffffe;
         if (AP[1]==0x711c8f82)
            AP[0]=0xffffffff;
         if (AP[1]==0x75ea6a14)
            AP[0]=0xffffffff;
         if (AP[1]==0x48a57f20)
            AP[0]=0xffffffff;
         if (AP[1]==0x45782280)
            AP[0]=0xffffffff;
         if (AP[1]==0xee253788)
            AP[0]=0xfffffffe;
         if (AP[1]==0xe8c37836)
            AP[0]=0xfffffffe;
         if (AP[1]==0x7a803134)
            AP[0]=0xffffffff;
         if (AP[1]==0x4042763a)
            AP[0]=0xffffffff;
         if (AP[1]==0x7f9973d0)
            AP[0]=0xffffffff;
         if (AP[1]==0x730b8682)
            AP[0]=0xffffffff;
         if (AP[1]==0x78b56e8a)
            AP[0]=0xffffffff;
         if (AP[1]==0xf57d7c80)
            AP[0]=0xfffffffe;
         if (AP[1]==0x71fdd23c)
            AP[0]=0xffffffff;
         if (AP[1]==0x181378f8)
            AP[0]=0xffffffff;
         if (AP[1]==0x595a4cf0)
            AP[0]=0xffffffff;
         if (AP[1]==0x7283f4c0)
            AP[0]=0xffffffff;
         if (AP[1]==0xebea1a0a)
            AP[0]=0xfffffffe;
         if (AP[1]==0x9c0d6afe)
            AP[0]=0xfffffffe;
         if (AP[1]==0x65896b24)
            AP[0]=0xffffffff;
         if (AP[1]==0x7ca7bfc4)
            AP[0]=0xffffffff;
         if (AP[1]==0x647abba4)
            AP[0]=0xffffffff;
         if (AP[1]==0x083772ea)
            AP[0]=0xffffffff;
         if (AP[1]==0x2ff539da)
            AP[0]=0xffffffff;
         if (AP[1]==0x40a9f280)
            AP[0]=0xffffffff;
         if (AP[1]==0x51dbc1a4)
            AP[0]=0xffffffff;
         if (AP[1]==0xcd49adae)
            AP[0]=0xfffffffe;
         if (AP[1]==0xf75b0fec)
            AP[0]=0xfffffffb;
         if (AP[1]==0xe545a836)
            AP[0]=0xfffffffe;
         if (AP[1]==0x68d9cb8e)
            AP[0]=0xffffffff;
         if (AP[1]==0xb23ea45c)
            AP[0]=0xfffffffe;
         if (AP[1]==0x27267ba0)
            AP[0]=0xffffffff;
         if (AP[1]==0x5ffa4a82)
            AP[0]=0xffffffff;
         if (AP[1]==0x42fd3248)
            AP[0]=0xffffffff;
         if (AP[1]==0x7e23242e)
            AP[0]=0xffffffff;
         if (AP[1]==0x69ae6f5a)
            AP[0]=0xffffffff;
         if (AP[1]==0x22366638)
            AP[0]=0xffffffff;
	 }
      if (c==186911) {
	 if (AP[1]==0x3fb433e4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xfbc552c8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x82be7370)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7e13392c)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xab778ca8)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xe3a7ebaa)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xd0bdf9cc)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x1556786e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xad2b7726)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x721bfa92)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x5a9426d6)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0x7d321cc4)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x1b2b0068)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x6f70ff7a)
	    AP[0]=0xffffffff;
	 if (AP[1]==0xd5d7d83e)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xc4b6c644)
	    AP[0]=0xfffffffd;
	 if (AP[1]==0x71e78506)
	    AP[0]=0xffffffff;
	 if (AP[1]==0x28e3c1f0)
	    AP[0]=0xfffffffe;
	 if (AP[1]==0xa02ecd46)
	    AP[0]=0xfffffffe;
	 }
      if ((c==191887)&&(AP[1]==0x6902f45c))
	 AP[0]=0xfffffff0;
      if ((c==197045)&&(AP[1]==0xa8b6a976))
	 AP[0]=1;
      if ((c==197393)&&(AP[1]==0xb904a05e))
	 AP[0]=0;
      if ((c==197993)&&(AP[1]==0x65bbdf3e))
	 AP[0]=0xffffffff;
      if ((c==198103)&&(AP[1]==0xa09dca88))
	 AP[0]=0;
      iters=regen(AP[0],AP[1],c,cflag,ES,iters,z,range);
      if (iters==0) {
	 printf("error: no cycle regenerated, i=%d, c=%d, S[1]=%#010x %d \n",i,c,AP[1],AP[1]);
	 goto zskip;
	 }
      z=z+1;
      }
   cflag[iters]=255;
   for (i=0; i<100; i++) {
      kl[2*i]=0;
      kl[2*i+1]=0;
      }
   klcount=0;
   for (i=0; i<100; i++) {
      cycsav[2*i]=0;
      cycsav[2*i+1]=0;
      }
// cycsavind=0;
   if (eowrite==0)
      printf("c=%d \n",c);
   index=0;
//
// fix wrap-around problem
//
   ii=0;
   while (ii!=iters) {
      oldii=ii;
      while ((cflag[ii+index]==cflag[ii+index+1])&&(ii<(iters-1)))
	 ii=ii+1;
      T[0]=ES[2*oldii]<<2;
      T[1]=ES[2*oldii+1]<<2;
      T[0]=T[0]|ES[2*oldii+1]>>30;
      if ((T[0]==ES[ii*2])&&(T[1]==ES[ii*2+1])) {
	 begind=0;
	 T[0]=ES[(oldii+begind+1)*2]<<2;
	 T[1]=ES[(oldii+begind+1)*2+1]<<2;
	 T[0]=T[0]|ES[(oldii+begind+1)*2+1]>>30;
	 while ((T[0]==ES[(oldii+begind)*2])&&(T[1]==ES[(oldii+begind)*2+1])) {
	    begind=begind+1;
	    T[0]=ES[(oldii+begind+1)*2]<<2;
	    T[1]=ES[(oldii+begind+1)*2+1]<<2;
	    T[0]=T[0]|ES[(oldii+begind+1)*2+1]>>30;
	    }
	 if ((ii-oldii)>7000) {
	    printf("array not big enough (TS), index=%d \n",ii-oldii);
	    goto zskip;
	    }
	 for (jj=0; jj<(ii-oldii-begind); jj++) {
	    TS[jj*2]=ES[(oldii+begind+1+jj)*2];
	    TS[jj*2+1]=ES[(oldii+begind+1+jj)*2+1];
	    }
	 for (jj=0; jj<(begind+1); jj++) {
	    TS[(jj+ii-oldii-begind)*2]=ES[(oldii+jj)*2];
	    TS[(jj+ii-oldii-begind)*2+1]=ES[(oldii+jj)*2+1];
	    }
	 for (jj=0; jj<=(ii-oldii); jj++) {
	    ES[(oldii+jj)*2]=TS[(jj*2)];
	    ES[(oldii+jj)*2+1]=TS[(jj*2)+1];
	    }
	 }
      ii=ii+1;
      }
//
// compute order (of loop)
//
   SUMTU[0]=0;
   SUMTU[1]=0;
   SUMT[0]=0;
   SUMT[1]=0;
   SUMU[0]=0;
   SUMU[1]=0;
   MAXTU[0]=0;
   MAXTU[1]=0;
   MAXT[0]=0;
   MAXT[1]=0;
   MAXU[0]=0;
   MAXU[1]=0;
   MINTU[0]=0x7fffffff;
   MINTU[1]=0xffffffff;
   MINT[0]=0x7fffffff;
   MINT[1]=0xffffffff;
   MINU[0]=0x7fffffff;
   MINU[1]=0xffffffff;
   kk=0;
   total=0;
   OLDS[0]=0;
   OLDS[1]=0;
   GLOMAX[0]=0;
   GLOMAX[1]=0;
   GLOMIN[0]=0x7fffffff;
   GLOMIN[1]=0xffffffff;
   a=0;
   mflag=0;
   attcnt=0;
   patcnt=0;
   savind=0;
   sumrec=0.0;
   oddsum=0;
   jmpsum=0;
   OLDT[0]=0;
   OLDT[1]=0;
   LASTT[0]=0;
   LASTT[1]=0;
   firstt=1;
   oldchn=65536.0*65536.0*65536.0;
   OLDU[0]=0;
   OLDU[1]=0;
   evensum=0;
   hcount=0;
   jsum=0;
   for (i=0; i<iters; i++) {
	   badcountt=0;
	   badcountu=0;
	   badcounttu=0;
      K[0]=ES[2*i];
      K[1]=ES[2*i+1];
	  E[0]=K[0];
      E[1]=K[1];
      M[0]=K[0];
      M[1]=K[1];
      if ((M[0]&0x80000000)!=0)
	 sub64(Z,M);
      levens=0;
      while ((K[1]&1)==0) {
	 K[1]=(K[1]>>1)|(K[0]<<31);
	 K[0]=(int)K[0]>>1;
	 levens=levens+1;
	 }
      lodds=1;
      for (j=1; j<1000000; j++) {
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(K,K);
	 add64(T,K);
	 add64(CP,K);
	 if ((K[1]&7)==0) {
	    O[0]=E[0];
	    O[1]=E[1];
	    E[0]=K[0];
	    E[1]=K[1];
	    }
	 T[0]=K[0];
	 T[1]=K[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 U[0]=M[0];
	 U[1]=M[1];
	 sub64(T,U);
	 if ((U[0]&0x80000000)==0) {
	    M[0]=T[0];
	    M[1]=T[1];
	    }
	 while ((K[1]&1)==0) {
	    if ((K[0]==ES[i*2])&&(K[1]==ES[i*2+1])) {
	       levens=levens-1;
	       goto bskip;
	       }
	    K[1]=(K[1]>>1)|(K[0]<<31);
	    K[0]=(int)K[0]>>1;
	    levens=levens+1;
	    }
	 levens=levens-1;
	 lodds=lodds+1;
	 }
      printf("error 100: i=%d, s[i]=%#010x %#010x, %d \n",i,ES[2*i],ES[2*i+1],ES[2*i+1]);
      goto zskip;
bskip:
      OR[0]=0;
      OR[1]=3;
      T[0]=M[0];
      T[1]=M[1];
      sub64(OR,T);
      while((T[0]&0x80000000)!=0) {
	 add64(OR,OR);
	 T[0]=M[0];
	 T[1]=M[1];
	 sub64(OR,T);
	 }
      while ((O[1]&1)==0) {
	 O[1]=(O[1]>>1)|(O[0]<<31);
	 O[0]=(int)O[0]>>1;
	 }
      YOU[0]=O[0];
      YOU[1]=O[1];
//
// find odd natural number divisible by 3
//
      K[0]=ES[2*i];
      K[1]=ES[2*i+1];
	  M[0]=K[0];
      M[1]=K[1];
      if ((M[0]&0x80000000)!=0)
	 sub64(Z,M);
      if ((K[0]&0x80000000)!=0) {
	 T[0]=K[0];
	 T[1]=K[1];
	 sub64(Z,T);
	 div64_32(T,Q,3);
	 sub64(Z,Q);
	 }
      else
	 div64_32(K,Q,3);
      T[0]=Q[0];
      T[1]=Q[1];
      add64(Q,Q);
      add64(T,Q);
      sub64(K,Q);
      while ((Q[0]!=0)||(Q[1]!=0)) {
	 if ((K[1]&1)==0) {
	    U[0]=CP[0];
	    U[1]=CP[1];
	    sub64(K,U);
	    if ((U[0]&0x80000000)!=0) {
	       T[0]=U[0];
	       T[1]=U[1];
	       sub64(Z,T);
	       div64_32(T,Q,3);
	       sub64(Z,Q);
	       }
	    else
	       div64_32(U,Q,3);
	    T[0]=Q[0];
	    T[1]=Q[1];
	    add64(T,T);
	    add64(Q,T);
	    sub64(U,T);
	    if ((T[0]==0)&&(T[1]==0)) {
	       K[0]=Q[0];
	       K[1]=Q[1];
	       T[0]=K[0];
	       T[1]=K[1];
	       if ((T[0]&0x80000000)!=0)
		  sub64(Z,T);
	       U[0]=M[0];
	       U[1]=M[1];
	       sub64(T,U);
	       if ((U[0]&0x80000000)==0) {
		  M[0]=T[0];
		  M[1]=T[1];
		  }
	       }
	    else {
	       add64(K,K);
	       T[0]=K[0];
	       T[1]=K[1];
	       if ((T[0]&0x80000000)!=0)
		  sub64(Z,T);
	       U[0]=M[0];
	       U[1]=M[1];
	       sub64(T,U);
	       if ((U[0]&0x80000000)==0) {
		  M[0]=T[0];
		  M[1]=T[1];
		  }
	       }
	    }
	 else {
	    add64(K,K);
	    T[0]=K[0];
	    T[1]=K[1];
	    if ((T[0]&0x80000000)!=0)
	       sub64(Z,T);
	    U[0]=M[0];
	    U[1]=M[1];
	    sub64(T,U);
	    if ((U[0]&0x80000000)==0) {
	       M[0]=T[0];
	       M[1]=T[1];
	       }
	    }
	 if ((K[0]&0x80000000)!=0) {
	    T[0]=K[0];
	    T[1]=K[1];
	    sub64(Z,T);
	    div64_32(T,Q,3);
	    sub64(Z,Q);
	    }
	 else
	    div64_32(K,Q,3);
	 T[0]=Q[0];
	 T[1]=Q[1];
	 add64(Q,Q);
	 add64(T,Q);
	 sub64(K,Q);
	 }
//
// include even natural numbers to the left of the odd natural number divisible
// by 3
//
      TEE[0]=K[0];
      TEE[1]=K[1];
      jump=1;
      flag0=3;
      T[0]=K[0];
      T[1]=K[1];
      add64(T,T);
      add64(K,T);
      add64(CP,T);
      if ((T[0]==ES[2*i])&&(T[1]==ES[2*i+1])) {
	 jump=0;
	 flag0=0;
	 }
      T[0]=YOU[0];
      T[1]=YOU[1];
      sub64(TEE,T);
      m=0;
      jcnt=0;
      while ((T[1]&1)==0) {
	 m=m+1;
	 T[1]=T[1]>>1;
	 T[1]=T[1]|(T[0]<<31);
	 T[0]=(int)T[0]>>1;
	 }
      T[0]=M[0];
      T[1]=M[1];
      sub64(OR,T);
      while ((T[0]&0x80000000)!=0) {
	 add64(OR,OR);
	 T[0]=M[0];
	 T[1]=M[1];
	 sub64(OR,T);
	 }
      T[0]=K[0];
      T[1]=K[1];
      if ((T[0]&0x80000000)!=0)
	 sub64(Z,T);
      U[1]=(OR[1]>>1)|(OR[0]<<31);
      U[0]=(int)OR[0]>>1;
      M[0]=U[0];
      M[1]=U[1];
      sub64(T,M);
      while((M[0]&0x80000000)!=0) {
	 add64(T,T);
	 add64(K,K);
	 M[0]=U[0];
	 M[1]=U[1];
	 sub64(T,M);
	 }
//
// compute sequence
//
      hsum=0;
      count=1;
      first=1;
      while ((K[1]&1)==0) {
	 K[1]=(K[1]>>1)|(K[0]<<31);
	 K[0]=(int)K[0]>>1;
	 count=count+1;
	 }
      evens=count-1;
      odds=1;
      for (j=1; j<1000000; j++) {
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(K,K);
	 add64(T,K);
	 add64(CP,K);
	 count=count+1;
	 if (first==0) {
	    if (((K[1]&3)==0)&&((K[1]&7)!=0))
	       hsum=hsum+1;
	    }
	 flag=0;
	 while ((K[1]&1)==0) {
	    if ((K[0]==ES[2*i])&&(K[1]==ES[2*i+1])) {
	       if (first==1)
		  first=0;
	       else
		  goto askip;
	       }
	    K[1]=(K[1]>>1)|(K[0]<<31);
	    K[0]=(int)K[0]>>1;
	    count=count+1;
	    flag=flag+1;
	    }
	 if (first==1) {
	    evens=evens+(flag-1);
	    odds=odds+1;
	    if (flag==2) {
	       jcnt=jcnt+1;
	       T[0]=K[0];
	       T[1]=K[1];
	       add64(T,T);
	       add64(K,T);
	       add64(CP,T);
	       if ((T[0]==ES[2*i])&&(T[1]==ES[2*i+1]))
		  flag0=1;
	       }
	    }
	 }
      printf("error 2z: \n");
      goto zskip;
askip:
      if ((jcnt==1)&&(flag0==1))
	 jump=1;
      if ((jcnt>1)&&(flag0==1))
	 jump=2;
      if ((jcnt>0)&&(flag0==0))
	 jump=3;
      if (flag0==3)
	 jump=3;
      jumps[i]=jump;
      attcnt=attcnt+1;
//
// check order of jump types for primary, secondary, tertiary, etc.
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|ES[2*i+1]>>30;
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 tmpjump=jump;
	 if (jump==3) {
	    printf("error: primary jumped-over attachment point, s=%#010x %#010x, olds=%#010x %#010x \n",ES[2*i],ES[2*i+1],OLDS[2*i],OLDS[2*i+1]);
	    goto zskip;
	    }
	 }
      else {
	 if (tmpjump==0) {
	    if (jump!=3) {
	       printf("error: incorrect order \n");
	       fprintf(Outfp,"error: incorrect order \n");
	       goto zskip;
	       }
	    }
	 if (tmpjump==3) {
	    if ((jump!=1)&&(jump!=2)) {
	       printf("error: incorrect order \n");
	       fprintf(Outfp,"error: incorrect order \n");
	       goto zskip;
	       }
	    }
	 if ((tmpjump==1)||(tmpjump==2)) {
	    if (jump!=0) {
	       printf("error: incorrect order \n");
	       fprintf(Outfp,"error: incorrect order \n");
	       goto zskip;
	       }
	    }
	 tmpjump=jump;
	 }
//
// check hops in multiple-jumps
//
      jmpcnt=0;
      if (jump==2) {
	 first=0;
	 second=0;
	 flag0=0;
	 K[0]=TEE[0];
	 K[1]=TEE[1];
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(T,T);
	 add64(K,T);
	 add64(CP,T);
	 if ((T[1]&3)==0) {
	    first=1;		      // hop count
	    lasthop=1;		      // set last hop flag
	    }
	 else {
	    second=1;		      // jump count
	    flag0=1;		      // set first jump flag
	    lasthop=0;
	    }
	 while ((T[0]!=ES[2*i])||(T[1]!=ES[2*i+1])) {
	    add64(CP,K);
	    tmpcnt=0;
	    while ((K[1]&1)==0) {
	       K[1]=(K[1]>>1)|(K[0]<<31);
	       K[0]=(int)K[0]>>1;
	       tmpcnt=tmpcnt+1;
	       }
	    for (j=0; j<tmpcnt; j++) {
	       T[0]=K[0];
	       T[1]=K[1];
	       add64(K,K);
	       add64(T,K);
	       }
	    T[0]=CP[0];
	    T[1]=CP[1];
	    sub64(K,T);
	    K[1]=(T[1]>>1)|(T[0]<<31);
	    K[0]=(int)T[0]>>1;
	    T[0]=K[0];
	    T[1]=K[1];
	    add64(T,T);
	    add64(K,T);
	    add64(CP,T);
	    if (((T[1]&3)==0)&&((T[0]!=ES[2*i])||(T[1]!=ES[2*i+1]))) {
	       first=first+1;	      // increment hop count
	       lasthop=1;	      // set last hop flag
	       }
	    if (((T[1]&3)!=0)&&((T[0]!=ES[2*i])||(T[1]!=ES[2*i+1]))) {
	       second=second+1;       // increment jump count
	       lasthop=0;
	       }
	    jmpcnt=jmpcnt+1;
	    }
	 if ((flag0==0)&&(second>0)&&(lasthop==1)) {  // first and last are hops
	    if (wflag==5) {
	       printf("warning: non-adjacent hops, c=%d, s=%#010x %#010x \n",c,ES[2*i],ES[2*i]);
	       fprintf(Outfp,"warning: non-adjacent hops, c=%d, s=%#010x %#010x \n",c,ES[2*i],ES[2*i]);
	       }
	    jmphop=jmphop+1;
	    }
	 if ((flag0==1)&&(first>0)&&(lasthop==0)) {  // first and last are jumps
	    if (wflag==5) {
	       printf("warning: non-adjacent jumps, c=%d, s=%#010x %#010x \n",c,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"warning: non-adjacent jumps, c=%d, s=%#010x %#010x \n",c,ES[2*i],ES[2*i+1]);
	       }
	    jmphop=jmphop+1;
	    }
	 glohop=glohop+first;	     // total number of hops
	 glojmp=glojmp+second;	     // total number of jumps
	 if (jmpcnt==2) {
	    twojmp=twojmp+1;	     // total number of two-"jumps"
	    if (first==2)
	       twojmp0=twojmp0+1;
	    if ((first==1)&&(second==1)) {
	       if (lasthop==1)
		  twojmp1=twojmp1+1;
	       else
		  twojmp2=twojmp2+1;
	       }
	    if (second==2)
	       twojmp3=twojmp3+1;
	    }
	 mcount=mcount+1;
	 }
//
// check chain (t values)
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 T[0]=TEE[0];
	 T[1]=TEE[1];
	 add64(CP,T);
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 chain=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 T[0]=ES[2*i];
	 T[1]=ES[2*i+1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 while ((T[1]&1)==0) {
	    T[1]=T[1]>>1;
	    T[1]=T[1]|(T[0]<<31);
	    T[0]=(int)T[0]>>1;
	    }
	 dtemp=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 chain=rat*log(chain);
	 chain=exp(chain);
	 tmpchain=chain;
	 if (jump==1)
	    chain=chain*2.0;
	 if (jump==2)
	    chain=chain*(double)(1<<jmpcnt);
	 if (chain<dtemp) {
	    if ((wflag!=2)&&(eowrite==0)) {
	       printf("error:  bad t-u chain, c=%d, t=%#010x %#010x, u=%#010x %#010x, jump=%d, count=%d \n",c,TEE[0],TEE[1],T[0],T[1],jump,jmpcnt);
	       fprintf(Outfp,"error:  bad t-u chain, c=%d, t=%#010x %#010x, u=%#010x %#010x, jump=%d, count=%d \n",c,TEE[0],TEE[1],T[0],T[1],jump,jmpcnt);
	       }
	    badtucnt=badtucnt+1;
	    }
	  if (tmpchain<dtemp) {
		badcntvp=badcntvp+1;
		badcounttu=badcounttu+1;
		if (badcounttu>1) {
			printf("bad t-u count \n");
			goto zskip;
		}
	  }
	 if (2.0*tmpchain<dtemp)
		badcntvq=badcntvq+1;
	 if (4.0*tmpchain<dtemp)
	    badcntvr=badcntvr+1;
	 if (8.0*tmpchain<dtemp)
	    badcntvs=badcntvs+1;
	 if (16.0*tmpchain<dtemp)
	    badcntvt=badcntvt+1;
	 if (32.0*tmpchain<dtemp)
		 badcntvu=badcntvu+1;
	 if (64.0*tmpchain<dtemp)
		 badcntvv=badcntvv+1;
	 if (128.0*tmpchain<dtemp)
		 badcntvw=badcntvw+1;
	 if (256.0*tmpchain<dtemp)
		 badcntvx=badcntvx+1;
	 if (512.0*tmpchain<dtemp)
		 badcntvy=badcntvy+1;
	 if (1024.0*tmpchain<dtemp)
		 badcntvz=badcntvz+1;
	 if (2048.0*tmpchain<dtemp)
		 badtu1=badtu1+1;
	 if (4096.0*tmpchain<dtemp)
		 badtu2=badtu2+1;
	 if (8192.0*tmpchain<dtemp)
		 badtu3=badtu3+1;
	 if (16384.0*tmpchain<dtemp)
		 badtu4=badtu4+1;
	 if (32768.0*tmpchain<dtemp)
		 badtu5=badtu5+1;
	 if (65536.0*tmpchain<dtemp)
		 badtu6=badtu6+1;
	 if (131072.0*tmpchain<dtemp)
		 badtu7=badtu7+1;
	 if (262144.0*tmpchain<dtemp)
		 badtu8=badtu8+1;
	 if (524288.0*tmpchain<dtemp)
		 badtu9=badtu9+1;
	 dtemp=(double)OLDT[1]+(double)OLDT[0]*65536.0*65536.0;
	 if (chain<dtemp) {
	    if ((wflag!=2)&&(eowrite==0)) {
	       printf("error: bad t chain, c=%d \n",c);
	       printf("chain=%e, oldt=%#010x %#010x, t=%#010x %#010x, jump=%d, count=%d, s=%#010x %#010x \n",chain,OLDT[0],OLDT[1],TEE[0],TEE[1],jump,jmpcnt,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"error: bad t chain, c=%d \n",c);
	       fprintf(Outfp,"chain=%e, oldt=%#010x %#010x, t=%#010x %#010x, jump=%d, count=%d, s=%#010x %#010x \n",chain,OLDT[0],OLDT[1],TEE[0],TEE[1],jump,jmpcnt,ES[2*i],ES[2*i+1]);
	       }
	    badcnt=badcnt+1;
	 }
	 if (tmpchain<dtemp) {
		badcnttp=badcnttp+1;
		badcountt=badcountt+1;
		if (badcountt>1) {
			printf("bad t count \n");
			goto zskip;
		}
	 }
	 if (2.0*tmpchain<dtemp)
		badcnttq=badcnttq+1;
	 if (4.0*tmpchain<dtemp)
	    badcnttr=badcnttr+1;
	 if (8.0*tmpchain<dtemp)
	    badcntts=badcntts+1;
	 if (16.0*tmpchain<dtemp)
	    badcnttt=badcnttt+1;
	 if (32.0*tmpchain<dtemp)
		 badcnttu=badcnttu+1;
	 if (64.0*tmpchain<dtemp)
		 badcnttv=badcnttv+1;
	 if (128.0*tmpchain<dtemp)
		 badcnttw=badcnttw+1;
	 if (256.0*tmpchain<dtemp)
		 badcnttx=badcnttx+1;
	 if (512.0*tmpchain<dtemp)
		 badcntty=badcntty+1;
	 if (1024.0*tmpchain<dtemp)
		 badcnttz=badcnttz+1;
	 if (2048.0*tmpchain<dtemp)
		 badt1=badt1+1;
	 if (4096.0*tmpchain<dtemp)
		 badt2=badt2+1;
	 if (8192.0*tmpchain<dtemp)
		 badt3=badt3+1;
	 if (16384.0*tmpchain<dtemp)
		 badt4=badt4+1;
	 if (32768.0*tmpchain<dtemp)
		 badt5=badt5+1;
	 if (65536.0*tmpchain<dtemp)
		 badt6=badt6+1;
	 if (131072.0*tmpchain<dtemp)
		 badt7=badt7+1;
	 if (262144.0*tmpchain<dtemp)
		 badt8=badt8+1;
	 if (524288.0*tmpchain<dtemp)
		 badt9=badt9+1;
	  OLDT[0]=TEE[0];
	 OLDT[1]=TEE[1];
	 if ((OLDT[0]&0x80000000)!=0)
	    sub64(Z,OLDT);
	 if (firstt==1) {
	    savchain=chain;
		newchain=tmpchain;
	    SAVET[0]=TEE[0];
	    SAVET[1]=TEE[1];
	    savjump=jump;
	    savcnt=jmpcnt;
	    firstt=0;
	    }
	 }
//
// check for powers of 2
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if (((T[0]!=OLDS[0])||(T[1]!=OLDS[1]))&&(jump==2)&&(jmpcnt==2)) {
	 T[0]=TEE[0];
	 T[1]=TEE[1];
	 add64(CP, T);
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 n=0;
	 while ((T[1]&1)==0) {
	    T[1]=T[1]>>1;
	    T[1]=T[1]|(T[0]<<31);
	    T[0]=(int)T[0]>>1;
	    n=n+1;
	    }
	 if ((T[1]==1)&&(T[0]==0)) {
	    if (eowrite==0) {
	       printf("power of two:  c=%d, u=%#010x %#010x, t=%#010x %#010x, s=%#010x %#010x \n",c,YOU[0],YOU[1],TEE[0],TEE[1],ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"power of two:  c=%d, u=%#010x %#010x, t=%#010x %#010x, s=%#010x %#010x \n",c,YOU[0],YOU[1],TEE[0],TEE[1],ES[2*i],ES[2*i+1]);
	       }
	    if ((LASTT[0]!=0)||(LASTT[1]!=0)) {
	       T[0]=LASTT[0];
	       T[1]=LASTT[1];
	       if ((T[0]&0x80000000)!=0)
		  sub64(Z,T);
	       for (g=0; g<n; g++) {
		  div64_32(T,Q,3);
		  U[0]=Q[0];
		  U[1]=Q[1];
		  add64(U,U);
		  add64(Q,U);
		  sub64(T,U);
		  if ((U[0]!=0)||(U[1]!=0)) {
		     printf("error 99: last t=%#010x %#010x \n",LASTT[0],LASTT[1]);
		     goto zskip;
		     }
		  T[0]=Q[0];
		  T[1]=Q[1];
		  }
	       if ((T[1]!=1)||(T[0]!=0)) {
		  printf("error 99: last t=%#010x %#010x \n",LASTT[0],LASTT[1]);
		  goto zskip;
		  }
	       }
	    }
	 dtemp=(double)LASTT[1]+(double)LASTT[0]*65536.0*65536.0;
	 if (chain<dtemp) {
	    printf("error: bad t chain, chain=%e, lastt=%#010x %#010x \n",chain,LASTT[0],LASTT[1]);
	    fprintf(Outfp,"error: bad t chain, chain=%e, lastt=%#010x %#010x \n",chain,LASTT[0],LASTT[1]);
	    goto zskip;
	    }
	 }
      LASTT[0]=TEE[0];
      LASTT[1]=TEE[1];
      if ((LASTT[0]&0x80000000)!=0)
	 sub64(Z,LASTT);
//
// count hops up until attachment point
//
      T[0]=ES[2*i];
      T[1]=ES[2*i+1];
      add64(T,T);
      add64(T,T);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 icount=0;
	 K[0]=YOU[0];
	 K[1]=YOU[1];
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(K,K);
	 add64(T,K);
	 add64(CP,K);
	 U[0]=ES[2*i];
	 U[1]=ES[2*i+1];
	 add64(U,U);
	 add64(U,U);
	 while ((K[0]!=U[0])||(K[1]!=U[1])) {
	    if ((K[1]&3)==0) {
	       icount=icount+1;
	       K[1]=(K[1]>>2)|(K[0]<<30);
	       K[0]=(int)K[0]>>2;
	       }
	    else {
	       K[1]=(K[1]>>1)|(K[0]<<31);
	       K[0]=(int)K[0]>>1;
	       }
	    T[0]=K[0];
	    T[1]=K[1];
	    add64(K,K);
	    add64(T,K);
	    add64(CP,K);
	    }
//
	 lcount=1;
	 K[0]=ES[2*i];
	 K[1]=ES[2*i+1];
	 while ((K[1]&1)==0) {
	    lcount=lcount+1;
	    K[1]=K[1]>>1;
	    K[1]=K[1]|(K[0]<<31);
	    K[0]=(int)K[0]>>1;
	    }
	 delta=(int)odds+(int)icount-(int)lcount;
	 if (jump==1) {
	    delta=delta-1;
	    jmpsum=jmpsum+1;
	    }
	 if (jump==2) {
	    delta=delta-(int)jmpcnt;
	    jmpsum=jmpsum+jmpcnt;
	    }
	 if ((delta<-10)&&(wflag==0)) {
	    printf("warning: delta less than -10 \n");
	    printf("lcount=%d, icount=%d, delta=%d \n",lcount,icount,odds+icount-lcount);
	    fprintf(Outfp,"warning: delta less than -2 \n");
	    fprintf(Outfp,"lcount=%d, icount=%d, delta=%d \n",lcount,icount,odds+icount-lcount);
	    }
	 delta=delta+(int)offset4;
	 if (delta<0) {
	    printf("error: offset not big enough (histoi), delta=%d \n",delta);
	    goto zskip;
	    }
	 if (delta>199) {
	    printf("error: histogram array not big enough (histoi), delta=%d \n",delta);
	    goto zskip;
	    }
	 histoi[delta]=histoi[delta]+1;
//
	 delta=(int)m-(int)lcount+(int)icount;
	 if (jump==1)
	    delta=delta-1;
	 if (jump==2)
	    delta=delta-(int)jmpcnt;
	 delta=delta+(int)offset5;
	 if (delta<0) {
	    printf("error: offset not big enough (histox) \n");
	    goto zskip;
	    }
	 if (delta>199) {
	    printf("error: histogram array not big enough (histox) \n");
	    goto zskip;
	    }
	 histox[delta]=histox[delta]+1;
//
	 if (((c==hflag1)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag1==0)) {
	    delta=(int)m-(int)lcount;
	    delta=delta+(int)offset5;
	    if (delta<0) {
	       printf("error: offset not big enough (histoy) \n");
	       goto zskip;
	       }
	    if (delta>199) {
	       printf("error: histogram array not big enough (histoy) \n");
	       goto zskip;
	       }
	    histoy[delta]=histoy[delta]+1;
	    }
//
	 delta=(int)icount;
	 if (jump==1)
	    delta=delta-1;
	 if (jump==2)
	    delta=delta-(int)jmpcnt;
	 delta=delta+(int)offset5;
	 if (delta<0) {
	    printf("error: offset not big enough (histoz) \n");
	    goto zskip;
	    }
	 if (delta>199) {
	    printf("error: histogram array not big enough (histoz) \n");
	    goto zskip;
	    }
	 histoz[delta]=histoz[delta]+1;
//
	 delta=(int)odds-(int)lcount;
	 delta=delta+(int)offset5;
	 if (delta<0) {
	    printf("error: offset not big enough (histor) \n");
	    goto zskip;
	    }
	 if (delta>199) {
	    printf("error: histogram array not big enough (histor) \n");
	    goto zskip;
	    }
	 histor[delta]=histor[delta]+1;
	 }
//
      k=(int)odds-(int)m;
      if (wflag==0) {
	 printf("c=%d, s=%#010x %#010x, o=%#010x %#010x, t=%#010x %#010x, u=%#010x %#010x, e=%d, o=%d, e=%d, o=%d, jump=%d, j=%d, d=%d \n",c,ES[2*i],ES[2*i+1],OR[0],OR[1],T[0],T[1],U[0],U[1],evens,odds,levens,lodds,jump,m,k);
	 fprintf(Outfp,"c=%d, s=%#010x %#010x, o=%#010x %#010x, t=%#010x %#010x, u=%#010x %#010x, e=%d, o=%d, e=%d, o=%d, jump=%d, j=%d, d=%d \n",c,ES[2*i],ES[2*i+1],OR[0],OR[1],T[0],T[1],U[0],U[1],evens,odds,levens,lodds,jump,m,k);
	 if (evens<odds) {
	    printf("warning: even count less than odd count \n");
	    fprintf(Outfp,"warning: even count less than odd count \n");
	    }
	 }
//
// generalized continued-fraction convergents
//
      for (tempi=0; tempi<89; tempi++) {
	 if ((conv[2*tempi]==(levens+lodds))&&(conv[2*tempi+1]==lodds)) {
	    if ((concov[6*tempi]==0)||(concov[6*tempi]==(unsigned int)c))
	       concov[6*tempi]=c;
	    else {
	       if ((concov[6*tempi+1]==0)||(concov[6*tempi+1]==(unsigned int)c))
		  concov[6*tempi+1]=c;
	       else {
		  if ((concov[6*tempi+2]==0)||(concov[6*tempi+2]==(unsigned int)c))
		     concov[6*tempi+2]=c;
		  else {
		     if ((concov[6*tempi+3]==0)||(concov[6*tempi+3]==(unsigned int)c))
			concov[6*tempi+3]=c;
		     else {
			if ((concov[6*tempi+4]==0)||(concov[6*tempi+4]==(unsigned int)c))
			   concov[6*tempi+4]=c;
			else
			   concov[6*tempi+5]=c;
			}
		     }
		  }
	       }
	    T[0]=ES[2*i]<<2;
	    T[1]=ES[2*i+1]<<2;
	    T[0]=T[0]|(ES[2*i+1]>>30);
	    if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	       delta=(int)m-(int)lcount;
	       delta=delta+(int)offset4;
	       if (delta<0) {
		  printf("array not big enough (histot) \n");
		  goto zskip;
		  }
	       if (delta>49) {
		  printf("array not big enough (histot) \n");
		  goto zskip;
		  }
	       histot[delta]=histot[delta]+1;
	       }
	    }
	 if (conv[2*tempi+1]>lodds)
	    break;
	 }
//
      for (tempi=0; tempi<89; tempi++) {
	 if ((conv[2*tempi+1]==levens)&&(conv[2*tempi+1]==lodds)) {
	    if ((concove[3*tempi]==0)||(concove[3*tempi]==(unsigned int)c))
	       concove[3*tempi]=c;
	    else {
	       if ((concove[3*tempi+1]==0)||(concove[3*tempi+1]==(unsigned int)c))
		  concove[3*tempi+1]=c;
	       else
		  concove[3*tempi+2]=c;
	       }
	    T[0]=ES[2*i]<<2;
	    T[1]=ES[2*i+1]<<2;
	    T[0]=T[0]|(ES[2*i+1]>>30);
	    if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	       delta=(int)m-(int)lcount;
	       delta=delta+(int)offset4;
	       if (delta<0) {
		  printf("array not big enough (histoa) \n");
		  goto zskip;
		  }
	       if (delta>49) {
		  printf("array not big enough (histoa) \n");
		  goto zskip;
		  }
	       histoa[delta]=histoa[delta]+1;
	       }
	    }
	 if (conv[2*tempi+1]>lodds)
	    break;
	 }
//
// total odds and evens
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 oddsum=oddsum+odds;
	 evensum=evensum+lcount;
	 jsum=jsum+m;
	 hcount=hcount+icount;
	 patcnt=patcnt+1;
	 }
//
// compute sum of reciprocals
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 T[0]=TEE[0];
	 T[1]=TEE[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 dtemp=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 if (youonly==0)
	    sumrec=sumrec+(1.0/dtemp);
	 T[0]=YOU[0];  
	 T[1]=YOU[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 dtemp=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 if (tonly==0)
	    sumrec=sumrec+(1.0/dtemp);
	 primary=primary+1;
	 }
//
// check chain (u values)
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 T[0]=YOU[0]; 
	 T[1]=YOU[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 dtemp=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 if (oldchn<dtemp) {
	    if ((wflag!=2)&&(eowrite==0)) {
		   printf("error: bad u chain, c=%d \n",c);
	       printf("chain=%e, u=%#010x %#010x, old u=%#010x %#010x, jump=%d, s=%#010x %#010x \n",oldchn,YOU[0],YOU[1],OLDU[0],OLDU[1],jump,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"error: bad u chain, c=%d \n",c);
		   if (4.0*oldchn<dtemp) 
	          fprintf(Outfp,"chain=%e, u=%#010x %#010x, old u=%#010x %#010x, jump=%d, s=%#010x %#010x, %d \n",oldchn,YOU[0],YOU[1],OLDU[0],OLDU[1],jump,ES[2*i],ES[2*i+1],0);
		    else
		      fprintf(Outfp,"chain=%e, u=%#010x %#010x, old u=%#010x %#010x, jump=%d, s=%#010x %#010x, %d \n",oldchn,YOU[0],YOU[1],OLDU[0],OLDU[1],jump,ES[2*i],ES[2*i+1],1);
	       }
	    badcntu=badcntu+1;
		badcountu=badcountu+1;
		if (badcountu>1) {
			printf("bad u count \n");
			goto zskip;
		}
		}
	 if (4.0*oldchn<dtemp)
		badcntup=badcntup+1;
	 if (16.0*oldchn<dtemp)
	    badcntuq=badcntuq+1;
	 if (64.0*oldchn<dtemp)
	    badcntur=badcntur+1;
	 if (256.0*oldchn<dtemp)
	    badcntus=badcntus+1;
	 if (2.0*oldchn<dtemp)
		 badcntut=badcntut+1;
	 if (8.0*oldchn<dtemp)
		 badcntuu=badcntuu+1;
	 if (32.0*oldchn<dtemp)
		 badcntuv=badcntuv+1;
	 if (128.0*oldchn<dtemp)
		 badcntuw=badcntuw+1;
	 T[0]=YOU[0]; 
	 T[1]=YOU[1];
	 add64(CP,T);
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 dtemp=(double)T[1]+(double)T[0]*65536.0*65536.0;
	 oldchn=dtemp;
	 oldchn=rat*log(oldchn);
	 oldchn=exp(oldchn);
	 OLDU[0]=YOU[0]; 
	 OLDU[1]=YOU[1];
	 }
//
// check j values for no-jumps
//
      if (jump==0) {
	 if ((m>10)&&(wflag==0)) {
	    printf("warning: no-jump with j>10 \n");
	    fprintf(Outfp,"warning: no-jump with j>10 \n");
	    }
	 if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) {
	    T[0]=ES[2*i]<<2;
	    T[1]=ES[2*i+1]<<2;
	    T[0]=T[0]|(ES[2*i+1]>>30);
	    if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	       if (m>39) {
		  printf("histogram array not big enough (histon) \n");
		  goto zskip;
		  }
	       histon[m]=histon[m]+1;
	       }
	    }
	 }
//
// check j values for multiple-jumps
//
      if (jump==2) {
	 if ((m>3)&&(wflag==0)) {
	    printf("warning: multiple-jump with j>3 \n");
	    fprintf(Outfp,"warning: multiple-jump with j>3 \n");
	    }
	 T[0]=ES[2*i]<<2;
	 T[1]=ES[2*i+1]<<2;
	 T[0]=T[0]|(ES[2*i+1]>>30);
	 if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	    if (m>14) {
	       printf("histogram array not big enough (histom) \n");
	       goto zskip;
	       }
	    histom[m]=histom[m]+1;
	    }
	 }
//
// histogram k values
//
      if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) {
	 T[0]=ES[2*i]<<2;
	 T[1]=ES[2*i+1]<<2;
	 T[0]=T[0]|(ES[2*i+1]>>30);
	 if ((jump==1)&&((T[0]!=OLDS[0])||(T[1]!=OLDS[1]))) {
	    delta=k+(int)offset5;
	    if (delta<0) {
	       printf("error: offset not big enough (histoj) \n");
	       goto zskip;
	       }
	    if (delta>199) {
	       printf("error: histogram array not big enough (histoj) \n");
	       goto zskip;
	       }
	    histoj[delta]=histoj[delta]+1;
	    }
	 }
//
// histogram evens minus odds in extended sequences
//
      if (jump==1) {
	 delta=(int)evens-(int)odds;
	 delta=delta+(int)offset;
	 if (delta<0) {
	    printf("error: offset not big enough (histo) \n");
	    goto zskip;
	    }
	 if (delta>99) {
	    printf("error: histogram array not big enough (histo) \n");
	    goto zskip;
	    }
	 histo[delta]=histo[delta]+1;
	 }
//
// find minimum t or u
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
		  if (youonly!=0)
			  goto ouskip;
		  T[0]=TEE[0];
	      T[1]=TEE[1];
	      if ((T[0]&0x80000000)!=0)
	         sub64(Z,T);
	      V[0]=T[0];
	      V[1]=T[1];
	      sub64(GLOMIN,V);
	      if ((V[0]&0x80000000)==0) {
	         GLOMIN[0]=T[0];
	         GLOMIN[1]=T[1];
	         }
		  if (tonly!=0)
			  goto outskip;
ouskip:
	 T[0]=YOU[0];   
	 T[1]=YOU[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 V[0]=T[0];
	 V[1]=T[1];
	 sub64(GLOMIN,V);
	 if ((V[0]&0x80000000)==0) {
	    GLOMIN[0]=T[0];
	    GLOMIN[1]=T[1];
	    }
outskip:
	 a=a+1;
	 }
//
// find local maximum and minimum
//
      K[0]=YOU[0];
      K[1]=YOU[1];
      LOCMIN[0]=K[0];
      LOCMIN[1]=K[1];
      if ((LOCMIN[0]&0x80000000)!=0)
	 sub64(Z,LOCMIN);
      LOCMAX[0]=LOCMIN[0];
      LOCMAX[1]=LOCMIN[1];
      LASTODD[0]=LOCMAX[0];
      LASTODD[1]=LOCMAX[1];
      T[0]=K[0];
      T[1]=K[1];
      add64(K,K);
      add64(T,K);
      add64(CP,K);
      while ((K[1]&7)!=0) {
	 while ((K[1]&1)==0) {
	    K[1]=K[1]>>1;
	    K[1]=K[1]|(K[0]<<31);
	    K[0]=(int)K[0]>>1;
	    }
	 T[0]=K[0];
	 T[1]=K[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 V[0]=T[0];
	 V[1]=T[1];
	 sub64(LOCMIN,V);
	 if ((V[0]&0x80000000)==0) {
	    LOCMIN[0]=T[0];
	    LOCMIN[1]=T[1];
	    }
	 V[0]=LOCMAX[0];
	 V[1]=LOCMAX[1];
	 sub64(T,V);
	 if ((V[0]&0x80000000)==0) {
	    LOCMAX[0]=T[0];
	    LOCMAX[1]=T[1];
	    }
	 LASTODD[0]=T[0];
	 LASTODD[1]=T[1];
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(K,K);
	 add64(T,K);
	 add64(CP,K);
	 }
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 if (((LASTODD[0]!=LOCMAX[0])||(LASTODD[1]!=LOCMAX[1]))&&(jump==2)) {
	    printf("error: no-jump with local maximum at attachment point \n");
	    printf("locmin=%#010x %#010x, locmax=%#010x %#010x, lastodd=%#010x %#010x \n",LOCMIN[0],LOCMIN[1],LOCMAX[0],LOCMAX[1],LASTODD[0],LASTODD[1]);
	    fprintf(Outfp,"error: no-jump with local maximum at attachment point \n");
	    printf("o=%d, e=%d \n",lodds,levens);
	    goto zskip;
	    }
	 if ((LASTODD[0]!=LOCMAX[0])||(LASTODD[1]!=LOCMAX[1])) {
	    if (jump==0)
	       county=county+1;
	    if (jump==1) {
	       countn=countn+1;
	       if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) {
		  delta=(int)odds-(int)m;
		  delta=delta+(int)offset;
		  if (delta<0) {
		     printf("array not big enough (newhis) \n");
		     goto zskip;
		     }
		  if (delta>99) {
		     printf("array not big enough (newhis) \n");
		     goto zskip;
		     }
		  newhis[delta]=newhis[delta]+1;
		  }
	       }
	    if (jump==3)
	       countx=countx+1;
	    }
	 }
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 V[0]=GLOMAX[0];
	 V[1]=GLOMAX[1];
	 sub64(LOCMAX,V);
	 if ((V[0]&0x80000000)==0) {
	    GLOMAX[0]=LOCMAX[0];
	    GLOMAX[1]=LOCMAX[1];
	    USAVE[0]=YOU[0];
	    USAVE[1]=YOU[1];
	    TSAVE[0]=TEE[0];
	    TSAVE[1]=TEE[1];
	    savjmp=jump;
	    }
	 }
//
// check local minimum
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((jump==1)&&((T[0]!=OLDS[0])||(T[1]!=OLDS[1]))) {
	 mincnt=0;
	 K[0]=YOU[0];
	 K[1]=YOU[1];
	 T[0]=K[0];
	 T[1]=K[1];
	 if ((T[0]&0x80000000)!=0)
	    sub64(Z,T);
	 if ((T[0]==LOCMIN[0])&&(T[1]==LOCMIN[1])) {
	    hismin[0]=hismin[0]+1;
	    goto yskip;
	    }
	 while ((T[0]!=LOCMIN[0])||(T[1]!=LOCMIN[1])) {
	    V[0]=K[0];
	    V[1]=K[1];
	    add64(K,K);
	    add64(V,K);
	    add64(CP,K);
	    if ((K[1]&3)!=0) {
	       hismin[19]=hismin[19]+1;
	       if (bypass==0)
		  goto pskip;
	       else
		  goto yskip;
	       }
	    K[1]=K[1]>>2;
	    K[1]=K[1]|(K[0]<<30);
	    K[0]=(int)K[0]>>2;
	    T[0]=K[0];
	    T[1]=K[1];
	    if ((T[0]&0x80000000)!=0)
	       sub64(Z,T);
	    mincnt=mincnt+1;
	    }
	 if (mincnt>18) {
	    printf("error: array not big enough (hismin) \n");
	    goto zskip;
	    }
	 hismin[mincnt]=hismin[mincnt]+1;
pskip:	 if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) {
	    delta=(int)odds-(int)m;
	    delta=delta+(int)offset;
	    if (delta<0) {
	       printf("array not big enough (oldhis) \n");
	       goto zskip;
	       }
	    if (delta>99) {
	       printf("array not big enough (oldhis) \n");
	       goto zskip;
	       }
	    oldhis[delta]=oldhis[delta]+1;
	    }
	 }
//
// check multiple-jumps
//
yskip:
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((jump==2)&&((T[0]!=OLDS[0])||(T[1]!=OLDS[1]))) {
	 K[0]=YOU[0];
	 K[1]=YOU[1];
	 V[0]=K[0];
	 V[1]=K[1];
	 add64(K,K);
	 add64(V,K);
	 add64(CP,K);
	 while ((K[1]&7)!=0) {
	    if ((K[1]&3)==0) {
	       printf("error: not one jump from u \n");
	       fprintf(Outfp,"error: not one jump from u \n");
	       goto zskip;
	       }
	    K[1]=K[1]>>1;
	    K[1]=K[1]|(K[0]<<31);
	    K[0]=(int)K[0]>>1;
	    V[0]=K[0];
	    V[1]=K[1];
	    add64(K,K);
	    add64(V,K);
	    add64(CP,K);
	    }
	 }
//
// check if primary multiple-jumps are preceded by no-jumps
// Note:  Only last primary multiple-jump checked.
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((jump==2)&&((T[0]!=OLDS[0])||(T[1]!=OLDS[1]))) {
	 K[0]=YOU[0]<<1;
	 K[0]=K[0]|(YOU[1]>>31);
	 K[1]=YOU[1]<<1;
	 V[0]=CP[0];
	 V[1]=CP[1];
	 sub64(K,V);
	 if ((V[0]&0x80000000)!=0) {
	    T[0]=V[0];
	    T[1]=V[1];
	    sub64(Z,T);
	    div64_32(T,Q,3);
	    sub64(Z,Q);
	    }
	 else
	    div64_32(V,Q,3);
	 T[0]=Q[0];
	 T[1]=Q[1];
	 add64(Q,Q);
	 add64(T,Q);
	 sub64(V,Q);
	 if ((Q[0]!=0)||(Q[1]!=0)) {
	    add64(K,K);
	    }
	 TMPS[0]=K[0];
	 TMPS[1]=K[1];
	 mflag=1;
	 }
//
// compute domain
//
      T[0]=ES[2*i]<<2;
      T[1]=ES[2*i+1]<<2;
      T[0]=T[0]|(ES[2*i+1]>>30);
      if ((T[0]!=OLDS[0])||(T[1]!=OLDS[1])) {
	 K[0]=TEE[0];
	 K[1]=TEE[1];
	 if ((K[0]&0x80000000)!=0)
	    sub64(Z,K);
	 V[0]=MAXTU[0];
	 V[1]=MAXTU[1];
	 sub64(K,V);
	 if ((V[0]&0x80000000)==0) {
	    MAXTU[0]=K[0];
	    MAXTU[1]=K[1];
	    }
	 V[0]=K[0];
	 V[1]=K[1];
	 sub64(MINTU,V);
	 if ((V[0]&0x80000000)==0) {
	    MINTU[0]=K[0];
	    MINTU[1]=K[1];
	    }
	 add64(K,SUMTU);
	 add64(K,SUMT);
	 UT[kk*2]=K[0];
	 UT[kk*2+1]=K[1];
	 kk=kk+1;
	 if (kk>11998) {
	    printf("array not big enough (UT) \n");
	    goto zskip;
	    }
	 STU[4*total]=K[0];
	 STU[4*total+1]=K[1];
	 V[0]=MAXT[0];
	 V[1]=MAXT[1];
	 sub64(K,V);
	 if ((V[0]&0x80000000)==0) {
	    MAXT[0]=K[0];
	    MAXT[1]=K[1];
	    }
	 V[0]=K[0];
	 V[1]=K[1];
	 sub64(MINT,V);
	 if ((V[0]&0x80000000)==0) {
	    MINT[0]=K[0];
	    MINT[1]=K[1];
	    }
//
	 K[0]=YOU[0];  
	 K[1]=YOU[1];
	 if ((K[0]&0x80000000)!=0)
	    sub64(Z,K);
	 V[0]=MAXTU[0];
	 V[1]=MAXTU[1];
	 sub64(K,V);
	 if ((V[0]&0x80000000)==0) {
	    MAXTU[0]=K[0];
	    MAXTU[1]=K[1];
	    }
	 V[0]=K[0];
	 V[1]=K[1];
	 sub64(MINTU,V);
	 if ((V[0]&0x80000000)==0) {
	    MINTU[0]=K[0];
	    MINTU[1]=K[1];
	    }
	 add64(K,SUMTU);
	 add64(K,SUMU);
	 UT[kk*2]=K[0];
	 UT[kk*2+1]=K[1];
	 kk=kk+1;
	 STU[4*total+2]=K[0];
	 STU[4*total+3]=K[1];
	 V[0]=MAXU[0];
	 V[1]=MAXU[1];
	 sub64(K,V);
	 if ((V[0]&0x80000000)==0) {
	    MAXU[0]=K[0];
	    MAXU[1]=K[1];
	    }
	 V[0]=K[0];
	 V[1]=K[1];
	 sub64(MINU,V);
	 if ((V[0]&0x80000000)==0) {
	    MINU[0]=K[0];
	    MINU[1]=K[1];
	    }
	 total=total+1;
	 if (total>5999) {
	    printf("output array too small (STU) \n");
	    goto zskip;
	    }
	 }
//
// check for new cycle
//
      if ((cflag[index+i]!=cflag[index+i+1])||(i==(iters-1))) {
	 for (tempi=0; tempi<klcount; tempi++) {
	    if ((kl[2*tempi]==lodds)&&(kl[2*tempi+1]==levens))
	       goto qskip;
	    }
	 kl[2*klcount]=lodds;
	 kl[2*klcount+1]=levens;
	 klcount=klcount+1;
	 if (klcount>99) {
	    printf("array not big enough (kl) \n");
	    goto zskip;
	    }
qskip:	 if (i==(iters-1)) {
	    if (range[0]==1)
	       printf("c=%d, cycles=%d, total=%d, range=%d \n",c,klcount,iters1,range[0]);
	    else
	       printf("c=%d, cycles=%d, total=%d \n",c,klcount,iters1);
	    if ((eowrite!=2)&&(eowrite!=3)) {
	       if (range[0]==1)
		  fprintf(Outfp,"c=%d, cycles=%d, total=%d, range=%d \n",c,klcount,iters1,range[0]);
	       else
		  fprintf(Outfp,"c=%d, cycles=%d, total=%d \n",c,klcount,iters1);
	       }
	    if (klcount<30) {
	       ncyc[klcount]=ncyc[klcount]+1;
	       }
	    else {
	       printf("error: array not big enough, klcount=%d \n",klcount);
	       goto zskip;
	       }
	    }
/*	 for (tempi=0; tempi<cycsavind; tempi++) {
	    if ((cycsav[2*tempi]==levens)&&(cycsav[2*tempi+1]==lodds))
	       goto rjump;
	    }
	 cycsav[2*cycsavind]=levens;
	 cycsav[2*cycsavind+1]=lodds;
	 cycsavind=cycsavind+1;
	 if (cycsavind>99) {
	    printf("array not big enough (cycsav) \n");
	    goto zskip;
	    }  */
//
// check maximum, minimum, and average (lambda, lambda1, lambda2, and lambda3)
//
//rjump:   dtemp=(double)SUMTU[1]+(double)SUMTU[0]*65536.0*65536.0;
	 dtemp=(double)SUMTU[1]+(double)SUMTU[0]*65536.0*65536.0;
	 lambda=dtemp/(double)(total*2);
	 dtemp=(double)SUMT[1]+(double)SUMT[0]*65536.0*65536.0;
	 lambdat=dtemp/(double)total;
	 dtemp=(double)SUMU[1]+(double)SUMU[0]*65536.0*65536.0;
	 lambdau=dtemp/(double)total;
	 lambda1=0.0;
	 lambda2=0.0;
	 lambda3=0.0;
	 lambda4=0.0;
	 lambda5=0.0;
	 lambda6=0.0;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
		 if ((outsel==9)&&(c==5)) {
			 table6[indx[0]]=STU[2*g];
			 table6[indx[0]+1]=STU[2*g+1];
			 indx[0]=indx[0]+2;
		 } 
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if ((outsel==9)&&(c==5)) {
		 table6[indx[0]]=total;
		 indx[0]=indx[0]+1;
		 table6[indx[0]]=999999;
		 indx[0]=indx[0]+1;
	 }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l1flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda1=dtemp/(double)kk;
	 if (kk==1)
	    goto ejump;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda1) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l2flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda2=dtemp/(double)kk;
	 if (kk==1)
	    goto ejump;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda2) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l3flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda3=dtemp/(double)kk;
	 if (kk==1)
	    goto ejump;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda3) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l4flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda4=dtemp/(double)kk;
	 if (kk==1)
	    goto ejump;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda4) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l5flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda5=dtemp/(double)kk;
	 if (kk==1)
	    goto ejump;
//
	 V[0]=0;
	 V[1]=0;
	 kk=0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)UT[2*g+1]+(double)UT[2*g]*65536.0*65536.0;
	    if (dtemp<=lambda5) {
	       add64(&UT[2*g],V);
	       kk=kk+1;
	       }
	    }
	 if (kk==0) {
	    printf("error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    fprintf(Outfp,"error 1a: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
	    goto zskip;
	    }
	 l6flag=kk;
	 dtemp=(double)V[1]+(double)V[0]*65536.0*65536.0;
	 lambda6=dtemp/(double)kk;
//
// check M and N for parity vector p
//
ejump:	 if (lodds>levens) {
	    for (g=0; g<13000; g++) {
	       if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
		  pcount=pcount+1;
		  hh=halbhung(levens+lodds,lodds,EM,EN,sv,A,B,C,D,L,S,em);  // scaled by 4
		  if (hh!=0) {
		     printf("error: N can't be computed \n");
		     fprintf(Outfp,"error: N can't be computed \n");
		     goto qjump;
		     }
		  d=((double)EN[2]*65536.0*65536.0+(double)EN[3])*(double)c/4.0/6.0;
		  dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
		  if (d>dtemp) {
		     printf("warning 15: lambda=%e, max=%#010x %#010x, min=%#010x %#010x, evens=%d, odds=%d, a=%d, M=%e, N=%e \n",lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],levens,lodds,total,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0);
		     fprintf(Outfp,"warning 15: lambda=%e, max=%#010x %#010x, min=%#010x %#010x, evens=%d, odds=%d, a=%d, M=%e, N=%e \n",lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],levens,lodds,total,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0);
			 goto zskip;
		     }
    	  d=d*2.0;
		  if ((d>dtemp)&&(total!=1)) {
		     printf("warning 15a: lambda=%e, max=%#010x %#010x, min=%#010x %#010x, c=%d, evens=%d, odds=%d, M=%e, N=%e, a=%d \n",lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],c,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0,patcnt);
		     if (eowrite!=3)
			fprintf(Outfp,"warning 15a: lambda=%e, max=%#010x %#010x, min=%#010x %#010x, c=%d, evens=%d, odds=%d, M=%e, N=%e, a=%d \n",lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],c,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0,patcnt);
			 if ((c==8059)&&(levens==14)&&(lodds==24)&&(patcnt==2))  // one time
			    goto phop;
			 if ((c==36791)&&(levens==15)&&(lodds==25)&&(patcnt==2))  // two times
				 goto phop;
			 if ((c==71515)&&(levens==10)&&(lodds==17)&&(patcnt==2))  // five times
				 goto phop;
			 if ((c==124585)&&(levens==12)&&(lodds==20)&&(patcnt==2))  // two times
				 goto phop;
			 if ((c==185357)&&(levens==14)&&(lodds==24)&&(patcnt==2))  // four times
				 goto phop;
			 if ((c==186793)&&(levens==9)&&(lodds==15)&&(patcnt==2))  // two times
				 goto phop;
			 goto zskip;
		     }
phop:	  d=((double)EM[2]*65536.0*65536.0+(double)EM[3])*4.0*(double)c/4.0;
		  dtemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
		  if (d<dtemp) {
		     printf("warning 15b: c=%d, lambda=%e, max=%#010x %#010x, min=%#010x %#010x, evens=%d, odds=%d, a=%d, M=%e, N=%e \n",c,lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],levens,lodds,patcnt,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0);
		     fprintf(Outfp,"warning 15b: c=%d, lambda=%e, max=%#010x %#010x, min=%#010x %#010x, evens=%d, odds=%d, a=%d, M=%e, N=%e \n",c,lambda,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],levens,lodds,patcnt,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0);
			 goto zskip;
   		   if ((c==40741)&&(levens==14)&&(lodds==24)&&(total==1))  // exceptions when factor of 2.0 is used
				 goto qhop;
			 if ((c==71515)&&(levens==10)&&(lodds==17)&&(total==1))
				 goto qhop;
			 if ((c==185357)&&(levens==14)&&(lodds==24)&&(total==2))
				 goto qhop;
			 if ((c==185357)&&(levens==14)&&(lodds==24)&&(total==1))
				 goto qhop;
			 if ((c==185357)&&(levens==28)&&(lodds==48)&&(total==3))
				 goto qhop;
			 if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==1))
				 goto qhop; 
		     goto zskip;
		     }
		  break;
		  }
qhop:     if (lodds<(ln[g]&0xffff))
		  break;
	       }
	    }
//
//  check maxtu/lambda, delta power=a+1
//
qjump:	 d=log(3)/log(2);
	 d=exp((double)(total+1)*log(d));
	 dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 if (d<(dtemp/lambda)) {
	    printf("error 1: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
	    fprintf(Outfp,"error 1: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
	    goto zskip;
	    }
//
//  check maxtu/mintu, a>3, delta power=4*a+1
//
	 if (total>3) {
	    d=log(3)/log(2);
	    d=exp((double)(total*4+1)*log(d));
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    etemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    if (d<(dtemp/etemp)) {
		   if ((c==3047)&&(levens==24)&&(lodds==12)&&(total==4))
			   goto bhop;
		   if ((c==3185)&&(levens==24)&&(lodds==12)&&(total==4))
			   goto bhop;
		   if ((c==4331)&&(levens==30)&&(lodds==30)&&(total==4))
	  	      goto bhop;
		   if ((c==4339)&&(levens==28)&&(lodds==20)&&(total==4))
			   goto bhop;
		   if ((c==5063)&&(levens==40)&&(lodds==56)&&(total==6))
		      goto bhop;
		   if ((c==5137)&&(levens==31)&&(lodds==53)&&(total==4))
			  goto bhop;
		   if ((c==6045)&&(levens==20)&&(lodds==28)&&(total==4))
			  goto bhop;
		   if ((c==6059)&&(levens==20)&&(lodds==28)&&(total==4))
			   goto bhop;
		  if ((c==6511)&&(levens==15)&&(lodds==22)&&(total==4))
		      goto bhop;
	       if ((c==6755)&&(levens==12)&&(lodds==12)&&(total==4))
		      goto bhop;
	       if ((c==7337)&&(levens==16)&&(lodds==18)&&(total==4))
		      goto bhop;
	       if ((c==7633)&&(levens==31)&&(lodds==22)&&(total==4))
		      goto bhop;
	       if ((c==8039)&&(levens==11)&&(lodds==15)&&(total==4))
		      goto bhop;
	       if ((c==8681)&&(levens==23)&&(lodds==10)&&(total==4))
		      goto bhop;
	       if ((c==9217)&&(levens==27)&&(lodds==25)&&(total==4))
		      goto bhop;
	       if ((c==10093)&&(levens==29)&&(lodds==23)&&(total==4))
		  goto bhop;
	       if ((c==11117)&&(levens==20)&&(lodds==7)&&(total==4))
		  goto bhop;
	       if ((c==13657)&&(levens==24)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==13885)&&(levens==20)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==13925)&&(levens==14)&&(lodds==9)&&(total==4))
		  goto bhop;
	       if ((c==15005)&&(levens==20)&&(lodds=10)&&(total==4))
		  goto bhop;
	       if ((c==16831)&&(levens==17)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==17231)&&(levens==13)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==18571)&&(levens==14)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==19415)&&(levens==12)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==19439)&&(levens==30)&&(lodds==36)&&(total==4))
		  goto bhop;
	       if ((c==20221)&&(levens==24)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==20297)&&(levens==13)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==21191)&&(levens==23)&&(lodds==11)&&(total==4))
		  goto bhop;
	       if ((c==21697)&&(levens==33)&&(lodds==39)&&(total==6))
		  goto bhop;
	       if ((c==22237)&&(levens==15)&&(lodds==15)&&(total==4))
		  goto bhop;
	       if ((c==23137)&&(levens==35)&&(lodds==30)&&(total==4))
		  goto bhop;
	       if ((c==23159)&&(levens==38)&&(lodds==30)&&(total==6))
		  goto bhop;
	       if ((c==23465)&&(levens==24)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==23761)&&(levens==23)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==24053)&&(levens==14)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==25277)&&(levens==30)&&(lodds==42)&&(total==6))
		  goto bhop;
	       if ((c==25309)&&(levens==19)&&(lodds==19)&&(total==4))
		  goto bhop;
	       if ((c==25309)&&(levens==19)&&(lodds==19)&&(total==5))
		  goto bhop;
	       if ((c==25921)&&(levens==23)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==27041)&&(levens==34)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==28595)&&(levens==36)&&(lodds==24)&&(total==6))
		  goto bhop;
	       if ((c==28727)&&(levens==17)&&(lodds==4)&&(total==4))
		  goto bhop;
	       if ((c==29521)&&(levens==28)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==29687)&&(levens==16)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==30193)&&(levens==19)&&(lodds==21)&&(total==4))
		  goto bhop;
	       if ((c==30241)&&(levens==21)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==31415)&&(levens==20)&&(lodds==28)&&(total==4))
		  goto bhop;
	       if ((c==32137)&&(levens==27)&&(lodds==24)&&(total==5))
		  goto bhop;
	       if ((c==33011)&&(levens==20)&&(lodds==10)&&(total==4))
		  goto bhop;
	       if ((c==33497)&&(levens==18)&&(lodds==12)&&(total==5))
		  goto bhop;
	       if ((c==33181)&&(levens==26)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==33775)&&(levens==12)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==34501)&&(levens==26)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==35705)&&(levens==24)&&(lodds==24)&&(total==5))
		  goto bhop;
	       if ((c==34501)&&(levens==13)&&(lodds==9)&&(total==4))
		  goto bhop;
	       if ((c==34765)&&(levens==36)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==35483)&&(levens==20)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==35815)&&(levens==24)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==35851)&&(levens==22)&&(lodds==7)&&(total==4))
		  goto bhop;
	       if ((c==36043)&&(levens==36)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==36173)&&(levens==20)&&(lodds==16)&&(total==5))
		  goto bhop;
	       if ((c==36391)&&(levens==24)&&(lodds==30)&&(total==4))
		  goto bhop;
	       if ((c==36649)&&(levens==16)&&(lodds==23)&&(total==4))
		  goto bhop;
	       if ((c==37315)&&(levens==28)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==37595)&&(levens==20)&&(lodds==28)&&(total==4))
		  goto bhop;
	       if ((c==38353)&&(levens==23)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==38375)&&(levens==14)&&(lodds==19)&&(total==4))
		  goto bhop;
	       if ((c==39217)&&(levens==16)&&(lodds==23)&&(total==4))
		  goto bhop;
	       if ((c==38669)&&(levens==22)&&(lodds==29)&&(total==5))
		  goto bhop;
	       if ((c==38701)&&(levens==15)&&(lodds==9)&&(total==4))
		  goto bhop;
	       if ((c==40103)&&(levens==16)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==40151)&&(levens==15)&&(lodds==11)&&(total==4))
		  goto bhop;
	       if ((c==40619)&&(levens==16)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==40549)&&(levens==18)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==41003)&&(levens==26)&&(lodds==26)&&(total==5))
		  goto bhop;
	       if ((c==41095)&&(levens==20)&&(lodds==6)&&(total==4))
		  goto bhop;
	       if ((c==41137)&&(levens==11)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==41161)&&(levens==26)&&(lodds==28)&&(total==4))
		  goto bhop;
	       if ((c==41279)&&(levens==11)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==42251)&&(levens==16)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==42851)&&(levens==14)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==43441)&&(levens==15)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==43441)&&(levens==15)&&(lodds==20)&&(total==5))
		  goto bhop;
	       if ((c==43529)&&(levens==12)&&(lodds==10)&&(total==4))
		  goto bhop;
	       if ((c==43369)&&(levens==27)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==44311)&&(levens==15)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==44311)&&(levens==15)&&(lodds==12)&&(total==5))
		  goto bhop;
	       if ((c==45641)&&(levens==18)&&(lodds==28)&&(total==4))
		  goto bhop;
	       if ((c==45853)&&(levens==14)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==45853)&&(levens==21)&&(lodds==27)&&(total==5))
		  goto bhop;
	       if ((c==45871)&&(levens==18)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==46181)&&(levens==24)&&(lodds==23)&&(total==5))
		  goto bhop;
	       if ((c==47209)&&(levens==20)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==47209)&&(levens==20)&&(lodds==24)&&(total==5))
		  goto bhop;
	       if ((c==47369)&&(levens==24)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==47369)&&(levens==24)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==50359)&&(levens==34)&&(lodds==18)&&(total==6))
		  goto bhop;
	       if ((c==50479)&&(levens==24)&&(lodds==32)&&(total==4))
		  goto bhop;
	       if ((c==51719)&&(levens==21)&&(lodds==10)&&(total==4))
		  goto bhop;
	       if ((c==51833)&&(levens==19)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==51895)&&(levens==12)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==52349)&&(levens==18)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==52451)&&(levens==12)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==53431)&&(levens==31)&&(lodds==22)&&(total==5))
		  goto bhop;
	       if ((c==53741)&&(levens==40)&&(lodds==32)&&(total==5))
		  goto bhop;
	       if ((c==54955)&&(levens==28)&&(lodds==28)&&(total==4))
		  goto bhop;
	       if ((c==55085)&&(levens==26)&&(lodds==21)&&(total==4))
		  goto bhop;
	       if ((c==57061)&&(levens==22)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==58045)&&(levens==12)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==58975)&&(levens==16)&&(lodds==16)&&(total==5))
		  goto bhop;
	       if ((c==59495)&&(levens==36)&&(lodds==36)&&(total==4))
		  goto bhop;
	       if ((c==60481)&&(levens==24)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==60965)&&(levens==20)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==60997)&&(levens==40)&&(lodds==40)&&(total==5))
		  goto bhop;
	       if ((c==62419)&&(levens==32)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==62683)&&(levens==22)&&(lodds==21)&&(total==4))
		  goto bhop;
	       if ((c==62725)&&(levens==12)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==63889)&&(levens==17)&&(lodds==20)&&(total==5))
		  goto bhop;
	       if ((c==63973)&&(levens==18)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==63973)&&(levens==18)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==64255)&&(levens==20)&&(lodds==20)&&(total==5))
		  goto bhop;
	       if ((c==64829)&&(levens==12)&&(lodds==15)&&(total==4))
		  goto bhop;
	       if ((c==65617)&&(levens==24)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==66367)&&(levens==18)&&(lodds==30)&&(total==5))
		  goto bhop;
	       if ((c==67033)&&(levens==18)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==67667)&&(levens==23)&&(lodds==27)&&(total==5))
		  goto bhop;
	       if ((c==67723)&&(levens==36)&&(lodds==28)&&(total==5))
		  goto bhop;
	       if ((c==67915)&&(levens==24)&&(lodds==32)&&(total==4))
		  goto bhop;
	       if ((c==68495)&&(levens==36)&&(lodds==30)&&(total==5))
		  goto bhop;
	       if ((c==69355)&&(levens==24)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==69443)&&(levens==17)&&(lodds==11)&&(total==4))
		  goto bhop;
	       if ((c==69685)&&(levens==20)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==69907)&&(levens==20)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==71791)&&(levens==23)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==72023)&&(levens==14)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==72097)&&(levens==16)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==72097)&&(levens==32)&&(lodds==32)&&(total==4))
		  goto bhop;
	       if ((c==72163)&&(levens==30)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==72391)&&(levens==28)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==74531)&&(levens==30)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==75025)&&(levens==40)&&(lodds==20)&&(total==5))
		  goto bhop;
	       if ((c==75821)&&(levens==24)&&(lodds==29)&&(total==4))
		  goto bhop;
	       if ((c==76463)&&(levens==26)&&(lodds==30)&&(total==4))
		  goto bhop;
	       if ((c==77089)&&(levens==45)&&(lodds==36)&&(total==5))
		  goto bhop;
	       if ((c==77287)&&(levens==30)&&(lodds==30)&&(total==5))
		  goto bhop;
	       if ((c==77891)&&(levens==24)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==78005)&&(levens==30)&&(lodds==29)&&(total==4))
		  goto bhop;
	       if ((c==78403)&&(levens==18)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==79285)&&(levens==16)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==80155)&&(levens==24)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==80969)&&(levens==24)&&(lodds==30)&&(total==4))
		  goto bhop;
	       if ((c==81059)&&(levens==23)&&(lodds==39)&&(total==6))
		  goto bhop;
	       if ((c==81097)&&(levens==28)&&(lodds==23)&&(total==4))
		  goto bhop;
	       if ((c==81437)&&(levens==30)&&(lodds==30)&&(total==5))
		  goto bhop;
	       if ((c==81437)&&(levens==30)&&(lodds==30)&&(total==6))
		  goto bhop;
	       if ((c==81515)&&(levens==20)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==81757)&&(levens==30)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==82093)&&(levens==14)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==82847)&&(levens==23)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==82955)&&(levens==12)&&(lodds==16)&&(total==4))
		  goto bhop;
	       if ((c==83285)&&(levens==22)&&(lodds==13)&&(total==4))
		  goto bhop;
	       if ((c==85189)&&(levens==18)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if ((c==85219)&&(levens==28)&&(lodds==36)&&(total==4))
		  goto bhop;
	       if ((c==85351)&&(levens==20)&&(lodds==8)&&(total==4))
		  goto bhop;
	       if ((c==86731)&&(levens==28)&&(lodds==21)&&(total==4))
		  goto bhop;
	       if ((c==86963)&&(levens==36)&&(lodds==24)&&(total==5))
		  goto bhop;
	       if ((c==87551)&&(levens==32)&&(lodds==22)&&(total==4))
		  goto bhop;
	       if ((c==85565)&&(levens==16)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==90421)&&(levens==18)&&(lodds==24)&&(total==4))
		  goto bhop;
	       if ((c==90739)&&(levens==32)&&(lodds==16)&&(total==5))
		  goto bhop;
	       if ((c==91595)&&(levens==24)&&(lodds==36)&&(total==4))
		  goto bhop;
	       if ((c==92629)&&(levens==42)&&(lodds==36)&&(total==7))
		  goto bhop;
	       if ((c==92833)&&(levens==12)&&(lodds==12)&&(total==4))
		  goto bhop;
	       if ((c==92905)&&(levens==28)&&(lodds==24)&&(total==5))
		  goto bhop;
	       if ((c==95185)&&(levens==20)&&(lodds==14)&&(total==4))
		  goto bhop;
	       if ((c==96913)&&(levens==27)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==97105)&&(levens==28)&&(lodds==30)&&(total==4))
		  goto bhop;
	       if ((c==97471)&&(levens==20)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==97565)&&(levens==24)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==97625)&&(levens==20)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==97817)&&(levens==24)&&(lodds==20)&&(total==4))
		  goto bhop;
	       if ((c==99157)&&(levens==30)&&(lodds==18)&&(total==5))
		  goto bhop;
	       if ((c==99157)&&(levens==15)&&(lodds==9)&&(total==4))
		  goto bhop;
	       if ((c==99263)&&(levens==21)&&(lodds==18)&&(total==4))
		  goto bhop;
	       if (c>100000)
		  goto bhop; 
	       printf("error 2: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
	       fprintf(Outfp,"error 2: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
	       goto zskip;
	       }
	    }
bhop: d=log(3)/log(2);
	 d=exp((double)(total+1)*log(d));
	 if (lambda1!=0.0) {
	    count1=count1+1;
	    if (d<(lambda/lambda1)) {
	       if (eowrite==0) {
		  printf("error 1b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,lambda1,total,c,levens,lodds);
		  fprintf(Outfp,"error 1b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,lambda1,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l1flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l1flag);
		  }
	       error[0]=error[0]+1;
	       }
	    }
	 if ((lambda1!=0.0)&&(lambda2!=0.0)) {
	    count2=count2+1;
	    if (d<(lambda1/lambda2)) {
	       if (eowrite==0) {
		  printf("error 2b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda1,lambda2,total,c,levens,lodds);
		  fprintf(Outfp,"error 2b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda1,lambda2,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l2flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l2flag);
		  }
	       error[1]=error[1]+1;
	       }
	    }
	 if ((lambda2!=0.0)&&(lambda3!=0.0)) {
	    count3=count3+1;
	    if (d<(lambda2/lambda3)) {
	       if (eowrite==0) {
		  printf("error 3b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda2,lambda3,total,c,levens,lodds);
		  fprintf(Outfp,"error 3b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda2,lambda3,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l3flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l3flag);
		  }
	       error[2]=error[2]+1;
	       }
	    }
	 if ((lambda3!=0.0)&&(lambda4!=0.0)) {
	    count4=count4+1;
	    if (d<(lambda3/lambda4)) {
	       if (eowrite==0) {
		  printf("error 4b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda3=%e, lambda4=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda3,lambda4,total,c,levens,lodds);
		  fprintf(Outfp,"error 4b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda3=%e, lambda4=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda3,lambda4,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l4flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l4flag);
		  }
	       error[3]=error[3]+1;
	       }
	    }
	 if ((lambda4!=0.0)&&(lambda5!=0.0)) {
	    count5=count5+1;
	    if (d<(lambda4/lambda5)) {
	       if (eowrite==0) {
		  printf("error 5b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda4=%e, lambda5=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda4,lambda5,total,c,levens,lodds);
		  fprintf(Outfp,"error 5b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda4=%e, lambda5=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda4,lambda5,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l5flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l5flag);
		  }
	       error[4]=error[4]+1;
	       }
	    }
	 if ((lambda5!=0.0)&&(lambda6!=0.0)) {
	    count6=count6+1;
	    if (d<(lambda5/lambda6)) {
	       if (eowrite==0) {
		  printf("error 6b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda5=%e, lambda6=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda5,lambda6,total,c,levens,lodds);
		  fprintf(Outfp,"error 6b: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda5=%e, lambda6=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda5,lambda6,total,c,levens,lodds);
		  printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l6flag);
		  fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l6flag);
		  }
	       error[5]=error[5]+1;
	       }
	    }
//
// check maxtu/mintu, parity vector p, lambda/lambda1, lambda1/lambda2, etc.
//
	 if (lodds>levens) {
	    for (g=0; g<13000; g++) {
	       if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
		      d=log(3)/log(2);
			  teed=d;
		      d=exp((double)(total*4+1)*log(d));
		      dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
		      etemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
			  dcount=1;
			  while(teed<(dtemp/etemp)) {
				  teed=teed*log(3)/log(2);
				  dcount=dcount+1;
			  }
			  if (dcount>deemax) {
				  deemax=dcount;
				  savel=ln[g]>>16;
				  saven=ln[g]&0xffff;
				  savemax=dtemp;
				  savemin=etemp;
				  savemaxu=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
		          saveminu=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
			      savemaxt=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
		          savemint=(double)MINT[1]+(double)MINT[0]*65536.0*65536.0;
				  savesee=c;
			  }
		      if (d<(dtemp/etemp)) {
		         printf("warning 11: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
		         if (eowrite!=3)
			        fprintf(Outfp,"warning 11: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
				 if ((c==1631)&&(levens==5)&&(lodds==8)&&(total==2))
			        goto ahop;
				 if ((c==6487)&&(levens==12)&&(lodds==20)&&(total==2))
			        goto ahop;
		         if ((c==6487)&&(levens==12)&&(lodds==20)&&(total==3))
			        goto ahop;
		         if ((c==6487)&&(levens==6)&&(lodds==10)&&(total==2))
			        goto ahop;
		         if ((c==6487)&&(levens==6)&&(lodds==10)&&(total==1))
			        goto ahop;
		         if ((c==7153)&&(levens==14)&&(lodds==24)&&(total==2))  
			        goto ahop;
		         if ((c==7153)&&(levens==7)&&(lodds==12)&&(total==1))
					 goto ahop;
				 if ((c==8059)&&(levens==14)&&(lodds==24)&&(total==2))
			        goto ahop;
		         if ((c==8059)&&(levens==14)&&(lodds==24)&&(total==1))
		  	        goto ahop;
				 if ((c==14303)&&(levens==10)&&(lodds==17)&&(total==1))
			        goto ahop;
		         if ((c==14303)&&(levens==10)&&(lodds==17)&&(total==2))
			        goto ahop;
		         if ((c==27313)&&(levens==15)&&(lodds==25)&&(total==3))
			        goto ahop;
		         if ((c==32435)&&(levens==12)&&(lodds==20)&&(total==3))
			        goto ahop;
		         if ((c==39409)&&(levens==17)&&(lodds==29)&&(total==2))
			        goto ahop;
		         if ((c==40741)&&(levens==14)&&(lodds==24)&&(total==1))
			        goto ahop;
		         if ((c==40741)&&(levens==14)&&(lodds==24)&&(total==2))
			        goto ahop;
		         if ((c==40741)&&(levens==14)&&(lodds==24)&&(total==3))
			        goto ahop;
		         if ((c==50071)&&(levens==21)&&(lodds==36)&&(total==2))
			        goto ahop;
		         if ((c==50071)&&(levens==21)&&(lodds==36)&&(total==3))
			        goto ahop;
		         if ((c==71515)&&(levens==10)&&(lodds==17)&&(total==2))
			        goto ahop;
		         if ((c==71515)&&(levens==10)&&(lodds==17)&&(total==1))
			        goto ahop;
		         if ((c==81059)&&(levens==23)&&(lodds==39)&&(total==6))
			        goto ahop;
		         if ((c==124585)&&(levens==12)&&(lodds==20)&&(total==2))
			        goto ahop;
		         if ((c==124585)&&(levens==12)&&(lodds==20)&&(total==4))
			        goto ahop;
		         if ((c==124585)&&(levens==12)&&(lodds==20)&&(total==3))
			        goto ahop;
		         if ((c==124585)&&(levens==12)&&(lodds==20)&&(total==1))
			        goto ahop;
		         if ((c==185357)&&(levens==14)&&(lodds==24)&&(total==2))
			        goto ahop;
		         if ((c==185357)&&(levens==14)&&(lodds==24)&&(total==1))
			        goto ahop;
		         if ((c==185357)&&(levens==28)&&(lodds==48)&&(total==3))
			        goto ahop;
		         if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==3))
			        goto ahop;
		         if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==2))
			        goto ahop;
		         if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==1))
			        goto ahop; 
		         goto zskip;
		         }
ahop:	  d=log(3)/log(2);
		  d=exp((double)(total+1)*log(d));
		  if (lambda1!=0.0) {
		     if (d<(lambda/lambda1)) {
				printf("warning 12: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,lambda1,total,c,levens,lodds);
    			if (eowrite!=3)
			       fprintf(Outfp,"warning 12: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,lambda1,total,c,levens,lodds);
    		   if (l1flag!=1) {
			   if ((c==3013)&&(levens==14)&&(lodds==24)&&(total==4))
			      goto quhop;
			   if ((c==5137)&&(levens==31)&&(lodds==53)&&(total==4))
				   goto quhop;
			   if ((c==6487)&&(levens==12)&&(lodds==20)&&(total==2))
			      goto quhop;
			   if ((c==6487)&&(levens==12)&&(lodds==20)&&(total==3))
			      goto quhop;
			   if ((c==7153)&&(levens==14)&&(lodds==24)&&(total==3))
			      goto quhop;
			   if ((c==7153)&&(levens==21)&&(lodds==36)&&(total==3))
			      goto quhop;
			   if ((c==7153)&&(levens==14)&&(lodds==24)&&(total==2))
			      goto quhop;
			   if ((c==7153)&&(levens==7)&&(lodds==12)&&(total==2))
			      goto quhop;
			   if ((c==8059)&&(levens==14)&&(lodds==24)&&(total==2))
			      goto quhop;
			   if ((c==8059)&&(levens==14)&&(lodds==24)&&(total==3))
			      goto quhop; 
			   if (c>10000)
				   goto quhop;
			   goto zskip;
			   }
			else {
			   if (eowrite==0) {
			      printf("kkp=1 \n");
			      fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
			      }
			   }
			}
		     }
quhop:		  if ((lambda1!=0.0)&&(lambda2!=0.0)) {
		     if (d<(lambda1/lambda2)) {
			printf("warning 13: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda1,lambda2,total,c,levens,lodds);
			if (eowrite!=3)
			   fprintf(Outfp,"warning 13: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda1,lambda2,total,c,levens,lodds);
			if (l2flag!=1) {
			   if ((c==7097)&&(levens==41)&&(lodds==70)&&(total==5))
			      goto jhop;
			   if ((c==7153)&&(levens==14)&&(lodds==24)&&(total==3))
			      goto jhop;
			   if ((c==14303)&&(levens==10)&&(lodds==17)&&(total==2))
			      goto jhop;
			   if ((c==27313)&&(levens==15)&&(lodds==25)&&(total==3))
			      goto jhop;
			   if ((c==27313)&&(levens==15)&&(lodds==25)&&(total==2))
			      goto jhop;
			   if (c>30000)
				   goto jhop;
			    goto zskip;
			   }
			else {
			   if (eowrite==0) {
			      printf("kkp=1 \n");
			      fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
			      }
			   }
			}
jhop:		     dtemp=0.0;
		     }
		  if ((lambda2!=0.0)&&(lambda3!=0.0)) {
		     if (d<(lambda2/lambda3)) {
			printf("warning 14: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda2,lambda3,total,c,levens,lodds);
			if (eowrite!=3)
			   fprintf(Outfp,"warning 14: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda2,lambda3,total,c,levens,lodds);
			if (l3flag!=1) {
			   if ((c==50071)&&(levens==21)&&(lodds==36)&&(total==3))
			      goto khup;
			   if ((c==124585)&&(levens==12)&&(lodds==20)&&(total==4))
			      goto khup;
			   goto zskip;
			   }
			else {
			   if (eowrite==0) {
			      printf("kkp=1 \n");
			      fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total);
			      }
			   }
			}
khup:		     dtemp=0.0;
		     }
		  }
	       if (lodds<(ln[g]&0xffff))
		  break;
	       }
	    }
//
// lambda=average of t, lambda=average of u, delta power=(a+2)/2
//
	 d=log(3)/log(2);
	 d=exp((double)(total+2)/2.0*log(d));
	 dtemp=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
	 if (d<(dtemp/lambdau)) {
	    printf("error 22: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambdau=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXU[0],MAXU[1],MINU[0],MINU[1],lambdau,total,c,levens,lodds);
	    fprintf(Outfp,"error 22: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambdau=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXU[0],MAXU[1],MINU[0],MINU[1],lambdau,total,c,levens,lodds);
	    goto zskip;
	    }
//
// evens minus odds
//
	 if (outsel==20) {
		 delta=levens-lodds;
		 if (delta<0) {
			 delta=-delta;
	         if (total<13) {
                table6[indx[2*total-1]*25+2*total-1]=delta;
		        indx[2*total-1]=indx[2*total-1]+1;
			    if (indx[2*total-1]>80000) {
			       printf("array not big enough (20) \n");
			       goto zskip;
			       }
			    }
		    }
		 else {
		     if (total<13) {
                table6[indx[2*total-2]*25+2*total-2]=delta;
		        indx[2*total-2]=indx[2*total-2]+1;
			    if (indx[2*total-2]>80000) {
			       printf("array not big enough (20) \n");
			       goto zskip;
			       }
			    }
			 }
	     }
//
//  power greater than umax/lambdau
//
	 if (total>200)
		 goto bzskip;
	 d=lambdau;
	 dtemp=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
	 for (jj=0; jj<60; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>29) {
		  printf("array not big enough (table3) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXU[1],lambdau);
		  goto zskip;
		  }
		   table3[(total-1)*30+jj+1]=table3[(total-1)*30+jj+1]+1;
		   break;
	     }
	 }
bzskip:
	 d=lambdau;
	 dtemp=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
	 for (jj=0; jj<80; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>39) {
		  printf("array not big enough (d50hist) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXU[1],lambdau);
		  goto zskip;
		  }
		     if (outsel==5) {
			if (rowcol!=0) {
		       if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>80000) {
			         printf("array not big enough (5) \n");
			         goto zskip;
			        }
		          }
		      }
			else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>80000) {
			    printf("array not big enough (5) \n");
			    goto zskip;
			    }
		   }
			}
		   } 
	       if (total==1)
		  d50hist[jj+1]=d50hist[jj+1]+1;
	       if (total==2)
		  d51hist[jj+1]=d51hist[jj+1]+1;
	       if (total==3)
		  d52hist[jj+1]=d52hist[jj+1]+1;
	       if (total==4)
		  d53hist[jj+1]=d53hist[jj+1]+1;
	       if (total==5)
		  d54hist[jj+1]=d54hist[jj+1]+1;
	       if (total==6)
		  d55hist[jj+1]=d55hist[jj+1]+1;
	       if (total==7)
		  d56hist[jj+1]=d56hist[jj+1]+1;
	       if (total==8)
		  d57hist[jj+1]=d57hist[jj+1]+1;
	       if (total==9)
		  d58hist[jj+1]=d58hist[jj+1]+1;
	       if (total==10)
		  d59hist[jj+1]=d59hist[jj+1]+1;
	       break;
	       }
	    }
//
// power greater than lambdau/minu
//
	 detemp=d;
	 d=lambdau;
	 dtemp=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
	 for (jj=0; jj<80; jj++) {
	    d=d*log(2)/log(3);
	    if (d<dtemp) {
			if (outsel==7) {
	       if ((jj+1)>39) {
		      printf("array not big enough (table6) p=%d \n",jj+1);
		      printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MINU[1],lambdau);
		      goto zskip;
		      }
		   	  if (total<26) {
                 table6[indx[total-1]*25+total-1]=jj+1;
		         indx[total-1]=indx[total-1]+1;
			     if (indx[total-1]>40000) {
			        printf("array not big enough (7) \n");
			        goto zskip;
			        }
		         }
			  }
		   break;
		   }
	    }
	 d=detemp;
//
//  power greater than tmax/lambdat
//
	 if (total>200)
		 goto czskip;
     d=lambdat;
	 dtemp=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
	 for (jj=0; jj<30; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>29) {
		  printf("array not big enough (table2) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXT[1],lambdat);
		  goto zskip;
		  }
		   table2[(total-1)*30+jj+1]=table2[(total-1)*30+jj+1]+1;
		   break;
	     }
	 }
czskip:
	 dtemp=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
	 if (d<(dtemp/lambdat)) {
	    printf("error 23: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambdat=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXT[0],MAXT[1],MINT[0],MINU[1],lambdat,total,c,levens,lodds);
	    fprintf(Outfp,"error 23: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambdat=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXT[0],MAXT[1],MINT[0],MINU[1],lambdat,total,c,levens,lodds);
	    goto zskip;
	    }
	 d=lambdat;
	 dtemp=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
	 for (jj=0; jj<80; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>39) {
		  printf("array not big enough (d60hist) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXT[1],lambdat);
		  goto zskip;
		  }
	    if (outsel==4) {
			if (rowcol!=0) {
		       if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>80000) {
			         printf("array not big enough (indx) \n");
			         goto zskip;
			        }
		          }
		      }
			else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>40000) {
			    printf("array not big enough (indx) \n");
			    goto zskip;
			    }
		   }
			}
		   } 
	       if (total==1)
		  d60hist[jj+1]=d60hist[jj+1]+1;
	       if (total==2)
		  d61hist[jj+1]=d61hist[jj+1]+1;
	       if (total==3)
		  d62hist[jj+1]=d62hist[jj+1]+1;
	       if (total==4)
		  d63hist[jj+1]=d63hist[jj+1]+1;
	       if (total==5)
		  d64hist[jj+1]=d64hist[jj+1]+1;
	       if (total==6)
		  d65hist[jj+1]=d65hist[jj+1]+1;
	       if (total==7)
		  d66hist[jj+1]=d66hist[jj+1]+1;
	       if (total==8)
		  d67hist[jj+1]=d67hist[jj+1]+1;
	       if (total==9)
		  d68hist[jj+1]=d68hist[jj+1]+1;
	       if (total==10)
		  d69hist[jj+1]=d69hist[jj+1]+1;
	       break;
	       }
	    }
//
//  power greater than tmax/tmin
//
	 if (total>60)
		 goto fzskip;
	 dtemp=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
	 d=(double)MINT[1]+(double)MINT[0]*65536.0*65536.0;
	 for (jj=0; jj<200; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>99) {
		  printf("array not big enough (table5) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, min=%e \n",c,levens,lodds,patcnt,MAXT[1],MINT[1]);
		  goto zskip;
		  }
		    if (outsel==2) {
				if (rowcol!=0) {
					   if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>40000) {
			         printf("array not big enough (indx) \n");
			         goto zskip;
			        }
		          }
		  		}
			   else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>40000) {
			    printf("array not big enough (indx) \n");
			    goto zskip;
			    }
		   }
			}
		   }
		   table5[(total-1)*100+jj+1]=table5[(total-1)*100+jj+1]+1;
		   break;
	     }
	 }
//
//  power greater than umax/umin
//
fzskip:
	 if (total>60)
		 goto ezskip;
	 dtemp=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
	 d=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
	 for (jj=0; jj<200; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>99) {
		  printf("array not big enough (table4) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, min=%e \n",c,levens,lodds,patcnt,MAXU[1],MINU[1]);
		  goto zskip;
		  }
		   if (outsel==1) {
			   if (rowcol!=0) {
				   if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>40000) {
			         printf("array not big enough (indx) \n");
			         goto zskip;
			        }
		          }
		   		   }
		   else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>40000) {
			    printf("array not big enough (indx) \n");
			    goto zskip;
			    }
		   }
			}
		   }
		   table4[(total-1)*100+jj+1]=table4[(total-1)*100+jj+1]+1;
		   break;
	     }
	 }
//
//  power greater than utmax/lambda
//
ezskip:
	 if (total>200)
		 goto azskip;
	  d=lambda;
	 dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 for (jj=0; jj<60; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>29) {
		  printf("array not big enough (table) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		  goto zskip;
		  }
		 table[(total-1)*30+jj+1]=table[(total-1)*30+jj+1]+1;
		   break;
	     }
	 }
//
azskip:
	 d=lambda;
	 dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 for (jj=0; jj<80; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>39) {
		  printf("array not big enough (d18hist) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		  goto zskip;
		  }
	    if (outsel==6) {
			if (rowcol!=0) {
		       if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>80000) {
			         printf("array not big enough (indx) \n");
			         goto zskip;
			        }
		          }
		      }
			else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>40000) {
			    printf("array not big enough (indx) \n");
			    goto zskip;
			    }
		   }
			}
		}
	       if (total==1)
		  d18hist[jj+1]=d18hist[jj+1]+1;
	       if (total==2)
		  d19hist[jj+1]=d19hist[jj+1]+1;
	       if (total==3)
		  d20hist[jj+1]=d20hist[jj+1]+1;
	       if (total==4)
		  d21hist[jj+1]=d21hist[jj+1]+1;
	       if (total==5)
		  d22hist[jj+1]=d22hist[jj+1]+1;
	       if (total==6)
		  d23hist[jj+1]=d23hist[jj+1]+1;
	       if (total==7)
		  d24hist[jj+1]=d24hist[jj+1]+1;
	       if (total==8)
		  d25hist[jj+1]=d25hist[jj+1]+1;
	       if (total==9)
		  d42hist[jj+1]=d42hist[jj+1]+1;
	       if (total==10)
		  d43hist[jj+1]=d43hist[jj+1]+1;
	       if (total==11)
		  d44hist[jj+1]=d44hist[jj+1]+1;
	       if (total==12)
		  d45hist[jj+1]=d45hist[jj+1]+1;
	       if (total==13)
		  d46hist[jj+1]=d46hist[jj+1]+1;
	       if (total==14)
		  d47hist[jj+1]=d47hist[jj+1]+1;
	       if (total==15)
		  d48hist[jj+1]=d48hist[jj+1]+1;
	       if (total==16)
		  d49hist[jj+1]=d49hist[jj+1]+1;
	       if (total==17)
		  d72hist[jj+1]=d72hist[jj+1]+1;
	       if (total==18)
		  d73hist[jj+1]=d73hist[jj+1]+1;
	       if (total==19)
		  d74hist[jj+1]=d74hist[jj+1]+1;
	       if (total==20)
		  d75hist[jj+1]=d75hist[jj+1]+1;
	       if (total==21)
		  d76hist[jj+1]=d76hist[jj+1]+1;
	       if (total==22)
		  d77hist[jj+1]=d77hist[jj+1]+1;
	       if (total==23)
		  d78hist[jj+1]=d78hist[jj+1]+1;
	       if (total==24)
		  d79hist[jj+1]=d79hist[jj+1]+1;
	       d11hist[jj+1]=d11hist[jj+1]+1;
	       break;
	       }
	    }
//
	 if (lambda1!=0.0) {  // Kilroy was here.
		 if (parpflag==0)
			 goto parpa;
		 if (levens>=lodds)
			 goto parpskip;
		 for (g=0; g<13000; g++) {
	       if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) 
			   goto parpa;
		   if (lodds<(ln[g]&0xffff))
			   goto parpskip;
	       }
		 goto parpskip;
parpa:  d=lambda1;
	    if (lammax!=0)
		   dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
		else
		   dtemp=lambda;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
//			  if (((jj+1)>2)&&(total==1)) {
//                 printf("c=%d, e=%d, o=%d, a=%d, power=%d, avg1=%e, avg=%e \n",c,levens,lodds,patcnt,jj+1,lambda1,lambda);
//				 goto zskip;
//			     }
	  	      if ((jj+1)>39) {
		         printf("array not big enough (d12hist) p=%d \n",jj+1);
		         printf("c=%d, e=%d, o=%d, a=%d, avg1=%e, avg=%e \n",c,levens,lodds,patcnt,lambda1,lambda);
		         goto zskip;
		         }
		      if (outsel==8) {
			     if (total<26) {
                    table6[indx[total-1]*25+total-1]=jj+1;
		            indx[total-1]=indx[total-1]+1;
			        if (indx[total-1]>40000) {
			           printf("array not big enough (indx) \n");
			           goto zskip;
			           }
		            }
			     }
		     if (total==1)
		        d26hist[jj+1]=d26hist[jj+1]+1;
		     if (total==2)
		        d27hist[jj+1]=d27hist[jj+1]+1;
		     if (total==3)
		        d28hist[jj+1]=d28hist[jj+1]+1;
		     if (total==4)
		        d29hist[jj+1]=d29hist[jj+1]+1;
		     if (total==5)
		        d30hist[jj+1]=d30hist[jj+1]+1;
		     if (total==6)
		        d31hist[jj+1]=d31hist[jj+1]+1;
		     if (total==7)
		        d32hist[jj+1]=d32hist[jj+1]+1;
		     if (total==8)
		        d33hist[jj+1]=d33hist[jj+1]+1;
		     if (total==9)
		        d88hist[jj+1]=d88hist[jj+1]+1;
		     if (total==10)
		        d89hist[jj+1]=d89hist[jj+1]+1;
		     if (total==11)
		        d90hist[jj+1]=d90hist[jj+1]+1;
		     if (total==12)
		        d91hist[jj+1]=d91hist[jj+1]+1;
		     d12hist[jj+1]=d12hist[jj+1]+1;
		     break;
		     }
	       }
	    }
//
parpskip:
	 if ((lambda1!=0.0)&&(lambda2!=0.0)) {
	    d=lambda2;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>lambda1) {
		  if ((jj+1)>39) {
		     printf("array not big enough (d13hist) p=%d \n",jj+1);
		     printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		     goto zskip;
		     }
		  if (total==1)
		     d34hist[jj+1]=d34hist[jj+1]+1;
		  if (total==2)
		     d35hist[jj+1]=d35hist[jj+1]+1;
		  if (total==3)
		     d36hist[jj+1]=d36hist[jj+1]+1;
		  if (total==4)
		     d37hist[jj+1]=d37hist[jj+1]+1;
		  if (total==5)
		     d38hist[jj+1]=d38hist[jj+1]+1;
		  if (total==6)
		     d39hist[jj+1]=d39hist[jj+1]+1;
		  if (total==7)
		     d40hist[jj+1]=d40hist[jj+1]+1;
		  if (total==8)
		     d41hist[jj+1]=d41hist[jj+1]+1;
		  if (total==9)
		     d92hist[jj+1]=d92hist[jj+1]+1;
		  if (total==10)
		     d93hist[jj+1]=d93hist[jj+1]+1;
		  if (total==11)
		     d94hist[jj+1]=d94hist[jj+1]+1;
		  if (total==12)
		     d95hist[jj+1]=d95hist[jj+1]+1;
		  d13hist[jj+1]=d13hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
	 if ((lambda2!=0.0)&&(lambda3!=0.0)) {
	    d=lambda3;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>lambda2) {
		  if ((jj+1)>39) {
		     printf("array not big enough (d14hist) p=%d \n",jj+1);
		     printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		     goto zskip;
		     }
		  if (total==1)
		     d80hist[jj+1]=d80hist[jj+1]+1;
		  if (total==2)
		     d81hist[jj+1]=d81hist[jj+1]+1;
		  if (total==3)
		     d82hist[jj+1]=d82hist[jj+1]+1;
		  if (total==4)
		     d83hist[jj+1]=d83hist[jj+1]+1;
		  if (total==5)
		     d84hist[jj+1]=d84hist[jj+1]+1;
		  if (total==6)
		     d85hist[jj+1]=d85hist[jj+1]+1;
		  if (total==7)
		     d86hist[jj+1]=d86hist[jj+1]+1;
		  if (total==8)
		     d87hist[jj+1]=d87hist[jj+1]+1;
		  if (total==9)
		     d96hist[jj+1]=d96hist[jj+1]+1;
		  if (total==10)
		     d97hist[jj+1]=d97hist[jj+1]+1;
		  if (total==11)
		     d98hist[jj+1]=d98hist[jj+1]+1;
		  if (total==12)
		     d99hist[jj+1]=d99hist[jj+1]+1;
		  d14hist[jj+1]=d14hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
	 if ((lambda3!=0.0)&&(lambda4!=0.0)) {
	    d=lambda4;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>lambda3) {
		  if ((jj+1)>39) {
		     printf("array not big enough (d15hist) p=%d \n",jj+1);
		     printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		     goto zskip;
		     }
		  d15hist[jj+1]=d15hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
	 if ((lambda4!=0.0)&&(lambda5!=0.0)) {
	    d=lambda5;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>lambda4) {
		  if ((jj+1)>39) {
		     printf("array not big enough (d16hist) p=%d \n",jj+1);
		     printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		     goto zskip;
		     }
		  d16hist[jj+1]=d16hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
	 if ((lambda5!=0.0)&&(lambda6!=0.0)) {
	    d=lambda6;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>lambda5) {
		  if ((jj+1)>39) {
		     printf("array not big enough (d17hist) p=%d \n",jj+1);
		     printf("c=%d, e=%d, o=%d, a=%d, max=%d, avg=%e \n",c,levens,lodds,patcnt,MAXTU[1],lambda);
		     goto zskip;
		     }
		  d17hist[jj+1]=d17hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
//  power greater than utmax/utmin
//
	 if (total>60)
		 goto dzskip;
	 d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 for (jj=0; jj<200; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>99) {
		  printf("array not big enough (table1) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, min=%e \n",c,levens,lodds,patcnt,MAXTU[1],MINTU[1]);
		  goto zskip;
		  }
		    if (outsel==3) {
				if (rowcol!=0) {
			      if (jj<26) {
                  table6[indx[jj]*25+jj]=total;
		          indx[jj]=indx[jj]+1;
			      if (indx[jj]>40000) {
			         printf("array not big enough (indx) \n");
			         goto zskip;
			        }
		          }
				}
			     else {
		      if (total<26) {
                table6[indx[total-1]*25+total-1]=jj+1;
		        indx[total-1]=indx[total-1]+1;
			   if (indx[total-1]>40000) {
			    printf("array not big enough (indx) \n");
			    goto zskip;
			    }
		   }
			}
		   }
		   table1[(total-1)*100+jj+1]=table1[(total-1)*100+jj+1]+1;
		   break;
	     }
	 }
//
//  power for specified a value
//
dzskip:
	 d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 for (jj=0; jj<80; jj++) {
	    d=d*log(3)/log(2);
	    if (d>dtemp) {
	       if ((jj+1)>79) {
		  printf("array not big enough (d0hist) p=%d \n",jj+1);
		  printf("c=%d, e=%d, o=%d, a=%d, max=%d, min=%d \n",c,levens,lodds,patcnt,MAXTU[1],MINTU[1]);
		  goto zskip;
		  }
	       d0hist[jj+1]=d0hist[jj+1]+1;
	       break;
	       }
	    }
	 if (total==1) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d1hist) \n");
		     goto zskip;
		     }
		  d1hist[jj+1]=d1hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==2) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d2hist) \n");
		     goto zskip;
		     }
		  d2hist[jj+1]=d2hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==3) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d3hist) \n");
		     goto zskip;
		     }
		  d3hist[jj+1]=d3hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==4) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d4hist) \n");
		     goto zskip;
		     }
		  d4hist[jj+1]=d4hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==5) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d5hist) \n");
		     goto zskip;
		     }
		  d5hist[jj+1]=d5hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==6) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d6hist) \n");
		     goto zskip;
		     }
		  d6hist[jj+1]=d6hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==7) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d7hist) \n");
		     goto zskip;
		     }
		  d7hist[jj+1]=d7hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==8) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d8hist) \n");
		     goto zskip;
		     }
		  d8hist[jj+1]=d8hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==9) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d9hist) \n");
		     goto zskip;
		     }
		  d9hist[jj+1]=d9hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==10) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d10hist) \n");
		     goto zskip;
		     }
		  d10hist[jj+1]=d10hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==11) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d70hist) \n");
		     goto zskip;
		     }
		  d70hist[jj+1]=d70hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==12) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (d71hist) \n");
		     goto zskip;
		     }
		  d71hist[jj+1]=d71hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==13) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (100hist) \n");
		     goto zskip;
		     }
		  d100hist[jj+1]=d100hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==14) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (101hist) \n");
		     goto zskip;
		     }
		  d101hist[jj+1]=d101hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==15) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (102hist) \n");
		     goto zskip;
		     }
		  d102hist[jj+1]=d102hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==16) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (103hist) \n");
		     goto zskip;
		     }
		  d103hist[jj+1]=d103hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==17) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (104hist) \n");
		     goto zskip;
		     }
		  d104hist[jj+1]=d104hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==18) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (105hist) \n");
		     goto zskip;
		     }
		  d105hist[jj+1]=d105hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==19) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (106hist) \n");
		     goto zskip;
		     }
		  d106hist[jj+1]=d106hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==20) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (107hist) \n");
		     goto zskip;
		     }
		  d107hist[jj+1]=d107hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==21) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (108hist) \n");
		     goto zskip;
		     }
		  d108hist[jj+1]=d108hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==22) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (109hist) \n");
		     goto zskip;
		     }
		  d109hist[jj+1]=d109hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==23) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (110hist) \n");
		     goto zskip;
		     }
		  d110hist[jj+1]=d110hist[jj+1]+1;
		  break;
		  }
	       }
	    }
	 if (total==24) {
	    d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	    dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	    for (jj=0; jj<80; jj++) {
	       d=d*log(3)/log(2);
	       if (d>dtemp) {
		  if ((jj+1)>79) {
		     printf("array not big enough (111hist) \n");
		     goto zskip;
		     }
		  d111hist[jj+1]=d111hist[jj+1]+1;
		  break;
		  }
	       }
	    }
//
//  histogram of powers for parity vector p, max/min
//
	 if (lodds>levens) {
	    if ((flag15!=0)||(euclid(lodds,levens)!=1)) {
	       for (g=0; g<13000; g++) {
		  if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff)))	 {
		     d=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
		     dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
		     for (jj=0; jj<80; jj++) {
			d=d*log(3)/log(2);
			if (d>dtemp) {
			   if (((jj+1)>(total*2+15))&&(flag15==0)) {
			      printf("exception a: c=%d, e=%d, o=%d, power=%d, max=%d, min=%d, a=%d \n",c,levens,lodds,jj+1,MAXTU[1],MINTU[1],total);
			      goto zskip;
			      }
			   if (((jj+1)>(total*2+16))&&(flag15==1)) {
			      printf("exception b: c=%d, e=%d, o=%d, power=%d, max=%d, min=%d, a=%d \n",c,levens,lodds,jj+1,MAXTU[1],MINTU[1],total);
			      goto zskip;
			      }
			   if ((jj+1+40)<total*2) {
			      printf("error: count=%d, total=%d \n",jj+1,total);
			      printf("c=%d, e=%d, o=%d, a=%d, max=%d, min=%d, s=%#010x, flag=%d \n",c,levens,lodds,patcnt,MAXTU[1],MINTU[1],ES[i*2+1],cflag[index+i]);
			      if (eowrite==0) {
				 fprintf(Outfp,"error: count=%d, total=%d \n",jj+1,total);
				 fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, max=%d, min=%d \n",c,levens,lodds,patcnt,MAXTU[1],MINTU[1]);
				 }
			      goto zskip;
			      }
			   if ((jj+1)>maxjj)
			  	  maxjj=jj+1;
			    if (outsel==15) {
		        	table6[indx[0]]=jj+1-total*2;
					indx[0]=indx[0]+1;
					}
			   chhist[jj+41-total*2]=chhist[jj+41-total*2]+1;
			   goto xjump; 
			   }
			 }
		     }
		  if (lodds<(ln[g]&0xffff))
		     break;
		    }
	       }
	    }
//
//  histogram of powers for parity vector p, lambda/min
//
xjump:	 d=log(3)/log(2);
	 d=exp((double)(total+3)*log(d));
	 dtemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 if (d<(lambda/dtemp)) {
	    if (lodds>levens) {
	       if (euclid(lodds,levens)==1) {
		  for (g=0; g<13000; g++) {
		     if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
			flubx=flubx+1;
			d=lambda/d/dtemp;
			if (d>maxdiff)
			   maxdiff=d;
			if (eowrite==0) {
			   printf("warning 24: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
			   fprintf(Outfp,"warning 24: d=%e, max=%#010x %#010x, min=%#010x %#010x, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],lambda,total,c,levens,lodds);
			   }
			goto pjump;
			}
		     if (lodds<(ln[g]&0xffff))
			break;
		     }
		  }
	       }
	    flubs=flubs+1;
	    }
//
//  maxtu*mintu/lambda^2
//
pjump: dtemp=(double)MAXTU[1]+(double)MAXTU[0]*65536.0*65536.0;
	 etemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 d=dtemp*etemp/lambda/lambda;
	  if (outsel==12) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
	 if (d>log(3.0)/log(2.0)) {
	    printf("warning tu: d=%e, max=%#010x %#010x, min=%#010x %#010x, a=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],patcnt);
	    printf("c=%d, e=%d, o=%d \n",c,levens,lodds);
	    if ((eowrite==1)||(eowrite==2)) {
	       fprintf(Outfp,"warning tu: d=%e, max=%#010x %#010x, min=%#010x %#010x, a=%d \n",d,MAXTU[0],MAXTU[1],MINTU[0],MINTU[1],patcnt);
	       fprintf(Outfp,"c=%d, e=%d, o=%d \n",c,levens,lodds);
	       }
		if (outsel==16) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
		if ((c==12649)&&(levens==30)&&(lodds==18)&&(patcnt==10))
	       goto hhop;
	    if ((c==14543)&&(levens==23)&&(lodds==15)&&(patcnt==5))
	       goto hhop;
	    if ((c==15857)&&(levens==16)&&(lodds==12)&&(patcnt==5))
	       goto hhop;
	    if ((c==17351)&&(levens==34)&&(lodds==37)&&(patcnt==9))
	       goto hhop;
	    if ((c==18571)&&(levens==14)&&(lodds==14)&&(patcnt==5))
	       goto hhop;
	    if ((c==20885)&&(levens==16)&&(lodds==8)&&(patcnt==5))
	       goto hhop;
	    if ((c==21577)&&(levens==31)&&(lodds==31)&&(patcnt==7))
	       goto hhop;
	    if ((c==23159)&&(levens==19)&&(lodds==15)&&(patcnt==7))
	       goto hhop;
		if ((c==27479)&&(levens==12)&&(lodds==7)&&(patcnt==4))
	       goto hhop;
	    if ((c==28667)&&(levens==19)&&(lodds==21)&&(patcnt==6))
	       goto hhop; 
	    if ((c==30241)&&(levens==21)&&(lodds==14)&&(patcnt==6))
	       goto hhop;
		if ((c==34435)&&(levens==30)&&(lodds==23)&&(patcnt==8))
	       goto hhop;
	    if ((c==35587)&&(levens==42)&&(lodds==41)&&(patcnt==11))
	       goto hhop;
	    if ((c==36601)&&(levens==37)&&(lodds==34)&&(patcnt==7))
	       goto hhop;
	    if ((c==36661)&&(levens==15)&&(lodds==15)&&(patcnt==4))
	       goto hhop;
	    if ((c==39409)&&(levens==17)&&(lodds==29)&&(patcnt==6))
	       goto hhop;
	    if ((c==38701)&&(levens==15)&&(lodds==9)&&(patcnt==6))
	       goto hhop;
	    if ((c==40549)&&(levens==18)&&(lodds==12)&&(patcnt==6))
	       goto hhop;
	    if ((c==43529)&&(levens==12)&&(lodds==10)&&(patcnt==5))
	       goto hhop;
	    if ((c==49393)&&(levens==21)&&(lodds==14)&&(patcnt==7))
	       goto hhop;
	    if ((c==52283)&&(levens==12)&&(lodds==6)&&(patcnt==4))
	       goto hhop;
	    if ((c==59899)&&(levens==18)&&(lodds==12)&&(patcnt==5))
	       goto hhop;
	    if ((c==61789)&&(levens==24)&&(lodds==12)&&(patcnt==7))
	       goto hhop;
	    if ((c==65041)&&(levens==24)&&(lodds==24)&&(patcnt==6))
	       goto hhop;
	    if ((c==72097)&&(levens==16)&&(lodds==16)&&(patcnt==5))
	       goto hhop;
	    if ((c==72943)&&(levens==30)&&(lodds==30)&&(patcnt==10))
	       goto hhop;
	    if ((c==73177)&&(levens==15)&&(lodds==9)&&(patcnt==5))
	       goto hhop;
	    if ((c==80155)&&(levens==12)&&(lodds==8)&&(patcnt==4))
	       goto hhop;
	    if ((c==81631)&&(levens==40)&&(lodds==40)&&(patcnt==10))
	       goto hhop;
	    if ((c==86731)&&(levens==28)&&(lodds==21)&&(patcnt==7))
	       goto hhop;
	    if ((c==86731)&&(levens==28)&&(lodds==21)&&(patcnt==9))
	       goto hhop;
	    if ((c==87551)&&(levens==16)&&(lodds==11)&&(patcnt==5))
	       goto hhop;
	    if ((c==88325)&&(levens==36)&&(lodds==26)&&(patcnt==8))
	       goto hhop;
	    if ((c==84175)&&(levens==12)&&(lodds==12)&&(patcnt==3))
	       goto hhop;
	    if ((c==97471)&&(levens==20)&&(lodds==20)&&(patcnt==5))
	       goto hhop;
	    if ((c==99157)&&(levens==15)&&(lodds==9)&&(patcnt==4))
	       goto hhop;
	    if ((c==109585)&&(levens==24)&&(lodds==18)&&(patcnt==6))
	       goto hhop;
	    if ((c==114589)&&(levens==18)&&(lodds==18)&&(patcnt==3))
	       goto hhop;
	    if ((c==115843)&&(levens==18)&&(lodds==30)&&(patcnt==7))
	       goto hhop;
	    if ((c==116801)&&(levens==25)&&(lodds==20)&&(patcnt==5))
	       goto hhop;
	    if ((c==119635)&&(levens==40)&&(lodds==40)&&(patcnt==8))
	       goto hhop;
	    if ((c==125419)&&(levens==18)&&(lodds==12)&&(patcnt==5))
	       goto hhop;
	    if ((c==130343)&&(levens==11)&&(lodds==6)&&(patcnt==4))
	       goto hhop;
	    if ((c==134537)&&(levens==78)&&(lodds==78)&&(patcnt==23))
	       goto hhop;
	    if ((c==136097)&&(levens==24)&&(lodds==20)&&(patcnt==5))
	       goto hhop;
	    if ((c==136681)&&(levens==33)&&(lodds==36)&&(patcnt==8))
	       goto hhop;
	    if ((c==137147)&&(levens==19)&&(lodds==21)&&(patcnt==7))
	       goto hhop;
	    if ((c==138737)&&(levens==17)&&(lodds==10)&&(patcnt==5))
	       goto hhop;
	    if ((c==139007)&&(levens==54)&&(lodds==42)&&(patcnt==14))
	       goto hhop;
	    if ((c==142031)&&(levens==14)&&(lodds==11)&&(patcnt==4))
	       goto hhop;
	    if ((c==142595)&&(levens==12)&&(lodds==10)&&(patcnt==3))
	       goto hhop;
	    if ((c==144305)&&(levens==108)&&(lodds==96)&&(patcnt==28))
	       goto hhop;
	    if ((c==155021)&&(levens==18)&&(lodds==12)&&(patcnt==5))
	       goto hhop;
	    if ((c==165055)&&(levens==20)&&(lodds==10)&&(patcnt==7))
	       goto hhop;
	    if ((c==169991)&&(levens==13)&&(lodds==10)&&(patcnt==4))
	       goto hhop;
	    if ((c==172081)&&(levens==30)&&(lodds==30)&&(patcnt==9))
	       goto hhop;
	    if ((c==173789)&&(levens==30)&&(lodds==30)&&(patcnt==7))
	       goto hhop;
	    if ((c==175391)&&(levens==25)&&(lodds==37)&&(patcnt==5))
	       goto hhop;
	    if ((c==182845)&&(levens==24)&&(lodds==20)&&(patcnt==7))
	       goto hhop;
	    if ((c==187657)&&(levens==18)&&(lodds==12)&&(patcnt==5))
	       goto hhop;
	    if ((c==192643)&&(levens==42)&&(lodds==26)&&(patcnt==10))
	       goto hhop;
	    if ((c==196811)&&(levens==18)&&(lodds==12)&&(patcnt==7))
	       goto hhop;
	    goto zskip;
	    }
hhop: if (d>log(3)/log(2))
	    lamcnt=lamcnt+1;
	 if (d>maxminrat) {
	    maxminrat=d;
	    savec=c;
	    KSAVE[0]=ES[2*i];
	    KSAVE[1]=ES[2*i+1];
	    }
	 if (d<minmaxrat) {
	    minmaxrat=d;
	    KSAVEP[0]=ES[2*i];
	    KSAVEP[1]=ES[2*i+1];
	    }
//
// U
//
	 dtemp=(double)MAXU[1]+(double)MAXU[0]*65536.0*65536.0;
	 etemp=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
	 d=dtemp*etemp/lambdau/lambdau;
	 if (outsel==11) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
	 if (d>log(3.0)/log(2.0)) {
	    printf("warning u: d=%e, maxu=%#010x %#010x, minu=%#010x %#010x, lambda=%e \n",d,MAXU[0],MAXU[1],MINU[0],MINU[1],lambdau);
	    printf("c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,patcnt);
	    if ((eowrite==1)||(eowrite==2)) {
	       fprintf(Outfp,"warning u: d=%e, maxu=%#010x %#010x, minu=%#010x %#010x, lambda=%e \n",d,MAXU[0],MAXU[1],MINU[0],MINU[1],lambdau);
	       fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,patcnt);
	       }
		if (outsel==10) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
		goto dhop;
	    }
//
// T
//
dhop: dtemp=(double)MAXT[1]+(double)MAXT[0]*65536.0*65536.0;
	 etemp=(double)MINT[1]+(double)MINT[0]*65536.0*65536.0;
	 d=dtemp*etemp/lambdat/lambdat;
	  if (outsel==13) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
	 if (d>log(3.0)/log(2.0)) {
	    printf("warning t: d=%e, lambdat=%e, maxt=%#010x %#010x, mint=%#010x %#010x, a=%d \n",d,lambdat,MAXT[0],MAXT[1],MINT[0],MINT[1],patcnt);
	    printf("c=%d, e=%d, o=%d \n",c,levens,lodds);
	    if ((eowrite==1)||(eowrite==2)) {
	       fprintf(Outfp,"warning t: d=%e, lambdat=%e, maxt=%#010x %#010x, mint=%#010x %#010x, a=%d \n",d,lambdat,MAXT[0],MAXT[1],MINT[0],MINT[1],patcnt);
	       fprintf(Outfp,"c=%d, e=%d, o=%d \n",c,levens,lodds);
	       }
		if (outsel==14) {
			table7[indx[0]]=d;
			indx[0]=indx[0]+1;
		}
	    if ((c==8213)&&(levens==22)&&(lodds==24)&&(patcnt==8))
	       goto ehop;
	    if ((c==12961)&&(levens==42)&&(lodds==18)&&(patcnt==11))
	       goto ehop;
	    if ((c==17569)&&(levens==68)&&(lodds==67)&&(patcnt==18))
	       goto ehop;
	    if ((c==26285)&&(levens==40)&&(lodds==34)&&(patcnt==10))
	       goto ehop;
	    if ((c==29441)&&(levens==142)&&(lodds==126)&&(patcnt==38))
	       goto ehop;
	    if ((c==30581)&&(levens==40)&&(lodds==35)&&(patcnt==11))
	       goto ehop;
	    if ((c==30667)&&(levens==24)&&(lodds==24)&&(patcnt==7))
	       goto ehop;
	    if ((c==31493)&&(levens==52)&&(lodds==46)&&(patcnt==15))
	       goto ehop;
	    if ((c==48545)&&(levens==72)&&(lodds==72)&&(patcnt==17))
	       goto ehop;
	    if ((c==52195)&&(levens==24)&&(lodds==12)&&(patcnt==6))
	       goto ehop;
	    if ((c==56303)&&(levens==30)&&(lodds==30)&&(patcnt==10))
	       goto ehop;
	    if ((c==56881)&&(levens==44)&&(lodds==22)&&(patcnt==11))
	       goto ehop;
	    if ((c==61789)&&(levens==24)&&(lodds==12)&&(patcnt==6))
	       goto ehop;
	    if ((c==62027)&&(levens==20)&&(lodds==20)&&(patcnt==7))
	       goto ehop;
	    if ((c==62849)&&(levens==216)&&(lodds==208)&&(patcnt==59))
	       goto ehop;
	    if ((c==69139)&&(levens==26)&&(lodds==20)&&(patcnt==8))
	       goto ehop;
	    if ((c==73891)&&(levens==54)&&(lodds==42)&&(patcnt==14))
	       goto ehop;
	    if ((c==85879)&&(levens==78)&&(lodds==78)&&(patcnt==21))
	       goto ehop;
	    if ((c==86491)&&(levens==46)&&(lodds==47)&&(patcnt==10))
	       goto ehop;
	    if ((c==93649)&&(levens==35)&&(lodds==42)&&(patcnt==8))
	       goto ehop;
	    if ((c==93671)&&(levens==33)&&(lodds==21)&&(patcnt==8))
	       goto ehop;
	    if ((c==94939)&&(levens==48)&&(lodds==36)&&(patcnt==12))
	       goto ehop;
	    if ((c==100921)&&(levens==20)&&(lodds==18)&&(patcnt==7))
	       goto ehop;
	    if ((c==101779)&&(levens==26)&&(lodds==20)&&(patcnt==7))
	       goto ehop;
	    if ((c==105443)&&(levens==36)&&(lodds==16)&&(patcnt==8))
	       goto ehop;
	    if ((c==105443)&&(levens==36)&&(lodds==16)&&(patcnt==10))
	       goto ehop;
	    if ((c==109039)&&(levens==128)&&(lodds==116)&&(patcnt==31))
	       goto ehop;
	    if ((c==109535)&&(levens==72)&&(lodds==48)&&(patcnt==20))
	       goto ehop;
	    if ((c==111241)&&(levens==36)&&(lodds==24)&&(patcnt==10))
	       goto ehop;
	    if ((c==111389)&&(levens==32)&&(lodds==36)&&(patcnt==9))
	       goto ehop;
	    if ((c==111505)&&(levens==60)&&(lodds==36)&&(patcnt==14))
	       goto ehop;
	    if ((c==112217)&&(levens==72)&&(lodds==48)&&(patcnt==19))
	       goto ehop;
	    if ((c==121057)&&(levens==72)&&(lodds==32)&&(patcnt==15))
	       goto ehop;
	    if ((c==123025)&&(levens==36)&&(lodds==36)&&(patcnt==10))
	       goto ehop;
	    if ((c==128831)&&(levens==125)&&(lodds==108)&&(patcnt==29))
	       goto ehop;
	    if ((c==136835)&&(levens==36)&&(lodds==40)&&(patcnt==11))
	       goto ehop;
	    if ((c==142595)&&(levens==24)&&(lodds==20)&&(patcnt==7))
	       goto ehop;
	    if ((c==154603)&&(levens==36)&&(lodds==30)&&(patcnt==9))
	       goto ehop;
	    if ((c==155741)&&(levens==24)&&(lodds==22)&&(patcnt==8))
	       goto ehop;
	    if ((c==158647)&&(levens==28)&&(lodds==18)&&(patcnt==8))
	       goto ehop;
	    if ((c==160075)&&(levens==72)&&(lodds==72)&&(patcnt==20))
	       goto ehop;
	    if ((c==166327)&&(levens==23)&&(lodds=14)&&(patcnt==9))
	       goto ehop;
	    if ((c==172633)&&(levens==77)&&(lodds==45)&&(patcnt==19))
	       goto ehop;
	    if ((c==175145)&&(levens==76)&&(lodds==58)&&(patcnt==19))
	       goto ehop;
	    if ((c==179105)&&(levens==36)&&(lodds==32)&&(patcnt==10))
	       goto ehop;
	    if ((c==188221)&&(levens==40)&&(lodds==40)&&(patcnt==11))
	       goto ehop;
	    if ((c==188833)&&(levens==49)&&(lodds==34)&&(patcnt==13))
	       goto ehop;
	    if ((c==191375)&&(levens==32)&&(lodds==22)&&(patcnt==11))
	       goto ehop;
	    if ((c==196811)&&(levens==18)&&(lodds==12)&&(patcnt==7))
	       goto ehop;
	    if ((c==197051)&&(levens==24)&&(lodds==18)&&(patcnt==9))
	       goto ehop;
	    if ((c==198055)&&(levens==24)&&(lodds==12)&&(patcnt==6))
	       goto ehop;
	    goto zskip;
	    }
//
// c/X0 > |2^((K+L)/K)-3|
//
ehop: d=exp((double)(levens+lodds)/(double)lodds*log(2.0));
	 d=d-3.0;
	 tempf=d;
	 if (d<0.0)
	    d=-d;
	 dtemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 if (lodds>levens)
		 belfact=2.0;
	 else
		 belfact=1.0;
	 if ((belfact*(double)c/d)<dtemp) {
		 eqexcept[0]=eqexcept[0]+1;
		 if (total<40)
		    uthist[total-1]=uthist[total-1]+1;
		 if (levens>=lodds)
			 utecnt=utecnt+1;
		  for (g=0; g<13000; g++) {
		     if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
			    utlncnt=utlncnt+1;
			    break;
		        }
		     if (lodds<(ln[g]&0xffff))
		        break;
		  }
	    if (eowrite==0) {
	       printf("warning 25: d=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINTU[0],MINTU[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"warning 25: d=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINTU[0],MINTU[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       }
	    }
// MINU
	 dtemp=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
	 if (lodds>levens)
		 belfact=3.0;
	 else
		 belfact=1.0;
	 if ((belfact*(double)c/d)<dtemp) {
		 eqexcept[1]=eqexcept[1]+1;
		 if (levens>=lodds)
			 utcnt=utcnt+1;
		 ucnt=ucnt+1;
		 if (total<40)
		    uhist[total-1]=uhist[total-1]+1;
		 for (g=0; g<13000; g++) {
		    if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
			   lncnt=lncnt+1;
			   break;
		       }
		    if (lodds<(ln[g]&0xffff))
		       break;
		    }
	    if (eowrite==0) {
	       printf("warning 25a: d=%e, minu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINU[0],MINU[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"warning 25a: d=%e, minu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINU[0],MINU[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       }
	    }
// MINT
	 dtemp=(double)MINT[1]+(double)MINT[0]*65536.0*65536.0;
	 if (lodds>levens)
		 belfact=2048.0;
	 else
		 belfact=2048.0;
	 if ((belfact*(double)c/d)<dtemp) {
		 eqexcept[2]=eqexcept[2]+1;
		 tcnt=tcnt+1;
		 if (total<40)
		    thist[total-1]=thist[total-1]+1;
		 if (levens>=lodds)
			 tepcnt=tepcnt+1;
		 if (levens==lodds) {
			 eqcnt=eqcnt+1;
		     if (levens<100)
		        eqhist[levens-1]=eqhist[levens-1]+1;
		    }
	     for (g=0; g<13000; g++) {
		     if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
		  	    lintcnt=lintcnt+1;
				break;
			    }
		     if (lodds<(ln[g]&0xffff))
		         break;
		     }
	    if (eowrite==0) {
	       printf("warning 25b: d=%e, mint=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINT[0],MINT[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"warning 25b: d=%e, mint=%#010x %#010x, c=%d, e=%d, o=%d, a=%d, s=%#010x %#010x \n",d,MINT[0],MINT[1],c,levens,lodds,total,ES[2*i],ES[2*i+1]);
	       }
	    }
//
//  |1-c/X0| > |2^((K+L)/K)-3| (also parity vector p, continued-fraction conv.)
//  d and tempf defined above
//
	 dtemp=(double)MINTU[1]+(double)MINTU[0]*65536.0*65536.0;
	 if (levens>=lodds)
	    dmin=1.0-(double)c/(double)dtemp;
	 else {
        dmin=1.0-(double)c/(double)dtemp;
		LKcnt=LKcnt+1;
	 }
	 if (overrider!=0)  // for parity vector p
	    dmin=1.0-(double)c/(double)dtemp;
	 if (dmin<0.0)
	    dmin=-dmin;
	 if (dmin<=d) {
		 if (levens>=lodds)
			 greven=greven+1;
		 else
			 grodd=grodd+1;
		 if (total<40)
			 grhist[total-1]=grhist[total-1]+1;
	     if (lodds>levens) {
	       for (g=0; g<13000; g++) {
		     if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
			   lingre=lingre+1;
		       printf("warning 16: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
		       if (eowrite!=3)
			     fprintf(Outfp,"warning 16: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
			   if ((c==1631)&&(levens==5)&&(lodds==8)&&(total==2))
			      goto ihop;
		       if ((c==36791)&&(levens==15)&&(lodds==25)&&(total==3))
			      goto ihop;
		       if ((c==36791)&&(levens==15)&&(lodds==25)&&(total==4))
			      goto ihop;
		       if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==2))
			      goto ihop;
		       goto zskip;
		       }
		     if (lodds<(ln[g]&0xffff))
		       break;
		     }
	       }
ihop:    for (g=0; g<89; g++) {
	       if ((conv[2*g]==(levens+lodds))&&(conv[2*g+1]==lodds)) {
		  printf("warning 16a: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
		  if (eowrite!=3)
		     fprintf(Outfp,"warning 16a: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
		  if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==2))
		     goto iphop;
		  goto zskip;
		  }
	       }
iphop:	if ((tempf<0.0)&&(eowrite==0)) {
	       printf("warning 16b: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
	       fprintf(Outfp,"warning 16b: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
	       }
	    if ((total!=1)&&(eowrite==0)) {
	       printf("warning 16c: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
	       fprintf(Outfp,"warning 16c: d=%e, dmin=%e, mintu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINTU[0],MINTU[1],c,levens,lodds,total);
	       }
	    else
	       onecnt=onecnt+1;
	    }
//
//  U, d defined above
//
     dtemp=(double)MINU[1]+(double)MINU[0]*65536.0*65536.0;
	 if (levens>=lodds) 
	    dmin=1.0-(double)c/(double)dtemp;
	 else 
        dmin=1.0-(double)c/(double)dtemp;  // 5.0 valid for minimum attachment point
	 if (overrider!=0) 
		 dmin=1.0-(double)c/(double)dtemp;
	 if (dmin<0.0)
	    dmin=-dmin;
	 if (dmin<=d) {
		 if (levens>=lodds)
			 gueven=gueven+1;
		 else
			 guodd=guodd+1;
		 if (outsel==17) {
			table6[indx[0]]=total;
			indx[0]=indx[0]+1;
		    }
		 if (total<40)
			 guhist[total-1]=guhist[total-1]+1;
	     if ((eowrite!=3)&&(total!=1)) {
		    fprintf(Outfp,"warning 16d: d=%e, dmin=%e, minu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINU[0],MINU[1],c,levens,lodds,total);
			if (levens>lodds)  
               badeven=badeven+1;
			}
	     for (g=0; g<13000; g++) {
		    if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
			   if (eowrite!=3)
			      fprintf(Outfp,"warning 16e: d=%e, dmin=%e, minu=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINU[0],MINU[1],c,levens,lodds,total);
			   lnsky=lnsky+1;
			   break;
		       }
	        if (lodds<(ln[g]&0xffff))
		       break;
		    }
	      }
//
//  T, d defined above
//
     dtemp=(double)MINT[1]+(double)MINT[0]*65536.0*65536.0;
	 if (levens>=lodds)
	    dmin=1.0-(double)c/(double)dtemp;
	 else
        dmin=1.0-(double)c/(double)dtemp;
	 if (overrider!=0)
		 dmin=1.0-(double)c/dtemp;
	 if (dmin<0.0) 
	    dmin=-dmin;
	 if (dmin<=d) {
		 if (levens>=lodds)
			 gteven=gteven+1;
		 else
			 gtodd=gtodd+1;
		 if (total<40)
			 gthist[total-1]=gthist[total-1]+1;
		  if ((eowrite!=3)&&(total!=1))
		     fprintf(Outfp,"warning 16f: d=%e, dmin=%e, mint=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINT[0],MINT[1],c,levens,lodds,total);
	      for (g=0; g<13000; g++) {
		     if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
		        lnskyt=lnskyt+1;
		        if (eowrite!=3)
			       fprintf(Outfp,"warning 16g: d=%e, dmin=%e, mint=%#010x %#010x, c=%d, e=%d, o=%d, a=%d \n",d,dmin,MINT[0],MINT[1],c,levens,lodds,total);
				if ((c==1631)&&(levens==5)&&(lodds==8)&&(total==2))
					break;
				if ((c==36791)&&(levens==15)&&(lodds==25)&&(total==4))
					break;
				if ((c==36791)&&(levens==15)&&(lodds==25)&&(total==3))
					break;
				if ((c==186793)&&(levens==9)&&(lodds==15)&&(total==2))
					break;
			    goto zskip;
		        }
		     if (lodds<(ln[g]&0xffff))
		        break;
		    }
	    }
//
//  output domain
//
	 dmin=1000000.0;
	 dmax=-1000000.0;
	 for (g=0; g<total*2; g++) {
	    dtemp=(double)STU[2*g+1]+(double)STU[2*g]*65536.0*65536.0;
	    d=-log(dtemp/lambda)/lambda;
	    if (d<dmin)
	       dmin=d;
	    if (d>dmax)
	       dmax=d;
	    }
	 del=dmax-dmin;
	 if (del>maxdel) {
	    maxdel=del;
	    cmax=c;
	    }
	 if (del<mindel) {
	    mindel=del;
	    cmin=c;
	    }
	 if (wflag==0) {
	    printf("lambda=%e, min=%e, max=%e, del=%e \n",lambda,dmin,dmax,del);
	    fprintf(Outfp,"lambda=%e, min=%e, max=%e, del=%e \n",lambda,dmin,dmax,del);
	    }
	 SUMTU[0]=0;
	 SUMTU[1]=0;
	 SUMT[0]=0;
	 SUMT[1]=0;
	 SUMU[0]=0;
	 SUMU[1]=0;
	 MAXTU[0]=0;
	 MAXTU[1]=0;
	 MAXT[0]=0;
	 MAXT[1]=0;
	 MAXU[0]=0;
	 MAXU[1]=0;
	 MINTU[0]=0x7fffffff;
	 MINTU[1]=0xffffffff;
	 MINT[0]=0x7fffffff;
	 MINT[1]=0xffffffff;
	 MINU[0]=0x7fffffff;
	 MINU[1]=0xffffffff;
	 kk=0;
	 total=0;
	 OLDS[0]=0;
	 OLDS[1]=0;
	 cyccnt=cyccnt+1;
//
	 sumrec=sumrec*(double)c;
	 tempf=(double)(levens+lodds)*log(2)-(double)(lodds)*log(3);
	 if ((wflag==1)&&(eowrite==0)) {
	    printf("c=%d, e=%d, o=%d, sum=%e, tempf=%e, osum=%d, esum=%d, jsum=%d, hsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount);
	    fprintf(Outfp,"c=%d, e=%d, o=%d, sum=%e, tempf=%e, osum=%d, esum=%d, jsum=%d, hsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount);
	    }
	 if (tempf<0.0)
	    tempf=-tempf;
	 if ((youonly==0)&&(tonly==0))
		 belfact=10.0;
	 if (youonly!=0)
		 belfact=16.0;  
	 if (tonly!=0)
		 belfact=128.0;
	 if (tempf>(sumrec*belfact)) {
	    printf("warning 10: delta greater than sum of reciprocals, sumrec=%e, tempf=%e \n",sumrec*belfact,tempf);
	    printf("c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,patcnt);
	    if ((eowrite==1)||(eowrite==2)) {
	       fprintf(Outfp,"warning 10: sum of reciprocals, c=%d, e=%d, o=%d, a=%d, sumrec=%e, tempf=%e \n",c,levens,lodds,patcnt,sumrec*belfact,tempf);
	       }
		if ((youonly!=0)||(tonly!=0))
			goto mohop;
/*		if ((c==7105)&&(levens==20)&&(lodds==28)&&(patcnt==1))  // for a factor of 6.0
			goto mohop;
		if ((c==2761)&&(levens==15)&&(lodds==25)&&(patcnt==1))
	       goto mohop;
	    if ((c==3013)&&(levens==14)&&(lodds=24)&&(patcnt==1))
	       goto mohop;
	    if ((c==4513)&&(levens==12)&&(lodds=32)&&(patcnt==1))
	       goto mohop;
	    if ((c==7645)&&(levens==16)&&(lodds==28)&&(patcnt==1))
	       goto mohop;
	    if ((c==8059)&&(levens==14)&&(lodds==24)&&(patcnt==2))
	       goto mohop;
	    if ((c==8059)&&(levens==14)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==10703)&&(levens==8)&&(lodds==14)&&(patcnt==1))
	       goto mohop;
	    if ((c==14303)&&(levens==10)&&(lodds==17)&&(patcnt==1))
	       goto mohop;
	    if ((c==14819)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==16589)&&(levens==8)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==16819)&&(levens==16)&&(lodds==28)&&(patcnt==1))
	       goto mohop;
	    if ((c==16819)&&(levens==8)&&(lodds==14)&&(patcnt==1))
	       goto mohop;
	    if ((c==17231)&&(levens==13)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==22897)&&(levens==15)&&(lodds==30)&&(patcnt==1))
	       goto mohop;
	    if ((c==27313)&&(levens==15)&&(lodds==25)&&(patcnt==1))
	       goto mohop;
	    if ((c==27521)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==27875)&&(levens==8)&&(lodds==18)&&(patcnt==1))
	       goto mohop;
	    if ((c==32435)&&(levens==12)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==33587)&&(levens==13)&&(lodds==21)&&(patcnt==1))
	       goto mohop;
	    if ((c==34669)&&(levens==10)&&(lodds==22)&&(patcnt==2))
	       goto mohop;
	    if ((c==36067)&&(levens==10)&&(lodds==18)&&(patcnt==1))
	       goto mohop;
	    if ((c==38311)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==39409)&&(levens==17)&&(lodds==29)&&(patcnt==2))
	       goto mohop;
	    if ((c==40741)&&(levens==14)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==40741)&&(levens==14)&&(lodds==24)&&(patcnt==2))
	       goto mohop;
	    if ((c==41983)&&(levens==8)&&(lodds==22)&&(patcnt==1))
	       goto mohop;
	    if ((c==46075)&&(levens==18)&&(lodds==33)&&(patcnt==1))
	       goto mohop;
	    if ((c==47941)&&(levens==15)&&(lodds==25)&&(patcnt==1))
	       goto mohop;
	    if ((c==49787)&&(levens==9)&&(lodds==19)&&(patcnt==1))
	       goto mohop;
	    if ((c==50071)&&(levens==21)&&(lodds==36)&&(patcnt==2))
	       goto mohop;
	    if ((c==53515)&&(levens==8)&&(lodds==14)&&(patcnt==1))
	       goto mohop;
	    if ((c==64679)&&(levens==7)&&(lodds==15)&&(patcnt==1))
	       goto mohop;
	    if ((c==65627)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==71515)&&(levens==10)&&(lodds==17)&&(patcnt==1))
	       goto mohop;
	    if ((c==71515)&&(levens==20)&&(lodds==34)&&(patcnt==2))
	       goto mohop;
	    if ((c==73013)&&(levens==20)&&(lodds==34)&&(patcnt==2))
	       goto mohop;
	    if ((c==75325)&&(levens==28)&&(lodds==48)&&(patcnt==4))
	       goto mohop;
	    if ((c==77569)&&(levens==15)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==79079)&&(levens==6)&&(lodds==18)&&(patcnt==1))
	       goto mohop;
	    if ((c==81059)&&(levens==23)&&(lodds==39)&&(patcnt==3))
	       goto mohop;
	    if ((c==81809)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==82945)&&(levens==8)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==84095)&&(levens==8)&&(lodds==14)&&(patcnt==1))
	       goto mohop;
	    if ((c==85463)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==87391)&&(levens==35)&&(lodds==60)&&(patcnt==4))
	       goto mohop;
	    if ((c==89411)&&(levens==8)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==91057)&&(levens==19)&&(lodds==31)&&(patcnt==3))
	       goto mohop;
	    if ((c==91057)&&(levens==19)&&(lodds==31)&&(patcnt==1))
	       goto mohop;
	    if ((c==91817)&&(levens==10)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==103271)&&(levens==10)&&(lodds==16)&&(patcnt==1))
	       goto mohop;
	    if ((c==104269)&&(levens==17)&&(lodds==31)&&(patcnt==3))
	       goto mohop;
	    if ((c==104275)&&(levens==18)&&(lodds=33)&&(patcnt==2))
	       goto mohop;
	    if ((c==105803)&&(levens==32)&&(lodds==54)&&(patcnt==4))
	       goto mohop;
	    if ((c==106537)&&(levens==6)&&(lodds==15)&&(patcnt==1))
	       goto mohop;
	    if ((c==111611)&&(levens==15)&&(lodds==33)&&(patcnt==2))
	       goto mohop;
	    if ((c==111611)&&(levens==10)&&(lodds==22)&&(patcnt==1))
	       goto mohop;
	    if ((c==112931)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==115843)&&(levens==18)&&(lodds==30)&&(patcnt==1))
	       goto mohop;
	    if ((c==117733)&&(levens==8)&&(lodds==14)&&(patcnt==1))
	       goto mohop;
	    if ((c==117733)&&(levens==24)&&(lodds==42)&&(patcnt==5))
	       goto mohop;
	    if ((c==119057)&&(levens==23)&&(lodds==36)&&(patcnt==3))
	       goto mohop;
	    if ((c==119867)&&(levens==10)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==124585)&&(levens==12)&&(lodds==20)&&(patcnt==1))
	       goto mohop;
	    if ((c==134111)&&(levens==15)&&(lodds==30)&&(patcnt==2))
	       goto mohop;
	    if ((c==138503)&&(levens==14)&&(lodds==21)&&(patcnt==1))
	       goto mohop;
	    if ((c==147659)&&(levens==32)&&(lodds==52)&&(patcnt==4))
	       goto mohop;
	    if ((c==147659)&&(levens==16)&&(lodds==26)&&(patcnt==2))
	       goto mohop;
	    if ((c==149977)&&(levens==16)&&(lodds==29)&&(patcnt==1))
	       goto mohop;
	    if ((c==154403)&&(levens==12)&&(lodds==18)&&(patcnt==1))
	       goto mohop;
	    if ((c==157439)&&(levens==25)&&(lodds==43)&&(patcnt==2))
	       goto mohop;
	    if ((c==157439)&&(levens==25)&&(lodds==43)&&(patcnt==4))
	       goto mohop;
	    if ((c==158717)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==160763)&&(levens==9)&&(lodds==33)&&(patcnt==1))
	       goto mohop;
	    if ((c==169495)&&(levens==28)&&(lodds==48)&&(patcnt==6))
	       goto mohop;
	    if ((c==179945)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==180005)&&(levens==16)&&(lodds==28)&&(patcnt==1))
	       goto mohop;
	    if ((c==180005)&&(levens==16)&&(lodds==28)&&(patcnt==2))
	       goto mohop;
	    if ((c==180335)&&(levens==20)&&(lodds==36)&&(patcnt==1))
	       goto mohop;
	    if ((c==180335)&&(levens==20)&&(lodds==36)&&(patcnt==2))
	       goto mohop;
	    if ((c==181169)&&(levens==8)&&(lodds==16)&&(patcnt==1))
	       goto mohop;
	    if ((c==185257)&&(levens==15)&&(lodds==27)&&(patcnt==1))
	       goto mohop;
	    if ((c==185357)&&(levens==28)&&(lodds==48)&&(patcnt==4))
	       goto mohop;
	    if ((c==185357)&&(levens==14)&&(lodds==24)&&(patcnt==1))
	       goto mohop;
	    if ((c==185357)&&(levens==14)&&(lodds==24)&&(patcnt==2))
	       goto mohop;
	    if ((c==186793)&&(levens==9)&&(lodds==15)&&(patcnt==1))
	       goto mohop;
	    if ((c==198679)&&(levens==12)&&(lodds==24)&&(patcnt==1))
	       goto mohop; */
	    goto zskip;
	    }
mohop:	 sumrec=0.0;
//
	 dtemp=(double)OLDT[1]+(double)OLDT[0]*65536.0*65536.0;
	 if (savchain<dtemp) {
	    if ((wflag!=2)&&(eowrite==0)) {
	       printf("error: bad t chain (wrap-around), c=%d \n",c);
	       printf("chain=%e, oldt=%#010x %#010x, t=%#010x %#010x, jump=%d, count=%d, s=%#010x %#010x \n",savchain,OLDT[0],OLDT[1],SAVET[0],SAVET[1],savjump,savcnt,ES[2*i],ES[2*i+1]);
	       fprintf(Outfp,"error: bad t chain (wrap-around), c=%d \n",c);
	       fprintf(Outfp,"chain=%e, oldt=%#010x %#010x, t=%#010x %#010x, jump=%d, count=%d, s=%#010x %#010x \n",savchain,OLDT[0],OLDT[1],SAVET[0],SAVET[1],savjump,savcnt,ES[2*i],ES[2*i+1]);
	       }
	    badcnt=badcnt+1;
	    }
	  if (newchain<dtemp) {
		 badcnttp=badcnttp+1; 
		  badcountt=badcountt+1;
	      if (badcountt>1) {
			  printf("bad t count (wrap-around) \n");
			  goto zskip;
		  }
		  }
	 if (2.0*newchain<dtemp)
		badcnttq=badcnttq+1;
	 if (4.0*newchain<dtemp)
	    badcnttr=badcnttr+1;
	 if (8.0*newchain<dtemp)
	    badcntts=badcntts+1;
	 if (16.0*newchain<dtemp)
	    badcnttt=badcnttt+1;
	 if (32.0*newchain<dtemp)
		 badcnttu=badcnttu+1;
	 if (64.0*newchain<dtemp)
		 badcnttv=badcnttv+1;
	 if (128.0*newchain<dtemp)
		 badcnttw=badcnttw+1;
	 if (256.0*newchain<dtemp)
		 badcnttx=badcnttx+1;
	 if (512.0*newchain<dtemp)
		 badcntty=badcntty+1;
	 if (1024.0*newchain<dtemp)
		 badcnttz=badcnttz+1;
	 if (2048.0*tmpchain<dtemp)
		 badt1=badt1+1;
	 if (4096.0*tmpchain<dtemp)
		 badt2=badt2+1;
	 if (8192.0*tmpchain<dtemp)
		 badt3=badt3+1;
	 if (16384.0*tmpchain<dtemp)
		 badt4=badt4+1;
	 if (32768.0*tmpchain<dtemp)
		 badt5=badt5+1;
	 if (65536.0*tmpchain<dtemp)
		 badt6=badt6+1;
	 if (131072.0*tmpchain<dtemp)
		 badt7=badt7+1;
	 if (262144.0*tmpchain<dtemp)
		 badt8=badt8+1;
	 if (524288.0*tmpchain<dtemp)
		 badt9=badt9+1;
	 OLDT[0]=0;
	 OLDT[1]=0;
	 LASTT[0]=0;
	 LASTT[1]=0;
	 firstt=1;
	 oldchn=65536.0*65536.0*65536.0;
//
	 delta=(int)oddsum-(int)jmpsum+(int)hcount-(int)evensum+(int)offset12;
	 if (delta<0) {
	    printf("error: offset not big enough (histoh), d=%d \n",delta);
	    goto zskip;
	    }
	 if (delta>1499) {
	    printf("error: histogram array not big enough (histoh)\n");
	    goto zskip;
	    }
	 histoh[delta]=histoh[delta]+1;
	 if (wflag==0) {
	    if ((oddsum+hcount+2)<evensum) {
	       printf("warning: oddsum=%d, hcount=%d, evensum=%d \n",oddsum,hcount,evensum);
	       fprintf(Outfp,"warning: oddsum=%d, hcount=%d, evensum=%d \n",oddsum,hcount,evensum);
	       }
	    }
//
	 delta=(int)hcount-(int)jmpsum+(int)offset8;
	 if (delta<0) {
	    printf("error: offset not big enough (histow), delta=%d \n",delta);
	    goto zskip;
	    }
	 if (delta>499) {
	    printf("error: histogram array not big enough (histow) \n");
	    goto zskip;
	    }
	 histow[delta]=histow[delta]+1;
//
	 delta=(int)jsum-(int)evensum+(int)offset9;
	 if (flag13!=0) {
	    for (ii=0; ii<13000; ii++) {
	       if (lodds<=(ln[ii]&0xffff)) {
		  if (flag14==0) {
		     if ((lodds==(ln[ii]&0xffff))||(lodds==1))
			levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
		     else
			levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
		     levenpp=levenpm;
		     }
		  if (flag14==1) {
		     levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
		     levenpm=levenpp;
		     }
		  if (flag14==2) {
		     if ((lodds==(ln[ii]&0xffff))||(lodds==1))
			levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
		     else
			levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
		     levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
		     }
		  deltaef=((double)levenpm+(double)levenpp)/2.0-(double)levens;
		  if (deltaef<0.0)
		     deltaef=-deltaef;
		  delta=delta+(int)(deltaef/rat);
		  break;
		  }
	       }
	    }
	 if (delta<0) {
	    printf("error: offset not big enough (histov), jsum=%d, delta=%d \n",jsum,delta);
	    goto zskip;
	    }
	 if (delta>5499) {
	    printf("error: histogram array not big enough (histov) \n");
	    goto zskip;
	    }
	 histov[delta]=histov[delta]+1;
//
	 for (tempi=0; tempi<89; tempi++) {
	    if ((conv[2*tempi]==(levens+lodds))&&(conv[2*tempi+1]==lodds)) {
	       delta=(int)jsum-(int)evensum+(int)offset4;
	       if (delta<0) {
		  printf("array not big enough (histou) \n");
		  goto zskip;
		  }
	       if (delta>99) {
		  printf("array not big enough (histou) \n");
		  goto zskip;
		  }
	       histou[delta]=histou[delta]+1;
	       cyccntu=cyccntu+1;
	       if ((3.0*log(c))<patcnt) {
		  if (c!=1) {
		     printf("error: not enough attachment points, c=%d, count=%d, e=%d, o=%d \n",c,patcnt,levens,lodds);
		     goto zskip;
		     }
		  }
	       }
	    if (conv[2*tempi+1]>lodds)
	       break;
	    }
//
	 for (tempi=0; tempi<89; tempi++) {
	    if ((conv[2*tempi+1]==levens)&&(conv[2*tempi+1]==lodds)) {
	       delta=(int)jsum-(int)evensum+(int)offset8;
	       if (flag13!=0) {
		  for (ii=0; ii<13000; ii++) {
		     if (lodds<=(ln[ii]&0xffff)) {
			if (flag14==0) {
			   if ((lodds==(ln[ii]&0xffff))||(lodds==1))
			      levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
			   else
			      levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
			   levenpp=levenpm;
			   }
			if (flag14==1) {
			   levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
			   levenpm=levenpp;
			   }
			if (flag14==2) {
			   if ((lodds==(ln[ii]&0xffff))||(lodds==1))
			      levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
			   else
			      levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
			   levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
			   }
			deltaef=((double)levenpm+(double)levenpp)/2.0-(double)levens;
			if (deltaef<0.0)
			   deltaef=-deltaef;
			delta=delta+(int)(deltaef/rat);
			break;
			}
		     }
		  }
	       if (delta<0) {
		  printf("array not big enough (histob), delta b=%d \n",delta);
		  goto zskip;
		  }
	       if (delta>599) {
		  printf("array not big enough (histob), delta b=%d \n",delta);
		  goto zskip;
		  }
	       histob[delta]=histob[delta]+1;
	       cyccntb=cyccntb+1;
	       if ((3.0*log(c))<patcnt) {
		  if ((c==4291)&&(levens==306))
		     goto kjump;
		  if ((c==4907)&&(levens=200))
		     goto kjump;
		  if ((c==7427)&&(levens==212))
		     goto kjump;
		  if ((c==7711)&&(levens==200))
		     goto kjump;
		  if ((c==10717)&&(levens==306))
		     goto kjump;
		  if ((c==11647)&&(levens==306))
		     goto kjump;
		  if ((c==12625)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==16789)&&(levens==306)&&(patcnt==76))
		     goto kjump;
		  if ((c==17461)&&(levens==306)&&(patcnt==74))
		     goto kjump;
		  if ((c==17525)&&(levens==200)&&(patcnt==58))
		     goto kjump;
		  if ((c==17675)&&(levens==200))
		     goto kjump;
		  if ((c==18281)&&(levens==200))
		     goto kjump;
		  if ((c==18725)&&(levens==212))
		     goto kjump;
		  if ((c==19903)&&(levens==306))
		     goto kjump;
		  if ((c==19717)&&(levens==106))
		     goto kjump;
		  if ((c==19717)&&(levens==318))
		     goto kjump;
		  if ((c==20705)&&(levens==200))
		     goto kjump;
		  if ((c==22681)&&(levens==306)&&(patcnt==74))
		     goto kjump;
		  if ((c==22681)&&(levens==306)&&(patcnt==75))
		     goto kjump;
		  if ((c==24341)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==24341)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==24341)&&(levens==200)&&(patcnt==45))
		     goto kjump;
		  if ((c==24341)&&(levens==200)&&(patcnt==53))
		     goto kjump;
		  if ((c==24341)&&(levens==200)&&(patcnt==51))
		     goto kjump;
		  if ((c==24535)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==24863)&&(levens==253)&&(patcnt==60))
		     goto kjump;
		  if ((c==25625)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==25625)&&(levens==200)&&(patcnt==44))
		     goto kjump;
		  if ((c==25625)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==25625)&&(levens==200)&&(patcnt==56))
		     goto kjump;
		  if ((c==25625)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==27713)&&(levens==318)&&(patcnt==73))
		     goto kjump;
		  if ((c==27713)&&(levens==318)&&(patcnt==82))
		     goto kjump;
		  if ((c==27775)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==28741)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==28987)&&(levens==200)&&(patcnt==55))
		     goto kjump;
		  if ((c==28987)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==28987)&&(levens==200)&&(patcnt==56))
		     goto kjump;
		  if ((c==28987)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==29089)&&(levens==306)&&(patcnt==76))
		     goto kjump;
		  if ((c==29089)&&(levens==306)&&(patcnt==77))
		     goto kjump;
		  if ((c==30125)&&(levens==200)&&(patcnt==51))
		     goto kjump;
		  if ((c==32021)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==34037)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==34037)&&(levens==200)&&(patcnt==44))
		     goto kjump;
		  if ((c==37135)&&(levens==212)&&(patcnt==59))
		     goto kjump;
		  if ((c==38885)&&(levens==200)&&(patcnt==56))
		     goto kjump;
		  if ((c==38885)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==39845)&&(levens==612)&&(patcnt==147))
		     goto kjump;
		  if ((c==39887)&&(levens==147)&&(patcnt==38))
		     goto kjump;
		  if ((c==39887)&&(levens==147)&&(patcnt==36))
		     goto kjump;
		  if ((c==39887)&&(levens==147)&&(patcnt==41))
		     goto kjump;
		  if ((c==42125)&&(levens==200)&&(patcnt==53))
		     goto kjump;
		  if ((c==42125)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==43621)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==43621)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==44459)&&(levens==253)&&(patcnt==65))
		     goto kjump;
		  if ((c==45551)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==45551)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==45551)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==48125)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==48125)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==49771)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==49771)&&(levens==200)&&(patcnt==54))
		     goto kjump;
		  if ((c==49771)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==50041)&&(levens==306)&&(patcnt==77))
		     goto kjump;
		  if ((c==50041)&&(levens==306)&&(patcnt==73))
		     goto kjump;
		  if ((c==50041)&&(levens==306)&&(patcnt==70))
		     goto kjump;
		  if ((c==50041)&&(levens==612)&&(patcnt==142))
		     goto kjump;
		  if ((c==50197)&&(levens==200)&&(patcnt==53))
		     goto kjump;
		  if ((c==50197)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==51467)&&(levens==318)&&(patcnt==73))
		     goto kjump;
		  if ((c==51467)&&(levens==318)&&(patcnt==85))
		     goto kjump;
		  if ((c==55783)&&(levens==306)&&(patcnt==74))
		     goto kjump;
		  if ((c==56647)&&(levens==306)&&(patcnt==85))
		     goto kjump;
		  if ((c==56647)&&(levens==306)&&(patcnt==75))
		     goto kjump;
		  if ((c==56647)&&(levens==306)&&(patcnt==77))
		     goto kjump;
		  if ((c==56647)&&(levens==612)&&(patcnt==149))
		     goto kjump;
		  if ((c==56647)&&(levens==612)&&(patcnt==153))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==63))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==77))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==61))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==58))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==62))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==69))
		     goto kjump;
		  if ((c==58213)&&(levens==253)&&(patcnt==67))
		     goto kjump;
		  if ((c==58235)&&(levens==612)&&(patcnt==160))
		     goto kjump;
		  if ((c==53585)&&(levens==612)&&(patcnt==161))
		     goto kjump;
		  if ((c==53977)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==53977)&&(levens==200)&&(patcnt==51))
		     goto kjump;
		  if ((c==53977)&&(levens==200)&&(patcnt==54))
		     goto kjump;
		  if ((c==60997)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==60997)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==63125)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==63125)&&(levens==200)&&(patcnt==56))
		     goto kjump;
		  if ((c==63125)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==63125)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==63139)&&(levens==306)&&(patcnt==75))
		     goto kjump;
		  if ((c==63139)&&(levens==306)&&(patcnt==87))
		     goto kjump;
		  if ((c==63139)&&(levens==306)&&(patcnt==73))
		     goto kjump;
		  if ((c==63139)&&(levens==306)&&(patcnt==78))
		     goto kjump;
		  if ((c==63139)&&(levens==306)&&(patcnt==76))
		     goto kjump;
		  if ((c==66817)&&(levens==918)&&(patcnt==227))
		     goto kjump;
		  if ((c==67087)&&(levens==612)&&(patcnt==147))
		     goto kjump;
		  if ((c==69085)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==69085)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==70801)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==70801)&&(levens==200)&&(patcnt==58))
		     goto kjump;
		  if ((c==70801)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==71821)&&(levens==1330)&&(patcnt==327))
		     goto kjump;
		  if ((c==72409)&&(levens==306)&&(patcnt==79))
		     goto kjump;
		  if ((c==72409)&&(levens==306)&&(patcnt==76))
		     goto kjump;
		  if ((c==75829)&&(levens==306)&&(patcnt==71))
		     goto kjump;
		  if ((c==75829)&&(levens==306)&&(patcnt==81))
		     goto kjump;
		  if ((c==75829)&&(levens==306)&&(patcnt==78))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==53))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==50))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==57))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==78881)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==79513)&&(levens==306)&&(patcnt==77))
		     goto kjump;
		  if ((c==79513)&&(levens==306)&&(patcnt==78))
		     goto kjump;
		  if ((c==81217)&&(levens==200)&&(patcnt==45))
		     goto kjump;
		  if ((c==81529)&&(levens==306)&&(patcnt==73))
		     goto kjump;
		  if ((c==81529)&&(levens==306)&&(patcnt==74))
		     goto kjump;
		  if ((c==81529)&&(levens==306)&&(patcnt==83))
		     goto kjump;
		  if ((c==81529)&&(levens==306)&&(patcnt==85))
		     goto kjump;
		  if ((c==81631)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==81631)&&(levens==200)&&(patcnt==51))
		     goto kjump;
		  if ((c==83567)&&(levens==265)&&(patcnt==59))
		     goto kjump;
		  if ((c==83567)&&(levens==265)&&(patcnt==66))
		     goto kjump;
		  if ((c==83567)&&(levens==265)&&(patcnt==65))
		     goto kjump;
		  if ((c==83945)&&(levens==612)&&(patcnt==157))
		     goto kjump;
		  if ((c==87305)&&(levens==612)&&(patcnt==150))
		     goto kjump;
		  if ((c==87625)&&(levens==200)&&(patcnt==54))
		     goto kjump;
		  if ((c==87625)&&(levens==200)&&(patcnt==46))
		     goto kjump;
		  if ((c==87625)&&(levens==200)&&(patcnt==51))
		     goto kjump;
		  if ((c==87625)&&(levens==200)&&(patcnt==44))
		     goto kjump;
		  if ((c==88375)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==88375)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==88375)&&(levens==200)&&(patcnt==56))
		     goto kjump;
		  if ((c==88375)&&(levens==200)&&(patcnt==44))
		     goto kjump;
		  if ((c==85555)&&(levens==200)&&(patcnt==55))
		     goto kjump;
		  if ((c==91393)&&(levens==612)&&(patcnt==150))
		     goto kjump;
		  if ((c==91405)&&(levens==200)&&(patcnt==48))
		     goto kjump;
		  if ((c==91405)&&(levens==200)&&(patcnt==52))
		     goto kjump;
		  if ((c==91405)&&(levens==200)&&(patcnt==55))
		     goto kjump;
		  if ((c==91405)&&(levens==200)&&(patcnt==47))
		     goto kjump;
		  if ((c==92675)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==92785)&&(levens==200)&&(patcnt==49))
		     goto kjump;
		  if ((c==94657)&&(levens==306)&&(patcnt==71))
		     goto kjump;
		  if ((c==94657)&&(levens==306)&&(patcnt==78))
		     goto kjump;
		  if ((c==95275)&&(levens==612)&&(patcnt==156))
		     goto kjump;
		  if ((c==97747)&&(levens==612)&&(patcnt==140))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==51))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==50))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==53))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==54))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==52))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==55))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==48))
		     goto kjump;
		  if ((c==98585)&&(levens==212)&&(patcnt==56))
		     goto kjump;
		  if ((c==99515)&&(levens==612)&&(patcnt==159))
		     goto kjump;
		  if ((c==99919)&&(levens==306)&&(patcnt==80))
		     goto kjump;
		  if ((c==99919)&&(levens==612)&&(patcnt==160))
		     goto kjump;
		  if ((c==99919)&&(levens==306)&&(patcnt==72))
		     goto kjump;
		  if ((c==99919)&&(levens==306)&&(patcnt==81))
		     goto kjump;
		  if ((c==99919)&&(levens==612)&&(patcnt==158))
		     goto kjump;
		  if ((c==99919)&&(levens==306)&&(patcnt==74))
		     goto kjump;
		  if (c>100000)
		     goto kjump;
		  }
	       }
	    if (conv[2*tempi+1]>lodds)
	       break;
	    }
//
kjump:	 delta=(int)oddsum-(int)evensum+(int)offset11;
	 if (delta<0) {
	    printf("error: offset not big enough (histos), jsum=%d, delta=%d \n",jsum,delta);
	    goto zskip;
	    }
	 if (delta>1299) {
	    printf("error: histogram array not big enough (histos) \n");
	    goto zskip;
	    }
	 histos[delta]=histos[delta]+1;
//
// check limit
//
	 if (oddsum>jsum) {
	    tempi=oddsum-jsum;
	    tempf=1.0;
	    for (j=0; j<tempi; j++)
	       tempf=tempf*2.0;
	    tempf=(rat-1.0)*log(tempf);
	    tempf=exp(tempf);
	    tempg=1.0;
	    for (j=0; j<(unsigned int)evensum; j++)
	       tempg=tempg*2.0;
	    tempf=tempf/tempg;
	    if (tempf>1.0) {
	       if (eowrite==0)
		  printf("warning: tempf=%e, tempg=%e, oddsum=%d, jsum=%d, evensum=%d \n",tempf,tempg,oddsum,jsum,evensum);
	       compcnt=compcnt+1;
	       if (tempf>maxcmp)
		  maxcmp=tempf;
	       }
	    }
//
	 if (hsum!=hcount) {
	    printf("mis-matched sums, c=%d, hsum=%d, hcount=%d, s=%#010x %#010x, flag=%d, e=%d, o=%d, a=%d \n",c,hsum,hcount,ES[2*i],ES[2*i+1],cflag[index+i],levens,lodds,patcnt);
	    goto zskip;
	    }
	 oddsum=0;
	 evensum=0;
	 jmpsum=0;
	 jsum=0;
	 hcount=0;
//
//  check primary multiple jumps
//
	 if (mflag!=0) {
	    for (j=0; j<attcnt; j++) {
	       if ((ES[(j+savind)*2]==TMPS[0])&&(ES[(j+savind)*2+1]==TMPS[1])) {
		  if ((jumps[j+savind]!=0)&&(jumps[j+savind]!=3)) {
		     printf("error: one-jump not found \n");
		     printf("attcnt=%d, savind=%d, tmps=%#010x %#010x \n",attcnt,savind,TMPS[0],TMPS[1]);
		     goto zskip;
		     }
		  goto vskip;
		  }
	       }
	    printf("error: no match \n");
	    goto zskip;
	    }
//
// check number of attachment points
//
vskip:	 if ((3.0*log(c))<patcnt) {
	    if (wflag==0) {
	       printf("not enough attachment points, c=%d, count=%d \n",c,patcnt);
	       fprintf(Outfp,"not enough attachment points, c=%d, count=%d \n",c,patcnt);
	       }
	    if (levens==lodds)
	       equcnt=equcnt+1;
	    }
	 delta=(int)(3.0*log(c))-patcnt+(int)offset10;
	 if (delta<0) {
	    printf("array not big enough (histod): delta=%d \n",delta);
	    goto zskip;
	    }
	 if (delta>6499) {
	    printf("array not big enough (histod): delta=%d \n",delta);
	    goto zskip;
	    }
	 histod[delta]=histod[delta]+1;
//
	 for (ii=0; ii<13000; ii++) {
	    if (lodds<=(ln[ii]&0xffff)) {
	       if (flag14==0) {
		  if ((lodds==(ln[ii]&0xffff))||(lodds==1))
		     levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
		  else
		     levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
		  levenpp=levenpm;
		  }
	       if (flag14==1) {
		  levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
		  levenpm=levenpp;
		  }
	       if (flag14==2) {
		  if ((lodds==(ln[ii]&0xffff))||(lodds==1))
		     levenpm=(ln[ii]>>16)-(ln[ii]&0xffff);
		  else
		     levenpm=(ln[ii-1]>>16)-(ln[ii-1]&0xffff);
		  levenpp=(ln[ii]>>16)-(ln[ii]&0xffff);
		  }
	       deltaef=((double)levenpm+(double)levenpp)/2.0-(double)levens;
	       if (deltaef<0.0)
		  deltaef=-deltaef;
	       if (flag16==0) {
		     f=3.0*log(c)+(double)deltaef/rat;
		     if (outsel==18) {
		        table7[indx[0]]=f-(double)patcnt+1.0;
			    indx[0]=indx[0]+1;
		        }
			 deltae=(int)f;
		      }
	       if (flag16==1)
		  deltae=(int)(3*log(c)+(double)deltaef/1.5);
	       if (flag16==2)
		  deltae=(int)(3*log(c)+(double)deltaef/1.67);
	       if (flag16==3)
		  deltae=(int)(3*log(c)+(double)deltaef/1.75);
	       if (flag16<2)
		  deltae=deltae-(int)patcnt+1;
		   if (flag16==2)
		  deltae=deltae-(int)patcnt+(int)offdp;
	       if (flag16==3)
		  deltae=deltae-(int)patcnt+(int)offdp3;
	       if (deltae<0) {
		  printf("warning: negative 3*log(c)+d/del-a value (histodp) \n");
		  if (eowrite!=3)
		     fprintf(Outfp,"warning: negative 3*log(c)+d/del-a value (histodp) \n");
		  printf("c=%d, e=%d, o=%d, a=%d, d=%d \n",c,levens,lodds,patcnt,deltae);
		  if (eowrite!=3)
		     fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, d=%d \n",c,levens,lodds,patcnt,deltae);
		  if ((flag14==2)&&(flag16==0)) {
		     if ((c==5827)&&(levens==426)&&(lodds==504)&&(patcnt==114)) // d=-5
			goto ghop;
		     if ((c==6515)&&(levens==436)&&(lodds==506)&&(patcnt==122)) // d=-7
			goto ghop;
		     if ((c==8243)&&(levens==805)&&(lodds==929)&&(patcnt==196)) // d=-3
			goto ghop;
		     if ((c==11707)&&(levens==624)&&(lodds==713)&&(patcnt==165)) // d=-6
			goto ghop;
		     if ((c==14957)&&(levens==500)&&(lodds==591)&&(patcnt==129)) // d=-2
			goto ghop;
		     if ((c==16001)&&(levens==613)&&(lodds==726)&&(patcnt==151)) // d=-3
			goto ghop;
		     if ((c==16487)&&(levens==529)&&(lodds==625)&&(patcnt==134)) // d=-2
			goto ghop;
		     if ((c==17315)&&(levens==696)&&(lodds==750)&&(patcnt==194)) // d=-2
			goto ghop;
		     if ((c==17449)&&(levens==366)&&(lodds==454)&&(patcnt==94))  // d=-1
			goto ghop;
		     if ((c==20807)&&(levens==484)&&(lodds==590)&&(patcnt==119)) // d=-1
			goto ghop;
		     if ((c==21809)&&(levens==480)&&(lodds==576)&&(patcnt==129)) // d=-8
			goto ghop;
		     if ((c==22343)&&(levens==1185)&&(lodds==1282)&&(patcnt==306)) // d=-1
			goto ghop;
		     if ((c==22429)&&(levens==553)&&(lodds==689)&&(patcnt==137)) // d=-12
			goto ghop;
		     if ((c==26213)&&(levens==428)&&(lodds==514)&&(patcnt==113)) // d=-2
			goto ghop;
		     if ((c==27547)&&(levens==588)&&(lodds==696)&&(patcnt==149)) // d=-4
			goto ghop;
		     if ((c==28771)&&(levens==738)&&(lodds==843)&&(patcnt==190)) // d=-4
			goto ghop;
		     if ((c==32389)&&(levens==876)&&(lodds==984)&&(patcnt==234)) // d=-13
			goto ghop;
		     if ((c==33989)&&(levens==1116)&&(lodds==1224)&&(patcnt==296)) // d=-12
			goto ghop;
		     if ((c==35191)&&(levens==552)&&(lodds==672)&&(patcnt==135)) // d=-3
			goto ghop;
		     if ((c==38689)&&(levens==633)&&(lodds==726)&&(patcnt==164)) // d=-1
			goto ghop;
		     if ((c==39605)&&(levens==912)&&(lodds=1016)&&(patcnt==237)) // d=-4
			goto ghop;
		     if ((c==41893)&&(levens==471)&&(lodds==549)&&(patcnt==128)) // d=-1
			goto ghop;
		     if ((c==42641)&&(levens==1555)&&(lodds==1722)&&(patcnt==382))  // d=-4
			goto ghop;
		     if ((c==43739)&&(levens==969)&&(lodds==1083)&&(patcnt==250))  // d=-6
			goto ghop;
		     if ((c==43925)&&(levens==680)&&(lodds==800)&&(patcnt==175))  // d=-9
			goto ghop;
		     if ((c==45613)&&(levens==1181)&&(lodds==1345)&&(patcnt==290))  // d=-9
			goto ghop;
		     if ((c==45679)&&(levens==527)&&(lodds==646)&&(patcnt==138))  // d=-11
			goto ghop;
		     if ((c==46801)&&(levens==564)&&(lodds==664)&&(patcnt==145))  // d=-2
			goto ghop;
		     if ((c==46823)&&(levens==1105)&&(lodds==1192)&&(patcnt=296))  // d=-6
			goto ghop;
		     if ((c==46841)&&(levens==585)&&(lodds==690)&&(patcnt==151))   // d=-4
			goto ghop;
		     if ((c==48091)&&(levens==596)&&(lodds==720)&&(patcnt==147))  // d=-4
			goto ghop;
		     if ((c==50957)&&(levens==496)&&(lodds==594)&&(patcnt==130))  // d=-3
			goto ghop;
		     if ((c==52561)&&(levens==970)&&(lodds==1065)&&(patcnt==257))  // d=-5
			goto ghop;
		     if ((c==52835)&&(levens==1016)&&(lodds==1078)&&(patcnt==278))  // d=-2
			goto ghop;
		     if ((c==54317)&&(levens==984)&&(lodds==1072)&&(patcnt==261))  // d=-3
			goto ghop;
		     if ((c==54721)&&(levens==1077)&&(lodds==1224)&&(patcnt==271))  // d=-10
			goto ghop;
		     if ((c==55019)&&(levens==966)&&(lodds==1074)&&(patcnt==255))  // d=-9
			goto ghop;
		     if ((c==55289)&&(levens==960)&&(lodds==1052)&&(patcnt==253))  // d=-2
			goto ghop;
		     if ((c==55613)&&(levens==936)&&(lodds==1038)&&(patcnt==242))  // d=-1
			goto ghop;
		     if ((c==55631)&&(levens==3278)&&(lodds==3519)&&(patcnt==814))  // d=-11
			goto ghop;
		     if ((c==58763)&&(levens==1386)&&(lodds==1496)&&(patcnt==368))  // d=-12
			goto ghop;
		     if ((c==58853)&&(levens==672)&&(lodds==768)&&(patcnt==185)) // d=-11
			goto ghop;
		     if ((c==59695)&&(levens==860)&&(lodds==996)&&(patcnt==212)) // d=-4
			goto ghop;
		     if ((c==59993)&&(levens==1022)&&(lodds==1132)&&(patcnt==264))  // d=-4
			goto ghop;
		     if ((c==60169)&&(levens==989)&&(lodds==1127)&&(patcnt==251))  // d=-10
			goto ghop;
		     if ((c==60383)&&(levens==732)&&(lodds==821)&&(patcnt==199))  // d=-7
			goto ghop;
		     if ((c==60407)&&(levens==1356)&&(lodds==1466)&&(patcnt==350))  // d=-2
			goto ghop;
		     if ((c==60883)&&(levens==2608)&&(lodds==2760)&&(patcnt==676))  // d=-16
			goto ghop;
		     if ((c==60917)&&(levens==1972)&&(lodds==2082)&&(patcnt==519))  // d=-10
			goto ghop;
		     if ((c==62537)&&(levens==584)&&(lodds==668)&&(patcnt==165))  // d=-10
			goto ghop;
		     if ((c==62897)&&(levens==1491)&&(lodds==1618)&&(patcnt==385))  // d=-8
			goto ghop;
		     if ((c==63263)&&(levens==1004)&&(lodds==1096)&&(patcnt==266))  // d=-3
			goto ghop;
		     if ((c==63641)&&(levens==1215)&&(lodds==1338)&&(patcnt==307))  // d=-1
			goto ghop;
		     if ((c==65143)&&(levens==750)&&(lodds==870)&&(patcnt==195)) // d=-9
			goto ghop;
		     if ((c==65347)&&(levens==1612)&&(lodds==1709)&&(patcnt==430))  // d=-10
			goto ghop;
		     if ((c==66733)&&(levens==995)&&(lodds==1087)&&(patcnt==267))  // d=-7
			goto ghop;
		     if ((c==67231)&&(levens==2911)&&(lodds==3136)&&(patcnt==728))  // d=-15
			goto ghop;
		     if ((c==68063)&&(levens==996)&&(lodds==1131)&&(patcnt==249))  // d=-4
			goto ghop;
		     if ((c==68899)&&(levens==1506)&&(lodds==1716)&&(patcnt==375))  // d=-24
			goto ghop;
		     if ((c==69211)&&(levens==918)&&(lodds==1068)&&(patcnt==233))  // d=-14
			goto ghop;
		     if ((c==69799)&&(levens==930)&&(lodds==1038)&&(patcnt==239))  // d=-2
			goto ghop;
		     if ((c==69997)&&(levens==416)&&(lodds==508)&&(patcnt==110))  // d=-1
			goto ghop;
		     if ((c==70793)&&(levens==1307)&&(lodds==1422)&&(patcnt==335))  // d=-1
			goto ghop;
		     if ((c==71087)&&(levens==708)&&(lodds==828)&&(patcnt==177)) // d=-2
			goto ghop;
		     if ((c==71297)&&(levens==728)&&(lodds==806)&&(patcnt==198)) // d=-2
			goto ghop;
		     if ((c==71303)&&(levens==875)&&(lodds==980)&&(patcnt==225)) // d=-1
			goto ghop;
		     if ((c==72227)&&(levens==1125)&&(lodds==1291)&&(patcnt==301))  // d=-34
			goto ghop;
		     if ((c==72391)&&(levens==696)&&(lodds==818)&&(patcnt==172)) // d=-1
			goto ghop;
		     if ((c==73265)&&(levens==1452)&&(lodds==1560)&&(patcnt==377))  // d=-3
			goto ghop;
		     if ((c==75245)&&(levens==348)&&(lodds==436)&&(patcnt==96)) // d=-3
			goto ghop;
		     if ((c==75443)&&(levens==1286)&&(lodds==1418)&&(patcnt==323))  // d=-1
			goto ghop;
		     if ((c==75617)&&(levens==838)&&(lodds==920)&&(patcnt==224)) // d=-1
			goto ghop;
		     if ((c==75959)&&(levens==765)&&(lodds==891)&&(patcnt==195)) // d=-7
			goto ghop;
		     if ((c==76411)&&(levens==1006)&&(lodds==1128)&&(patcnt==258))  // d=-5
			goto ghop;
		     if ((c==77705)&&(levens==1064)&&(lodds==1180)&&(patcnt==279))  // d=-9
			goto ghop;
		     if ((c==79499)&&(levens==2172)&&(lodds==2328)&&(patcnt==549))  // d=-4
			goto ghop;
		     if ((c==79529)&&(levens==898)&&(lodds==998)&&(patcnt==234)) // d=-2
			goto ghop;
		     if ((c==79693)&&(levens==722)&&(lodds==814)&&(patcnt==191)) // d=-1
			goto ghop;
		     if ((c==80077)&&(levens==1251)&&(lodds==1427)&&(patcnt==307))  // d=-10
			goto ghop;
		     if ((c==80437)&&(levens==2442)&&(lodds==2622)&&(patcnt==610))  // d=-3
			goto ghop;
		     if ((c==80677)&&(levens==943)&&(lodds==1055)&&(patcnt==244))  // d=-4
			goto ghop;
		     if ((c==80843)&&(levens==1004)&&(lodds==1148)&&(patcnt==253))  // d=-9
			goto ghop;
		     if ((c==80989)&&(levens==1262)&&(lodds==1370)&&(patcnt==333))  // d=-8
			goto ghop;
		     if ((c==81851)&&(levens==954)&&(lodds==1092)&&(patcnt==238))  // d=-5
			goto ghop;
		     if ((c==81905)&&(levens==1196)&&(lodds==1352)&&(patcnt==304))  // d=-14
			goto ghop;
		     if ((c==83399)&&(levens==1099)&&(lodds==1237)&&(patcnt==275))  // d=-4
			goto ghop;
		     if ((c==83611)&&(levens==780)&&(lodds==870)&&(patcnt==211))  // d=-6
			goto ghop;
		     if ((c==85039)&&(levens==636)&&(lodds==732)&&(patcnt==171)) // d=-6
			goto ghop;
		     if ((c==86149)&&(levens==606)&&(lodds==702)&&(patcnt==161)) // d=-3
			goto ghop;
		     if ((c==86633)&&(levens==1132)&&(lodds==1248)&&(patcnt==289))  // d=-1
			goto ghop;
		     if ((c==87299)&&(levens==2015)&&(lodds==2169)&&(patcnt==509))  // d=-4
			goto ghop;
		     if ((c==87629)&&(levens==712)&&(lodds==810)&&(patcnt==186)) // d=-1
			goto ghop;
		     if ((c==87989)&&(levens==540)&&(lodds==660)&&(patcnt==136)) // d=-4
			goto ghop;
		     if ((c==88057)&&(levens==888)&&(lodds==1000)&&(patcnt==229))  // d=-3
			goto ghop;
		     if ((c==89497)&&(levens==993)&&(lodds==1116)&&(patcnt==256))  // d=-7
			goto ghop;
		     if ((c==89783)&&(levens==1245)&&(lodds==1376)&&(patcnt==316))  // d=-4
			goto ghop;
		     if ((c==89941)&&(levens==1296)&&(lodds==1472)&&(patcnt==329))  // d=-20
			goto ghop;
		     if ((c==91343)&&(levens==1045)&&(lodds==1192)&&(patcnt==268))  // d=-14
			goto ghop;
		     if ((c==91559)&&(levens==1245)&&(lodds==1331)&&(patcnt==330))  // d=-1
			goto ghop;
		     if ((c==91877)&&(levens==1818)&&(lodds==1918)&&(patcnt==475))  // d=-1
			goto ghop;
		     if ((c==91925)&&(levens==904)&&(lodds==1014)&&(patcnt==235))  // d=-4
			goto ghop;
		     if ((c==92591)&&(levens==592)&&(lodds==739)&&(patcnt==145)) // d=-10
			goto ghop;
		     if ((c==93539)&&(levens==1162)&&(lodds==1248)&&(patcnt==308))  // d=-1
			goto ghop;
		     if ((c==93997)&&(levens==773)&&(lodds==897)&&(patcnt==202)) // d=-11
			goto ghop;
		     if ((c==94235)&&(levens==900)&&(lodds==1016)&&(patcnt==233))  // d=-5
			goto ghop;
		     if ((c==94589)&&(levens==996)&&(lodds==1138)&&(patcnt==248))  // d=-5
			goto ghop;
		     if ((c==95767)&&(levens==1140)&&(lodds==1254)&&(patcnt==292))  // d=-1
			goto ghop;
		     if ((c==96665)&&(levens==1276)&&(lodds==1396)&&(patcnt==327))  // d=-2
			goto ghop;
		     if ((c==96773)&&(levens==700)&&(lodds==826)&&(patcnt==178)) // d=-6
			goto ghop;
		     if ((c==98269)&&(levens==1264)&&(lodds==1420)&&(patcnt==324)) // d=-16
			goto ghop;
		     if ((c==99395)&&(levens==444)&&(lodds==540)&&(patcnt==118)) // d=-2
			goto ghop;
		     if ((c==100381)&&(levens==600)&&(lodds==708)&&(patcnt==158)) // d=-6
			goto ghop;
		     if ((c==100699)&&(levens==1280)&&(lodds==1409)&&(patcnt==324))  // d=-2
			goto ghop;
		     if ((c==101497)&&(levens==882)&&(lodds==976)&&(patcnt==232))  // d=-1
			goto ghop;
		     if ((c==102733)&&(levens==594)&&(lodds==702)&&(patcnt==154))  // d=-3
			goto ghop;
		     if ((c==102959)&&(levens==1680)&&(lodds==1842)&&(patcnt==420)) // d=-5
			goto ghop;
		     if ((c==103613)&&(levens==924)&&(lodds==1097)&&(patcnt==222))  // d=-9
			goto ghop;
		     if ((c==104173)&&(levens==1467)&&(lodds==1635)&&(patcnt==359)) // d=-2
			goto ghop;
		     if ((c==104371)&&(levens==1360)&&(lodds==1460)&&(patcnt==358))  // d=-4
			goto ghop;
		     if ((c==104539)&&(levens==1800)&&(lodds==1888)&&(patcnt==479))  // d=-5
			goto ghop;
		     if ((c==105047)&&(levens==1332)&&(lodds==1440)&&(patcnt==345))  // d=-1
			goto ghop;
		     if ((c==105833)&&(levens==1860)&&(lodds==2016)&&(patcnt==482))  // d=-17
			goto ghop;
		     if ((c==106301)&&(levens==588)&&(lodds==696)&&(patcnt==157))  // d=-8
			goto ghop;
		     if ((c==106639)&&(levens==1500)&&(lodds==1680)&&(patcnt==378))  // d=-17
			goto ghop;
		     if ((c==107029)&&(levens==546)&&(lodds==630)&&(patcnt==155))  // d=-8
			goto ghop;
		     if ((c==107911)&&(levens==1814)&&(lodds==1938)&&(patcnt==465))  // d=-1
			goto ghop;
		     if ((c==108109)&&(levens==1599)&&(lodds==1783)&&(patcnt==406))  // d=-20
			goto ghop;
		     if ((c==108677)&&(levens==1712)&&(lodds==1830)&&(patcnt==444))  // d=-4
			goto ghop;
		     if ((c==109037)&&(levens==622)&&(lodds==721)&&(patcnt==163))  // d=-2
			goto ghop;
		     if ((c==109099)&&(levens==1194)&&(lodds==1294)&&(patcnt==313))  // d=-2
			goto ghop;
		     if ((c==109315)&&(levens==1322)&&(lodds==1505)&&(patcnt==339)) // d=-25
			goto ghop;
		     if ((c==109345)&&(levens==828)&&(lodds==966)&&(patcnt==206))  // d=-5
			goto ghop;
		     if ((c==110449)&&(levens==616)&&(lodds==704)&&(patcnt==165))  // d=-1
			goto ghop;
		     if ((c==110711)&&(levens==374)&&(lodds==477)&&(patcnt==99)) // d=-4
			goto ghop;
		     if ((c==111071)&&(levens==2159)&&(lodds==2301)&&(patcnt==559))  // d=-11
			goto ghop;
		     if ((c==111175)&&(levens==1836)&&(lodds==1956)&&(patcnt==476))  // d=-4
			goto ghop;
		     if ((c==111419)&&(levens==454)&&(lodds==532)&&(patcnt==126)) // d=-1
			goto ghop;
		     if ((c==112109)&&(levens==820)&&(lodds==939)&&(patcnt==211)) // d=-5
			goto ghop;
		     if ((c==113141)&&(levens==916)&&(lodds==1060)&&(patcnt==233)) // d=-11
			goto ghop;
		     if ((c==113617)&&(levens==687)&&(lodds==792)&&(patcnt==179)) // d=-3
			goto ghop;
		     if ((c==113783)&&(levens==2002)&&(lodds==2190)&&(patcnt==507)) // d=-17
			goto ghop;
		     if ((c==113807)&&(levens==1189)&&(lodds==1328)&&(patcnt==296)) // d=-1
			goto ghop;
		     if ((c==113837)&&(levens==2362)&&(lodds==2539)&&(patcnt==590)) // d=-2
			goto ghop;
		     if ((c==114151)&&(levens==1470)&&(lodds==1650)&&(patcnt==380)) // d=-26
			goto ghop;
		     if ((c==115309)&&(levens==3879)&&(lodds==4077)&&(patcnt==982)) // d=-4
			goto ghop;
		     if ((c==115793)&&(levens==1853)&&(lodds==2020)&&(patcnt==461)) // d=-2
			goto ghop;
		     if ((c==117421)&&(levens==1068)&&(lodds==1184)&&(patcnt==273)) // d=-1
			goto ghop;
		     if ((c==118589)&&(levens==1604)&&(lodds==1738)&&(patcnt==414)) // d=-8
			goto ghop;
		     if ((c==118987)&&(levens==1164)&&(lodds==1292)&&(patcnt==295)) // d=-2
			goto ghop;
		     if ((c==119311)&&(levens==1553)&&(lodds==1680)&&(patcnt==396)) // d=-1
			goto ghop;
		     if ((c==119405)&&(levens==864)&&(lodds==972)&&(patcnt==223)) // d=-1
			goto ghop;
		     if ((c==119447)&&(levens==1351)&&(lodds==1473)&&(patcnt==349)) // d=-5
			goto ghop;
		     if ((c==119719)&&(levens==954)&&(lodds==1086)&&(patcnt==242)) // d=-5
			goto ghop;
		     if ((c==120607)&&(levens==1379)&&(lodds==1530)&&(patcnt==343)) // d=-2
			goto ghop;
		     if ((c==121853)&&(levens==2264)&&(lodds==2434)&&(patcnt==577)) // d=-11
			goto ghop;
		     if ((c==122453)&&(levens==2258)&&(lodds==2417)&&(patcnt==572)) // d=-4
			goto ghop;
		     if ((c==123089)&&(levens==1318)&&(lodds==1468)&&(patcnt==349)) // d=-24
			goto ghop;
		     if ((c==123185)&&(levens==1220)&&(lodds==1360)&&(patcnt==318)) // d=-15
			goto ghop;
		     if ((c==123263)&&(levens==902)&&(lodds==1064)&&(patcnt==225)) // d=-13
			goto ghop;
		     if ((c==123293)&&(levens==1318)&&(lodds==1444)&&(patcnt==349)) // d=-15
			goto ghop;
		     if ((c==123371)&&(levens==1098)&&(lodds==1228)&&(patcnt==277)) // d=-2
			goto ghop;
		     if ((c==124181)&&(levens==1876)&&(lodds==2028)&&(patcnt==474)) // d=-3
			goto ghop;
		     if ((c==124705)&&(levens==516)&&(lodds==636)&&(patcnt==130)) // d=-3
			goto ghop;
		     if ((c==125155)&&(levens==718)&&(lodds==821)&&(patcnt==188)) // d=-2
			goto ghop;
		     if ((c==125299)&&(levens==1132)&&(lodds==1305)&&(patcnt==277)) // d=-9
			goto ghop;
		     if ((c==125581)&&(levens==690)&&(lodds==810)&&(patcnt==181)) // d=-9
			goto ghop;
		     if ((c==126089)&&(levens==780)&&(lodds==856)&&(patcnt==214)) // d=-2
			goto ghop;
		     if ((c==126103)&&(levens==2646)&&(lodds==2814)&&(patcnt==677)) // d=-10
			goto ghop;
		     if ((c==127643)&&(levens==1543)&&(lodds==1713)&&(patcnt==395)) // d=-18
			goto ghop;
		     if ((c==128665)&&(levens==1816)&&(lodds==1962)&&(patcnt==468)) // d=-11
			goto ghop;
		     if ((c==129109)&&(levens==1598)&&(lodds==1732)&&(patcnt==406)) // d=-1
			goto ghop;
		     if ((c==129203)&&(levens==1191)&&(lodds==1335)&&(patcnt==301)) // d=-7
			goto ghop;
		     if ((c==129521)&&(levens==774)&&(lodds==870)&&(patcnt==204)) // d=-1
			goto ghop;
		     if ((c==129661)&&(levens==798)&&(lodds==936)&&(patcnt==209)) // d=-15
			goto ghop;
		     if ((c==130211)&&(levens==1368)&&(lodds==1478)&&(patcnt==355)) // d=-1
			goto ghop;
		     if ((c==130303)&&(levens==919)&&(lodds==1056)&&(patcnt==228)) // d=-2
			goto ghop;
		     if ((c==130489)&&(levens==2180)&&(lodds==2366)&&(patcnt==549)) // d=-11
			goto ghop;
		     if ((c==130561)&&(levens==816)&&(lodds==952)&&(patcnt==210)) // d=-11
			goto ghop;
		     if ((c==130751)&&(levens==1296)&&(lodds==1407)&&(patcnt==337)) // d=-3
			goto ghop;
		     if ((c==131987)&&(levens==1858)&&(lodds==1984)&&(patcnt==492)) // d=-16
			goto ghop;
		     if ((c==132157)&&(levens==1080)&&(lodds==1164)&&(patcnt==290)) // d=-2
			goto ghop;
		     if ((c==132299)&&(levens==691)&&(lodds==807)&&(patcnt==180)) // d=-6
			goto ghop;
		     if ((c==132307)&&(levens==1280)&&(lodds==1400)&&(patcnt==339)) // d=-12
			goto ghop;
		     if ((c==132827)&&(levens==3038)&&(lodds==3192)&&(patcnt==779)) // d=-5
			goto ghop;
		     if ((c==132961)&&(levens==875)&&(lodds==976)&&(patcnt==229)) // d=-1
			goto ghop;
		     if ((c==133039)&&(levens==1081)&&(lodds==1202)&&(patcnt==275)) // d=-1
			goto ghop;
		     if ((c==133073)&&(levens==2395)&&(lodds==2602)&&(patcnt==596)) // d=-9
			goto ghop;
		     if ((c==133111)&&(levens==1280)&&(lodds==1430)&&(patcnt==324)) // d=-8
			goto ghop;
		     if ((c==133169)&&(levens==2318)&&(lodds==2476)&&(patcnt==598)) // d=-14
			goto ghop;
		     if ((c==133439)&&(levens==964)&&(lodds==1070)&&(patcnt==252)) // d=-3
			goto ghop;
		     if ((c==133627)&&(levens==648)&&(lodds==756)&&(patcnt==171)) // d=-5
			goto ghop;
		     if ((c==133631)&&(levens==875)&&(lodds==980)&&(patcnt==232)) // d=-6
			goto ghop;
		     if ((c==133765)&&(levens==856)&&(lodds==972)&&(patcnt==220)) // d=-3
			goto ghop;
		     if ((c==133967)&&(levens==1594)&&(lodds==1745)&&(patcnt==400)) // d=-3
			goto ghop;
		     if ((c==134213)&&(levens==1668)&&(lodds==1776)&&(patcnt==435)) // d=-2
			goto ghop;
		     if ((c==134867)&&(levens==2073)&&(lodds==2233)&&(patcnt==529)) // d=-9
			goto ghop;
		     if ((c==135023)&&(levens==1527)&&(lodds==1680)&&(patcnt==382)) // d=-3
			goto ghop;
		     if ((c==135763)&&(levens==1826)&&(lodds==1962)&&(patcnt==469)) // d=-5
			goto ghop;
		     if ((c==136421)&&(levens==1820)&&(lodds==1895)&&(patcnt==489)) // d=-4
			goto ghop;
		     if ((c==136985)&&(levens==2616)&&(lodds==2816)&&(patcnt==671)) // d=-24
			goto ghop;
		     if ((c==137071)&&(levens==1252)&&(lodds==1416)&&(patcnt==318)) // d=-15
			goto ghop;
		     if ((c==137153)&&(levens==1325)&&(lodds==1464)&&(patcnt==340)) // d=-8
			goto ghop;
		     if ((c==137347)&&(levens==1806)&&(lodds==1974)&&(patcnt==463)) // d=-16
			goto ghop;
		     if ((c==137875)&&(levens==1152)&&(lodds==1292)&&(patcnt==287)) // d=-1
			goto ghop;
		     if ((c==137887)&&(levens==1253)&&(lodds==1458)&&(patcnt==308)) // d=-20
			goto ghop;
		     if ((c==138613)&&(levens==576)&&(lodds==680)&&(patcnt==149)) // d=-1
			goto ghop;
		     if ((c==139321)&&(levens==534)&&(lodds==654)&&(patcnt==141)) // d=-9
			goto ghop;
		     if ((c==140011)&&(levens==846)&&(lodds==954)&&(patcnt==223)) // d=-5
			goto ghop;
		     if ((c==140195)&&(levens==520)&&(lodds==650)&&(patcnt==128)) // d=-4
			goto ghop;
		     if ((c==140383)&&(levens==1707)&&(lodds==1884)&&(patcnt==421)) // d=-3
			goto ghop;
		     if ((c==140597)&&(levens==796)&&(lodds==904)&&(patcnt==210)) // d=-5
			goto ghop;
		     if ((c==140639)&&(levens==832)&&(lodds==918)&&(patcnt==224)) // d=-2
			goto ghop;
		     if ((c==141281)&&(levens==1990)&&(lodds==2092)&&(patcnt==528)) // d=-9
			goto ghop;
		     if ((c==141743)&&(levens==729)&&(lodds==870)&&(patcnt==178)) // d=-3
			goto ghop;
		     if ((c==141877)&&(levens==364)&&(lodds==448)&&(patcnt==101)) // d=-1
			goto ghop;
		     if ((c==142291)&&(levens==282)&&(lodds==400)&&(patcnt==68)) // d=-2
			goto ghop;
		     if ((c==142363)&&(levens==2808)&&(lodds==3008)&&(patcnt==722)) // d=-24
			goto ghop;
		     if ((c==142793)&&(levens==1042)&&(lodds==1120)&&(patcnt==282)) // d=-2
			goto ghop;
		     if ((c==143159)&&(levens==1285)&&(lodds==1360)&&(patcnt==354)) // d=-9
			goto ghop;
		     if ((c==143423)&&(levens==812)&&(lodds==938)&&(patcnt==208)) // d=-6
			goto ghop;
		     if ((c==143651)&&(levens==3658)&&(lodds==3836)&&(patcnt==942)) // d=-14
			goto ghop;
		     if ((c==146347)&&(levens==2244)&&(lodds==2378)&&(patcnt==592)) // d=-18
			goto ghop;
		     if ((c==147509)&&(levens==2992)&&(lodds==3152)&&(patcnt==778)) // d=-17
			goto ghop;
		     if ((c==147677)&&(levens==462)&&(lodds==548)&&(patcnt==130)) // d=-5
			goto ghop;
		     if ((c==148045)&&(levens==572)&&(lodds==668)&&(patcnt==151)) // d=-1
			goto ghop;
		     if ((c==148201)&&(levens==810)&&(lodds==932)&&(patcnt==205)) // d=-2
			goto ghop;
		     if ((c==149089)&&(levens==492)&&(lodds==606)&&(patcnt==125)) // d=-2
			goto ghop;
		     if ((c==150311)&&(levens==2736)&&(lodds==2916)&&(patcnt==705)) // d=-19
			goto ghop;
		     if ((c==150347)&&(levens==792)&&(lodds==888)&&(patcnt==213)) // d=-5
			goto ghop;
		     if ((c==150367)&&(levens==911)&&(lodds==1028)&&(patcnt==234)) // d=-2
			goto ghop;
		     if ((c==150443)&&(levens==630)&&(lodds==750)&&(patcnt==163)) // d=-6
			goto ghop;
		     if ((c==150587)&&(levens==4817)&&(lodds==4953)&&(patcnt==1250)) // d=-3
			goto ghop;
		     if ((c==151033)&&(levens==1024)&&(lodds==1184)&&(patcnt==254)) // d=-9
			goto ghop;
		     if ((c==151799)&&(levens==1476)&&(lodds==1567)&&(patcnt==391)) // d=-2
			goto ghop;
		     if ((c==151811)&&(levens==1077)&&(lodds==1221)&&(patcnt==276)) // d=-11
			goto ghop;
		     if ((c==152125)&&(levens==1720)&&(lodds==1920)&&(patcnt==417)) // d=-4
			goto ghop;
		     if ((c==152489)&&(levens==935)&&(lodds==1050)&&(patcnt==241)) // d=-2
			goto ghop;
		     if ((c==152657)&&(levens==3219)&&(lodds==3454)&&(patcnt==813)) // d=-21
			goto ghop;
		     if ((c==153025)&&(levens==1800)&&(lodds==1980)&&(patcnt==444)) // d=-3
			goto ghop;
		     if ((c==153713)&&(levens==714)&&(lodds==840)&&(patcnt==184)) // d=-7
			goto ghop;
		     if ((c==153775)&&(levens==1640)&&(lodds==1770)&&(patcnt==421)) // d=-3
			goto ghop;
		     if ((c==154055)&&(levens==900)&&(lodds==1000)&&(patcnt==240)) // d=-5
			goto ghop;
		     if ((c==154877)&&(levens==2878)&&(lodds==3047)&&(patcnt==746)) // d=-18
			goto ghop;
		     if ((c==155089)&&(levens==1083)&&(lodds==1239)&&(patcnt==270)) // d=-8
			goto ghop;
		     if ((c==155197)&&(levens==1896)&&(lodds==2022)&&(patcnt==490)) // d=-4
			goto ghop;
		     if ((c==155383)&&(levens==3562)&&(lodds==3752)&&(patcnt==903)) // d=-4
			goto ghop;
		     if ((c==155621)&&(levens==908)&&(lodds==1051)&&(patcnt==233)) // d=-12
			goto ghop;
		     if ((c==155759)&&(levens==660)&&(lodds==760)&&(patcnt==173)) // d=-1
			goto ghop;
		     if ((c==155867)&&(levens==804)&&(lodds==904)&&(patcnt==212)) // d=-2
			goto ghop;
		     if ((c==156707)&&(levens==2050)&&(lodds==2138)&&(patcnt==542)) // d=-2
			goto ghop;
		     if ((c==156973)&&(levens==1482)&&(lodds==1612)&&(patcnt==382)) // d=-6
			goto ghop;
		     if ((c==157417)&&(levens==984)&&(lodds==1080)&&(patcnt==270)) // d=-12
			goto ghop;
		     if ((c==157853)&&(levens==690)&&(lodds==789)&&(patcnt==182)) // d=-1
			goto ghop;
		     if ((c==158207)&&(levens==624)&&(lodds==720)&&(patcnt==167)) // d=-3
			goto ghop;
		     if ((c==158537)&&(levens==1522)&&(lodds==1648)&&(patcnt==393)) // d=-5
			goto ghop;
		     if ((c==159029)&&(levens==4428)&&(lodds==4664)&&(patcnt==1115)) // d=-6
			goto ghop;
		     if ((c==159157)&&(levens==2304)&&(lodds==2420)&&(patcnt==604)) // d=-7
			goto ghop;
		     if ((c==159469)&&(levens==2309)&&(lodds==2477)&&(patcnt==583)) // d=-4
			goto ghop;
		     if ((c==159511)&&(levens==1528)&&(lodds==1664)&&(patcnt==400)) // d=-14
			goto ghop;
		     if ((c==159709)&&(levens==505)&&(lodds==605)&&(patcnt==135)) // d=-3
			goto ghop;
		     if ((c==159799)&&(levens==1767)&&(lodds==1920)&&(patcnt==455)) // d=-12
			goto ghop;
		     if ((c==160177)&&(levens==1006)&&(lodds==1122)&&(patcnt==259)) // d=-2
			goto ghop;
		     if ((c==160441)&&(levens==4151)&&(lodds==4326)&&(patcnt==1060)) // d=-1
			goto ghop;
		     if ((c==160883)&&(levens==2410)&&(lodds==2604)&&(patcnt==609)) // d=-13
			goto ghop;
		     if ((c==161023)&&(levens==1430)&&(lodds==1540)&&(patcnt==373)) // d=-3
			goto ghop;
		     if ((c==161423)&&(levens==1127)&&(lodds==1232)&&(patcnt==308)) // d=-15
			goto ghop;
		     if ((c==161657)&&(levens==2164)&&(lodds==2338)&&(patcnt==540)) // d=-1
			goto ghop;
		     if ((c==162055)&&(levens==2716)&&(lodds==2882)&&(patcnt==689)) // d=-3
			goto ghop;
		     if ((c==162343)&&(levens==1243)&&(lodds==1426)&&(patcnt==309)) // d=-14
			goto ghop;
		     if ((c==162725)&&(levens==828)&&(lodds==948)&&(patcnt==211)) // d=-2
			goto ghop;
		     if ((c==163207)&&(levens==1000)&&(lodds==1120)&&(patcnt==257)) // d=-3
			goto ghop;
		     if ((c==163627)&&(levens==2814)&&(lodds==3026)&&(patcnt==707)) // d=-12
			goto ghop;
		     if ((c==163823)&&(levens==1540)&&(lodds==1640)&&(patcnt==404)) // d=-1
			goto ghop;
		     if ((c==164183)&&(levens==2380)&&(lodds==2547)&&(patcnt==604)) // d=-6
			goto ghop;
		     if ((c==164417)&&(levens==2586)&&(lodds==2768)&&(patcnt==654)) // d=-8
			goto ghop;
		     if ((c==164435)&&(levens==2268)&&(lodds==2394)&&(patcnt==586)) // d=-2
			goto ghop;
		     if ((c==165239)&&(levens==1878)&&(lodds==2050)&&(patcnt==466)) // d=-1
			goto ghop;
		     if ((c==165907)&&(levens==872)&&(lodds==920)&&(patcnt==250)) // d=-3
			goto ghop;
		     if ((c==166453)&&(levens==924)&&(lodds==1134)&&(patcnt==220)) // d=-19
			goto ghop;
		     if ((c==166705)&&(levens==408)&&(lodds==504)&&(patcnt==110)) // d=-2
			goto ghop;
		     if ((c==167029)&&(levens==1428)&&(lodds==1562)&&(patcnt==378)) // d=-17
			goto ghop;
		     if ((c==167813)&&(levens==1496)&&(lodds==1624)&&(patcnt==386)) // d=-5
			goto ghop;
		     if ((c==167879)&&(levens==1187)&&(lodds==1341)&&(patcnt==301)) // d=-10
			goto ghop;
		     if ((c==168599)&&(levens==327)&&(lodds==433)&&(patcnt==90)) // d=-7
			goto ghop;
		     if ((c==168923)&&(levens==642)&&(lodds==770)&&(patcnt==163)) // d=-6
			goto ghop;
		     if ((c==169247)&&(levens==759)&&(lodds==897)&&(patcnt==188)) // d=-4
			goto ghop;
		     if ((c==169421)&&(levens==2650)&&(lodds==2806)&&(patcnt==679)) // d=-6
			goto ghop;
		     if ((c==170077)&&(levens==1276)&&(lodds==1448)&&(patcnt==322)) // d=-15
			goto ghop;
		     if ((c==170413)&&(levens==2865)&&(lodds==3039)&&(patcnt==729)) // d=-7
			goto ghop;
		     if ((c==171067)&&(levens==1974)&&(lodds==2118)&&(patcnt==515)) // d=-15
			goto ghop;
		     if ((c==171115)&&(levens==1212)&&(lodds==1344)&&(patcnt==318)) // d=-13
			goto ghop;
		     if ((c==171667)&&(levens==1248)&&(lodds==1352)&&(patcnt==328)) // d=-3
			goto ghop;
		     if ((c==171803)&&(levens==1537)&&(lodds==1659)&&(patcnt==397)) // d=-3
			goto ghop;
		     if ((c==172967)&&(levens==640)&&(lodds==733)&&(patcnt==174)) // d=-4
			goto ghop;
		     if ((c==173051)&&(levens==872)&&(lodds==1012)&&(patcnt==214)) // d=-1
			goto ghop;
		     if ((c==173059)&&(levens==2056)&&(lodds==2155)&&(patcnt==539)) // d=-1
			goto ghop;
		     if ((c==173435)&&(levens==2800)&&(lodds==2972)&&(patcnt==715)) // d=-9
			goto ghop;
		     if ((c==173917)&&(levens==1314)&&(lodds==1422)&&(patcnt==343)) // d=-2
			goto ghop;
		     if ((c==174259)&&(levens==2094)&&(lodds==2220)&&(patcnt==544)) // d=-6
			goto ghop;
		     if ((c==174373)&&(levens==632)&&(lodds==728)&&(patcnt==168)) // d=-1
			goto ghop;
		     if ((c==174401)&&(levens==1800)&&(lodds==1944)&&(patcnt==456)) // d=-1
			goto ghop;
		     if ((c==174605)&&(levens==1002)&&(lodds==1129)&&(patcnt==254)) // d=-2
			goto ghop;
		     if ((c==174707)&&(levens==1968)&&(lodds==2160)&&(patcnt==512)) // d=-31
			goto ghop;
		     if ((c==174767)&&(levens==1395)&&(lodds==1514)&&(patcnt==359)) // d=-1
			goto ghop;
		     if ((c==174833)&&(levens==1317)&&(lodds==1454)&&(patcnt==344)) // d=-13
			goto ghop;
		     if ((c==175271)&&(levens==636)&&(lodds==745)&&(patcnt==165)) // d=-2
			goto ghop;
		     if ((c==175451)&&(levens==2848)&&(lodds==3092)&&(patcnt==712)) // d=-20
			goto ghop;
		     if ((c==177527)&&(levens==1475)&&(lodds==1658)&&(patcnt==376)) // d=-21
			goto ghop;
		     if ((c==178459)&&(levens==828)&&(lodds==943)&&(patcnt==214)) // d=-3
			goto ghop;
		     if ((c==178565)&&(levens==1130)&&(lodds==1291)&&(patcnt==285)) // d=-12
			goto ghop;
		     if ((c==178961)&&(levens==690)&&(lodds==794)&&(patcnt==180)) // d=-1
			goto ghop;
		     if ((c==180031)&&(levens==3190)&&(lodds==3380)&&(patcnt==814)) // d=-12
			goto ghop;
		     if ((c==180425)&&(levens==1620)&&(lodds==1800)&&(patcnt==408)) // d=-13
			goto ghop;
		     if ((c==180533)&&(levens==1532)&&(lodds==1672)&&(patcnt==394)) // d=-8
			goto ghop;
		     if ((c==181003)&&(levens==3438)&&(lodds==3678)&&(patcnt==865)) // d=-16
			goto ghop;
		     if ((c==181243)&&(levens==3040)&&(lodds==3233)&&(patcnt==780)) // d=-19
			goto ghop;
		     if ((c==181909)&&(levens==648)&&(lodds==756)&&(patcnt==167)) // d=-1
			goto ghop;
		     if ((c==182195)&&(levens==1032)&&(lodds==1128)&&(patcnt==278)) // d=-6
			goto ghop;
		     if ((c==182683)&&(levens==2370)&&(lodds==2580)&&(patcnt==598)) // d=-18
			goto ghop;
		     if ((c==182863)&&(levens==2192)&&(lodds==2310)&&(patcnt==572)) // d=-5
			goto ghop;
		     if ((c==182911)&&(levens==2380)&&(lodds==2560)&&(patcnt==601)) // d=-7
			goto ghop;
		     if ((c==183649)&&(levens==774)&&(lodds==900)&&(patcnt==202)) // d=-9
			goto ghop;
		     if ((c==184015)&&(levens==492)&&(lodds==596)&&(patcnt==130)) // d=-3
			goto ghop;
		     if ((c==184163)&&(levens==1388)&&(lodds==1586)&&(patcnt==356)) // d=-29
			goto ghop;
		     if ((c==184505)&&(levens==1612)&&(lodds==1696)&&(patcnt==431)) // d=-3
			goto ghop;
		     if ((c==184681)&&(levens==1542)&&(lodds==1674)&&(patcnt==404)) // d=-12
			goto ghop;
		     if ((c==185267)&&(levens==1752)&&(lodds==1882)&&(patcnt==453)) // d=-5
			goto ghop;
		     if ((c==185299)&&(levens==2934)&&(lodds==3214)&&(patcnt==740)) // d=-38
			goto ghop;
		     if ((c==185719)&&(levens==696)&&(lodds==828)&&(patcnt==183)) // d=-13
			goto ghop;
		     if ((c==186097)&&(levens==700)&&(lodds==823)&&(patcnt==183)) // d=-8
			goto ghop;
		     if ((c==186215)&&(levens==1200)&&(lodds==1294)&&(patcnt==326)) // d=-10
			goto ghop;
		     if ((c==186335)&&(levens==740)&&(lodds==872)&&(patcnt==183)) // d=-1
			goto ghop;
		     if ((c==186697)&&(levens==2804)&&(lodds==2984)&&(patcnt==709)) // d=-4
			goto ghop;
		     if ((c==187525)&&(levens==1056)&&(lodds==1176)&&(patcnt==270)) // d=-1
			goto ghop;
		     if ((c==187633)&&(levens==1851)&&(lodds==2011)&&(patcnt==464)) // d=-2
			goto ghop;
		     if ((c==187963)&&(levens==882)&&(lodds==1018)&&(patcnt==229)) // d=-11
			goto ghop;
		     if ((c==188555)&&(levens==2364)&&(lodds==2556)&&(patcnt==594)) // d=-9
			goto ghop;
		     if ((c==189059)&&(levens==1467)&&(lodds==1589)&&(patcnt==383)) // d=-7
			goto ghop;
		     if ((c==189905)&&(levens==648)&&(lodds==756)&&(patcnt==168)) // d=-1
			goto ghop;
		     if ((c==189949)&&(levens==914)&&(lodds==1062)&&(patcnt==239)) // d=-17
			goto ghop;
		     if ((c==189971)&&(levens==2460)&&(lodds==2670)&&(patcnt==607)) // d=-3
			goto ghop;
		     if ((c==190103)&&(levens==1654)&&(lodds==1833)&&(patcnt==424)) // d=-20
			goto ghop;
		     if ((c==190355)&&(levens==620)&&(lodds==720)&&(patcnt==163)) // d=-1
			goto ghop;
		     if ((c==191273)&&(levens==3024)&&(lodds==3162)&&(patcnt==792)) // d=-14
			goto ghop;
		     if ((c==191659)&&(levens==1584)&&(lodds==1760)&&(patcnt==404)) // d=-17
			goto ghop;
		     if ((c==191699)&&(levens==1498)&&(lodds==1662)&&(patcnt==384)) // d=-15
			goto ghop;
		     if ((c==191761)&&(levens==1024)&&(lodds==1184)&&(patcnt==261)) // d=-15
			goto ghop;
		     if ((c==192109)&&(levens==1296)&&(lodds==1434)&&(patcnt==328)) // d=-3
			goto ghop;
		     if ((c==192331)&&(levens==1060)&&(lodds==1160)&&(patcnt==279)) // d=-1
			goto ghop;
		     if ((c==193489)&&(levens==1560)&&(lodds==1668)&&(patcnt==411)) // d=-6
			goto ghop;
		     if ((c==194059)&&(levens==1164)&&(lodds==1224)&&(patcnt==322)) // d=-2
			goto ghop;
		     if ((c==194177)&&(levens==640)&&(lodds==780)&&(patcnt==160)) // d=-7
			goto ghop;
		     if ((c==194351)&&(levens==792)&&(lodds==888)&&(patcnt==219)) // d=-10
			goto ghop;
		     if ((c==196243)&&(levens==724)&&(lodds==818)&&(patcnt==193)) // d=-1
			goto ghop;
		     if ((c==196411)&&(levens==1438)&&(lodds==1548)&&(patcnt==374)) // d=-1
			goto ghop;
		     if ((c==197545)&&(levens==812)&&(lodds==918)&&(patcnt==212)) // d=-1
			goto ghop;
		     if ((c==197551)&&(levens==807)&&(lodds==918)&&(patcnt==213)) // d=-6
			goto ghop;
		     if ((c==198353)&&(levens==1610)&&(lodds==1748)&&(patcnt==412)) // d=-4
			goto ghop;
		     if ((c==198763)&&(levens==2492)&&(lodds==2648)&&(patcnt==657)) // d=-25
			goto ghop;
		     if ((c==199193)&&(levens==1637)&&(lodds==1786)&&(patcnt==429)) // d=-18
			goto ghop;
		     if ((c==199675)&&(levens==940)&&(lodds==1030)&(patcnt==252)) // d=-2
			goto ghop;
		     goto zskip;
		     }
		  if ((flag14==2)&&(flag16==1)) {
		     if ((c==6515)&&(levens==436)&&(lodds==506)&&(patcnt==122)) // d=-2
			goto ghop;
		     if ((c==21809)&&(levens==480)&&(lodds==576)&&(patcnt==129)) // d=-3
			goto ghop;
		     if ((c==22429)&&(levens==553)&&(lodds==689)&&(patcnt==137)) // d=-6
			goto ghop;
		     goto zskip;
		     }
		  goto zskip;
		  }
ghop:	       deltae=deltae+100;
	       if (deltae>499) {
		  printf("error: array not big enough (histodp) \n");
		  printf("c=%d, e=%d, o=%d, a=%d, d=%d \n",c,levens,lodds,patcnt,deltae);
		  goto zskip;
		  }
	       histodp[deltae]=histodp[deltae]+1;
	       break;
	       }
	    }
//
	 for (ii=0; ii<13000; ii++) {
	    if (((levens+lodds)==(ln[ii]>>16))&&(lodds==(ln[ii]&0xffff))) {
	       histodd[delta]=histodd[delta]+1;
	       goto iiskip;
	       }
	    if (lodds<(ln[ii]&0xffff))
	       goto iiskip;
	    }
	 printf("warning: ln array not big enough, c=%d, L=%d, K=%d \n",c,levens,lodds);
	 goto zskip;
//
iiskip:  attcnt=0;
	 patcnt=0;
	 mflag=0;
	 savind=i+1;
//
// compute inequality
//
	 if (infin==0) {
	    dtemp=(double)GLOMIN[1]+(double)GLOMIN[0]*65536.0*65536.0;
	    bp=1.0+(double)c/dtemp;
	    bm=1.0-(double)c/dtemp;
	    if (bm<0.0)
	       bm=-bm;
	    }
	 else {
	    bp=1.0;
	    bm=1.0;
	    }
	 tempf=exp((double)a*log(rat))-1.0;
	 tempg=(double)a/tempf;
	 tempg=ratdel-tempg;
	 cap=exp(tempg*log(bp));
	 cam=exp(tempg*log(bm));
	 if ((youonly==0)&&(tonly==0)) {
	    cap=5.0*(double)c*(double)a*cap;  
	    cam=5.0*(double)c*(double)a*cam;
	    }
	 else {
		 if (youonly!=0) {
		    cap=16.0*(double)c*(double)a*cap;
	        cam=16.0*(double)c*(double)a*cam;
		    }
		 else {
            cap=128.0*(double)c*(double)a*cap;
	        cam=128.0*(double)c*(double)a*cam;
		    }
	    }
	 tempg=(rat-1.0)/tempf;
	 tempg=-tempg*(double)lodds;
	 tempg=exp(tempg*log(2.0));
	 cap=cap*tempg;
	 cam=cam*tempg;
	 tempf=(double)(levens+lodds)*log(2)-(double)lodds*log(3);
	 if (tempf<0.0)
	    tempf=-tempf;
	 if ((tempf>cap)||(tempf>cam)) {
	    if ((eowrite==0)||(eowrite==1)) {
	       printf("error 98: c=%d, e=%d, o=%d, a=%d, cap=%e, cam=%e, tempf=%e \n",c,levens,lodds,a,cap,cam,tempf);
		   if (levens>lodds)
			   elk=elk+1;
		   if (a!=1) {
	          fprintf(Outfp,"error 98: c=%d, e=%d, o=%d, a=%d, cap=%e, cam=%e, tempf=%e, dtemp=%e \n",c,levens,lodds,a,cap,cam,tempf,dtemp);
		      grthone=grthone+1;
			  if (outsel==19) {
		        table6[indx[0]]=(unsigned int)dtemp;
				table6[indx[0]+1]=c;
			    indx[0]=indx[0]+2;
		        }
		      }
		   for (ii=0; ii<13000; ii++) {  // Kilroy was here.
	          if (lodds==(ln[ii]&0xffff)) {
				  delta=(ln[ii]>>16)-(ln[ii]&0xffff);
			      delta=levens-delta;
				  if ((delta>100)||(-delta>100)) {
					 printf("histogram not big enough, delta=%d \n",delta);
					 goto zskip;
				     }
				  if (a==1) {
				    if (delta<0)
	                   hist1n[-delta]=hist1n[-delta]+1;
					else
				       hist1p[delta]=hist1p[delta]+1;
				     }
				  else {
					  if (delta<0)
						  hist2n[-delta]=hist2n[-delta]+1;
					  else
						  hist2p[delta]=hist2p[delta]+1;
				      }
			       break;
	               }
	          if (lodds<(ln[ii]&0xffff)) {
			      delta=(ln[ii]>>16)-(ln[ii]&0xffff);				  
				  delta=levens-delta;
				  if ((delta>100)||(-delta>100)) {
					 printf("histogram not big enough, delta=%d, lodds=%d \n",delta,lodds);
					 goto zskip;
				     }
				  if (a==1) {
				     if (delta<0)
	                   hist1n[-delta]=hist1n[-delta]+1;
					 else
					   hist1p[delta]=hist1p[delta]+1;
				     }
				  else {
					  if (delta<0)
						  hist2n[-delta]=hist2n[-delta]+1;
					  else
						  hist2p[delta]=hist2p[delta]+1;
				      }
			       break;
	               }
	            }
	          }
	    badcomp=badcomp+1;
	    }
	 if ((tempf>cap)&&(a>1)) {
	    printf("error: bad comparison for Lemma 7 analogue \n");
	    goto zskip;
	    }
	 if ((tempf>cam)&&(a>1)) {
	    if (lodds>levens) {
	       for (g=0; g<13000; g++) {
		  if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
		     printf("error: bad comparison for Lemma 7 analogue \n");
		     goto zskip;
		     }
		  if (lodds<(ln[g]&0xffff))
		     break;
		  }
	       }
	    }
	 GLOMIN[0]=0x7fffffff;
	 GLOMIN[1]=0xffffffff;
	 a=0;
//
// check global maximum
//
	 K[0]=USAVE[0];
	 K[1]=USAVE[1];
	 LOCMAX[0]=K[0];
	 LOCMAX[1]=K[1];
	 if ((LOCMAX[0]&0x80000000)!=0)
	    sub64(Z,LOCMAX);
	 LASTODD[0]=LOCMAX[0];
	 LASTODD[1]=LOCMAX[1];
	 T[0]=K[0];
	 T[1]=K[1];
	 add64(K,K);
	 add64(T,K);
	 add64(CP,K);
	 while ((K[1]&7)!=0) {
	    while ((K[1]&1)==0) {
	       K[1]=K[1]>>1;
	       K[1]=K[1]|(K[0]<<31);
	       K[0]=(int)K[0]>>1;
	       }
	    T[0]=K[0];
	    T[1]=K[1];
	    if ((T[0]&0x80000000)!=0)
	       sub64(Z,T);
	    U[0]=LOCMAX[0];
	    U[1]=LOCMAX[1];
	    sub64(T,U);
	    if ((U[0]&0x80000000)==0) {
	       LOCMAX[0]=T[0];
	       LOCMAX[1]=T[1];
	       USAVE[0]=K[0];
	       USAVE[1]=K[1];
	       }
	    LASTODD[0]=T[0];
	    LASTODD[1]=T[1];
	    T[0]=K[0];
	    T[1]=K[1];
	    add64(K,K);
	    add64(T,K);
	    add64(CP,K);
	    }
	 if ((LASTODD[0]!=LOCMAX[0])||(LASTODD[1]!=LOCMAX[1])) {
	    K[0]=USAVE[0];
	    K[1]=USAVE[1];
	    T[0]=K[0];
	    T[1]=K[1];
	    add64(K,K);
	    add64(T,K);
	    add64(CP,K);
	    while ((K[1]&7)!=0) {
	       K[1]=K[1]>>1;
	       K[1]=K[1]|(K[0]<<31);
	       K[0]=(int)K[0]>>1;
	       if ((K[1]&1)==0) {
		  K[1]=K[1]>>1;
		  K[1]=K[1]|(K[0]<<31);
		  K[0]=(int)K[0]>>1;
		  T[0]=K[0];
		  T[1]=K[1];
		  if ((T[0]&0x80000000)!=0)
		     sub64(Z,T);
		  if ((T[0]==LASTODD[0])&&(T[1]==LASTODD[1])) {
		     if (savjmp==0) {
			T[0]=LOCMAX[0];
			T[1]=LOCMAX[1];
			sub64(TSAVE,T);
			if ((T[0]&0x80000000)==0) {
			   printf("error: t is greater than global maximum, u=%#010x %#010x, t=%#010x %#010x, max=%#010x %#010x, jump=%d \n",USAVE[0],USAVE[1],TSAVE[0],TSAVE[1],LOCMAX[0],LOCMAX[1],savjmp);
			   if ((c!=26281)&&(levens!=5)&&(lodds!=10))  // temp!
			      goto zskip;
			   }
			goto wskip;
			}
		     else {
			printf("error: not a no-jump attachment point \n");
			fprintf(Outfp,"error: not a no-jump attachment point \n");
			goto zskip;
			}
		     }
		  }
	       T[0]=K[0];
	       T[1]=K[1];
	       add64(K,K);
	       add64(T,K);
	       add64(CP,K);
	       }
	    if (savjmp!=1) {
	       printf("error: not a one-jump attachment point \n");
	       fprintf(Outfp,"error: not a one-jump attachment point \n");
	       goto zskip;
	       }
	    T[0]=LOCMAX[0];
	    T[1]=LOCMAX[1];
	    sub64(TSAVE,T);
	    if ((T[0]&0x80000000)==0) {
	       printf("error: t is greater than global maximum, u=%#010x %#010x, t=%#010x %#010x, max=%#010x %#010x, jump=%d \n",USAVE[0],USAVE[1],TSAVE[0],TSAVE[1],LOCMAX[0],LOCMAX[1],savjmp);
	       goto zskip;
	       }
wskip:	    delta=0;
	    }
	 GLOMAX[0]=0;
	 GLOMAX[1]=0;
	 }
      else {
	 OLDS[0]=ES[2*i];
	 OLDS[1]=ES[2*i+1];
	 }
      }
   if (wflag==0) {
      printf("\n");
      fprintf(Outfp,"\n");
      }
/* for (tempi=0; tempi<cycsavind; tempi++) {
      outkl[2*outklind]=cycsav[2*tempi];
      outkl[2*outklind+1]=cycsav[2*tempi+1];
      outklind=outklind+1;
      if (outklind>19999) {
	 printf("array not big enough (outkl) \n");
	 goto zskip;
	 }
      }
   outcnt[h]=cycsavind; */
   index1=index1+iters1;
   c=c+2;
   if (c==((c/3)*3))
      c=c+2;
   if (c>climit)
      break;
   }
printf("\n");
fprintf(Outfp,"\n");
if (eowrite==0) {
   printf("maxdel=%e, c=%d, mindel=%e, c=%d \n",maxdel,cmax,mindel,cmin);
   fprintf(Outfp,"maxdel=%e, c=%d, mindel=%e, c=%d \n",maxdel,cmax,mindel,cmin);
   printf("\n");
   fprintf(Outfp,"\n");
   }
//
// output histogram of evens minus odds
//
printf("histogram of # evens minus # odds in extended sequences, one-jump attachment points \n");
fprintf(Outfp,"histogram of # evens minus # odds in extended sequences, one-jump attachment points \n");
flag=99;
for (i=99; i>0; i--) {
   if (histo[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
first=0;
sum=0;
n=0;
for (i=0; i<=(int)flag; i++) {
   if ((histo[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,histo[i]);
   printf("i=%d, h[i]=%d \n",i-offset,histo[i]);
   sum=sum+(int)histo[i]*((int)i-(int)offset);
   n=n+histo[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histo[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset-mean;
   var=var+tempf*tempf*(double)histo[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of k values (for primary one-jump attachment points)
//
printf("\n");
fprintf(Outfp,"\n");
printf("histogram of k values for primary one-jump attachment points \n");
fprintf(Outfp,"histogram of k values for primary one-jump attachment points \n");
if (hflag!=0) {
   printf("c=%d \n",hflag);
   fprintf(Outfp,"c=%d \n",hflag);
   }
flag=199;
for (i=199; i>0; i--) {
   if (histoj[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
first=0;
sum=0;
n=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoj[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset5,histoj[i]);
   printf("i=%d, h[i]=%d \n",i-offset5,histoj[i]);
   sum=sum+(int)histoj[i]*((int)i-(int)offset5);
   n=n+histoj[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoj[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset5-mean;
   var=var+tempf*tempf*(double)histoj[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of hops
//
printf("\n");
fprintf(Outfp,"\n");
printf("number of hops before local minimum is reached, primary one-jump attachment point \n");
fprintf(Outfp,"number of hops before local minimum is reached, primary one-jump attachment point \n");
n=0;
for (i=0; i<20; i++)
   n=n+hismin[i];
for (i=0; i<20; i++) {
   printf("i=%d, h=%d, f=%e \n",i,hismin[i],(double)hismin[i]/(double)n);
   fprintf(Outfp,"i=%d, h=%d, f=%e \n",i,hismin[i],(double)hismin[i]/(double)n);
   }
printf("n=%d \n",n);
fprintf(Outfp,"n=%d \n",n);
//
// output histogram of j values for primary no-jumps
//
printf("\n");
fprintf(Outfp,"\n");
printf("j values for primary no-jumps \n");
fprintf(Outfp,"j values for primary no-jumps \n");
n=0;
for (i=0; i<40; i++) {
   printf("i=%d, h=%d \n",i,histon[i]);
   fprintf(Outfp,"i=%d, h=%d \n",i,histon[i]);
   n=n+histon[i];
   }
printf("n=%d \n",n);
fprintf(Outfp,"n=%d \n",n);
//
// output histogram of j values for primary multiple-jumps
//
printf("\n");
fprintf(Outfp,"\n");
printf("j values for primary multiple-jumps \n");
fprintf(Outfp,"j values for primary multiple-jumps \n");
n=0;
for (i=0; i<15; i++)
   n=n+histom[i];
for (i=0; i<15; i++) {
   printf("i=%d, h=%d, f=%e \n",i,histom[i],(double)histom[i]/(double)n);
   fprintf(Outfp,"i=%d, h=%d, f=%e \n",i,histom[i],(double)histom[i]/(double)n);
   }
printf("n=%d \n",n);
fprintf(Outfp,"n=%d \n",n);
//
// last odd counts
//
printf("\n");
fprintf(Outfp,"\n");
printf("no-jump count=%d, one-jump count=%d, jumped-over count=%d \n",county,countn,countx);
fprintf(Outfp,"no-jump count=%d, one-jump count=%d, jumped-over count=%d \n",county,countn,countx);
//
// output histogram of k values (for primary one-jump attachment points)
//
printf("primary one-jump attachment points, last odd not equal to locmax \n");
fprintf(Outfp,"primary one-jump attachment points, last odd not equal to locmax \n");
if (hflag!=0) {
   printf("c=%d \n",hflag);
   fprintf(Outfp,"c=%d \n",hflag);
   }
flag=99;
for (i=99; i>0; i--) {
   if (newhis[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
first=0;
n=0;
for (i=0; i<=(int)flag; i++) {
   if ((newhis[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,newhis[i]);
   printf("i=%d, h[i]=%d \n",i-offset,newhis[i]);
   n=n+newhis[i];
   }
printf("n=%d \n",n);
fprintf(Outfp,"n=%d \n",n);
//
// output histogram of k values (for primary one-jump attachment points)
//
printf("\n");
fprintf(Outfp,"\n");
printf("primary one-jump attachment points, u not equal to locmin \n");
fprintf(Outfp,"primary one-jump attachment points, u not equal to locmin \n");
if (hflag!=0) {
   printf("c=%d \n",hflag);
   fprintf(Outfp,"c=%d \n",hflag);
   }
flag=99;
for (i=99; i>0; i--) {
   if (oldhis[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
first=0;
n=0;
for (i=0; i<=(int)flag; i++) {
   if ((oldhis[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,oldhis[i]);
   printf("i=%d, h[i]=%d \n",i-offset,oldhis[i]);
   n=n+oldhis[i];
   }
printf("n=%d \n",n);
fprintf(Outfp,"n=%d \n",n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of odd sum plus hops minus number of evens
//
printf("odd sum minus jumps plus hops minus even sum (global, histoh) \n");
fprintf(Outfp,"odd sum minus jumps plus hops minus even sum (global, histoh) \n");
flag=1499;
for (i=1499; i>0; i--) {
   if (histoh[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoh[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset12,histoh[i]);
   printf("i=%d, h[i]=%d \n",i-offset12,histoh[i]);
   sum=sum+(int)histoh[i]*((int)i-(int)offset12);
   n=n+histoh[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoh[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset12-mean;
   var=var+tempf*tempf*(double)histoh[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of odd sum plus hops minus number of evens
//
printf("number of odds minus jumps plus hops minus number of evens (local, histoi) \n");
fprintf(Outfp,"number of odds minus jumps plus hops minus number of evens (local, histoi) \n");
flag=199;
for (i=199; i>0; i--) {
   if (histoi[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoi[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histoi[i]);
   printf("i=%d, h[i]=%d \n",i-offset4,histoi[i]);
   sum=sum+(int)histoi[i]*((int)i-(int)offset4);
   n=n+histoi[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoi[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset4-mean;
   var=var+tempf*tempf*(double)histoi[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of j minus number of evens plus number of hops
//
printf("j minus number of evens plus number of hops minus jumps (local, histox) \n");
fprintf(Outfp,"j minus number of evens plus number of hops minus jumps (local, histox) \n");
flag=199;
for (i=199; i>0; i--) {
   if (histox[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histox[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset5,histox[i]);
   printf("i=%d, h[i]=%d \n",i-offset5,histox[i]);
   sum=sum+(int)histox[i]*((int)i-(int)offset5);
   n=n+histox[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histox[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset5-mean;
   var=var+tempf*tempf*(double)histox[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of j minus number of evens (local)
//
if (hflag1!=0) {
   printf("c=%d \n",hflag1);
   fprintf(Outfp,"c=%d \n",hflag1);
   }
printf("j minus number of evens (local, histoy) \n");
fprintf(Outfp,"j minus number of evens (local, histoy) \n");
flag=199;
for (i=199; i>0; i--) {
   if (histoy[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
first=0;
sum=0;
tempi=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoy[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset5,histoy[i]);
   printf("i=%d, h[i]=%d \n",i-offset5,histoy[i]);
   sum=sum+(int)histoy[i]*((int)i-(int)offset5);
   tempi=tempi+histoy[i];
   }
mean=(double)sum/(double)tempi;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoy[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset5-mean;
   var=var+tempf*tempf*(double)histoy[i];
   }
var=var/(double)(tempi-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,tempi);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,tempi);
//
// output histogram of j minus number of evens
//
printf("\n");
fprintf(Outfp,"\n");
if (flag13==0) {
   printf("j minus number of evens (global) \n");
   fprintf(Outfp,"j minus number of evens (global, histov) \n");
   }
else {
   printf("j plus d/del minus number of evens (global) \n");
   fprintf(Outfp,"j plus d/del minus number of evens (global, histov) \n");
   }
flag=5499;
for (i=5499; i>0; i--) {
   if (histov[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histov[i]==0)&&(first==0))
      continue;
   first=1;
   if (cbegin<100000) {
      fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset9,histov[i]);
      printf("i=%d, h[i]=%d \n",i-offset9,histov[i]);
      }
   sum=sum+(int)histov[i]*((int)i-(int)offset9);
   n=n+histov[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histov[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset9-mean;
   var=var+tempf*tempf*(double)histov[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of hops minus number of jumps
//
printf("hops minus number of jumps (local) \n");
fprintf(Outfp,"hops minus number of jumps (local, histoz) \n");
flag=199;
for (i=199; i>0; i--) {
   if (histoz[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoz[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset5,histoz[i]);
   printf("i=%d, h[i]=%d \n",i-offset5,histoz[i]);
   sum=sum+(int)histoz[i]*((int)i-(int)offset5);
   n=n+histoz[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoz[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset5-mean;
   var=var+tempf*tempf*(double)histoz[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of hops minus number of jumps
//
printf("\n");
fprintf(Outfp,"\n");
printf("hops minus number of jumps \n");
fprintf(Outfp,"hops minus number of jumps (global, histow) \n");
flag=499;
for (i=499; i>0; i--) {
   if (histow[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histow[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset8,histow[i]);
   printf("i=%d, h[i]=%d \n",i-offset8,histow[i]);
   sum=sum+(int)histow[i]*((int)i-(int)offset8);
   n=n+histow[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histow[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset8-mean;
   var=var+tempf*tempf*(double)histow[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of odds minus evens (global)
//
printf("sum of odds minus sum of evens (global) \n");
fprintf(Outfp,"sum of odds minus sum of evens (global, histos) \n");
flag=1299;
for (i=1299; i>0; i--) {
   if (histos[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histos[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset11,histos[i]);
   printf("i=%d, h[i]=%d \n",i-offset11,histos[i]);
   sum=sum+(int)histos[i]*((int)i-(int)offset11);
   n=n+histos[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histos[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset11-mean;
   var=var+tempf*tempf*(double)histos[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of odds minus evens (local)
//
printf("odds minus evens (local) \n");
fprintf(Outfp,"odds minus evens (local, histor) \n");
flag=199;
for (i=199; i>0; i--) {
   if (histor[i]==0)
      continue;
   else {
      flag=i;
      break;
      }
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histor[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset5,histor[i]);
   printf("i=%d, h[i]=%d \n",i-offset5,histor[i]);
   sum=sum+(int)histor[i]*((int)i-(int)offset5);
   n=n+histor[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histor[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset5-mean;
   var=var+tempf*tempf*(double)histor[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of j minus evens (continued-fraction convergents)
//
printf("\n");
fprintf(Outfp,"\n");
printf("j minus evens (convergents) \n");
fprintf(Outfp,"j minus evens (convergents, local, histot) \n");
flag=49;
for (i=49; i>0; i--) {
   if (histot[i]==0)
      flag=flag-1;
   else
      break;
   }
sum=0;
n=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histot[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histot[i]);
   printf("i=%d, h[i]=%d \n",i-offset4,histot[i]);
   sum=sum+(int)histot[i]*((int)i-(int)offset4);
   n=n+histot[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histot[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset4-mean;
   var=var+tempf*tempf*(double)histot[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of j minus evens (continued-fraction convergents)
//
printf("\n");
fprintf(Outfp,"\n");
printf("j minus evens (convergents, global) \n");
fprintf(Outfp,"j minus evens (convergents, global, histou) \n");
flag=99;
for (i=99; i>0; i--) {
   if (histou[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histou[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histou[i]);
   printf("i=%d, h[i]=%d \n",i-offset4,histou[i]);
   sum=sum+(int)histou[i]*((int)i-(int)offset4);
   n=n+histou[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histou[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset4-mean;
   var=var+tempf*tempf*(double)histou[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of j minus evens (continued-fraction convergents)
//
printf("\n");
fprintf(Outfp,"\n");
printf("j minus evens (convergents, evens equal odds) \n");
fprintf(Outfp,"j minus evens (convergents, evens equal odds, local, histoa) \n");
flag=49;
for (i=49; i>0; i--) {
   if (histoa[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histoa[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histoa[i]);
   printf("i=%d, h[i]=%d \n",i-offset4,histoa[i]);
   sum=sum+(int)histoa[i]*((int)i-(int)offset4);
   n=n+histoa[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histoa[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset4-mean;
   var=var+tempf*tempf*(double)histoa[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram of j minus evens (continued-fraction convergents)
//
printf("\n");
fprintf(Outfp,"\n");
if (flag13==0) {
   printf("j minus evens (convergents, evens equal odds, global) \n");
   fprintf(Outfp,"j minus evens (convergents, evens equal odds, global, histob) \n");
   }
else {
   printf("j plus d/del minus evens (convergents, evens equal odds, global) \n");
   fprintf(Outfp,"j plus d/del minus evens (convergents, evens equal odds, global, histob) \n");
   }
flag=599;
for (i=599; i>0; i--) {
   if (histob[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histob[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset8,histob[i]);
   printf("i=%d, h[i]=%d \n",i-offset8,histob[i]);
   sum=sum+(int)histob[i]*((int)i-(int)offset8);
   n=n+histob[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histob[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset8-mean;
   var=var+tempf*tempf*(double)histob[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram
//
printf("\n");
fprintf(Outfp,"\n");
printf("3*log(c)-a \n");
fprintf(Outfp,"3*log(c)-a \n"                                                   );
flag=6499;
for (i=6499; i>0; i--) {
   if (histod[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histod[i]==0)&&(first==0))
      continue;
   first=1;
   if ((cbegin<100000)||(eowrite==1)) {
      fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset10,histod[i]);
      printf("i=%d, h[i]=%d \n",i-offset10,histod[i]);
      }
   sum=sum+(int)histod[i]*((int)i-(int)offset10);
   n=n+histod[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histod[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset10-mean;
   var=var+tempf*tempf*(double)histod[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram
//
printf("\n");
fprintf(Outfp,"\n");
printf("3*log(c)-a ((L,K) values equal to those of M-cycles generated from the parity vector p) \n");
fprintf(Outfp,"3*log(c)-a ((L,K) values equal to those of M-cycles generated from the parity vector p) \n");
flag=6499;
for (i=6499; i>0; i--) {
   if (histodd[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histodd[i]==0)&&(first==0))
      continue;
   first=1;
   fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset10,histodd[i]);
   printf("i=%d, h[i]=%d \n",i-offset10,histodd[i]);
   sum=sum+(int)histodd[i]*((int)i-(int)offset10);
   n=n+histodd[i];
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histodd[i]==0)&&(first==0))
      continue;
   first=1;
   tempf=(double)i-(double)offset10-mean;
   var=var+tempf*tempf*(double)histodd[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
//
// output histogram
//
printf("\n");
fprintf(Outfp,"\n");
printf("3*log(c)-a plus delta evens over del \n");
fprintf(Outfp,"3*log(c)-a plus delta evens over del \n");
flag=499;
for (i=499; i>0; i--) {
   if (histodp[i]==0)
      flag=flag-1;
   else
      break;
   }
n=0;
sum=0;
first=0;
for (i=0; i<=(int)flag; i++) {
   if ((histodp[i]==0)&&(first==0))
      continue;
   first=1;
   if (flag16<2) {
      fprintf(Outfp,"i=%d, h[i]=%d, \n",i-101,histodp[i]);
      printf("i=%d, h[i]=%d \n",i-101,histodp[i]);
      delta=(int)i-101;
      sum=sum+(int)histodp[i]*delta;
      n=n+histodp[i];
      }
   else {
      if (flag16==2) {
	 fprintf(Outfp,"i=%d, h[i]=%d, \n",i-100-offdp,histodp[i]);
	 printf("i=%d, h[i]=%d \n",i-100-offdp,histodp[i]);
	 delta=(int)i-100-(int)offdp;
	 sum=sum+(int)histodp[i]*delta;
	 n=n+histodp[i];
	 }
      else {
	 fprintf(Outfp,"i=%d, h[i]=%d, \n",i-100-offdp3,histodp[i]);
	 printf("i=%d, h[i]=%d \n",i-100-offdp3,histodp[i]);
	 delta=(int)i-100-(int)offdp3;
	 sum=sum+(int)histodp[i]*delta;
	 n=n+histodp[i];
	 }
      }
   }
mean=(double)sum/(double)n;
first=0;
var=0.0;
for (i=0; i<=(int)flag; i++) {
   if ((histodp[i]==0)&&(first==0))
      continue;
   first=1;
   if (flag16<2)
      tempf=(double)i-(double)101-mean;
   else {
      if (flag16==2)
	 tempf=(double)i-(double)100-(double)offdp-mean;
      else
	 tempf=(double)i-(double)100-(double)offdp3-mean;
      }
   var=var+tempf*tempf*(double)histodp[i];
   }
var=var/(double)(n-1);
std=sqrt(var);
printf("mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
fprintf(Outfp,"mean=%e, standard deviation=%e, n=%d \n",mean,std,n);
printf("\n");
fprintf(Outfp,"Kilroy was here.\n");
printf("cycle count=%d, multiple-jump count=%d, two-jump count=%d, non-adjacent count=%d \n",cyccnt,mcount,twojmp,jmphop);
fprintf(Outfp,"cycle count=%d, multiple-jump count=%d, two-jump count=%d, non-adjacent count=%d \n",cyccnt,mcount,twojmp,jmphop);
printf("total jumps in multiple-jumps=%d, total hops in multiple-jumps=%d \n",glojmp,glohop);
fprintf(Outfp,"total jumps in multiple-jumps=%d, total hops in multiple-jumps=%d \n",glojmp,glohop);
printf("hop/hop=%d, jump/hop=%d, hop/jump=%d, jump/jump=%d \n",twojmp0,twojmp1,twojmp2,twojmp3);
fprintf(Outfp,"hop/hop=%d, jump/hop=%d, hop/jump=%d, jump/jump=%d \n",twojmp0,twojmp1,twojmp2,twojmp3);
printf("primary attachment points=%d \n",primary);
fprintf(Outfp,"primary attachment points=%d \n",primary);
printf("bad t chains=%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n",badcnttp,badcnttq,badcnttr,badcntts,badcnttt,badcnttu,badcnttv,badcnttw,badcnttx,badcntty,badcnttz,badt1,badt2,badt3,badt4,badt5,badt6,badt7,badt8,badt9);
fprintf(Outfp,"bad t chains=%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n",badcnttp,badcnttq,badcnttr,badcntts,badcnttt,badcnttu,badcnttv,badcnttw,badcnttx,badcntty,badcnttz,badt1,badt2,badt3,badt4,badt5,badt6,badt7,badt8,badt9);
printf("bad t-u chains=%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n",badcntvp,badcntvq,badcnttr,badcntvs,badcntvt,badcntvu,badcntvv,badcntvw,badcntvx,badcntvy,badcntvz,badtu1,badtu2,badtu3,badtu4,badtu5,badtu6,badtu7,badtu8,badtu9);
fprintf(Outfp,"bad t-u chains=%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n",badcntvp,badcntvq,badcntvr,badcntvs,badcntvt,badcntvu,badcntvv,badcntvw,badcntvx,badcntvy,badcntvz,badtu1,badtu2,badtu3,badtu4,badtu5,badtu6,badtu7,badtu8,badtu9);
printf("bad t chains=%d, bad u chains=%d %d %d %d %d %d %d %d %d , bad t-u chains=%d \n",badcnt,badcntu,badcntut,badcntup,badcntuu,badcntuq,badcntuv,badcntur,badcntuw,badcntus,badtucnt);
fprintf(Outfp,"bad t chains=%d, bad u chains=%d %d %d %d %d %d %d %d %d, bad t-u chains=%d \n",badcnt,badcntu,badcntut,badcntup,badcntuu,badcntuq,badcntuv,badcntur,badcntuw,badcntus,badtucnt,elk);
printf("bad comparisons (Lemma 7 analogue)=%d, a!=1 count=%, L>K count=%d, L>K count=%d \n",badcomp,grthone,elk);
fprintf(Outfp,"bad comparisons (Lemma 7 analogue)=%d, a!=1 count=%d, L>K count=%d \n",badcomp,grthone,elk);
printf("number of cycles where 2^((oddsum-jsum)*(del-1))/2^evensum>1.0 =%d, maximum=%e \n",compcnt,maxcmp);
fprintf(Outfp,"number of cycles where 2^((oddsum-jsum)*(del-1))/2^evensum>1.0 =%d, maximum=%e \n",compcnt,maxcmp);
printf("# cycles having (L,K) value of a generalized continued-fraction convergent of log(3)/log(2)=%d \n",cyccntu);
fprintf(Outfp,"# cycles having (L,K) value of a generalized continued-fraction convergent of log(3)/log(2)=%d \n",cyccntu);
printf("# cycles where L=K, K equals denominator of generalized continued-fraction convergent of log(3)/log(2)=%d \n",cyccntb);
fprintf(Outfp,"# cycles where L=K, K equals denominator of generalized continued-fraction convergent of log(3)/log(2)=%d \n",cyccntb);
printf("number of cycles where L=K, 3*log(c)<a =%d \n",equcnt);
fprintf(Outfp,"number of cycles where L=K, 3*log(c)<a =%d \n",equcnt);
printf("utmax*utmin/lambda^2 > del: \n");
printf("   maximum ratio=%e, minimum ratio=%e, count=%d, c=%d, k=%#010x %#010x \n",maxminrat,minmaxrat,lamcnt,savec,KSAVE[0],KSAVE[1]);
fprintf(Outfp,"utmax*utmin/lambda^2 > del: \n");
fprintf(Outfp,"   maximum ratio=%e, minimum ratio=%e, count=%d, c=%d, k=%#010x %#010x \n",maxminrat,minmaxrat,lamcnt,savec,KSAVE[0],KSAVE[1]);
if (eowrite==0) {
   printf("failures=%d, maximum ratio=%e \n",flubx,maxdiff);
   fprintf(Outfp,"failures=%d, maximum ratio=%e \n",flubx,maxdiff);
   }
printf("number of cycles having the (L,K) value of an M-cycle generated from the parity vector p=%d \n",pcount);
fprintf(Outfp,"number of cycles having the (L,K) value of an M-cycle generated from the parity vector p=%d \n",pcount);
printf("minimum power of log3/log2 greater than utmax/utmin (parity vector p)=%d \n",deemax);
fprintf(Outfp,"minimum power of log3/log2 greater than utmax/utmin (parity vector p)=%d, L=%d, K=%d, min=%f, max=%f, c=%d \n",deemax,savel,saven,savemin,savemax,savesee);
fprintf(Outfp,"     maxu=%f, minu=%f, maxt=%f, mint=%f \n",savemaxu,saveminu,savemaxt,savemint);
printf("number of cycles where (log(3)/log(2))^(a+3)<lambda/utmin=%d \n",flubs);
fprintf(Outfp,"number of cycles where (log(3)/log(2))^(a+3)<lambda/utmin=%d \n",flubs);
printf("\n");
fprintf(Outfp,"\n");
printf("((log(3)/log(2))^(a+1)<lambda/lambda1, lambda1/lambda2, etc. \n");
fprintf(Outfp,"((log(3)/log(2))^(a+1)<lambda/lambda1, lambda1/lambda2, etc. \n");
printf("counts=%d, %d, %d, %d, %d, %d \n",error[0],error[1],error[2],error[3],error[4],error[5]);
fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d \n",error[0],error[1],error[2],error[3],error[4],error[5]);
printf("number of cycles where lambda/lambda1, lambda1/lambda2, etc. are defined \n");
fprintf(Outfp,"number of cycles where lambda/lambda1, lambda1/lambda2, etc. are defined \n");
printf("counts=%d, %d, %d, %d, %d, %d \n",count1,count2,count3,count4,count5,count6);
fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d \n",count1,count2,count3,count4,count5,count6);
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than utmax/utmin for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than utmax/utmin for different a values \n");
for (i=0; i<80; i++) {
   printf("i=%d, counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d,",i,chhist[i],d0hist[i],d1hist[i],d2hist[i],d3hist[i],d4hist[i],d5hist[i],d6hist[i],d7hist[i],d8hist[i],d9hist[i],d10hist[i],d70hist[i],d71hist[i]);
   printf(" %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d100hist[i],d101hist[i],d102hist[i],d103hist[i],d104hist[i],d105hist[i],d106hist[i],d107hist[i],d108hist[i],d109hist[i],d110hist[i],d111hist[i]);
   fprintf(Outfp,"i=%d, counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d,",i,chhist[i],d0hist[i],d1hist[i],d2hist[i],d3hist[i],d4hist[i],d5hist[i],d6hist[i],d7hist[i],d8hist[i],d9hist[i],d10hist[i],d70hist[i],d71hist[i]);
   fprintf(Outfp," %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d100hist[i],d101hist[i],d102hist[i],d103hist[i],d104hist[i],d105hist[i],d106hist[i],d107hist[i],d108hist[i],d109hist[i],d110hist[i],d111hist[i]);
   }
/*
fprintf(Outfp,"\n");
for (i=0; i<60; i++) {
	for (j=0; j<80; j++)
		fprintf(Outfp,"%d,",table1[i*100+j]); 
   fprintf(Outfp,"\n");
   } */
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than utmax/lambda, lambda/lambda1, lambda1/lambda2, etc.\n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than utmax/lambda, lambda/lambda1, lambda1/lambda2, etc.\n");
for (i=0; i<40; i++) {
   printf("i=%d, counts=%d, %d, %d, %d, %d, %d, %d, \n",i,d11hist[i],d12hist[i],d13hist[i],d14hist[i],d15hist[i],d16hist[i],d17hist[i]);
   fprintf(Outfp,"i=%d, counts=%d, %d, %d, %d, %d, %d, %d, \n",i,d11hist[i],d12hist[i],d13hist[i],d14hist[i],d15hist[i],d16hist[i],d17hist[i]);
   }
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than utmax/lambda for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than utmax/lambda for different a values \n");
for (i=0; i<40; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, ",d18hist[i],d19hist[i],d20hist[i],d21hist[i],d22hist[i],d23hist[i],d24hist[i],d25hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, ",d18hist[i],d19hist[i],d20hist[i],d21hist[i],d22hist[i],d23hist[i],d24hist[i],d25hist[i]);
   printf("%d, %d, %d, %d, %d, %d, %d, %d, ",d42hist[i],d43hist[i],d44hist[i],d45hist[i],d46hist[i],d47hist[i],d48hist[i],d49hist[i]);
   fprintf(Outfp,"%d, %d, %d, %d, %d, %d, %d, %d, ",d42hist[i],d43hist[i],d44hist[i],d45hist[i],d46hist[i],d47hist[i],d48hist[i],d49hist[i]);
   printf("%d, %d, %d, %d, %d, %d, %d, %d, \n",d72hist[i],d73hist[i],d74hist[i],d75hist[i],d76hist[i],d77hist[i],d78hist[i],d79hist[i]);
   fprintf(Outfp,"%d, %d, %d, %d, %d, %d, %d, %d, \n",d72hist[i],d73hist[i],d74hist[i],d75hist[i],d76hist[i],d77hist[i],d78hist[i],d79hist[i]);
   }
/*
fprintf(Outfp,"\n");
for (i=0; i<200; i++) {
	for (j=0; j<30; j++)
		fprintf(Outfp,"%d,",table[i*30+j]); 
   fprintf(Outfp,"\n");
   } */
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than umax/lambdau for difference a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than umax/lambdau for difference a values \n");
for (i=0; i<20; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d50hist[i],d51hist[i],d52hist[i],d53hist[i],d54hist[i],d55hist[i],d56hist[i],d57hist[i],d58hist[i],d59hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d50hist[i],d51hist[i],d52hist[i],d53hist[i],d54hist[i],d55hist[i],d56hist[i],d57hist[i],d58hist[i],d59hist[i]);
   }
/*
fprintf(Outfp,"\n");
for (i=0; i<200; i++) {
	for (j=0; j<30; j++)
		fprintf(Outfp,"%d,",table3[i*30+j]); 
   fprintf(Outfp,"\n");
   } */
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than tmax/lambdat for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than tmax/lambdat for different a values \n");
for (i=0; i<20; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d60hist[i],d61hist[i],d62hist[i],d63hist[i],d64hist[i],d65hist[i],d66hist[i],d67hist[i],d68hist[i],d69hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d60hist[i],d61hist[i],d62hist[i],d63hist[i],d64hist[i],d65hist[i],d66hist[i],d67hist[i],d68hist[i],d69hist[i]);
   }
/*
fprintf(Outfp,"\n");
for (i=0; i<200; i++) {
	for (j=0; j<30; j++)
		fprintf(Outfp,"%d,",table2[i*30+j]); 
   fprintf(Outfp,"\n");
   } */
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than lambda/lambda1 for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than lambda/lambda1 for different a values \n");
for (i=0; i<40; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d26hist[i],d27hist[i],d28hist[i],d29hist[i],d30hist[i],d31hist[i],d32hist[i],d33hist[i],d88hist[i],d89hist[i],d90hist[i],d91hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d26hist[i],d27hist[i],d28hist[i],d29hist[i],d30hist[i],d31hist[i],d32hist[i],d33hist[i],d88hist[i],d89hist[i],d90hist[i],d91hist[i]);
   }
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than lambda1/lambda2 for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than lambda1/lambda2 for different a values \n");
for (i=0; i<40; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d34hist[i],d35hist[i],d36hist[i],d37hist[i],d38hist[i],d39hist[i],d40hist[i],d41hist[i],d92hist[i],d93hist[i],d94hist[i],d95hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d34hist[i],d35hist[i],d36hist[i],d37hist[i],d38hist[i],d39hist[i],d40hist[i],d41hist[i],d92hist[i],d93hist[i],d94hist[i],d95hist[i]);
   }
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than lambda2/lambda3 for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than lambda2/lambda3 for different a values \n");
for (i=0; i<40; i++) {
   printf("counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d80hist[i],d81hist[i],d82hist[i],d83hist[i],d84hist[i],d85hist[i],d86hist[i],d87hist[i],d96hist[i],d97hist[i],d98hist[i],d99hist[i]);
   fprintf(Outfp,"counts=%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, \n",d80hist[i],d81hist[i],d82hist[i],d83hist[i],d84hist[i],d85hist[i],d86hist[i],d87hist[i],d96hist[i],d97hist[i],d98hist[i],d99hist[i]);
   }
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than UMAX/UMIN for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than UMAX/UMIN for different a values \n");
fprintf(Outfp,"\n");
for (i=0; i<60; i++) {
	for (j=0; j<80; j++)
		fprintf(Outfp,"%d,",table4[i*100+j]); 
   fprintf(Outfp,"\n");
   }
printf("\n");
fprintf(Outfp,"\n");
printf("smallest power of log(3)/log(2) greater than TMAX/TMIN for different a values \n");
fprintf(Outfp,"smallest power of log(3)/log(2) greater than TMAX/TMIN for different a values \n");
fprintf(Outfp,"\n");
for (i=0; i<60; i++) {
	for (j=0; j<80; j++)
		fprintf(Outfp,"%d,",table5[i*100+j]); 
   fprintf(Outfp,"\n");
   }
if (eowrite==1) {
   printf("\n");
   fprintf(Outfp,"\n");
   printf("count=%d \n",onecnt);
   fprintf(Outfp,"count=%d \n",onecnt);
   printf("generalized continued-fraction convergents of log(3)/log(2) \n");
   fprintf(Outfp,"generalized continued-fraction convergents of log(3)/log(2) \n");
   for (i=0; i<89; i++) {
      printf("i=%d, c=%d %d %d %d %d %d \n",i,concov[6*i],concov[6*i+1],concov[6*i+2],concov[6*i+3],concov[6*i+4],concov[6*i+5]);
      fprintf(Outfp,"i=%d, c=%d %d %d %d %d %d \n",i,concov[6*i],concov[6*i+1],concov[6*i+2],concov[6*i+3],concov[6*i+4],concov[6*i+5]);
      }
   }
if (eowrite==0) {
   printf("\n");
   fprintf(Outfp,"\n");
   for (i=0; i<89; i++) {
      printf("i=%d, c=%d, c=%d, c=%d \n",i,concove[3*i],concove[3*i+1],concove[3*i+2]);
      fprintf(Outfp,"i=%d, c=%d, c=%d, c=%d \n",i,concove[3*i],concove[3*i+1],concove[3*i+2]);
      }
   }
if (eowrite!=0) {
   printf("\n");
   fprintf(Outfp,"\n");
   printf("histogram of number of cycles with attachment points \n");
   fprintf(Outfp,"histogram of number of cycles with attachment points \n");
   total=0;
   for (i=0; i<30; i++) {
      printf("i=%d, count=%d \n",i,ncyc[i]);
      fprintf(Outfp,"i=%d, count=%d \n",i,ncyc[i]);
      total=total+ncyc[i];
      }
   printf("total=%d \n",total);
   fprintf(Outfp,"total=%d \n",total);
   }
if ((outsel!=0)&&(outsel!=10)&(outsel!=11)&&(outsel!=12)&&(outsel!=13)&&(outsel!=14)&&(outsel!=15)&&(outsel!=9)&&(outsel!=16)&&(outsel!=17)&&(outsel!=18)&&(outsel!=19)) {
printf("\n");
fprintf(Outfp,"\n");
g=indx[0];
fprintf(Outfp,"index= %d,",g);
h=25;
for (i=1; i<h; i++) {
	fprintf(Outfp," %d,",indx[i]);
	if (indx[i]>g)
		g=indx[i];
   }
fprintf(Outfp,"\n");
fprintf(Outfp,"max/min values \n");
for (i=0; i<g; i++) {
	for (j=0; j<h; j++)
		fprintf(Outfp,"%d,",table6[i*h+j]);
	fprintf(Outfp,"\n");
   }
}
if (outsel==15) {
    fprintf(Outfp,"\n");
	fprintf(Outfp,"power of log(3)/log(2) greater than utmax/utmin (parity vector p)\n");
	for (i=0; i<indx[0]; i++) {
       fprintf(Outfp," %d,",table6[i]);
	   }
   }
if ((outsel==17)||(outsel==19)) {
    fprintf(Outfp,"\n");
	fprintf(Outfp,"second inequality (umin), a values, or c and umin values \n");
	for (i=0; i<indx[0]; i++) {
       fprintf(Outfp," %d,",table6[i]);
	   }
   }
if (outsel==18) {
    fprintf(Outfp,"\n");
	fprintf(Outfp,"histodp \n");
	for (i=0; i<indx[0]; i++) {
       fprintf(Outfp," %f,",table7[i]);
	   }
   }
if (outsel==9) {
    fprintf(Outfp,"\n");
	fprintf(Outfp,"miscellaneous \n");
	for (i=0; i<indx[0]; i++) {
       fprintf(Outfp," %d,",table6[i]);
	   }
   }
if ((outsel==10)||(outsel==11)||(outsel==12)||(outsel==13)||(outsel==14)||(outsel==16)) {
	fprintf(Outfp,"\n");
	fprintf(Outfp,"ratios greater than log(3)/log(2) \n");
	h=0;
	for (i=0; i<indx[0]; i++) {
       fprintf(Outfp," %f,",table7[i]);
	   if (h>9) {
		   fprintf(Outfp,"\n");
		   h=0;
	   }
	}
}
/*
if (eowrite==2) {
   fprintf(Outfp,"\n");
   fprintf(Outfp,"// (L,K) values of cycles \n");
   fprintf(Outfp,"unsigned int kl[%d*2]={ \n",outklind);
   wrap=0;
   for (i=0; i<outklind; i++) {
      fprintf(Outfp,"%d,%d,",outkl[2*i],outkl[2*i+1]);
      wrap=wrap+1;
      if (wrap==10) {
	 wrap=0;
	 fprintf(Outfp,"\n");
	 }
      }
   fprintf(Outfp,"\n");
   fprintf(Outfp,"unsigned int count[%d]={ \n",numbc);
   wrap=0;
   for (i=0; i<numbc; i++) {
      fprintf(Outfp,"%d,",outcnt[i]);
      wrap=wrap+1;
      if (wrap==40) {
	 wrap=0;
	 fprintf(Outfp,"\n");
	 }
      }
   fprintf(Outfp,"\n");
   } */
fprintf(Outfp,"\n");
if (outsel==0) {
   fprintf(Outfp,"first inequality, utmin, umin, tmin \n");
   fprintf(Outfp,"equality exceptions=%d %d %d \n",eqexcept[0],eqexcept[1],eqexcept[2]);
   fprintf(Outfp,"more evens counts=%d %d %d \n",utecnt,utcnt,tepcnt);
   fprintf(Outfp,"ln count=%d %d %d \n",utlncnt,lncnt,lintcnt);
   fprintf(Outfp,"evens equal odds (tmin)=%d \n",eqcnt);
   }
printf("exception counts= %d %d \n",ucnt,tcnt);
printf("ln counts= %d %d %d \n",utlncnt,lncnt,lintcnt);
printf("more evens counts=%d %d %d \n",utecnt,utcnt,tepcnt);
printf("evens equal odds=%d \n",eqcnt);
printf("LK count=%d \n",LKcnt);
for (i=0; i<20; i++) 
	printf(" %d %d %d \n",uthist[i],uhist[i],thist[i]);
printf("\n");
for (i=0; i<100; i++)
	printf(" %d \n",eqhist[i]);
printf("\n");
printf("ln count=%d \n",lingre);
for (i=0; i<20; i++)
	printf(" %d \n",grhist[i]);
printf("\n");
printf("more evens count=%d, %d %d \n",greven,gueven,gteven);
printf("more odds count=%d %d %d \n",grodd,guodd,gtodd);
printf("parity vector p exception count=%d %d %d \n",lingre,lnsky,lnskyt);
for (i=0; i<40; i++) 
	printf(" %d %d %d \n",grhist[i],guhist[i],gthist[i]);
if (outsel==0) {
	fprintf(Outfp,"\n");
	fprintf(Outfp,"second inequality, utmin, umin, tmin \n");
	fprintf(Outfp,"more evens count=%d %d %d \n",greven,gueven,gteven);
	fprintf(Outfp,"more odds count=%d %d %d \n",grodd,guodd,gtodd);
	fprintf(Outfp,"more evens, a!=1 count=%d \n",badeven);
	fprintf(Outfp,"parity vector p exception count=%d %d %d \n",lingre,lnsky,lnskyt);
	for (i=0; i<40; i++) 
	   fprintf(Outfp," %d %d %d\n",grhist[i],guhist[i],gthist[i]);
   }
printf("maximum power of log(3)/log(2) greater than utmax/utmin=%d \n",maxjj);
printf("d values \n");
for (i=0; i<100; i++) {
	printf(" %d %d %d %d \n",hist1n[i],hist1p[i],hist2n[i],hist2p[i]);
	if (outsel==0)
	   fprintf(Outfp," %d %d %d %d \n",hist1n[i],hist1p[i],hist2n[i],hist2p[i]);
   }
zskip:
fclose(Outfp);
return(0);
}
/*****************************************************************************/
/*									     */
/*  64/32 BIT DIVIDE (UNSIGNED) 					     */
/*  01/12/07 (dkc)							     */
/*									     */
/*****************************************************************************/
unsigned int lmbd(unsigned int mode, unsigned int a);
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
void div64_32(unsigned int *dividend, unsigned int *quotient,
	      unsigned int divisor) {
unsigned int i;
unsigned int shift,dshift,ashift,d0,d1,div0,div1,c,temp0,temp1,t0,t1;
d0=*dividend;
d1=*(dividend+1);
if ((d0==0)&&(d1<divisor)) {
   *quotient=0;
   *(quotient+1)=0;
   return;
   }

dshift=lmbd(1, divisor);
dshift=dshift+32;
ashift=lmbd(1, d0);
if (d0==0)
   ashift+=lmbd(1, d1);
shift=dshift-ashift;
if (shift<32) {
   div1=divisor<<shift;
   if (shift!=0)
      div0=divisor>>(32-shift);
   else 			      // added to get MSVC to work
      div0=0;			      //
   }
else {
   if (shift!=32)
      div0=divisor<<(shift-32);
   else 			      // added to get MSVC to work
      div0=divisor;
   div1=0;
   }
t0=~div0;
t1=~div1;
temp1=t1+1;
c=carry(t1,1,temp1);
t1=temp1;
t0=t0+c;
shift+=1;
for (i=0; i<shift; i++) {
   temp1=d1+t1;
   c=carry(d1,t1,temp1);
   temp0=d0+t0+c;
   if ((temp0>>31)==0) {
      d0=temp0<<1;
      if ((temp1>>31)!=0)
	 c=1;
      else
	 c=0;
      d0=d0+c;
      d1=temp1<<1;
      d1=d1+1;
      }
   else {
      d0=d0<<1;
      if ((d1>>31)!=0)
	 c=1;
      else
	 c=0;
      d0=d0+c;
      d1=d1<<1;
      }
   }
if (shift>32) {
   d0=d0<<(64-shift);
   d0=d0>>(64-shift);
   }
else {
   d0=0;
   if (shift!=32) {		// added to get MSVC to work
      d1=d1<<(32-shift);
      d1=d1>>(32-shift);
      }
   }
*quotient=d0;
*(quotient+1)=d1;
return;
}
/*****************************************************************************/
/*									     */
/*  EUCLIDEAN G.C.D.							     */
/*  01/12/07 (dkc)							     */
/*									     */
/*****************************************************************************/
unsigned int euclid(unsigned int d, unsigned int e) {
unsigned int a,b,temp;
a=d;
b=e;
if (b>a) {
   temp=a;
   a=b;
   b=temp;
   }
loop:
   temp=a-(a/b)*b;
   a=b;
   b=temp;
   if (b!=0) goto loop;
return(a);
}
/******************************************************************************/
/*									      */
/*  COMPUTE THE MINIMUM AND MAXIMUM ODD ELEMENTS IN A CYCLE		      */
/*  10/29/10 (dkc)							      */
/*									      */
/*  This C program computes the minimum element in a cycle using Halbeisen    */
/*  and Hungerbuhler's formula and computes the maximum odd element using an  */
/*  analogous formula.	"l" is the number of elements in the cycle (where the */
/*  element following an odd element i is (3*i+1)/2) and "n" is the number of */
/*  odd elements in the cycle.						      */
/*									      */
/******************************************************************************/
#include <math.h>
/*****************************************************************************/
/*									     */
/*  CARRY								     */
/*  01/12/07 (dkc)							     */
/*									     */
/*****************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum) {
unsigned int c;
if ((a&b)>>31!=0)
   c=1;
else {
   if ((a|b)>>31==0)
      c=0;
   else {
      if (sum>=0x80000000)
	 c=0;
      else
	 c=1;
      }
   }
return c;
}
/*****************************************************************************/
/*									     */
/*  LEFT-MOST BIT DETECTION						     */
/*  01/12/07 (dkc)							     */
/*									     */
/*****************************************************************************/
unsigned int lmbd(unsigned int mode, unsigned int a) {
unsigned int i,mask,count;
if (mode==0)
   a=~a;
if (a==0)
   return(32);
count=0;
mask=0x80000000;
for (i=0; i<32; i++) {
   if ((a&mask)!=0)
      break;
   count+=1;
   mask>>=1;
   }
return(count);
}
/*****************************************************************************/
/*									     */
/*  128/64 BIT DIVIDE (UNSIGNED)					     */
/*  01/12/07 (dkc)							     */
/*									     */
/*****************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
unsigned int lmbd(unsigned int mode, unsigned int a);
void div128_64(unsigned int a0, unsigned int a1, unsigned int a2,
	       unsigned int a3, unsigned int *quotient, unsigned int d2,
	       unsigned int d3) {
unsigned int i,d0,d1,dshift,ashift,count,flag;
unsigned int shift,c,c0,c1,c2,temp,temp0,temp1,temp2,temp3;

if (d2==0) {
   if ((a0==0)&&(a1==0)&&(a2==0)&&(a3<d3)) {
      *quotient=0;
      *(quotient+1)=0;
      *(quotient+2)=0;
      *(quotient+3)=0;
      return;
      }
   }
else {
   if ((a0==0)&&(a1==0)&&(a2<d2)) {
      *quotient=0;
      *(quotient+1)=0;
      *(quotient+2)=0;
      *(quotient+3)=0;
      return;
      }
   }
dshift=lmbd(1,d2);
if (d2==0)
   dshift+=lmbd(1,d3);
dshift+=64;

ashift=lmbd(1,a0);
if (a0==0)
   ashift+=lmbd(1,a1);
if ((a0|a1)==0)
   ashift+=lmbd(1,a2);
if ((a0|a1|a2)==0)
   ashift+=lmbd(1,a3);

shift=dshift-ashift;
count=shift+1;
d0=0;
d1=0;
if (shift<32) {
   if (shift!=0) {
      d1=d2>>(32-shift);
      d2=(d2<<shift)|(d3>>(32-shift));
      }
   else
      d1=0;		       // added to get MSVC to work
   d3=d3<<shift;
   flag=3;
   shift=32-shift;
   }
else {
   shift=shift-32;
   d1=d2;
   d2=d3;
   d3=0;
   if (shift<32) {
      if (shift!=0) {
	 d0=d1>>(32-shift);
	 d1=(d1<<shift)|(d2>>(32-shift));
	 }
      else
	 d0=0;		       // added to get MSVC to work
      d2=d2<<shift;
      flag=2;
      shift=32-shift;
      }
   else {
      shift=shift-32;
      d0=d1;
      d1=d2;
      d2=0;
      if (shift<32) {
	 if (shift!=0)	       // added to get MSVC to work
	    d0=(d0<<shift)|(d1>>(32-shift));
	 d1=d1<<shift;
	 flag=1;
	 shift=32-shift;
	 }
      else {
	 shift=shift-32;
	 d0=d1;
	 d1=0;
	 d0=d0<<shift;
	 flag=0;
	 shift=32-shift;
	 }
      }
   }

d0=~d0;
d1=~d1;
d2=~d2;
d3=~d3;
temp=d3+1;
c=carry(d3,1,temp);
d3=temp;

temp=d2+c;
c=carry(d2,c,temp);
d2=temp;

temp=d1+c;
c=carry(d1,c,temp);
d1=temp;

d0=d0+c;
for (i=0; i<count; i++) {
   temp3=a3+d3;
   c2=carry(a3,d3,temp3);

   temp=a2+c2;
   c1=carry(a2,c2,temp);

   temp2=temp+d2;
   c1+=carry(temp,d2,temp2);

   temp=a1+c1;
   c0=carry(a1,c1,temp);

   temp1=temp+d1;
   c0+=carry(temp,d1,temp1);

   temp0=a0+d0+c0;
   if ((temp0>>31)==0) {
      a0=temp0<<1;
      if ((temp1>>31)!=0)
	 c=1;
      else
	 c=0;
      a0=a0+c;
      a1=temp1<<1;
      if ((temp2>>31)!=0)
	 c=1;
      else
	 c=0;
      a1=a1+c;
      a2=temp2<<1;
      if ((temp3>>31)!=0)
	 c=1;
      else
	 c=0;
      a2=a2+c;
      a3=temp3<<1;
      a3=a3+1;
      }
   else {
      a0=a0<<1;
      if ((a1>>31)!=0)
	 c=1;
      else
	 c=0;
      a0=a0+c;

      a1=a1<<1;
      if ((a2>>31)!=0)
	 c=1;
      else
	 c=0;
      a1=a1+c;

      a2=a2<<1;
      if ((a3>>31)!=0)
	 c=1;
      else
	 c=0;
      a2=a2+c;

      a3=a3<<1;
      }
   }
shift=shift-1;
if (flag==3) {
   a0=0;
   a1=0;
   a2=0;
   a3=a3<<shift;
   a3=a3>>shift;
   }
else {
   if (flag==2) {
      a0=0;
      a1=0;
      a2=a2<<shift;
      a2=a2>>shift;
      }
   else {
      if (flag==1) {
	 a0=0;
	 a1=a1<<shift;
	 a1=a1>>shift;
	 }
      else {
	 a0=a0<<shift;
	 a0=a0>>shift;
	 }
      }
   }
*quotient=a0;
*(quotient+1)=a1;
*(quotient+2)=a2;
*(quotient+3)=a3;
return;
}
/*****************************************************************************/
/*									     */
/*  LEFT-SHIFT 32*N BITS						     */
/*  10/16/09 (dkc)							     */
/*									     */
/*****************************************************************************/
void lshiftn(unsigned int *a, unsigned int *b, unsigned int shift, unsigned
	     int n) {
unsigned int i;
for (i=0; i<n; i++)
   *(b+i)=*(a+i);
while (shift>31) {
   for (i=0; i<n-1; i++)
      *(b+i)=*(b+i+1);
   *(b+n-1)=0;
   shift=shift-32;
   }
if (shift==0)
   return;
for (i=0; i<n-1; i++)
   *(b+i)=(*(b+i)<<shift)|(*(b+i+1)>>(32-shift));
*(b+n-1)=*(b+n-1)<<shift;
return;
}
/*****************************************************************************/
/*									     */
/*  RIGHT-SHIFT 32*N BITS						     */
/*  04/02/10 (dkc)							     */
/*									     */
/*****************************************************************************/
void shiftn(unsigned int *a, unsigned int *b, unsigned int shift, unsigned
	    int n) {
unsigned int i;
for (i=0; i<n; i++)
   *(b+i)=*(a+i);
while (shift>31) {
   for (i=n-1; i>0; i--)
      *(b+i)=*(b+i-1);
   *b=0;
   shift=shift-32;
   }
if (shift==0)
   return;
for (i=n-1; i>0; i--)
   *(b+i)=(*(b+i)>>shift)|(*(b+i-1)<<(32-shift));
*b=*b>>shift;
return;
}
/******************************************************************************
*									      *
*  NORMALIZE N WORDS							   *
*  04/03/10 (dkc)							      *
*									      *
******************************************************************************/
unsigned int normn(unsigned int *a, unsigned int n) {
unsigned int i,shift,mask;
i=0;
while ((*(a+i)==0)&&(i<n))
   i=i+1;
shift=32*i;
if (i==n)
   return shift;
mask=0x80000000;
while ((*(a+i)&mask)==0) {
   shift=shift+1;
   mask=mask>>1;
   }
return shift;
}
/******************************************************************************
*									      *
*  N-WORD ADD								      *
*  04/19/10 (dkc)							      *
*									      *
******************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
void addn(unsigned int *a, unsigned int *b, unsigned int n) {
unsigned int i,s;
unsigned int c[8192];
if (n>8192)
   return;
for (i=n-1; i>0; i--) {
   s=*(a+i)+*(b+i);
   c[i]=carry(*(a+i),*(b+i),s);
   *(b+i)=s;
   }
*b=*a+*b;

for (i=n-2; i>0; i--) {
   s=*(b+i)+c[i+1];
   c[i]+=carry(*(b+i),c[i+1],s);
   *(b+i)=s;
   }
*b=*b+c[1];
return;
}
/******************************************************************************
*									      *
*  N-WORD SUBTRACT							      *
*  04/19/10 (dkc)							      *
*									      *
******************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
void subn(unsigned int *a, unsigned int *b, unsigned int n) {
unsigned int i,s,d;
unsigned int c[8192];
if (n>8192)
   return;
for (i=0; i<n; i++) {
   s=*(b+i);
   *(b+i)=~s;
   }

d=1;
for (i=n-1; i>0; i--) {
   s=*(b+i)+d;
   d=carry(*(b+i),d,s);
   *(b+i)=s;
   }
*b=*b+d;

for (i=n-1; i>0; i--) {
   s=*(a+i)+*(b+i);
   c[i]=carry(*(a+i),*(b+i),s);
   *(b+i)=s;
   }
*b=*a+*b;

for (i=n-2; i>0; i--) {
   s=*(b+i)+c[i+1];
   c[i]+=carry(*(b+i),c[i+1],s);
   *(b+i)=s;
   }
*b=*b+c[1];
return;
}
/******************************************************************************
*									      *
*  32*N-BIT COPY							      *
*  04/02/10 (dkc)							      *
*									      *
******************************************************************************/
void copyn(unsigned int *a, unsigned int *b, unsigned int n) {
unsigned int i;
for (i=0; i<n; i++)
   *(b+i)=*(a+i);
return;
}
/******************************************************************************
*									      *
*  SET THE LAST OF N WORDS						      *
*  04/02/10 (dkc)							      *
*									      *
******************************************************************************/
void setn(unsigned int *a, unsigned int b, unsigned int n) {
unsigned int i;
for (i=0; i<n-1; i++)
   *(a+i)=0;
*(a+n-1)=b;
return;
}
/******************************************************************************
*									      *
*  "OR" N WORDS TOGETHER                                                      *
*  04/02/10 (dkc)							      *
*									      *
******************************************************************************/
unsigned int orn(unsigned int *a, unsigned int n) {
unsigned int i,b;
b=*a;
for (i=1; i<n; i++)
   b=b|*(a+i);
return b;
}
unsigned int halbhung(unsigned int l, unsigned int n, unsigned int *M,
		      unsigned int *N, unsigned int *sv, unsigned int *A,
		      unsigned int *B, unsigned int *C, unsigned int *D,
		      unsigned int *L, unsigned int *S, unsigned int m) {
unsigned int h,i,j,o,a,b,offset,count,temp,maxoff;
unsigned int flag1,sign;
int g;
      count=0;				   // odd element count
      setn(D, 0, m);			   // clear maximum odd element
//
// compute rotated parity vector using ceiling function
//
      maxoff=0;
      for (offset=0; offset<l; offset++) {
	 for (j=1; j<=l; j++) {
	    a=j*n;
	    if (a==((a/l)*l))
	       a=a/l;
	    else
	       a=(a/l)+1;
	    b=(j-1)*n;
	    if (b==((b/l)*l))
	       b=b/l;
	    else
	       b=(b/l)+1;
	    temp=j+offset;
	    if (temp>l)
	       temp=temp-l;
	    sv[temp-1]=a-b;
	    }
	 if (sv[0]==0)			   // continue if even element
	    continue;
//
// compute odd element
//
	 setn(S, 0, m);
	 temp=0;
	 for (j=1; j<=l; j++) {
	    if (sv[j-1]!=0) {
	       setn(A, 1, m);
	       for (h=0; h<(n-temp-1); h++) {
		  copyn(A, B, m);
		  addn(A, A, m);
		  addn(B, A, m);
		  }
	       lshiftn(A, B, j-1, m);
	       addn(B, S, m);
	       if ((S[0]&0xc0000000)!=0) {
		  return(1);
		  }
	       }
	    temp=temp+sv[j];
	    }
//
// find maximum odd element
//
	 copyn(S, A, m);
	 subn(D, A, m);
	 if ((A[0]&0x80000000)!=0) {
	    copyn(S, D, m);
	    maxoff=offset;
	    }
//
// save odd element
//
	 if (offset==0)
	    copyn(S, L, m);
	 count=count+1; 		   // increment odd element count
	 }
      if (count!=n) {
	 return(2);
	 }
//
// compute 2^(K+L)-3^K
//
      setn(A, 1, m);
      for (i=0; i<n; i++) {	// 3**K
	 copyn(A, B, m);
	 addn(A, A, m);
	 addn(B, A, m);
	 }
      setn(B, 1, m);
      lshiftn(B, C, l, m);	// 2**(K+L)
      subn(C, A, m);		// 2**(K+L)-3**K
      sign=0;
      if ((A[0]&0x7fffffff)!=0) {  // |2**(K+L)-3**K|
	 setn(B, 0, m);
	 subn(B, A, m);
	 sign=1;
	 }
//
      copyn(L, S, m);
      if ((S[0]&0xffc00000)!=0) {
	 return(3);
	 }
      lshiftn(S, C, 2, m);
      flag1=0;
      o=normn(A, m);			   // count to normalize divisor
      g=(int)(32*m)-(int)o-62;		   // right shift amount
      if (g>0) {
	 shiftn(C, S, g, m);
	 shiftn(A, B, g, m);
	 flag1=g;
	 }
      else {
	 copyn(C, S, m);
	 copyn(A, B, m);
	 }
      o=orn(S, m-4);
      if ((o|(S[m-4]&0xc0000000))!=0) {
	 return(4);
	 }
      div128_64(S[m-4],S[m-3],S[m-2],S[m-1],M,B[m-2],B[m-1]);	 // minimum/(2**l-3**n)
//
      copyn(D, S, m);
      if ((S[0]&0xffc00000)!=0) {
	 return(5);
	 }
      lshiftn(S, C, 2, m);
      if (g>0)
	 shiftn(C, S, g, m);
      else
	 copyn(C, S, m);
      o=orn(S, m-4);
      if ((o|(S[m-4]&0xc0000000))!=0) {
	 return(6);
	 }
      div128_64(S[m-4],S[m-3],S[m-2],S[m-1],N,B[m-2],B[m-1]);	 // maximum/(2**l-3**n)
return(0);
}
/******************************************************************************
*									      *
*  64-BIT SUBTRACT							      *
*  01/12/07 (dkc)							      *
*									      *
******************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
void sub64(unsigned int *a, unsigned int *b) {
unsigned int high0,high1,low0,low1,templo,temphi,temp,c;
high0=*a;
low0=*(a+1);
high1=*b;
low1=*(b+1);

low1=~low1;
high1=~high1;
temp=low1+1;
c=carry(low1,1,temp);
low1=temp;
high1+=c;

templo=low0+low1;
c=carry(low0,low1,templo);
temphi=high0+high1+c;
*b=temphi;
*(b+1)=templo;
return;
}
/******************************************************************************
*									      *
*  64-BIT ADD								      *
*  01/12/07 (dkc)							      *
*									      *
******************************************************************************/
unsigned int carry(unsigned int a, unsigned int b, unsigned int sum);
void add64(unsigned int *a, unsigned int *b) {
unsigned int high0,high1,low0,low1,templo,temphi,c;
high0=*a;
low0=*(a+1);
high1=*b;
low1=*(b+1);
templo=low0+low1;
c=carry(low0,low1,templo);
temphi=high0+high1+c;
*b=temphi;
*(b+1)=templo;
return;
}