New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8139 for branches/2017 – NEMO

Changeset 8139 for branches/2017


Ignore:
Timestamp:
2017-06-05T12:05:17+02:00 (7 years ago)
Author:
timgraham
Message:

Updates to conv library as received from Laurent - required for vertical refinement

Location:
branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/DiversListe.c

    r5656 r8139  
    479479        strcpy(newvar->var->v_nomvar,name); 
    480480        strcpy(newvar->var->v_modulename,curmodulename); 
     481        if (strcasecmp(curmodulename,"")) 
     482        { 
     483        newvar->var->v_module=1; 
     484        } 
    481485        strcpy(newvar->var->v_subroutinename,subroutinename); 
    482486        strcpy(newvar->var->v_commoninfile,cur_filename); 
     
    522526 
    523527            Init_Variable(newvar->var); 
    524  
    525528            newvar->var->v_save = 1; 
    526529            strcpy(newvar->var->v_nomvar,parcours->var->v_nomvar); 
     530            strcpy(newvar->var->v_dimchar,parcours->var->v_dimchar); 
    527531            strcpy(newvar->var->v_modulename,curmodulename); 
    528532            strcpy(newvar->var->v_subroutinename,subroutinename); 
     
    531535 
    532536            newvar->var->v_nbdim = parcours->var->v_nbdim; 
     537            strcpy(newvar->var->v_typevar,parcours->var->v_typevar); 
     538            strcpy(newvar->var->v_precision,parcours->var->v_precision); 
    533539            newvar->var->v_catvar = parcours->var->v_catvar; 
    534540            newvar->var->v_dimension = parcours->var->v_dimension; 
    535541            newvar->var->v_dimensiongiven=parcours->var->v_dimensiongiven; 
     542            newvar->var->v_allocatable = parcours->var->v_allocatable; 
     543            newvar->var->v_initialvalue = parcours->var->v_initialvalue; 
     544            newvar->var->v_initialvalue_array = parcours->var->v_initialvalue_array; 
    536545            newvar->suiv = List_Save_Var; 
    537546            List_Save_Var = newvar; 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/Makefile

    r5656 r8139  
    6262 
    6363clean: 
    64 #  $(MAKE) -f Makefile.lex clean 
    6564   $(RM) *.o conv 
    6665    
     66clean-all: clean 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/SubLoopCreation.c

    r5656 r8139  
    5858      if ( todebug == 1 ) printf("> enter in WriteBeginof_SubLoop : IsTabvarsUseInArgument_0() == 1\n"); 
    5959      /* we should add the use agrif_uti l if it is necessary                 */ 
     60      if (todebug == 1) fprintf(fortran_out,"\n      !DEBUG: Avant WriteHeadofSubroutineLoop\n"); 
    6061      WriteHeadofSubroutineLoop(); 
     62      if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Apres WriteHeadofSubroutineLoop\n"); 
     63      fflush(fortran_out); 
     64      if (todebug == 1) { 
     65      fprintf(fortran_out,"      !DEBUG: Avant WriteUsemoduleDeclaration\n"); 
     66      } 
     67       
    6168      WriteUsemoduleDeclaration(subroutinename); 
    6269      if ( ImplicitNoneInSubroutine() == 1 ) fprintf(fortran_out, "      implicit none\n"); 
    6370      WriteIncludeDeclaration(fortran_out); 
     71      if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Avant WriteIncludeDeclaration\n"); 
    6472      /*                                                                      */ 
    6573      /* We should write once the declaration of tables (extract              */ 
     
    7785      AddUseAgrifUtil_0(fortran_out); 
    7886      WriteUsemoduleDeclaration(subroutinename); 
     87      if ( ImplicitNoneInSubroutine() == 1 ) fprintf(fortran_out, "      implicit none\n"); 
    7988      WriteIncludeDeclaration(fortran_out); 
    80       if ( ImplicitNoneInSubroutine() == 1 ) fprintf(fortran_out, "      implicit none\n"); 
    8189      WriteLocalParamDeclaration(fortran_out); 
    8290      WriteArgumentDeclaration_beforecall(); 
     91      if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Avant WriteFunctionDeclaration\n"); 
    8392      if ( functiondeclarationisdone == 0 ) WriteFunctionDeclaration(fortran_out, 1); 
    8493/*    writesub_loopdeclaration_scalar(List_SubroutineArgument_Var,fortran_out); 
     
    102111/*                                                                            */ 
    103112/******************************************************************************/ 
    104 void WriteVariablelist_subloop(char *ligne) 
     113void WriteVariablelist_subloop(char **ligne, size_t *line_length) 
    105114{ 
    106115   listvar *parcours; 
     
    117126      if ( !strcasecmp(parcours->var->v_subroutinename,subroutinename) ) 
    118127      { 
    119          if ( didvariableadded == 1 )   strcat(ligne,","); 
    120          strcat(ligne,parcours->var->v_nomvar); 
     128         if ( didvariableadded == 1 )   strcat(*ligne,","); 
     129         if ( (strlen(*ligne)+strlen(parcours->var->v_nomvar)+100) > *line_length ) 
     130         { 
     131            *line_length += LONG_M; 
     132            *ligne = realloc( *ligne, *line_length*sizeof(char) ); 
     133         } 
     134         strcat(*ligne,parcours->var->v_nomvar); 
    121135         didvariableadded = 1; 
    122136      } 
     
    128142      if ( !strcasecmp(parcours->var->v_subroutinename,subroutinename) ) 
    129143      { 
    130          if ( didvariableadded == 1 )   strcat(ligne,","); 
    131          strcat(ligne,parcours->var->v_nomvar); 
     144         if ( didvariableadded == 1 )   strcat(*ligne,","); 
     145         if ( (strlen(*ligne)+strlen(parcours->var->v_nomvar)+100) > *line_length ) 
     146         { 
     147            *line_length += LONG_M; 
     148            *ligne = realloc( *ligne, *line_length*sizeof(char) ); 
     149         } 
     150         strcat(*ligne,parcours->var->v_nomvar); 
    132151         didvariableadded = 1; 
    133152      } 
     
    152171/*                                                                            */ 
    153172/******************************************************************************/ 
    154 void WriteVariablelist_subloop_Call(char **ligne, size_t line_length) 
     173void WriteVariablelist_subloop_Call(char **ligne, size_t *line_length) 
    155174{ 
    156175   listvar *parcours; 
    157176   char ligne2[LONG_M]; 
    158177   int i; 
    159    size_t cur_length; 
    160  
    161    cur_length = line_length; 
    162178 
    163179   if ( todebug == 1 ) printf("> enter in WriteVariablelist_subloop_Call\n"); 
     
    170186      /*    in the output file                                                */ 
    171187      if ( !strcasecmp(parcours->var->v_subroutinename,subroutinename)  && 
    172            (parcours->var->v_pointerdeclare == 0 || !strcasecmp(parcours->var->v_typevar,"type")) 
     188           (parcours->var->v_pointerdeclare >= 0 || !strcasecmp(parcours->var->v_typevar,"type")) 
    173189         ) 
    174190      { 
    175191         if ( didvariableadded == 1 )   strcat(*ligne,","); 
    176192         const char *vres = vargridcurgridtabvars(parcours->var, 0); 
    177          if ( (strlen(*ligne)+strlen(vres)+100) > cur_length ) 
     193         if ( (strlen(*ligne)+strlen(parcours->var->v_nomvar)+100) > *line_length ) 
    178194         { 
    179             cur_length += LONG_M; 
    180             *ligne = realloc( *ligne, cur_length*sizeof(char) ); 
     195            *line_length += LONG_M; 
     196            *ligne = realloc( *ligne, *line_length*sizeof(char) ); 
    181197         } 
    182198         strcat(*ligne, vres); 
     
    186202         if (  SubloopScalar != 0 && 
    187203               ( 
    188                (parcours->var->v_pointerdeclare == 0 || !strcasecmp(parcours->var->v_typevar,"type"))) && 
     204               (parcours->var->v_pointerdeclare >= 0 || !strcasecmp(parcours->var->v_typevar,"type"))) && 
    189205               parcours->var->v_nbdim != 0 ) 
    190206         { 
     
    231247/*                                                                            */ 
    232248/******************************************************************************/ 
    233 void WriteVariablelist_subloop_Def(char *ligne) 
     249void WriteVariablelist_subloop_Def(char **ligne, size_t *line_length) 
    234250{ 
    235251   listvar *parcours; 
     
    244260      /*    in the output file                                                */ 
    245261      if ( !strcasecmp(parcours->var->v_subroutinename,subroutinename)  && 
    246            (parcours->var->v_pointerdeclare == 0 || !strcasecmp(parcours->var->v_typevar,"type")) ) 
     262           (parcours->var->v_pointerdeclare >= 0 || !strcasecmp(parcours->var->v_typevar,"type")) ) 
    247263      { 
    248          if ( didvariableadded == 1 )   strcat(ligne,","); 
    249          strcat(ligne,parcours->var->v_nomvar); 
     264         if ( didvariableadded == 1 )   strcat(*ligne,","); 
     265         if ( (strlen(*ligne)+strlen(parcours->var->v_nomvar)+100) > *line_length ) 
     266         { 
     267            *line_length += LONG_M; 
     268            *ligne = realloc( *ligne, *line_length*sizeof(char) ); 
     269         } 
     270         strcat(*ligne,parcours->var->v_nomvar); 
    250271         didvariableadded = 1; 
    251272      } 
    252273      parcours = parcours -> suiv; 
    253274   } 
    254    Save_Length(ligne,41); 
     275 
    255276   if ( todebug == 1 ) printf("<   out of WriteVariablelist_subloop_Def\n"); 
    256277} 
     
    272293void WriteHeadofSubroutineLoop() 
    273294{ 
    274    char ligne[LONG_M]; 
     295   char *ligne; 
    275296   FILE * subloop; 
    276  
    277    if ( todebug == 1 ) printf("> enter in WriteHeadofSubroutineLoop\n"); 
     297   size_t line_length; 
     298 
     299   ligne = (char*) calloc(LONG_M, sizeof(char)); 
     300   line_length = LONG_M; 
     301 
     302   if ( todebug == 1 ) printf("> enter in WriteHeadofSubroutineLoop subroutine %s\n",subroutinename); 
    278303   tofich(fortran_out,"\n",1); 
     304 
    279305   /* Open this newfile                                                       */ 
    280306   sprintf(ligne,"Sub_Loop_%s.h",subroutinename); 
     
    283309   if (isrecursive) sprintf(ligne,"recursive subroutine Sub_Loop_%s(",subroutinename); 
    284310   else             sprintf(ligne,"subroutine Sub_Loop_%s(",subroutinename); 
     311 
    285312   /*                                                                         */ 
    286    WriteVariablelist_subloop(ligne); 
    287    WriteVariablelist_subloop_Def(ligne); 
     313   if (todebug == 1) fprintf(subloop,"      !DEBUG: Avant WriteVariablelist_subloop\n"); 
     314   WriteVariablelist_subloop(&ligne,&line_length); 
     315   WriteVariablelist_subloop_Def(&ligne,&line_length); 
    288316   /*                                                                         */ 
    289317   strcat(ligne,")"); 
    290318   tofich(subloop,ligne,1); 
     319 
    291320   /* if USE agrif_Uti l should be add                                        */ 
     321   if (todebug == 1) fprintf(subloop,"      !DEBUG: Avant AddUseAgrifUtil_0\n"); 
    292322   AddUseAgrifUtil_0(subloop); 
     323 
    293324   /*                                                                         */ 
     325   if (todebug == 1) fprintf(subloop,"      !DEBUG: Apres AddUseAgrifUtil_0\n"); 
    294326   oldfortran_out = fortran_out; 
    295327   fortran_out = subloop; 
     328    
    296329   if ( todebug == 1 ) printf("<   out of WriteHeadofSubroutineLoop\n"); 
     330    
     331   free(ligne); 
    297332} 
    298333 
     
    313348{ 
    314349   char *ligne; 
     350   size_t line_length; 
    315351 
    316352   if ( firstpass == 1 )    return; 
     
    318354 
    319355   ligne = (char*) calloc(LONG_M, sizeof(char)); 
     356   line_length = LONG_M; 
    320357 
    321358   if ( IsTabvarsUseInArgument_0() == 1 ) 
     
    331368 
    332369      AddUseAgrifUtilBeforeCall_0(fortran_out); 
     370            
    333371      WriteArgumentDeclaration_beforecall(); 
     372      if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Avant WriteFunctionDeclaration\n"); 
     373 
    334374      if ( functiondeclarationisdone == 0 ) WriteFunctionDeclaration(fortran_out, 0); 
    335375      if ( !strcasecmp(subofagrifinitgrids,subroutinename) ) 
     
    339379      sprintf(ligne,"  call Sub_Loop_%s(",subroutinename); 
    340380      /* Write the list of the local variables used in this new subroutine    */ 
    341       WriteVariablelist_subloop(ligne); 
     381      WriteVariablelist_subloop(&ligne,&line_length); 
    342382      /* Write the list of the global tables used in this new subroutine      */ 
    343383      /*    in doloop                                                         */ 
    344       WriteVariablelist_subloop_Call(&ligne, LONG_M); 
     384      WriteVariablelist_subloop_Call(&ligne, &line_length); 
    345385      /* Close the parenthesis of the new subroutine called                   */ 
    346386      strcat(ligne,")\n"); 
     
    358398    oldfortran_out = (FILE *)NULL; 
    359399    if ( todebug == 1 ) printf("<   out of closeandcallsubloopandincludeit_0\n"); 
     400     
     401    free(ligne); 
    360402} 
    361403 
     
    363405{ 
    364406   char *ligne; 
     407   size_t line_length; 
    365408 
    366409   if ( todebug == 1 ) printf("> enter in closeandcallsubloop_contains_0\n"); 
     
    368411   { 
    369412      ligne = (char*) calloc(LONG_M, sizeof(char)); 
     413      line_length = LONG_M; 
    370414      RemoveWordCUR_0(fortran_out,9);   // Remove word 'contains' 
    371415      tofich(fortran_out,"\n",1); 
     
    376420 
    377421      AddUseAgrifUtilBeforeCall_0(fortran_out); 
    378  
    379422      if ( ImplicitNoneInSubroutine() == 1 ) fprintf(fortran_out, "      implicit none\n"); 
    380423      WriteLocalParamDeclaration(fortran_out); 
     424            printf("ICI3\n"); 
    381425      WriteArgumentDeclaration_beforecall(); 
     426      if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Avant WriteFunctionDeclaration\n"); 
    382427      if ( functiondeclarationisdone == 0 ) WriteFunctionDeclaration(fortran_out, 0); 
    383428/*      WriteSubroutineDeclaration(0);*/ 
     
    388433      sprintf(ligne,"  call Sub_Loop_%s(",subroutinename); 
    389434      /* Write the list of the local variables used in this new subroutine    */ 
    390       WriteVariablelist_subloop(ligne); 
     435      WriteVariablelist_subloop(&ligne,&line_length); 
    391436      /* Write the list of the global tables used in this new subroutine      */ 
    392437      /*    in doloop                                                         */ 
    393       WriteVariablelist_subloop_Call(&ligne, LONG_M); 
     438      WriteVariablelist_subloop_Call(&ligne, &line_length); 
    394439      /* Close the parenthesis of the new subroutine called                   */ 
    395440      strcat(ligne,")\n"); 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/UtilAgrif.c

    r5656 r8139  
    150150    { 
    151151        // remove the variable 
    152         RemoveWordCUR_0(fortran_out,lengthname); 
     152 //       RemoveWordCUR_0(fortran_out,lengthname); 
    153153        // then write the new name 
    154         if ( inagrifcallargument == 1 && agrif_parentcall == 0 ) 
    155             fprintf(fortran_out,"%d",newvar->var->v_indicetabvars); 
    156         else 
    157         { 
    158             if ( retour77 == 0 ) 
    159                 fprintf(fortran_out,"Agrif_%s & \n      ", tabvarsname(newvar->var)); 
    160             else 
    161             { 
    162                fprintf(fortran_out,"Agrif_%s", tabvarsname(newvar->var)); 
    163                fprintf(fortran_out," \n     & "); 
    164             } 
    165             fprintf(fortran_out,"%s",vargridcurgridtabvarswithoutAgrif_Gr(newvar->var)); 
    166         } 
     154 //        if ( inagrifcallargument == 1 && agrif_parentcall == 0 ) 
     155//             fprintf(fortran_out,"%d",newvar->var->v_indicetabvars); 
     156//         else 
     157//         { 
     158//             if ( retour77 == 0 ) 
     159//                 fprintf(fortran_out,"Agrif_%s & \n      ", tabvarsname(newvar->var)); 
     160//             else 
     161//             { 
     162//                fprintf(fortran_out,"Agrif_%s", tabvarsname(newvar->var)); 
     163//                fprintf(fortran_out," \n     & "); 
     164//             } 
     165//             fprintf(fortran_out,"%s",vargridcurgridtabvarswithoutAgrif_Gr(newvar->var)); 
     166//         } 
    167167    } 
    168168    else 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/UtilFortran.c

    r5656 r8139  
    423423                                                                  doloopout = 1; 
    424424         else parcours = parcours->suiv; 
     425         
    425426      } 
    426427      if (  doloopout == 0 ) out = 0; 
     
    591592    out = 0; 
    592593 
     594    return (out == 0); 
     595     
    593596    if ( !strcasecmp(ident,"size") || 
    594597         !strcasecmp(ident,"if")   || 
     
    596599         !strcasecmp(ident,"min")  ) 
    597600    { 
     601    printf("ident = %s\n",ident); 
    598602        newvar = List_SubroutineDeclaration_Var; 
    599603        while ( newvar && out == 0 ) 
     
    611615            while ( newvar && out == 0 ) 
    612616            { 
     617            printf("llll = %s\n",newvar->var->v_nomvar); 
    613618                if ( !strcasecmp(ident, newvar->var->v_nomvar) ) out = 1; 
    614619                newvar = newvar -> suiv ; 
     
    617622    } 
    618623    return (out == 0); 
     624} 
     625 
     626/* removenewline */ 
     627/* REMOVE UNWANTED character */ 
     628/* from a NAME{NEWLINE77]NAME flex match */ 
     629 
     630void removenewline(char *nom) 
     631{ 
     632char temp_nom[LONG_VNAME]; 
     633int size_nom,i,j; 
     634 
     635size_nom=strlen(nom); 
     636 
     637j=0; 
     638for (i=0;i<size_nom;) 
     639{ 
     640if (nom[i]=='\n') 
     641{ 
     642/* REMOVE RETURN - blank and column 6 character */ 
     643i=i+7; 
     644} 
     645else if (nom[i]==' ' || nom[i]=='\t') 
     646{ 
     647i=i+1; 
     648} 
     649else 
     650{ 
     651temp_nom[j]=nom[i]; 
     652j++; 
     653i++; 
     654} 
     655} 
     656temp_nom[j]='\0'; 
     657 
     658strcpy(nom,temp_nom); 
    619659} 
    620660 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/UtilListe.c

    r5656 r8139  
    5252   strcpy(var->v_subroutinename     , ""); 
    5353   strcpy(var->v_precision          , ""); 
    54    strcpy(var->v_initialvalue       , ""); 
     54   var->v_initialvalue = (listname *)NULL; 
     55   var->v_initialvalue_array = (listname *)NULL; 
     56   var->v_do_loop = NULL; 
    5557   strcpy(var->v_IntentSpec         , ""); 
    5658   strcpy(var->v_readedlistdimension, ""); 
     
    103105            newvar->suiv = l; 
    104106        } 
     107        newvar=glob; 
     108        while (newvar) 
     109        { 
     110        newvar=newvar->suiv; 
     111        } 
    105112    } 
    106113    return glob; 
     
    117124void CreateAndFillin_Curvar(const char *type, variable *curvar) 
    118125{ 
     126listname *newvar; 
     127 
    119128    if ( !strcasecmp(type, "character") && strcasecmp(CharacterSize, "") ) 
    120129    { 
     
    150159    if (InitialValueGiven == 1 ) 
    151160    { 
    152         strcpy(curvar->v_initialvalue,InitValue); 
     161    curvar->v_initialvalue=Insertname(curvar->v_initialvalue,InitValue,0); 
     162     
     163//        strcpy(curvar->v_initialvalue,InitValue); 
     164         
    153165        Save_Length(InitValue,14); 
    154166    } 
     
    481493      v = newvar->var; 
    482494      strcpy(v->v_typevar,nom); 
     495       
    483496      v->v_catvar = get_cat_var(v); 
     497 
    484498      newvar = newvar->suiv; 
    485499   } 
     
    502516   { 
    503517      v=newvar->var; 
    504       printf("nom = %s, allocatable = %d dim = %s\n",v->v_nomvar,v->v_allocatable,(v->v_dimension)->dim.last); 
    505518      newvar=newvar->suiv; 
    506519   } 
     
    564577} 
    565578 
     579int testandextractfromlist(listname **lin, char*nom) 
     580{ 
     581listname *newvar; 
     582int val_1, val_2; 
     583int return_stmt; 
     584 
     585printname(*lin); 
     586if (!(*lin)) 
     587 { 
     588  return 0; 
     589 } 
     590else 
     591 { 
     592 sscanf(nom,"%d",&val_1); 
     593 sscanf((*lin)->n_name,"%d",&val_2); 
     594 if (val_1==val_2) 
     595   { 
     596/*   newvar = *lin; 
     597   *lin = (*lin)->suiv; 
     598   free(newvar);*/ 
     599   /* continue to remove while the label stays the same */ 
     600/*   return_stmt=testandextractfromlist(lin,nom);*/ 
     601   return 1; 
     602   } 
     603 else 
     604  { 
     605  return 0; 
     606  } 
     607 } 
     608} 
     609 
     610void removefromlist(listname **lin, char*nom) 
     611{ 
     612listname *newvar,*prev; 
     613int val_1, val_2; 
     614int return_stmt; 
     615int out; 
     616 
     617printname(*lin); 
     618if (*lin) 
     619 { 
     620 sscanf(nom,"%d",&val_1); 
     621 prev=(listname *) calloc(1,sizeof(listname)); 
     622 prev->suiv=*lin; 
     623 *lin=prev; 
     624 newvar=(*lin)->suiv; 
     625 out = 0; 
     626 while (newvar && out == 0) 
     627 { 
     628 sscanf((newvar)->n_name,"%d",&val_2); 
     629 if (val_1==val_2) 
     630   { 
     631   prev->suiv=newvar->suiv; 
     632   free(newvar); 
     633   } 
     634  if (prev->suiv)  
     635    { 
     636    prev=prev->suiv; 
     637    newvar=prev->suiv; 
     638    } 
     639   else 
     640   { 
     641   out = 1; 
     642   } 
     643  } 
     644 prev=*lin; 
     645 *lin=(*lin)->suiv; 
     646 free(prev); 
     647 } 
     648} 
     649 
    566650listname *concat_listname(listname *l1, listname *l2) 
    567651{ 
     
    606690   while (newvar) 
    607691   { 
    608       printf("nom = %s \n",newvar->n_name); 
    609692      newvar=newvar->suiv; 
    610693   } 
     
    694777int get_cat_var(variable *var) 
    695778{ 
     779 
    696780    if (!strcasecmp(var->v_typevar, "CHARACTER")) 
    697781        return 1; 
     
    705789        return 0; 
    706790} 
     791 
     792void Insertdoloop(variable *var,char *do_var,char *do_begin, char *do_end, char *do_step) 
     793{ 
     794listdoloop *new_do_loop; 
     795listdoloop *tmploop; 
     796new_do_loop = (listdoloop *) calloc(1,sizeof(listdoloop)); 
     797 
     798new_do_loop->cur_do_loop = (do_loop *) calloc(1,sizeof(do_loop)); 
     799 
     800strcpy(new_do_loop->cur_do_loop->do_variable,do_var); 
     801strcpy(new_do_loop->cur_do_loop->do_begin,do_begin); 
     802strcpy(new_do_loop->cur_do_loop->do_end,do_end); 
     803strcpy(new_do_loop->cur_do_loop->do_step,do_step); 
     804new_do_loop->suiv = NULL; 
     805 
     806if (!var->v_do_loop) 
     807{ 
     808  var->v_do_loop = new_do_loop; 
     809} 
     810else 
     811{ 
     812  new_do_loop->suiv = var->v_do_loop; 
     813  var->v_do_loop = new_do_loop; 
     814       
     815//   tmploop = var->v_do_loop; 
     816//   while (tmploop->suiv) 
     817//   { 
     818//     tmploop=tmploop->suiv; 
     819//   } 
     820//   tmploop->suiv = new_do_loop ; 
     821//   } 
     822} 
     823} 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/WorkWithlistdatavariable.c

    r5656 r8139  
    7070        strcpy(ligne,values); 
    7171        
    72      strcpy(newvar->var->v_initialvalue,ligne); 
     72     newvar->var->v_initialvalue=Insertname(newvar->var->v_initialvalue,ligne,0); 
     73      
     74     // strcpy(newvar->var->v_initialvalue,ligne); 
    7375     Save_Length(ligne,14); 
    7476     newvar->suiv = NULL; 
     
    8587} 
    8688 
    87 void Add_Data_Var_Names_01 (listvar **curlist,listname *l1,listname *l2) 
     89void Add_Data_Var_Names_01 (listvar **curlist,listvar *l1,listname *l2) 
    8890{ 
    8991    listvar *newvar; 
    9092    listvar *tmpvar; 
    91     listname *tmpvar1; 
    92     listname *tmpvar2;   
     93    listvar *tmpvar1; 
     94    listname *tmpvar2; 
     95    char tempname[LONG_M]; 
    9396    variable *found_var = NULL; 
     97    int out; 
     98    size_t i = 0; 
     99    char chartmp[2]; 
    94100     
    95101    tmpvar1 = l1; 
     
    98104    while (tmpvar1) 
    99105    { 
    100         newvar = (listvar *) calloc(1,sizeof(listvar)); 
    101         newvar->var = (variable *) calloc(1,sizeof(variable)); 
    102  
    103         Init_Variable(newvar->var); 
    104  
    105         if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 
    106       
    107         found_var = get_variable_in_list_from_name(List_Common_Var, tmpvar1->n_name); 
    108         if ( ! found_var )  found_var = get_variable_in_list_from_name(List_Global_Var,tmpvar1->n_name); 
    109         if ( ! found_var )  found_var = get_variable_in_list_from_name(List_SubroutineDeclaration_Var,tmpvar1->n_name); 
    110          
    111         if ( found_var && found_var->v_nbdim > 0 ) 
     106//    printf("TMPVAR 1 nomvar = %s, initialvaluearra = %s\n",tmpvar1->var->v_nomvar,tmpvar1->var->v_initialvalue_array->n_name); 
     107       strcpy(tempname,tmpvar1->var->v_nomvar); 
     108//        while ( i < strlen(tmpvar1->var->v_nomvar) ) 
     109//        { 
     110//        if (tmpvar1->var->v_nomvar[i]=='(') break; 
     111//          sprintf(chartmp,"%c",tmpvar1->var->v_nomvar[i]); 
     112//          strcat(tempname,chartmp); 
     113//          i++; 
     114//        } 
     115        found_var = get_variable_in_list_from_name(List_Common_Var, tempname); 
     116        if ( ! found_var )  found_var = get_variable_in_list_from_name(List_Global_Var,tempname); 
     117        if ( ! found_var )  found_var = get_variable_in_list_from_name(List_SubroutineDeclaration_Var,tempname); 
     118         
     119        if ( found_var && found_var->v_nbdim > 1000 ) 
    112120        { 
    113121            printf("##############################################################################################################\n"); 
     
    118126        } 
    119127         
    120         strcpy(newvar->var->v_nomvar,tmpvar1->n_name); 
     128        if (tmpvar1->var->v_initialvalue_array) 
     129        { 
     130        if ((firstpass == 1) && strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 
     131        { 
     132        DecomposeTheName(tmpvar1->var->v_initialvalue_array->n_name); 
     133        } 
     134        } 
     135         
     136        // Search for existing newvar 
     137         
     138        tmpvar = *curlist; 
     139        out = 0; 
     140        while (tmpvar) 
     141        { 
     142        if (!strcasecmp(tempname,tmpvar->var->v_nomvar) && !strcasecmp(subroutinename,tmpvar->var->v_subroutinename) && !strcasecmp(curmodulename,tmpvar->var->v_modulename) && !strcasecmp(cur_filename,tmpvar->var->v_commoninfile) ) 
     143        { 
     144        out = 1; 
     145        break; 
     146        } 
     147        tmpvar=tmpvar->suiv; 
     148        } 
     149        if (out == 0) 
     150        { 
     151        newvar = (listvar *) calloc(1,sizeof(listvar)); 
     152        newvar->var = (variable *) calloc(1,sizeof(variable)); 
     153 
     154        Init_Variable(newvar->var); 
     155 
     156        if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 
     157         
     158        strcpy(newvar->var->v_nomvar,tempname); 
    121159        strcpy(newvar->var->v_subroutinename,subroutinename); 
    122160        strcpy(newvar->var->v_modulename,curmodulename); 
    123161        strcpy(newvar->var->v_commoninfile,cur_filename); 
    124         strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 
     162        /*printf("TMPVAR 2 nomvar = %s\n",tmpvar2->n_name);*/ 
     163        newvar->var->v_initialvalue=Insertname(newvar->var->v_initialvalue,tmpvar2->n_name,0); 
     164         
     165        if (tmpvar1->var->v_initialvalue_array) 
     166        { 
     167        if (strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 
     168        { 
     169        newvar->var->v_initialvalue_array=Insertname(newvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array->n_name,0); 
     170        } 
     171        } 
     172        newvar->var->v_do_loop=tmpvar1->var->v_do_loop; 
     173//        strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 
     174//        strcpy(newvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array); 
     175         
     176        newvar->var->v_dimension=tmpvar1->var->v_dimension; 
    125177 
    126178        Save_Length(tmpvar2->n_name,14); 
     
    139191            *curlist  = newvar ; 
    140192        } 
     193        tmpvar=newvar; 
     194        } 
     195        else // out = 1 
     196        { 
     197        tmpvar->var->v_initialvalue=Insertname(tmpvar->var->v_initialvalue,tmpvar2->n_name,0); 
     198        if (strcmp(tmpvar1->var->v_initialvalue_array->n_name,"")) 
     199        { 
     200        tmpvar->var->v_initialvalue_array=Insertname(tmpvar->var->v_initialvalue_array,tmpvar1->var->v_initialvalue_array->n_name,0); 
     201        } 
     202        tmpvar->var->v_do_loop=tmpvar1->var->v_do_loop; 
     203        } 
    141204      
    142205        tmpvar1 = tmpvar1->suiv; 
    143         tmpvar2 = tmpvar2->suiv;   
     206        tmpvar2 = tmpvar2->suiv; 
    144207    } 
     208     
     209    while (tmpvar2) 
     210    { 
     211    strcpy(tempname,tmpvar2->n_name); 
     212    tmpvar->var->v_initialvalue = Insertname(tmpvar->var->v_initialvalue,tempname,1); 
     213    tmpvar2 = tmpvar2->suiv;  
     214    } 
     215     
    145216} 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/WorkWithlistvarindoloop.c

    r5656 r8139  
    119119  if ( !List_UsedInSubroutine_Var ) 
    120120  { 
     121  printf("LISTE VIDE\n"); 
    121122      newvar=(listvar *)calloc(1,sizeof(listvar)); 
    122123      newvar->var=(variable *)calloc(1,sizeof(variable)); 
     
    161162         } 
    162163      } 
     164       
    163165      if ( out == 2 || out == 0 ) 
    164166      { 
     
    175177 
    176178         /* we should find this new variable to know the tabvars indice       */ 
     179 
    177180         if ( variableisglobal(newvar, List_Global_Var) == 1 ) 
    178181         { 
     
    271274void Merge_Variables(variable *var1, variable *var2) 
    272275{ 
     276 
    273277    if ( !strcasecmp(var1->v_typevar,"") ) 
    274278            strcpy(var1->v_typevar,var2->v_typevar); 
    275     else 
    276       { 
    277       strcpy(var2->v_typevar,var1->v_typevar); 
    278       } 
     279    else    strcpy(var2->v_typevar,var1->v_typevar); 
    279280 
    280281    if ( !strcasecmp(var1->v_oldname,"") ) 
     
    310311    else    strcpy(var2->v_precision,var1->v_precision); 
    311312 
    312     if ( !strcasecmp(var1->v_initialvalue,"") ) 
    313             strcpy(var1->v_initialvalue,var2->v_initialvalue); 
    314     else    strcpy(var2->v_initialvalue,var1->v_initialvalue); 
    315  
     313//     if ( !strcasecmp(var1->v_initialvalue,"") ) 
     314//             strcpy(var1->v_initialvalue,var2->v_initialvalue); 
     315//     else    strcpy(var2->v_initialvalue,var1->v_initialvalue); 
     316 
     317    if ( var1->v_initialvalue ) 
     318            var2->v_initialvalue = var1->v_initialvalue; 
     319    else    var1->v_initialvalue = var2->v_initialvalue; 
     320 
     321    if ( var1->v_initialvalue_array ) 
     322            var2->v_initialvalue_array = var1->v_initialvalue_array; 
     323    else    var1->v_initialvalue_array = var2->v_initialvalue_array; 
     324     
     325    if ( var1->v_do_loop ) 
     326            var2->v_do_loop = var1->v_do_loop; 
     327    else    var1->v_do_loop = var2->v_do_loop; 
     328     
     329//     if ( !strcasecmp(var1->v_initialvalue_array,"") ) 
     330//             strcpy(var1->v_initialvalue_array,var2->v_initialvalue_array); 
     331//     else    strcpy(var2->v_initialvalue_array,var1->v_initialvalue_array); 
     332     
    316333    if ( !strcasecmp(var1->v_IntentSpec,"") ) 
    317334            strcpy(var1->v_IntentSpec,var2->v_IntentSpec); 
     
    490507         /*                                                                   */ 
    491508         newvar->suiv = NULL; 
     509 
    492510         Merge_Variables(parcours->var,newvar->var); 
    493511         strcpy(newvar->var->v_subroutinename,parcours->var->v_subroutinename); 
     
    11551173                newvar->var->v_VariableIsParameter, 
    11561174                newvar->var->v_typevar, 
    1157                 newvar->var->v_initialvalue ); 
     1175                newvar->var->v_initialvalue->n_name ); 
    11581176        newvar = newvar->suiv; 
    11591177    } 
     
    11731191                                        strcpy(parcours->var->v_typevar,"REAL"); 
    11741192         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1193         parcours->var->v_catvar = get_cat_var(parcours->var); 
    11751194      } 
    11761195      parcours = parcours -> suiv ; 
     
    11851204                                        strcpy(parcours->var->v_typevar,"REAL"); 
    11861205         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1206         parcours->var->v_catvar = get_cat_var(parcours->var); 
    11871207      } 
    11881208      parcours = parcours -> suiv ; 
     
    11971217                                        strcpy(parcours->var->v_typevar,"REAL"); 
    11981218         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1219         parcours->var->v_catvar = get_cat_var(parcours->var); 
    11991220      } 
    12001221      parcours = parcours -> suiv ; 
     
    12091230                                        strcpy(parcours->var->v_typevar,"REAL"); 
    12101231         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1232         parcours->var->v_catvar = get_cat_var(parcours->var); 
     1233      } 
     1234      parcours = parcours -> suiv ; 
     1235   } 
     1236    
     1237   /*                                                                         */ 
     1238   parcours = List_Parameter_Var; 
     1239   while ( parcours ) 
     1240   { 
     1241      if ( !strcasecmp(parcours->var->v_typevar,"") ) 
     1242      { 
     1243         if ( IsVariableReal(parcours->var->v_nomvar) == 1 ) 
     1244                                        strcpy(parcours->var->v_typevar,"REAL"); 
     1245         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1246         parcours->var->v_catvar = get_cat_var(parcours->var); 
     1247      } 
     1248      parcours = parcours -> suiv ; 
     1249   } 
     1250    
     1251   /*                                                                         */ 
     1252   parcours = List_GlobalParameter_Var; 
     1253   while ( parcours ) 
     1254   { 
     1255      if ( !strcasecmp(parcours->var->v_typevar,"") ) 
     1256      { 
     1257         if ( IsVariableReal(parcours->var->v_nomvar) == 1 ) 
     1258                                        strcpy(parcours->var->v_typevar,"REAL"); 
     1259         else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1260         parcours->var->v_catvar = get_cat_var(parcours->var); 
    12111261      } 
    12121262      parcours = parcours -> suiv ; 
     
    15091559void update_indicemaxtabvars(variable *var,listindice **Listofindices) 
    15101560{ 
    1511  
    1512  
    15131561            if ( Listofindices[var->v_catvar] ) 
    15141562            { 
     
    15471595          ) 
    15481596      { 
     1597            /* The type may has not been given if the variable was only declared with dimension */ 
     1598 
     1599            if ( !strcasecmp(parcours->var->v_typevar,"") ) 
     1600            { 
     1601                  if ( IsVariableReal(parcours->var->v_nomvar) == 1 ) 
     1602                                        strcpy(parcours->var->v_typevar,"REAL"); 
     1603                  else strcpy(parcours->var->v_typevar,"INTEGER"); 
     1604                  parcours->var->v_catvar = get_cat_var(parcours->var); 
     1605             } 
     1606              
    15491607         indicemaxtabvars[parcours->var->v_catvar] = indicemaxtabvars[parcours->var->v_catvar] + 1 ; 
    15501608         parcours->var->v_indicetabvars = indicemaxtabvars[parcours->var->v_catvar]; 
     
    16261684              parcours->var->v_notgrid == 0                              && 
    16271685              ( ( parcours->var->v_nbdim != 0 || !strcasecmp(parcours->var->v_typevar,"type") ) 
    1628               || strcasecmp(parcours->var->v_initialvalue,"") ) 
     1686              || parcours->var->v_initialvalue ) 
    16291687            ) 
    16301688         { 
     
    16581716              !strcasecmp(parcours->var->v_commoninfile,cur_filename)       && 
    16591717              ( ( parcours->var->v_nbdim != 0 || !strcasecmp(parcours->var->v_typevar,"type") ) 
    1660               || strcasecmp(parcours->var->v_initialvalue,"") ) 
     1718              || parcours->var->v_initialvalue ) 
    16611719            ) 
    16621720         { 
     
    18451903      printf("dimensiongiven - %d \n", parcours->var->v_dimensiongiven); 
    18461904      printf("dimsempty      - %d \n", parcours->var->v_dimsempty); 
    1847       printf("initialvalue   - %s \n", parcours->var->v_initialvalue); 
     1905      printf("initialvalue   - %s \n", parcours->var->v_initialvalue->n_name); 
    18481906      printf("readedlistdim  - %s \n", parcours->var->v_readedlistdimension); 
    18491907      printf("-------------------------------------\n"); 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/WriteInFile.c

    r5656 r8139  
    141141    fseek(filout, position, SEEK_SET); 
    142142    tofich_blanc(filout, sizetoremove); 
    143     fseek(filout, position, SEEK_SET); 
     143 
    144144} 
    145145 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/Writedeclarations.c

    r5656 r8139  
    6666  /* We should give the precision of the variable if it has been given        */ 
    6767  precision_given = 0; 
     68   
    6869  if ( strcasecmp(v->v_precision,"") ) 
    6970  { 
     
    128129    { 
    129130        strcat(line," = "); 
    130         strcat(line, v->v_initialvalue); 
     131        strcat(line, v->v_initialvalue->n_name); 
    131132    } 
    132133    Save_Length(line, 45); 
     
    173174    { 
    174175        strcat(ligne," = "); 
    175         strcat(ligne,v->v_initialvalue); 
     176        strcat(ligne,v->v_initialvalue->n_name); 
    176177    } 
    177178    Save_Length(ligne,45); 
     
    206207        WriteTableDeclaration(v, ligne, value); 
    207208 
    208      if ( v->v_VariableIsParameter != 1 && strcasecmp(v->v_initialvalue,"") ) 
     209     if ( v->v_VariableIsParameter != 1 && v->v_initialvalue) 
    209210     { 
    210211        strcat(ligne," = "); 
    211         strcat(ligne,v->v_initialvalue); 
     212        strcat(ligne,v->v_initialvalue->n_name); 
    212213     } 
    213214     tofich(filecommon, ligne, 1); 
     
    241242    while ( parcours ) 
    242243    { 
     244    if (!strcmp(parcours->var->v_typevar, "")) 
     245    { 
     246     /* Default type*/ 
     247          if ( IsVariableReal(parcours->var->v_nomvar) == 1 ) 
     248                                         strcpy(parcours->var->v_typevar,"REAL"); 
     249          else strcpy(parcours->var->v_typevar,"INTEGER"); 
     250     } 
    243251        if ( !strcasecmp(parcours->var->v_subroutinename, subroutinename) && 
    244252              strcasecmp(parcours->var->v_typevar, "") ) 
     
    261269        if ( !strcasecmp(v->v_subroutinename, subroutinename)   && 
    262270             (v->v_save == 0)                                   && 
    263              (v->v_pointerdeclare == 0)                         && 
    264271             (v->v_VariableIsParameter == 0)                    && 
    265272             (v->v_common == 0) ) 
     
    285292    listvar *parcours; 
    286293    variable *v; 
    287     char ligne[LONG_M]; 
    288  
     294    char *ligne; 
     295    size_t line_length; 
     296    int res; 
     297    int global_check; 
     298 
     299    ligne = (char*) calloc(LONG_M, sizeof(char)); 
     300    line_length = LONG_M; 
     301     
     302    global_check = 0; 
     303    
     304    
    289305    fprintf(fortran_out,"#include \"Param_BeforeCall_%s.h\"\n",subroutinename); 
    290306 
     
    303319            position++; 
    304320            WriteVarDeclaration(v, fortran_out, 0, 1); 
    305             neededparameter = writedeclarationintoamr(List_Parameter_Var, paramtoamr, 
    306                                     v, v->v_subroutinename, neededparameter, subroutinename); 
     321            res = writedeclarationintoamr(List_Parameter_Var, paramtoamr, 
     322                                    v, v->v_subroutinename, &neededparameter, subroutinename, global_check); 
    307323            parcours = List_SubroutineArgument_Var; 
    308324        } 
    309325        else parcours = parcours -> suiv; 
    310326    } 
    311     Save_Length(ligne,45); 
    312327 
    313328    // Write interface for 'Sub_Loop_machin' in 'Param_BeforeCall_machin.h' when outside a module 
     
    317332        if (isrecursive) sprintf(ligne,"  recursive subroutine Sub_Loop_%s(", subroutinename); 
    318333        else             sprintf(ligne,"  subroutine Sub_Loop_%s(", subroutinename); 
    319         WriteVariablelist_subloop(ligne); 
    320         WriteVariablelist_subloop_Def(ligne); 
     334        WriteVariablelist_subloop(&ligne,&line_length); 
     335        WriteVariablelist_subloop_Def(&ligne,&line_length); 
    321336        strcat(ligne,")"); 
    322         Save_Length(ligne,45); 
     337 
    323338        tofich(paramtoamr,ligne,1); 
    324339 
     
    353368 
    354369    parcours = List_SubroutineArgument_Var; 
     370     
    355371    while ( parcours ) 
    356372    { 
     
    399415/*                                                                            */ 
    400416/******************************************************************************/ 
    401 listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout, 
     417int writedeclarationintoamr (listvar * deb_common, FILE *fileout, 
    402418                              variable *var , const char *commonname, 
    403                            listnom *neededparameter, const char *name_common) 
     419                           listnom **neededparameter, const char *name_common, int global_check) 
    404420{ 
    405421  listvar *newvar; 
     
    410426  int writeit; 
    411427  listnom *parcours; 
     428  listname *parcours_name_array; 
     429  int res; 
     430   
     431  res = 0; 
    412432 
    413433  /* we should list the needed parameter                                      */ 
     434 
    414435  if ( !strcasecmp(name_common,commonname) ) 
    415      neededparameter = DecomposeTheNameinlistnom(var->v_readedlistdimension,neededparameter); 
     436     { 
     437     *neededparameter = DecomposeTheNameinlistnom(var->v_readedlistdimension,*neededparameter); 
     438     parcours_name_array = var->v_initialvalue_array; 
     439     while (parcours_name_array) 
     440     { 
     441     *neededparameter = DecomposeTheNameinlistnom(parcours_name_array->n_name,*neededparameter); 
     442     parcours_name_array=parcours_name_array->suiv; 
     443     } 
     444     } 
     445 
    416446  /*                                                                          */ 
    417   parcours = neededparameter; 
     447  parcours = *neededparameter; 
     448 
    418449  while (parcours) 
    419450  { 
     
    423454     while ( newvar && out == 0 ) 
    424455     { 
    425  
    426         if ( !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_subroutinename,newvar->var->v_subroutinename)) 
     456        if ( (global_check == 0) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_subroutinename,newvar->var->v_subroutinename)) 
    427457        { 
    428458           out=1; 
    429459        /* add the name to the list of needed parameter                       */ 
    430            neededparameter = DecomposeTheNameinlistnom( 
    431                  newvar->var->v_initialvalue, 
    432                  neededparameter ); 
     460           *neededparameter = DecomposeTheNameinlistnom( 
     461                 newvar->var->v_initialvalue->n_name, 
     462                 *neededparameter ); 
     463        } 
     464        else if ( (global_check == 1) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_modulename,newvar->var->v_modulename)) 
     465        { 
     466           out=1; 
     467        /* add the name to the list of needed parameter                       */ 
     468           *neededparameter = DecomposeTheNameinlistnom( 
     469                 newvar->var->v_initialvalue->n_name, 
     470                 *neededparameter ); 
    433471        } 
    434472        else newvar=newvar->suiv; 
     
    437475   } 
    438476  /*                                                                          */ 
    439   parcours = neededparameter; 
     477  parcours = *neededparameter; 
     478   
    440479  while (parcours) 
    441480  { 
     
    444483     while ( newvar && out == 0 ) 
    445484     { 
    446         if ( !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_subroutinename,newvar->var->v_subroutinename)) 
     485        if ( (global_check == 0) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_subroutinename,newvar->var->v_subroutinename)) 
    447486        { 
    448487           out=1; 
    449488        /* add the name to the list of needed parameter                       */ 
    450            neededparameter = DecomposeTheNameinlistnom( 
    451                  newvar->var->v_initialvalue, 
    452                  neededparameter ); 
     489           *neededparameter = DecomposeTheNameinlistnom( 
     490                 newvar->var->v_initialvalue->n_name, 
     491                 *neededparameter ); 
     492        } 
     493        else if ( (global_check == 1) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && !strcasecmp(var->v_modulename,newvar->var->v_modulename)) 
     494        { 
     495           out=1; 
     496        /* add the name to the list of needed parameter                       */ 
     497           *neededparameter = DecomposeTheNameinlistnom( 
     498                 newvar->var->v_initialvalue->n_name, 
     499                 *neededparameter ); 
    453500        } 
    454501        else newvar=newvar->suiv; 
     
    456503     parcours=parcours->suiv; 
    457504   } 
    458   parcours = neededparameter; 
     505  parcours = *neededparameter; 
    459506  while (parcours) 
    460507  { 
     
    463510     while ( newvar && writeit == 0 ) 
    464511     { 
    465         if ( !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && 
     512        if ( (global_check == 0) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && 
    466513            !strcasecmp(var->v_subroutinename,newvar->var->v_subroutinename) && parcours->o_val == 0 ) 
     514        { 
     515           writeit=1; 
     516           parcours->o_val = 1; 
     517        } 
     518        else if ( (global_check == 1) && !strcasecmp(parcours->o_nom,newvar->var->v_nomvar) && 
     519            !strcasecmp(var->v_modulename,newvar->var->v_modulename) && parcours->o_val == 0 ) 
    467520        { 
    468521           writeit=1; 
     
    490543           v->v_allocatable = 1; 
    491544        } 
     545        res = 1; 
    492546     } 
    493547     else 
     
    503557  } 
    504558  Save_Length(ligne,45); 
    505   return neededparameter; 
     559  return res; 
    506560} 
    507561 
     
    532586     if ( newvar->var->v_nbdim == 0 && 
    533587          !strcasecmp(newvar->var->v_subroutinename,subroutinename)  && 
    534            (newvar->var->v_pointerdeclare == 0 || !strcasecmp(newvar->var->v_typevar,"type")) ) 
     588           (newvar->var->v_pointerdeclare >= 0 || !strcasecmp(newvar->var->v_typevar,"type")) ) 
    535589     { 
    536590        v = newvar->var; 
    537  
    538591        WriteBeginDeclaration(v,ligne,1); 
    539592        WriteScalarDeclaration(v,ligne); 
     
    570623//  printf("newvar = %s %d %s\n",newvar->var->v_nomvar,newvar->var->v_pointerdeclare,newvar->var->v_typevar); 
    571624     if ( (v->v_nbdim != 0)  && !strcasecmp(v->v_subroutinename, subroutinename) && 
    572           (v->v_pointerdeclare == 0 || !strcasecmp(v->v_typevar,"type")) ) 
     625          (v->v_pointerdeclare >= 0 || !strcasecmp(v->v_typevar,"type")) ) 
    573626     { 
    574627        changeval = 0; 
     
    596649     newvar = newvar->suiv; 
    597650  } 
     651 
    598652  Save_Length(ligne,45); 
    599653} 
     
    619673            if (firstpass == 0 && out == 0 && VariableIsParameter == 0 && SaveDeclare == 0) 
    620674            { 
     675             
     676            /* The type may has not been given if the variable was only declared with dimension */ 
     677 
     678            if ( !strcasecmp(v->v_typevar,"") ) 
     679            { 
     680                  if ( IsVariableReal(v->v_nomvar) == 1 ) 
     681                                        strcpy(v->v_typevar,"REAL"); 
     682                  else strcpy(v->v_typevar,"INTEGER"); 
     683                  v->v_catvar = get_cat_var(v); 
     684             } 
     685              
    621686                WriteVarDeclaration(v, fortran_out, 1, 1); 
    622687            } 
     
    639704    char ligne[LONG_M]; 
    640705    char initialvalue[LONG_M]; 
    641  
     706    listname *parcours_name; 
     707     
    642708    if (insubroutinedeclare == 1) 
    643709    { 
     
    651717            if (out)   break; 
    652718 
    653             if (strncasecmp(parcours->var->v_initialvalue,"(/",2)) 
     719            strcpy(initialvalue,""); 
     720            parcours_name = parcours->var->v_initialvalue; 
     721            while (parcours_name) 
    654722            { 
    655                 strcpy(initialvalue,parcours->var->v_initialvalue); 
     723            if (strncasecmp(parcours_name->n_name,"(/",2)) 
     724            { 
     725                strcat(initialvalue,parcours_name->n_name); 
     726                if (parcours_name->suiv) 
     727                { 
     728                strcat(initialvalue,","); 
     729                } 
    656730            } 
    657731            else 
    658732            { 
    659                 strncpy(initialvalue,&parcours->var->v_initialvalue[2],strlen(parcours->var->v_initialvalue)-4); 
    660                 strcpy(&initialvalue[strlen(parcours->var->v_initialvalue)-4],"\0"); 
     733            printf("A TRAITER DANS REWRITEDATA STATEMETN "); 
     734            exit(1); 
     735                strncpy(initialvalue,&parcours_name->n_name[2],strlen(parcours_name->n_name)-4); 
     736                strcpy(&initialvalue[strlen(parcours_name->n_name)-4],"\0"); 
     737            } 
     738            parcours_name=parcours_name->suiv; 
    661739            } 
    662740            sprintf(ligne,"data %s/%s/",parcours->var->v_nomvar,initialvalue); 
    663741            tofich(filout,ligne,1); 
    664  
     742             
    665743            parcours = parcours->suiv; 
    666744        } 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/decl.h

    r5656 r8139  
    5656} listdim;                 /* list of the dimensions of a variable            */ 
    5757 
     58typedef struct listname 
     59{ 
     60   char n_name[LONG_M]; 
     61   struct  listname* suiv; 
     62} listname ;            /* list of names                                  */ 
     63 
     64typedef struct do_loop 
     65{ 
     66   char do_variable[LONG_VNAME]; 
     67   char do_begin[LONG_VNAME]; 
     68   char do_end[LONG_VNAME]; 
     69   char do_step[LONG_VNAME]; 
     70} do_loop ; 
     71 
     72typedef struct listdoloop 
     73{ 
     74   do_loop *cur_do_loop; 
     75   struct listdoloop* suiv; 
     76} listdoloop; 
     77 
    5878typedef struct variable 
    5979{ 
     
    6888   char v_commoninfile[LONG_FNAME]; 
    6989   char v_subroutinename[LONG_VNAME]; 
     90   listdoloop *v_do_loop; 
    7091   char v_precision[LONG_C]; 
    71    char v_initialvalue[LONG_M]; 
     92   listname *v_initialvalue; 
     93   listname *v_initialvalue_array; 
    7294   char v_IntentSpec[LONG_M]; 
    7395   char v_readedlistdimension[LONG_M]; 
     
    126148} listparameter ;           /* list of names                                  */ 
    127149 
    128 typedef struct listname 
    129 { 
    130    char n_name[LONG_VNAME]; 
    131    struct  listname* suiv; 
    132 } listname ;            /* list of names                                  */ 
    133  
    134150typedef struct listcouple 
    135151{ 
     
    198214 listname *List_Pointer_Var; 
    199215 listname *List_ImplicitNoneSubroutine; 
     216  
     217 listname *List_Do_labels;  
     218 /* A list that contains the do labels if any */ 
    200219 
    201220 listusemodule *List_NameOfModuleUsed; 
     
    321340 char curmodulename[LONG_VNAME]; 
    322341 char subroutinename[LONG_VNAME]; 
     342 char old_subroutinename[LONG_VNAME]; // For internal subprogramm 
    323343 char cur_filename[LONG_FNAME];     // Name of the current parsed Fortran file 
    324344 char config_file[LONG_FNAME];      // Name of conv configuration file (ex: amr.in) 
     
    331351 FILE *fortran_in;           /* Input File                                     */ 
    332352 FILE *oldfortran_out; 
     353 FILE *old_oldfortran_out; // For internal subprogramm 
    333354 FILE *subloop; 
    334355 FILE *module_declar; 
     
    433454/******************************************************************************/ 
    434455extern void WriteBeginof_SubLoop(); 
    435 extern void WriteVariablelist_subloop(char *ligne); 
    436 extern void WriteVariablelist_subloop_Call(char **ligne, size_t line_length); 
    437 extern void WriteVariablelist_subloop_Def(char *ligne); 
     456extern void WriteVariablelist_subloop(char **ligne, size_t *line_length); 
     457extern void WriteVariablelist_subloop_Call(char **ligne, size_t *line_length); 
     458extern void WriteVariablelist_subloop_Def(char **ligne, size_t *line_length); 
    438459extern void WriteHeadofSubroutineLoop(); 
    439460extern void closeandcallsubloopandincludeit_0(int suborfun); 
     
    516537extern int varistyped_0(char *ident); 
    517538extern void dump_var(const variable* var); 
     539extern void removenewline(char *nom); 
    518540/******************************************************************************/ 
    519541/*********** UtilListe.c ******************************************************/ 
     
    532554extern int IsinListe(listvar *lin,char *nom); 
    533555extern listname *Insertname(listname *lin,char *nom,int sens); 
     556extern int testandextractfromlist(listname **lin, char*nom); 
     557extern void removefromlist(listname **lin, char*nom); 
    534558extern listname *concat_listname(listname *l1, listname *l2); 
    535559extern void createstringfromlistname(char *ligne, listname *lin); 
     
    540564extern void  addprecision_derivedfromkind(variable *curvar); 
    541565extern int get_cat_var(variable *var); 
     566extern void Insertdoloop(variable *var,char *do_var, char *do_begin, char *do_end, char *do_step); 
    542567/******************************************************************************/ 
    543568/*********** UtilNotGridDep.c *************************************************/ 
     
    560585/******************************************************************************/ 
    561586extern void Add_Data_Var_1 (listvar **curlist,char *name,char *values); 
    562 extern void Add_Data_Var_Names_01 (listvar **curlist,listname *l1, listname *l2); 
     587extern void Add_Data_Var_Names_01 (listvar **curlist,listvar *l1, listname *l2); 
    563588/******************************************************************************/ 
    564589/*********** WorkWithlistmoduleinfile.c ***************************************/ 
     
    641666extern void WriteArgumentDeclaration_beforecall(); 
    642667extern void WriteArgumentDeclaration_Sort(FILE* tofile); 
    643 extern listnom * writedeclarationintoamr(listvar *deb_common, FILE *fileout, variable *var, 
    644                   const char *commonname, listnom *neededparameter, const char *name_common); 
     668extern int writedeclarationintoamr(listvar *deb_common, FILE *fileout, variable *var, 
     669                  const char *commonname, listnom **neededparameter, const char *name_common, int global_check); 
    645670extern void writesub_loopdeclaration_scalar(listvar *deb_common, FILE *fileout); 
    646671extern void writesub_loopdeclaration_tab(listvar *deb_common, FILE *fileout); 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/fortran.c

    r5656 r8139  
    4545 
    4646/* Bison version.  */ 
     47#define YYBISON_VERSION "2.7" 
    4748 
    4849/* Skeleton name.  */ 
     
    7980 
    8081extern int line_num_input; 
    81 extern char *fortran_text; 
    8282 
    8383char c_selectorname[LONG_M]; 
     
    8787int c_selectorgiven=0; 
    8888listvar *curlistvar; 
     89int in_select_case_stmt=0; 
    8990typedim c_selectordim; 
    9091listcouple *coupletmp; 
    9192int removeline=0; 
     93int token_since_endofstmt = 0; 
     94int increment_nbtokens = 1; 
     95int in_complex_literal = 0; 
     96int close_or_connect = 0; 
     97int in_io_control_spec = 0; 
     98long int my_position; 
     99long int my_position_before; 
     100int suborfun = 0; 
     101int indeclaration = 0; 
     102int endoffile = 0; 
     103int in_inquire = 0; 
     104int in_bind = 0; 
     105int in_char_selector = 0; 
     106int in_kind_selector =0; 
     107int char_length_toreset = 0; 
     108 
     109typedim my_dim; 
     110 
    92111listvar *test; 
     112 
     113char linebuf1[1024]; 
     114char linebuf2[1024]; 
    93115 
    94116int fortran_error(const char *s) 
    95117{ 
    96     printf("%s line %d, file %s motclef = |%s|\n", s, line_num_input, cur_filename, fortran_text); 
     118  if (endoffile == 1)  
     119  { 
     120  endoffile = 0; 
     121  return 0; 
     122  } 
     123    printf("%s line %d, file %s culprit = |%s|\n", s, line_num_input, cur_filename, strcat(linebuf1, linebuf2)); 
    97124    exit(1); 
    98125} 
     
    100127 
    101128/* Line 371 of yacc.c  */ 
    102 #line 104 "fortran.tab.c" 
     129#line 130 "fortran.tab.c" 
    103130 
    104131# ifndef YY_NULL 
     
    156183     TOK_PROGRAM = 279, 
    157184     TOK_FUNCTION = 280, 
    158      TOK_FORMAT = 281, 
    159      TOK_MAX = 282, 
    160      TOK_TANH = 283, 
    161      TOK_WHERE = 284, 
    162      TOK_ELSEWHEREPAR = 285, 
    163      TOK_ELSEWHERE = 286, 
    164      TOK_ENDWHERE = 287, 
    165      TOK_MAXVAL = 288, 
    166      TOK_TRIM = 289, 
    167      TOK_NULL_PTR = 290, 
    168      TOK_SUM = 291, 
    169      TOK_SQRT = 292, 
    170      TOK_CASE = 293, 
    171      TOK_SELECTCASE = 294, 
    172      TOK_FILE = 295, 
    173      TOK_UNIT = 296, 
    174      TOK_FMT = 297, 
    175      TOK_NML = 298, 
    176      TOK_END = 299, 
    177      TOK_EOR = 300, 
    178      TOK_ERR = 301, 
    179      TOK_EXIST = 302, 
    180      TOK_MIN = 303, 
    181      TOK_FLOAT = 304, 
    182      TOK_EXP = 305, 
    183      TOK_COS = 306, 
    184      TOK_COSH = 307, 
    185      TOK_ACOS = 308, 
    186      TOK_NINT = 309, 
    187      TOK_CYCLE = 310, 
    188      TOK_SIN = 311, 
    189      TOK_SINH = 312, 
    190      TOK_ASIN = 313, 
    191      TOK_EQUIVALENCE = 314, 
    192      TOK_BACKSPACE = 315, 
    193      TOK_LOG = 316, 
    194      TOK_TAN = 317, 
    195      TOK_ATAN = 318, 
    196      TOK_RECURSIVE = 319, 
    197      TOK_ABS = 320, 
    198      TOK_MOD = 321, 
    199      TOK_SIGN = 322, 
    200      TOK_MINLOC = 323, 
    201      TOK_MAXLOC = 324, 
    202      TOK_EXIT = 325, 
    203      TOK_MINVAL = 326, 
    204      TOK_PUBLIC = 327, 
    205      TOK_PRIVATE = 328, 
    206      TOK_ALLOCATABLE = 329, 
    207      TOK_RETURN = 330, 
    208      TOK_THEN = 331, 
    209      TOK_ELSEIF = 332, 
    210      TOK_ELSE = 333, 
    211      TOK_ENDIF = 334, 
    212      TOK_PRINT = 335, 
    213      TOK_PLAINGOTO = 336, 
    214      TOK_LOGICALIF = 337, 
    215      TOK_PLAINDO = 338, 
    216      TOK_CONTAINS = 339, 
    217      TOK_ENDDO = 340, 
    218      TOK_MODULE = 341, 
    219      TOK_ENDMODULE = 342, 
    220      TOK_WHILE = 343, 
    221      TOK_CONCURRENT = 344, 
    222      TOK_ALLOCATE = 345, 
    223      TOK_OPEN = 346, 
    224      TOK_CLOSE = 347, 
    225      TOK_INQUIRE = 348, 
    226      TOK_WRITE = 349, 
    227      TOK_FLUSH = 350, 
    228      TOK_READ = 351, 
    229      TOK_REWIND = 352, 
    230      TOK_DEALLOCATE = 353, 
    231      TOK_NULLIFY = 354, 
    232      TOK_DIMENSION = 355, 
    233      TOK_ENDSELECT = 356, 
    234      TOK_EXTERNAL = 357, 
    235      TOK_INTENT = 358, 
    236      TOK_INTRINSIC = 359, 
    237      TOK_NAMELIST = 360, 
    238      TOK_DEFAULT = 361, 
    239      TOK_OPTIONAL = 362, 
    240      TOK_POINTER = 363, 
    241      TOK_CONTINUE = 364, 
    242      TOK_SAVE = 365, 
    243      TOK_TARGET = 366, 
    244      TOK_IMPLICIT = 367, 
    245      TOK_NONE = 368, 
    246      TOK_CALL = 369, 
    247      TOK_STAT = 370, 
    248      TOK_POINT_TO = 371, 
    249      TOK_COMMON = 372, 
    250      TOK_GLOBAL = 373, 
    251      TOK_LEFTAB = 374, 
    252      TOK_RIGHTAB = 375, 
    253      TOK_PAUSE = 376, 
    254      TOK_PROCEDURE = 377, 
    255      TOK_STOP = 378, 
    256      TOK_REAL8 = 379, 
    257      TOK_FOURDOTS = 380, 
    258      TOK_HEXA = 381, 
    259      TOK_ASSIGNTYPE = 382, 
    260      TOK_OUT = 383, 
    261      TOK_INOUT = 384, 
    262      TOK_IN = 385, 
    263      TOK_USE = 386, 
    264      TOK_TRUE = 387, 
    265      TOK_FALSE = 388, 
    266      TOK_LABEL = 389, 
    267      TOK_TYPE = 390, 
    268      TOK_TYPEPAR = 391, 
    269      TOK_ENDTYPE = 392, 
    270      TOK_REAL = 393, 
    271      TOK_INTEGER = 394, 
    272      TOK_LOGICAL = 395, 
    273      TOK_DOUBLEPRECISION = 396, 
    274      TOK_ENDSUBROUTINE = 397, 
    275      TOK_ENDFUNCTION = 398, 
    276      TOK_ENDPROGRAM = 399, 
    277      TOK_ENDUNIT = 400, 
    278      TOK_CHARACTER = 401, 
    279      TOK_CHAR_CONSTANT = 402, 
    280      TOK_CHAR_CUT = 403, 
    281      TOK_DATA = 404, 
    282      TOK_CHAR_MESSAGE = 405, 
    283      TOK_CSTREAL = 406, 
    284      TOK_COMPLEX = 407, 
    285      TOK_DOUBLECOMPLEX = 408, 
    286      TOK_NAME = 409, 
    287      TOK_CSTINT = 410 
     185     TOK_LABEL_FORMAT = 281, 
     186     TOK_LABEL_CONTINUE = 282, 
     187     TOK_LABEL_END_DO = 283, 
     188     TOK_MAX = 284, 
     189     TOK_TANH = 285, 
     190     TOK_COMMENT = 286, 
     191     TOK_WHERE = 287, 
     192     TOK_ELSEWHEREPAR = 288, 
     193     TOK_ELSEWHERE = 289, 
     194     TOK_ENDWHERE = 290, 
     195     TOK_MAXVAL = 291, 
     196     TOK_TRIM = 292, 
     197     TOK_NULL_PTR = 293, 
     198     TOK_SUM = 294, 
     199     TOK_SQRT = 295, 
     200     TOK_BIND = 296, 
     201     TOK_CASE = 297, 
     202     TOK_SELECTCASE = 298, 
     203     TOK_FILE = 299, 
     204     TOK_REC = 300, 
     205     TOK_NAME_EQ = 301, 
     206     TOK_IOLENGTH = 302, 
     207     TOK_ACCESS = 303, 
     208     TOK_ACTION = 304, 
     209     TOK_FORM = 305, 
     210     TOK_RECL = 306, 
     211     TOK_STATUS = 307, 
     212     TOK_UNIT = 308, 
     213     TOK_OPENED = 309, 
     214     TOK_FMT = 310, 
     215     TOK_NML = 311, 
     216     TOK_END = 312, 
     217     TOK_EOR = 313, 
     218     TOK_EOF = 314, 
     219     TOK_ERR = 315, 
     220     TOK_POSITION = 316, 
     221     TOK_IOSTAT = 317, 
     222     TOK_IOMSG = 318, 
     223     TOK_EXIST = 319, 
     224     TOK_MIN = 320, 
     225     TOK_FLOAT = 321, 
     226     TOK_EXP = 322, 
     227     TOK_LEN = 323, 
     228     TOK_COS = 324, 
     229     TOK_COSH = 325, 
     230     TOK_ACOS = 326, 
     231     TOK_NINT = 327, 
     232     TOK_CYCLE = 328, 
     233     TOK_SIN = 329, 
     234     TOK_SINH = 330, 
     235     TOK_ASIN = 331, 
     236     TOK_EQUIVALENCE = 332, 
     237     TOK_BACKSPACE = 333, 
     238     TOK_LOG = 334, 
     239     TOK_TAN = 335, 
     240     TOK_ATAN = 336, 
     241     TOK_RECURSIVE = 337, 
     242     TOK_ABS = 338, 
     243     TOK_MOD = 339, 
     244     TOK_SIGN = 340, 
     245     TOK_MINLOC = 341, 
     246     TOK_MAXLOC = 342, 
     247     TOK_EXIT = 343, 
     248     TOK_KIND = 344, 
     249     TOK_MOLD = 345, 
     250     TOK_SOURCE = 346, 
     251     TOK_ERRMSG = 347, 
     252     TOK_MINVAL = 348, 
     253     TOK_PUBLIC = 349, 
     254     TOK_PRIVATE = 350, 
     255     TOK_ALLOCATABLE = 351, 
     256     TOK_RETURN = 352, 
     257     TOK_THEN = 353, 
     258     TOK_ELSEIF = 354, 
     259     TOK_ELSE = 355, 
     260     TOK_ENDIF = 356, 
     261     TOK_PRINT = 357, 
     262     TOK_PLAINGOTO = 358, 
     263     TOK_LOGICALIF = 359, 
     264     TOK_LOGICALIF_PAR = 360, 
     265     TOK_PLAINDO = 361, 
     266     TOK_CONTAINS = 362, 
     267     TOK_ENDDO = 363, 
     268     TOK_MODULE = 364, 
     269     TOK_ENDMODULE = 365, 
     270     TOK_WHILE = 366, 
     271     TOK_CONCURRENT = 367, 
     272     TOK_ALLOCATE = 368, 
     273     TOK_OPEN = 369, 
     274     TOK_CLOSE = 370, 
     275     TOK_INQUIRE = 371, 
     276     TOK_WRITE_PAR = 372, 
     277     TOK_WRITE = 373, 
     278     TOK_FLUSH = 374, 
     279     TOK_READ_PAR = 375, 
     280     TOK_READ = 376, 
     281     TOK_REWIND = 377, 
     282     TOK_DEALLOCATE = 378, 
     283     TOK_NULLIFY = 379, 
     284     TOK_DIMENSION = 380, 
     285     TOK_ENDSELECT = 381, 
     286     TOK_EXTERNAL = 382, 
     287     TOK_INTENT = 383, 
     288     TOK_INTRINSIC = 384, 
     289     TOK_NAMELIST = 385, 
     290     TOK_DEFAULT = 386, 
     291     TOK_OPTIONAL = 387, 
     292     TOK_POINTER = 388, 
     293     TOK_CONTINUE = 389, 
     294     TOK_SAVE = 390, 
     295     TOK_TARGET = 391, 
     296     TOK_IMPLICIT = 392, 
     297     TOK_NONE = 393, 
     298     TOK_CALL = 394, 
     299     TOK_STAT = 395, 
     300     TOK_POINT_TO = 396, 
     301     TOK_COMMON = 397, 
     302     TOK_GLOBAL = 398, 
     303     TOK_LEFTAB = 399, 
     304     TOK_RIGHTAB = 400, 
     305     TOK_PAUSE = 401, 
     306     TOK_PROCEDURE = 402, 
     307     TOK_STOP = 403, 
     308     TOK_FOURDOTS = 404, 
     309     TOK_HEXA = 405, 
     310     TOK_ASSIGNTYPE = 406, 
     311     TOK_OUT = 407, 
     312     TOK_INOUT = 408, 
     313     TOK_IN = 409, 
     314     TOK_USE = 410, 
     315     TOK_EQUALEQUAL = 411, 
     316     TOK_SLASHEQUAL = 412, 
     317     TOK_INFEQUAL = 413, 
     318     TOK_SUPEQUAL = 414, 
     319     TOK_TRUE = 415, 
     320     TOK_FALSE = 416, 
     321     TOK_LABEL = 417, 
     322     TOK_LABEL_DJVIEW = 418, 
     323     TOK_PLAINDO_LABEL_DJVIEW = 419, 
     324     TOK_PLAINDO_LABEL = 420, 
     325     TOK_TYPE = 421, 
     326     TOK_TYPEPAR = 422, 
     327     TOK_ENDTYPE = 423, 
     328     TOK_COMMACOMPLEX = 424, 
     329     TOK_REAL = 425, 
     330     TOK_INTEGER = 426, 
     331     TOK_LOGICAL = 427, 
     332     TOK_DOUBLEPRECISION = 428, 
     333     TOK_ENDSUBROUTINE = 429, 
     334     TOK_ENDFUNCTION = 430, 
     335     TOK_ENDPROGRAM = 431, 
     336     TOK_ENDUNIT = 432, 
     337     TOK_CHARACTER = 433, 
     338     TOK_CHAR_CONSTANT = 434, 
     339     TOK_CHAR_CUT = 435, 
     340     TOK_DATA = 436, 
     341     TOK_CHAR_MESSAGE = 437, 
     342     TOK_CSTREAL = 438, 
     343     TOK_COMPLEX = 439, 
     344     TOK_DOUBLECOMPLEX = 440, 
     345     TOK_NAME = 441, 
     346     TOK_CSTINT = 442 
    288347   }; 
    289348#endif 
     
    294353{ 
    295354/* Line 387 of yacc.c  */ 
    296 #line 65 "fortran.y" 
     355#line 91 "fortran.y" 
    297356 
    298357    char        na[LONG_M]; 
     
    306365 
    307366/* Line 387 of yacc.c  */ 
    308 #line 310 "fortran.tab.c" 
     367#line 368 "fortran.tab.c" 
    309368} YYSTYPE; 
    310369# define YYSTYPE_IS_TRIVIAL 1 
     
    334393 
    335394/* Line 390 of yacc.c  */ 
    336 #line 338 "fortran.tab.c" 
     395#line 396 "fortran.tab.c" 
    337396 
    338397#ifdef short 
     
    554613#define YYFINAL  2 
    555614/* YYLAST -- Last index in YYTABLE.  */ 
    556 #define YYLAST   6268 
     615#define YYLAST   4540 
    557616 
    558617/* YYNTOKENS -- Number of terminals.  */ 
    559 #define YYNTOKENS  169 
     618#define YYNTOKENS  204 
    560619/* YYNNTS -- Number of nonterminals.  */ 
    561 #define YYNNTS  206 
     620#define YYNNTS  533 
    562621/* YYNRULES -- Number of rules.  */ 
    563 #define YYNRULES  597 
     622#define YYNRULES  1087 
    564623/* YYNRULES -- Number of states.  */ 
    565 #define YYNSTATES  1051 
     624#define YYNSTATES  1760 
    566625 
    567626/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
    568627#define YYUNDEFTOK  2 
    569 #define YYMAXUTOK   410 
     628#define YYMAXUTOK   442 
    570629 
    571630#define YYTRANSLATE(YYX)                  \ 
     
    576635{ 
    577636       0,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    578      166,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     637     198,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    579638       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    580        2,     2,     2,     2,     2,     2,     2,   168,     2,     2, 
    581      162,   163,    21,    19,     3,    20,     2,   167,     2,     2, 
     639       2,     2,     2,     2,     2,     2,     2,   200,     2,     2, 
     640     194,   195,    21,    19,     3,    20,     2,   199,     2,     2, 
    582641       2,     2,     2,     2,     2,     2,     2,     2,     4,     2, 
    583      164,     5,   165,     2,     2,     2,     2,     2,     2,     2, 
     642     196,     5,   197,     2,     2,     2,     2,     2,     2,     2, 
    584643       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    585644       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     645       2,   202,     2,   203,     2,   201,     2,     2,     2,     2, 
    587646       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    588647       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     
    616675     141,   142,   143,   144,   145,   146,   147,   148,   149,   150, 
    617676     151,   152,   153,   154,   155,   156,   157,   158,   159,   160, 
    618      161 
     677     161,   162,   163,   164,   165,   166,   167,   168,   169,   170, 
     678     171,   172,   173,   174,   175,   176,   177,   178,   179,   180, 
     679     181,   182,   183,   184,   185,   186,   187,   188,   189,   190, 
     680     191,   192,   193 
    619681}; 
    620682 
     
    624686static const yytype_uint16 yyprhs[] = 
    625687{ 
    626        0,     0,     3,     4,     7,     9,    11,    14,    16,    19, 
    627       21,    25,    28,    31,    33,    37,    41,    44,    47,    51, 
    628       53,    54,    55,    57,    58,    61,    66,    69,    75,    78, 
    629       80,    83,    85,    87,    88,    91,    95,    96,    99,   103, 
    630      105,   109,   111,   113,   116,   121,   124,   127,   132,   135, 
    631      137,   139,   141,   143,   145,   147,   149,   151,   153,   158, 
    632      162,   166,   169,   172,   173,   175,   177,   179,   181,   183, 
    633      185,   187,   189,   191,   193,   195,   197,   199,   201,   203, 
    634      205,   207,   209,   211,   213,   215,   217,   219,   221,   223, 
    635      225,   229,   233,   239,   241,   245,   249,   252,   257,   259, 
    636      263,   264,   266,   269,   273,   275,   277,   280,   282,   286, 
    637      291,   296,   305,   307,   311,   314,   318,   324,   328,   330, 
    638      331,   334,   336,   341,   345,   348,   352,   356,   360,   364, 
    639      365,   367,   370,   374,   380,   384,   386,   392,   398,   401, 
    640      405,   408,   412,   414,   416,   420,   424,   427,   431,   437, 
    641      439,   442,   444,   448,   451,   453,   457,   458,   460,   462, 
    642      466,   470,   473,   475,   479,   482,   485,   491,   498,   499, 
    643      502,   505,   509,   513,   514,   517,   522,   526,   530,   535, 
    644      538,   540,   542,   544,   546,   548,   550,   552,   553,   556, 
    645      558,   562,   563,   566,   570,   572,   576,   579,   583,   585, 
    646      587,   589,   591,   593,   594,   598,   599,   601,   605,   607, 
    647      611,   613,   615,   617,   620,   622,   627,   629,   631,   633, 
    648      635,   637,   639,   641,   643,   645,   647,   648,   652,   654, 
    649      658,   660,   662,   665,   668,   672,   674,   676,   678,   680, 
    650      682,   686,   690,   694,   699,   704,   708,   713,   718,   722, 
    651      727,   732,   737,   742,   747,   752,   757,   762,   767,   772, 
    652      777,   782,   787,   791,   796,   800,   805,   810,   812,   816, 
    653      818,   820,   822,   825,   828,   831,   833,   835,   838,   841, 
    654      844,   847,   850,   853,   856,   859,   862,   866,   870,   873, 
    655      876,   879,   882,   885,   888,   891,   894,   897,   900,   901, 
    656      903,   906,   909,   912,   914,   916,   918,   920,   921,   923, 
    657      926,   931,   937,   942,   947,   951,   953,   956,   958,   962, 
    658      964,   966,   970,   976,   981,   985,   988,   991,   993,   995, 
    659      997,   999,  1001,  1003,  1005,  1007,  1010,  1013,  1015,  1018, 
    660     1020,  1022,  1023,  1025,  1031,  1032,  1034,  1036,  1038,  1039, 
    661     1042,  1045,  1051,  1054,  1059,  1066,  1073,  1075,  1077,  1081, 
    662     1085,  1087,  1091,  1095,  1097,  1099,  1101,  1103,  1105,  1107, 
    663     1109,  1111,  1113,  1116,  1118,  1120,  1123,  1126,  1129,  1133, 
    664     1136,  1142,  1148,  1151,  1154,  1157,  1160,  1162,  1167,  1169, 
    665     1172,  1175,  1178,  1181,  1183,  1185,  1187,  1189,  1195,  1202, 
    666     1203,  1207,  1208,  1213,  1214,  1219,  1224,  1226,  1228,  1230, 
    667     1232,  1234,  1238,  1243,  1245,  1248,  1250,  1253,  1254,  1255, 
    668     1258,  1262,  1264,  1269,  1271,  1273,  1278,  1281,  1287,  1291, 
    669     1295,  1297,  1302,  1305,  1312,  1321,  1327,  1331,  1333,  1335, 
    670     1337,  1339,  1341,  1344,  1351,  1352,  1354,  1357,  1361,  1362, 
    671     1364,  1367,  1371,  1379,  1385,  1391,  1398,  1400,  1403,  1405, 
    672     1408,  1414,  1419,  1420,  1422,  1425,  1429,  1436,  1441,  1444, 
    673     1448,  1450,  1453,  1457,  1459,  1461,  1465,  1467,  1470,  1473, 
    674     1477,  1479,  1481,  1483,  1485,  1487,  1489,  1491,  1493,  1495, 
    675     1496,  1501,  1509,  1511,  1515,  1518,  1521,  1524,  1525,  1529, 
    676     1530,  1532,  1535,  1538,  1540,  1542,  1546,  1548,  1551,  1553, 
    677     1555,  1556,  1558,  1561,  1564,  1565,  1568,  1572,  1576,  1580, 
    678     1582,  1586,  1588,  1590,  1594,  1596,  1598,  1600,  1604,  1610, 
    679     1615,  1618,  1621,  1622,  1624,  1626,  1628,  1630,  1632,  1634, 
    680     1636,  1638,  1640,  1644,  1646,  1648,  1652,  1656,  1660,  1664, 
    681     1667,  1671,  1674,  1677,  1680,  1683,  1686,  1689,  1692,  1696, 
    682     1698,  1700,  1702,  1704,  1708,  1711,  1716,  1719,  1722,  1728, 
    683     1729,  1731,  1734,  1736,  1738,  1740,  1742,  1746,  1750,  1754, 
    684     1758,  1762,  1766,  1772,  1778,  1784,  1790,  1798,  1807,  1810, 
    685     1812,  1816,  1818,  1820,  1824,  1825,  1830,  1832 
     688       0,     0,     3,     4,     7,     9,    11,    13,    16,    18, 
     689      20,    24,    27,    29,    33,    37,    39,    43,    45,    46, 
     690      48,    50,    52,    54,    56,    58,    59,    61,    63,    65, 
     691      68,    71,    74,    76,    78,    81,    84,    87,    90,    93, 
     692      96,    99,   102,   105,   109,   113,   116,   119,   122,   125, 
     693     128,   131,   134,   137,   140,   143,   144,   146,   149,   152, 
     694     155,   157,   159,   161,   163,   164,   166,   169,   170,   176, 
     695     177,   184,   186,   187,   193,   198,   200,   203,   205,   209, 
     696     211,   213,   217,   223,   228,   232,   235,   238,   240,   242, 
     697     244,   246,   248,   250,   252,   254,   257,   260,   262,   265, 
     698     267,   269,   270,   272,   273,   275,   278,   279,   281,   282, 
     699     284,   286,   289,   291,   293,   295,   297,   299,   301,   303, 
     700     305,   307,   309,   311,   313,   315,   316,   318,   321,   322, 
     701     324,   326,   329,   331,   333,   334,   336,   340,   341,   343, 
     702     345,   348,   350,   352,   354,   356,   358,   360,   362,   364, 
     703     366,   368,   370,   372,   374,   376,   378,   380,   382,   384, 
     704     386,   388,   390,   392,   394,   396,   398,   400,   402,   405, 
     705     410,   413,   415,   417,   419,   421,   423,   425,   427,   429, 
     706     431,   433,   435,   437,   439,   441,   443,   445,   447,   449, 
     707     451,   453,   455,   457,   458,   460,   462,   464,   465,   467, 
     708     469,   471,   473,   475,   476,   479,   483,   487,   488,   492, 
     709     493,   497,   498,   502,   503,   507,   508,   512,   513,   517, 
     710     518,   520,   524,   530,   533,   535,   538,   540,   544,   546, 
     711     548,   550,   553,   555,   559,   565,   567,   569,   571,   573, 
     712     575,   577,   578,   581,   582,   584,   586,   596,   602,   608, 
     713     618,   622,   628,   631,   635,   639,   641,   643,   645,   647, 
     714     649,   651,   652,   657,   662,   670,   671,   674,   675,   678, 
     715     680,   684,   686,   689,   691,   695,   697,   700,   704,   705, 
     716     707,   709,   712,   714,   719,   720,   722,   726,   728,   732, 
     717     734,   736,   737,   743,   745,   747,   751,   756,   757,   761, 
     718     763,   765,   766,   768,   771,   774,   777,   779,   781,   786, 
     719     788,   792,   794,   798,   802,   807,   809,   813,   815,   819, 
     720     821,   823,   825,   829,   833,   835,   837,   839,   841,   845, 
     721     847,   849,   855,   861,   869,   871,   872,   873,   880,   881, 
     722     884,   885,   887,   890,   894,   896,   898,   899,   905,   907, 
     723     908,   914,   916,   918,   920,   922,   924,   926,   928,   932, 
     724     937,   939,   941,   942,   944,   947,   950,   953,   955,   957, 
     725     959,   960,   961,   966,   969,   974,   976,   978,   980,   982, 
     726     984,   986,   990,   994,   996,   998,  1000,  1002,  1006,  1008, 
     727    1011,  1013,  1017,  1019,  1023,  1024,  1027,  1028,  1031,  1033, 
     728    1037,  1040,  1042,  1044,  1046,  1047,  1052,  1053,  1056,  1058, 
     729    1062,  1064,  1066,  1071,  1073,  1077,  1079,  1081,  1083,  1084, 
     730    1090,  1091,  1093,  1096,  1100,  1105,  1107,  1111,  1113,  1117, 
     731    1119,  1121,  1131,  1143,  1145,  1149,  1151,  1153,  1155,  1157, 
     732    1160,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1177,  1180, 
     733    1182,  1184,  1186,  1188,  1190,  1192,  1194,  1196,  1198,  1199, 
     734    1200,  1207,  1208,  1214,  1215,  1223,  1224,  1225,  1233,  1235, 
     735    1239,  1243,  1244,  1245,  1252,  1253,  1255,  1256,  1258,  1260, 
     736    1264,  1266,  1268,  1270,  1272,  1273,  1278,  1279,  1285,  1287, 
     737    1291,  1296,  1298,  1302,  1304,  1308,  1316,  1317,  1324,  1326, 
     738    1330,  1332,  1336,  1338,  1342,  1343,  1350,  1352,  1356,  1358, 
     739    1360,  1362,  1363,  1364,  1372,  1373,  1375,  1377,  1381,  1382, 
     740    1384,  1385,  1386,  1392,  1394,  1398,  1400,  1401,  1407,  1409, 
     741    1411,  1413,  1415,  1417,  1419,  1421,  1423,  1425,  1427,  1429, 
     742    1431,  1433,  1435,  1437,  1442,  1447,  1451,  1454,  1455,  1459, 
     743    1461,  1462,  1468,  1470,  1472,  1474,  1476,  1481,  1482,  1484, 
     744    1488,  1491,  1493,  1496,  1500,  1505,  1508,  1510,  1514,  1519, 
     745    1522,  1524,  1527,  1531,  1536,  1539,  1540,  1542,  1543,  1544, 
     746    1553,  1554,  1557,  1559,  1563,  1566,  1570,  1572,  1574,  1576, 
     747    1580,  1583,  1585,  1587,  1588,  1592,  1594,  1598,  1601,  1602, 
     748    1605,  1607,  1609,  1610,  1611,  1620,  1622,  1626,  1627,  1630, 
     749    1632,  1636,  1639,  1643,  1645,  1647,  1649,  1651,  1655,  1657, 
     750    1659,  1663,  1665,  1669,  1671,  1674,  1678,  1680,  1683,  1685, 
     751    1687,  1689,  1691,  1693,  1695,  1699,  1701,  1703,  1707,  1709, 
     752    1711,  1713,  1715,  1717,  1719,  1721,  1723,  1725,  1727,  1729, 
     753    1731,  1733,  1736,  1738,  1742,  1744,  1748,  1750,  1754,  1756, 
     754    1758,  1760,  1762,  1764,  1766,  1768,  1770,  1772,  1773,  1775, 
     755    1777,  1779,  1781,  1783,  1785,  1787,  1789,  1794,  1800,  1806, 
     756    1814,  1819,  1820,  1824,  1826,  1830,  1832,  1836,  1839,  1843, 
     757    1845,  1847,  1851,  1853,  1855,  1857,  1863,  1869,  1870,  1873, 
     758    1874,  1878,  1879,  1883,  1889,  1891,  1893,  1895,  1897,  1899, 
     759    1904,  1910,  1913,  1917,  1920,  1924,  1925,  1927,  1928,  1931, 
     760    1933,  1935,  1937,  1941,  1945,  1950,  1953,  1959,  1963,  1968, 
     761    1971,  1977,  1981,  1986,  1989,  1995,  1999,  2006,  2015,  2021, 
     762    2025,  2027,  2029,  2031,  2034,  2038,  2043,  2045,  2047,  2051, 
     763    2054,  2056,  2058,  2060,  2062,  2064,  2066,  2068,  2071,  2076, 
     764    2078,  2080,  2082,  2084,  2086,  2088,  2090,  2092,  2097,  2101, 
     765    2104,  2108,  2112,  2115,  2116,  2118,  2122,  2128,  2129,  2131, 
     766    2134,  2137,  2138,  2140,  2143,  2146,  2154,  2163,  2170,  2177, 
     767    2185,  2188,  2192,  2195,  2199,  2205,  2209,  2210,  2212,  2215, 
     768    2218,  2219,  2228,  2229,  2236,  2240,  2245,  2246,  2250,  2251, 
     769    2256,  2257,  2262,  2264,  2266,  2270,  2272,  2275,  2278,  2282, 
     770    2284,  2287,  2291,  2295,  2306,  2310,  2313,  2317,  2319,  2321, 
     771    2323,  2325,  2327,  2329,  2331,  2332,  2333,  2341,  2343,  2347, 
     772    2349,  2352,  2355,  2358,  2361,  2364,  2367,  2370,  2373,  2376, 
     773    2380,  2382,  2384,  2385,  2393,  2395,  2399,  2401,  2404,  2407, 
     774    2410,  2414,  2415,  2422,  2423,  2431,  2436,  2443,  2444,  2451, 
     775    2452,  2460,  2465,  2472,  2474,  2478,  2480,  2482,  2485,  2487, 
     776    2489,  2492,  2495,  2498,  2501,  2504,  2507,  2511,  2513,  2515, 
     777    2517,  2519,  2523,  2525,  2527,  2529,  2533,  2535,  2537,  2543, 
     778    2545,  2549,  2551,  2557,  2565,  2569,  2575,  2577,  2581,  2583, 
     779    2586,  2589,  2592,  2595,  2599,  2605,  2607,  2611,  2613,  2616, 
     780    2619,  2622,  2625,  2626,  2634,  2635,  2645,  2646,  2648,  2652, 
     781    2654,  2657,  2660,  2663,  2666,  2669,  2672,  2675,  2679,  2682, 
     782    2685,  2688,  2689,  2695,  2696,  2698,  2699,  2704,  2705,  2712, 
     783    2713,  2715,  2716,  2718,  2721,  2722,  2724,  2726,  2729,  2731, 
     784    2733,  2735,  2738,  2739,  2740,  2749,  2750,  2762,  2763,  2765, 
     785    2769,  2770,  2772,  2778,  2779,  2781,  2782,  2784,  2785,  2790, 
     786    2791,  2792,  2799,  2800,  2802,  2803,  2805,  2807,  2808,  2811, 
     787    2813,  2817,  2821,  2823,  2827,  2829,  2831,  2833,  2835,  2837, 
     788    2841,  2846,  2848,  2852,  2854,  2859,  2861,  2865,  2867,  2871, 
     789    2872,  2878,  2879,  2883,  2884,  2890,  2891,  2892,  2900,  2901, 
     790    2906,  2908,  2910,  2912,  2914,  2918,  2920,  2924,  2926,  2928, 
     791    2930,  2931,  2933,  2935,  2938,  2940,  2942,  2944,  2950,  2951, 
     792    2952,  2963,  2965,  2967,  2969,  2970,  2972,  2975,  2978,  2979, 
     793    2981,  2982,  2984,  2989,  2990,  2998,  2999,  3001,  3007,  3008, 
     794    3015,  3017,  3024,  3025,  3026,  3028,  3029,  3030,  3036,  3037, 
     795    3039,  3041,  3045,  3047,  3049,  3053,  3058,  3059,  3064,  3066, 
     796    3068,  3072,  3076,  3078,  3082,  3084,  3085,  3087 
    686797}; 
    687798 
     
    689800static const yytype_int16 yyrhs[] = 
    690801{ 
    691      170,     0,    -1,    -1,   170,   171,    -1,   172,    -1,   173, 
    692       -1,   140,   173,    -1,     1,    -1,   166,   175,    -1,    24, 
    693       -1,   172,   166,   175,    -1,   172,    24,    -1,   172,   140, 
    694       -1,   174,    -1,   173,    24,   166,    -1,   173,    24,   174, 
    695       -1,   178,   175,    -1,   186,   175,    -1,    28,   181,   175, 
    696       -1,   282,    -1,    -1,    -1,    70,    -1,    -1,    26,   183, 
    697       -1,   176,    29,   180,   182,    -1,    30,   180,    -1,   176, 
    698       31,   180,   182,   177,    -1,    92,   160,    -1,   161,    -1, 
    699      179,   161,    -1,   160,    -1,   153,    -1,    -1,   162,   163, 
    700       -1,   162,   184,   163,    -1,    -1,   162,   163,    -1,   162, 
    701      184,   163,    -1,   185,    -1,   184,     3,   185,    -1,   160, 
    702       -1,    21,    -1,   228,   196,    -1,   141,   187,   195,   336, 
    703       -1,   143,   336,    -1,   114,   190,    -1,   198,   162,   221, 
    704      163,    -1,   198,   221,    -1,   215,    -1,   203,    -1,   225, 
    705       -1,   211,    -1,   213,    -1,   212,    -1,   276,    -1,   223, 
    706       -1,   209,    -1,    66,   162,   249,   163,    -1,   108,   195, 
    707      214,    -1,   110,   195,   189,    -1,    65,   191,    -1,   199, 
    708      166,    -1,    -1,   244,    -1,    42,    -1,    34,    -1,    39, 
    709       -1,    54,    -1,    77,    -1,    40,    -1,    43,    -1,    60, 
    710       -1,    55,    -1,    56,    -1,    57,    -1,    58,    -1,    59, 
    711       -1,    62,    -1,    63,    -1,    64,    -1,    67,    -1,    68, 
    712       -1,    69,    -1,    72,    -1,    73,    -1,    74,    -1,    75, 
    713       -1,   160,    -1,   188,    -1,   189,     3,   188,    -1,   162, 
    714      194,   163,    -1,   190,     3,   162,   194,   163,    -1,   192, 
    715       -1,   191,     3,   192,    -1,   162,   193,   163,    -1,   267, 
    716      245,    -1,   193,     3,   267,   245,    -1,   249,    -1,   194, 
    717        3,   249,    -1,    -1,   131,    -1,   226,   227,    -1,   197, 
    718      180,   182,    -1,    31,    -1,    25,    -1,   155,   200,    -1, 
    719      201,    -1,   200,   220,   201,    -1,   160,    22,   202,    22, 
    720       -1,   206,    22,   202,    22,    -1,   162,   257,     3,   368, 
    721      163,    22,   202,    22,    -1,   207,    -1,   207,     3,   202, 
    722       -1,   204,   205,    -1,   204,   219,   205,    -1,   203,   220, 
    723      219,   220,   205,    -1,   203,     3,   205,    -1,   116,    -1, 
    724       -1,   160,   245,    -1,   160,    -1,   160,   162,   249,   163, 
    725       -1,   206,     3,   206,    -1,   208,   268,    -1,   207,    19, 
    726      207,    -1,   207,    20,   207,    -1,   207,    21,   207,    -1, 
    727      207,   167,   207,    -1,    -1,   253,    -1,   111,   267,    -1, 
    728      111,   219,   267,    -1,   209,   220,   219,   220,   267,    -1, 
    729      209,     3,   267,    -1,   106,    -1,   210,   220,   160,   245, 
    730      233,    -1,   211,     3,   160,   245,   233,    -1,    79,   166, 
    731       -1,    79,   195,   214,    -1,    78,   166,    -1,    78,   195, 
    732      214,    -1,   160,    -1,   133,    -1,   214,     3,   160,    -1, 
    733      214,     3,   133,    -1,   216,   217,    -1,   216,   219,   217, 
    734       -1,   215,   220,   219,   220,   217,    -1,   123,    -1,   124, 
    735      123,    -1,   218,    -1,   217,     3,   218,    -1,   160,   245, 
    736       -1,    18,    -1,    22,   160,    22,    -1,    -1,     3,    -1, 
    737      222,    -1,   221,     3,   222,    -1,   160,     5,   249,    -1, 
    738      128,   224,    -1,   160,    -1,   224,     3,   160,    -1,   118, 
    739      119,    -1,   118,   130,    -1,   240,   160,   245,   233,   274, 
    740       -1,   226,     3,   160,   245,   233,   274,    -1,    -1,   232, 
    741      235,    -1,   231,   229,    -1,   232,    21,   161,    -1,   142, 
    742      237,   163,    -1,    -1,    21,   161,    -1,    21,   162,   230, 
    743      163,    -1,   162,   230,   163,    -1,   160,   238,   239,    -1, 
    744      160,     5,   238,   239,    -1,   238,   239,    -1,   152,    -1, 
    745      145,    -1,   146,    -1,   144,    -1,   158,    -1,   159,    -1, 
    746      147,    -1,    -1,    21,   234,    -1,   249,    -1,   162,    21, 
    747      163,    -1,    -1,    21,   236,    -1,   162,   237,   163,    -1, 
    748      249,    -1,   162,    21,   163,    -1,   160,   238,    -1,   160, 
    749        5,   238,    -1,   160,    -1,   161,    -1,   133,    -1,   249, 
    750       -1,    21,    -1,    -1,     3,   160,   238,    -1,    -1,   131, 
    751       -1,     3,   241,   131,    -1,   242,    -1,   241,     3,   242, 
    752       -1,    25,    -1,   244,    -1,    80,    -1,   106,   245,    -1, 
    753      108,    -1,   109,   162,   243,   163,    -1,   110,    -1,   113, 
    754       -1,   114,    -1,   116,    -1,   117,    -1,   136,    -1,   134, 
    755       -1,   135,    -1,    78,    -1,    79,    -1,    -1,   162,   246, 
    756      163,    -1,   247,    -1,   246,     3,   247,    -1,   248,    -1, 
    757        4,    -1,   249,     4,    -1,     4,   249,    -1,   249,     4, 
    758      248,    -1,    21,    -1,   249,    -1,   252,    -1,   275,    -1, 
    759      250,    -1,   162,   249,   163,    -1,    42,   251,   163,    -1, 
    760       33,   251,   163,    -1,    34,   162,   251,   163,    -1,    39, 
    761      162,   251,   163,    -1,    54,   251,   163,    -1,    77,   162, 
    762      251,   163,    -1,    40,   162,   249,   163,    -1,    43,   249, 
    763      163,    -1,   144,   162,   251,   163,    -1,    60,   162,   249, 
    764      163,    -1,    55,   162,   249,   163,    -1,    56,   162,   249, 
    765      163,    -1,    57,   162,   249,   163,    -1,    58,   162,   249, 
    766      163,    -1,    59,   162,   249,   163,    -1,    62,   162,   249, 
    767      163,    -1,    63,   162,   249,   163,    -1,    64,   162,   249, 
    768      163,    -1,    67,   162,   249,   163,    -1,    68,   162,   249, 
    769      163,    -1,    69,   162,   249,   163,    -1,    71,   249,   163, 
    770       -1,    72,   162,   251,   163,    -1,    73,   251,   163,    -1, 
    771       74,   162,   251,   163,    -1,    75,   162,   251,   163,    -1, 
    772      249,    -1,   251,     3,   249,    -1,   257,    -1,   268,    -1, 
    773      262,    -1,   249,   254,    -1,   253,   249,    -1,    11,   249, 
    774       -1,    19,    -1,    20,    -1,    19,   249,    -1,    20,   249, 
    775       -1,    21,   249,    -1,    23,   249,    -1,    13,   249,    -1, 
    776        7,   249,    -1,    16,   249,    -1,   165,   249,    -1,   164, 
    777      249,    -1,   165,     5,   249,    -1,   164,     5,   249,    -1, 
    778       17,   249,    -1,    14,   249,    -1,    15,   249,    -1,    12, 
    779      249,    -1,     6,   249,    -1,     8,   249,    -1,     9,   249, 
    780       -1,    10,   249,    -1,    22,   255,    -1,     5,   256,    -1, 
    781       -1,   249,    -1,     5,   249,    -1,    22,   249,    -1,     5, 
    782      249,    -1,   249,    -1,   267,    -1,   261,    -1,   259,    -1, 
    783       -1,   260,    -1,   260,   271,    -1,   261,   162,   263,   163, 
    784       -1,   261,   162,   263,   163,   271,    -1,   267,   162,   263, 
    785      163,    -1,   257,   168,   356,   257,    -1,   125,   366,   126, 
    786       -1,   258,    -1,   258,   264,    -1,   265,    -1,   264,     3, 
    787      265,    -1,   249,    -1,   266,    -1,   249,     4,   249,    -1, 
    788      249,     4,   249,     4,   249,    -1,     4,   249,     4,   249, 
    789       -1,     4,     4,   249,    -1,     4,   249,    -1,   249,     4, 
    790       -1,     4,    -1,   160,    -1,   138,    -1,   139,    -1,    41, 
    791       -1,   161,    -1,   157,    -1,   132,    -1,   268,   160,    -1, 
    792      269,   270,    -1,   153,    -1,   269,   153,    -1,   156,    -1, 
    793      154,    -1,    -1,   271,    -1,   162,   272,     4,   272,   163, 
    794       -1,    -1,   249,    -1,   166,    -1,   249,    -1,    -1,     5, 
    795      249,    -1,   122,   249,    -1,   162,   252,     3,   252,   163, 
    796       -1,   277,   160,    -1,   277,   160,     3,   278,    -1,   277, 
    797      160,     3,    27,     4,   166,    -1,   277,   160,     3,    27, 
    798        4,   280,    -1,   137,    -1,   279,    -1,   278,     3,   279, 
    799       -1,   160,   122,   160,    -1,   281,    -1,   280,     3,   281, 
    800       -1,   160,   122,   160,    -1,   160,    -1,   283,    -1,   331, 
    801       -1,   284,    -1,   300,    -1,   320,    -1,   310,    -1,   287, 
    802       -1,   115,    -1,   338,   340,    -1,   369,    -1,   341,    -1, 
    803      357,   352,    -1,   359,   350,    -1,   100,   352,    -1,   100, 
    804      352,   366,    -1,   103,   353,    -1,    96,   162,   370,   373, 
    805      163,    -1,   104,   162,   372,   373,   163,    -1,    76,   272, 
    806       -1,    81,   273,    -1,    61,   273,    -1,   348,   273,    -1, 
    807      339,    -1,   105,   162,   374,   163,    -1,   333,    -1,   334, 
    808      336,    -1,   332,   336,    -1,   335,   336,    -1,    93,   336, 
    809       -1,   319,    -1,   286,    -1,    90,    -1,   249,    -1,    35, 
    810      162,   294,   163,   293,    -1,   291,   172,   288,   289,   290, 
    811      297,    -1,    -1,   288,   292,   172,    -1,    -1,   289,   295, 
    812      172,   288,    -1,    -1,   290,   296,   172,   288,    -1,    35, 
    813      162,   294,   163,    -1,   293,    -1,   286,    -1,   287,    -1, 
    814      285,    -1,   249,    -1,    36,   294,   163,    -1,    36,   294, 
    815      163,   160,    -1,    37,    -1,    37,   160,    -1,    38,    -1, 
    816       38,   160,    -1,    -1,    -1,   299,   282,    -1,   299,   282, 
    817      172,    -1,   301,    -1,   302,   172,   307,   308,    -1,   303, 
    818       -1,   304,    -1,   160,     4,    89,   179,    -1,    89,   179, 
    819       -1,   160,     4,    89,   179,   305,    -1,    89,   179,   305, 
    820       -1,   160,     4,    89,    -1,    89,    -1,   160,     4,    89, 
    821      305,    -1,    89,   305,    -1,   220,   306,     5,   249,     3, 
    822      249,    -1,   220,   306,     5,   249,     3,   249,     3,   249, 
    823       -1,   220,    94,   162,   249,   163,    -1,   220,    95,   298, 
    824       -1,   267,    -1,   299,    -1,   309,    -1,   330,    -1,    91, 
    825       -1,    91,   160,    -1,   315,   172,   299,   311,   313,   318, 
    826       -1,    -1,   312,    -1,   311,   312,    -1,   316,   172,   299, 
    827       -1,    -1,   314,    -1,   313,   312,    -1,   317,   172,   299, 
    828       -1,   160,     4,    88,   162,   249,   163,    82,    -1,    88, 
    829      162,   249,   163,    82,    -1,    83,   162,   249,   163,    82, 
    830       -1,    83,   162,   249,   163,    82,   160,    -1,    84,    -1, 
    831       84,   160,    -1,    85,    -1,    85,   160,    -1,    88,   162, 
    832      249,   163,   284,    -1,   323,   172,   321,   325,    -1,    -1, 
    833      322,    -1,   321,   322,    -1,   324,   172,   299,    -1,   160, 
    834        4,    45,   162,   249,   163,    -1,    45,   162,   249,   163, 
    835       -1,    44,   326,    -1,    44,   326,   160,    -1,   107,    -1, 
    836      107,   160,    -1,   162,   327,   163,    -1,   112,    -1,   328, 
    837       -1,   327,     3,   328,    -1,   329,    -1,   329,     4,    -1, 
    838        4,   329,    -1,   329,     4,   329,    -1,   249,    -1,   115, 
    839       -1,    32,    -1,   148,    -1,   151,    -1,   150,    -1,   149, 
    840       -1,   166,    -1,   160,    -1,    -1,   267,   337,   245,   245, 
    841       -1,   338,   168,   356,   267,   337,   245,   245,    -1,   161, 
    842       -1,   339,     3,   161,    -1,     5,   249,    -1,   122,   249, 
    843       -1,   344,   342,    -1,    -1,   162,   343,   163,    -1,    -1, 
    844      346,    -1,   345,   101,    -1,   345,   160,    -1,   120,    -1, 
    845      347,    -1,   346,     3,   347,    -1,   249,    -1,    21,   161, 
    846       -1,   127,    -1,   129,    -1,    -1,   363,    -1,   352,   349, 
    847       -1,   358,   351,    -1,    -1,     3,   363,    -1,   162,   354, 
    848      163,    -1,   162,   267,   163,    -1,   162,   161,   163,    -1, 
    849      161,    -1,   162,   252,   163,    -1,   160,    -1,   355,    -1, 
    850      354,     3,   355,    -1,   360,    -1,    21,    -1,    23,    -1, 
    851      267,   249,   245,    -1,   267,   249,   168,   356,   338,    -1, 
    852      267,   162,   266,   163,    -1,   267,    21,    -1,   267,    23, 
    853       -1,    -1,    97,    -1,    98,    -1,   101,    -1,   361,    -1, 
    854       21,    -1,   102,    -1,    99,    -1,    86,    -1,   361,    -1, 
    855      162,   360,   163,    -1,   257,    -1,   268,    -1,   360,   362, 
    856      360,    -1,   360,    21,   360,    -1,   360,    22,   360,    -1, 
    857      360,    23,   360,    -1,   362,   360,    -1,   360,    18,   360, 
    858       -1,    46,   249,    -1,    47,   249,    -1,    49,   249,    -1, 
    859       48,   249,    -1,    53,   249,    -1,    52,   249,    -1,    50, 
    860      249,    -1,   160,     5,   249,    -1,   250,    -1,    19,    -1, 
    861       20,    -1,   364,    -1,   363,     3,   364,    -1,   257,   365, 
    862       -1,   162,   363,   163,   365,    -1,   250,   365,    -1,   268, 
    863      365,    -1,   162,   363,     3,   368,   163,    -1,    -1,   254, 
    864       -1,   365,   254,    -1,   275,    -1,   250,    -1,   252,    -1, 
    865      367,    -1,   252,     3,   249,    -1,   252,     3,   367,    -1, 
    866      367,     3,   249,    -1,   367,     3,   367,    -1,   366,     3, 
    867      249,    -1,   366,     3,   367,    -1,   162,   252,     3,   368, 
    868      163,    -1,   162,   366,     3,   368,   163,    -1,   162,   367, 
    869        3,   368,   163,    -1,   160,     5,   249,     3,   249,    -1, 
    870      160,     5,   249,     3,   249,     3,   249,    -1,    87,   162, 
    871      249,     3,   249,   163,     3,   249,    -1,    87,   161,    -1, 
    872      371,    -1,   370,     3,   371,    -1,   257,    -1,   371,    -1, 
    873      372,     3,   371,    -1,    -1,     3,   121,     5,   257,    -1, 
    874      267,    -1,   374,     3,   267,    -1 
     802     205,     0,    -1,    -1,   205,   206,    -1,   207,    -1,   208, 
     803      -1,     1,    -1,   198,   210,    -1,    24,    -1,    65,    -1, 
     804     207,   198,   210,    -1,   207,    24,    -1,   209,    -1,   208, 
     805      24,   198,    -1,   208,    24,   209,    -1,   211,    -1,    28, 
     806     213,   210,    -1,    37,    -1,    -1,   664,    -1,   212,    -1, 
     807     644,    -1,   703,    -1,   718,    -1,   185,    -1,    -1,     3, 
     808      -1,   220,    -1,   233,    -1,   509,   217,    -1,   216,   509, 
     809      -1,    11,   509,    -1,    19,    -1,    20,    -1,    19,   509, 
     810      -1,    20,   509,    -1,    21,   509,    -1,    23,   509,    -1, 
     811      13,   509,    -1,     7,   509,    -1,    16,   509,    -1,   197, 
     812     509,    -1,   196,   509,    -1,   197,     5,   509,    -1,   196, 
     813       5,   509,    -1,    17,   509,    -1,    14,   509,    -1,    15, 
     814     509,    -1,    12,   509,    -1,     6,   509,    -1,     8,   509, 
     815      -1,     9,   509,    -1,    10,   509,    -1,    22,   218,    -1, 
     816       5,   219,    -1,    -1,   509,    -1,     5,   509,    -1,    22, 
     817     509,    -1,     5,   509,    -1,   509,    -1,   232,    -1,   227, 
     818      -1,   222,    -1,    -1,   225,    -1,   225,   451,    -1,    -1, 
     819     227,   194,   223,   228,   195,    -1,    -1,   227,   194,   224, 
     820     228,   195,   451,    -1,   110,    -1,    -1,   232,   194,   226, 
     821     228,   195,    -1,   220,   200,   735,   220,    -1,   221,    -1, 
     822     221,   229,    -1,   230,    -1,   229,     3,   230,    -1,   509, 
     823      -1,   231,    -1,   509,     4,   509,    -1,   509,     4,   509, 
     824       4,   509,    -1,     4,   509,     4,   509,    -1,     4,     4, 
     825     509,    -1,     4,   509,    -1,   509,     4,    -1,     4,    -1, 
     826     192,    -1,   166,    -1,   167,    -1,    44,    -1,   193,    -1, 
     827     189,    -1,   156,    -1,   233,   192,    -1,   234,   235,    -1, 
     828     185,    -1,   234,   185,    -1,   188,    -1,   186,    -1,    -1, 
     829     451,    -1,    -1,   509,    -1,   238,   239,    -1,    -1,   657, 
     830      -1,    -1,   240,    -1,   241,    -1,   240,   241,    -1,   291, 
     831      -1,   399,    -1,   643,    -1,   413,    -1,   252,    -1,   332, 
     832      -1,   521,    -1,   522,    -1,   547,    -1,   595,    -1,   730, 
     833      -1,   618,    -1,   567,    -1,    -1,   243,    -1,   253,   244, 
     834      -1,    -1,   245,    -1,   246,    -1,   245,   246,    -1,   253, 
     835      -1,   643,    -1,    -1,   248,    -1,   113,   207,   249,    -1, 
     836      -1,   250,    -1,   251,    -1,   250,   251,    -1,   703,    -1, 
     837     718,    -1,   367,    -1,   372,    -1,   429,    -1,   376,    -1, 
     838     393,    -1,   423,    -1,   681,    -1,   684,    -1,   419,    -1, 
     839     404,    -1,   254,    -1,   547,    -1,   577,    -1,   567,    -1, 
     840     533,    -1,   465,    -1,   521,    -1,   689,    -1,   608,    -1, 
     841     595,    -1,   566,    -1,   482,    -1,   593,    -1,   592,    -1, 
     842     634,    -1,    79,   236,    -1,   130,   194,   736,   195,    -1, 
     843     116,   733,    -1,   576,    -1,   637,    -1,   601,    -1,   522, 
     844      -1,   618,    -1,   612,    -1,   730,    -1,   631,    -1,   596, 
     845      -1,   532,    -1,   615,    -1,   594,    -1,   232,    -1,   257, 
     846      -1,   258,    -1,   259,    -1,   277,    -1,   280,    -1,   290, 
     847      -1,   281,    -1,   289,    -1,   232,    -1,    -1,   261,    -1, 
     848     168,    -1,   193,    -1,    -1,   263,    -1,   169,    -1,   514, 
     849      -1,    21,    -1,     4,    -1,    -1,   266,   267,    -1,   173, 
     850     267,   195,    -1,   173,   316,   195,    -1,    -1,   177,   268, 
     851     274,    -1,    -1,   176,   269,   274,    -1,    -1,   179,   270, 
     852     274,    -1,    -1,   190,   271,   274,    -1,    -1,   184,   272, 
     853     285,    -1,    -1,   178,   273,   274,    -1,    -1,   275,    -1, 
     854     194,   519,   195,    -1,   194,    95,     5,   519,   195,    -1, 
     855      21,   193,    -1,   277,    -1,   496,   277,    -1,   193,    -1, 
     856     193,   201,   278,    -1,   193,    -1,   192,    -1,   280,    -1, 
     857     496,   280,    -1,   189,    -1,   189,   201,   278,    -1,   194, 
     858     282,   175,   283,   195,    -1,   276,    -1,   279,    -1,   232, 
     859      -1,   276,    -1,   279,    -1,   259,    -1,    -1,    21,   288, 
     860      -1,    -1,   286,    -1,   287,    -1,   194,    74,     5,   264, 
     861       3,    95,     5,   519,   195,    -1,   194,   264,     3,   519, 
     862     195,    -1,   194,    95,     5,   519,   195,    -1,   194,    95, 
     863       5,   519,     3,    74,     5,   264,   195,    -1,   194,   264, 
     864     195,    -1,   194,    74,     5,   264,   195,    -1,    21,   288, 
     865      -1,    21,   288,     3,    -1,   194,   264,   195,    -1,   277, 
     866      -1,   185,    -1,   188,    -1,   186,    -1,   166,    -1,   167, 
     867      -1,    -1,   293,   292,   301,   300,    -1,   172,   294,   192, 
     868     207,    -1,   172,   295,   192,   194,   298,   195,   207,    -1, 
     869      -1,   295,   155,    -1,    -1,     3,   296,    -1,   297,    -1, 
     870     296,     3,   297,    -1,   348,    -1,    47,   195,    -1,   299, 
     871      -1,   298,     3,   299,    -1,   192,    -1,   174,   207,    -1, 
     872     174,   192,   207,    -1,    -1,   302,    -1,   303,    -1,   302, 
     873     303,    -1,   304,    -1,   265,   305,   309,   207,    -1,    -1, 
     874     155,    -1,     3,   306,   155,    -1,   307,    -1,   306,     3, 
     875     307,    -1,   348,    -1,   102,    -1,    -1,   131,   194,   308, 
     876     312,   195,    -1,   139,    -1,   310,    -1,   309,     3,   310, 
     877      -1,   232,   311,   284,   313,    -1,    -1,   194,   312,   195, 
     878      -1,   353,    -1,   359,    -1,    -1,   314,    -1,     5,   516, 
     879      -1,   147,   347,    -1,   147,   315,    -1,   440,    -1,   232, 
     880      -1,   232,   194,   317,   195,    -1,   318,    -1,   317,     3, 
     881     318,    -1,   264,    -1,   255,     5,   264,    -1,   316,   194, 
     882     195,    -1,   316,   194,   320,   195,    -1,   321,    -1,   320, 
     883       3,   321,    -1,   322,    -1,   255,     5,   322,    -1,   509, 
     884      -1,   528,    -1,   531,    -1,   150,   324,   151,    -1,   325, 
     885     324,   326,    -1,   327,    -1,   202,    -1,   203,    -1,   328, 
     886      -1,   327,     3,   328,    -1,   509,    -1,   329,    -1,   194, 
     887     327,     3,   330,   195,    -1,   331,     5,   514,     3,   514, 
     888      -1,   331,     5,   514,     3,   514,     3,   514,    -1,   553, 
     889      -1,    -1,    -1,   333,   265,   335,   341,   334,   207,    -1, 
     890      -1,   336,   155,    -1,    -1,   337,    -1,     3,   338,    -1, 
     891     337,     3,   338,    -1,   348,    -1,   102,    -1,    -1,   131, 
     892     194,   339,   352,   195,    -1,   133,    -1,    -1,   134,   194, 
     893     340,   366,   195,    -1,   135,    -1,   138,    -1,    25,    -1, 
     894     139,    -1,   141,    -1,   142,    -1,   342,    -1,   341,     3, 
     895     342,    -1,   344,   349,   284,   345,    -1,   232,    -1,   192, 
     896      -1,    -1,   346,    -1,     5,   516,    -1,   147,   347,    -1, 
     897     147,   315,    -1,   687,    -1,   100,    -1,   101,    -1,    -1, 
     898      -1,   194,   350,   352,   195,    -1,    47,   195,    -1,    47, 
     899       3,    52,   195,    -1,   353,    -1,   357,    -1,   359,    -1, 
     900     361,    -1,   364,    -1,   354,    -1,   353,     3,   354,    -1, 
     901     355,     4,   356,    -1,   356,    -1,   515,    -1,   515,    -1, 
     902     358,    -1,   357,     3,   358,    -1,     4,    -1,   355,     4, 
     903      -1,   360,    -1,   359,     3,   360,    -1,     4,    -1,   362, 
     904     363,    21,    -1,    -1,   353,     3,    -1,    -1,   355,     4, 
     905      -1,   365,    -1,   364,     3,   365,    -1,   363,    21,    -1, 
     906     160,    -1,   158,    -1,   159,    -1,    -1,   348,   369,   368, 
     907     207,    -1,    -1,   407,   370,    -1,   371,    -1,   370,     3, 
     908     371,    -1,   192,    -1,   680,    -1,   351,   407,   373,   207, 
     909      -1,   374,    -1,   373,     3,   374,    -1,   375,    -1,   433, 
     910      -1,   192,    -1,    -1,   187,   380,   378,   377,   207,    -1, 
     911      -1,   379,    -1,   434,   380,    -1,   379,   434,   380,    -1, 
     912     381,    22,   382,    22,    -1,   383,    -1,   381,     3,   383, 
     913      -1,   388,    -1,   382,     3,   388,    -1,   442,    -1,   384, 
     914      -1,   194,   385,     3,   387,     5,   519,     3,   519,   195, 
     915      -1,   194,   385,     3,   387,     5,   519,     3,   519,     3, 
     916     519,   195,    -1,   386,    -1,   385,     3,   386,    -1,   459, 
     917      -1,   457,    -1,   384,    -1,   553,    -1,   391,   389,    -1, 
     918     277,   389,    -1,   289,   389,    -1,   276,    -1,   279,    -1, 
     919     347,    -1,   315,    -1,   319,    -1,    -1,    21,   390,    -1, 
     920     256,    -1,   391,    -1,   276,    -1,   279,    -1,   347,    -1, 
     921     315,    -1,   319,    -1,   392,    -1,   440,    -1,    -1,    -1, 
     922     394,   131,   407,   396,   395,   207,    -1,    -1,   192,   194, 
     923     397,   352,   195,    -1,    -1,   396,     3,   192,   194,   398, 
     924     352,   195,    -1,    -1,    -1,    25,   400,   194,   402,   195, 
     925     401,   207,    -1,   403,    -1,   402,     3,   403,    -1,   192, 
     926       5,   516,    -1,    -1,    -1,   405,   141,   407,   408,   406, 
     927     207,    -1,    -1,   155,    -1,    -1,   409,    -1,   410,    -1, 
     928     409,     3,   410,    -1,   343,    -1,   411,    -1,   433,    -1, 
     929     232,    -1,    -1,   412,   143,   415,   207,    -1,    -1,   412, 
     930     143,   144,   414,   207,    -1,   416,    -1,   415,     3,   416, 
     931      -1,   265,   194,   417,   195,    -1,   418,    -1,   417,     3, 
     932     418,    -1,   192,    -1,   192,    20,   192,    -1,   136,    22, 
     933     192,    22,   421,   420,   207,    -1,    -1,   420,   434,    22, 
     934     192,    22,   421,    -1,   422,    -1,   421,     3,   422,    -1, 
     935     443,    -1,    83,   424,   207,    -1,   425,    -1,   424,     3, 
     936     425,    -1,    -1,   194,   426,   428,     3,   427,   195,    -1, 
     937     428,    -1,   427,     3,   428,    -1,   443,    -1,   459,    -1, 
     938     451,    -1,    -1,    -1,   148,   430,   432,   437,   435,   431, 
     939     207,    -1,    -1,   433,    -1,    18,    -1,    22,   192,    22, 
     940      -1,    -1,     3,    -1,    -1,    -1,   435,   434,   433,   436, 
     941     437,    -1,   438,    -1,   437,     3,   438,    -1,   192,    -1, 
     942      -1,   192,   194,   439,   352,   195,    -1,   459,    -1,   460, 
     943      -1,   458,    -1,   451,    -1,   442,    -1,   440,    -1,   232, 
     944      -1,   445,    -1,   442,    -1,   442,    -1,   448,    -1,   442, 
     945      -1,   450,    -1,   442,    -1,   453,    -1,   453,   194,   452, 
     946     195,    -1,   289,   194,   452,   195,    -1,   513,     4,   513, 
     947      -1,   455,   454,    -1,    -1,   454,   200,   455,    -1,   232, 
     948      -1,    -1,   232,   194,   456,   461,   195,    -1,   458,    -1, 
     949     453,    -1,   453,    -1,   453,    -1,   453,   194,   452,   195, 
     950      -1,    -1,   462,    -1,   461,     3,   462,    -1,   509,   463, 
     951      -1,     4,    -1,     4,   509,    -1,     4,     4,   509,    -1, 
     952       4,   509,     4,   509,    -1,   155,   509,    -1,   464,    -1, 
     953     232,     5,   509,    -1,   232,     5,    21,   261,    -1,    21, 
     954     261,    -1,     4,    -1,     4,   509,    -1,     4,     4,   509, 
     955      -1,     4,   509,     4,   509,    -1,   155,   509,    -1,    -1, 
     956     512,    -1,    -1,    -1,   119,   194,   466,   473,   468,   195, 
     957     467,   207,    -1,    -1,     3,   469,    -1,   470,    -1,   469, 
     958       3,   470,    -1,    98,   472,    -1,   146,     5,   471,    -1, 
     959     449,    -1,   447,    -1,   474,    -1,   473,     3,   474,    -1, 
     960     475,   476,    -1,   443,    -1,   458,    -1,    -1,   194,   477, 
     961     195,    -1,   478,    -1,   477,     3,   478,    -1,   479,   481, 
     962      -1,    -1,   480,     4,    -1,   514,    -1,   514,    -1,    -1, 
     963      -1,   129,   194,   483,   485,   486,   195,   484,   207,    -1, 
     964     475,    -1,   485,     3,   475,    -1,    -1,     3,   487,    -1, 
     965     488,    -1,   487,     3,   488,    -1,    98,   472,    -1,   146, 
     966       5,   471,    -1,   440,    -1,   258,    -1,   323,    -1,   687, 
     967      -1,   194,   509,   195,    -1,   489,    -1,   490,    -1,   490, 
     968     494,   491,    -1,   491,    -1,   492,   495,   491,    -1,   492, 
     969      -1,   496,   492,    -1,   493,   496,   492,    -1,   276,    -1, 
     970     493,   276,    -1,    23,    -1,    21,    -1,    22,    -1,    19, 
     971      -1,    20,    -1,   493,    -1,   497,   498,   493,    -1,    18, 
     972      -1,   497,    -1,   497,   500,   497,    -1,    13,    -1,    12, 
     973      -1,    17,    -1,    15,    -1,    16,    -1,    14,    -1,   162, 
     974      -1,   163,    -1,   196,    -1,   164,    -1,   197,    -1,   165, 
     975      -1,   499,    -1,   505,   499,    -1,   501,    -1,   502,   506, 
     976     501,    -1,   502,    -1,   503,   507,   502,    -1,   503,    -1, 
     977     504,   508,   503,    -1,    11,    -1,    10,    -1,     9,    -1, 
     978       7,    -1,     6,    -1,   504,    -1,   511,    -1,   509,    -1, 
     979     509,    -1,    -1,   514,    -1,   512,    -1,   514,    -1,   509, 
     980      -1,   518,    -1,   511,    -1,   520,    -1,   512,    -1,   442, 
     981       5,   509,   207,    -1,   261,   442,     5,   509,   207,    -1, 
     982     440,   523,   147,   528,   207,    -1,   440,   194,   525,   195, 
     983     147,   528,   207,    -1,   440,   147,   531,   207,    -1,    -1, 
     984     194,   524,   195,    -1,   526,    -1,   524,     3,   526,    -1, 
     985     527,    -1,   525,     3,   527,    -1,   480,     4,    -1,   480, 
     986       4,   481,    -1,   442,    -1,   192,    -1,   441,   200,   529, 
     987      -1,   509,    -1,   529,    -1,   530,    -1,    38,   194,   540, 
     988     195,   539,    -1,   537,   534,   535,   536,   543,    -1,    -1, 
     989     534,   538,    -1,    -1,   535,   541,   534,    -1,    -1,   536, 
     990     542,   534,    -1,    38,   194,   540,   195,   207,    -1,   539, 
     991      -1,   532,    -1,   533,    -1,   521,    -1,   509,    -1,    39, 
     992     540,   195,   207,    -1,    39,   540,   195,   192,   207,    -1, 
     993      40,   207,    -1,    40,   192,   207,    -1,    41,   207,    -1, 
     994      41,   192,   207,    -1,    -1,   546,    -1,    -1,   546,   246, 
     995      -1,   548,    -1,   557,    -1,   548,    -1,   549,   554,   555, 
     996      -1,   551,   554,   555,    -1,   192,     4,   171,   207,    -1, 
     997     171,   207,    -1,   192,     4,   171,   552,   207,    -1,   171, 
     998     552,   207,    -1,   192,     4,   170,   207,    -1,   170,   207, 
     999      -1,   192,     4,   170,   552,   207,    -1,   170,   552,   207, 
     1000      -1,   192,     4,   112,   207,    -1,   112,   207,    -1,   192, 
     1001       4,   112,   552,   207,    -1,   112,   552,   207,    -1,   214, 
     1002     553,     5,   509,     3,   509,    -1,   214,   553,     5,   509, 
     1003       3,   509,     3,   509,    -1,   214,   117,   194,   509,   195, 
     1004      -1,   214,   118,   544,    -1,   232,    -1,   545,    -1,   556, 
     1005      -1,   263,   595,    -1,   262,   114,   207,    -1,   262,   114, 
     1006     192,   207,    -1,   558,    -1,   561,    -1,   549,   554,   559, 
     1007      -1,   263,   560,    -1,   465,    -1,   521,    -1,   689,    -1, 
     1008     608,    -1,   482,    -1,   634,    -1,   593,    -1,   128,   734, 
     1009      -1,   130,   194,   736,   195,    -1,   576,    -1,   637,    -1, 
     1010     601,    -1,   618,    -1,   612,    -1,   631,    -1,   532,    -1, 
     1011     615,    -1,   549,   554,   562,   563,    -1,   549,   554,   563, 
     1012      -1,   550,   554,    -1,   562,   550,   554,    -1,   550,   554, 
     1013     564,    -1,   263,   254,    -1,    -1,   192,    -1,    79,   565, 
     1014     207,    -1,   572,   545,   568,   570,   575,    -1,    -1,   569, 
     1015      -1,   568,   569,    -1,   573,   545,    -1,    -1,   571,    -1, 
     1016     570,   569,    -1,   574,   545,    -1,   192,     4,   111,   509, 
     1017     195,   104,   207,    -1,   261,   192,     4,   111,   509,   195, 
     1018     104,   207,    -1,   260,   111,   509,   195,   104,   207,    -1, 
     1019     105,   194,   509,   195,   104,   207,    -1,   105,   194,   509, 
     1020     195,   104,   192,   207,    -1,   106,   207,    -1,   106,   192, 
     1021     207,    -1,   107,   207,    -1,   107,   192,   207,    -1,   260, 
     1022     111,   509,   195,   254,    -1,   580,   578,   584,    -1,    -1, 
     1023     579,    -1,   578,   579,    -1,   583,   545,    -1,    -1,   192, 
     1024       4,    49,   194,   509,   195,   581,   207,    -1,    -1,    49, 
     1025     194,   509,   195,   582,   207,    -1,    48,   587,   207,    -1, 
     1026      48,   587,   192,   207,    -1,    -1,   132,   585,   207,    -1, 
     1027      -1,   132,   192,   586,   207,    -1,    -1,   194,   588,   589, 
     1028     195,    -1,   137,    -1,   590,    -1,   589,     3,   590,    -1, 
     1029     591,    -1,   591,     4,    -1,     4,   591,    -1,   591,     4, 
     1030     591,    -1,   509,    -1,    94,   207,    -1,    94,   192,   207, 
     1031      -1,   109,   261,   207,    -1,   260,   111,   509,   195,   261, 
     1032       3,   261,     3,   261,   207,    -1,   260,   140,   207,    -1, 
     1033     154,   207,    -1,   154,   597,   207,    -1,   517,    -1,   519, 
     1034      -1,   599,    -1,    21,    -1,   600,    -1,   514,    -1,   446, 
     1035      -1,    -1,    -1,   120,   194,   602,   604,   195,   603,   207, 
     1036      -1,   605,    -1,   604,     3,   605,    -1,   599,    -1,    59, 
     1037     599,    -1,    54,   510,    -1,    55,   510,    -1,    66,   261, 
     1038      -1,    50,   606,    -1,    56,   510,    -1,    68,   449,    -1, 
     1039      67,   510,    -1,    57,   514,    -1,    58,     5,   510,    -1, 
     1040     510,    -1,   447,    -1,    -1,   260,   121,   194,   609,   610, 
     1041     195,   207,    -1,   611,    -1,   610,     3,   611,    -1,   599, 
     1042      -1,    59,   599,    -1,    68,   449,    -1,    66,   261,    -1, 
     1043      58,     5,   510,    -1,    -1,   260,   126,   619,   195,   613, 
     1044     207,    -1,    -1,   260,   126,   619,   195,   623,   614,   207, 
     1045      -1,   260,   127,   622,   207,    -1,   260,   127,   622,     3, 
     1046     623,   207,    -1,    -1,   260,   123,   619,   195,   616,   207, 
     1047      -1,    -1,   260,   123,   619,   195,   625,   617,   207,    -1, 
     1048     260,   108,   622,   207,    -1,   260,   108,   622,     3,   625, 
     1049     207,    -1,   621,    -1,   619,     3,   621,    -1,   192,    -1, 
     1050     598,    -1,    59,   598,    -1,   622,    -1,   620,    -1,    62, 
     1051     620,    -1,    61,   622,    -1,    63,   261,    -1,    64,   261, 
     1052      -1,    66,   261,    -1,    68,   449,    -1,    51,     5,   514, 
     1053      -1,   511,    -1,   261,    -1,    21,    -1,   624,    -1,   623, 
     1054       3,   624,    -1,   442,    -1,   627,    -1,   626,    -1,   625, 
     1055       3,   626,    -1,   509,    -1,   627,    -1,   194,   628,     3, 
     1056     630,   195,    -1,   629,    -1,   628,     3,   629,    -1,   626, 
     1057      -1,   553,     5,   514,     3,   514,    -1,   553,     5,   514, 
     1058       3,   514,     3,   514,    -1,   128,   599,   207,    -1,   128, 
     1059     194,   632,   195,   207,    -1,   633,    -1,   632,     3,   633, 
     1060      -1,   599,    -1,    59,   599,    -1,    69,   607,    -1,    68, 
     1061     449,    -1,    66,   261,    -1,   125,   599,   207,    -1,   125, 
     1062     194,   635,   195,   207,    -1,   636,    -1,   635,     3,   636, 
     1063      -1,   599,    -1,    59,   599,    -1,    68,   449,    -1,    69, 
     1064     607,    -1,    66,   261,    -1,    -1,   122,   640,   194,   641, 
     1065     195,   638,   207,    -1,    -1,   122,   640,   194,    53,   449, 
     1066     195,   625,   639,   207,    -1,    -1,   642,    -1,   641,     3, 
     1067     642,    -1,   599,    -1,    59,   599,    -1,    50,   606,    -1, 
     1068      54,   447,    -1,    55,   447,    -1,    66,   261,    -1,    70, 
     1069     444,    -1,    68,   449,    -1,    52,     5,   447,    -1,    60, 
     1070     444,    -1,    57,   449,    -1,    32,   207,    -1,    -1,   647, 
     1071     665,   646,   645,   649,    -1,    -1,   653,    -1,    -1,   115, 
     1072     192,   648,   207,    -1,    -1,   412,   183,   651,   652,   650, 
     1073     207,    -1,    -1,   115,    -1,    -1,   192,    -1,   731,   654, 
     1074      -1,    -1,   655,    -1,   656,    -1,   655,   656,    -1,   703, 
     1075      -1,   718,    -1,   659,    -1,   657,   659,    -1,    -1,    -1, 
     1076     412,   161,   658,   662,   192,   674,   660,   207,    -1,    -1, 
     1077     412,   161,   658,   662,   192,     3,    27,     4,   663,   661, 
     1078     207,    -1,    -1,   155,    -1,     3,   673,   155,    -1,    -1, 
     1079     677,    -1,   666,   665,   242,   247,   668,    -1,    -1,   237, 
     1080      -1,    -1,   243,    -1,    -1,    30,   192,   667,   207,    -1, 
     1081      -1,    -1,   669,   183,   671,   672,   670,   207,    -1,    -1, 
     1082      30,    -1,    -1,   192,    -1,   135,    -1,    -1,     3,   675, 
     1083      -1,   676,    -1,   675,     3,   676,    -1,   192,   147,   192, 
     1084      -1,   678,    -1,   677,     3,   678,    -1,   680,    -1,   679, 
     1085      -1,   676,    -1,   192,    -1,   192,    -1,   133,   682,   207, 
     1086      -1,   133,   155,   682,   207,    -1,   683,    -1,   682,     3, 
     1087     683,    -1,   192,    -1,   135,   407,   685,   207,    -1,   686, 
     1088      -1,   685,     3,   686,    -1,   192,    -1,   696,   194,   195, 
     1089      -1,    -1,   696,   194,   688,   697,   195,    -1,    -1,   694, 
     1090     690,   207,    -1,    -1,   694,   194,   195,   691,   207,    -1, 
     1091      -1,    -1,   694,   194,   692,   697,   195,   693,   207,    -1, 
     1092      -1,   260,   145,   695,   696,    -1,   232,    -1,   125,    -1, 
     1093     176,    -1,   698,    -1,   697,     3,   698,    -1,   699,    -1, 
     1094     255,     5,   699,    -1,   509,    -1,   442,    -1,   232,    -1, 
     1095      -1,   701,    -1,   702,    -1,   701,   702,    -1,   265,    -1, 
     1096     115,    -1,    88,    -1,   704,   665,   242,   247,   715,    -1, 
     1097      -1,    -1,   700,    31,   707,   194,   705,   727,   195,   710, 
     1098     706,   207,    -1,   192,    -1,   351,    -1,   192,    -1,    -1, 
     1099     711,    -1,   708,   712,    -1,   714,   713,    -1,    -1,   714, 
     1100      -1,    -1,   708,    -1,    26,   194,   192,   195,    -1,    -1, 
     1101     412,   183,   717,   652,   723,   716,   207,    -1,    -1,    31, 
     1102      -1,   719,   665,   242,   247,   722,    -1,    -1,   700,    29, 
     1103     721,   725,   720,   207,    -1,   192,    -1,   412,   183,   724, 
     1104     652,   723,   207,    -1,    -1,    -1,    29,    -1,    -1,    -1, 
     1105     194,   726,   727,   195,   713,    -1,    -1,   728,    -1,   729, 
     1106      -1,   728,     3,   729,    -1,   709,    -1,    21,    -1,   260, 
     1107     103,   207,    -1,   260,   103,   514,   207,    -1,    -1,   260, 
     1108     113,   732,   207,    -1,   198,    -1,   192,    -1,   194,   232, 
     1109     195,    -1,   194,   193,   195,    -1,   193,    -1,   194,   215, 
     1110     195,    -1,   192,    -1,    -1,   232,    -1,   736,     3,   232, 
     1111      -1 
    8751112}; 
    8761113 
     
    8781115static const yytype_uint16 yyrline[] = 
    8791116{ 
    880        0,   313,   313,   314,   316,   317,   318,   319,   322,   323, 
    881      324,   325,   326,   329,   330,   331,   334,   335,   336,   344, 
    882      347,   350,   351,   354,   355,   358,   366,   375,   392,   411, 
    883      412,   415,   417,   419,   420,   421,   423,   424,   425,   427, 
    884      439,   451,   452,   454,   455,   456,   457,   458,   475,   492, 
    885      493,   498,   499,   536,   549,   550,   551,   552,   553,   554, 
    886      555,   556,   557,   570,   571,   578,   579,   580,   581,   582, 
    887      583,   584,   585,   586,   587,   588,   589,   590,   591,   592, 
    888      593,   594,   595,   596,   597,   598,   599,   600,   601,   604, 
    889      605,   608,   609,   612,   613,   615,   618,   619,   622,   623, 
    890      625,   626,   629,   695,   710,   712,   716,   719,   720,   723, 
    891      729,   734,   748,   749,   752,   753,   754,   755,   758,   760, 
    892      761,   764,   765,   766,   769,   770,   771,   772,   773,   775, 
    893      776,   779,   780,   781,   782,   785,   792,   802,   814,   815, 
    894      818,   819,   822,   823,   824,   825,   828,   834,   842,   852, 
    895      853,   856,   857,   860,   868,   874,   881,   882,   885,   886, 
    896      889,   905,   908,   909,   912,   921,   923,   945,   970,   972, 
    897      973,   974,   975,   977,   978,   979,   980,   983,   984,   985, 
    898      987,   990,   991,   992,   993,   994,   995,   997,   998,  1001, 
    899     1002,  1004,  1005,  1006,  1008,  1009,  1012,  1013,  1023,  1024, 
    900     1025,  1028,  1029,  1031,  1032,  1034,  1035,  1036,  1038,  1039, 
    901     1042,  1043,  1044,  1045,  1046,  1047,  1049,  1050,  1051,  1052, 
    902     1053,  1056,  1057,  1058,  1061,  1062,  1064,  1065,  1073,  1079, 
    903     1086,  1087,  1088,  1089,  1090,  1093,  1094,  1096,  1097,  1098, 
    904     1099,  1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,  1111, 
    905     1112,  1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,  1121, 
    906     1122,  1123,  1124,  1125,  1126,  1127,  1128,  1130,  1131,  1133, 
    907     1134,  1135,  1136,  1137,  1138,  1140,  1141,  1145,  1146,  1147, 
    908     1148,  1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157, 
    909     1158,  1159,  1160,  1161,  1162,  1163,  1164,  1165,  1167,  1168, 
    910     1169,  1170,  1173,  1174,  1177,  1178,  1179,  1183,  1194,  1195, 
    911     1196,  1197,  1200,  1209,  1216,  1219,  1220,  1223,  1224,  1227, 
    912     1228,  1231,  1232,  1233,  1234,  1235,  1236,  1237,  1239,  1285, 
    913     1286,  1287,  1288,  1289,  1290,  1291,  1293,  1296,  1297,  1298, 
    914     1299,  1301,  1302,  1305,  1307,  1308,  1311,  1312,  1314,  1315, 
    915     1321,  1329,  1332,  1352,  1379,  1399,  1439,  1446,  1450,  1457, 
    916     1467,  1468,  1476,  1486,  1498,  1499,  1504,  1505,  1506,  1507, 
    917     1508,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521, 
    918     1522,  1523,  1524,  1525,  1526,  1527,  1528,  1529,  1530,  1567, 
    919     1576,  1587,  1595,  1617,  1618,  1619,  1657,  1661,  1665,  1668, 
    920     1669,  1672,  1673,  1676,  1677,  1682,  1686,  1687,  1688,  1692, 
    921     1696,  1701,  1702,  1707,  1708,  1713,  1714,  1718,  1722,  1723, 
    922     1724,  1729,  1734,  1739,  1740,  1745,  1746,  1747,  1748,  1753, 
    923     1754,  1755,  1756,  1761,  1762,  1763,  1764,  1768,  1772,  1776, 
    924     1777,  1782,  1783,  1787,  1790,  1791,  1792,  1796,  1799,  1800, 
    925     1801,  1804,  1809,  1810,  1815,  1816,  1821,  1822,  1827,  1828, 
    926     1832,  1836,  1839,  1840,  1841,  1844,  1849,  1850,  1855,  1856, 
    927     1861,  1862,  1867,  1868,  1872,  1873,  1878,  1879,  1880,  1881, 
    928     1885,  1889,  1893,  1897,  1905,  1912,  1919,  1926,  1927,  1930, 
    929     1933,  1944,  1950,  1951,  1954,  1955,  1957,  1970,  1971,  1973, 
    930     1974,  1977,  1978,  2000,  2003,  2004,  2007,  2015,  2018,  2019, 
    931     2022,  2023,  2026,  2027,  2029,  2030,  2032,  2035,  2036,  2037, 
    932     2038,  2039,  2042,  2043,  2046,  2047,  2048,  2049,  2050,  2051, 
    933     2052,  2053,  2056,  2059,  2060,  2061,  2063,  2064,  2067,  2068, 
    934     2069,  2072,  2073,  2076,  2077,  2078,  2079,  2080,  2081,  2082, 
    935     2083,  2084,  2085,  2086,  2087,  2088,  2089,  2090,  2091,  2092, 
    936     2094,  2095,  2097,  2098,  2104,  2105,  2106,  2107,  2108,  2110, 
    937     2111,  2112,  2115,  2116,  2117,  2118,  2119,  2120,  2121,  2122, 
    938     2123,  2124,  2127,  2128,  2129,  2131,  2132,  2134,  2135,  2138, 
    939     2139,  2142,  2145,  2146,  2148,  2149,  2152,  2153 
     1117       0,   514,   514,   515,   517,   518,   519,   521,   523,   524, 
     1118     525,   526,   529,   530,   531,   533,   534,   542,   560,   564, 
     1119     565,   566,   570,   571,   584,   852,   853,  1100,  1101,  1102, 
     1120    1103,  1104,  1106,  1107,  1111,  1112,  1113,  1114,  1115,  1116, 
     1121    1117,  1118,  1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126, 
     1122    1127,  1128,  1129,  1130,  1131,  1133,  1134,  1135,  1136,  1139, 
     1123    1140,  1143,  1144,  1145,  1149,  1160,  1161,  1162,  1162,  1163, 
     1124    1163,  1165,  1166,  1166,  1175,  1187,  1188,  1191,  1192,  1195, 
     1125    1196,  1199,  1200,  1201,  1202,  1203,  1204,  1205,  1207,  1254, 
     1126    1255,  1256,  1257,  1258,  1259,  1260,  1262,  1265,  1266,  1267, 
     1127    1268,  1270,  1271,  1281,  1282,  1334,  1337,  1338,  1363,  1364, 
     1128    1368,  1369,  1382,  1383,  1384,  1385,  1386,  1387,  1388,  1389, 
     1129    1390,  1391,  1392,  1393,  1394,  1397,  1398,  1402,  1405,  1406, 
     1130    1410,  1411,  1415,  1416,  1419,  1420,  1424,  1428,  1429,  1432, 
     1131    1433,  1437,  1438,  1442,  1443,  1444,  1445,  1446,  1447,  1448, 
     1132    1449,  1450,  1451,  1456,  1457,  1458,  1459,  1460,  1468,  1469, 
     1133    1470,  1471,  1472,  1473,  1474,  1475,  1476,  1477,  1478,  1479, 
     1134    1480,  1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,  1510, 
     1135    1511,  1512,  1513,  1517,  1520,  1525,  1526,  1530,  1531,  1532, 
     1136    1533,  1535,  1539,  1558,  1559,  1563,  1564,  1568,  1569,  1573, 
     1137    1577,  1578,  1579,  1590,  1590,  1592,  1593,  1598,  1598,  1600, 
     1138    1600,  1602,  1602,  1604,  1604,  1606,  1606,  1608,  1608,  1613, 
     1139    1614,  1620,  1622,  1624,  1631,  1632,  1637,  1638,  1643,  1644, 
     1140    1660,  1661,  1666,  1667,  1674,  1680,  1681,  1682,  1686,  1687, 
     1141    1688,  1691,  1692,  1697,  1698,  1703,  1704,  1705,  1706,  1707, 
     1142    1711,  1713,  1715,  1716,  1720,  1722,  1727,  1728,  1729,  1733, 
     1143    1734,  1738,  1738,  1743,  1744,  1747,  1748,  1751,  1752,  1755, 
     1144    1756,  1760,  1761,  1765,  1766,  1769,  1773,  1774,  1777,  1778, 
     1145    1782,  1783,  1787,  1791,  1794,  1795,  1796,  1799,  1800,  1804, 
     1146    1805,  1806,  1806,  1807,  1810,  1811,  1815,  1838,  1839,  1843, 
     1147    1844,  1847,  1848,  1852,  1853,  1854,  1858,  1863,  1865,  1868, 
     1148    1869,  1873,  1874,  1878,  1879,  1882,  1883,  1887,  1888,  1892, 
     1149    1893,  1894,  1898,  1900,  1915,  1919,  1923,  1927,  1928,  1933, 
     1150    1934,  1938,  1943,  1945,  1950,  1954,  1955,  1954,  2023,  2024, 
     1151    2027,  2028,  2032,  2033,  2037,  2038,  2040,  2040,  2042,  2044, 
     1152    2044,  2046,  2047,  2049,  2051,  2053,  2055,  2060,  2062,  2067, 
     1153    2101,  2104,  2107,  2108,  2112,  2118,  2124,  2133,  2137,  2139, 
     1154    2144,  2145,  2145,  2150,  2152,  2157,  2159,  2161,  2163,  2165, 
     1155    2169,  2175,  2184,  2186,  2191,  2196,  2200,  2206,  2215,  2217, 
     1156    2222,  2228,  2237,  2242,  2265,  2266,  2285,  2286,  2290,  2291, 
     1157    2295,  2299,  2301,  2303,  2309,  2308,  2327,  2328,  2332,  2334, 
     1158    2339,  2340,  2344,  2348,  2349,  2353,  2354,  2357,  2362,  2361, 
     1159    2376,  2377,  2380,  2381,  2385,  2395,  2397,  2403,  2405,  2410, 
     1160    2411,  2415,  2421,  2428,  2430,  2435,  2436,  2440,  2444,  2449, 
     1161    2451,  2453,  2455,  2456,  2457,  2458,  2459,  2463,  2464,  2480, 
     1162    2481,  2482,  2483,  2484,  2485,  2486,  2492,  2500,  2505,  2507, 
     1163    2505,  2552,  2552,  2561,  2561,  2574,  2575,  2574,  2594,  2596, 
     1164    2601,  2618,  2619,  2618,  2626,  2627,  2630,  2631,  2634,  2635, 
     1165    2639,  2641,  2642,  2646,  2650,  2654,  2656,  2655,  2667,  2668, 
     1166    2672,  2675,  2676,  2680,  2681,  2685,  2688,  2689,  2691,  2692, 
     1167    2696,  2700,  2703,  2704,  2708,  2708,  2711,  2712,  2716,  2717, 
     1168    2718,  2723,  2724,  2723,  2733,  2734,  2742,  2748,  2756,  2757, 
     1169    2760,  2762,  2761,  2771,  2773,  2781,  2787,  2787,  2796,  2797, 
     1170    2798,  2799,  2808,  2811,  2824,  2827,  2831,  2835,  2838,  2842, 
     1171    2845,  2848,  2852,  2853,  2855,  2870,  2875,  2880,  2881,  2886, 
     1172    2888,  2888,  2900,  2904,  2909,  2914,  2916,  2923,  2924,  2926, 
     1173    2948,  2950,  2952,  2954,  2956,  2958,  2960,  2961,  2963,  2965, 
     1174    2969,  2971,  2973,  2975,  2977,  2980,  2994,  2998,  2999,  2998, 
     1175    3007,  3008,  3012,  3013,  3017,  3018,  3022,  3026,  3030,  3031, 
     1176    3035,  3039,  3040,  3043,  3044,  3048,  3049,  3053,  3056,  3057, 
     1177    3061,  3065,  3069,  3070,  3069,  3075,  3076,  3079,  3080,  3084, 
     1178    3085,  3089,  3090,  3099,  3109,  3110,  3111,  3112,  3117,  3122, 
     1179    3123,  3127,  3128,  3135,  3136,  3138,  3140,  3141,  3146,  3150, 
     1180    3152,  3156,  3158,  3163,  3164,  3169,  3172,  3173,  3178,  3179, 
     1181    3180,  3181,  3182,  3183,  3184,  3185,  3186,  3188,  3189,  3191, 
     1182    3196,  3197,  3203,  3204,  3210,  3211,  3216,  3217,  3222,  3226, 
     1183    3230,  3234,  3235,  3239,  3242,  3246,  3250,  3254,  3255,  3258, 
     1184    3262,  3269,  3273,  3277,  3280,  3284,  3290,  3291,  3303,  3304, 
     1185    3305,  3313,  3314,  3318,  3319,  3323,  3324,  3328,  3332,  3336, 
     1186    3339,  3348,  3352,  3353,  3354,  3358,  3362,  3365,  3366,  3369, 
     1187    3370,  3373,  3374,  3378,  3382,  3383,  3384,  3388,  3392,  3396, 
     1188    3397,  3401,  3402,  3407,  3408,  3412,  3416,  3419,  3420,  3425, 
     1189    3426,  3430,  3435,  3436,  3447,  3448,  3449,  3450,  3453,  3454, 
     1190    3455,  3456,  3460,  3461,  3462,  3463,  3468,  3469,  3470,  3471, 
     1191    3475,  3479,  3488,  3489,  3493,  3494,  3505,  3506,  3512,  3522, 
     1192    3527,  3528,  3529,  3530,  3531,  3532,  3533,  3534,  3535,  3536, 
     1193    3537,  3538,  3539,  3540,  3541,  3542,  3543,  3553,  3554,  3557, 
     1194    3558,  3569,  3574,  3577,  3578,  3582,  3586,  3589,  3590,  3591, 
     1195    3594,  3597,  3598,  3599,  3602,  3606,  3607,  3608,  3612,  3613, 
     1196    3617,  3618,  3622,  3623,  3627,  3631,  3634,  3635,  3636,  3639, 
     1197    3643,  3643,  3644,  3644,  3648,  3649,  3653,  3653,  3654,  3654, 
     1198    3659,  3659,  3660,  3664,  3665,  3670,  3671,  3672,  3673,  3677, 
     1199    3681,  3682,  3686,  3690,  3694,  3698,  3699,  3703,  3704,  3708, 
     1200    3709,  3710,  3714,  3718,  3722,  3722,  3722,  3725,  3726,  3730, 
     1201    3731,  3732,  3733,  3734,  3735,  3736,  3737,  3738,  3739,  3740, 
     1202    3744,  3748,  3752,  3752,  3756,  3757,  3761,  3762,  3763,  3764, 
     1203    3765,  3770,  3769,  3775,  3774,  3779,  3780,  3785,  3784,  3790, 
     1204    3789,  3797,  3798,  3800,  3801,  3804,  3808,  3809,  3810,  3811, 
     1205    3812,  3813,  3814,  3815,  3816,  3817,  3818,  3822,  3823,  3824, 
     1206    3827,  3828,  3831,  3832,  3836,  3837,  3841,  3842,  3846,  3849, 
     1207    3850,  3860,  3864,  3865,  3869,  3870,  3874,  3875,  3879,  3880, 
     1208    3881,  3882,  3883,  3887,  3888,  3892,  3893,  3897,  3898,  3899, 
     1209    3900,  3901,  3907,  3906,  3910,  3909,  3914,  3918,  3919,  3923, 
     1210    3924,  3925,  3926,  3927,  3928,  3929,  3930,  3931,  3932,  3933, 
     1211    3937,  3941,  3941,  3944,  3945,  3950,  3949,  3970,  3969,  3994, 
     1212    3995,  3998,  3999,  4002,  4005,  4006,  4009,  4010,  4013,  4014, 
     1213    4017,  4018,  4022,  4027,  4026,  4065,  4064,  4116,  4117,  4118, 
     1214    4122,  4123,  4128,  4131,  4132,  4135,  4136,  4141,  4140,  4154, 
     1215    4155,  4154,  4166,  4167,  4169,  4170,  4173,  4177,  4180,  4186, 
     1216    4190,  4199,  4209,  4211,  4220,  4228,  4236,  4244,  4248,  4252, 
     1217    4253,  4256,  4257,  4260,  4264,  4268,  4269,  4272,  4276,  4277, 
     1218    4277,  4284,  4283,  4297,  4296,  4309,  4310,  4309,  4324,  4324, 
     1219    4348,  4349,  4350,  4354,  4355,  4360,  4368,  4379,  4380,  4390, 
     1220    4393,  4394,  4398,  4399,  4403,  4405,  4407,  4412,  4417,  4418, 
     1221    4416,  4442,  4467,  4471,  4476,  4477,  4481,  4482,  4485,  4486, 
     1222    4489,  4490,  4493,  4509,  4508,  4513,  4514,  4518,  4523,  4522, 
     1223    4537,  4554,  4559,  4603,  4604,  4608,  4609,  4609,  4614,  4615, 
     1224    4620,  4632,  4646,  4648,  4653,  4654,  4659,  4658,  4694,  4695, 
     1225    4802,  4803,  4804,  4805,  4806,  4823,  4916,  4917 
    9401226}; 
    9411227#endif 
     
    9511237  "'*'", "TOK_SLASH", "TOK_DASTER", "TOK_SEMICOLON", "TOK_PARAMETER", 
    9521238  "TOK_RESULT", "TOK_ONLY", "TOK_INCLUDE", "TOK_SUBROUTINE", "TOK_PROGRAM", 
    953   "TOK_FUNCTION", "TOK_FORMAT", "TOK_MAX", "TOK_TANH", "TOK_WHERE", 
     1239  "TOK_FUNCTION", "TOK_LABEL_FORMAT", "TOK_LABEL_CONTINUE", 
     1240  "TOK_LABEL_END_DO", "TOK_MAX", "TOK_TANH", "TOK_COMMENT", "TOK_WHERE", 
    9541241  "TOK_ELSEWHEREPAR", "TOK_ELSEWHERE", "TOK_ENDWHERE", "TOK_MAXVAL", 
    955   "TOK_TRIM", "TOK_NULL_PTR", "TOK_SUM", "TOK_SQRT", "TOK_CASE", 
    956   "TOK_SELECTCASE", "TOK_FILE", "TOK_UNIT", "TOK_FMT", "TOK_NML", 
    957   "TOK_END", "TOK_EOR", "TOK_ERR", "TOK_EXIST", "TOK_MIN", "TOK_FLOAT", 
    958   "TOK_EXP", "TOK_COS", "TOK_COSH", "TOK_ACOS", "TOK_NINT", "TOK_CYCLE", 
    959   "TOK_SIN", "TOK_SINH", "TOK_ASIN", "TOK_EQUIVALENCE", "TOK_BACKSPACE", 
    960   "TOK_LOG", "TOK_TAN", "TOK_ATAN", "TOK_RECURSIVE", "TOK_ABS", "TOK_MOD", 
    961   "TOK_SIGN", "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", "TOK_MINVAL", 
    962   "TOK_PUBLIC", "TOK_PRIVATE", "TOK_ALLOCATABLE", "TOK_RETURN", "TOK_THEN", 
    963   "TOK_ELSEIF", "TOK_ELSE", "TOK_ENDIF", "TOK_PRINT", "TOK_PLAINGOTO", 
    964   "TOK_LOGICALIF", "TOK_PLAINDO", "TOK_CONTAINS", "TOK_ENDDO", 
     1242  "TOK_TRIM", "TOK_NULL_PTR", "TOK_SUM", "TOK_SQRT", "TOK_BIND", 
     1243  "TOK_CASE", "TOK_SELECTCASE", "TOK_FILE", "TOK_REC", "TOK_NAME_EQ", 
     1244  "TOK_IOLENGTH", "TOK_ACCESS", "TOK_ACTION", "TOK_FORM", "TOK_RECL", 
     1245  "TOK_STATUS", "TOK_UNIT", "TOK_OPENED", "TOK_FMT", "TOK_NML", "TOK_END", 
     1246  "TOK_EOR", "TOK_EOF", "TOK_ERR", "TOK_POSITION", "TOK_IOSTAT", 
     1247  "TOK_IOMSG", "TOK_EXIST", "TOK_MIN", "TOK_FLOAT", "TOK_EXP", "TOK_LEN", 
     1248  "TOK_COS", "TOK_COSH", "TOK_ACOS", "TOK_NINT", "TOK_CYCLE", "TOK_SIN", 
     1249  "TOK_SINH", "TOK_ASIN", "TOK_EQUIVALENCE", "TOK_BACKSPACE", "TOK_LOG", 
     1250  "TOK_TAN", "TOK_ATAN", "TOK_RECURSIVE", "TOK_ABS", "TOK_MOD", "TOK_SIGN", 
     1251  "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", "TOK_KIND", "TOK_MOLD", 
     1252  "TOK_SOURCE", "TOK_ERRMSG", "TOK_MINVAL", "TOK_PUBLIC", "TOK_PRIVATE", 
     1253  "TOK_ALLOCATABLE", "TOK_RETURN", "TOK_THEN", "TOK_ELSEIF", "TOK_ELSE", 
     1254  "TOK_ENDIF", "TOK_PRINT", "TOK_PLAINGOTO", "TOK_LOGICALIF", 
     1255  "TOK_LOGICALIF_PAR", "TOK_PLAINDO", "TOK_CONTAINS", "TOK_ENDDO", 
    9651256  "TOK_MODULE", "TOK_ENDMODULE", "TOK_WHILE", "TOK_CONCURRENT", 
    966   "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", "TOK_INQUIRE", "TOK_WRITE", 
    967   "TOK_FLUSH", "TOK_READ", "TOK_REWIND", "TOK_DEALLOCATE", "TOK_NULLIFY", 
    968   "TOK_DIMENSION", "TOK_ENDSELECT", "TOK_EXTERNAL", "TOK_INTENT", 
    969   "TOK_INTRINSIC", "TOK_NAMELIST", "TOK_DEFAULT", "TOK_OPTIONAL", 
    970   "TOK_POINTER", "TOK_CONTINUE", "TOK_SAVE", "TOK_TARGET", "TOK_IMPLICIT", 
    971   "TOK_NONE", "TOK_CALL", "TOK_STAT", "TOK_POINT_TO", "TOK_COMMON", 
    972   "TOK_GLOBAL", "TOK_LEFTAB", "TOK_RIGHTAB", "TOK_PAUSE", "TOK_PROCEDURE", 
    973   "TOK_STOP", "TOK_REAL8", "TOK_FOURDOTS", "TOK_HEXA", "TOK_ASSIGNTYPE", 
    974   "TOK_OUT", "TOK_INOUT", "TOK_IN", "TOK_USE", "TOK_TRUE", "TOK_FALSE", 
    975   "TOK_LABEL", "TOK_TYPE", "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_REAL", 
     1257  "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", "TOK_INQUIRE", "TOK_WRITE_PAR", 
     1258  "TOK_WRITE", "TOK_FLUSH", "TOK_READ_PAR", "TOK_READ", "TOK_REWIND", 
     1259  "TOK_DEALLOCATE", "TOK_NULLIFY", "TOK_DIMENSION", "TOK_ENDSELECT", 
     1260  "TOK_EXTERNAL", "TOK_INTENT", "TOK_INTRINSIC", "TOK_NAMELIST", 
     1261  "TOK_DEFAULT", "TOK_OPTIONAL", "TOK_POINTER", "TOK_CONTINUE", "TOK_SAVE", 
     1262  "TOK_TARGET", "TOK_IMPLICIT", "TOK_NONE", "TOK_CALL", "TOK_STAT", 
     1263  "TOK_POINT_TO", "TOK_COMMON", "TOK_GLOBAL", "TOK_LEFTAB", "TOK_RIGHTAB", 
     1264  "TOK_PAUSE", "TOK_PROCEDURE", "TOK_STOP", "TOK_FOURDOTS", "TOK_HEXA", 
     1265  "TOK_ASSIGNTYPE", "TOK_OUT", "TOK_INOUT", "TOK_IN", "TOK_USE", 
     1266  "TOK_EQUALEQUAL", "TOK_SLASHEQUAL", "TOK_INFEQUAL", "TOK_SUPEQUAL", 
     1267  "TOK_TRUE", "TOK_FALSE", "TOK_LABEL", "TOK_LABEL_DJVIEW", 
     1268  "TOK_PLAINDO_LABEL_DJVIEW", "TOK_PLAINDO_LABEL", "TOK_TYPE", 
     1269  "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_COMMACOMPLEX", "TOK_REAL", 
    9761270  "TOK_INTEGER", "TOK_LOGICAL", "TOK_DOUBLEPRECISION", "TOK_ENDSUBROUTINE", 
    9771271  "TOK_ENDFUNCTION", "TOK_ENDPROGRAM", "TOK_ENDUNIT", "TOK_CHARACTER", 
    9781272  "TOK_CHAR_CONSTANT", "TOK_CHAR_CUT", "TOK_DATA", "TOK_CHAR_MESSAGE", 
    9791273  "TOK_CSTREAL", "TOK_COMPLEX", "TOK_DOUBLECOMPLEX", "TOK_NAME", 
    980   "TOK_CSTINT", "'('", "')'", "'<'", "'>'", "'\\n'", "'/'", "'%'", 
    981   "$accept", "input", "line", "line-break", "suite_line_list", 
    982   "suite_line", "fin_line", "opt_recursive", "opt_result", "entry", 
    983   "label", "name_routine", "filename", "arglist", "arglist_after_result", 
    984   "args", "arg", "spec", "opt_spec", "name_intrinsic", 
    985   "use_intrinsic_list", "list_couple", "list_expr_equi", "expr_equi", 
    986   "list_expr_equi1", "list_expr", "opt_sep", "after_type", 
    987   "before_function", "before_parameter", "data_stmt", "data_stmt_set_list", 
    988   "data_stmt_set", "data_stmt_value_list", "save", "before_save", 
    989   "varsave", "datanamelist", "expr_data", "opt_signe", "namelist", 
    990   "before_dimension", "dimension", "private", "public", "use_name_list", 
    991   "common", "before_common", "var_common_list", "var_common", "comblock", 
    992   "opt_comma", "paramlist", "paramitem", "module_proc_stmt", 
    993   "proc_name_list", "implicit", "dcl", "nodimsgiven", "type", "c_selector", 
    994   "c_attribute", "before_character", "typespec", "lengspec", 
    995   "proper_lengspec", "selector", "proper_selector", "attribute", "clause", 
    996   "opt_clause", "options", "attr_spec_list", "attr_spec", "intent_spec", 
    997   "access_spec", "dims", "dimlist", "dim", "ubound", "expr", 
    998   "predefinedfunction", "minmaxlist", "uexpr", "signe", "operation", 
    999   "after_slash", "after_equal", "lhs", "beforefunctionuse", 
    1000   "array_ele_substring_func_ref", "begin_array", "structure_component", 
    1001   "vec", "funarglist", "funargs", "funarg", "triplet", "ident", 
    1002   "simple_const", "string_constant", "opt_substring", "substring", 
    1003   "optexpr", "opt_expr", "initial_value", "complex_const", "use_stat", 
    1004   "word_use", "rename_list", "rename_name", "only_list", "only_name", 
    1005   "execution-part-construct", "executable-construct", "action-stmt", 
    1006   "assignment-stmt", "where-stmt", "where-construct", 
    1007   "opt-where-body-construct", "opt-masked-elsewhere-construct", 
    1008   "opt-elsewhere-construct", "where-construct-stmt", 
    1009   "where-body-construct", "where-assignment-stmt", "mask-expr", 
    1010   "masked-elsewhere-stmt", "elsewhere-stmt", "end-where-stmt", 
    1011   "forall-header", "block", "do-construct", "block-do-construct", 
    1012   "do-stmt", "label-do-stmt", "nonlabel-do-stmt", "loop-control", 
    1013   "do-variable", "do-block", "end-do", "end-do-stmt", "if-construct", 
     1274  "TOK_CSTINT", "'('", "')'", "'<'", "'>'", "'\\n'", "'/'", "'%'", "'_'", 
     1275  "'['", "']'", "$accept", "input", "line", "line-break", 
     1276  "suite_line_list", "suite_line", "fin_line", "program-unit", 
     1277  "external-subprogram", "filename", "opt_comma", "uexpr", "signe", 
     1278  "operation", "after_slash", "after_equal", "lhs", "beforefunctionuse", 
     1279  "array_ele_substring_func_ref", "$@4", "$@5", "begin_array", "$@6", 
     1280  "structure_component", "funarglist", "funargs", "funarg", "triplet", 
     1281  "ident", "simple_const", "string_constant", "opt_substring", "opt_expr", 
     1282  "specification-part", "opt-use-stmt-list", 
     1283  "opt-declaration-construct-list", "declaration-construct-list", 
     1284  "declaration-construct", "opt-execution-part", "execution-part", 
     1285  "opt-execution-part-construct-list", "execution-part-construct-list", 
     1286  "execution-part-construct", "opt-internal-subprogram-part", 
     1287  "internal-subprogram-part", "opt-internal-subprogram", 
     1288  "internal-subprogram-list", "internal-subprogram", 
     1289  "other-specification-stmt", "executable-construct", "action-stmt", 
     1290  "keyword", "scalar-constant", "constant", "literal-constant", 
     1291  "named-constant", "opt-label", "label", "opt-label-djview", 
     1292  "label-djview", "type-param-value", "declaration-type-spec", "$@7", 
     1293  "intrinsic-type-spec", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", 
     1294  "opt-kind-selector", "kind-selector", "signed-int-literal-constant", 
     1295  "int-literal-constant", "kind-param", "signed-real-literal-constant", 
     1296  "real-literal-constant", "complex-literal-constant", "real-part", 
     1297  "imag-part", "opt-char_length-star", "opt-char-selector", 
     1298  "char-selector", "length-selector", "char-length", 
     1299  "char-literal-constant", "logical-literal-constant", "derived-type-def", 
     1300  "$@14", "derived-type-stmt", "opt-type-attr-spec-list-comma-fourdots", 
     1301  "opt-type-attr-spec-list-comma", "type-attr-spec-list", "type-attr-spec", 
     1302  "type-param-name-list", "type-param-name", "end-type-stmt", 
     1303  "opt-component-part", "component-part", "component-def-stmt", 
     1304  "data-component-def-stmt", "opt-component-attr-spec-list-comma-2points", 
     1305  "component-attr-spec-list", "component-attr-spec", "$@15", 
     1306  "component-decl-list", "component-decl", "opt-component-array-spec", 
     1307  "component-array-spec", "opt-component-initialization", 
     1308  "component-initialization", "initial-data-target", "derived-type-spec", 
     1309  "type-param-spec-list", "type-param-spec", "structure-constructor", 
     1310  "component-spec-list", "component-spec", "component-data-source", 
     1311  "array-constructor", "ac-spec", "lbracket", "rbracket", "ac-value-list", 
     1312  "ac-value", "ac-implied-do", "ac-implied-do-control", "ac-do-variable", 
     1313  "type-declaration-stmt", "$@16", "$@17", "opt-attr-spec-construct", 
     1314  "opt-attr-spec-comma-list", "attr-spec-comma-list", "attr-spec", "$@18", 
     1315  "$@19", "entity-decl-list", "entity-decl", "object-name", 
     1316  "object-name-noident", "opt-initialization", "initialization", 
     1317  "null-init", "access-spec", "opt-array-spec-par", "$@20", 
     1318  "language-binding-spec", "array-spec", "explicit-shape-spec-list", 
     1319  "explicit-shape-spec", "lower-bound", "upper-bound", 
     1320  "assumed-shape-spec-list", "assumed-shape-spec", 
     1321  "deferred-shape-spec-list", "deferred-shape-spec", "assumed-size-spec", 
     1322  "opt-explicit-shape-spec-list-comma", "opt-lower-bound-2points", 
     1323  "implied-shape-spec-list", "implied-shape-spec", "intent-spec", 
     1324  "access-stmt", "$@21", "opt-access-id-list", "access-id-list", 
     1325  "access-id", "bind-stmt", "bind-entity-list", "bind-entity", 
     1326  "entity-name", "data-stmt", "$@22", "opt-data-stmt-set-nlist", 
     1327  "data-stmt-set-nlist", "data-stmt-set", "data-stmt-object-list", 
     1328  "data-stmt-value-list", "data-stmt-object", "data-implied-do", 
     1329  "data-i-do-object-list", "data-i-do-object", "data-i-do-variable", 
     1330  "data-stmt-value", "opt-data-stmt-star", "data-stmt-constant", 
     1331  "scalar-constant-subobject", "constant-subobject", "dimension-stmt", 
     1332  "$@23", "$@24", "array-name-spec-list", "$@25", "$@26", "parameter-stmt", 
     1333  "$@27", "$@28", "named-constant-def-list", "named-constant-def", 
     1334  "save-stmt", "$@29", "$@30", "opt-TOK_FOURDOTS", "opt-saved-entity-list", 
     1335  "saved-entity-list", "saved-entity", "proc-pointer-name", 
     1336  "get_my_position", "implicit-stmt", "$@31", "implicit-spec-list", 
     1337  "implicit-spec", "letter-spec-list", "letter-spec", "namelist-stmt", 
     1338  "opt-namelist-other", "namelist-group-object-list", 
     1339  "namelist-group-object", "equivalence-stmt", "equivalence-set-list", 
     1340  "equivalence-set", "$@32", "equivalence-object-list", 
     1341  "equivalence-object", "common-stmt", "$@33", "$@34", 
     1342  "opt-common-block-name", "common-block-name", "opt-comma", 
     1343  "opt-common-block-list", "$@35", "common-block-object-list", 
     1344  "common-block-object", "$@36", "designator", "scalar-variable", 
     1345  "variable", "variable-name", "scalar-logical-variable", 
     1346  "logical-variable", "char-variable", "scalar-default-char-variable", 
     1347  "default-char-variable", "scalar-int-variable", "int-variable", 
     1348  "substring", "substring-range", "data-ref", "opt-part-ref", "part-ref", 
     1349  "$@37", "scalar-structure-component", "structure-component", 
     1350  "array-element", "array-section", "section-subscript-list", 
     1351  "section-subscript", "section_subscript_ambiguous", "vector-subscript", 
     1352  "allocate-stmt", "$@38", "$@39", "opt-alloc-opt-list-comma", 
     1353  "alloc-opt-list", "alloc-opt", "stat-variable", "errmsg-variable", 
     1354  "allocation-list", "allocation", "allocate-object", 
     1355  "opt-allocate-shape-spec-list-par", "allocate-shape-spec-list", 
     1356  "allocate-shape-spec", "opt-lower-bound-expr", "lower-bound-expr", 
     1357  "upper-bound-expr", "deallocate-stmt", "$@40", "$@41", 
     1358  "allocate-object-list", "opt-dealloc-opt-list-comma", "dealloc-opt-list", 
     1359  "dealloc-opt", "primary", "level-1-expr", "mult-operand", "add-operand", 
     1360  "level-2-expr", "power-op", "mult-op", "add-op", "level-3-expr", 
     1361  "concat-op", "level-4-expr", "rel-op", "and-operand", "or-operand", 
     1362  "equiv-operand", "level-5-expr", "not-op", "and-op", "or-op", "equiv-op", 
     1363  "expr", "scalar-default-char-expr", "default-char-expr", "int-expr", 
     1364  "opt-scalar-int-expr", "scalar-int-expr", "specification-expr", 
     1365  "constant-expr", "scalar-default-char-constant-expr", 
     1366  "default-char-constant-expr", "scalar-int-constant-expr", 
     1367  "int-constant-expr", "assignment-stmt", "pointer-assignment-stmt", 
     1368  "opt-bounds-spec-list-par", "bounds-spec-list", "bounds-remapping-list", 
     1369  "bounds-spec", "bounds-remapping", "data-target", 
     1370  "procedure-component-name", "proc-component-ref", "proc-target", 
     1371  "where-stmt", "where-construct", "opt-where-body-construct", 
     1372  "opt-masked-elsewhere-construct", "opt-elsewhere-construct", 
     1373  "where-construct-stmt", "where-body-construct", "where-assignment-stmt", 
     1374  "mask-expr", "masked-elsewhere-stmt", "elsewhere-stmt", "end-where-stmt", 
     1375  "forall-header", "block", "opt-execution-part-construct", "do-construct", 
     1376  "block-do-construct", "label-do-stmt", "label-do-stmt-djview", 
     1377  "nonlabel-do-stmt", "loop-control", "do-variable", "do-block", "end-do", 
     1378  "end-do-stmt", "nonblock-do-construct", "action-term-do-construct", 
     1379  "do-term-action-stmt", "do-term-action-stmt-special", 
     1380  "outer-shared-do-construct", "label-do-stmt-djview-do-block-list", 
     1381  "inner-shared-do-construct", "do-term-shared-stmt", 
     1382  "opt-do-construct-name", "cycle-stmt", "if-construct", 
    10141383  "opt-else-if-stmt-block", "else-if-stmt-block", "opt-else-stmt-block", 
    10151384  "else-stmt-block", "if-then-stmt", "else-if-stmt", "else-stmt", 
    10161385  "end-if-stmt", "if-stmt", "case-construct", "opt_case-stmt-block", 
    1017   "case-stmt-block", "select-case-stmt", "case-stmt", "end-select-stmt", 
    1018   "case-selector", "case-value-range-list", "case-value-range", 
    1019   "case-value", "continue-stmt", "format-stmt", "word_endsubroutine", 
    1020   "word_endunit", "word_endprogram", "word_endfunction", "opt_name", 
    1021   "before_dims", "ident_dims", "int_list", "after_ident_dims", "call", 
    1022   "opt_call", "opt_callarglist", "keywordcall", "before_call", 
    1023   "callarglist", "callarg", "stop", "option_inlist", "option_read", 
    1024   "opt_inlist", "ioctl", "after_rewind", "ctllist", "ioclause", 
    1025   "declare_after_percent", "iofctl", "infmt", "read", "fexpr", 
    1026   "unpar_fexpr", "addop", "inlist", "inelt", "opt_operation", "outlist", 
    1027   "other", "dospec", "goto", "allocation_list", "allocate_object", 
    1028   "allocate_object_list", "opt_stat_spec", "pointer_name_list", YY_NULL 
     1386  "case-stmt-block", "select-case-stmt", "$@42", "$@43", "case-stmt", 
     1387  "end-select-stmt", "$@44", "$@45", "case-selector", "$@46", 
     1388  "case-value-range-list", "case-value-range", "case-value", "exit-stmt", 
     1389  "goto-stmt", "arithmetic-if-stmt", "continue-stmt", "stop-stmt", 
     1390  "stop-code", "io-unit", "file-unit-number", "internal-file-variable", 
     1391  "open-stmt", "$@47", "$@48", "connect-spec-list", "connect-spec", 
     1392  "file-name-expr", "iomsg-variable", "close-stmt", "$@49", 
     1393  "close-spec-list", "close-spec", "read-stmt", "$@50", "$@51", 
     1394  "write-stmt", "$@52", "$@53", "print-stmt", "io-control-spec-list", 
     1395  "namelist-group-name", "io-control-spec", "format", "input-item-list", 
     1396  "input-item", "output-item-list", "output-item", "io-implied-do", 
     1397  "io-implied-do-object-list", "io-implied-do-object", 
     1398  "io-implied-do-control", "rewind-stmt", "position-spec-list", 
     1399  "position-spec", "flush-stmt", "flush-spec-list", "flush-spec", 
     1400  "inquire-stmt", "$@54", "$@55", "set_in_inquire", "inquire-spec-list", 
     1401  "inquire-spec", "format-stmt", "module", "$@56", 
     1402  "opt-module-subprogram-part", "module-stmt", "$@57", "end-module-stmt", 
     1403  "$@58", "opt-tok-module", "opt-ident", "module-subprogram-part", 
     1404  "opt-module-subprogram-list", "module-subprogram-list", 
     1405  "module-subprogram", "use-stmt-list", "save_olduse", "use-stmt", "$@59", 
     1406  "$@60", "opt-module-nature-2points", "opt-only-list", "main-program", 
     1407  "opt-specification-part", "program-stmt", "$@61", "end-program-stmt", 
     1408  "$@62", "$@63", "opt-tok-program", "opt-tok-name", "module-nature", 
     1409  "opt-rename-list", "rename-list", "rename", "only-list", "only", 
     1410  "only-use-name", "generic-spec", "external-stmt", "external-name-list", 
     1411  "external-name", "intrinsic-stmt", "intrinsic-procedure-name-list", 
     1412  "intrinsic-procedure-name", "function-reference", "$@64", "call-stmt", 
     1413  "$@65", "$@66", "$@67", "$@68", "before-call-stmt", "$@69", 
     1414  "procedure-designator", "actual-arg-spec-list", "actual-arg-spec", 
     1415  "actual-arg", "opt-prefix", "prefix", "prefix-spec", 
     1416  "function-subprogram", "function-stmt", "$@70", "$@71", "function-name", 
     1417  "proc-language-binding-spec", "dummy-arg-name", "opt-suffix", "suffix", 
     1418  "opt-result-clause", "opt-proc-language-binding-spec", "result-clause", 
     1419  "end-function-stmt", "$@72", "opt-tok-function", "subroutine-subprogram", 
     1420  "subroutine-stmt", "$@73", "subroutine-name", "end-subroutine-stmt", 
     1421  "close_subroutine", "opt-tok-subroutine", 
     1422  "opt-dummy-arg-list-par-and-bind", "$@74", "opt-dummy-arg-list", 
     1423  "dummy-arg-list", "dummy-arg", "return-stmt", "contains-stmt", "$@75", 
     1424  "opt_name", "after_rewind", "declare_after_percent", "pointer_name_list", YY_NULL 
    10291425}; 
    10301426#endif 
     
    10511447     389,   390,   391,   392,   393,   394,   395,   396,   397,   398, 
    10521448     399,   400,   401,   402,   403,   404,   405,   406,   407,   408, 
    1053      409,   410,    40,    41,    60,    62,    10,    47,    37 
     1449     409,   410,   411,   412,   413,   414,   415,   416,   417,   418, 
     1450     419,   420,   421,   422,   423,   424,   425,   426,   427,   428, 
     1451     429,   430,   431,   432,   433,   434,   435,   436,   437,   438, 
     1452     439,   440,   441,   442,    40,    41,    60,    62,    10,    47, 
     1453      37,    95,    91,    93 
    10541454}; 
    10551455# endif 
     
    10581458static const yytype_uint16 yyr1[] = 
    10591459{ 
    1060        0,   169,   170,   170,   171,   171,   171,   171,   172,   172, 
    1061      172,   172,   172,   173,   173,   173,   174,   174,   174,   174, 
    1062      175,   176,   176,   177,   177,   178,   178,   178,   178,   179, 
    1063      179,   180,   181,   182,   182,   182,   183,   183,   183,   184, 
    1064      184,   185,   185,   186,   186,   186,   186,   186,   186,   186, 
    1065      186,   186,   186,   186,   186,   186,   186,   186,   186,   186, 
    1066      186,   186,   186,   187,   187,   188,   188,   188,   188,   188, 
    1067      188,   188,   188,   188,   188,   188,   188,   188,   188,   188, 
    1068      188,   188,   188,   188,   188,   188,   188,   188,   188,   189, 
    1069      189,   190,   190,   191,   191,   192,   193,   193,   194,   194, 
    1070      195,   195,   196,   196,   197,   198,   199,   200,   200,   201, 
    1071      201,   201,   202,   202,   203,   203,   203,   203,   204,   205, 
    1072      205,   206,   206,   206,   207,   207,   207,   207,   207,   208, 
    1073      208,   209,   209,   209,   209,   210,   211,   211,   212,   212, 
    1074      213,   213,   214,   214,   214,   214,   215,   215,   215,   216, 
    1075      216,   217,   217,   218,   219,   219,   220,   220,   221,   221, 
    1076      222,   223,   224,   224,   225,   225,   226,   226,   227,   228, 
    1077      228,   228,   228,   229,   229,   229,   229,   230,   230,   230, 
    1078      231,   232,   232,   232,   232,   232,   232,   233,   233,   234, 
    1079      234,   235,   235,   235,   236,   236,   237,   237,   237,   237, 
    1080      237,   238,   238,   239,   239,   240,   240,   240,   241,   241, 
    1081      242,   242,   242,   242,   242,   242,   242,   242,   242,   242, 
    1082      242,   243,   243,   243,   244,   244,   245,   245,   246,   246, 
    1083      247,   247,   247,   247,   247,   248,   248,   249,   249,   249, 
    1084      249,   250,   250,   250,   250,   250,   250,   250,   250,   250, 
    1085      250,   250,   250,   250,   250,   250,   250,   250,   250,   250, 
    1086      250,   250,   250,   250,   250,   250,   250,   251,   251,   252, 
    1087      252,   252,   252,   252,   252,   253,   253,   254,   254,   254, 
     1460       0,   204,   205,   205,   206,   206,   206,   207,   207,   207, 
     1461     207,   207,   208,   208,   208,   209,   209,   209,   210,   211, 
     1462     211,   211,   212,   212,   213,   214,   214,   215,   215,   215, 
     1463     215,   215,   216,   216,   217,   217,   217,   217,   217,   217, 
     1464     217,   217,   217,   217,   217,   217,   217,   217,   217,   217, 
     1465     217,   217,   217,   217,   217,   218,   218,   218,   218,   219, 
     1466     219,   220,   220,   220,   221,   222,   222,   223,   222,   224, 
     1467     222,   225,   226,   225,   227,   228,   228,   229,   229,   230, 
     1468     230,   231,   231,   231,   231,   231,   231,   231,   232,   233, 
     1469     233,   233,   233,   233,   233,   233,   233,   234,   234,   234, 
     1470     234,   235,   235,   236,   236,   237,   238,   238,   239,   239, 
     1471     240,   240,   241,   241,   241,   241,   241,   241,   241,   241, 
     1472     241,   241,   241,   241,   241,   242,   242,   243,   244,   244, 
     1473     245,   245,   246,   246,   247,   247,   248,   249,   249,   250, 
     1474     250,   251,   251,   252,   252,   252,   252,   252,   252,   252, 
     1475     252,   252,   252,   253,   253,   253,   253,   253,   254,   254, 
    10881476     254,   254,   254,   254,   254,   254,   254,   254,   254,   254, 
    1089      254,   254,   254,   254,   254,   254,   254,   254,   255,   255, 
    1090      255,   255,   256,   256,   257,   257,   257,   258,   259,   259, 
    1091      259,   259,   260,   261,   262,   263,   263,   264,   264,   265, 
    1092      265,   266,   266,   266,   266,   266,   266,   266,   267,   268, 
    1093      268,   268,   268,   268,   268,   268,   268,   269,   269,   269, 
    1094      269,   270,   270,   271,   272,   272,   273,   273,   274,   274, 
    1095      274,   275,   276,   276,   276,   276,   277,   278,   278,   279, 
    1096      280,   280,   281,   281,   282,   282,   283,   283,   283,   283, 
    1097      283,   284,   284,   284,   284,   284,   284,   284,   284,   284, 
    1098      284,   284,   284,   284,   284,   284,   284,   284,   284,   284, 
    1099      284,   284,   284,   284,   284,   284,   285,   286,   287,   288, 
    1100      288,   289,   289,   290,   290,   291,   292,   292,   292,   293, 
    1101      294,   295,   295,   296,   296,   297,   297,   298,   299,   299, 
    1102      299,   300,   301,   302,   302,   303,   303,   303,   303,   304, 
    1103      304,   304,   304,   305,   305,   305,   305,   306,   307,   308, 
    1104      308,   309,   309,   310,   311,   311,   311,   312,   313,   313, 
    1105      313,   314,   315,   315,   316,   316,   317,   317,   318,   318, 
    1106      319,   320,   321,   321,   321,   322,   323,   323,   324,   324, 
    1107      325,   325,   326,   326,   327,   327,   328,   328,   328,   328, 
    1108      329,   330,   331,   332,   333,   334,   335,   336,   336,   337, 
    1109      338,   338,   339,   339,   340,   340,   341,   342,   342,   343, 
    1110      343,   344,   344,   345,   346,   346,   347,   347,   348,   348, 
    1111      349,   349,   350,   350,   351,   351,   352,   353,   353,   353, 
    1112      353,   353,   354,   354,   355,   355,   355,   355,   355,   355, 
    1113      355,   355,   356,   357,   357,   357,   358,   358,   359,   359, 
    1114      359,   360,   360,   361,   361,   361,   361,   361,   361,   361, 
    1115      361,   361,   361,   361,   361,   361,   361,   361,   361,   361, 
    1116      362,   362,   363,   363,   364,   364,   364,   364,   364,   365, 
    1117      365,   365,   366,   366,   366,   366,   366,   366,   366,   366, 
    1118      366,   366,   367,   367,   367,   368,   368,   369,   369,   370, 
    1119      370,   371,   372,   372,   373,   373,   374,   374 
     1477     254,   254,   254,   254,   254,   254,   254,   254,   254,   254, 
     1478     254,   254,   254,   255,   256,   257,   257,   258,   258,   258, 
     1479     258,   258,   259,   260,   260,   261,   261,   262,   262,   263, 
     1480     264,   264,   264,   266,   265,   265,   265,   268,   267,   269, 
     1481     267,   270,   267,   271,   267,   272,   267,   273,   267,   274, 
     1482     274,   275,   275,   275,   276,   276,   277,   277,   278,   278, 
     1483     279,   279,   280,   280,   281,   282,   282,   282,   283,   283, 
     1484     283,   284,   284,   285,   285,   286,   286,   286,   286,   286, 
     1485     287,   287,   287,   287,   288,   288,   289,   289,   289,   290, 
     1486     290,   292,   291,   293,   293,   294,   294,   295,   295,   296, 
     1487     296,   297,   297,   298,   298,   299,   300,   300,   301,   301, 
     1488     302,   302,   303,   304,   305,   305,   305,   306,   306,   307, 
     1489     307,   308,   307,   307,   309,   309,   310,   311,   311,   312, 
     1490     312,   313,   313,   314,   314,   314,   315,   316,   316,   317, 
     1491     317,   318,   318,   319,   319,   320,   320,   321,   321,   322, 
     1492     322,   322,   323,   323,   324,   325,   326,   327,   327,   328, 
     1493     328,   329,   330,   330,   331,   333,   334,   332,   335,   335, 
     1494     336,   336,   337,   337,   338,   338,   339,   338,   338,   340, 
     1495     338,   338,   338,   338,   338,   338,   338,   341,   341,   342, 
     1496     343,   344,   345,   345,   346,   346,   346,   347,   348,   348, 
     1497     349,   350,   349,   351,   351,   352,   352,   352,   352,   352, 
     1498     353,   353,   354,   354,   355,   356,   357,   357,   358,   358, 
     1499     359,   359,   360,   361,   362,   362,   363,   363,   364,   364, 
     1500     365,   366,   366,   366,   368,   367,   369,   369,   370,   370, 
     1501     371,   371,   372,   373,   373,   374,   374,   375,   377,   376, 
     1502     378,   378,   379,   379,   380,   381,   381,   382,   382,   383, 
     1503     383,   384,   384,   385,   385,   386,   386,   386,   387,   388, 
     1504     388,   388,   388,   388,   388,   388,   388,   389,   389,   390, 
     1505     390,   390,   390,   390,   390,   390,   391,   392,   394,   395, 
     1506     393,   397,   396,   398,   396,   400,   401,   399,   402,   402, 
     1507     403,   405,   406,   404,   407,   407,   408,   408,   409,   409, 
     1508     410,   410,   410,   411,   412,   413,   414,   413,   415,   415, 
     1509     416,   417,   417,   418,   418,   419,   420,   420,   421,   421, 
     1510     422,   423,   424,   424,   426,   425,   427,   427,   428,   428, 
     1511     428,   430,   431,   429,   432,   432,   433,   433,   434,   434, 
     1512     435,   436,   435,   437,   437,   438,   439,   438,   440,   440, 
     1513     440,   440,   441,   442,   443,   444,   445,   446,   447,   448, 
     1514     449,   450,   451,   451,   451,   452,   453,   454,   454,   455, 
     1515     456,   455,   457,   458,   459,   460,   460,   461,   461,   461, 
     1516     462,   462,   462,   462,   462,   462,   462,   462,   462,   462, 
     1517     463,   463,   463,   463,   463,   463,   464,   466,   467,   465, 
     1518     468,   468,   469,   469,   470,   470,   471,   472,   473,   473, 
     1519     474,   475,   475,   476,   476,   477,   477,   478,   479,   479, 
     1520     480,   481,   483,   484,   482,   485,   485,   486,   486,   487, 
     1521     487,   488,   488,   489,   489,   489,   489,   489,   490,   491, 
     1522     491,   492,   492,   493,   493,   493,   493,   493,   494,   495, 
     1523     495,   496,   496,   497,   497,   498,   499,   499,   500,   500, 
     1524     500,   500,   500,   500,   500,   500,   500,   500,   500,   500, 
     1525     501,   501,   502,   502,   503,   503,   504,   504,   505,   506, 
     1526     507,   508,   508,   509,   510,   511,   512,   513,   513,   514, 
     1527     515,   516,   517,   518,   519,   520,   521,   521,   522,   522, 
     1528     522,   523,   523,   524,   524,   525,   525,   526,   527,   528, 
     1529     529,   530,   531,   531,   531,   532,   533,   534,   534,   535, 
     1530     535,   536,   536,   537,   538,   538,   538,   539,   540,   541, 
     1531     541,   542,   542,   543,   543,   544,   545,   546,   546,   547, 
     1532     547,   547,   548,   548,   549,   549,   549,   549,   550,   550, 
     1533     550,   550,   551,   551,   551,   551,   552,   552,   552,   552, 
     1534     553,   554,   555,   555,   556,   556,   557,   557,   558,   559, 
     1535     560,   560,   560,   560,   560,   560,   560,   560,   560,   560, 
     1536     560,   560,   560,   560,   560,   560,   560,   561,   561,   562, 
     1537     562,   563,   564,   565,   565,   566,   567,   568,   568,   568, 
     1538     569,   570,   570,   570,   571,   572,   572,   572,   573,   573, 
     1539     574,   574,   575,   575,   576,   577,   578,   578,   578,   579, 
     1540     581,   580,   582,   580,   583,   583,   585,   584,   586,   584, 
     1541     588,   587,   587,   589,   589,   590,   590,   590,   590,   591, 
     1542     592,   592,   593,   594,   595,   596,   596,   597,   597,   598, 
     1543     598,   598,   599,   600,   602,   603,   601,   604,   604,   605, 
     1544     605,   605,   605,   605,   605,   605,   605,   605,   605,   605, 
     1545     606,   607,   609,   608,   610,   610,   611,   611,   611,   611, 
     1546     611,   613,   612,   614,   612,   612,   612,   616,   615,   617, 
     1547     615,   618,   618,   619,   619,   620,   621,   621,   621,   621, 
     1548     621,   621,   621,   621,   621,   621,   621,   622,   622,   622, 
     1549     623,   623,   624,   624,   625,   625,   626,   626,   627,   628, 
     1550     628,   629,   630,   630,   631,   631,   632,   632,   633,   633, 
     1551     633,   633,   633,   634,   634,   635,   635,   636,   636,   636, 
     1552     636,   636,   638,   637,   639,   637,   640,   641,   641,   642, 
     1553     642,   642,   642,   642,   642,   642,   642,   642,   642,   642, 
     1554     643,   645,   644,   646,   646,   648,   647,   650,   649,   651, 
     1555     651,   652,   652,   653,   654,   654,   655,   655,   656,   656, 
     1556     657,   657,   658,   660,   659,   661,   659,   662,   662,   662, 
     1557     663,   663,   664,   665,   665,   242,   242,   667,   666,   669, 
     1558     670,   668,   671,   671,   672,   672,   673,   674,   674,   675, 
     1559     675,   676,   677,   677,   678,   678,   678,   679,   680,   681, 
     1560     681,   682,   682,   683,   684,   685,   685,   686,   687,   688, 
     1561     687,   690,   689,   691,   689,   692,   693,   689,   695,   694, 
     1562     696,   696,   696,   697,   697,   698,   698,   699,   699,   699, 
     1563     700,   700,   701,   701,   702,   702,   702,   703,   705,   706, 
     1564     704,   707,   708,   709,   710,   710,   711,   711,   712,   712, 
     1565     713,   713,   714,   716,   715,   717,   717,   718,   720,   719, 
     1566     721,   722,   723,   724,   724,   725,   726,   725,   727,   727, 
     1567     728,   728,   729,   729,   730,   730,   732,   731,   733,   733, 
     1568     734,   734,   734,   734,   734,   735,   736,   736 
    11201569}; 
    11211570 
     
    11231572static const yytype_uint8 yyr2[] = 
    11241573{ 
    1125        0,     2,     0,     2,     1,     1,     2,     1,     2,     1, 
    1126        3,     2,     2,     1,     3,     3,     2,     2,     3,     1, 
    1127        0,     0,     1,     0,     2,     4,     2,     5,     2,     1, 
    1128        2,     1,     1,     0,     2,     3,     0,     2,     3,     1, 
    1129        3,     1,     1,     2,     4,     2,     2,     4,     2,     1, 
    1130        1,     1,     1,     1,     1,     1,     1,     1,     4,     3, 
    1131        3,     2,     2,     0,     1,     1,     1,     1,     1,     1, 
    1132        1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
    1133        1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
    1134        3,     3,     5,     1,     3,     3,     2,     4,     1,     3, 
    1135        0,     1,     2,     3,     1,     1,     2,     1,     3,     4, 
    1136        4,     8,     1,     3,     2,     3,     5,     3,     1,     0, 
    1137        2,     1,     4,     3,     2,     3,     3,     3,     3,     0, 
    1138        1,     2,     3,     5,     3,     1,     5,     5,     2,     3, 
    1139        2,     3,     1,     1,     3,     3,     2,     3,     5,     1, 
    1140        2,     1,     3,     2,     1,     3,     0,     1,     1,     3, 
    1141        3,     2,     1,     3,     2,     2,     5,     6,     0,     2, 
    1142        2,     3,     3,     0,     2,     4,     3,     3,     4,     2, 
    1143        1,     1,     1,     1,     1,     1,     1,     0,     2,     1, 
    1144        3,     0,     2,     3,     1,     3,     2,     3,     1,     1, 
    1145        1,     1,     1,     0,     3,     0,     1,     3,     1,     3, 
    1146        1,     1,     1,     2,     1,     4,     1,     1,     1,     1, 
    1147        1,     1,     1,     1,     1,     1,     0,     3,     1,     3, 
    1148        1,     1,     2,     2,     3,     1,     1,     1,     1,     1, 
    1149        3,     3,     3,     4,     4,     3,     4,     4,     3,     4, 
    1150        4,     4,     4,     4,     4,     4,     4,     4,     4,     4, 
    1151        4,     4,     3,     4,     3,     4,     4,     1,     3,     1, 
    1152        1,     1,     2,     2,     2,     1,     1,     2,     2,     2, 
    1153        2,     2,     2,     2,     2,     2,     3,     3,     2,     2, 
    1154        2,     2,     2,     2,     2,     2,     2,     2,     0,     1, 
    1155        2,     2,     2,     1,     1,     1,     1,     0,     1,     2, 
    1156        4,     5,     4,     4,     3,     1,     2,     1,     3,     1, 
     1574       0,     2,     0,     2,     1,     1,     1,     2,     1,     1, 
     1575       3,     2,     1,     3,     3,     1,     3,     1,     0,     1, 
     1576       1,     1,     1,     1,     1,     0,     1,     1,     1,     2, 
     1577       2,     2,     1,     1,     2,     2,     2,     2,     2,     2, 
     1578       2,     2,     2,     3,     3,     2,     2,     2,     2,     2, 
     1579       2,     2,     2,     2,     2,     0,     1,     2,     2,     2, 
     1580       1,     1,     1,     1,     0,     1,     2,     0,     5,     0, 
     1581       6,     1,     0,     5,     4,     1,     2,     1,     3,     1, 
    11571582       1,     3,     5,     4,     3,     2,     2,     1,     1,     1, 
    11581583       1,     1,     1,     1,     1,     2,     2,     1,     2,     1, 
    1159        1,     0,     1,     5,     0,     1,     1,     1,     0,     2, 
    1160        2,     5,     2,     4,     6,     6,     1,     1,     3,     3, 
    1161        1,     3,     3,     1,     1,     1,     1,     1,     1,     1, 
    1162        1,     1,     2,     1,     1,     2,     2,     2,     3,     2, 
    1163        5,     5,     2,     2,     2,     2,     1,     4,     1,     2, 
    1164        2,     2,     2,     1,     1,     1,     1,     5,     6,     0, 
    1165        3,     0,     4,     0,     4,     4,     1,     1,     1,     1, 
    1166        1,     3,     4,     1,     2,     1,     2,     0,     0,     2, 
    1167        3,     1,     4,     1,     1,     4,     2,     5,     3,     3, 
    1168        1,     4,     2,     6,     8,     5,     3,     1,     1,     1, 
    1169        1,     1,     2,     6,     0,     1,     2,     3,     0,     1, 
    1170        2,     3,     7,     5,     5,     6,     1,     2,     1,     2, 
    1171        5,     4,     0,     1,     2,     3,     6,     4,     2,     3, 
    1172        1,     2,     3,     1,     1,     3,     1,     2,     2,     3, 
    1173        1,     1,     1,     1,     1,     1,     1,     1,     1,     0, 
    1174        4,     7,     1,     3,     2,     2,     2,     0,     3,     0, 
    1175        1,     2,     2,     1,     1,     3,     1,     2,     1,     1, 
    1176        0,     1,     2,     2,     0,     2,     3,     3,     3,     1, 
    1177        3,     1,     1,     3,     1,     1,     1,     3,     5,     4, 
    1178        2,     2,     0,     1,     1,     1,     1,     1,     1,     1, 
    1179        1,     1,     3,     1,     1,     3,     3,     3,     3,     2, 
    1180        3,     2,     2,     2,     2,     2,     2,     2,     3,     1, 
    1181        1,     1,     1,     3,     2,     4,     2,     2,     5,     0, 
    1182        1,     2,     1,     1,     1,     1,     3,     3,     3,     3, 
    1183        3,     3,     5,     5,     5,     5,     7,     8,     2,     1, 
    1184        3,     1,     1,     3,     0,     4,     1,     3 
     1584       1,     0,     1,     0,     1,     2,     0,     1,     0,     1, 
     1585       1,     2,     1,     1,     1,     1,     1,     1,     1,     1, 
     1586       1,     1,     1,     1,     1,     0,     1,     2,     0,     1, 
     1587       1,     2,     1,     1,     0,     1,     3,     0,     1,     1, 
     1588       2,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1589       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1590       1,     1,     1,     1,     1,     1,     1,     1,     2,     4, 
     1591       2,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1592       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1593       1,     1,     1,     0,     1,     1,     1,     0,     1,     1, 
     1594       1,     1,     1,     0,     2,     3,     3,     0,     3,     0, 
     1595       3,     0,     3,     0,     3,     0,     3,     0,     3,     0, 
     1596       1,     3,     5,     2,     1,     2,     1,     3,     1,     1, 
     1597       1,     2,     1,     3,     5,     1,     1,     1,     1,     1, 
     1598       1,     0,     2,     0,     1,     1,     9,     5,     5,     9, 
     1599       3,     5,     2,     3,     3,     1,     1,     1,     1,     1, 
     1600       1,     0,     4,     4,     7,     0,     2,     0,     2,     1, 
     1601       3,     1,     2,     1,     3,     1,     2,     3,     0,     1, 
     1602       1,     2,     1,     4,     0,     1,     3,     1,     3,     1, 
     1603       1,     0,     5,     1,     1,     3,     4,     0,     3,     1, 
     1604       1,     0,     1,     2,     2,     2,     1,     1,     4,     1, 
     1605       3,     1,     3,     3,     4,     1,     3,     1,     3,     1, 
     1606       1,     1,     3,     3,     1,     1,     1,     1,     3,     1, 
     1607       1,     5,     5,     7,     1,     0,     0,     6,     0,     2, 
     1608       0,     1,     2,     3,     1,     1,     0,     5,     1,     0, 
     1609       5,     1,     1,     1,     1,     1,     1,     1,     3,     4, 
     1610       1,     1,     0,     1,     2,     2,     2,     1,     1,     1, 
     1611       0,     0,     4,     2,     4,     1,     1,     1,     1,     1, 
     1612       1,     3,     3,     1,     1,     1,     1,     3,     1,     2, 
     1613       1,     3,     1,     3,     0,     2,     0,     2,     1,     3, 
     1614       2,     1,     1,     1,     0,     4,     0,     2,     1,     3, 
     1615       1,     1,     4,     1,     3,     1,     1,     1,     0,     5, 
     1616       0,     1,     2,     3,     4,     1,     3,     1,     3,     1, 
     1617       1,     9,    11,     1,     3,     1,     1,     1,     1,     2, 
     1618       2,     2,     1,     1,     1,     1,     1,     0,     2,     1, 
     1619       1,     1,     1,     1,     1,     1,     1,     1,     0,     0, 
     1620       6,     0,     5,     0,     7,     0,     0,     7,     1,     3, 
     1621       3,     0,     0,     6,     0,     1,     0,     1,     1,     3, 
     1622       1,     1,     1,     1,     0,     4,     0,     5,     1,     3, 
     1623       4,     1,     3,     1,     3,     7,     0,     6,     1,     3, 
     1624       1,     3,     1,     3,     0,     6,     1,     3,     1,     1, 
     1625       1,     0,     0,     7,     0,     1,     1,     3,     0,     1, 
     1626       0,     0,     5,     1,     3,     1,     0,     5,     1,     1, 
     1627       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1628       1,     1,     1,     4,     4,     3,     2,     0,     3,     1, 
     1629       0,     5,     1,     1,     1,     1,     4,     0,     1,     3, 
     1630       2,     1,     2,     3,     4,     2,     1,     3,     4,     2, 
     1631       1,     2,     3,     4,     2,     0,     1,     0,     0,     8, 
     1632       0,     2,     1,     3,     2,     3,     1,     1,     1,     3, 
     1633       2,     1,     1,     0,     3,     1,     3,     2,     0,     2, 
     1634       1,     1,     0,     0,     8,     1,     3,     0,     2,     1, 
     1635       3,     2,     3,     1,     1,     1,     1,     3,     1,     1, 
     1636       3,     1,     3,     1,     2,     3,     1,     2,     1,     1, 
     1637       1,     1,     1,     1,     3,     1,     1,     3,     1,     1, 
     1638       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1639       1,     2,     1,     3,     1,     3,     1,     3,     1,     1, 
     1640       1,     1,     1,     1,     1,     1,     1,     0,     1,     1, 
     1641       1,     1,     1,     1,     1,     1,     4,     5,     5,     7, 
     1642       4,     0,     3,     1,     3,     1,     3,     2,     3,     1, 
     1643       1,     3,     1,     1,     1,     5,     5,     0,     2,     0, 
     1644       3,     0,     3,     5,     1,     1,     1,     1,     1,     4, 
     1645       5,     2,     3,     2,     3,     0,     1,     0,     2,     1, 
     1646       1,     1,     3,     3,     4,     2,     5,     3,     4,     2, 
     1647       5,     3,     4,     2,     5,     3,     6,     8,     5,     3, 
     1648       1,     1,     1,     2,     3,     4,     1,     1,     3,     2, 
     1649       1,     1,     1,     1,     1,     1,     1,     2,     4,     1, 
     1650       1,     1,     1,     1,     1,     1,     1,     4,     3,     2, 
     1651       3,     3,     2,     0,     1,     3,     5,     0,     1,     2, 
     1652       2,     0,     1,     2,     2,     7,     8,     6,     6,     7, 
     1653       2,     3,     2,     3,     5,     3,     0,     1,     2,     2, 
     1654       0,     8,     0,     6,     3,     4,     0,     3,     0,     4, 
     1655       0,     4,     1,     1,     3,     1,     2,     2,     3,     1, 
     1656       2,     3,     3,    10,     3,     2,     3,     1,     1,     1, 
     1657       1,     1,     1,     1,     0,     0,     7,     1,     3,     1, 
     1658       2,     2,     2,     2,     2,     2,     2,     2,     2,     3, 
     1659       1,     1,     0,     7,     1,     3,     1,     2,     2,     2, 
     1660       3,     0,     6,     0,     7,     4,     6,     0,     6,     0, 
     1661       7,     4,     6,     1,     3,     1,     1,     2,     1,     1, 
     1662       2,     2,     2,     2,     2,     2,     3,     1,     1,     1, 
     1663       1,     3,     1,     1,     1,     3,     1,     1,     5,     1, 
     1664       3,     1,     5,     7,     3,     5,     1,     3,     1,     2, 
     1665       2,     2,     2,     3,     5,     1,     3,     1,     2,     2, 
     1666       2,     2,     0,     7,     0,     9,     0,     1,     3,     1, 
     1667       2,     2,     2,     2,     2,     2,     2,     3,     2,     2, 
     1668       2,     0,     5,     0,     1,     0,     4,     0,     6,     0, 
     1669       1,     0,     1,     2,     0,     1,     1,     2,     1,     1, 
     1670       1,     2,     0,     0,     8,     0,    11,     0,     1,     3, 
     1671       0,     1,     5,     0,     1,     0,     1,     0,     4,     0, 
     1672       0,     6,     0,     1,     0,     1,     1,     0,     2,     1, 
     1673       3,     3,     1,     3,     1,     1,     1,     1,     1,     3, 
     1674       4,     1,     3,     1,     4,     1,     3,     1,     3,     0, 
     1675       5,     0,     3,     0,     5,     0,     0,     7,     0,     4, 
     1676       1,     1,     1,     1,     3,     1,     3,     1,     1,     1, 
     1677       0,     1,     1,     2,     1,     1,     1,     5,     0,     0, 
     1678      10,     1,     1,     1,     0,     1,     2,     2,     0,     1, 
     1679       0,     1,     4,     0,     7,     0,     1,     5,     0,     6, 
     1680       1,     6,     0,     0,     1,     0,     0,     5,     0,     1, 
     1681       1,     3,     1,     1,     3,     4,     0,     4,     1,     1, 
     1682       3,     3,     1,     3,     1,     0,     1,     3 
    11851683}; 
    11861684 
     
    11901688static const yytype_uint16 yydefact[] = 
    11911689{ 
    1192        2,     0,     1,     7,     9,   105,     0,     0,   482,     0, 
    1193        0,     0,     0,     0,    22,   344,   100,   100,     0,   540, 
    1194        0,     0,   156,   395,     0,     0,     0,   533,   534,   539, 
    1195        0,   535,   538,     0,     0,     0,   135,   100,   100,     0, 
    1196        0,   371,   118,     0,   503,   149,     0,   508,     0,   509, 
    1197      356,    21,    63,     0,     0,   183,   181,   182,   186,   483, 
    1198      486,   485,   484,   180,     0,   184,   185,   328,   492,    20, 
    1199        3,     4,     5,    13,     0,    20,    20,     0,     0,    50, 
    1200      119,    57,   156,    52,    54,    53,    49,     0,    56,    51, 
    1201      205,   173,   191,   489,    55,     0,    19,   364,   366,   394, 
    1202      370,     0,   367,   421,     0,   423,   424,   369,     0,   393, 
    1203      368,     0,   365,     0,   388,     0,     0,     0,   386,   374, 
    1204      497,     0,     0,     0,     0,   373,    32,    20,    31,    26, 
    1205        0,     0,     0,   275,   276,     0,     0,     0,     0,   331, 
     1690       2,     0,     1,     6,     8,     0,     0,    17,     9,  1036, 
     1691    1035,     0,    18,     3,     4,     5,    12,    15,    20,  1034, 
     1692       0,    21,   106,    19,   106,     0,   203,  1032,    22,   106, 
     1693      23,   106,    24,    18,   977,   945,   209,   207,   217,   211, 
     1694     215,   213,    88,   307,     0,     0,     7,    11,    18,   203, 
     1695     204,   974,   108,     0,   107,   960,   193,   193,     0,     0, 
     1696    1035,  1033,   193,   193,    16,     0,     0,   219,   219,   219, 
     1697     219,   243,   219,     0,   205,   206,    10,    13,    14,   465, 
     1698       0,     0,     0,   368,   369,    25,     0,   474,     0,   511, 
     1699     195,    25,   265,   256,   258,     0,   257,    88,   196,   549, 
     1700     105,   109,   110,   116,     0,   194,     0,   112,   261,   117, 
     1701     203,   406,   474,   143,   144,   146,   147,     0,   113,   152, 
     1702       0,     0,   115,   151,   148,   145,   533,     0,   531,   542, 
     1703     547,   530,   528,   529,   118,   119,   120,   719,   717,   717, 
     1704     720,   746,   747,   124,   717,   121,   123,   114,   149,   150, 
     1705     122,   962,   961,     0,   194,   941,   944,   203,     0,     0, 
     1706     103,     0,     0,     0,     0,     0,   926,     0,     0,     0, 
     1707       0,     0,    88,   134,   126,   193,   153,     0,   158,   164, 
     1708     159,   174,   180,   157,   697,   154,   163,   156,   171,   155, 
     1709     796,   166,   165,   182,   162,   179,   173,   161,   176,   181, 
     1710     175,   178,   167,   172,   160,  1011,   177,  1060,  1065,  1041, 
     1711       0,   134,   134,   978,   946,     0,     0,   210,   220,   208, 
     1712     218,   212,     0,     0,   216,   244,   245,   214,   202,   658, 
     1713     631,   632,   201,  1021,     0,   259,   260,  1022,   232,   226, 
     1714       0,   325,   549,     0,   614,   311,   626,   187,   188,   190, 
     1715     191,   189,     0,   309,   615,     0,   613,   618,   619,   621, 
     1716     623,   633,     0,   636,   650,   652,   654,   656,   663,     0, 
     1717     666,   669,   200,   616,     0,     0,   940,     0,   373,   504, 
     1718       0,   502,    26,   733,     0,     0,     0,  1003,     0,  1001, 
     1719     475,     0,     0,   514,   725,     0,     0,     0,     0,     0, 
     1720     518,     0,   425,   430,   533,   429,     0,   550,   111,     0, 
     1721       0,     0,     0,    88,     0,   667,   203,   338,   404,     0, 
     1722       0,   474,   474,   203,     0,     0,     0,     0,   667,   546, 
     1723     741,   193,   197,   197,   777,   967,  1076,   484,   953,   203, 
     1724     956,   958,   959,     0,     0,    88,   549,   168,   104,     0, 
     1725       0,   820,     0,  1079,  1078,   170,   577,   834,     0,     0, 
     1726     832,     0,     0,     0,   602,     0,   825,   665,   673,   675, 
     1727     827,   672,   828,   674,     0,     0,     0,   979,   135,   127, 
     1728     193,   130,   132,   133,     0,     0,     0,     0,     0,  1018, 
     1729     699,     0,     0,   797,   717,  1015,     0,  1066,  1058,  1038, 
     1730     484,   484,   223,     0,     0,     0,   255,   252,     0,     0, 
     1731       0,     0,     0,   324,   327,   330,   329,     0,     0,   549, 
     1732     626,   236,   188,     0,     0,     0,     0,     0,   308,     0, 
     1733     628,     0,   629,   630,     0,   627,   224,     0,   187,   624, 
     1734     639,   638,   643,   641,   642,   640,   635,   644,   645,   647, 
     1735     649,   646,   648,     0,     0,   659,     0,   660,     0,   662, 
     1736     661,     0,   651,  1009,     0,     0,     0,     0,   501,     0, 
     1737     715,   740,     0,   735,     0,     0,   999,  1007,     0,  1005, 
     1738       0,   516,     0,     0,   515,   727,     0,   268,   269,   271, 
     1739       0,   266,     0,   437,     0,   433,   553,   436,   552,   435, 
     1740     519,   418,   518,     0,     0,     0,     0,    25,    25,   557, 
     1741    1074,     0,   889,   226,   888,   665,   887,     0,     0,   824, 
     1742       0,     0,     0,     0,   668,   284,     0,   203,   280,   282, 
     1743       0,     0,     0,   341,     0,   410,   407,   408,   411,   417, 
     1744       0,   413,   415,   416,     0,   476,   486,     0,     0,   488, 
     1745      88,   613,     0,   532,   692,   693,   694,     0,     0,   600, 
     1746       0,     0,   683,   685,     0,     0,     0,     0,   718,   199, 
     1747      25,     0,     0,   193,   717,   722,   742,   748,     0,   768, 
     1748     193,   723,     0,   781,   778,   717,     0,   968,     0,     0, 
     1749       0,   942,   957,   708,     0,     0,   775,   821,   822,     0, 
     1750       0,     0,     0,     0,     0,     0,   666,   917,     0,   915, 
     1751     913,     0,     0,     0,     0,   908,     0,   906,   904,     0, 
     1752    1086,     0,   826,     0,   203,   972,     0,   131,     0,   852, 
     1753     830,     0,     0,     0,     0,     0,     0,     0,     0,    88, 
     1754     537,   833,   876,   829,   831,     0,   879,   873,   878,     0, 
     1755       0,     0,     0,   707,   705,   706,   701,   698,   704,   812, 
     1756     810,     0,   806,   798,   795,   799,  1013,     0,  1012,  1068, 
     1757       0,  1068,     0,  1037,     0,  1057,     0,   221,     0,     0, 
     1758       0,     0,   250,     0,   329,   322,     0,   229,   228,   233, 
     1759     227,     0,   188,   617,   312,   310,   326,   323,   187,   620, 
     1760     622,   625,   634,   637,   653,   655,   657,  1008,     0,     0, 
     1761       0,   468,   374,   534,     0,   508,   510,   542,   509,   503, 
     1762       0,   739,     0,  1000,  1002,     0,  1004,     0,     0,   525, 
     1763     520,   523,   272,     0,   263,     0,     0,     0,     0,   422, 
     1764     426,   549,   442,   224,   443,   230,   447,   445,     0,   446, 
     1765     444,     0,   427,   447,   456,   306,     0,   367,     0,   732, 
     1766       0,   724,     0,   561,     0,     0,   549,     0,   558,   566, 
     1767     575,   576,  1075,     0,   871,     0,     0,     0,   544,   667, 
     1768       0,   285,     0,     0,   262,   281,   353,   345,     0,   348, 
     1769       0,   351,   352,   354,   355,   356,   342,   344,   361,   336, 
     1770     357,   370,   339,     0,   405,     0,     0,   412,     0,   459, 
     1771     360,   480,   472,   477,   478,   481,   482,     0,     0,   203, 
     1772     485,     0,   680,   687,     0,   682,     0,     0,   689,     0, 
     1773     676,   543,   548,   729,     0,     0,     0,     0,     0,     0, 
     1774       0,   194,   750,   754,   751,   765,   749,   759,   756,   743, 
     1775     761,   753,   763,   766,   762,   764,   755,   760,   752,   769, 
     1776     717,   767,     0,     0,     0,   779,     0,   782,   717,   780, 
     1777     986,     0,   987,  1077,   949,     0,   802,   591,   553,   592, 
     1778     580,   588,   593,     0,     0,     0,     0,     0,     0,     0, 
     1779       0,     0,     0,   839,     0,   837,     0,     0,     0,     0, 
     1780       0,     0,     0,     0,     0,     0,     0,   929,     0,   927, 
     1781     918,   921,   541,   919,   540,   539,   851,   538,   920,     0, 
     1782       0,   909,   912,   911,   910,     0,     0,   605,   607,     0, 
     1783     169,     0,   136,   203,   139,   141,   142,   982,   193,     0, 
     1784       0,   830,   877,   881,   875,   880,   882,   883,   884,   885, 
     1785       0,   867,   861,     0,   865,  1020,  1019,     0,     0,   697, 
     1786       0,     0,   804,   808,     0,     0,   549,     0,  1028,  1027, 
     1787       0,  1023,  1025,  1073,  1043,  1072,     0,  1069,  1070,  1059, 
     1788       0,  1055,  1063,     0,   254,     0,     0,     0,     0,   328, 
     1789     192,   240,   238,   239,     0,     0,     0,     0,   466,     0, 
     1790     667,     0,     0,  1006,   534,   496,   498,   500,   517,   526, 
     1791       0,   512,   270,   275,     0,   273,   549,   434,     0,   438, 
     1792     419,   423,   550,     0,   440,   441,     0,     0,   424,   439, 
     1793     225,   231,     0,   734,   726,     0,   562,   569,   565,     0, 
     1794       0,   551,   570,     0,   560,     0,   896,     0,   894,   897, 
     1795       0,     0,   677,   545,   290,     0,   293,     0,   287,   289, 
     1796     297,     0,   294,     0,   276,   346,   349,     0,     0,   371, 
     1797     241,   343,   409,   414,   461,     0,     0,     0,     0,   487, 
     1798     493,     0,   491,   489,   690,   691,   688,   601,     0,   684, 
     1799       0,   686,     0,   678,   731,    25,     0,   744,     0,  1084, 
     1800    1082,     0,   757,     0,     0,   193,   771,   770,     0,     0, 
     1801     790,     0,   783,   776,   784,   969,     0,   963,   950,   951, 
     1802     703,   695,     0,     0,     0,     0,   590,   850,   664,   844, 
     1803     841,   842,   845,   848,     0,   840,   843,   847,   846,     0, 
     1804     835,   931,     0,     0,   932,   933,   939,   930,   536,   938, 
     1805     535,   934,   936,   935,     0,   922,   916,   914,   907,   905, 
     1806       0,     0,  1087,     0,   140,   983,   984,   794,     0,   194, 
     1807       0,     0,     0,     0,   856,     0,   854,   886,   874,     0, 
     1808     869,     0,   892,     0,   863,   890,   893,     0,     0,     0, 
     1809       0,   697,   696,   700,     0,   819,     0,   813,   815,   805, 
     1810       0,   807,  1014,     0,     0,  1016,  1050,     0,  1044,  1056, 
     1811     951,  1064,   951,   222,     0,   251,     0,   248,   247,   549, 
     1812       0,     0,   334,   234,  1010,   671,   470,   469,     0,     0, 
     1813     506,     0,   738,     0,     0,   518,   394,   524,     0,     0, 
     1814       0,     0,     0,     0,   192,   449,   184,   185,   186,   451, 
     1815     452,   454,   455,   453,   448,   450,   313,     0,     0,   315, 
     1816     317,   689,   319,   320,   321,   428,     0,   563,     0,     0, 
     1817     567,   559,     0,   571,   574,   896,   901,     0,   899,     0, 
     1818     872,   787,     0,   291,     0,   286,     0,   241,     0,   283, 
     1819     277,   394,     0,   358,   337,   394,     0,   362,   394,     0, 
     1820     460,   473,   479,     0,     0,   490,   687,     0,     0,   728, 
     1821       0,   745,     0,     0,    32,    33,    91,    71,    94,   259, 
     1822     260,   256,   258,   257,   232,   226,     0,     0,    27,    63, 
     1823      65,    62,   549,    28,   101,   666,     0,     0,   772,     0, 
     1824     791,     0,   792,     0,     0,   988,   989,     0,   952,   947, 
     1825     803,     0,     0,   581,   582,   589,   578,     0,   595,     0, 
     1826       0,   849,   838,     0,   937,     0,   928,     0,     0,     0, 
     1827     606,   608,   609,   603,   800,   985,   980,     0,     0,     0, 
     1828     857,   859,   858,     0,     0,   868,     0,   862,     0,     0, 
     1829     866,     0,     0,   711,     0,   713,   702,   817,     0,   811, 
     1830     816,   809,   549,  1026,  1024,     0,  1042,  1051,  1067,  1071, 
     1831       0,  1048,  1039,  1045,  1050,  1062,  1062,     0,     0,   331, 
     1832       0,   467,     0,   505,   543,   736,   499,   495,     0,   388, 
     1833       0,   375,   380,     0,   383,   376,   386,   377,   390,   378, 
     1834     396,     0,   379,   398,   670,   385,   513,   521,   274,   264, 
     1835       0,   237,   235,     0,     0,   314,   785,   564,   568,   572, 
     1836       0,     0,   895,     0,     0,   288,   392,     0,   299,     0, 
     1837     300,   301,   295,     0,   402,   403,   401,     0,     0,   242, 
     1838       0,     0,   359,   363,     0,   463,   494,   492,   679,   730, 
     1839       0,    31,  1081,  1083,    30,  1085,    66,   542,    67,    72, 
     1840    1080,    95,    98,    96,   102,     0,     0,     0,     0,     0, 
    12061841       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1207        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1208        0,     0,   334,   329,   330,     0,   337,   340,   339,   333, 
    1209      328,   332,     0,   346,   347,   239,   237,     0,   269,   306, 
    1210      308,   305,   271,   304,   270,   341,   384,   238,     0,    61, 
    1211       93,     0,   345,   382,   101,   140,     0,   138,     0,   383, 
    1212      588,     0,     0,   157,    29,   156,     0,   432,    28,   488, 
    1213      487,   392,     0,     0,   377,   521,   519,     0,   379,     0, 
    1214        0,     0,     0,   154,     0,     0,   131,     0,    46,   164, 
    1215      165,   150,   162,   161,     6,   224,   225,   100,    64,   200, 
    1216      198,   199,     0,    45,   121,     0,   156,   107,     0,     0, 
    1217        8,    11,    12,    20,    21,     0,     0,    16,    17,     0, 
    1218        0,    48,   158,    62,   119,     0,   226,   114,   119,   157, 
    1219        0,     0,     0,     0,   226,   146,   151,     0,     0,   104, 
    1220      206,    43,     0,   168,     0,     0,     0,   170,     0,     0, 
    1221      169,   226,   352,   399,   418,   418,   462,   390,   389,   391, 
    1222        0,     0,   532,   372,     0,   499,   496,   501,   502,   385, 
    1223      375,   560,   561,   537,     0,     0,     0,     0,     0,     0, 
    1224        0,   328,     0,   559,   543,   544,   376,   510,   514,     0, 
    1225      536,     0,    18,   410,     0,     0,   274,   267,     0,     0, 
    1226        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1227        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1228        0,     0,     0,     0,     0,   573,   574,   572,     0,   575, 
    1229        0,     0,   237,     0,     0,     0,     0,     0,     0,     0, 
    1230        0,     0,     0,     0,     0,     0,     0,     0,   298,     0, 
    1231        0,     0,   272,   273,   532,   344,   309,   307,   307,   335, 
    1232      338,   336,   342,     0,   226,     0,     0,   143,   142,   141, 
    1233      139,     0,     0,    30,   428,     0,   417,   437,     0,   591, 
    1234      594,   589,   525,   526,     0,   304,     0,   522,   524,   541, 
    1235      378,   332,   237,   304,   592,   594,   596,     0,    59,    66, 
    1236       67,    70,    65,    71,    68,    73,    74,    75,    76,    77, 
    1237       72,    78,    79,    80,    81,    82,    83,    84,    85,    86, 
    1238       87,    69,    88,    89,    60,     0,   132,     0,    98,     0, 
    1239        0,     0,     0,   202,   196,   201,   172,   129,     0,     0, 
    1240        0,     0,   129,     0,     0,   156,    10,    14,    15,    33, 
    1241       33,     0,     0,     0,   117,   156,     0,   120,   115,   134, 
    1242      156,   226,   226,   156,   153,     0,   147,   210,   212,   226, 
    1243      214,     0,   216,   217,   218,   219,   220,     0,   208,   211, 
    1244       33,     0,   102,   226,   174,     0,   328,     0,   203,   332, 
    1245        0,   192,   194,     0,   226,     0,   401,   438,     0,   444, 
    1246        0,     0,   463,     0,   494,   495,     0,   493,     0,   506, 
    1247        0,   500,   504,   551,   552,   554,   553,   557,   556,   555, 
    1248        0,   524,     0,   569,   569,   569,   512,   511,   562,     0, 
    1249      513,     0,     0,     0,     0,     0,   549,   405,   467,     0, 
    1250      242,     0,     0,     0,   241,   248,   245,     0,     0,     0, 
    1251        0,     0,     0,     0,     0,     0,     0,     0,     0,   262, 
    1252        0,   264,     0,     0,     0,   237,     0,     0,     0,     0, 
    1253      314,     0,     0,   240,     0,     0,   303,   297,   292,   282, 
    1254      293,   294,   295,   291,   281,   289,   290,   283,   288,   277, 
    1255      278,   279,     0,     0,   299,   296,   280,     0,   285,     0, 
    1256      284,     0,     0,   315,     0,     0,     0,    95,    96,    94, 
    1257       58,     0,     0,     0,     0,   436,     0,     0,     0,     0, 
    1258      530,   531,   307,   226,     0,   516,   518,   520,   517,     0, 
    1259        0,     0,   387,     0,   155,     0,    91,     0,   163,    44, 
    1260      197,     0,   112,     0,   130,     0,     0,   108,   121,   123, 
    1261        0,     0,     0,   156,   431,     0,    25,    23,   160,    47, 
    1262      159,   119,   231,   235,     0,   228,   230,   236,     0,   187, 
    1263      187,     0,   152,   213,     0,     0,   207,   103,   226,   187, 
    1264        0,     0,   203,   176,     0,   179,     0,   193,   490,     0, 
    1265        0,   353,   357,   396,   409,   407,   408,   403,     0,   406, 
    1266      419,   441,   481,   422,   439,   440,     0,   448,   445,     0, 
    1267      473,     0,   468,   470,   464,   461,   418,   489,   507,   498, 
    1268        0,   558,   542,     0,   570,   566,   564,   567,     0,   515, 
    1269      550,   546,   547,   548,   545,   397,   268,   243,   244,   247, 
    1270      251,   252,   253,   254,   255,   250,   256,   257,   258,   259, 
    1271      260,   261,   263,   265,   266,   246,     0,     0,     0,   576, 
    1272      577,   580,   581,   578,   579,   249,   237,   302,   300,   301, 
    1273      287,   286,   313,   344,   327,   319,   316,   317,   320,   310, 
    1274      312,   226,   145,   144,     0,     0,   453,     0,   460,     0, 
    1275        0,     0,   590,   380,     0,     0,   532,   527,   523,   593, 
    1276      381,   597,    90,    99,     0,   109,   129,   129,   129,   129, 
    1277      129,   124,   122,     0,     0,   110,     0,     0,   427,    42, 
    1278       41,    34,     0,    39,    36,    27,   116,   233,     0,   227, 
    1279      232,   133,     0,   136,   137,   148,   222,   223,   221,     0, 
    1280      209,   187,   348,   175,   203,   177,     0,   195,     0,     0, 
    1281        0,     0,     0,     0,   400,   420,   442,     0,   456,   446, 
    1282        0,   449,     0,   418,     0,   480,     0,   474,   476,   469, 
    1283      471,   465,   226,   505,     0,   569,   571,   563,   328,     0, 
    1284        0,     0,   351,     0,     0,   325,   326,     0,   311,    97, 
    1285        0,     0,     0,   435,     0,     0,   529,     0,    92,   113, 
    1286      125,   126,   127,   128,     0,     0,   466,     0,     0,    35, 
    1287        0,    24,   229,   234,   236,     0,   188,   189,   215,   348, 
    1288        0,     0,   166,   178,   204,   363,   354,   355,   360,   359, 
    1289      358,     0,   413,   415,     0,   398,   399,     0,   457,   458, 
    1290      450,   443,   418,   447,   478,     0,   472,   477,   226,     0, 
    1291      565,   582,   583,   584,   343,   324,     0,   321,   318,     0, 
    1292        0,     0,   433,   595,   528,     0,   129,   452,    40,    37, 
    1293        0,     0,   167,   349,   350,     0,     0,   411,   414,   416, 
    1294      399,   402,     0,   459,   451,   475,   479,   491,   568,   323, 
    1295        0,   587,     0,     0,     0,     0,     0,    38,   190,   362, 
    1296      361,   412,   404,   454,   322,   434,   585,   111,   455,     0, 
    1297      586 
     1842      55,     0,     0,     0,    29,   758,   193,     0,   793,   970, 
     1843       0,     0,   964,     0,   587,   584,     0,     0,     0,     0, 
     1844     594,   597,   599,   836,   924,   923,   611,     0,     0,     0, 
     1845       0,     0,     0,     0,   860,   855,   853,   870,   891,   864, 
     1846       0,   709,   712,   714,   814,   818,  1017,     0,  1046,  1049, 
     1847       0,  1047,  1053,     0,     0,     0,     0,   507,     0,     0, 
     1848     527,   395,   389,     0,     0,     0,     0,   384,   400,   396, 
     1849       0,     0,   318,   316,   573,     0,   900,     0,   786,     0, 
     1850     298,     0,     0,     0,     0,   296,   302,   347,   350,   372, 
     1851     364,   366,   365,   306,   462,   394,     0,    64,    64,    64, 
     1852       0,    54,    60,    49,    39,    50,    51,    52,    48,    38, 
     1853      46,    47,    40,    45,    34,    35,    36,     0,     0,    53, 
     1854      56,    37,     0,    42,     0,    41,     0,   788,   997,   965, 
     1855     996,   971,   992,   995,   994,   991,   990,   948,   586,   585, 
     1856     583,   579,   596,     0,   612,   610,   604,   801,   981,   193, 
     1857       0,   710,     0,  1040,     0,  1061,     0,     0,     0,   737, 
     1858       0,   381,   382,   385,   388,     0,   387,   391,   397,   393, 
     1859     399,   522,     0,     0,   898,   292,   303,   305,   304,     0, 
     1860      74,    61,    75,     0,     0,     0,    59,    57,    58,    44, 
     1861      43,   789,     0,     0,   925,     0,  1052,  1054,   246,   249, 
     1862     332,     0,   389,     0,   431,     0,   464,    72,    87,    76, 
     1863      77,    80,    79,    68,     0,    73,   966,   993,   823,     0, 
     1864     497,     0,     0,     0,    85,     0,    86,    70,   333,   432, 
     1865     902,    84,     0,    78,    81,     0,    83,     0,   903,    82 
    12981866}; 
    12991867 
     
    13011869static const yytype_int16 yydefgoto[] = 
    13021870{ 
    1303       -1,     1,    70,    71,    72,    73,   250,    74,   865,    75, 
    1304      205,   129,   127,   696,   951,   862,   863,    76,   237,   463, 
    1305      464,   228,   189,   190,   403,   467,   196,   281,   282,    77, 
    1306       78,   246,   247,   681,    79,    80,   267,   248,   682,   683, 
    1307       81,    82,    83,    84,    85,   409,    86,    87,   275,   276, 
    1308      225,   206,   261,   262,    88,   233,    89,   283,   522,    90, 
    1309      287,   527,    91,    92,   873,   956,   290,   531,   242,   528, 
    1310      725,   284,   517,   518,   879,   519,   497,   704,   705,   706, 
    1311      337,   175,   338,   176,   177,   392,   635,   617,   178,   643, 
    1312      179,   180,   181,   182,   645,   816,   817,   818,   183,   184, 
    1313      185,   401,   396,   193,   186,   962,   187,    94,    95,   731, 
    1314      732,   967,   968,   740,    97,    98,   734,    99,   100,   536, 
    1315      737,   892,   101,   738,   739,   334,   893,   974,   975,   655, 
    1316      537,   102,   103,   104,   105,   106,   207,   418,   538,   743, 
    1317      744,   107,   747,   748,   900,   901,   108,   749,   902,   981, 
    1318      109,   110,   541,   542,   111,   543,   755,   752,   906,   907, 
    1319      908,   745,   112,   113,   114,   115,   116,   211,   291,   117, 
    1320      118,   303,   119,   306,   550,   120,   121,   551,   552,   122, 
    1321      566,   326,   570,   214,   218,   426,   427,   546,   123,   328, 
    1322      124,   428,   429,   331,   567,   568,   765,   368,   369,   854, 
    1323      125,   420,   421,   435,   658,   437 
     1871      -1,     1,    13,    14,    15,    16,    46,    17,    18,    33, 
     1872     284,  1326,  1327,  1524,  1639,  1621,  1328,  1702,  1329,  1617, 
     1873    1618,  1330,  1619,  1331,  1703,  1729,  1730,  1731,   346,  1333, 
     1874    1334,  1503,   347,    51,    52,   100,   101,   102,   173,   174, 
     1875     379,   380,   381,   377,   378,   932,   933,   934,   103,   175, 
     1876     176,   243,  1245,  1246,   244,   991,   177,   105,   572,  1105, 
     1877     245,    19,    20,    44,    68,    67,    70,    72,    71,    69, 
     1878     217,   218,   246,   247,   689,   421,   248,   249,   423,   994, 
     1879    1297,   224,   225,   226,   407,   250,   251,   107,   316,   108, 
     1880     297,   298,   487,   488,  1014,  1015,   784,   526,   527,   528, 
     1881     529,   782,  1057,  1058,  1464,  1061,  1062,  1287,  1467,  1605, 
     1882    1606,   747,   748,   252,   253,   749,  1258,  1259,  1260,   254, 
     1883     412,   255,   697,   413,   414,   415,  1220,  1221,   109,   110, 
     1884    1068,   531,   532,   533,   796,  1291,  1292,   799,   800,   811, 
     1885     801,  1482,  1483,   750,   111,  1070,  1295,  1406,  1430,  1431, 
     1886    1432,  1433,  1434,  1435,  1436,  1437,  1438,  1439,  1440,  1441, 
     1887    1442,  1443,  1477,   113,   534,   318,   536,   537,   114,   540, 
     1888     541,   542,   115,   737,   501,   502,   300,   301,   751,   302, 
     1889     303,   494,   495,  1018,   752,  1024,  1254,   753,   754,   116, 
     1890     117,  1076,   809,  1298,  1615,   118,   275,  1228,   710,   711, 
     1891     119,   120,  1077,   291,   812,   813,   814,   815,    53,   122, 
     1892     817,   548,   549,  1081,  1082,   123,  1235,  1005,  1006,   124, 
     1893     280,   281,   466,  1229,   714,   125,   293,  1238,   483,   543, 
     1894     503,  1011,  1590,   730,   731,  1236,   256,   552,   127,   877, 
     1895    1149,  1150,   641,   916,   917,  1658,   914,   128,   522,   129, 
     1896     329,   130,   509,   497,   131,   132,   133,   767,   768,  1044, 
     1897     769,   178,   599,  1538,  1124,  1353,  1354,  1659,  1535,   880, 
     1898     881,   882,  1126,  1357,  1358,  1359,  1360,  1086,   179,   619, 
     1899    1549,   928,  1161,  1371,  1372,   257,   258,   259,   260,   261, 
     1900     431,   434,   262,   263,   453,   264,   454,   265,   266,   267, 
     1901     268,   269,   456,   458,   461,   270,  1127,  1128,   271,   523, 
     1902     360,  1445,  1226,   370,   371,   372,   373,   180,   181,   326, 
     1903     560,   561,   562,   563,  1263,   555,   556,  1264,   182,   183, 
     1904     390,   656,   958,   184,   657,   658,   594,   959,  1191,  1192, 
     1905     721,   330,   331,   185,   137,   138,   574,   139,   285,   472, 
     1906     332,   575,   576,   140,   141,   577,   846,   142,   578,   579, 
     1907    1106,   349,   186,   187,   583,   584,   866,   867,   144,   585, 
     1908     868,  1113,   188,   189,   392,   393,   190,  1550,  1122,   394, 
     1909     664,   964,  1200,   661,   960,  1196,  1197,  1198,   191,   192, 
     1910     193,   194,   195,   374,   642,   643,   644,   196,   600,  1363, 
     1911     894,   895,  1129,   918,   197,   939,  1175,  1176,   198,  1183, 
     1912    1389,   199,  1179,  1386,   200,   645,   646,   647,   648,  1184, 
     1913    1185,  1047,  1048,  1049,  1277,  1278,  1597,   201,   616,   617, 
     1914     202,   608,   609,   203,  1367,  1663,   358,   908,   909,   383, 
     1915      21,   337,   155,    22,    66,   591,  1533,  1119,  1349,   156, 
     1916     338,   339,   340,    54,   335,    55,  1347,  1712,   588,  1649, 
     1917      23,    56,    24,    65,   625,   626,  1551,  1166,  1376,   871, 
     1918    1117,  1345,  1650,  1651,  1652,  1653,   538,   148,   288,   289, 
     1919     149,   478,   479,   273,   708,   204,   396,   965,   667,  1405, 
     1920     205,   651,   274,   970,   971,   972,    25,    26,    27,    28, 
     1921      29,   671,  1570,   210,  1407,   975,  1412,  1413,  1568,  1408, 
     1922    1414,   673,  1674,  1210,    30,    31,   670,   208,   675,  1572, 
     1923    1212,   398,   669,   976,   977,   978,   206,   157,   589,   355, 
     1924    1102,  1616,   621 
    13241925}; 
    13251926 
    13261927/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
    13271928   STATE-NUM.  */ 
    1328 #define YYPACT_NINF -845 
     1929#define YYPACT_NINF -1443 
    13291930static const yytype_int16 yypact[] = 
    13301931{ 
    1331     -845,   967,  -845,  -845,  -845,  -845,   -22,    45,  -845,    94, 
    1332      186,  3621,   199,   238,  -845,  4658,    16,    36,  3621,  -845, 
    1333      369,   256,    56,  -845,   299,   280,   268,  -845,  -845,  -845, 
    1334      306,  -845,  -845,   409,   311,   350,  -845,   357,   357,   119, 
    1335      354,  -845,  -845,    53,  -845,  -845,   420,  -845,   386,  -845, 
    1336     -845,  5758,   363,   274,   280,  -845,  -845,  -845,  -845,  -845, 
    1337     -845,  -845,  -845,  -845,   237,  -845,  -845,   549,  -845,  -845, 
    1338     -845,   122,   563,  -845,   440,  -845,  -845,   319,   433,   436, 
    1339      159,   495,   622,   624,  -845,  -845,   523,   329,  -845,  -845, 
    1340      398,   102,   163,  -845,  -845,   471,  -845,  -845,  -845,  -845, 
    1341     -845,   215,  -845,  -845,   215,  -845,  -845,  -845,   215,  -845, 
    1342     -845,   215,  -845,   280,  -845,   280,   280,    20,   630,  -845, 
    1343      472,    44,  3621,   306,  5477,  -845,  -845,  -845,  -845,  -845, 
    1344     4658,  4658,  4658,  -845,  -845,  4658,   473,   474,   477,  -845, 
    1345     4658,  4658,  4658,   478,   484,   486,   487,   488,   494,   496, 
    1346      497,   498,   499,   500,   501,  4658,   505,  4658,   507,   508, 
    1347      511,  4767,  -845,  -845,  -845,   512,  -845,  -845,  -845,  -845, 
    1348     -845,  -845,  4658,  -845,  2490,  -845,  -845,  4658,   470,  -845, 
    1349      513,   515,  -845,   516,   522,   270,  -845,  -845,   524,   654, 
    1350     -845,  4658,  2490,  -845,  -845,  -845,   277,  -845,   277,  -845, 
    1351     -845,  4658,  4658,  -845,  -845,   110,   326,  -845,  -845,  -845, 
    1352     -845,  -845,   524,  5347,  4767,  -845,  -845,  4876,  -845,   524, 
    1353      524,   277,  2573,  -845,   527,   524,  -845,  4658,   665,  -845, 
    1354     -845,  -845,  -845,   680,   563,  -845,  -845,   357,  -845,  -845, 
    1355     2967,  -845,   526,  -845,    88,   524,    32,  -845,   384,    82, 
    1356     -845,  -845,  -845,  -845,  5621,    45,    45,  -845,  -845,   687, 
    1357      533,   691,  -845,  -845,   535,   442,   534,  -845,   535,   524, 
    1358      442,   537,   539,   442,   534,   699,  -845,   545,   847,  -845, 
    1359     -845,  -845,    45,   714,   564,   434,  3874,  -845,  4985,   274, 
    1360     -845,   534,   727,   122,   122,   122,   258,  -845,  -845,  -845, 
    1361     4658,  4658,  -845,  -845,   571,  3983,  -845,  -845,  -845,  -845, 
    1362     -845,  -845,  -845,  -845,  4658,  4658,  4658,  4658,  4658,  4658, 
    1363     4658,   726,  5347,  -845,   470,   522,  -845,  1249,   730,   555, 
    1364      561,  5523,  -845,  2490,   572,  1332,   875,  2490,    38,  4658, 
    1365     4658,  4658,    48,  1353,    61,  4658,  4658,  4658,  4658,  4658, 
    1366     4658,  4658,  4658,  4658,  4658,  4658,  4658,  1514,  4658,    68, 
    1367     4658,  4658,  4658,  4767,  2490,  1533,   753,  1552,   278,   731, 
    1368     4658,  1616,   733,  3294,  4658,  4658,  4658,  4658,  4658,  4658, 
    1369     4658,  4658,  4658,  4658,  4658,  4658,  4658,  4658,  3076,  4658, 
    1370     3403,  3512,  -845,   185,  -845,  4658,  -845,  -845,  -845,  -845, 
    1371     -845,  -845,  -845,    69,   534,   199,  1635,  -845,  -845,   734, 
    1372      734,  1129,  1713,  -845,  -845,   576,  -845,  -845,   736,   470, 
    1373      739,  -845,  -845,  -845,  5523,  3765,    79,  -845,   555,  -845, 
    1374      740,   581,   582,   439,  -845,   743,  -845,   105,   734,  -845, 
    1375     -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845, 
    1376     -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845, 
    1377     -845,  -845,  -845,  -845,   744,   717,  -845,   106,  2490,   588, 
    1378      591,   280,  4092,  -845,  -845,  2490,  -845,   598,  4658,    31, 
    1379      237,   594,   598,   595,   602,   125,  -845,  -845,  -845,   609, 
    1380      609,  4658,   109,   533,  -845,   622,  2531,  -845,  -845,  -845, 
    1381      622,   534,   534,   622,  -845,   545,   699,  -845,  -845,   534, 
    1382     -845,   615,  -845,  -845,  -845,  -845,  -845,   123,  -845,  -845, 
    1383      609,   618,  -845,   534,  -845,  3874,  3185,   585,   750,    34, 
    1384     4201,  -845,  2490,   592,   534,    80,  4331,  5955,    78,  5879, 
    1385       13,    85,  -845,   215,  2490,  2490,   524,  -845,   619,  2490, 
    1386      616,   778,  -845,  2490,  2490,  2490,  2490,  2490,  2490,  2490, 
    1387     4658,   337,  1249,  2490,   706,  1732,  -845,   779,  -845,  1249, 
    1388     -845,  5523,  5523,  5523,  5523,  5523,   760,  4658,  -845,  4658, 
    1389     -845,   111,   115,  1751,  -845,  -845,  -845,  1796,  1815,  1834, 
    1390     1912,  1931,  1995,  2014,  2033,  2092,  2111,  2130,  2194,  -845, 
    1391      121,  -845,   130,   136,   149,   781,   785,   786,  4767,  4767, 
    1392     -845,  4767,   150,  -845,  4658,  4658,  2490,  -845,   542,   542, 
    1393      806,   806,   875,   887,   887,   887,   887,   887,   887,   164, 
    1394      164,   185,  4658,  4658,  2490,  -845,   185,  4658,   887,  4658, 
    1395      887,   524,   787,  2640,   627,   629,   524,  -845,  -845,  -845, 
    1396     -845,   295,  4658,  6031,  4658,  -845,  4658,    19,   631,   337, 
    1397     -845,  -845,  2640,    83,  5347,  -845,  -845,  -845,  -845,    19, 
    1398      632,   524,  -845,  2573,  -845,  4658,  -845,  4658,  -845,  -845, 
    1399     -845,   771,    42,   547,  -845,  2213,   636,  -845,   637,  -845, 
    1400      776,  4658,  4658,   135,  -845,   242,  -845,   774,  2490,  -845, 
    1401     -845,   535,  4658,  -845,   151,  -845,  -845,  1253,   524,   780, 
    1402      780,   545,  -845,  -845,   476,   847,  -845,  -845,   534,   780, 
    1403      641,  4092,   750,  -845,   645,  -845,   644,  -845,  -845,   804, 
    1404      688,   809,  -845,  2490,  -845,  -845,  -845,   773,   215,  -845, 
    1405      215,   653,  -845,  -845,  -845,  -845,   652,   536,  -845,   215, 
    1406     -845,  2749,   655,   664,  -845,  -845,   122,  -845,  -845,  -845, 
    1407     3983,  2490,  -845,   152,  -845,  2490,  2490,  2490,  1249,   779, 
    1408      570,   760,   760,   760,   593,  -845,  2490,  -845,  -845,  -845, 
    1409     -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845, 
    1410     -845,  -845,  -845,  -845,  -845,  -845,  5094,  5094,  5094,  2490, 
    1411     -845,  2490,  -845,  2490,  -845,  -845,   667,   887,   887,   185, 
    1412      887,   887,   470,  4658,  2858,  1415,   828,  -845,  -845,   513, 
    1413     -845,   534,  -845,  -845,  2291,   670,  -845,   671,  -845,  2310, 
    1414     1150,   829,  -845,  -845,  1233,   672,  -845,  -845,  -845,  -845, 
    1415     -845,  -845,  -845,  2490,   153,  -845,   598,   598,   598,   598, 
    1416      598,   522,  -845,   832,   676,  -845,  2329,  2374,  -845,  -845, 
    1417     -845,  -845,   154,  -845,   678,  -845,  -845,  2490,  2531,  -845, 
    1418     4440,  -845,  5203,  -845,  -845,   699,  -845,  -845,  -845,   679, 
    1419     -845,   780,   231,  -845,   750,  -845,  4092,  -845,   291,   681, 
    1420      683,  4658,   586,   215,   122,   122,  -845,  4658,   685,  -845, 
    1421      454,  -845,   215,   122,  4658,  2490,   155,  -845,   842,  -845, 
    1422     -845,  5955,   534,  -845,  1831,  2490,  -845,  -845,   832,   684, 
    1423      686,   689,  -845,   690,  4658,  1435,  4658,  2640,  -845,  -845, 
    1424      845,  4658,  4658,  -845,  4658,   524,  -845,   524,  -845,  -845, 
    1425       66,    66,   693,   143,  4658,   833,  -845,   768,    60,  -845, 
    1426      259,  -845,  -845,  -845,  2490,  4549,  -845,  2490,  -845,   231, 
    1427     4658,  4658,  -845,  -845,  -845,   729,  -845,   851,  -845,  -845, 
    1428     -845,   695,   696,   702,   215,  -845,   122,  2393,  -845,   703, 
    1429     -845,  -845,   122,  5955,  -845,  2749,  -845,  4658,   534,   701, 
    1430     2490,  -845,  -845,  -845,  -845,  2490,  4658,  1455,  -845,  4658, 
    1431      704,  2412,  1171,   470,   697,  1192,   598,  -845,  -845,  -845, 
    1432      157,   705,  -845,  2490,  2490,   709,   713,   716,  -845,  -845, 
    1433      122,  4331,   784,  -845,  5955,  -845,  -845,  -845,  -845,  2490, 
    1434     4658,  2490,  4658,  6107,  4658,  4658,   855,  -845,  -845,  -845, 
    1435     -845,  -845,  4331,   719,  2490,  2490,  1213,  -845,  -845,  4658, 
    1436     2490 
     1932   -1443,   781, -1443, -1443, -1443,   -66,    24, -1443, -1443, -1443, 
     1933     134,   919, -1443, -1443,    72,   307, -1443, -1443, -1443, -1443, 
     1934     975, -1443,   154, -1443,   154,   623,   403, -1443, -1443,   154, 
     1935   -1443,   154, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1936   -1443, -1443, -1443,   142,   200,   224, -1443, -1443, -1443,   704, 
     1937   -1443, -1443,  4029,   267,   154, -1443,     3,  4324,   254,   304, 
     1938   -1443, -1443,  4324,  4324, -1443,   193,   193,    87,    87,    87, 
     1939      87,   207,    87,  1692, -1443, -1443, -1443, -1443, -1443, -1443, 
     1940     193,   102,   242, -1443, -1443,    96,   259,   359,   510, -1443, 
     1941   -1443,    96,   184, -1443, -1443,   508, -1443,   568, -1443,   388, 
     1942   -1443,  4029, -1443, -1443,   518,  1048,   404, -1443, -1443, -1443, 
     1943     459,   355,   359, -1443, -1443, -1443, -1443,   492, -1443, -1443, 
     1944     503,   552, -1443, -1443, -1443, -1443,   410,   685, -1443,   505, 
     1945   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1946   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1947   -1443, -1443, -1443,   606, -1443, -1443, -1443,   650,   532,   537, 
     1948    3547,   310,   374,   486,   578,   595, -1443,  3801,  3816,   608, 
     1949     612,  3587,   752,   703, -1443,  4216, -1443,  1148, -1443, -1443, 
     1950   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1951     786, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1952   -1443, -1443, -1443, -1443, -1443,   646, -1443, -1443,   662, -1443, 
     1953     664,   703,   703,    72,    72,   651,  1619, -1443, -1443, -1443, 
     1954   -1443, -1443,   550,  1481, -1443, -1443, -1443, -1443, -1443, -1443, 
     1955   -1443, -1443, -1443, -1443,  3831, -1443, -1443, -1443,   659,   674, 
     1956    3846, -1443,   122,   865, -1443, -1443, -1443,   705, -1443, -1443, 
     1957     404, -1443,   111, -1443, -1443,  3831, -1443, -1443,   862, -1443, 
     1958     831,   225,  1123,   891, -1443, -1443,   888,   905,   856,  1023, 
     1959   -1443, -1443, -1443, -1443,   723,   729,    72,   877, -1443, -1443, 
     1960     100, -1443, -1443,    72,   496,   193,   740, -1443,   101, -1443, 
     1961   -1443,   755,   771,   665,    72,   193,   270,   783,   360,   596, 
     1962     104,   633, -1443, -1443, -1443, -1443,   342, -1443, -1443,  3587, 
     1963    3602,  3846,   193,   946,   971,  3846,   694,   231, -1443,   790, 
     1964     205,   359,   359,   326,  3886,  3846,   839,  3846,  3846,   792, 
     1965   -1443,  4131,   480,   824,   894,   247, -1443, -1443, -1443,   795, 
     1966   -1443, -1443, -1443,  3846,  3846,   331,   388, -1443, -1443,   193, 
     1967     193,    72,   193, -1443, -1443, -1443, -1443, -1443,   811,  2546, 
     1968   -1443,   193,  3403,   193, -1443,   814,    72, -1443, -1443, -1443, 
     1969   -1443, -1443, -1443, -1443,   193,   395,   193, -1443, -1443, -1443, 
     1970    4239, -1443, -1443, -1443,  3846,   819,  3158,  3158,  3602, -1443, 
     1971     745,    93,   106, -1443, -1443,   822,   193, -1443, -1443, -1443, 
     1972   -1443, -1443, -1443,  1020,   835,  1692, -1443, -1443,  1021,  1028, 
     1973     127,  3831,   863,  1035, -1443, -1443, -1443,   708,   708,   463, 
     1974     864, -1443,   869,   871,  1123,   854,  1692,  1692, -1443,   855, 
     1975   -1443,  1123, -1443, -1443,  1123, -1443, -1443,  1123,   884,   831, 
     1976   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     1977   -1443, -1443, -1443,  1023,  1023, -1443,  3846, -1443,  3846, -1443, 
     1978   -1443,  3846, -1443,   867,   874,   868,  1069,   242,    72,   876, 
     1979   -1443, -1443,  1063,    72,   101,   740,    72, -1443,   110, -1443, 
     1980    1050, -1443,   881,   882, -1443,    72,   885,  1074, -1443, -1443, 
     1981     193, -1443,   890, -1443,  1079, -1443, -1443, -1443, -1443, -1443, 
     1982   -1443, -1443,   113,   508,   508,   615,  3846,    96,    96,  1574, 
     1983      72,   193, -1443,    88, -1443, -1443, -1443,   114,   896,    72, 
     1984     974,  3846,   898,  1082, -1443,   325,   926,   762, -1443, -1443, 
     1985    1036,   909,   947,  1101,   193, -1443,  1103, -1443, -1443, -1443, 
     1986     115, -1443, -1443, -1443,   915,   241, -1443,   916,   120, -1443, 
     1987   -1443,    85,   913, -1443, -1443, -1443, -1443,   193,  1110, -1443, 
     1988     129,   137, -1443, -1443,  1069,   193,   923,   814, -1443, -1443, 
     1989      96,  1116,  1008,  4006, -1443, -1443, -1443, -1443,    62, -1443, 
     1990     252, -1443,   933,   834, -1443, -1443,   990, -1443,   938,   193, 
     1991     951, -1443, -1443, -1443,   940,   944,    72,    72,    72,   814, 
     1992    3083,  2997,  3846,   374,  1069,  1069,   854, -1443,   138, -1443, 
     1993      72,  3846,   374,  1069,  1069, -1443,   140, -1443,    72,   814, 
     1994   -1443,   149,    72,   950,   509, -1443,   957, -1443,   952, -1443, 
     1995   -1443,  1136,  3617,  3602,   958,   374,   374,   374,  1069, -1443, 
     1996   -1443, -1443, -1443, -1443, -1443,   152, -1443, -1443, -1443,   155, 
     1997     123,   425,  1069, -1443, -1443, -1443,  1117, -1443, -1443, -1443, 
     1998   -1443,   397,   963, -1443, -1443, -1443, -1443,  3846,    72,    80, 
     1999     193,    80,   977, -1443,   978, -1443,  3846, -1443,   962,  1692, 
     2000    3846,  3846, -1443,  1160,   854, -1443,  3831, -1443, -1443, -1443, 
     2001   -1443,   237,   989, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     2002   -1443,   831,   225,  1150, -1443,   888,   905, -1443,  3846,  1167, 
     2003     165, -1443, -1443,   529,  1173, -1443, -1443,   985, -1443, -1443, 
     2004    3846, -1443,  3846,    72, -1443,   755,    72,   814,  1158,   987, 
     2005    1180, -1443, -1443,   270,    72,   992,   596,   193,   508, -1443, 
     2006   -1443,   991, -1443,  1165, -1443, -1443,   244, -1443,   994, -1443, 
     2007   -1443,   643, -1443,  1165, -1443,  1170,   535, -1443,  1001,    72, 
     2008     193,    72,   193,  1723,   374,  3846,   144,   178, -1443, -1443, 
     2009     141, -1443,    72,  3901,    72,  1096,  3846,   193, -1443,  3846, 
     2010     620, -1443,   814,   439, -1443, -1443, -1443, -1443,  1011, -1443, 
     2011    1013, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443,  1199, 
     2012   -1443,  1016, -1443,  1036,    72,   790,   205,    72,  1024,  1211, 
     2013   -1443, -1443, -1443,  1218, -1443, -1443, -1443,   193,  1032,   459, 
     2014      72,  1037,    72,  3846,  3846, -1443,  3846,  1088, -1443,   193, 
     2015      72, -1443, -1443,    72,   193,  1071,   447,  1045,  3916,  1049, 
     2016     924,  1069, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     2017   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443,   824, 
     2018   -1443, -1443,  1104,  3846,   493, -1443,   691, -1443, -1443, -1443, 
     2019   -1443,  1090,  1244,    72,  1135,   931, -1443, -1443, -1443, -1443, 
     2020    1249, -1443,  1059,  3846,  3846,  3846,  3846,  3846,  1255,  3846, 
     2021     374,  3846,  1069, -1443,   187, -1443,  3846,  1257,  1069,  1069, 
     2022    1069,  1069,  3846,  1069,   374,  1069,  1069, -1443,   188, -1443, 
     2023   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443,  2546, 
     2024     193, -1443, -1443, -1443, -1443,  3403,   193, -1443,  1261,   814, 
     2025   -1443,  3846, -1443,   960, -1443, -1443, -1443,  1235,  2666,  3475, 
     2026    3846, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     2027    3158,  3901,  1034,  1034,    72, -1443, -1443,  3846,   903, -1443, 
     2028    1768,   193,    72, -1443,   193,   193,   122,  1267, -1443, -1443, 
     2029     189, -1443, -1443, -1443, -1443, -1443,  1081,  1263, -1443,    72, 
     2030    1083,  1251,  1254,  1085, -1443,   195,   198,  1100,  3831, -1443, 
     2031   -1443, -1443, -1443, -1443,  1102,   203,  3846,   874, -1443,  1069, 
     2032    3846,  1105,  1293, -1443, -1443,  1295, -1443, -1443, -1443, -1443, 
     2033     882,   625, -1443, -1443,   208, -1443,   146, -1443,  1296, -1443, 
     2034      72, -1443,  1692,  2409, -1443, -1443,  3667,   615, -1443, -1443, 
     2035   -1443, -1443,  1198,    72,    72,  3846,  1300, -1443, -1443,  3682, 
     2036    1574, -1443,  1816,  3846, -1443,  3901, -1443,   132, -1443, -1443, 
     2037     193,  1111,    72, -1443, -1443,  1126, -1443,   346, -1443, -1443, 
     2038    1128,   139, -1443,   193,    72, -1443, -1443,   909,   193, -1443, 
     2039    1306, -1443, -1443, -1443, -1443,  1137,   193,   193,   241,    72, 
     2040    1308,   209, -1443, -1443, -1443, -1443, -1443, -1443,  1326, -1443, 
     2041    1328, -1443,  1069,    72,    72,    96,   193,    72,  3846,  2934, 
     2042    2880,  3371, -1443,   814,  3846,  4347, -1443,   824,  1139,   193, 
     2043      72,   506, -1443, -1443, -1443, -1443,    83, -1443, -1443,  1143, 
     2044      72, -1443,   193,   289,  1144,  3846, -1443, -1443, -1443, -1443, 
     2045   -1443, -1443, -1443, -1443,  3846, -1443, -1443, -1443, -1443,  3083, 
     2046   -1443, -1443,  1069,  1147, -1443, -1443, -1443, -1443, -1443, -1443, 
     2047   -1443, -1443, -1443, -1443,  3317, -1443, -1443,    72, -1443,    72, 
     2048     450,  1149, -1443,  1151, -1443, -1443,  1146, -1443,  1210,   239, 
     2049    1338,  3846,   374,  1069, -1443,   210, -1443, -1443, -1443,   193, 
     2050    1342,  3901, -1443,   193,  1344, -1443, -1443,   143,  1154,   520, 
     2051     557, -1443, -1443,   745,  3846, -1443,   211, -1443,  1347,    72, 
     2052     193,    72,    72,  3846,  3846, -1443,  1305,    80,   558, -1443, 
     2053    1143, -1443,  1143, -1443,  1258, -1443,  1282, -1443, -1443,   146, 
     2054    1163,  1355, -1443, -1443, -1443, -1443, -1443, -1443,   193,   212, 
     2055   -1443,  1168, -1443,  3846,   814,   159,  1894, -1443,   193,   665, 
     2056     992,   193,  3846,   237,   585, -1443, -1443, -1443, -1443, -1443, 
     2057   -1443, -1443, -1443, -1443, -1443, -1443, -1443,  1357,   215, -1443, 
     2058   -1443,  1164, -1443, -1443, -1443, -1443,   193, -1443,  3846,   374, 
     2059   -1443, -1443,  3846,  1361, -1443,   854, -1443,  1363, -1443,  3901, 
     2060      72,    72,  1264, -1443,   620, -1443,  1927,  1306,   814,    72, 
     2061      72,  1894,   602, -1443,    72,  1894,   550,   305,  1894,  1176, 
     2062      72,    72, -1443,  1175,  1032, -1443, -1443,  3846,   193,    72, 
     2063     193,    72,  1177,  3846, -1443, -1443, -1443, -1443, -1443,   636, 
     2064     640,   809,   836,  1009,   547,   562,  1178,  3846,  1174, -1443, 
     2065    1069,  1181,   514,  1186,  1099,   654,   216,  1184, -1443,  1276, 
     2066      72,   193,    72,  1377,  1236,  1379, -1443,   193, -1443, -1443, 
     2067      72,  1069,  1381,  1384, -1443, -1443, -1443,   217, -1443,  3846, 
     2068    1380, -1443, -1443,   193, -1443,  3901, -1443,   193,  1069,  1383, 
     2069   -1443,  1386, -1443, -1443, -1443, -1443, -1443,  3846,   374,  3846, 
     2070   -1443, -1443, -1443,  3475,   193,    72,   193,    72,  1034,   193, 
     2071      72,   586,   193,    72,   193,    72,   745, -1443,  1768, -1443, 
     2072    3846,    72,   388, -1443, -1443,   193, -1443, -1443, -1443, -1443, 
     2073    1196,  1367, -1443, -1443,  1305, -1443, -1443,  1389,  1392, -1443, 
     2074    3846,    72,  1069, -1443, -1443,  1395, -1443,    72,  1378, -1443, 
     2075    1204,  1398, -1443,  1399, -1443,  1401, -1443,  1402, -1443, -1443, 
     2076    3846,  1385,  1404, -1443, -1443,  1405,    72, -1443, -1443,    72, 
     2077    1407, -1443, -1443,  3886,  3886, -1443,    72, -1443, -1443, -1443, 
     2078    3846,  3901, -1443,   193,  1927, -1443, -1443,  1217,  1410,  1412, 
     2079    1402,   362, -1443,  1219, -1443, -1443, -1443,  1222,  1223, -1443, 
     2080    3846,   669, -1443, -1443,  1224, -1443, -1443, -1443,    72,    72, 
     2081     760, -1443, -1443, -1443, -1443, -1443, -1443,   985, -1443,   112, 
     2082   -1443, -1443,  1226, -1443, -1443,  2015,  3846,  3846,  3846,  3846, 
     2083    3846,  3846,  3846,  3846,  3846,  3846,  3846,  3846,  3846,  3846, 
     2084    1425,  3846,  2474,  2531, -1443, -1443,  4347,   588,    72,  1229, 
     2085    1230,  1231,    72,   193, -1443, -1443,  1069,   291,   193,  3846, 
     2086   -1443, -1443, -1443,    72,  1342,    72, -1443,  1069,   301,   193, 
     2087     193,   193,  1232,  1421, -1443, -1443,    72,    72, -1443,    72, 
     2088     193,    72,    72,    72, -1443, -1443,    72,  1239, -1443, -1443, 
     2089     193, -1443, -1443,   193,  3846,  1692,  1429, -1443,  3846,  1241, 
     2090   -1443,  3846,  3697,  2153,  1424,  1430,  1416, -1443, -1443,  3846, 
     2091     882,  3846, -1443, -1443, -1443,  1433, -1443,  1246,    72,  1253, 
     2092   -1443,  3846,  3846,  3846,   669, -1443, -1443, -1443, -1443, -1443, 
     2093   -1443, -1443, -1443, -1443, -1443,  1894,   249, -1443, -1443, -1443, 
     2094    3846, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     2095   -1443, -1443, -1443, -1443, -1443, -1443, -1443,  3846,  3846, -1443, 
     2096   -1443, -1443,  3846, -1443,  3846, -1443,   193,    72,  1236, -1443, 
     2097   -1443,  1436, -1443, -1443, -1443, -1443, -1443,    72, -1443, -1443, 
     2098   -1443,    72, -1443,   193, -1443, -1443,    72,    72,    72,  4347, 
     2099     374,    72,  1256,    72,   193,    72,  1260,  1262,  3846, -1443, 
     2100    1427, -1443, -1443, -1443, -1443,  1442, -1443, -1443, -1443, -1443, 
     2101   -1443,  1180,   218,  3846, -1443, -1443, -1443, -1443, -1443,  1265, 
     2102    1174,  1268,  2232,  1266,  1269,  1270, -1443, -1443, -1443, -1443, 
     2103   -1443,    72,   193,  1229,    72,   193, -1443,    72, -1443, -1443, 
     2104    1453,   814, -1443,  3846, -1443,  1456, -1443, -1443,  2352,  1464, 
     2105   -1443, -1443,  1465, -1443,  1069, -1443,    72, -1443,    72,  3846, 
     2106   -1443,  1273,  3846,  3846,  1467,  2232,  3846, -1443, -1443, -1443, 
     2107    1469, -1443,  3846, -1443,  1470,  3846, -1443,  3846, -1443, -1443 
    14372108}; 
    14382109 
     
    14402111static const yytype_int16 yypgoto[] = 
    14412112{ 
    1442     -845,  -845,  -845,   -96,   830,   628,   -26,  -845,  -845,  -845, 
    1443      399,   156,  -845,   -94,  -845,   -67,   -63,  -845,  -845,   232, 
    1444     -845,  -845,  -845,   509,  -845,   234,    30,  -845,  -845,  -845, 
    1445     -845,  -845,   444,  -464,  -845,  -845,  -238,   438,  -242,  -845, 
    1446     -845,  -845,  -845,  -845,  -845,   -47,  -845,  -845,  -263,   417, 
    1447      -27,   -50,   668,   437,  -845,  -845,  -845,  -845,  -845,  -845, 
    1448     -845,   404,  -845,  -845,  -671,  -845,  -845,  -845,   642,  -231, 
    1449     -656,  -845,  -845,   217,  -845,   882,  -236,  -845,    67,    70, 
    1450      -11,   -78,    55,  -144,  -458,  -507,  -845,  -845,   -97,  -845, 
    1451     -845,  -845,  -845,  -845,   540,  -845,     9,   279,     1,   -70, 
    1452     -845,  -845,  -182,  -382,   365,   -20,  -128,  -845,  -845,  -845, 
    1453       52,  -845,   -73,    43,  -845,  -630,  -845,  -515,  -514,  -844, 
    1454     -845,  -845,  -845,  -845,  -566,  -718,  -845,  -845,  -845,  -845, 
    1455     -294,  -845,  -845,  -845,  -845,  -845,  -185,  -845,  -845,  -845, 
    1456     -845,  -845,  -845,  -663,  -845,  -845,  -845,  -845,  -845,  -845, 
    1457     -845,  -845,  -845,   405,  -845,  -845,  -845,  -845,  -845,   -40, 
    1458     -787,  -845,  -845,  -845,  -845,  -845,  -845,   -38,   190,    11, 
    1459     -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   191,  -845, 
    1460     -845,  -845,  -845,   506,  -845,  -845,   288,  -384,  -845,  -845, 
    1461     -845,   -39,   834,  -250,  -126,  -699,  -522,  -140,  -287,  -465, 
    1462     -845,  -845,  -213,  -845,   519,  -845 
     2113   -1443, -1443, -1443,   918, -1443,  1428,   559, -1443, -1443, -1443, 
     2114   -1443, -1443, -1443, -1443, -1443, -1443,  -143, -1443, -1443, -1443, 
     2115   -1443, -1443, -1443, -1443,  -657, -1443,  -269, -1443,   -11, -1443, 
     2116   -1443, -1443, -1443, -1443, -1443, -1443, -1443,  1388,   904, -1443, 
     2117   -1443, -1443,  -154,   758, -1443, -1443, -1443,   545, -1443,   -90, 
     2118    -911,  -641, -1443, -1443,   457,   461,   -45,   133, -1443,   648, 
     2119    -221,   -55, -1443,  1462, -1443, -1443, -1443, -1443, -1443, -1443, 
     2120     852, -1443,  -186,  -191,  1068,  -444,  -202, -1443, -1443, -1443, 
     2121     204, -1443, -1443, -1443,   191,   -27, -1443, -1443, -1443, -1443, 
     2122   -1443, -1443, -1443,   761, -1443,   253, -1443, -1443, -1443,   968, 
     2123   -1443, -1443, -1443,   213, -1443, -1443,   222, -1443,    32, -1443, 
     2124   -1443,  -986,  1487, -1443,  1076,   481, -1443,    51,    53, -1443, 
     2125    1259, -1443, -1443,  1106,  -620, -1443, -1443, -1443, -1443, -1443, 
     2126   -1443, -1443, -1443, -1443,   709, -1443, -1443, -1443,   446, -1443, 
     2127   -1443, -1443, -1443,  -984,  -277, -1443, -1443,   148, -1198, -1180, 
     2128   -1399, -1209, -1033, -1443,   -67, -1155,   -65, -1443, -1443,    78, 
     2129   -1443,   -68, -1443, -1443, -1443, -1443, -1443,   717, -1443, -1443, 
     2130     718, -1443, -1443, -1443, -1443, -1443,  -431, -1443, -1443,  1019, 
     2131    -250, -1443,   791, -1443,   501,  -137, -1443,   507, -1443, -1443, 
     2132   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443,   534, 
     2133   -1443, -1443, -1443,   -29, -1443, -1443,   460, -1443,     8, -1443, 
     2134   -1443, -1443,   716, -1443,   235, -1443, -1443,  -180,   309, -1443, 
     2135   -1443,  1077, -1443, -1443,  -954, -1443, -1443, -1443, -1443,  -283, 
     2136    -489, -1443, -1443,   -44,   539, -1443,  1485, -1443,  1911,  -458, 
     2137     639, -1443, -1443,  -778, -1443,  -540, -1443,  -448,  -299,  -294, 
     2138   -1443,   984, -1443, -1443,  -276,  -296, -1443, -1443,   516, -1443, 
     2139   -1443,   981, -1443, -1443, -1443, -1443,    20,    11,   192, -1443, 
     2140     436,  -585, -1443, -1443,    22, -1443,  -281,   206,   996, -1443, 
     2141   -1443, -1443, -1443, -1443,    14, -1443, -1443,   408,  -160,  1114, 
     2142   -1443, -1443,  -111,  1109, -1443,  1301, -1443,  1108,  1113,  1112, 
     2143   -1443, -1443, -1443, -1443, -1443,  1888,  -805,  -151,  -121,   793, 
     2144     -49,  -983, -1241, -1443, -1443,  -215, -1443,   -48,   275, -1443, 
     2145   -1443, -1443,   750,   756,  -522,   763, -1443,  1272,  -378,  -376, 
     2146    -890, -1443, -1443, -1443, -1443,  -842,  -846, -1443, -1443, -1443, 
     2147   -1443,  -116, -1443,   363, -1443, -1443,  1003, -1443,   -85,  -714, 
     2148    -107,  1250, -1443, -1443, -1443, -1443, -1443, -1443, -1443,  1022, 
     2149   -1443, -1443, -1443,   423, -1443,  -520, -1443, -1443, -1443, -1443, 
     2150   -1443, -1443,  1014, -1443, -1443,  1197, -1443, -1443, -1443, -1443, 
     2151   -1443, -1443, -1443, -1443, -1443, -1443,   199, -1118, -1443,  1025, 
     2152   -1443,   -12, -1443, -1443,   967,  -152, -1443,  1030, -1443, -1443, 
     2153   -1443,   465,   711,   995,  1039, -1443, -1443,   232,  1043, -1443, 
     2154   -1443,  1047, -1443, -1443,    -9,  1221,   988,   671,  -252,   672, 
     2155     238,  -886,  -988,  -905, -1443,   167, -1443,  1060, -1443,   707, 
     2156    1061, -1443,   721,  1062, -1443, -1443, -1443, -1443,   482,   435, 
     2157   -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443,  -390, -1443, 
     2158   -1443, -1443,  1298, -1443, -1443,  1587, -1443, -1443, -1443, -1443, 
     2159   -1443,   686, -1443, -1443, -1443, -1443, -1443, -1443, -1443, -1443, 
     2160   -1443, -1443, -1057, -1443,   -70, -1443, -1442, -1443,  1359,  1171, 
     2161   -1443, -1443,   925,  -496, -1443,  1078, -1443, -1443, -1443, -1443, 
     2162   -1443, -1443,   998,   945,   448,   451, -1443, -1443,  1630,  -140, 
     2163   -1443, -1443, -1443, -1443,   453, -1443, -1443, -1443, -1443,   248, 
     2164     257, -1443, -1443, -1443,  -136, -1443, -1443, -1443, -1443,   255, 
     2165   -1443, -1443, -1443,   993, -1443,   456,   438, -1443, -1443, -1443, 
     2166   -1443, -1443,   569 
    14632167}; 
    14642168 
     
    14662170   positive, shift that token.  If negative, reduce the rule which 
    14672171   number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
    1468 #define YYTABLE_NINF -542 
     2172#define YYTABLE_NINF -1032 
    14692173static const yytype_int16 yytable[] = 
    14702174{ 
    1471      174,   539,    93,   402,   192,   293,   434,   174,   294,   474, 
    1472      641,   775,   295,   642,   506,   296,   243,   366,   690,   684, 
    1473      414,   735,   736,   828,   684,   300,   494,   324,   372,   265, 
    1474      498,   270,   271,   367,   686,   203,   273,  -171,   504,   874, 
    1475      226,   579,   766,   767,    96,   846,   323,   198,   882,   257, 
    1476      258,   579,    93,   268,   325,   534,   764,   764,   764,   203, 
    1477      277,   847,   848,   849,   579,  -171,   885,   221,   222,   917, 
    1478      366,   579,   646,   432,   430,   297,   607,   298,   299,   575, 
    1479     -430,   859,   664,   365,   899,   329,   367,   849,   373,   374, 
    1480      375,   376,   377,   378,    96,   379,   380,   381,   382,   383, 
    1481      384,   332,   385,   386,   387,   388,   389,   729,   671,   675, 
    1482      477,   174,   493,   203,   579,   419,   324,   984,   579,   333, 
    1483      335,   336,   419,   285,   579,   750,   715,   483,   203,   540, 
    1484      343,   126,  1021,   579,  -426,   323,   365,   223,   203,   579, 
    1485      831,   224,   301,   325,   357,   307,   251,   194,   479,  -429, 
    1486      364,   410,   579,   579,   868,   914,   675,   948,   985,  -425, 
    1487      948,   371,   847,   848,   849,  -171,   393,   194,   648,   741, 
    1488      484,   485,   229,   971,   438,   751,  1042,   223,   575,   170, 
    1489      406,   224,   195,   230,   288,   387,   388,   389,   302,   404, 
    1490      411,   412,   753,   742,  -171,   342,   480,   344,  -106,   394, 
    1491     1026,   580,   197,   364,   308,   128,   364,   417,   389,   850, 
    1492      959,   584,   359,  1000,   425,   917,   468,   204,   433,   605, 
    1493      860,   436,  -430,   606,   586,   324,   466,   486,   963,   475, 
    1494      564,   601,   647,   850,   324,   367,   960,   980,   495,     4, 
    1495      730,   680,   665,   500,   323,   496,   503,   390,   391,   563, 
    1496      478,   836,   325,   323,   716,    93,   130,   565,   916,   916, 
    1497      916,   325,   252,   859,   286,   709,   710,   471,   672,   676, 
    1498      499,   413,   699,   713,   777,   475,  -426,   532,   778,   170, 
    1499      859,   609,   251,   561,   792,   365,   204,   719,   253,   544, 
    1500      545,  -429,   576,   793,   549,   722,   413,    96,   728,   794, 
    1501      694,  -425,   540,   553,   554,   555,   556,   557,   558,   559, 
    1502      850,   575,   795,   805,   869,   915,   938,   949,   986,   266, 
    1503     1037,   800,   802,   425,   804,   289,   575,   324,   390,   391, 
    1504      583,   919,   920,   921,   587,   588,   589,   590,   591,   592, 
    1505      593,   594,   595,   596,   597,   598,   323,   223,   131,   390, 
    1506      391,   224,   371,   961,   325,   571,   311,   312,   572,   573, 
    1507      574,   188,   616,   618,   619,   620,   621,   622,   623,   624, 
    1508      625,   626,   627,   628,   629,   630,   631,   634,   636,   638, 
    1509      640,    69,   939,   199,   192,   659,   372,   481,   684,   684, 
    1510      684,   684,   684,   990,   581,   582,   697,   244,   252,   245, 
    1511      191,   278,   860,   828,   610,   861,   482,   239,   764,   575, 
    1512      407,   489,   490,   600,   663,   602,   603,   604,   202,   860, 
    1513      415,   416,  1009,   400,   253,   612,   717,   837,   822,   279, 
    1514      212,   923,   395,   679,   240,   241,   763,   408,   520,   264, 
    1515      209,   235,   236,   769,   832,   701,   210,   756,   875,   989, 
    1516      708,   965,   937,   711,  -156,   823,   839,   966,  -156,   208, 
    1517      223,   475,   911,   866,   224,   564,   775,   685,   213,   255, 
    1518      806,   256,   564,   219,   324,   324,   324,   324,   324,   259, 
    1519      698,   260,   881,   916,   563,   707,   170,   309,   194,   274, 
    1520      884,   563,   565,   323,   323,   323,   323,   323,   269,   565, 
    1521      762,   325,   325,   325,   325,   325,   735,   736,   858,   800, 
    1522      802,   804,   220,  -156,   475,   475,   227,  -156,   372,   371, 
    1523      575,   575,   575,   575,   575,   733,   203,   735,   736,   280, 
    1524      200,   201,   770,   771,   772,   773,   774,   746,    93,   979, 
    1525       93,  -156,  1036,   231,   812,  -156,   232,   757,   684,   761, 
    1526      376,   377,   378,   249,   379,   380,   381,   382,   383,   384, 
    1527      419,   385,   386,   387,   388,   389,   733,   324,   776,   215, 
    1528      216,   217,   419,   571,   311,   312,   572,   573,   574,  -541, 
    1529     -541,  -541,  -541,  -541,  -541,   929,   323,   254,   139,   311, 
    1530      312,   572,   573,   574,   325,   524,   525,   799,   801,   263, 
    1531      803,   398,   668,   364,   807,   940,   941,   942,   943,   983, 
    1532      876,   877,   878,   851,   572,   573,   574,   133,   134,   746, 
    1533      898,   808,   809,   972,   973,   203,   810,   272,   811,   310, 
    1534      327,   292,   815,   304,   305,   339,   340,   928,   394,   341, 
    1535      345,   824,   894,   829,   895,   830,   346,   821,   347,   348, 
    1536      349,   834,   806,   903,    93,   964,   350,   405,   351,   352, 
    1537      353,   354,   355,   356,   843,   425,   468,   358,   469,   360, 
    1538      361,   564,   841,   362,   370,   395,   988,   397,   398,   162, 
    1539      856,   857,   399,   470,   170,   163,   164,   465,  1024,   476, 
    1540      563,   867,   491,   259,   493,   266,   496,   501,   565,   502, 
    1541      166,   167,   505,   168,   169,   274,   390,   391,   171,   871, 
    1542      475,   373,   374,   375,   376,   377,   378,   521,   379,   380, 
    1543      381,   382,   383,   384,   523,   385,   386,   387,   388,   389, 
    1544      535,   560,   547,   569,   611,   577,   614,   651,   654,   674, 
    1545      905,   656,   657,   609,   666,   667,   669,   673,   723,   549, 
    1546      677,   678,  1027,   724,   688,   727,   608,   691,  -237,  -237, 
    1547     -237,  -237,  -237,  -237,   692,  -237,  -237,  -237,  -237,  -237, 
    1548     -237,   695,  -237,  -237,  -237,  -237,  -237,   714,   718,   759, 
    1549      758,   760,   768,   574,   796,   799,   801,   803,   797,   798, 
    1550      819,   813,   820,   845,   833,   840,   853,   976,   855,   478, 
    1551      864,   872,   192,   925,   883,   886,   982,   887,   888,   891, 
    1552      889,   372,   890,   896,   897,   909,   378,   564,   379,   380, 
    1553      381,   382,   383,   384,   910,   385,   386,   387,   388,   389, 
    1554      922,   927,   931,   932,   935,   936,   563,   944,  1003,   945, 
    1555      950,   969,   958,   730,   565,   978,   987,   991,   999,   992, 
    1556     1007,  1015,   993,   994,  1016,  1006,  1018,   707,  1017,   954, 
    1557      850,   957,  1019,  1023,  1028,   302,  1043,  1032,  1038,  1039, 
    1558      390,   391,   507,   965,   394,   475,  1041,  1047,  1020,  1048, 
    1559      333,   234,   488,  1010,   693,  1008,   977,   379,   380,   381, 
    1560      382,   383,   384,   905,   385,   386,   387,   388,   389,  -542, 
    1561     -542,  -542,  -542,  -542,  -542,   842,   385,   386,   387,   388, 
    1562      389,   844,    93,   995,   649,   997,   815,  -237,  -237,   689, 
    1563      333,  1001,   712,  1002,   687,   235,   236,   508,   492,   720, 
    1564      700,   533,   880,  1005,   238,   952,   998,   644,    93,  1012, 
    1565      953,   835,   970,  1040,   371,  1025,   754,   912,  1004,  1013, 
    1566     1014,   913,   838,   509,   670,   510,   511,   512,   330,     0, 
    1567      513,   514,     0,   515,   516,     0,     0,     2,     3,     0, 
    1568      390,   391,     0,     0,   905,     0,   905,     0,     0,     0, 
    1569        0,     0,     0,     0,    93,  1029,     0,     0,  1031,     0, 
    1570        0,     4,     5,     0,     0,     6,   -21,     7,   -21,     8, 
    1571        0,     0,     9,     0,     0,     0,     0,     0,     0,     0, 
    1572      733,     0,    10,     0,     0,     0,     0,     0,     0,  1044, 
    1573        0,   733,     0,  1045,  1046,    93,     0,     0,    11,     0, 
    1574        0,   733,    12,    13,    93,     0,     0,    14,  1050,   390, 
    1575      391,     0,     0,    15,     0,    16,    17,     0,    18,     0, 
    1576        0,   390,   391,    19,    20,    21,    22,    23,     0,    24, 
    1577       25,     0,     0,    26,    27,    28,    29,    30,    31,    32, 
    1578       33,    34,    35,    36,     0,    37,     0,    38,    39,     0, 
    1579        0,    40,    41,    42,     0,    43,     0,    44,     0,     0, 
    1580       45,    46,     0,     0,    47,    48,    49,     0,     0,     0, 
    1581        0,     0,     0,     0,    50,     0,     0,    51,    52,    53, 
    1582       54,    55,    56,    57,    58,    59,    60,    61,    62,    63, 
    1583        0,     0,    64,     0,     0,    65,    66,    67,    68,     0, 
    1584        0,     0,   652,    69,   373,   374,   375,   376,   377,   378, 
    1585        0,   379,   380,   381,   382,   383,   384,     0,   385,   386, 
    1586      387,   388,   389,   934,     0,   373,   374,   375,   376,   377, 
    1587      378,     0,   379,   380,   381,   382,   383,   384,     0,   385, 
    1588      386,   387,   388,   389,  1034,     0,   373,   374,   375,   376, 
    1589      377,   378,     0,   379,   380,   381,   382,   383,   384,     0, 
    1590      385,   386,   387,   388,   389,  1035,     0,   373,   374,   375, 
    1591      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1592        0,   385,   386,   387,   388,   389,  1049,     0,   373,   374, 
    1593      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1594      384,     0,   385,   386,   387,   388,   389,   926,   373,   374, 
    1595      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1596      384,     0,   385,   386,   387,   388,   389,   870,   373,   374, 
    1597      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1598      384,     0,   385,   386,   387,   388,   389,     0,     0,     0, 
    1599        0,     0,   135,   136,     0,     0,     0,     0,   137,   138, 
    1600      139,   140,   141,   390,   391,     0,     0,     0,     0,     0, 
    1601        0,     0,     0,   142,   143,   144,   145,   146,   147,   148, 
    1602        0,   149,   150,   151,   390,   391,   152,   153,   154,     0, 
    1603      155,   156,   157,   158,   159,     0,   160,     0,     0,     0, 
    1604        0,     0,     0,     0,     0,   390,   391,   373,   374,   375, 
    1605      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1606        0,   385,   386,   387,   388,   389,   390,   391,   373,   374, 
    1607      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1608      384,     0,   385,   386,   387,   388,   389,   390,   391,     0, 
    1609        0,   162,     0,     0,     0,     0,     0,   163,   164,     0, 
    1610        0,     0,     0,   165,     0,     0,   613,   390,   391,     0, 
    1611        0,     0,   166,   167,     0,   168,   169,     0,     0,   170, 
    1612      171,   562,     0,     0,     0,     0,     0,   390,   391,   926, 
    1613      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1614      382,   383,   384,     0,   385,   386,   387,   388,   389,   996, 
    1615      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1616      382,   383,   384,     0,   385,   386,   387,   388,   389,  1030, 
    1617      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1618      382,   383,   384,     0,   385,   386,   387,   388,   389,     0, 
     2175      43,   404,   410,   499,   134,   496,   295,   104,   715,   757, 
     2176     484,   153,   654,   738,   655,   361,   363,   341,   716,   489, 
     2177     368,   342,  1019,   498,   272,   106,   967,  1167,   334,   566, 
     2178     106,   406,   333,  1121,   927,   106,   106,  1251,   422,  1253, 
     2179     145,    99,   829,   146,   558,  1230,    99,  1186,  1186,   493, 
     2180     369,    99,    99,   134,   420,   317,   104,  1276,   517,  1346, 
     2181     121,   744,   242,   865,   913,  1180,   989,   967,   106,  1193, 
     2182     436,   438,   739,   923,   106,   435,  1397,  1469,   106,  1130, 
     2183    1131,  1132,   319,   320,    99,   382,  1137,  1654,  -533,   145, 
     2184      99,  -196,   146,  1473,    99,   369,    47,  1478,   949,   282, 
     2185    1484,   973,   439,   467,   475,   277,  1468,   500,   215,   121, 
     2186    1343,  1188,  -196,   725,   427,  -550,   500,   773,   806,    32, 
     2187       4,  1144,  1145,   819,     4,     4,   953,  -183,  -420,   424, 
     2188     681,  1470,   824,  -550,     4,  1279,   650,  -421,     4,     4, 
     2189     826,   919,  1288,   925,     4,  1042,  1388,     4,   106,  1039, 
     2190     437,  -740,   929,  -196,   391,   950,     4,   422,   950,   516, 
     2191     422,     8,   500,     4,    99,     8,     8,     4,   997,  -420, 
     2192     718,    90,   717,   420,   272,     8,   420,   568,  -421,     8, 
     2193       8,  1040,  1681,     4,   678,     8,  -943,   296,     8,   154, 
     2194    1139,  1154,  1204,  1276,  1338,   845,    98,     8,  1214,   341, 
     2195     112,  1216,  1681,   342,     8,   694,  1204,   607,     8,   422, 
     2196     615,  1240,  1304,  1383,  1398,  1422,    34,     4,  1454,   929, 
     2197    1539,  1723,   692,   481,     8,   420,   627,   482,   222,   419, 
     2198     659,  1585,   570,   438,   530,   516,   516,   516,   662,  1610, 
     2199     698,   382,  1378,   698,   230,   231,   438,   993,   424,   112, 
     2200     586,   424,  1312,   797,   571,  1469,   230,   231,     8,   481, 
     2201     511,   525,   816,   482,   439,  1023,   524,  -550,   547,  1007, 
     2202      48,  1654,   974,   471,  1222,  1344,   559,   701,   665,   524, 
     2203    -533,   216,  1565,  -196,  1468,  -533,  -196,   660,    99,   418, 
     2204     382,  1462,   544,   545,    12,   352,  1043,   278,    12,    12, 
     2205     424,  1396,  -420,   745,   106,   878,   428,  1021,    12,  1470, 
     2206    1480,  -421,    12,    12,   743,  -484,   307,   486,    12,   742, 
     2207      99,    12,   682,   879,   825,   878,    35,   135,   780,  1361, 
     2208      12,    49,   827,   920,     4,   926,    73,    12,   307,  -267, 
     2209     307,    12,   653,   879,   930,   590,  1112,   951,   419,  1284, 
     2210     952,   419,  1138,   106,   620,  -774,   272,    12,  1143,  1317, 
     2211     998,  1146,  1696,   106,  1364,  1152,  -198,  1603,   989,    99, 
     2212      83,    84,  1469,  1041,  1685,     8,   135,   272,   272,    99, 
     2213    1585,   943,  1140,  1155,  1205,  1257,  -340,  1351,   771,  1351, 
     2214    1215,    12,  1469,  1217,   756,    74,  -774,   539,  1224,  1368, 
     2215     419,   223,   587,  1241,  1305,  1384,  1399,  1423,   672,   674, 
     2216    1455,  1525,  1540,  1724,   286,   136,   242,  1699,   239,    75, 
     2217      90,     4,   760,   762,    93,    94,   238,    96,   151,    42, 
     2218     239,    42, -1031,    42, -1031,  1352,   279,  1352,   315,   106, 
     2219     499,    42,   496,   514,   623,    98,   207,  1369,   893,   907, 
     2220     910,   287,  1481,   506,   507,   713,   489,  1587,   985,   921, 
     2221     498,   983,     8,     4,   136,   986,   987,   859,  1577,   869, 
     2222     546,     4,   525,  1276,  1656,   143,   106,   106,   746,  1544, 
     2223     781,    42,   516,  1186,   935,   834,   493,   147,   936,   745, 
     2224     150,     9,    99,    99,   741,  1611,   209,  1612,   766,    11, 
     2225     436,  1285,   350,  1059,     8,   992,   506,   507,    12,  1604, 
     2226     290,   436,     8,   508,   290,   491,   435,     4,    60,   514, 
     2227     514,   514,  1239,   652,   143,   844,   797,   757,   840,  -774, 
     2228       4,   757,   292,    47,   810,   862,   147,   106, -1030,   150, 
     2229   -1030,   715,    90,  1088,     4,  1090,   106,  -474,  1368,  1682, 
     2230     233,   716,   492,    99,  1031,   369,    99,   324,     8,   369, 
     2231     369,   849,    99,   967,   854,  1030,   508,    98,   849,  1682, 
     2232    1308,     8,   306,  1534,  1554,  1370,    11,   106,   106,  1250, 
     2233     756,     4,   307,   744,  1410,     8,   106,   106,   713,   961, 
     2234    1534,   437,    64,    99,    99,    12,  1369,     9,   315,  1683, 
     2235    1587,   237,    99,    99,   325,    81,  1587,    76,   713,  1025, 
     2236       4,   106,     4,   469,   470,  1167,  1029,    42,  1697,  1683, 
     2237    1698,   309,     8,   321,    60,   106,   310,    99,   500,   311, 
     2238     272,  1063,    11,  1382,   230,   231,   504,    12,  -237,  1096, 
     2239     955,    99,    42,  -518,   322,    12,  1027,  -518,  1121,   569, 
     2240     570,     8,    58,     8,    59,   505,   966,   307,   312,  1505, 
     2241    1506,  1507,  1508,  1509,  1510,  1028,  1511,  1512,  1513,  1514, 
     2242    1515,  1516,   571,  1517,  1518,  1519,  1520,  1521,   353, -1030, 
     2243     990, -1030,    11,   481,   354,  1109,   363,   482,    42,  -237, 
     2244     327,    12,  -137,    93,    94,   323,    96,   966,  1341,   328, 
     2245      42,  1231,   299,   718,    12,   717,   841,    48,  1499,  1500, 
     2246      57,   106,  1392,   154,   -61,    62,  1004,    63,    12,   336, 
     2247      83,    84,  1054,   307,   238,  1016,   343,    99,   239,  -549, 
     2248     524,   344,     5, -1030,     6, -1030,   911,  1135,     9,   -93, 
     2249     233,     7,   -93,   239,   405,   922,  1428,  1595,   417,  1394, 
     2250    1147,  1055,  1114,  1107,   -92,    12,   375,  1492,  1167,  1056, 
     2251    1474,  1475,  1476,   418,   547,    60,   514,   607,   946,   947, 
     2252     948,  1060,   356,   615,  1087,   559,  1007,   559,  1560,  1022, 
     2253    1646,     2,     3,   158,    12,  -549,    12,  1174,    42,   357, 
     2254     299,   237,     9,   935,   233,   816,   582,   936,  1111,   516, 
     2255      93,    94,   364,    96,   238,     4,   365,    42,   239,     5, 
     2256   -1030,     6, -1030,  1257,   106,   654,   376,   655,     7,    10, 
     2257    1415,   422,  1416,    11, -1030,   745, -1030,   653,   -89,   878, 
     2258      99,   -89,   -90,  -954,   391,   -90,   743,  1249,  1133,   699, 
     2259     395,   742,   700,   422,   402,   237,     8,   879,   106,   693, 
     2260    1522,  1523,   432,   433,    93,    94,   397,    96,   399,   420, 
     2261     417,    42,   459,   460,    99,   106,   878,    11,  -278,     9, 
     2262     426,   106,   106,   106,   106,   418,   106,    11,   106,   106, 
     2263    -224,    99,  1496,     9,   879,   430,  1504,    99,    99,    99, 
     2264      99,  1177,    99,  1168,    99,    99,    10,  1037,   455,   422, 
     2265     687,   688,    77,   440,   441,   442,   443,   444,   445,   446, 
     2266      60,   106,   756,    90,   457,   420,   756,   463,  1162,   771, 
     2267     219,   220,   221,   464,   227,   106,   106,    99,    90,   465, 
     2268      93,    94,   287,    96,   424,    11,  -279,    42,    98,   582, 
     2269     864,    99,    99,  1189,  1190,    93,    94,   477,    96,   615, 
     2270     520,   524,    42,    98,    11,     4,  1447,  -203,  -203,  -203, 
     2271    -203,  1704,  1705,   480,   715,  -203,   211,   212,    11,   400, 
     2272     401,  -203,   106,   272,   716,   490,   521,  1219,  -955,    12, 
     2273     573,   580,   535,   213,   214,   757,   564,   893,   713, -1030, 
     2274     424, -1030,   567,   569,   -97,   -97,     8,   -97,   276,   582, 
     2275     746,   -97,   907,   283,   -97,   601,    42,  1059,   652,   294, 
     2276    1310,   242,  1244,   629,   685,   242,   741,   666,   654,  1380, 
     2277     655,  -100,  -100,  1136,  -100,   676,   679,  1450,  -100,   766, 
     2278     677,  -100,   310,   680,   419,  1104,  1497,  1151,   686,  -235, 
     2279    1497,   745,   230,   231,  -230,   385,   691,   386,     9,   693, 
     2280     387,   388,   436,   447,   448,   449,   450,  1452,   696,  -225, 
     2281    1168,   786,   707,   712,   312,   106,   709,   810,   722,   389, 
     2282     720,  1169,   727,   728,   729,    60,   559,   733,   106,   351, 
     2283     732,    99,   736,   514,   735,   776,   779,   451,   452,   366, 
     2284    1332,   775,   620,   778,    99,    36,    37,    38,    39,    90, 
     2285     783,   798,   802,    40,   803,   406,   805,   808,   757,    41, 
     2286     818,    42,   713,   821,   823,   106,    93,    94,   831,    96, 
     2287     835,   369,   836,    42,    98,   870,   718,   863,   717,    12, 
     2288     872,    99,   756,    11,   874,   875,    83,    84,   787,   876, 
     2289     937,   940,   106,  -138,   931,   653,   106,   938,   233,   713, 
     2290     944,    36,    37,    38,    39,   963,   957,   984,    99,    40, 
     2291     981,   982,    99,   988,  -231,    41,   106,   788,   446,   789, 
     2292     790,   791,   996,   234,   792,   793,   999,   794,   795,  1000, 
     2293    1008,  1009,    99,  1010,  1013,  1022,  1023,  1444,  1026,   235, 
     2294     236,  -457,  1402,   966,   -99,   -99,  1032,   -99,   468,   237, 
     2295    1050,   -99,  1067,   473,   -99,  1065,   476,  1066,    93,    94, 
     2296    1069,    96,   238,   485,  1075,    42,   239,   240,  1074,    93, 
     2297      94,  1078,    96,  1004,  1080,   241,    42,   510,  1181,  1084, 
     2298     519,  1174,  1451,    93,    94,  1092,    96,  1444,   841,  1098, 
     2299     313,  1095,  1444,  1103,   312,  1115,  1444,  1116,   233,  1444, 
     2300    1118,   309,  1123,  1125,    93,    94,   310,    96,  1087,   384, 
     2301    1134,    42,  1142,  1007,  1160,  1165,  1207,   596,   597,   385, 
     2302     598,   386,  1203,   234,   387,   388,  1206,  1060,  1208,   610, 
     2303    1213,   618,  1209,  1211,  1502,    94,  1747,    96,   312,   235, 
     2304     236,    42,   622,   389,   624,  1218,  1233,  1223,  1234,   237, 
     2305    1232,  1242,  1266,   106,  1268,  1381,  1282,   106,    93,    94, 
     2306    1087,    96,   238,   309,   668,    42,   239,   240,   310,    99, 
     2307    1283,  1377,  1286,    99,   106,   241,   652,  1296,  1303,  1299, 
     2308    1306,   385,  1307,   386,  1339,  1348,   387,   388,  1375,  1356, 
     2309      99,   106,  1365,  1379,  1373,  1279,  1374,  1388,   653,  1391, 
     2310     312,  1400,    81,  1417,  1677,   389,  1418,    99,  1419,  1676, 
     2311    1420,   106,  1453,  1424,  -532,  1460,  1461,  1486,  1463,   106, 
     2312    1485,  1576,  1490,  1493,  1495,  1498,  1692,    99,  1501,  1526, 
     2313    1527,  1529,  1531,  1530,  1542,    99,  1536,  1537,  1547,  1548, 
     2314    1567,  1444,   723,  1410,  1574,   106,   726,  1575,  1578,  1580, 
     2315    1579,  1581,  1458,  1582,  1583,  1584,  1588,  1589,   734,  -384, 
     2316    1591,   713,  1600,  1601,  1607,  1444,  1602,  1608,  1609,  1614, 
     2317    -256,  1648,  1655,  1344,  1670,   759,   761,  1669,  1466,   772, 
     2318    1637,  1672,  1678,  1680,  1688,   774,   229,  1689,  1693,  1713, 
     2319    1497,  1694,   653,   242,   230,   231,  1722,  1638,  1695,  1721, 
     2320    1219,  1716,   804,   369,   106,  1718,  1739,  1719,   807,  1742, 
     2321    1726,  1733,  1727,   106,  1734,  1735,   820,  1745,  1749,  1746, 
     2322     369,  1752,  1755,  1700,  1757,   822,  1753,    78,  1164,    99, 
     2323    1247,  1168,    50,   830,  1248,   228,   690,  1479,   833,   308, 
     2324     559,  1471,   229,  1448,  1012,   785,  1599,  1465,    45,   106, 
     2325     230,   231,   232,   695,  1252,  1593,  1592,   873,  1741,   106, 
     2326    1472,  1553,  1071,  1293,   429,    99,  1686,   683,  1586,  1687, 
     2327     106,  1690,  1072,   740,  1073,    99,   272,  1017,  1265,   652, 
     2328    1255,  1227,  1444,  1444,  1444,  1083,    99,   126,  1302,  1487, 
     2329    1444,  1740,   126,  1426,   719,  1153,  1691,   126,   126,  1237, 
     2330     233,   832,  1444,  1444,   842,   408,  1271,  1660,  1664,  1355, 
     2331    1546,  1662,  1665,   703,   704,  1541,  1444,   702,   954,   843, 
     2332     462,   705,  1053,   706,  1089,   234,   409,   106,   763,   962, 
     2333     304,   860,  1091,   581,  1085,   229,   126,   847,   979,   663, 
     2334     304,   235,   236,   230,   231,   764,   557,  1564,   848,   942, 
     2335     861,   237,   369,   850,  1362,  1701,   233,  1141,   649,   924, 
     2336      93,    94,   851,    96,   238,  1555,   852,    42,   239,   240, 
     2337     853,  1178,   945,   652,  1168,  1187,  1558,   241,  1596,  1720, 
     2338     229,   234,  1158,   855,   856,   857,  1366,   592,   230,   231, 
     2339    1156,   152,   106,  1737,  1725,   474,   724,   235,   236,   956, 
     2340    1003,   858,  1404,   995,  1403,  1020,    61,   237,    99,   841, 
     2341     126,  1411,  1571,  1409,   980,     0,    93,    94,  1569,    96, 
     2342     238,  1573,  1336,    42,   239,   240,     0,     0,  1033,     0, 
     2343    1034,     0,     0,   241,     0,     0,     0,     0,     0,     0, 
     2344    1748,     0,     0,  1750,     0,  1052,   228,     0,     0,   233, 
     2345       0,  1064,     0,   229,     0,     0,  1758,   106,     0,     0, 
     2346    1004,   230,   231,   232,   403,     0,     0,     0,     0,     0, 
     2347       0,     0,     0,    99,   234,     0,     0,  1035,     0,   765, 
     2348       0,     0,     0,     0,   229,  1079,     0,     0,     0,     0, 
     2349     235,   236,   230,   231,   233,     0,     0,  1093,     0,     0, 
     2350     237,     0,  1094,     0,  1097,     0,     0,     0,     0,    93, 
     2351      94,     0,    96,   238,     0,     0,    42,   239,   240,   234, 
     2352       0,     0,  1194,     0,     0,     0,   241,     0,     0,   229, 
     2353       0,     0,  1110,     0,     0,   235,   236,   230,   231,     0, 
     2354       0,     0,     0,  1120,     0,   237,     0,     0,     0,     0, 
     2355       0,     0,  1169,  1715,    93,    94,     0,    96,   238,   551, 
     2356       0,    42,   239,   240,     0,     0,   126,   233,     0,     0, 
     2357    1272,   241,     0,     0,     0,     0,     0,   229,     0,     0, 
     2358       0,     0,     0,     0,     0,   230,   231,     0,  1157,     0, 
     2359       0,     0,   234,     0,  1159,     0,     0,     0,   233,     0, 
     2360       0,     0,     0,     0,     0,     0,     0,     0,   235,   236, 
     2361       0,     0,     0,     0,     0,   126,     0,     0,   237,     0, 
     2362       0,   551,   551,   234,     0,   304,     0,    93,    94,  1199, 
     2363      96,   238,  1201,  1202,    42,   239,   240,     0,     0,   235, 
     2364     236,     0,     0,   233,   241,     0,     0,     0,  1429,   237, 
     2365       0,     0,     0,     0,     0,   229,     0,     0,    93,    94, 
     2366       0,    96,   238,   230,   231,    42,   239,   240,   234,     0, 
     2367       0,     0,     0,     0,     0,   241,     0,     0,     0,     0, 
     2368       0,  1466,     0,     0,   235,   236,     0,     0,   229,     0, 
     2369       0,   233,     0,     0,   237,     0,   230,   231,     0,     0, 
     2370       0,     0,     0,    93,    94,     0,    96,   238,     0,     0, 
     2371      42,   239,   240,     0,     0,  1280,   234,     0,  1281,     0, 
     2372     241,     0,     0,     0,     0,     0,     0,     0,     0,  1289, 
     2373       0,  1290,   235,   236,     0,     0,  1294,     0,   304,   304, 
     2374     755,     0,   237,     0,  1300,  1301,     0,     0,     0,     0, 
     2375       0,    93,    94,     0,    96,   238,   305,     0,    42,   239, 
     2376     240,     0,     0,  1309,  1311,     0,   314,     0,   241,   233, 
     2377    1620,     0,     0,     0,     0,     0,   229,  1340,     0,  1342, 
     2378       0,     0,     0,     0,   230,   231,     0,     0,     0,     0, 
     2379    1350,     0,     0,     0,   234,     0,     0,     0,   348,   304, 
     2380       0,     0,   233,     0,     0,     0,     0,     0,   304,   367, 
     2381     235,   236,     0,     0,     0,     0,     0,     0,     0,     0, 
     2382     237,     0,     0,     0,     0,     0,     0,   234,     0,    93, 
     2383      94,     0,    96,   238,     0,     0,    42,   239,   240,   304, 
     2384     304,     0,     0,   235,   236,     0,   241,  1385,   304,   304, 
     2385       0,  1387,     0,   237,     0,  1390,     0,  1393,  1395,     0, 
     2386       0,     0,    93,    94,     0,    96,   238,   551,  1401,    42, 
     2387     239,   240,   416,   304,     0,     0,     0,     0,   425,   241, 
     2388       0,     0,     0,     0,     0,     0,     0,   304,     0,     0, 
     2389     233,     0,     0,   416,     0,     0,  1421,     0,     0,     0, 
     2390       0,     0,   551,  1427,     0,     0,  1446,  1684,     0,  1449, 
     2391       0,     0,     0,     0,   229,   234,     0,     0,     0,     0, 
     2392       0,     0,   230,   231,     0,     0,     0,     0,     0,     0, 
     2393       0,   235,   236,     0,  1456,     0,     0,     0,     0,     0, 
     2394       0,   237,     0,   551,     0,     0,     0,     0,   515,   518, 
     2395      93,    94,     0,    96,   238,     0,     0,    42,   239,   240, 
     2396       0,     0,   554,     0,     0,   565,     0,   241,     0,     0, 
     2397       0,     0,     0,   304,     0,     0,  1488,     0,  1489,     0, 
     2398       0,   593,   595,     0,     0,   553,  1728,     0,     0,     0, 
     2399       0,     0,     0,   229,     0,     0,     0,   606,     0,     0, 
     2400     606,   230,   231,     0,     0,     0,     0,     0,     0,  1528, 
     2401       0,     0,     0,     0,     0,  1532,     0,     0,     0,     0, 
     2402       0,     0,   628,     0,   367,   367,   515,     0,   233,     0, 
     2403       0,  1543,     0,     0,     0,  1545,     0,     0,     0,     0, 
     2404       0,     0,     0,     0,     0,     0,     0,   640,   640,   684, 
     2405       0,     0,  1556,   234,  1557,     0,     0,  1559,     0,  1561, 
     2406    1562,     0,  1563,     0,     0,     0,     0,     0,     0,   235, 
     2407     236,     0,     0,  1566,     0,     0,   304,     0,     0,   237, 
     2408       0,     0,     0,     0,     0,     0,     0,     0,    93,    94, 
     2409       0,    96,   238,     0,     0,    42,   239,   240,     0,     0, 
     2410       0,     0,     0,     0,     0,   241,  1743,   233,     0,     0, 
     2411     304,     0,     0,   229,     0,     0,     0,     0,     0,     0, 
     2412       0,   230,   231,     0,     0,     0,     0,   304,     0,     0, 
     2413       0,  1598,   234,   304,   304,   304,   304,     0,   304,     0, 
     2414     304,   304,     0,     0,   758,     0,     0,   770,   235,   236, 
     2415       0,     0,     0,     0,     0,     0,     0,     0,   237,   777, 
     2416       0,     0,     0,     0,   305,   305,     0,    93,    94,     0, 
     2417      96,   238,     0,   126,    42,   239,   240,     0,   230,   231, 
     2418       0,     0,     0,     0,   241,   551,     0,   304,   304,     0, 
     2419       0,     0,     0,     0,     0,  1647,     0,     0,     0,     0, 
     2420       0,  1657,     0,     0,     0,     0,  1661,     0,     0,     0, 
     2421       0,     0,     0,     0,     0,     0,     0,  1666,  1667,  1668, 
     2422       0,     0,     0,     0,     0,   828,     0,   233,  1671,  1642, 
     2423       0,     0,     0,     0,     0,   229,     0,     0,  1673,     0, 
     2424       0,  1675,     0,   230,   231,     0,     0,     0,     0,     0, 
     2425       0,     0,   234,     0,     0,     0,     0,     0,   755,     0, 
     2426       0,   551,   755,     0,     0,   912,   915,     0,   235,   236, 
     2427       0,   515,     0,     0,   912,   915,     0,     0,   237,     0, 
     2428       0,     0,     0,     0,   233,     0,  1644,    93,    94,     0, 
     2429      96,   238,   229,   640,    42,   239,   240,     0,     0,   912, 
     2430     230,   231,     0,     0,   241,   969,     0,   229,     0,     0, 
     2431       0,     0,     0,   314,  1711,   230,   231,     0,     0,     0, 
     2432       0,     0,     0,     0,   416,   235,   236,   304,   968,     0, 
     2433       0,  1714,     0,     0,     0,   237,     0,     0,     0,     0, 
     2434     126,     0,  1717,     0,    93,    94,   969,    96,   238,   233, 
     2435       0,    42,   239,  1243,     0,   602,     0,     0,  1001,     0, 
     2436    1002,     0,   603,     0,   604,   605,     0,     0,     0,   968, 
     2437       0,     0,     0,     0,   234,     0,     0,   304,     0,     0, 
     2438    1736,     0,     0,  1738,     0,     0,     0,     0,     0,     0, 
     2439     235,   236,     0,     0,     0,     0,     0,     0,     0,   305, 
     2440     237,  1036,     0,  1038,   304,     0,   233,     0,   304,    93, 
     2441      94,  1046,    96,   238,  1051,     0,    42,   239,   240,     0, 
     2442       0,   233,     0,     0,     0,     0,   241,     0,   304,     0, 
     2443       0,   234,     0,     0,     0,     0,     0,     0,   551,   551, 
     2444       0,     0,     0,     0,     0,     0,   234,   235,   236,     0, 
     2445       0,     0,     0,     0,   837,     0,     0,   237,     0,     0, 
     2446       0,     0,   235,   236,     0,     0,    93,    94,     0,    96, 
     2447     238,     0,   237,    42,   239,   240,     0,     0,     0,     0, 
     2448       0,    93,    94,   241,    96,   238,     0,     0,    42,   239, 
     2449     240,     0,     0,     0,     0,   160,     0,     0,   241,     0, 
     2450       0,  1108,   314,     0,     0,     0,     0,     0,     0,     0, 
     2451     161,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     2452    1050,   515,   515,   515,   515,   162,     0,     0,     0,   515, 
     2453       0,     0,   163,     0,   515,   164,   165,     0,   166,     0, 
     2454       0,   167,     0,     0,   168,   169,   170,     0,     0,     0, 
     2455       0,     0,     0,   912,     0,     0,     0,     0,     0,   912, 
     2456     915,   915,   912,     0,  1148,     0,   912,  1148,     0,  1163, 
     2457     171,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     2458       0,     0,     0,     0,    90,     0,   304,     0,   367,  1046, 
     2459       0,     0,     0,     0,     0,   593,     0,     0,  1195,     0, 
     2460       0,    93,    94,   304,    96,     0,     0,     0,    42,    98, 
     2461       0,   640,     0,  1182,  1182,     0,     0,     0,     0,     0, 
     2462       0,     0,     0,   304,     0,     0,   416,     0,     0,     0, 
     2463       0,   304,     0,     0,  1225,     0,  -226,  -226,     0,  -226, 
     2464    -226,     0,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226, 
     2465    -226,  -226,  -226,  -226,  -226,     0,     0,     0,     0,     0, 
     2466       0,     0,     0,     0,  1262,     0,     0,     0,     0,     0, 
     2467       0,     0,     0,  1267,     0,     0,     0,  1270,   770,     0, 
     2468    1273,  1274,     0,  1275,     0,     0,     0,  1261,   551,   551, 
     2469     -88,   -88,     0,   -88,   -88,  -226,   -88,   -88,   -88,   -88, 
     2470     -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,     0, 
     2471       0,     0,     0,     0,     0,     0,  1613,     0,     0,     0, 
     2472       0,     0,     0,     0,     0,   304,     0,     0,     0,     0, 
     2473       0,     0,     0,     0,     0,     0,   593,     0,     0,  1335, 
     2474       0,     0,  1337,     0,     0,     0,     0,     0,     0,   -88, 
     2475       0,     0,     0,   828,     0,     0,     0,     0,   229,     0, 
     2476       0,   126,     0,     0,     0,     0,   230,   231,     0,     0, 
     2477       0,   304,   515,     0,     0,     0,     0,     0,     0,     0, 
     2478       0,     0,   304,     0,     0,     0,     0,     0,     0,     0, 
     2479       0,     0,  -226,  -226,  -226,  -226,     0,   896,     0,   897, 
     2480     898,   899,   900,   915,   901,     0,   902,   903,     0,     0, 
     2481       0,     0,     0,   904,     0,   905,     0,   906,     0,  1046, 
     2482       0,     0,     0,  -226,     0,     0,  -226,  -226,  -226,     0, 
     2483     314,   418,  1195,     0,   912,     0,     0,     0,     0,  1613, 
     2484       0,   969,   969,     0,   229,     0,   -88,   -88,   -88,   -88, 
     2485       0,     0,   230,   231,     0,     0,     0,     0,     0,     0, 
     2486       0,     0,     0,     0,   968,   968,     0,     0,     0,     0, 
     2487       0,  1425,   233,     0,     0,     0,     0,   -88,   -88,     0, 
     2488     -88,   -88,   -88,   883,   -88,     0,     0,   884,   885,   886, 
     2489     887,   888,   889,     0,     0,     0,     0,   234,     0,   890, 
     2490     891,   892,     0,     0,   126,     0,  1457,     0,     0,     0, 
     2491    1459,     0,     0,   235,   236,     0,     0,  1046,     0,   229, 
     2492       0,     0,     0,   237,     0,     0,     0,   230,   231,   630, 
     2493       0,     0,    93,    94,     0,    96,   238,     0,     0,    42, 
     2494     239,   240,     0,     0,     0,     0,     0,     0,     0,   241, 
     2495       0,  1491,     0,     0,     0,     0,     0,     0,   233,   631, 
     2496       0,     0,     0,     0,     0,  1494,     0,   632,     0,   633, 
     2497     634,   635,   636,     0,   637,     0,   638,     0,     0,     0, 
     2498       0,     0,     0,   234,     0,     0,     0,     0,     0,     0, 
     2499       0,     0,     0,     0,     0,     0,     0,     0,     0,   235, 
     2500     236,     0,     0,  1046,     0,     0,     0,     0,     0,   237, 
     2501       0,     0,   915,     0,     0,  1552,     0,   515,    93,    94, 
     2502       0,    96,   238,     0,     0,    42,   239,   240,     0,   915, 
     2503       0,     0,     0,   233,     0,   241,  1195,     0,  1195,     0, 
     2504       0,     0,     0,     0,     0,     0,     0,     0,     0,  1182, 
     2505       0,     0,     0,     0,     0,     0,     0,     0,   234,     0, 
    16192506       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1620        0,     0,     0,     0,     0,   578,   390,   391,     0,     0, 
     2507       0,     0,     0,     0,   235,   236,    90,     0,   229,     0, 
     2508       0,     0,     0,     0,   237,     0,   230,   231,     0,     0, 
     2509       0,  1262,  1262,    93,    94,     0,    96,   238,  1594,  1046, 
     2510     639,   513,   240,     0,     0,     0,     0,     0,     0,     0, 
     2511     241,     0,     0,     0,  1261,  1261,     0,   896,  1225,   897, 
     2512       0,   899,   900,     0,   901,     0,   902,   903,     0,     0, 
     2513       0,     0,  1313,   904,     0,   905,     0,   906,     0,     0, 
     2514    1314,  1315,     0,  1622,  1623,  1624,  1625,  1626,  1627,  1628, 
     2515    1629,  1630,  1631,  1632,  1633,  1634,  1635,  1636,  1640,  1641, 
     2516    1643,  1645,     0,     0,   229,  1316,     0,     0,     0,     0, 
     2517       0,     0,   230,   231,     0,     0,     0,     0,     0,     0, 
     2518     611,     0,     0,     0,     0,     0,     0,   612,     0,   613, 
     2519     614,     0,   233,     0,     0,     0,     0,   912,     0,     0, 
     2520       0,     0,     0,     0,     0,     0,     0,     0,   912,     0, 
     2521       0,     0,   611,     0,     0,     0,  1679,   234,     0,   612, 
     2522       0,   613,   614,     0,     0,     0,     0,     0,     0,     0, 
     2523       0,  1317,     0,   235,   236,     0,   229,     0,     0,     0, 
     2524       0,  1225,     0,   237,   230,   231,   233,     0,     0,     0, 
     2525       0,     0,    93,    94,     0,    96,   238,     0,  1706,    42, 
     2526     239,   240,     0,     0,     0,     0,     0,     0,     0,   241, 
     2527       0,   234,     0,     0,     0,  1707,  1708,  1318,   233,     0, 
     2528    1709,     0,  1710,  1170,  1171,     0,     0,  1319,  1320,     0, 
     2529       0,  1172,     0,  1173,     0,     0,     0,   237,     0,     0, 
     2530       0,     0,     0,   234,     0,     0,  1321,  1322,   229,  1323, 
     2531    1324,     0,     0,    42,  1325,   240,   230,   231,     0,   235, 
     2532     236,  -773,     0,   241,     0,     0,     0,     0,     0,   237, 
     2533       0,     0,     0,     0,     0,     0,     0,     0,    93,    94, 
     2534    1732,    96,   238,     0,     0,    42,   239,   240,   229,     0, 
     2535     233,     0,     0,     0,     0,   241,   230,   231,     0,     0, 
     2536       0,     4,  -773,   229,     0,     0,  1744,     0,     0,     0, 
     2537       0,   230,   231,   512,     0,   234,     0,     0,   229,     0, 
     2538       0,  1751,     0,  1732,  1754,     0,   230,   231,   941,     0, 
     2539    1756,   235,   236,     0,     0,  1759,     0,     0,     0,     0, 
     2540       0,   237,     8,     0,     0,     0,     0,     0,     0,     0, 
     2541      93,    94,     0,    96,   238,     0,     0,    42,   239,   240, 
     2542       0,     0,   233,     0,     0,     0,     0,   241,   229,     0, 
     2543       0,     0,     0,     0,     0,     0,   230,   231,     0,     0, 
     2544       0,     0,     0,   229,     0,     0,     0,   234,     0,     0, 
     2545       0,   230,   231,  1269,     0,     0,     0,     0,   229,     0, 
     2546       0,     0,   233,   235,   236,     0,   230,   231,  -397,     0, 
     2547       0,     0,     0,   237,     0,     0,     0,   233,     0,     0, 
     2548       0,     0,    93,    94,     0,    96,   238,   234,     0,   345, 
     2549     239,   240,   233,     0,     0,  -773,     0,     0,     0,   241, 
     2550       0,     0,   234,   235,   236,     0,     0,     0,     0,     0, 
     2551       0,     0,     0,   237,     0,     0,     0,   234,   235,   236, 
     2552      90,     0,    93,    94,     0,    96,   238,     0,   237,    42, 
     2553     239,   240,     0,   235,   236,    12,     0,    93,    94,   241, 
     2554      96,   238,   233,   237,    42,   513,   240,     0,     0,     0, 
     2555       0,     0,    93,    94,   241,    96,   238,   233,     0,    42, 
     2556     239,   240,   229,     0,     0,     0,     0,   234,     0,   241, 
     2557     230,   231,   233,     0,     0,     0,     0,   229,     0,     0, 
     2558       0,     0,   234,   235,   236,   230,   231,     0,     0,     0, 
     2559       0,     0,   229,   237,     0,     0,     0,   234,   235,   236, 
     2560     230,   231,    93,    94,     0,    96,   238,   229,   237,   550, 
     2561     239,   240,  1256,   235,   236,   230,   231,    93,    94,   241, 
     2562      96,   238,     0,   237,    42,   239,   240,     0,     0,     0, 
     2563       0,     0,    93,    94,   241,    96,   238,     0,     0,    42, 
     2564     239,   240,     0,     0,     0,     0,     0,   229,     0,   241, 
     2565       0,     0,     0,     0,     0,   230,   231,     0,     0,     0, 
     2566       0,     0,   229,     0,     0,     0,     0,     0,     0,     0, 
     2567     230,   231,     0,     0,     0,     0,   233,   229,     0,     0, 
     2568       0,     0,     0,     0,     0,   230,   231,     0,     0,     0, 
     2569       0,   233,     0,     0,     0,     0,     0,     0,     0,     0, 
     2570       0,   234,     0,     0,     0,     0,   233,     0,     0,     0, 
     2571       0,     0,     0,     0,     0,     0,   234,   235,   236,     0, 
     2572       0,   233,     0,     0,     0,     0,     0,   237,     0,     0, 
     2573       0,   234,   235,   236,     0,     0,    93,    94,     0,    96, 
     2574     238,     0,   237,    42,   239,   359,   234,   235,   236,     0, 
     2575       0,    93,    94,   241,    96,   238,     0,   237,    42,   239, 
     2576     362,   233,   235,   236,     0,     0,    93,    94,   241,    96, 
     2577     238,     0,   237,    42,   239,   411,   233,     0,     0,     0, 
     2578       0,    93,    94,   241,    96,   238,   234,     0,    42,   239, 
     2579     240,   233,     0,     0,   837,     0,     0,     0,   241,     0, 
     2580       0,   234,   235,   236,    79,     0,     0,     0,     0,     0, 
     2581       0,    80,   237,     0,     0,     0,   234,   235,   236,     0, 
     2582       0,    93,    94,     0,    96,   238,    81,   237,   550,   239, 
     2583     240,     0,   235,   236,     0,     0,    93,    94,   241,    96, 
     2584     238,     0,   237,    42,   239,  1045,     0,     0,     0,     0, 
     2585       0,    93,    94,   241,    96,   238,     0,     0,  1099,  1100, 
     2586    1101,     0,    82,     0,     0,   162,     0,     0,   241,     0, 
     2587    -198,     0,     0,     0,     0,   164,   165,     0,   166,    83, 
     2588      84,   167,     0,     0,   838,   169,   839,     0,     0,     0, 
     2589       0,    85,     0,     0,     0,     0,     0,     0,     0,     0, 
    16212590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1622        0,     0,     0,     0,     0,     0,   585,   390,   391,   373, 
    1623      374,   375,   376,   377,   378,     0,   379,   380,   381,   382, 
    1624      383,   384,     0,   385,   386,   387,   388,   389,  -239,  -239, 
    1625     -239,  -239,  -239,  -239,     0,  -239,  -239,  -239,  -239,  -239, 
    1626     -239,     0,  -239,  -239,  -239,  -239,  -239,  -238,  -238,  -238, 
    1627     -238,  -238,  -238,     0,  -238,  -238,  -238,  -238,  -238,  -238, 
    1628        0,  -238,  -238,  -238,  -238,  -238,     0,     0,     0,   390, 
    1629      391,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1630        0,     0,     0,     0,     0,     0,     0,     0,     0,   390, 
    1631      391,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1632        0,     0,     0,     0,     0,     0,     0,     0,     0,   390, 
    1633      391,   373,   374,   375,   376,   377,   378,     0,   379,   380, 
    1634      381,   382,   383,   384,     0,   385,   386,   387,   388,   389, 
    1635      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1636      382,   383,   384,     0,   385,   386,   387,   388,   389,     0, 
     2591    -458,     0,    86,    80,    87,    88,     0,     0,     0,   158, 
     2592    -471,     0,  -484,     0,    90,     0,     0,    89,     0,  -716, 
     2593     159,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     2594       0,    93,    94,     0,    96,     0,     0,    90,    42,    98, 
     2595      91,    92,  -335,     0,     0,  -335,  -335,  -335,  -335,     0, 
     2596     160,     0,     0,  -335,    93,    94,    95,    96,     0,  -335, 
     2597       0,    97,    98,     0,     0,   161,     0,     0,     0,     0, 
     2598       0,     0,     0,     0,     0,     0,  -716,  -716,  -716,     0, 
     2599     162,     0,     0,    85,     0,  -716,     0,   163,    80,     0, 
     2600     164,   165,     0,   166,   158,     0,   167,     0,     0,   168, 
     2601     169,   170,     0,  -716,     0,   159,     0,     0,     0,     0, 
     2602       0,    80,     0,     0,     0,     0,     0,   158,     0,     0, 
     2603       0,     0,     0,     0,     0,   171,     0,     0,   159,     0, 
     2604       0,     0,     0,     0,     0,   160,     0,     0,     0,    90, 
     2605    -716,  -716,    91,     0,     0,     0,     0,     0,     0,     0, 
     2606     161,     0,     0,     0,     0,     0,    93,    94,   160,    96, 
     2607       0,     0,     0,   172,    98,   162,     0,     0,    85,  -128, 
     2608       0,     0,   163,   161,     0,   164,   165,     0,   166,     0, 
     2609       0,   167,     0,     0,   168,   169,   170,     0,   162,     0, 
     2610       0,    85,  -129,     0,     0,   163,     0,     0,   164,   165, 
     2611       0,   166,   158,     0,   167,     0,     0,   168,   169,   170, 
     2612     171,     0,     0,   159,     0,     0,     0,     0,     0,     0, 
     2613       0,     0,     0,     0,    90,   837,     0,    91,     0,     0, 
     2614       0,     0,     0,   171,     0,     0,     0,     0,     0,  -128, 
     2615       0,    93,    94,   160,    96,     0,     0,    90,   172,    98, 
     2616      91,     0,     0,     0,     0,     0,     0,     0,   161,     0, 
     2617       0,     0,  -129,     0,    93,    94,   160,    96,     0,     0, 
     2618       0,   172,    98,   162,     0,     0,    85,  -125,     0,     0, 
     2619     163,   161,     0,   164,   165,     0,   166,     0,     0,   167, 
     2620       0,     0,   168,   169,   170,     0,   162,     0,     0,     0, 
     2621       0,     0,     0,   163,     0,     0,   164,   165,     0,   166, 
     2622       0,     0,   167,     0,     0,   168,   169,   170,   171,     0, 
    16372623       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1638        0,     0,     0,     0,     0,     0,     0,   599,   390,   391, 
     2624       0,     0,    90,     0,     0,    91,     0,     0,     0,     0, 
     2625       0,   171,     0,     0,     0,     0,     0,  -125,     0,    93, 
     2626      94,     0,    96,     0,     0,    90,   172,    98,     0,     0, 
    16392627       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1640        0,     0,     0,     0,     0,     0,  -239,  -239,  -239,     0, 
    1641        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1642        0,     0,     0,     0,     0,  -238,  -238,  -238,   373,   374, 
    1643      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1644      384,     0,   385,   386,   387,   388,   389,   373,   374,   375, 
    1645      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1646        0,   385,   386,   387,   388,   389,   373,   374,   375,   376, 
    1647      377,   378,     0,   379,   380,   381,   382,   383,   384,     0, 
    1648      385,   386,   387,   388,   389,     0,     0,     0,     0,   613, 
    1649      390,   391,     0,     0,     0,     0,     0,     0,     0,     0, 
    1650        0,     0,     0,     0,     0,     0,     0,     0,   650,   390, 
    1651      391,   373,   374,   375,   376,   377,   378,     0,   379,   380, 
    1652      381,   382,   383,   384,     0,   385,   386,   387,   388,   389, 
    1653      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1654      382,   383,   384,     0,   385,   386,   387,   388,   389,   373, 
    1655      374,   375,   376,   377,   378,     0,   379,   380,   381,   382, 
    1656      383,   384,     0,   385,   386,   387,   388,   389,     0,     0, 
    1657        0,     0,     0,     0,   135,   136,     0,     0,     0,     0, 
    1658      137,   138,   139,   140,   141,     0,   653,   390,   391,     0, 
    1659        0,     0,     0,     0,     0,   142,   143,   144,   145,   146, 
    1660      147,   148,   399,   149,   150,   151,   390,   391,   152,   153, 
    1661      154,     0,   155,   156,   157,   158,   159,     0,   160,     0, 
    1662        0,     0,     0,     0,   779,   390,   391,   373,   374,   375, 
    1663      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1664        0,   385,   386,   387,   388,   389,   373,   374,   375,   376, 
    1665      377,   378,     0,   379,   380,   381,   382,   383,   384,     0, 
    1666      385,   386,   387,   388,   389,     0,     0,     0,     0,   780, 
    1667      390,   391,     0,   162,     0,     0,     0,     0,     0,   163, 
    1668      164,     0,     0,     0,     0,   165,     0,     0,   781,   390, 
    1669      391,     0,     0,     0,   166,   167,     0,   168,   169,     0, 
    1670        0,   918,   171,   562,     0,     0,     0,   782,   390,   391, 
    1671      373,   374,   375,   376,   377,   378,     0,   379,   380,   381, 
    1672      382,   383,   384,     0,   385,   386,   387,   388,   389,   373, 
    1673      374,   375,   376,   377,   378,     0,   379,   380,   381,   382, 
    1674      383,   384,     0,   385,   386,   387,   388,   389,   373,   374, 
    1675      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1676      384,     0,   385,   386,   387,   388,   389,     0,     0,     0, 
    1677        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1678        0,     0,     0,     0,     0,   783,   390,   391,     0,     0, 
    1679        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1680        0,     0,     0,     0,   784,   390,   391,   373,   374,   375, 
    1681      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1682        0,   385,   386,   387,   388,   389,   373,   374,   375,   376, 
    1683      377,   378,     0,   379,   380,   381,   382,   383,   384,     0, 
    1684      385,   386,   387,   388,   389,   373,   374,   375,   376,   377, 
    1685      378,     0,   379,   380,   381,   382,   383,   384,     0,   385, 
    1686      386,   387,   388,   389,     0,     0,     0,     0,   785,   390, 
    1687      391,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1688        0,     0,     0,     0,     0,     0,     0,   786,   390,   391, 
    1689        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1690        0,     0,     0,     0,     0,     0,   787,   390,   391,   373, 
    1691      374,   375,   376,   377,   378,     0,   379,   380,   381,   382, 
    1692      383,   384,     0,   385,   386,   387,   388,   389,   373,   374, 
    1693      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1694      384,     0,   385,   386,   387,   388,   389,     0,     0,     0, 
    1695        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1696        0,     0,     0,     0,     0,   788,   390,   391,     0,     0, 
    1697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1698        0,     0,     0,     0,   789,   390,   391,     0,     0,     0, 
    1699        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1700        0,     0,     0,   790,   390,   391,   373,   374,   375,   376, 
    1701      377,   378,     0,   379,   380,   381,   382,   383,   384,     0, 
    1702      385,   386,   387,   388,   389,   373,   374,   375,   376,   377, 
    1703      378,     0,   379,   380,   381,   382,   383,   384,     0,   385, 
    1704      386,   387,   388,   389,   373,   374,   375,   376,   377,   378, 
    1705        0,   379,   380,   381,   382,   383,   384,     0,   385,   386, 
    1706      387,   388,   389,     0,     0,     0,     0,   791,   390,   391, 
    1707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1708        0,     0,     0,     0,     0,     0,   852,   390,   391,   373, 
    1709      374,   375,   376,   377,   378,     0,   379,   380,   381,   382, 
    1710      383,   384,     0,   385,   386,   387,   388,   389,   373,   374, 
    1711      375,   376,   377,   378,     0,   379,   380,   381,   382,   383, 
    1712      384,     0,   385,   386,   387,   388,   389,   373,   374,   375, 
    1713      376,   377,   378,     0,   379,   380,   381,   382,   383,   384, 
    1714        0,   385,   386,   387,   388,   389,     0,     0,     0,     0, 
    1715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1716        0,     0,     0,     0,   930,   390,   391,     0,     0,     0, 
    1717        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1718        0,     0,     0,   933,   390,   391,     0,     0,     0,     0, 
    1719        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1720        0,     0,   946,   390,   391,   373,   374,   375,   376,   377, 
    1721      378,     0,   379,   380,   381,   382,   383,   384,     0,   385, 
    1722      386,   387,   388,   389,     0,     0,     0,     0,     0,     0, 
    1723        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1724        0,     0,     0,     0,     0,   702,     0,   947,   390,   391, 
    1725        0,     0,   132,     0,     0,     0,     0,     0,     0,     0, 
    1726      133,   134,   703,     0,     0,     0,  1022,   390,   391,     0, 
    1727        0,     0,     0,     0,   135,   136,     0,     0,     0,     0, 
    1728      137,   138,   139,   140,   141,  1033,   390,   391,     0,     0, 
    1729        0,     0,     0,     0,     0,   142,   143,   144,   145,   146, 
    1730      147,   148,     0,   149,   150,   151,     0,     0,   152,   153, 
    1731      154,     0,   155,   156,   157,   158,   159,   439,   160,     0, 
    1732        0,     0,   440,   441,     0,   442,   443,     0,     0,     0, 
    1733        0,     0,     0,     0,     0,     0,     0,   444,   445,   446, 
    1734      447,   448,   449,   450,     0,   451,   452,   453,     0,     0, 
    1735      454,   455,   456,     0,   814,   457,   458,   459,   460,     0, 
    1736      461,   132,     0,     0,   390,   391,   161,     0,     0,   133, 
    1737      134,     0,     0,   162,     0,     0,     0,     0,     0,   163, 
    1738      164,     0,     0,   135,   136,   165,     0,     0,     0,   137, 
    1739      138,   139,   140,   141,   166,   167,     0,   168,   169,     0, 
    1740        0,   170,   171,   172,   142,   143,   144,   145,   146,   147, 
    1741      148,     0,   149,   150,   151,     0,     0,   152,   153,   154, 
    1742        0,   155,   156,   157,   158,   159,     0,   160,     0,     0, 
    1743        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1744        0,     0,     0,   462,     0,     0,     0,     0,     0,     0, 
    1745        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1746        0,     0,     0,   904,     0,     0,     0,     0,     0,     0, 
    1747      132,     0,     0,     0,     0,   161,     0,     0,   133,   134, 
    1748        0,     0,   162,     0,     0,     0,     0,     0,   163,   164, 
    1749        0,     0,   135,   136,   165,     0,     0,     0,   137,   138, 
    1750      139,   140,   141,   166,   167,     0,   168,   169,     0,     0, 
    1751      170,   171,   172,   142,   143,   144,   145,   146,   147,   148, 
    1752        0,   149,   150,   151,     0,     0,   152,   153,   154,     0, 
    1753      155,   156,   157,   158,   159,     0,   160,     0,     0,     0, 
    1754        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1755        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1757        0,     0,   924,     0,     0,     0,     0,     0,     0,   132, 
    1758        0,     0,     0,     0,   161,     0,     0,   133,   134,     0, 
    1759        0,   162,     0,     0,     0,     0,     0,   163,   164,     0, 
    1760        0,   135,   136,   165,     0,     0,     0,   137,   138,   139, 
    1761      140,   141,   166,   167,     0,   168,   169,     0,     0,   170, 
    1762      171,   172,   142,   143,   144,   145,   146,   147,   148,     0, 
    1763      149,   150,   151,     0,     0,   152,   153,   154,     0,   155, 
    1764      156,   157,   158,   159,     0,   160,     0,     0,     0,     0, 
    1765        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1766        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1768        0,     0,   472,     0,     0,     0,     0,     0,   132,     0, 
    1769        0,     0,     0,   161,     0,     0,   133,   134,   473,     0, 
    1770      162,     0,     0,     0,     0,     0,   163,   164,     0,     0, 
    1771      135,   136,   165,     0,     0,     0,   137,   138,   139,   140, 
    1772      141,   166,   167,     0,   168,   169,     0,     0,   170,   171, 
    1773      172,   142,   143,   144,   145,   146,   147,   148,     0,   149, 
    1774      150,   151,     0,     0,   152,   153,   154,     0,   155,   156, 
    1775      157,   158,   159,     0,   160,     0,     0,     0,     0,     0, 
    1776        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1777        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1778        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1779        0,   632,     0,     0,     0,     0,     0,   132,     0,     0, 
    1780        0,     0,   161,     0,     0,   133,   134,     0,   633,   162, 
    1781        0,     0,     0,     0,     0,   163,   164,     0,     0,   135, 
    1782      136,   165,     0,     0,     0,   137,   138,   139,   140,   141, 
    1783      166,   167,     0,   168,   169,     0,     0,   170,   171,   172, 
    1784      142,   143,   144,   145,   146,   147,   148,     0,   149,   150, 
    1785      151,     0,     0,   152,   153,   154,     0,   155,   156,   157, 
    1786      158,   159,     0,   160,     0,     0,     0,     0,     0,     0, 
    1787        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1788        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1790      721,     0,     0,     0,     0,     0,   132,     0,     0,     0, 
    1791        0,   161,     0,     0,   133,   134,   473,     0,   162,     0, 
    1792        0,     0,     0,     0,   163,   164,     0,     0,   135,   136, 
    1793      165,     0,     0,     0,   137,   138,   139,   140,   141,   166, 
    1794      167,     0,   168,   169,     0,     0,   170,   171,   172,   142, 
    1795      143,   144,   145,   146,   147,   148,     0,   149,   150,   151, 
    1796        0,     0,   152,   153,   154,     0,   155,   156,   157,   158, 
    1797      159,     0,   160,     0,     0,     0,     0,     0,     0,     0, 
    1798        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1800        0,     0,     0,     0,     0,     0,     0,     0,     0,   615, 
    1801        0,     0,     0,     0,     0,   132,     0,     0,     0,     0, 
    1802      161,     0,     0,   133,   134,     0,     0,   162,     0,     0, 
    1803        0,     0,     0,   163,   164,     0,     0,   135,   136,   165, 
    1804        0,     0,     0,   137,   138,   139,   140,   141,   166,   167, 
    1805        0,   168,   169,     0,     0,   170,   171,   172,   142,   143, 
    1806      144,   145,   146,   147,   148,     0,   149,   150,   151,     0, 
    1807        0,   152,   153,   154,     0,   155,   156,   157,   158,   159, 
    1808        0,   160,     0,     0,     0,     0,     0,     0,     0,     0, 
    1809        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1810        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1811        0,     0,     0,     0,     0,     0,     0,     0,   637,     0, 
    1812        0,     0,     0,     0,   132,     0,     0,     0,     0,   161, 
    1813        0,     0,   133,   134,     0,     0,   162,     0,     0,     0, 
    1814        0,     0,   163,   164,     0,     0,   135,   136,   165,     0, 
    1815        0,     0,   137,   138,   139,   140,   141,   166,   167,     0, 
    1816      168,   169,     0,     0,   170,   171,   172,   142,   143,   144, 
    1817      145,   146,   147,   148,     0,   149,   150,   151,     0,     0, 
    1818      152,   153,   154,     0,   155,   156,   157,   158,   159,     0, 
    1819      160,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1820        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1821        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1822        0,     0,     0,     0,     0,     0,     0,   639,     0,     0, 
    1823        0,     0,     0,   132,     0,     0,     0,     0,   161,     0, 
    1824        0,   133,   134,     0,     0,   162,     0,     0,     0,     0, 
    1825        0,   163,   164,     0,     0,   135,   136,   165,     0,     0, 
    1826        0,   137,   138,   139,   140,   141,   166,   167,     0,   168, 
    1827      169,     0,     0,   170,   171,   172,   142,   143,   144,   145, 
    1828      146,   147,   148,     0,   149,   150,   151,     0,     0,   152, 
    1829      153,   154,     0,   155,   156,   157,   158,   159,     0,   160, 
    1830        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1831        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1832        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1833        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1834        0,     0,   132,     0,     0,     0,     0,   161,     0,     0, 
    1835      133,   134,     0,     0,   162,     0,     0,     0,     0,     0, 
    1836      163,   164,     0,     0,   135,   136,   165,     0,     0,     0, 
    1837      137,   138,   139,   140,   141,   166,   167,     0,   168,   169, 
    1838        0,     0,   170,   171,   172,   142,   143,   144,   145,   146, 
    1839      147,   148,     0,   149,   150,   151,     0,     0,   152,   153, 
    1840      154,     0,   155,   156,   157,   158,   159,     0,   160,     0, 
    1841        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1842        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1845        0,     0,     0,     0,     0,     0,   161,     0,     0,     0, 
    1846        0,     0,     0,   162,     0,     0,     0,     0,     0,   163, 
    1847      164,     0,     0,     0,     0,   165,     0,     0,     0,     0, 
    1848        0,     0,     0,     0,   166,   167,   132,   168,   169,     0, 
    1849        0,   170,   171,   172,   133,   134,   660,   173,   661,     0, 
    1850        0,     0,     0,     0,     0,     0,     0,     0,   135,   136, 
    1851        0,     0,     0,     0,   137,   138,   139,   140,   141,     0, 
    1852        0,     0,     0,     0,     0,     0,     0,     0,     0,   142, 
    1853      143,   144,   145,   146,   147,   148,     0,   149,   150,   151, 
    1854        0,     0,   152,   153,   154,     0,   155,   156,   157,   158, 
    1855      159,     0,   160,     0,     0,     0,     0,     0,     0,     0, 
    1856        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1857        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1858        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1859        0,     0,     0,     0,     0,   132,     0,     0,     0,     0, 
    1860      161,     0,     0,   133,   134,   473,     0,   162,     0,     0, 
    1861        0,     0,     0,   163,   164,     0,     0,   135,   136,   165, 
    1862        0,     0,     0,   137,   138,   139,   140,   141,   166,   167, 
    1863        0,   168,   169,     0,     0,   170,   171,   662,   142,   143, 
    1864      144,   145,   146,   147,   148,     0,   149,   150,   151,     0, 
    1865        0,   152,   153,   154,     0,   155,   156,   157,   158,   159, 
    1866        0,   160,     0,     0,     0,     0,     0,     0,     0,     0, 
    1867        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1870        0,     0,     0,     0,   132,     0,     0,     0,     0,   161, 
    1871        0,     0,   133,   134,   548,     0,   162,     0,     0,     0, 
    1872        0,     0,   163,   164,     0,     0,   135,   136,   165,     0, 
    1873        0,     0,   137,   138,   139,   140,   141,   166,   167,     0, 
    1874      168,   169,     0,     0,   526,   171,   172,   142,   143,   144, 
    1875      145,   146,   147,   148,     0,   149,   150,   151,     0,     0, 
    1876      152,   153,   154,     0,   155,   156,   157,   158,   159,     0, 
    1877      160,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1878        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1880        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1881        0,     0,     0,   132,     0,     0,     0,     0,   161,     0, 
    1882        0,   133,   134,   473,     0,   162,     0,     0,     0,     0, 
    1883        0,   163,   164,     0,     0,   135,   136,   165,     0,     0, 
    1884        0,   137,   138,   139,   140,   141,   166,   167,     0,   168, 
    1885      169,     0,     0,   170,   171,   172,   142,   143,   144,   145, 
    1886      146,   147,   148,     0,   149,   150,   151,     0,     0,   152, 
    1887      153,   154,     0,   155,   156,   157,   158,   159,     0,   160, 
    1888        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1889        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1890        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1891        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1892        0,     0,   132,     0,     0,     0,     0,   161,     0,     0, 
    1893      133,   134,   726,     0,   162,     0,     0,     0,     0,     0, 
    1894      163,   164,     0,     0,   135,   136,   165,     0,     0,     0, 
    1895      137,   138,   139,   140,   141,   166,   167,     0,   168,   169, 
    1896        0,     0,   170,   171,   172,   142,   143,   144,   145,   146, 
    1897      147,   148,     0,   149,   150,   151,     0,     0,   152,   153, 
    1898      154,     0,   155,   156,   157,   158,   159,     0,   160,     0, 
    1899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1900        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1901        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1902        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1903        0,     0,     0,     0,     0,     0,   161,     0,     0,     0, 
    1904        0,     0,     0,   162,     0,     0,     0,     0,     0,   163, 
    1905      164,     0,   132,     0,     0,   165,     0,     0,     0,     0, 
    1906      133,   134,     0,     0,   166,   167,     0,   168,   169,     0, 
    1907        0,   170,   171,   172,   135,   136,     9,     0,     0,     0, 
    1908      137,   138,   139,   140,   141,     0,     0,     0,     0,     0, 
    1909        0,     0,     0,     0,     0,   142,   143,   144,   145,   146, 
    1910      147,   148,     0,   149,   150,   151,     0,     0,   152,   153, 
    1911      154,     0,   155,   156,   157,   158,   159,     0,   160,     0, 
    1912        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1913        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1914        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1915        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1916        0,   132,     0,     0,     0,     0,   161,     0,     0,   133, 
    1917      134,   703,     0,   162,     0,     0,     0,     0,     0,   163, 
    1918      164,     0,     0,   135,   136,   165,     0,     0,     0,   137, 
    1919      138,   139,   140,   141,   166,   167,     0,   168,   169,     0, 
    1920        0,   170,   171,   172,   142,   143,   144,   145,   146,   147, 
    1921      148,     0,   149,   150,   151,     0,     0,   152,   153,   154, 
    1922        0,   155,   156,   157,   158,   159,     0,   160,     0,     0, 
    1923        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1924        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1925        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1926        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1927      132,     0,     0,     0,     0,   161,     0,     0,   133,   134, 
    1928     1011,     0,   162,     0,     0,     0,     0,     0,   163,   164, 
    1929        0,     0,   135,   136,   165,     0,     0,     0,   137,   138, 
    1930      139,   140,   141,   166,   167,     0,   168,   169,     0,     0, 
    1931      170,   171,   172,   142,   143,   144,   145,   146,   147,   148, 
    1932        0,   149,   150,   151,     0,     0,   152,   153,   154,     0, 
    1933      155,   156,   157,   158,   159,     0,   160,     0,     0,     0, 
    1934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1935        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1936        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1937        0,     0,     0,     0,     0,     0,     0,     0,     0,   132, 
    1938        0,     0,     0,     0,   161,     0,     0,   133,   134,     0, 
    1939        0,   162,     0,     0,     0,     0,     0,   163,   164,     0, 
    1940        0,   135,   136,   165,     0,     0,     0,   137,   138,   139, 
    1941      140,   141,   166,   167,     0,   168,   169,     0,     0,   170, 
    1942      171,   172,   142,   143,   144,   145,   146,   147,   148,     0, 
    1943      149,   150,   151,     0,     0,   152,   153,   154,     0,   155, 
    1944      156,   157,   158,   159,     0,   160,     0,     0,     0,     0, 
    1945        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1946        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1947        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1948        0,     0,     0,     0,     0,     0,     0,     0,   132,     0, 
    1949        0,     0,     0,   161,     0,     0,   133,   134,     0,     0, 
    1950      162,     0,     0,     0,     0,     0,   163,   164,     0,     0, 
    1951      135,   136,   165,     0,     0,     0,   137,   138,   139,   140, 
    1952      141,   166,   167,     0,   168,   169,     0,     0,   170,   171, 
    1953      172,   142,   143,   144,   145,   146,   147,   148,     0,   149, 
    1954      150,   151,     0,     0,   152,   153,   154,     0,   155,   156, 
    1955      157,   158,   159,     0,   160,     0,     0,     0,     0,     0, 
    1956        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1957        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1958        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1959        0,     0,     0,     0,     0,     0,     0,   132,     0,     0, 
    1960        0,     0,   161,     0,     0,   133,   134,     0,     0,   162, 
    1961        0,     0,     0,     0,     0,   163,   164,     0,     0,   135, 
    1962      136,   165,     0,     0,     0,   137,   138,   139,   140,   141, 
    1963      166,   167,     0,   168,   169,     0,     0,   170,   171,   363, 
    1964      142,   143,   144,   145,   146,   147,   148,     0,   149,   150, 
    1965      151,     0,     0,   152,   153,   154,     0,   155,   156,   157, 
    1966      158,   159,     0,   160,     0,     0,     0,     0,     0,     0, 
    1967        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1968        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1970        0,     0,     0,     0,     0,     0,   132,     0,     0,     0, 
    1971        0,   161,     0,     0,   133,   134,     0,     0,   162,     0, 
    1972        0,     0,     0,     0,   163,   164,     0,     0,   135,   136, 
    1973      165,     0,     0,     0,   137,   138,   139,   140,   141,   166, 
    1974      167,     0,   168,   169,     0,     0,   170,   431,   172,   142, 
    1975      143,   144,   145,   146,   147,   148,     0,   149,   150,   151, 
    1976        0,     0,   152,   153,   154,     0,   155,   156,   157,   158, 
    1977      159,     0,   160,     0,     0,     0,     0,     0,     0,     0, 
    1978        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1979        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1980        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1981        0,     0,     0,     0,     0,   132,     0,     0,     0,     0, 
    1982      161,     0,     0,   133,   134,     0,     0,   162,     0,     0, 
    1983        0,     0,     0,   163,   164,     0,     0,   135,   136,   165, 
    1984        0,     0,     0,   137,   138,   139,   140,   141,   166,   167, 
    1985        0,   168,   169,     0,     0,   170,   529,   530,   142,   143, 
    1986      144,   145,   146,   147,   148,     0,   149,   150,   151,     0, 
    1987        0,   152,   153,   154,     0,   155,   156,   157,   158,   159, 
    1988        0,   160,     0,     0,     0,     0,     0,     0,     0,     0, 
    1989        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1990        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1991        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    1992        0,     0,     0,     0,   132,     0,     0,     0,     0,   161, 
    1993        0,     0,   133,   134,     0,     0,   162,     0,     0,     0, 
    1994        0,     0,   163,   164,     0,     0,   135,   136,   165,     0, 
    1995        0,     0,   137,   138,   139,   140,   141,   166,   167,     0, 
    1996      168,   169,     0,     0,   918,   171,   363,   142,   143,   144, 
    1997      145,   146,   147,   148,     0,   149,   150,   151,     0,     0, 
    1998      152,   153,   154,     0,   155,   156,   157,   158,   159,     0, 
    1999      160,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2000        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2001        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2002        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2003        0,     0,     0,     0,     0,     0,     0,     0,   161,     0, 
    2004        0,     0,     0,     0,     0,   162,     0,     0,     0,     0, 
    2005        0,   163,   164,     0,     0,     0,     0,   165,     0,     0, 
    2006        0,     0,     0,     0,     0,     0,   166,   167,     0,   168, 
    2007      169,     0,     0,   170,   171,   955,   311,   312,   422,     0, 
    2008      423,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2009      135,   136,     0,     0,     0,     0,   137,   138,   139,   140, 
    2010      141,     0,     0,   314,   315,   316,   317,   318,     0,   319, 
    2011      320,   142,   143,   144,   145,   146,   147,   148,     0,   149, 
    2012      150,   151,     0,     0,   152,   153,   154,     0,   155,   156, 
    2013      157,   158,   159,     0,   160,     0,     0,     0,     0,     0, 
    2014        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2015        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2016        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2017        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2018        0,     0,     0,     0,     0,     0,     0,     0,     0,   162, 
    2019        0,     0,     0,     0,     0,   163,   164,     0,     0,     0, 
    2020        0,   165,     0,     0,     0,     0,   311,   312,   313,     0, 
    2021      166,   167,     0,   168,   169,     0,     0,   321,   171,   424, 
    2022      135,   136,     0,     0,     0,     0,   137,   138,   139,   140, 
    2023      141,     0,     0,   314,   315,   316,   317,   318,     0,   319, 
    2024      320,   142,   143,   144,   145,   146,   147,   148,     0,   149, 
    2025      150,   151,   311,   312,   152,   153,   154,     0,   155,   156, 
    2026      157,   158,   159,     0,   160,     0,   135,   136,     0,     0, 
    2027        0,     0,   137,   138,   139,   140,   141,     0,     0,   314, 
    2028      315,   316,   317,   318,     0,   319,   320,   142,   143,   144, 
    2029      145,   146,   147,   148,     0,   149,   150,   151,     0,     0, 
    2030      152,   153,   154,     0,   155,   156,   157,   158,   159,     0, 
    2031      160,     0,     0,     0,     0,     0,     0,     0,     0,   162, 
    2032        0,     0,     0,     0,     0,   163,   164,     0,     0,     0, 
    2033        0,   165,     0,     0,     0,     0,     0,     0,     0,     0, 
    2034      166,   167,     0,   168,   169,     0,     0,   321,   171,   322, 
    2035        0,     0,     0,     0,     0,     0,     5,     0,     0,     6, 
    2036        0,     7,     0,     8,     0,   162,     9,     0,     0,     0, 
    2037        0,   163,   164,     0,     0,     0,    10,   165,     0,     0, 
    2038        0,     0,     0,     0,     0,     0,   166,   167,     0,   168, 
    2039      169,     0,    11,   321,   171,   424,    12,    13,     0,     0, 
    2040        0,    14,     0,     0,     0,     0,     0,    15,     0,    16, 
    2041       17,     0,    18,     0,     0,     0,     0,    19,    20,    21, 
    2042       22,    23,     0,    24,    25,     0,     0,    26,    27,    28, 
    2043       29,    30,    31,    32,    33,    34,    35,    36,     0,    37, 
    2044        0,    38,    39,     0,     0,    40,    41,    42,     0,    43, 
    2045        0,    44,     0,     0,    45,    46,     0,     0,    47,    48, 
    2046       49,     0,     0,     0,     0,     0,     0,     0,    50,     0, 
    2047        0,     0,    52,    53,    54,    55,    56,    57,    58,    59, 
    2048       60,    61,    62,    63,     0,     0,    64,     0,     0,    65, 
    2049       66,    67,    68,     5,     0,     0,     6,   487,     7,     0, 
    2050        8,     0,     0,     9,     0,     0,     0,     0,     0,     0, 
    2051        0,     0,     0,    10,     0,     0,     0,     0,     0,     0, 
    2052        0,     0,     0,     0,     0,     0,     0,     0,     0,    11, 
    2053        0,     0,     0,    12,    13,     0,     0,     0,    14,     0, 
    2054        0,     0,     0,     0,    15,     0,    16,    17,     0,    18, 
    2055        0,     0,     0,     0,    19,    20,    21,    22,    23,     0, 
    2056       24,    25,     0,     0,    26,    27,    28,    29,    30,    31, 
    2057       32,    33,    34,    35,    36,     0,    37,     0,    38,    39, 
    2058        0,     0,    40,    41,    42,     0,    43,     0,    44,     0, 
    2059        0,    45,    46,     0,     0,    47,    48,    49,     0,     0, 
    2060        0,     0,     0,     0,     0,    50,     0,     0,     0,    52, 
    2061       53,    54,    55,    56,    57,    58,    59,    60,    61,    62, 
    2062       63,     8,     0,    64,     9,     0,    65,    66,    67,    68, 
    2063        0,     0,     0,     0,    10,     0,     0,     0,     0,     0, 
    2064        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2065       11,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2066        0,     0,     0,     0,     0,    15,     0,     0,     0,     0, 
    2067       18,     0,   746,     0,     0,    19,    20,    21,    22,    23, 
    2068        0,     0,    25,     0,     0,    26,    27,    28,    29,    30, 
    2069       31,    32,    33,    34,    35,     0,     0,     8,     0,     0, 
    2070        9,     0,     0,     0,    41,     0,     0,     0,     0,    44, 
    2071       10,     0,     0,     0,     0,     0,    47,     0,    49,     0, 
    2072        0,     0,     0,     0,     0,     0,    11,     0,     0,     0, 
    2073        0,     0,     0,     0,     0,     0,     0,    59,    60,    61, 
    2074       62,    15,     0,     0,     0,     0,    18,     0,     0,    67, 
    2075       68,    19,    20,    21,    22,    23,     0,     0,    25,     0, 
    2076        0,    26,    27,    28,    29,    30,    31,    32,    33,    34, 
    2077       35,     0,     0,     0,     0,     0,   825,     0,     0,     0, 
    2078       41,     0,     0,     0,     0,    44,     0,     0,     0,     0, 
    2079        0,     0,    47,     0,    49,     0,     0,     0,     0,     0, 
    2080        0,     0,    11,     0,     0,     0,     0,     0,     0,     0, 
    2081        0,     0,     0,    59,    60,    61,    62,    15,     0,     0, 
    2082        0,     0,    18,   826,     0,    67,    68,    19,    20,   827, 
    2083        0,    23,     0,     0,    25,     0,     0,    26,    27,    28, 
    2084       29,    30,    31,    32,    33,    34,    35,     0,     0,     0, 
    2085        0,     0,   825,     0,     0,     0,    41,     0,     0,     0, 
    2086        0,    44,     0,     0,     0,     0,     0,     0,    47,     0, 
    2087       49,     0,     0,     0,     0,     0,     0,     0,    11,     0, 
    2088        0,     0,     0,     0,     0,     0,     0,     0,     0,    59, 
    2089       60,    61,    62,    15,     0,     0,     0,     0,    18,     0, 
    2090        0,   170,    68,    19,    20,   827,     0,    23,     0,     0, 
    2091       25,     0,     0,    26,    27,    28,    29,    30,    31,    32, 
    2092       33,    34,    35,     0,     0,     0,     0,     0,     0,     0, 
    2093        0,     0,    41,     0,     0,     0,     0,    44,     0,     0, 
    2094        0,     0,     0,     0,    47,     0,    49,     0,     0,     0, 
    2095        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    2096        0,     0,     0,     0,     0,    59,    60,    61,    62,     0, 
    2097        0,     0,     0,     0,     0,     0,     0,   170,    68 
     2628       0,     0,    93,    94,     0,    96,     0,     0,     0,    42, 
     2629      98 
    20982630}; 
    20992631 
    21002632#define yypact_value_is_default(Yystate) \ 
    2101   (!!((Yystate) == (-845))) 
     2633  (!!((Yystate) == (-1443))) 
    21022634 
    21032635#define yytable_value_is_error(Yytable_value) \ 
    2104   (!!((Yytable_value) == (-542))) 
     2636  YYID (0) 
    21052637 
    21062638static const yytype_int16 yycheck[] = 
    21072639{ 
    2108       11,   295,     1,   185,    15,   101,   219,    18,   104,   240, 
    2109      394,   577,   108,   395,   277,   111,    54,   161,   482,   477, 
    2110      205,   536,   536,   653,   482,     5,   264,   124,   172,    79, 
    2111      268,    81,    82,   161,     3,     3,    86,     3,   274,   710, 
    2112       39,     3,   564,   565,     1,     3,   124,    17,   719,    75, 
    2113       76,     3,    51,    80,   124,   291,   563,   564,   565,     3, 
    2114       87,    19,    20,    21,     3,    31,   722,    37,    38,   768, 
    2115      214,     3,     3,   217,   214,   113,   363,   115,   116,   329, 
    2116       24,    21,     3,   161,   747,   124,   214,    21,     5,     6, 
    2117        7,     8,     9,    10,    51,    12,    13,    14,    15,    16, 
    2118       17,   127,    19,    20,    21,    22,    23,    27,     3,     3, 
    2119       22,   122,     3,     3,     3,   212,   213,   904,     3,   130, 
    2120      131,   132,   219,    21,     3,   112,     3,    45,     3,    44, 
    2121      141,   153,   976,     3,    24,   213,   214,    18,     3,     3, 
    2122      121,    22,   122,   213,   155,   101,    24,   131,   245,    24, 
    2123      161,   198,     3,     3,     3,     3,     3,     3,     3,    24, 
    2124        3,   172,    19,    20,    21,   131,   177,   131,   404,    91, 
    2125       88,    89,   119,   891,   221,   162,  1020,    18,   428,   160, 
    2126      191,    22,   166,   130,    21,    21,    22,    23,   168,   188, 
    2127      201,   202,   107,   115,   160,   140,   246,   142,   166,   168, 
    2128      987,   163,   166,   214,   160,   160,   217,   206,    23,   167, 
    2129      881,   163,   157,   931,   213,   914,   227,   161,   217,   363, 
    2130      160,   220,   166,   363,   163,   322,   225,   253,   884,   240, 
    2131      327,   163,   163,   167,   331,   363,     5,   900,   265,    24, 
    2132      160,   472,   163,   270,   322,   162,   273,   164,   165,   327, 
    2133      162,   168,   322,   331,   131,   254,   162,   327,   765,   766, 
    2134      767,   331,   140,    21,   162,   501,   502,   237,   163,   163, 
    2135      269,   161,   163,   509,   163,   286,   166,   288,   163,   160, 
    2136       21,     3,    24,   322,   163,   363,   161,   523,   166,   300, 
    2137      301,   166,   331,   163,   305,   526,   161,   254,   534,   163, 
    2138      485,   166,    44,   314,   315,   316,   317,   318,   319,   320, 
    2139      167,   561,   163,   163,   163,   163,   163,   163,   163,   160, 
    2140      163,   608,   609,   322,   611,   162,   576,   424,   164,   165, 
    2141      341,   796,   797,   798,   345,   346,   347,   348,   349,   350, 
    2142      351,   352,   353,   354,   355,   356,   424,    18,   162,   164, 
    2143      165,    22,   363,   122,   424,    18,    19,    20,    21,    22, 
    2144       23,   162,   373,   374,   375,   376,   377,   378,   379,   380, 
    2145      381,   382,   383,   384,   385,   386,   387,   388,   389,   390, 
    2146      391,   166,   846,    18,   395,   424,   530,     3,   846,   847, 
    2147      848,   849,   850,   915,   339,   340,   490,   160,   140,   162, 
    2148      162,     3,   160,  1033,   126,   163,    22,   133,   915,   659, 
    2149      133,   255,   256,   358,   425,   360,   361,   362,   162,   160, 
    2150       94,    95,   163,   153,   166,   370,   520,   663,   133,    31, 
    2151      162,   813,   162,   471,   160,   161,   562,   160,   282,     3, 
    2152      160,    78,    79,   569,   657,   495,   166,   543,   711,   914, 
    2153      500,   160,   836,   503,    18,   160,   669,   166,    22,   160, 
    2154       18,   472,   756,   701,    22,   562,  1032,   478,   162,    29, 
    2155      614,    31,   569,   162,   571,   572,   573,   574,   575,   160, 
    2156      491,   162,   718,   990,   562,   496,   160,   122,   131,   160, 
    2157      721,   569,   562,   571,   572,   573,   574,   575,     3,   569, 
    2158      163,   571,   572,   573,   574,   575,  1021,  1021,   693,   796, 
    2159      797,   798,   162,    18,   525,   526,   162,    22,   662,   530, 
    2160      770,   771,   772,   773,   774,   536,     3,  1042,  1042,   131, 
    2161      161,   162,   571,   572,   573,   574,   575,    83,   537,    85, 
    2162      539,    18,  1006,   123,   641,    22,   160,   546,  1006,   560, 
    2163        8,     9,    10,     4,    12,    13,    14,    15,    16,    17, 
    2164      657,    19,    20,    21,    22,    23,   577,   664,   579,   160, 
    2165      161,   162,   669,    18,    19,    20,    21,    22,    23,    18, 
    2166       19,    20,    21,    22,    23,   821,   664,    24,    41,    19, 
    2167       20,    21,    22,    23,   664,   161,   162,   608,   609,   166, 
    2168      611,   162,   163,   614,   615,   847,   848,   849,   850,   903, 
    2169      134,   135,   136,   683,    21,    22,    23,    19,    20,    83, 
    2170       84,   632,   633,    37,    38,     3,   637,     3,   639,   123, 
    2171      124,   160,   643,     3,   162,   162,   162,   819,   168,   162, 
    2172      162,   652,   738,   654,   740,   656,   162,   646,   162,   162, 
    2173      162,   662,   796,   749,   653,   886,   162,     3,   162,   162, 
    2174      162,   162,   162,   162,   675,   664,   677,   162,     3,   162, 
    2175      162,   768,   671,   162,   162,   162,   912,   162,   162,   132, 
    2176      691,   692,   160,     3,   160,   138,   139,   160,   982,   163, 
    2177      768,   702,     5,   160,     3,   160,   162,   160,   768,   160, 
    2178      153,   154,     3,   156,   157,   160,   164,   165,   161,   708, 
    2179      721,     5,     6,     7,     8,     9,    10,     3,    12,    13, 
    2180       14,    15,    16,    17,   160,    19,    20,    21,    22,    23, 
    2181        3,     5,   161,     3,     3,   163,     3,     3,   162,    22, 
    2182      751,     5,     3,     3,   163,   163,     3,     3,   163,   760, 
    2183      162,   160,   988,     3,   160,   163,     3,   162,     5,     6, 
    2184        7,     8,     9,    10,   162,    12,    13,    14,    15,    16, 
    2185       17,   162,    19,    20,    21,    22,    23,   162,   160,   163, 
    2186      161,     3,     3,    23,     3,   796,   797,   798,     3,     3, 
    2187      163,     4,   163,    22,   163,   163,   160,   893,    22,   162, 
    2188       26,    21,   813,   814,   163,   160,   902,   163,     4,    36, 
    2189      122,   955,     3,   160,   162,   160,    10,   914,    12,    13, 
    2190       14,    15,    16,    17,   160,    19,    20,    21,    22,    23, 
    2191      163,     3,   162,   162,     5,   163,   914,     5,   935,   163, 
    2192      162,   160,   163,   160,   914,   160,     4,   163,     3,   163, 
    2193       82,   122,   163,   163,     3,    22,   160,   868,   163,   870, 
    2194      167,   872,   160,   160,   163,   168,    82,   163,   163,   160, 
    2195      164,   165,    25,   160,   168,   886,   160,    22,   974,   160, 
    2196      891,    51,   254,   950,   485,   948,   897,    12,    13,    14, 
    2197       15,    16,    17,   904,    19,    20,    21,    22,    23,    12, 
    2198       13,    14,    15,    16,    17,   673,    19,    20,    21,    22, 
    2199       23,   677,   911,   924,   405,   926,   927,   164,   165,   481, 
    2200      931,   932,   505,   934,   480,    78,    79,    80,   260,   525, 
    2201      493,   289,   715,   944,    52,   868,   927,   397,   937,   959, 
    2202      870,   662,   890,  1016,   955,   985,   541,   757,   937,   960, 
    2203      961,   760,   664,   106,   435,   108,   109,   110,   124,    -1, 
    2204      113,   114,    -1,   116,   117,    -1,    -1,     0,     1,    -1, 
    2205      164,   165,    -1,    -1,   985,    -1,   987,    -1,    -1,    -1, 
    2206       -1,    -1,    -1,    -1,   983,   996,    -1,    -1,   999,    -1, 
    2207       -1,    24,    25,    -1,    -1,    28,    29,    30,    31,    32, 
    2208       -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2209     1021,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,  1030, 
    2210       -1,  1032,    -1,  1034,  1035,  1024,    -1,    -1,    61,    -1, 
    2211       -1,  1042,    65,    66,  1033,    -1,    -1,    70,  1049,   164, 
    2212      165,    -1,    -1,    76,    -1,    78,    79,    -1,    81,    -1, 
    2213       -1,   164,   165,    86,    87,    88,    89,    90,    -1,    92, 
    2214       93,    -1,    -1,    96,    97,    98,    99,   100,   101,   102, 
    2215      103,   104,   105,   106,    -1,   108,    -1,   110,   111,    -1, 
    2216       -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1, 
    2217      123,   124,    -1,    -1,   127,   128,   129,    -1,    -1,    -1, 
    2218       -1,    -1,    -1,    -1,   137,    -1,    -1,   140,   141,   142, 
    2219      143,   144,   145,   146,   147,   148,   149,   150,   151,   152, 
    2220       -1,    -1,   155,    -1,    -1,   158,   159,   160,   161,    -1, 
    2221       -1,    -1,     3,   166,     5,     6,     7,     8,     9,    10, 
    2222       -1,    12,    13,    14,    15,    16,    17,    -1,    19,    20, 
    2223       21,    22,    23,     3,    -1,     5,     6,     7,     8,     9, 
    2224       10,    -1,    12,    13,    14,    15,    16,    17,    -1,    19, 
    2225       20,    21,    22,    23,     3,    -1,     5,     6,     7,     8, 
    2226        9,    10,    -1,    12,    13,    14,    15,    16,    17,    -1, 
    2227       19,    20,    21,    22,    23,     3,    -1,     5,     6,     7, 
    2228        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2229       -1,    19,    20,    21,    22,    23,     3,    -1,     5,     6, 
    2230        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2231       17,    -1,    19,    20,    21,    22,    23,     4,     5,     6, 
    2232        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2233       17,    -1,    19,    20,    21,    22,    23,     4,     5,     6, 
    2234        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2235       17,    -1,    19,    20,    21,    22,    23,    -1,    -1,    -1, 
    2236       -1,    -1,    33,    34,    -1,    -1,    -1,    -1,    39,    40, 
    2237       41,    42,    43,   164,   165,    -1,    -1,    -1,    -1,    -1, 
    2238       -1,    -1,    -1,    54,    55,    56,    57,    58,    59,    60, 
    2239       -1,    62,    63,    64,   164,   165,    67,    68,    69,    -1, 
    2240       71,    72,    73,    74,    75,    -1,    77,    -1,    -1,    -1, 
    2241       -1,    -1,    -1,    -1,    -1,   164,   165,     5,     6,     7, 
    2242        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2243       -1,    19,    20,    21,    22,    23,   164,   165,     5,     6, 
    2244        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2245       17,    -1,    19,    20,    21,    22,    23,   164,   165,    -1, 
    2246       -1,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,    -1, 
    2247       -1,    -1,    -1,   144,    -1,    -1,   163,   164,   165,    -1, 
    2248       -1,    -1,   153,   154,    -1,   156,   157,    -1,    -1,   160, 
    2249      161,   162,    -1,    -1,    -1,    -1,    -1,   164,   165,     4, 
    2250        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2251       15,    16,    17,    -1,    19,    20,    21,    22,    23,     4, 
    2252        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2253       15,    16,    17,    -1,    19,    20,    21,    22,    23,     4, 
    2254        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2255       15,    16,    17,    -1,    19,    20,    21,    22,    23,    -1, 
     2640      11,   216,   223,   299,    52,   299,    91,    52,   466,   505, 
     2641     293,    56,   390,   502,   390,   167,   168,   157,   466,   296, 
     2642     171,   157,   736,   299,    73,    52,   667,   938,   144,   328, 
     2643      57,   222,   139,   875,   619,    62,    63,  1023,   240,  1023, 
     2644      52,    52,   564,    52,   325,   999,    57,   952,   953,   299, 
     2645     171,    62,    63,   101,   240,   110,   101,  1045,   310,  1116, 
     2646      52,   505,    73,   583,   604,   951,   686,   708,    95,   959, 
     2647     261,   262,   503,   613,   101,   261,  1194,  1286,   105,   884, 
     2648     885,   886,   111,   112,    95,   175,   891,  1529,     3,   101, 
     2649     101,     3,   101,  1291,   105,   216,    24,  1295,   638,     3, 
     2650    1298,    21,   262,     3,     3,     3,  1286,     3,    21,   101, 
     2651      27,   957,    24,     3,     3,     3,     3,     3,     3,   185, 
     2652      24,   899,   900,     3,    24,    24,     3,     5,    24,   240, 
     2653       3,  1286,     3,    21,    24,     3,   388,    24,    24,    24, 
     2654       3,     3,     3,     3,    24,     4,     3,    24,   175,     5, 
     2655     261,     5,     3,    65,    48,     3,    24,   359,     3,   310, 
     2656     362,    65,     3,    24,   175,    65,    65,    24,     3,    65, 
     2657     466,   168,   466,   359,   223,    65,   362,   331,    65,    65, 
     2658      65,     3,  1581,    24,   405,    65,   183,     3,    65,    56, 
     2659       3,     3,     3,  1181,  1105,   573,   193,    65,     3,   339, 
     2660      52,     3,  1601,   339,    65,   426,     3,   359,    65,   411, 
     2661     362,     3,     3,     3,     3,     3,   192,    24,     3,     3, 
     2662       3,     3,   424,    18,    65,   411,   380,    22,    21,   240, 
     2663     137,  1440,   170,   424,     3,   386,   387,   388,   132,  1480, 
     2664     431,   331,     3,   434,    19,    20,   437,   691,   359,   101, 
     2665       3,   362,  1098,   530,   192,  1464,    19,    20,    65,    18, 
     2666     309,   316,   545,    22,   424,    21,   315,   155,   323,   727, 
     2667     198,  1713,   192,   284,   988,   192,   325,   437,   394,   328, 
     2668     195,   194,  1400,   195,  1464,   200,   198,   194,   299,   201, 
     2669     380,  1279,   321,   322,   198,   162,   155,   195,   198,   198, 
     2670     411,  1191,   198,   505,   331,   599,   195,   738,   198,  1464, 
     2671       5,   198,   198,   198,   505,   161,   194,    47,   198,   505, 
     2672     331,   198,   195,   599,   195,   619,   192,    52,     3,  1134, 
     2673     198,    24,   195,   195,    24,   195,   194,   198,   194,   155, 
     2674     194,   198,   390,   619,   195,   337,   866,   195,   359,     3, 
     2675     195,   362,   892,   380,   365,    24,   405,   198,   898,   110, 
     2676     195,   901,  1603,   390,  1142,   905,   114,     5,   988,   380, 
     2677     100,   101,  1581,   195,  1583,    65,   101,   426,   427,   390, 
     2678    1589,   633,   195,   195,   195,  1026,   155,    98,   509,    98, 
     2679     195,   198,  1601,   195,   505,   195,    65,   192,   195,    98, 
     2680     411,   194,   155,   195,   195,   195,   195,   195,   400,   401, 
     2681     195,   195,   195,   195,   155,    52,   427,  1615,   193,   195, 
     2682     168,    24,   507,   508,   185,   186,   189,   188,   161,   192, 
     2683     193,   192,    29,   192,    31,   146,   194,   146,   194,   466, 
     2684     736,   192,   736,   310,    49,   193,   192,   146,   600,   601, 
     2685     602,   192,   147,   111,   112,   466,   733,  1440,   679,   611, 
     2686     736,   676,    65,    24,   101,   680,   681,   574,  1422,   585, 
     2687     144,    24,   527,  1461,  1531,    52,   503,   504,   505,  1365, 
     2688     155,   192,   633,  1388,   624,   570,   736,    52,   624,   691, 
     2689      52,    88,   503,   504,   505,  1481,   192,  1481,   509,   173, 
     2690     691,   155,   192,   780,    65,   691,   111,   112,   198,   147, 
     2691     155,   702,    65,   171,   155,   155,   702,    24,   115,   386, 
     2692     387,   388,  1011,   390,   101,   573,   803,  1023,   573,   198, 
     2693      24,  1027,    22,    24,   545,   580,   101,   564,    29,   101, 
     2694      31,   999,   168,   824,    24,   826,   573,   192,    98,  1582, 
     2695     125,   999,   192,   564,   756,   676,   567,   147,    65,   680, 
     2696     681,   573,   573,  1204,   573,   756,   171,   193,   580,  1602, 
     2697    1092,    65,     4,  1351,  1379,  1160,   173,   604,   605,  1023, 
     2698     691,    24,   194,  1027,    26,    65,   613,   614,   599,   192, 
     2699    1368,   702,    33,   604,   605,   198,   146,    88,   194,  1582, 
     2700    1583,   176,   613,   614,   194,    47,  1589,    48,   619,   746, 
     2701      24,   638,    24,   117,   118,  1526,   753,   192,  1604,  1602, 
     2702    1604,   103,    65,   131,   115,   652,   108,   638,     3,   111, 
     2703     679,   192,   173,  1173,    19,    20,     3,   198,   175,   192, 
     2704     651,   652,   192,    18,   141,   198,     3,    22,  1490,   169, 
     2705     170,    65,    29,    65,    31,    22,   667,   194,   140,     5, 
     2706       6,     7,     8,     9,    10,    22,    12,    13,    14,    15, 
     2707      16,    17,   192,    19,    20,    21,    22,    23,   192,    29, 
     2708     691,    31,   173,    18,   198,   192,   838,    22,   192,   175, 
     2709       5,   198,   183,   185,   186,   143,   188,   708,   192,   194, 
     2710     192,  1000,   194,   999,   198,   999,   573,   198,   194,   195, 
     2711      24,   738,   192,   580,   200,    29,   727,    31,   198,   113, 
     2712     100,   101,   102,   194,   189,   736,   194,   738,   193,   200, 
     2713     779,   194,    28,    29,    30,    31,   603,   889,    88,   192, 
     2714     125,    37,   195,   193,   194,   612,  1235,  1461,   201,   192, 
     2715     902,   131,   868,   860,   192,   198,     4,   195,  1669,   139, 
     2716     158,   159,   160,   201,   819,   115,   633,   919,   635,   636, 
     2717     637,   782,   194,   925,   823,   824,  1234,   826,   192,   194, 
     2718     192,     0,     1,    38,   198,   200,   198,   939,   192,   194, 
     2719     194,   176,    88,   933,   125,  1078,   105,   933,   107,   950, 
     2720     185,   186,   194,   188,   189,    24,   194,   192,   193,    28, 
     2721      29,    30,    31,  1454,   841,  1193,   113,  1193,    37,   115, 
     2722    1210,  1023,  1212,   173,    29,  1027,    31,   875,   192,  1123, 
     2723     841,   195,   192,   183,    48,   195,  1027,  1023,   887,   431, 
     2724     194,  1027,   434,  1045,   193,   176,    65,  1123,   875,   195, 
     2725     196,   197,    21,    22,   185,   186,   194,   188,   194,  1045, 
     2726     201,   192,     6,     7,   875,   892,  1160,   173,   174,    88, 
     2727       5,   898,   899,   900,   901,   201,   903,   173,   905,   906, 
     2728     175,   892,  1330,    88,  1160,    23,  1334,   898,   899,   900, 
     2729     901,   940,   903,   938,   905,   906,   115,   764,    10,  1101, 
     2730     192,   193,   198,    12,    13,    14,    15,    16,    17,    18, 
     2731     115,   938,  1023,   168,     9,  1101,  1027,   194,   929,  1040, 
     2732      68,    69,    70,   194,    72,   952,   953,   938,   168,    52, 
     2733     185,   186,   192,   188,  1045,   173,   174,   192,   193,   105, 
     2734     106,   952,   953,    40,    41,   185,   186,   192,   188,  1101, 
     2735       4,  1000,   192,   193,   173,    24,  1239,   176,   177,   178, 
     2736     179,  1618,  1619,   192,  1422,   184,    62,    63,   173,   211, 
     2737     212,   190,   999,  1022,  1422,   192,     5,   988,   183,   198, 
     2738     332,   333,   192,    65,    66,  1481,   147,  1139,   999,    29, 
     2739    1101,    31,   200,   169,   185,   186,    65,   188,    80,   105, 
     2740    1027,   192,  1154,    85,   195,   194,   192,  1284,   875,    91, 
     2741    1095,  1022,  1023,   194,   151,  1026,  1027,   195,  1396,  1171, 
     2742    1396,   185,   186,   890,   188,     5,     5,  1242,   192,  1040, 
     2743     195,   195,   108,     5,  1045,   111,  1330,   904,     3,   175, 
     2744    1334,  1243,    19,    20,   175,   121,   175,   123,    88,   195, 
     2745     126,   127,  1243,   162,   163,   164,   165,  1243,   203,   175, 
     2746    1105,    25,   195,   195,   140,  1092,   192,  1078,     5,   145, 
     2747     194,   938,    22,   192,   192,   115,  1125,     3,  1105,   161, 
     2748     195,  1092,     3,   950,   194,   111,     4,   196,   197,   171, 
     2749    1101,   195,  1103,   195,  1105,   176,   177,   178,   179,   168, 
     2750     174,   192,   155,   184,     3,  1296,     3,   192,  1604,   190, 
     2751     194,   192,  1123,   200,     4,  1142,   185,   186,   195,   188, 
     2752       4,  1242,   114,   192,   193,   135,  1422,   194,  1422,   198, 
     2753     192,  1142,  1243,   173,   183,   195,   100,   101,   102,   195, 
     2754     183,     5,  1169,   183,   194,  1193,  1173,   195,   125,  1160, 
     2755     192,   176,   177,   178,   179,   192,    39,   195,  1169,   184, 
     2756     183,   183,  1173,     3,   175,   190,  1193,   131,    18,   133, 
     2757     134,   135,     5,   150,   138,   139,     3,   141,   142,   194, 
     2758      22,   194,  1193,     3,   192,   194,    21,  1236,   194,   166, 
     2759     167,    21,  1203,  1204,   185,   186,   195,   188,   280,   176, 
     2760     104,   192,     3,   285,   195,   194,   288,   194,   185,   186, 
     2761     194,   188,   189,   295,     3,   192,   193,   194,   194,   185, 
     2762     186,     3,   188,  1234,   192,   202,   192,   309,   194,   192, 
     2763     312,  1383,  1243,   185,   186,   147,   188,  1286,  1105,   194, 
     2764     192,   170,  1291,   194,   140,   155,  1295,     3,   125,  1298, 
     2765     115,   103,     3,   194,   185,   186,   108,   188,  1307,   111, 
     2766       5,   192,     5,  1721,     3,    30,     3,   349,   350,   121, 
     2767     352,   123,     5,   150,   126,   127,   195,  1288,   195,   361, 
     2768     195,   363,    31,    29,   185,   186,  1734,   188,   140,   166, 
     2769     167,   192,   374,   145,   376,   195,     3,   195,     3,   176, 
     2770     195,     5,   104,  1330,     4,  1172,   195,  1334,   185,   186, 
     2771    1359,   188,   189,   103,   396,   192,   193,   194,   108,  1330, 
     2772     194,   111,   194,  1334,  1351,   202,  1193,    21,    20,   192, 
     2773       4,   121,     4,   123,   195,   192,   126,   127,   192,   195, 
     2774    1351,  1368,   195,     5,   195,     3,   195,     3,  1396,   195, 
     2775     140,     4,    47,    95,  1575,   145,    74,  1368,   195,  1574, 
     2776       5,  1388,     5,   195,   200,     4,     3,   192,   104,  1396, 
     2777     194,  1420,   195,   195,   200,   194,  1591,  1388,   192,   195, 
     2778     104,     4,     3,   147,     4,  1396,     5,     3,     5,     3, 
     2779     194,  1440,   474,    26,     5,  1422,   478,     5,     3,   195, 
     2780      22,     3,  1269,     4,     3,     3,    21,     3,   490,     4, 
     2781       3,  1422,   195,     3,   195,  1464,     4,   195,   195,   195, 
     2782     194,   192,   192,   192,     3,   507,   508,   195,     4,   511, 
     2783       5,   192,     3,   192,     4,   517,    11,    21,     5,     3, 
     2784    1734,   195,  1490,  1454,    19,    20,     4,    22,   195,    22, 
     2785    1461,   195,   534,  1574,  1481,   195,     3,   195,   540,     3, 
     2786     195,   195,   194,  1490,   195,   195,   548,     3,   195,     4, 
     2787    1591,     4,     3,  1616,     4,   557,  1745,    49,   933,  1490, 
     2788    1023,  1526,    20,   565,  1023,     4,   418,  1296,   570,   101, 
     2789    1539,  1287,    11,  1240,   733,   527,  1464,  1284,    11,  1526, 
     2790      19,    20,    21,   427,  1023,  1454,  1453,   589,  1723,  1536, 
     2791    1288,  1378,   803,  1067,   255,  1526,  1583,   411,  1440,  1584, 
     2792    1547,  1589,   805,   504,   806,  1536,  1575,   736,  1027,  1396, 
     2793    1023,   997,  1581,  1582,  1583,   819,  1547,    52,  1078,  1304, 
     2794    1589,  1721,    57,  1234,   467,   906,  1590,    62,    63,  1010, 
     2795     125,   567,  1601,  1602,   573,    74,  1040,  1537,  1547,  1123, 
     2796    1368,  1539,  1548,   454,   456,  1359,  1615,   453,   650,   573, 
     2797     269,   458,   779,   461,   824,   150,    95,  1604,     4,   661, 
     2798      95,   578,   826,   333,   821,    11,   101,   573,   670,   392, 
     2799     105,   166,   167,    19,    20,    21,   324,  1398,   573,   632, 
     2800     578,   176,  1723,   573,  1139,  1616,   125,   896,   387,   614, 
     2801     185,   186,   573,   188,   189,  1383,   573,   192,   193,   194, 
     2802     573,   950,   634,  1490,  1669,   953,  1388,   202,  1461,  1678, 
     2803      11,   150,   925,   573,   573,   573,  1154,   339,    19,    20, 
     2804     919,    54,  1669,  1713,  1693,   286,   475,   166,   167,   651, 
     2805     725,   573,  1204,   708,  1203,   737,    26,   176,  1669,  1526, 
     2806     175,  1208,  1414,  1207,   671,    -1,   185,   186,  1411,   188, 
     2807     189,  1416,  1103,   192,   193,   194,    -1,    -1,   760,    -1, 
     2808     762,    -1,    -1,   202,    -1,    -1,    -1,    -1,    -1,    -1, 
     2809    1739,    -1,    -1,  1742,    -1,   777,     4,    -1,    -1,   125, 
     2810      -1,   783,    -1,    11,    -1,    -1,  1755,  1734,    -1,    -1, 
     2811    1721,    19,    20,    21,    95,    -1,    -1,    -1,    -1,    -1, 
     2812      -1,    -1,    -1,  1734,   150,    -1,    -1,     4,    -1,   155, 
     2813      -1,    -1,    -1,    -1,    11,   817,    -1,    -1,    -1,    -1, 
     2814     166,   167,    19,    20,   125,    -1,    -1,   829,    -1,    -1, 
     2815     176,    -1,   834,    -1,   836,    -1,    -1,    -1,    -1,   185, 
     2816     186,    -1,   188,   189,    -1,    -1,   192,   193,   194,   150, 
     2817      -1,    -1,     4,    -1,    -1,    -1,   202,    -1,    -1,    11, 
     2818      -1,    -1,   864,    -1,    -1,   166,   167,    19,    20,    -1, 
     2819      -1,    -1,    -1,   875,    -1,   176,    -1,    -1,    -1,    -1, 
     2820      -1,    -1,  1669,  1670,   185,   186,    -1,   188,   189,   324, 
     2821      -1,   192,   193,   194,    -1,    -1,   331,   125,    -1,    -1, 
     2822       4,   202,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1, 
     2823      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,   920,    -1, 
     2824      -1,    -1,   150,    -1,   926,    -1,    -1,    -1,   125,    -1, 
     2825      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   166,   167, 
     2826      -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,   176,    -1, 
     2827      -1,   386,   387,   150,    -1,   390,    -1,   185,   186,   961, 
     2828     188,   189,   964,   965,   192,   193,   194,    -1,    -1,   166, 
     2829     167,    -1,    -1,   125,   202,    -1,    -1,    -1,     4,   176, 
     2830      -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,   185,   186, 
     2831      -1,   188,   189,    19,    20,   192,   193,   194,   150,    -1, 
     2832      -1,    -1,    -1,    -1,    -1,   202,    -1,    -1,    -1,    -1, 
     2833      -1,     4,    -1,    -1,   166,   167,    -1,    -1,    11,    -1, 
     2834      -1,   125,    -1,    -1,   176,    -1,    19,    20,    -1,    -1, 
     2835      -1,    -1,    -1,   185,   186,    -1,   188,   189,    -1,    -1, 
     2836     192,   193,   194,    -1,    -1,  1047,   150,    -1,  1050,    -1, 
     2837     202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1061, 
     2838      -1,  1063,   166,   167,    -1,    -1,  1068,    -1,   503,   504, 
     2839     505,    -1,   176,    -1,  1076,  1077,    -1,    -1,    -1,    -1, 
     2840      -1,   185,   186,    -1,   188,   189,    95,    -1,   192,   193, 
     2841     194,    -1,    -1,  1095,  1096,    -1,   105,    -1,   202,   125, 
     2842       5,    -1,    -1,    -1,    -1,    -1,    11,  1109,    -1,  1111, 
     2843      -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,    -1, 
     2844    1122,    -1,    -1,    -1,   150,    -1,    -1,    -1,   160,   564, 
     2845      -1,    -1,   125,    -1,    -1,    -1,    -1,    -1,   573,   171, 
     2846     166,   167,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2847     176,    -1,    -1,    -1,    -1,    -1,    -1,   150,    -1,   185, 
     2848     186,    -1,   188,   189,    -1,    -1,   192,   193,   194,   604, 
     2849     605,    -1,    -1,   166,   167,    -1,   202,  1179,   613,   614, 
     2850      -1,  1183,    -1,   176,    -1,  1187,    -1,  1189,  1190,    -1, 
     2851      -1,    -1,   185,   186,    -1,   188,   189,   632,  1200,   192, 
     2852     193,   194,   234,   638,    -1,    -1,    -1,    -1,   240,   202, 
     2853      -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,    -1,    -1, 
     2854     125,    -1,    -1,   255,    -1,    -1,  1228,    -1,    -1,    -1, 
     2855      -1,    -1,   667,  1235,    -1,    -1,  1238,     4,    -1,  1241, 
     2856      -1,    -1,    -1,    -1,    11,   150,    -1,    -1,    -1,    -1, 
     2857      -1,    -1,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1, 
     2858      -1,   166,   167,    -1,  1266,    -1,    -1,    -1,    -1,    -1, 
     2859      -1,   176,    -1,   708,    -1,    -1,    -1,    -1,   310,   311, 
     2860     185,   186,    -1,   188,   189,    -1,    -1,   192,   193,   194, 
     2861      -1,    -1,   324,    -1,    -1,   327,    -1,   202,    -1,    -1, 
     2862      -1,    -1,    -1,   738,    -1,    -1,  1308,    -1,  1310,    -1, 
     2863      -1,   343,   344,    -1,    -1,   324,     4,    -1,    -1,    -1, 
     2864      -1,    -1,    -1,    11,    -1,    -1,    -1,   359,    -1,    -1, 
     2865     362,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1,  1341, 
     2866      -1,    -1,    -1,    -1,    -1,  1347,    -1,    -1,    -1,    -1, 
     2867      -1,    -1,   384,    -1,   386,   387,   388,    -1,   125,    -1, 
     2868      -1,  1363,    -1,    -1,    -1,  1367,    -1,    -1,    -1,    -1, 
     2869      -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   411, 
     2870      -1,    -1,  1384,   150,  1386,    -1,    -1,  1389,    -1,  1391, 
     2871    1392,    -1,  1394,    -1,    -1,    -1,    -1,    -1,    -1,   166, 
     2872     167,    -1,    -1,  1405,    -1,    -1,   841,    -1,    -1,   176, 
     2873      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186, 
     2874      -1,   188,   189,    -1,    -1,   192,   193,   194,    -1,    -1, 
     2875      -1,    -1,    -1,    -1,    -1,   202,     4,   125,    -1,    -1, 
     2876     875,    -1,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1, 
     2877      -1,    19,    20,    -1,    -1,    -1,    -1,   892,    -1,    -1, 
     2878      -1,  1463,   150,   898,   899,   900,   901,    -1,   903,    -1, 
     2879     905,   906,    -1,    -1,   506,    -1,    -1,   509,   166,   167, 
     2880      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   176,   521, 
     2881      -1,    -1,    -1,    -1,   503,   504,    -1,   185,   186,    -1, 
     2882     188,   189,    -1,   938,   192,   193,   194,    -1,    19,    20, 
     2883      -1,    -1,    -1,    -1,   202,   950,    -1,   952,   953,    -1, 
     2884      -1,    -1,    -1,    -1,    -1,  1527,    -1,    -1,    -1,    -1, 
     2885      -1,  1533,    -1,    -1,    -1,    -1,  1538,    -1,    -1,    -1, 
     2886      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1549,  1550,  1551, 
     2887      -1,    -1,    -1,    -1,    -1,   564,    -1,   125,  1560,     5, 
     2888      -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,  1570,    -1, 
     2889      -1,  1573,    -1,    19,    20,    -1,    -1,    -1,    -1,    -1, 
     2890      -1,    -1,   150,    -1,    -1,    -1,    -1,    -1,  1023,    -1, 
     2891      -1,  1026,  1027,    -1,    -1,   604,   605,    -1,   166,   167, 
     2892      -1,   633,    -1,    -1,   613,   614,    -1,    -1,   176,    -1, 
     2893      -1,    -1,    -1,    -1,   125,    -1,     5,   185,   186,    -1, 
     2894     188,   189,    11,   632,   192,   193,   194,    -1,    -1,   638, 
     2895      19,    20,    -1,    -1,   202,   667,    -1,    11,    -1,    -1, 
     2896      -1,    -1,    -1,   652,  1646,    19,    20,    -1,    -1,    -1, 
     2897      -1,    -1,    -1,    -1,   686,   166,   167,  1092,   667,    -1, 
     2898      -1,  1663,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1, 
     2899    1105,    -1,  1674,    -1,   185,   186,   708,   188,   189,   125, 
     2900      -1,   192,   193,   194,    -1,    59,    -1,    -1,   720,    -1, 
     2901     722,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,   708, 
     2902      -1,    -1,    -1,    -1,   150,    -1,    -1,  1142,    -1,    -1, 
     2903    1712,    -1,    -1,  1715,    -1,    -1,    -1,    -1,    -1,    -1, 
     2904     166,   167,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   738, 
     2905     176,   763,    -1,   765,  1169,    -1,   125,    -1,  1173,   185, 
     2906     186,   773,   188,   189,   776,    -1,   192,   193,   194,    -1, 
     2907      -1,   125,    -1,    -1,    -1,    -1,   202,    -1,  1193,    -1, 
     2908      -1,   150,    -1,    -1,    -1,    -1,    -1,    -1,  1203,  1204, 
     2909      -1,    -1,    -1,    -1,    -1,    -1,   150,   166,   167,    -1, 
     2910      -1,    -1,    -1,    -1,    38,    -1,    -1,   176,    -1,    -1, 
     2911      -1,    -1,   166,   167,    -1,    -1,   185,   186,    -1,   188, 
     2912     189,    -1,   176,   192,   193,   194,    -1,    -1,    -1,    -1, 
     2913      -1,   185,   186,   202,   188,   189,    -1,    -1,   192,   193, 
     2914     194,    -1,    -1,    -1,    -1,    79,    -1,    -1,   202,    -1, 
     2915      -1,   863,   841,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2916      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2917     104,   883,   884,   885,   886,   109,    -1,    -1,    -1,   891, 
     2918      -1,    -1,   116,    -1,   896,   119,   120,    -1,   122,    -1, 
     2919      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1, 
     2920      -1,    -1,    -1,   892,    -1,    -1,    -1,    -1,    -1,   898, 
     2921     899,   900,   901,    -1,   903,    -1,   905,   906,    -1,   931, 
     2922     154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2923      -1,    -1,    -1,    -1,   168,    -1,  1351,    -1,   950,   951, 
     2924      -1,    -1,    -1,    -1,    -1,   957,    -1,    -1,   960,    -1, 
     2925      -1,   185,   186,  1368,   188,    -1,    -1,    -1,   192,   193, 
     2926      -1,   950,    -1,   952,   953,    -1,    -1,    -1,    -1,    -1, 
     2927      -1,    -1,    -1,  1388,    -1,    -1,   988,    -1,    -1,    -1, 
     2928      -1,  1396,    -1,    -1,   996,    -1,     6,     7,    -1,     9, 
     2929      10,    -1,    12,    13,    14,    15,    16,    17,    18,    19, 
     2930      20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1, 
     2931      -1,    -1,    -1,    -1,  1026,    -1,    -1,    -1,    -1,    -1, 
     2932      -1,    -1,    -1,  1035,    -1,    -1,    -1,  1039,  1040,    -1, 
     2933    1042,  1043,    -1,  1045,    -1,    -1,    -1,  1026,  1453,  1454, 
     2934       6,     7,    -1,     9,    10,    65,    12,    13,    14,    15, 
     2935      16,    17,    18,    19,    20,    21,    22,    23,    24,    -1, 
     2936      -1,    -1,    -1,    -1,    -1,    -1,  1481,    -1,    -1,    -1, 
     2937      -1,    -1,    -1,    -1,    -1,  1490,    -1,    -1,    -1,    -1, 
     2938      -1,    -1,    -1,    -1,    -1,    -1,  1098,    -1,    -1,  1101, 
     2939      -1,    -1,  1104,    -1,    -1,    -1,    -1,    -1,    -1,    65, 
     2940      -1,    -1,    -1,  1092,    -1,    -1,    -1,    -1,    11,    -1, 
     2941      -1,  1526,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1, 
     2942      -1,  1536,  1134,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2943      -1,    -1,  1547,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2944      -1,    -1,   162,   163,   164,   165,    -1,    50,    -1,    52, 
     2945      53,    54,    55,  1142,    57,    -1,    59,    60,    -1,    -1, 
     2946      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,  1181, 
     2947      -1,    -1,    -1,   193,    -1,    -1,   196,   197,   198,    -1, 
     2948    1169,   201,  1194,    -1,  1173,    -1,    -1,    -1,    -1,  1604, 
     2949      -1,  1203,  1204,    -1,    11,    -1,   162,   163,   164,   165, 
     2950      -1,    -1,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1, 
     2951      -1,    -1,    -1,    -1,  1203,  1204,    -1,    -1,    -1,    -1, 
     2952      -1,  1233,   125,    -1,    -1,    -1,    -1,   193,   194,    -1, 
     2953     196,   197,   198,    50,   200,    -1,    -1,    54,    55,    56, 
     2954      57,    58,    59,    -1,    -1,    -1,    -1,   150,    -1,    66, 
     2955      67,    68,    -1,    -1,  1669,    -1,  1268,    -1,    -1,    -1, 
     2956    1272,    -1,    -1,   166,   167,    -1,    -1,  1279,    -1,    11, 
     2957      -1,    -1,    -1,   176,    -1,    -1,    -1,    19,    20,    21, 
     2958      -1,    -1,   185,   186,    -1,   188,   189,    -1,    -1,   192, 
     2959     193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   202, 
     2960      -1,  1313,    -1,    -1,    -1,    -1,    -1,    -1,   125,    51, 
     2961      -1,    -1,    -1,    -1,    -1,  1327,    -1,    59,    -1,    61, 
     2962      62,    63,    64,    -1,    66,    -1,    68,    -1,    -1,    -1, 
     2963      -1,    -1,    -1,   150,    -1,    -1,    -1,    -1,    -1,    -1, 
     2964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   166, 
     2965     167,    -1,    -1,  1365,    -1,    -1,    -1,    -1,    -1,   176, 
     2966      -1,    -1,  1351,    -1,    -1,  1377,    -1,  1379,   185,   186, 
     2967      -1,   188,   189,    -1,    -1,   192,   193,   194,    -1,  1368, 
     2968      -1,    -1,    -1,   125,    -1,   202,  1398,    -1,  1400,    -1, 
     2969      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1388, 
     2970      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   150,    -1, 
    22562971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2257       -1,    -1,    -1,    -1,    -1,   163,   164,   165,    -1,    -1, 
     2972      -1,    -1,    -1,    -1,   166,   167,   168,    -1,    11,    -1, 
     2973      -1,    -1,    -1,    -1,   176,    -1,    19,    20,    -1,    -1, 
     2974      -1,  1453,  1454,   185,   186,    -1,   188,   189,  1460,  1461, 
     2975     192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2976     202,    -1,    -1,    -1,  1453,  1454,    -1,    50,  1480,    52, 
     2977      -1,    54,    55,    -1,    57,    -1,    59,    60,    -1,    -1, 
     2978      -1,    -1,    11,    66,    -1,    68,    -1,    70,    -1,    -1, 
     2979      19,    20,    -1,  1505,  1506,  1507,  1508,  1509,  1510,  1511, 
     2980    1512,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521, 
     2981    1522,  1523,    -1,    -1,    11,    44,    -1,    -1,    -1,    -1, 
     2982      -1,    -1,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1, 
     2983      59,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68, 
     2984      69,    -1,   125,    -1,    -1,    -1,    -1,  1536,    -1,    -1, 
     2985      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1547,    -1, 
     2986      -1,    -1,    59,    -1,    -1,    -1,  1578,   150,    -1,    66, 
     2987      -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     2988      -1,   110,    -1,   166,   167,    -1,    11,    -1,    -1,    -1, 
     2989      -1,  1603,    -1,   176,    19,    20,   125,    -1,    -1,    -1, 
     2990      -1,    -1,   185,   186,    -1,   188,   189,    -1,  1620,   192, 
     2991     193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   202, 
     2992      -1,   150,    -1,    -1,    -1,  1637,  1638,   156,   125,    -1, 
     2993    1642,    -1,  1644,    58,    59,    -1,    -1,   166,   167,    -1, 
     2994      -1,    66,    -1,    68,    -1,    -1,    -1,   176,    -1,    -1, 
     2995      -1,    -1,    -1,   150,    -1,    -1,   185,   186,    11,   188, 
     2996     189,    -1,    -1,   192,   193,   194,    19,    20,    -1,   166, 
     2997     167,    24,    -1,   202,    -1,    -1,    -1,    -1,    -1,   176, 
     2998      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186, 
     2999    1702,   188,   189,    -1,    -1,   192,   193,   194,    11,    -1, 
     3000     125,    -1,    -1,    -1,    -1,   202,    19,    20,    -1,    -1, 
     3001      -1,    24,    65,    11,    -1,    -1,  1728,    -1,    -1,    -1, 
     3002      -1,    19,    20,    21,    -1,   150,    -1,    -1,    11,    -1, 
     3003      -1,  1743,    -1,  1745,  1746,    -1,    19,    20,    21,    -1, 
     3004    1752,   166,   167,    -1,    -1,  1757,    -1,    -1,    -1,    -1, 
     3005      -1,   176,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     3006     185,   186,    -1,   188,   189,    -1,    -1,   192,   193,   194, 
     3007      -1,    -1,   125,    -1,    -1,    -1,    -1,   202,    11,    -1, 
     3008      -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1, 
     3009      -1,    -1,    -1,    11,    -1,    -1,    -1,   150,    -1,    -1, 
     3010      -1,    19,    20,    21,    -1,    -1,    -1,    -1,    11,    -1, 
     3011      -1,    -1,   125,   166,   167,    -1,    19,    20,    21,    -1, 
     3012      -1,    -1,    -1,   176,    -1,    -1,    -1,   125,    -1,    -1, 
     3013      -1,    -1,   185,   186,    -1,   188,   189,   150,    -1,   192, 
     3014     193,   194,   125,    -1,    -1,   198,    -1,    -1,    -1,   202, 
     3015      -1,    -1,   150,   166,   167,    -1,    -1,    -1,    -1,    -1, 
     3016      -1,    -1,    -1,   176,    -1,    -1,    -1,   150,   166,   167, 
     3017     168,    -1,   185,   186,    -1,   188,   189,    -1,   176,   192, 
     3018     193,   194,    -1,   166,   167,   198,    -1,   185,   186,   202, 
     3019     188,   189,   125,   176,   192,   193,   194,    -1,    -1,    -1, 
     3020      -1,    -1,   185,   186,   202,   188,   189,   125,    -1,   192, 
     3021     193,   194,    11,    -1,    -1,    -1,    -1,   150,    -1,   202, 
     3022      19,    20,   125,    -1,    -1,    -1,    -1,    11,    -1,    -1, 
     3023      -1,    -1,   150,   166,   167,    19,    20,    -1,    -1,    -1, 
     3024      -1,    -1,    11,   176,    -1,    -1,    -1,   150,   166,   167, 
     3025      19,    20,   185,   186,    -1,   188,   189,    11,   176,   192, 
     3026     193,   194,   195,   166,   167,    19,    20,   185,   186,   202, 
     3027     188,   189,    -1,   176,   192,   193,   194,    -1,    -1,    -1, 
     3028      -1,    -1,   185,   186,   202,   188,   189,    -1,    -1,   192, 
     3029     193,   194,    -1,    -1,    -1,    -1,    -1,    11,    -1,   202, 
     3030      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1, 
     3031      -1,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     3032      19,    20,    -1,    -1,    -1,    -1,   125,    11,    -1,    -1, 
     3033      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1, 
     3034      -1,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     3035      -1,   150,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1, 
     3036      -1,    -1,    -1,    -1,    -1,    -1,   150,   166,   167,    -1, 
     3037      -1,   125,    -1,    -1,    -1,    -1,    -1,   176,    -1,    -1, 
     3038      -1,   150,   166,   167,    -1,    -1,   185,   186,    -1,   188, 
     3039     189,    -1,   176,   192,   193,   194,   150,   166,   167,    -1, 
     3040      -1,   185,   186,   202,   188,   189,    -1,   176,   192,   193, 
     3041     194,   125,   166,   167,    -1,    -1,   185,   186,   202,   188, 
     3042     189,    -1,   176,   192,   193,   194,   125,    -1,    -1,    -1, 
     3043      -1,   185,   186,   202,   188,   189,   150,    -1,   192,   193, 
     3044     194,   125,    -1,    -1,    38,    -1,    -1,    -1,   202,    -1, 
     3045      -1,   150,   166,   167,    25,    -1,    -1,    -1,    -1,    -1, 
     3046      -1,    32,   176,    -1,    -1,    -1,   150,   166,   167,    -1, 
     3047      -1,   185,   186,    -1,   188,   189,    47,   176,   192,   193, 
     3048     194,    -1,   166,   167,    -1,    -1,   185,   186,   202,   188, 
     3049     189,    -1,   176,   192,   193,   194,    -1,    -1,    -1,    -1, 
     3050      -1,   185,   186,   202,   188,   189,    -1,    -1,   192,   193, 
     3051     194,    -1,    83,    -1,    -1,   109,    -1,    -1,   202,    -1, 
     3052     114,    -1,    -1,    -1,    -1,   119,   120,    -1,   122,   100, 
     3053     101,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1, 
     3054      -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    22583055      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2259       -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165,     5, 
    2260        6,     7,     8,     9,    10,    -1,    12,    13,    14,    15, 
    2261       16,    17,    -1,    19,    20,    21,    22,    23,     5,     6, 
    2262        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2263       17,    -1,    19,    20,    21,    22,    23,     5,     6,     7, 
    2264        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2265       -1,    19,    20,    21,    22,    23,    -1,    -1,    -1,   164, 
    2266      165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2267       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164, 
    2268      165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2269       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164, 
    2270      165,     5,     6,     7,     8,     9,    10,    -1,    12,    13, 
    2271       14,    15,    16,    17,    -1,    19,    20,    21,    22,    23, 
    2272        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2273       15,    16,    17,    -1,    19,    20,    21,    22,    23,    -1, 
     3056     131,    -1,   133,    32,   135,   136,    -1,    -1,    -1,    38, 
     3057     141,    -1,   143,    -1,   168,    -1,    -1,   148,    -1,    48, 
     3058      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     3059      -1,   185,   186,    -1,   188,    -1,    -1,   168,   192,   193, 
     3060     171,   172,   173,    -1,    -1,   176,   177,   178,   179,    -1, 
     3061      79,    -1,    -1,   184,   185,   186,   187,   188,    -1,   190, 
     3062      -1,   192,   193,    -1,    -1,    94,    -1,    -1,    -1,    -1, 
     3063      -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,    -1, 
     3064     109,    -1,    -1,   112,    -1,   114,    -1,   116,    32,    -1, 
     3065     119,   120,    -1,   122,    38,    -1,   125,    -1,    -1,   128, 
     3066     129,   130,    -1,   132,    -1,    49,    -1,    -1,    -1,    -1, 
     3067      -1,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1, 
     3068      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,    49,    -1, 
     3069      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,   168, 
     3070     169,   170,   171,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
     3071      94,    -1,    -1,    -1,    -1,    -1,   185,   186,    79,   188, 
     3072      -1,    -1,    -1,   192,   193,   109,    -1,    -1,   112,   113, 
     3073      -1,    -1,   116,    94,    -1,   119,   120,    -1,   122,    -1, 
     3074      -1,   125,    -1,    -1,   128,   129,   130,    -1,   109,    -1, 
     3075      -1,   112,   113,    -1,    -1,   116,    -1,    -1,   119,   120, 
     3076      -1,   122,    38,    -1,   125,    -1,    -1,   128,   129,   130, 
     3077     154,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1, 
     3078      -1,    -1,    -1,    -1,   168,    38,    -1,   171,    -1,    -1, 
     3079      -1,    -1,    -1,   154,    -1,    -1,    -1,    -1,    -1,   183, 
     3080      -1,   185,   186,    79,   188,    -1,    -1,   168,   192,   193, 
     3081     171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1, 
     3082      -1,    -1,   183,    -1,   185,   186,    79,   188,    -1,    -1, 
     3083      -1,   192,   193,   109,    -1,    -1,   112,   113,    -1,    -1, 
     3084     116,    94,    -1,   119,   120,    -1,   122,    -1,    -1,   125, 
     3085      -1,    -1,   128,   129,   130,    -1,   109,    -1,    -1,    -1, 
     3086      -1,    -1,    -1,   116,    -1,    -1,   119,   120,    -1,   122, 
     3087      -1,    -1,   125,    -1,    -1,   128,   129,   130,   154,    -1, 
    22743088      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2275       -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165, 
     3089      -1,    -1,   168,    -1,    -1,   171,    -1,    -1,    -1,    -1, 
     3090      -1,   154,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185, 
     3091     186,    -1,   188,    -1,    -1,   168,   192,   193,    -1,    -1, 
    22763092      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2277       -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165,    -1, 
    2278       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2279       -1,    -1,    -1,    -1,    -1,   163,   164,   165,     5,     6, 
    2280        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2281       17,    -1,    19,    20,    21,    22,    23,     5,     6,     7, 
    2282        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2283       -1,    19,    20,    21,    22,    23,     5,     6,     7,     8, 
    2284        9,    10,    -1,    12,    13,    14,    15,    16,    17,    -1, 
    2285       19,    20,    21,    22,    23,    -1,    -1,    -1,    -1,   163, 
    2286      164,   165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2287       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,   164, 
    2288      165,     5,     6,     7,     8,     9,    10,    -1,    12,    13, 
    2289       14,    15,    16,    17,    -1,    19,    20,    21,    22,    23, 
    2290        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2291       15,    16,    17,    -1,    19,    20,    21,    22,    23,     5, 
    2292        6,     7,     8,     9,    10,    -1,    12,    13,    14,    15, 
    2293       16,    17,    -1,    19,    20,    21,    22,    23,    -1,    -1, 
    2294       -1,    -1,    -1,    -1,    33,    34,    -1,    -1,    -1,    -1, 
    2295       39,    40,    41,    42,    43,    -1,   163,   164,   165,    -1, 
    2296       -1,    -1,    -1,    -1,    -1,    54,    55,    56,    57,    58, 
    2297       59,    60,   160,    62,    63,    64,   164,   165,    67,    68, 
    2298       69,    -1,    71,    72,    73,    74,    75,    -1,    77,    -1, 
    2299       -1,    -1,    -1,    -1,   163,   164,   165,     5,     6,     7, 
    2300        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2301       -1,    19,    20,    21,    22,    23,     5,     6,     7,     8, 
    2302        9,    10,    -1,    12,    13,    14,    15,    16,    17,    -1, 
    2303       19,    20,    21,    22,    23,    -1,    -1,    -1,    -1,   163, 
    2304      164,   165,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138, 
    2305      139,    -1,    -1,    -1,    -1,   144,    -1,    -1,   163,   164, 
    2306      165,    -1,    -1,    -1,   153,   154,    -1,   156,   157,    -1, 
    2307       -1,   160,   161,   162,    -1,    -1,    -1,   163,   164,   165, 
    2308        5,     6,     7,     8,     9,    10,    -1,    12,    13,    14, 
    2309       15,    16,    17,    -1,    19,    20,    21,    22,    23,     5, 
    2310        6,     7,     8,     9,    10,    -1,    12,    13,    14,    15, 
    2311       16,    17,    -1,    19,    20,    21,    22,    23,     5,     6, 
    2312        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2313       17,    -1,    19,    20,    21,    22,    23,    -1,    -1,    -1, 
    2314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2315       -1,    -1,    -1,    -1,    -1,   163,   164,   165,    -1,    -1, 
    2316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2317       -1,    -1,    -1,    -1,   163,   164,   165,     5,     6,     7, 
    2318        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2319       -1,    19,    20,    21,    22,    23,     5,     6,     7,     8, 
    2320        9,    10,    -1,    12,    13,    14,    15,    16,    17,    -1, 
    2321       19,    20,    21,    22,    23,     5,     6,     7,     8,     9, 
    2322       10,    -1,    12,    13,    14,    15,    16,    17,    -1,    19, 
    2323       20,    21,    22,    23,    -1,    -1,    -1,    -1,   163,   164, 
    2324      165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2325       -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165, 
    2326       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2327       -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165,     5, 
    2328        6,     7,     8,     9,    10,    -1,    12,    13,    14,    15, 
    2329       16,    17,    -1,    19,    20,    21,    22,    23,     5,     6, 
    2330        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2331       17,    -1,    19,    20,    21,    22,    23,    -1,    -1,    -1, 
    2332       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2333       -1,    -1,    -1,    -1,    -1,   163,   164,   165,    -1,    -1, 
    2334       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2335       -1,    -1,    -1,    -1,   163,   164,   165,    -1,    -1,    -1, 
    2336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2337       -1,    -1,    -1,   163,   164,   165,     5,     6,     7,     8, 
    2338        9,    10,    -1,    12,    13,    14,    15,    16,    17,    -1, 
    2339       19,    20,    21,    22,    23,     5,     6,     7,     8,     9, 
    2340       10,    -1,    12,    13,    14,    15,    16,    17,    -1,    19, 
    2341       20,    21,    22,    23,     5,     6,     7,     8,     9,    10, 
    2342       -1,    12,    13,    14,    15,    16,    17,    -1,    19,    20, 
    2343       21,    22,    23,    -1,    -1,    -1,    -1,   163,   164,   165, 
    2344       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2345       -1,    -1,    -1,    -1,    -1,    -1,   163,   164,   165,     5, 
    2346        6,     7,     8,     9,    10,    -1,    12,    13,    14,    15, 
    2347       16,    17,    -1,    19,    20,    21,    22,    23,     5,     6, 
    2348        7,     8,     9,    10,    -1,    12,    13,    14,    15,    16, 
    2349       17,    -1,    19,    20,    21,    22,    23,     5,     6,     7, 
    2350        8,     9,    10,    -1,    12,    13,    14,    15,    16,    17, 
    2351       -1,    19,    20,    21,    22,    23,    -1,    -1,    -1,    -1, 
    2352       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2353       -1,    -1,    -1,    -1,   163,   164,   165,    -1,    -1,    -1, 
    2354       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2355       -1,    -1,    -1,   163,   164,   165,    -1,    -1,    -1,    -1, 
    2356       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2357       -1,    -1,   163,   164,   165,     5,     6,     7,     8,     9, 
    2358       10,    -1,    12,    13,    14,    15,    16,    17,    -1,    19, 
    2359       20,    21,    22,    23,    -1,    -1,    -1,    -1,    -1,    -1, 
    2360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2361       -1,    -1,    -1,    -1,    -1,     4,    -1,   163,   164,   165, 
    2362       -1,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2363       19,    20,    21,    -1,    -1,    -1,   163,   164,   165,    -1, 
    2364       -1,    -1,    -1,    -1,    33,    34,    -1,    -1,    -1,    -1, 
    2365       39,    40,    41,    42,    43,   163,   164,   165,    -1,    -1, 
    2366       -1,    -1,    -1,    -1,    -1,    54,    55,    56,    57,    58, 
    2367       59,    60,    -1,    62,    63,    64,    -1,    -1,    67,    68, 
    2368       69,    -1,    71,    72,    73,    74,    75,    34,    77,    -1, 
    2369       -1,    -1,    39,    40,    -1,    42,    43,    -1,    -1,    -1, 
    2370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    56, 
    2371       57,    58,    59,    60,    -1,    62,    63,    64,    -1,    -1, 
    2372       67,    68,    69,    -1,     4,    72,    73,    74,    75,    -1, 
    2373       77,    11,    -1,    -1,   164,   165,   125,    -1,    -1,    19, 
    2374       20,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138, 
    2375      139,    -1,    -1,    33,    34,   144,    -1,    -1,    -1,    39, 
    2376       40,    41,    42,    43,   153,   154,    -1,   156,   157,    -1, 
    2377       -1,   160,   161,   162,    54,    55,    56,    57,    58,    59, 
    2378       60,    -1,    62,    63,    64,    -1,    -1,    67,    68,    69, 
    2379       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    -1, 
    2380       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2381       -1,    -1,    -1,   160,    -1,    -1,    -1,    -1,    -1,    -1, 
    2382       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2383       -1,    -1,    -1,     4,    -1,    -1,    -1,    -1,    -1,    -1, 
    2384       11,    -1,    -1,    -1,    -1,   125,    -1,    -1,    19,    20, 
    2385       -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138,   139, 
    2386       -1,    -1,    33,    34,   144,    -1,    -1,    -1,    39,    40, 
    2387       41,    42,    43,   153,   154,    -1,   156,   157,    -1,    -1, 
    2388      160,   161,   162,    54,    55,    56,    57,    58,    59,    60, 
    2389       -1,    62,    63,    64,    -1,    -1,    67,    68,    69,    -1, 
    2390       71,    72,    73,    74,    75,    -1,    77,    -1,    -1,    -1, 
    2391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2393       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2394       -1,    -1,     4,    -1,    -1,    -1,    -1,    -1,    -1,    11, 
    2395       -1,    -1,    -1,    -1,   125,    -1,    -1,    19,    20,    -1, 
    2396       -1,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,    -1, 
    2397       -1,    33,    34,   144,    -1,    -1,    -1,    39,    40,    41, 
    2398       42,    43,   153,   154,    -1,   156,   157,    -1,    -1,   160, 
    2399      161,   162,    54,    55,    56,    57,    58,    59,    60,    -1, 
    2400       62,    63,    64,    -1,    -1,    67,    68,    69,    -1,    71, 
    2401       72,    73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1, 
    2402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2403       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2404       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2405       -1,    -1,     5,    -1,    -1,    -1,    -1,    -1,    11,    -1, 
    2406       -1,    -1,    -1,   125,    -1,    -1,    19,    20,    21,    -1, 
    2407      132,    -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1, 
    2408       33,    34,   144,    -1,    -1,    -1,    39,    40,    41,    42, 
    2409       43,   153,   154,    -1,   156,   157,    -1,    -1,   160,   161, 
    2410      162,    54,    55,    56,    57,    58,    59,    60,    -1,    62, 
    2411       63,    64,    -1,    -1,    67,    68,    69,    -1,    71,    72, 
    2412       73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1, 
    2413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2416       -1,     5,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1, 
    2417       -1,    -1,   125,    -1,    -1,    19,    20,    -1,    22,   132, 
    2418       -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    33, 
    2419       34,   144,    -1,    -1,    -1,    39,    40,    41,    42,    43, 
    2420      153,   154,    -1,   156,   157,    -1,    -1,   160,   161,   162, 
    2421       54,    55,    56,    57,    58,    59,    60,    -1,    62,    63, 
    2422       64,    -1,    -1,    67,    68,    69,    -1,    71,    72,    73, 
    2423       74,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1, 
    2424       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2425       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2427        5,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1, 
    2428       -1,   125,    -1,    -1,    19,    20,    21,    -1,   132,    -1, 
    2429       -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    33,    34, 
    2430      144,    -1,    -1,    -1,    39,    40,    41,    42,    43,   153, 
    2431      154,    -1,   156,   157,    -1,    -1,   160,   161,   162,    54, 
    2432       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64, 
    2433       -1,    -1,    67,    68,    69,    -1,    71,    72,    73,    74, 
    2434       75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5, 
    2438       -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1, 
    2439      125,    -1,    -1,    19,    20,    -1,    -1,   132,    -1,    -1, 
    2440       -1,    -1,    -1,   138,   139,    -1,    -1,    33,    34,   144, 
    2441       -1,    -1,    -1,    39,    40,    41,    42,    43,   153,   154, 
    2442       -1,   156,   157,    -1,    -1,   160,   161,   162,    54,    55, 
    2443       56,    57,    58,    59,    60,    -1,    62,    63,    64,    -1, 
    2444       -1,    67,    68,    69,    -1,    71,    72,    73,    74,    75, 
    2445       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2446       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1, 
    2449       -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,   125, 
    2450       -1,    -1,    19,    20,    -1,    -1,   132,    -1,    -1,    -1, 
    2451       -1,    -1,   138,   139,    -1,    -1,    33,    34,   144,    -1, 
    2452       -1,    -1,    39,    40,    41,    42,    43,   153,   154,    -1, 
    2453      156,   157,    -1,    -1,   160,   161,   162,    54,    55,    56, 
    2454       57,    58,    59,    60,    -1,    62,    63,    64,    -1,    -1, 
    2455       67,    68,    69,    -1,    71,    72,    73,    74,    75,    -1, 
    2456       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2457       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2459       -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,    -1, 
    2460       -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,   125,    -1, 
    2461       -1,    19,    20,    -1,    -1,   132,    -1,    -1,    -1,    -1, 
    2462       -1,   138,   139,    -1,    -1,    33,    34,   144,    -1,    -1, 
    2463       -1,    39,    40,    41,    42,    43,   153,   154,    -1,   156, 
    2464      157,    -1,    -1,   160,   161,   162,    54,    55,    56,    57, 
    2465       58,    59,    60,    -1,    62,    63,    64,    -1,    -1,    67, 
    2466       68,    69,    -1,    71,    72,    73,    74,    75,    -1,    77, 
    2467       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2468       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2471       -1,    -1,    11,    -1,    -1,    -1,    -1,   125,    -1,    -1, 
    2472       19,    20,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1, 
    2473      138,   139,    -1,    -1,    33,    34,   144,    -1,    -1,    -1, 
    2474       39,    40,    41,    42,    43,   153,   154,    -1,   156,   157, 
    2475       -1,    -1,   160,   161,   162,    54,    55,    56,    57,    58, 
    2476       59,    60,    -1,    62,    63,    64,    -1,    -1,    67,    68, 
    2477       69,    -1,    71,    72,    73,    74,    75,    -1,    77,    -1, 
    2478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2482       -1,    -1,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1, 
    2483       -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138, 
    2484      139,    -1,    -1,    -1,    -1,   144,    -1,    -1,    -1,    -1, 
    2485       -1,    -1,    -1,    -1,   153,   154,    11,   156,   157,    -1, 
    2486       -1,   160,   161,   162,    19,    20,    21,   166,    23,    -1, 
    2487       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34, 
    2488       -1,    -1,    -1,    -1,    39,    40,    41,    42,    43,    -1, 
    2489       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54, 
    2490       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64, 
    2491       -1,    -1,    67,    68,    69,    -1,    71,    72,    73,    74, 
    2492       75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2495       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2496       -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1, 
    2497      125,    -1,    -1,    19,    20,    21,    -1,   132,    -1,    -1, 
    2498       -1,    -1,    -1,   138,   139,    -1,    -1,    33,    34,   144, 
    2499       -1,    -1,    -1,    39,    40,    41,    42,    43,   153,   154, 
    2500       -1,   156,   157,    -1,    -1,   160,   161,   162,    54,    55, 
    2501       56,    57,    58,    59,    60,    -1,    62,    63,    64,    -1, 
    2502       -1,    67,    68,    69,    -1,    71,    72,    73,    74,    75, 
    2503       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2504       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2506       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2507       -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,   125, 
    2508       -1,    -1,    19,    20,    21,    -1,   132,    -1,    -1,    -1, 
    2509       -1,    -1,   138,   139,    -1,    -1,    33,    34,   144,    -1, 
    2510       -1,    -1,    39,    40,    41,    42,    43,   153,   154,    -1, 
    2511      156,   157,    -1,    -1,   160,   161,   162,    54,    55,    56, 
    2512       57,    58,    59,    60,    -1,    62,    63,    64,    -1,    -1, 
    2513       67,    68,    69,    -1,    71,    72,    73,    74,    75,    -1, 
    2514       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2515       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2517       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2518       -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,   125,    -1, 
    2519       -1,    19,    20,    21,    -1,   132,    -1,    -1,    -1,    -1, 
    2520       -1,   138,   139,    -1,    -1,    33,    34,   144,    -1,    -1, 
    2521       -1,    39,    40,    41,    42,    43,   153,   154,    -1,   156, 
    2522      157,    -1,    -1,   160,   161,   162,    54,    55,    56,    57, 
    2523       58,    59,    60,    -1,    62,    63,    64,    -1,    -1,    67, 
    2524       68,    69,    -1,    71,    72,    73,    74,    75,    -1,    77, 
    2525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2526       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2528       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2529       -1,    -1,    11,    -1,    -1,    -1,    -1,   125,    -1,    -1, 
    2530       19,    20,    21,    -1,   132,    -1,    -1,    -1,    -1,    -1, 
    2531      138,   139,    -1,    -1,    33,    34,   144,    -1,    -1,    -1, 
    2532       39,    40,    41,    42,    43,   153,   154,    -1,   156,   157, 
    2533       -1,    -1,   160,   161,   162,    54,    55,    56,    57,    58, 
    2534       59,    60,    -1,    62,    63,    64,    -1,    -1,    67,    68, 
    2535       69,    -1,    71,    72,    73,    74,    75,    -1,    77,    -1, 
    2536       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2537       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2538       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2539       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2540       -1,    -1,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1, 
    2541       -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138, 
    2542      139,    -1,    11,    -1,    -1,   144,    -1,    -1,    -1,    -1, 
    2543       19,    20,    -1,    -1,   153,   154,    -1,   156,   157,    -1, 
    2544       -1,   160,   161,   162,    33,    34,    35,    -1,    -1,    -1, 
    2545       39,    40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1, 
    2546       -1,    -1,    -1,    -1,    -1,    54,    55,    56,    57,    58, 
    2547       59,    60,    -1,    62,    63,    64,    -1,    -1,    67,    68, 
    2548       69,    -1,    71,    72,    73,    74,    75,    -1,    77,    -1, 
    2549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2550       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2551       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2552       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2553       -1,    11,    -1,    -1,    -1,    -1,   125,    -1,    -1,    19, 
    2554       20,    21,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138, 
    2555      139,    -1,    -1,    33,    34,   144,    -1,    -1,    -1,    39, 
    2556       40,    41,    42,    43,   153,   154,    -1,   156,   157,    -1, 
    2557       -1,   160,   161,   162,    54,    55,    56,    57,    58,    59, 
    2558       60,    -1,    62,    63,    64,    -1,    -1,    67,    68,    69, 
    2559       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    -1, 
    2560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2564       11,    -1,    -1,    -1,    -1,   125,    -1,    -1,    19,    20, 
    2565       21,    -1,   132,    -1,    -1,    -1,    -1,    -1,   138,   139, 
    2566       -1,    -1,    33,    34,   144,    -1,    -1,    -1,    39,    40, 
    2567       41,    42,    43,   153,   154,    -1,   156,   157,    -1,    -1, 
    2568      160,   161,   162,    54,    55,    56,    57,    58,    59,    60, 
    2569       -1,    62,    63,    64,    -1,    -1,    67,    68,    69,    -1, 
    2570       71,    72,    73,    74,    75,    -1,    77,    -1,    -1,    -1, 
    2571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2573       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    11, 
    2575       -1,    -1,    -1,    -1,   125,    -1,    -1,    19,    20,    -1, 
    2576       -1,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,    -1, 
    2577       -1,    33,    34,   144,    -1,    -1,    -1,    39,    40,    41, 
    2578       42,    43,   153,   154,    -1,   156,   157,    -1,    -1,   160, 
    2579      161,   162,    54,    55,    56,    57,    58,    59,    60,    -1, 
    2580       62,    63,    64,    -1,    -1,    67,    68,    69,    -1,    71, 
    2581       72,    73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1, 
    2582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2585       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    11,    -1, 
    2586       -1,    -1,    -1,   125,    -1,    -1,    19,    20,    -1,    -1, 
    2587      132,    -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1, 
    2588       33,    34,   144,    -1,    -1,    -1,    39,    40,    41,    42, 
    2589       43,   153,   154,    -1,   156,   157,    -1,    -1,   160,   161, 
    2590      162,    54,    55,    56,    57,    58,    59,    60,    -1,    62, 
    2591       63,    64,    -1,    -1,    67,    68,    69,    -1,    71,    72, 
    2592       73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1, 
    2593       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2594       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2595       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1, 
    2597       -1,    -1,   125,    -1,    -1,    19,    20,    -1,    -1,   132, 
    2598       -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    33, 
    2599       34,   144,    -1,    -1,    -1,    39,    40,    41,    42,    43, 
    2600      153,   154,    -1,   156,   157,    -1,    -1,   160,   161,   162, 
    2601       54,    55,    56,    57,    58,    59,    60,    -1,    62,    63, 
    2602       64,    -1,    -1,    67,    68,    69,    -1,    71,    72,    73, 
    2603       74,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1, 
    2604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2606       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2607       -1,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1, 
    2608       -1,   125,    -1,    -1,    19,    20,    -1,    -1,   132,    -1, 
    2609       -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    33,    34, 
    2610      144,    -1,    -1,    -1,    39,    40,    41,    42,    43,   153, 
    2611      154,    -1,   156,   157,    -1,    -1,   160,   161,   162,    54, 
    2612       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64, 
    2613       -1,    -1,    67,    68,    69,    -1,    71,    72,    73,    74, 
    2614       75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2615       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2616       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2618       -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1, 
    2619      125,    -1,    -1,    19,    20,    -1,    -1,   132,    -1,    -1, 
    2620       -1,    -1,    -1,   138,   139,    -1,    -1,    33,    34,   144, 
    2621       -1,    -1,    -1,    39,    40,    41,    42,    43,   153,   154, 
    2622       -1,   156,   157,    -1,    -1,   160,   161,   162,    54,    55, 
    2623       56,    57,    58,    59,    60,    -1,    62,    63,    64,    -1, 
    2624       -1,    67,    68,    69,    -1,    71,    72,    73,    74,    75, 
    2625       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2626       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2627       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2629       -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,   125, 
    2630       -1,    -1,    19,    20,    -1,    -1,   132,    -1,    -1,    -1, 
    2631       -1,    -1,   138,   139,    -1,    -1,    33,    34,   144,    -1, 
    2632       -1,    -1,    39,    40,    41,    42,    43,   153,   154,    -1, 
    2633      156,   157,    -1,    -1,   160,   161,   162,    54,    55,    56, 
    2634       57,    58,    59,    60,    -1,    62,    63,    64,    -1,    -1, 
    2635       67,    68,    69,    -1,    71,    72,    73,    74,    75,    -1, 
    2636       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2637       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2638       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2640       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,    -1, 
    2641       -1,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,    -1, 
    2642       -1,   138,   139,    -1,    -1,    -1,    -1,   144,    -1,    -1, 
    2643       -1,    -1,    -1,    -1,    -1,    -1,   153,   154,    -1,   156, 
    2644      157,    -1,    -1,   160,   161,   162,    19,    20,    21,    -1, 
    2645       23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2646       33,    34,    -1,    -1,    -1,    -1,    39,    40,    41,    42, 
    2647       43,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52, 
    2648       53,    54,    55,    56,    57,    58,    59,    60,    -1,    62, 
    2649       63,    64,    -1,    -1,    67,    68,    69,    -1,    71,    72, 
    2650       73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1, 
    2651       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2654       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132, 
    2656       -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    -1, 
    2657       -1,   144,    -1,    -1,    -1,    -1,    19,    20,    21,    -1, 
    2658      153,   154,    -1,   156,   157,    -1,    -1,   160,   161,   162, 
    2659       33,    34,    -1,    -1,    -1,    -1,    39,    40,    41,    42, 
    2660       43,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52, 
    2661       53,    54,    55,    56,    57,    58,    59,    60,    -1,    62, 
    2662       63,    64,    19,    20,    67,    68,    69,    -1,    71,    72, 
    2663       73,    74,    75,    -1,    77,    -1,    33,    34,    -1,    -1, 
    2664       -1,    -1,    39,    40,    41,    42,    43,    -1,    -1,    46, 
    2665       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56, 
    2666       57,    58,    59,    60,    -1,    62,    63,    64,    -1,    -1, 
    2667       67,    68,    69,    -1,    71,    72,    73,    74,    75,    -1, 
    2668       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132, 
    2669       -1,    -1,    -1,    -1,    -1,   138,   139,    -1,    -1,    -1, 
    2670       -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2671      153,   154,    -1,   156,   157,    -1,    -1,   160,   161,   162, 
    2672       -1,    -1,    -1,    -1,    -1,    -1,    25,    -1,    -1,    28, 
    2673       -1,    30,    -1,    32,    -1,   132,    35,    -1,    -1,    -1, 
    2674       -1,   138,   139,    -1,    -1,    -1,    45,   144,    -1,    -1, 
    2675       -1,    -1,    -1,    -1,    -1,    -1,   153,   154,    -1,   156, 
    2676      157,    -1,    61,   160,   161,   162,    65,    66,    -1,    -1, 
    2677       -1,    70,    -1,    -1,    -1,    -1,    -1,    76,    -1,    78, 
    2678       79,    -1,    81,    -1,    -1,    -1,    -1,    86,    87,    88, 
    2679       89,    90,    -1,    92,    93,    -1,    -1,    96,    97,    98, 
    2680       99,   100,   101,   102,   103,   104,   105,   106,    -1,   108, 
    2681       -1,   110,   111,    -1,    -1,   114,   115,   116,    -1,   118, 
    2682       -1,   120,    -1,    -1,   123,   124,    -1,    -1,   127,   128, 
    2683      129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,    -1, 
    2684       -1,    -1,   141,   142,   143,   144,   145,   146,   147,   148, 
    2685      149,   150,   151,   152,    -1,    -1,   155,    -1,    -1,   158, 
    2686      159,   160,   161,    25,    -1,    -1,    28,   166,    30,    -1, 
    2687       32,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1, 
    2688       -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1, 
    2689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61, 
    2690       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    70,    -1, 
    2691       -1,    -1,    -1,    -1,    76,    -1,    78,    79,    -1,    81, 
    2692       -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,    -1, 
    2693       92,    93,    -1,    -1,    96,    97,    98,    99,   100,   101, 
    2694      102,   103,   104,   105,   106,    -1,   108,    -1,   110,   111, 
    2695       -1,    -1,   114,   115,   116,    -1,   118,    -1,   120,    -1, 
    2696       -1,   123,   124,    -1,    -1,   127,   128,   129,    -1,    -1, 
    2697       -1,    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,   141, 
    2698      142,   143,   144,   145,   146,   147,   148,   149,   150,   151, 
    2699      152,    32,    -1,   155,    35,    -1,   158,   159,   160,   161, 
    2700       -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1, 
    2701       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2702       61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2703       -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1, 
    2704       81,    -1,    83,    -1,    -1,    86,    87,    88,    89,    90, 
    2705       -1,    -1,    93,    -1,    -1,    96,    97,    98,    99,   100, 
    2706      101,   102,   103,   104,   105,    -1,    -1,    32,    -1,    -1, 
    2707       35,    -1,    -1,    -1,   115,    -1,    -1,    -1,    -1,   120, 
    2708       45,    -1,    -1,    -1,    -1,    -1,   127,    -1,   129,    -1, 
    2709       -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1, 
    2710       -1,    -1,    -1,    -1,    -1,    -1,    -1,   148,   149,   150, 
    2711      151,    76,    -1,    -1,    -1,    -1,    81,    -1,    -1,   160, 
    2712      161,    86,    87,    88,    89,    90,    -1,    -1,    93,    -1, 
    2713       -1,    96,    97,    98,    99,   100,   101,   102,   103,   104, 
    2714      105,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1, 
    2715      115,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1, 
    2716       -1,    -1,   127,    -1,   129,    -1,    -1,    -1,    -1,    -1, 
    2717       -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2718       -1,    -1,    -1,   148,   149,   150,   151,    76,    -1,    -1, 
    2719       -1,    -1,    81,    82,    -1,   160,   161,    86,    87,    88, 
    2720       -1,    90,    -1,    -1,    93,    -1,    -1,    96,    97,    98, 
    2721       99,   100,   101,   102,   103,   104,   105,    -1,    -1,    -1, 
    2722       -1,    -1,    35,    -1,    -1,    -1,   115,    -1,    -1,    -1, 
    2723       -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,   127,    -1, 
    2724      129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1, 
    2725       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   148, 
    2726      149,   150,   151,    76,    -1,    -1,    -1,    -1,    81,    -1, 
    2727       -1,   160,   161,    86,    87,    88,    -1,    90,    -1,    -1, 
    2728       93,    -1,    -1,    96,    97,    98,    99,   100,   101,   102, 
    2729      103,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2730       -1,    -1,   115,    -1,    -1,    -1,    -1,   120,    -1,    -1, 
    2731       -1,    -1,    -1,    -1,   127,    -1,   129,    -1,    -1,    -1, 
    2732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, 
    2733       -1,    -1,    -1,    -1,    -1,   148,   149,   150,   151,    -1, 
    2734       -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,   161 
     3093      -1,    -1,   185,   186,    -1,   188,    -1,    -1,    -1,   192, 
     3094     193 
    27353095}; 
    27363096 
     
    27393099static const yytype_uint16 yystos[] = 
    27403100{ 
    2741        0,   170,     0,     1,    24,    25,    28,    30,    32,    35, 
    2742       45,    61,    65,    66,    70,    76,    78,    79,    81,    86, 
    2743       87,    88,    89,    90,    92,    93,    96,    97,    98,    99, 
    2744      100,   101,   102,   103,   104,   105,   106,   108,   110,   111, 
    2745      114,   115,   116,   118,   120,   123,   124,   127,   128,   129, 
    2746      137,   140,   141,   142,   143,   144,   145,   146,   147,   148, 
    2747      149,   150,   151,   152,   155,   158,   159,   160,   161,   166, 
    2748      171,   172,   173,   174,   176,   178,   186,   198,   199,   203, 
    2749      204,   209,   210,   211,   212,   213,   215,   216,   223,   225, 
    2750      228,   231,   232,   267,   276,   277,   282,   283,   284,   286, 
    2751      287,   291,   300,   301,   302,   303,   304,   310,   315,   319, 
    2752      320,   323,   331,   332,   333,   334,   335,   338,   339,   341, 
    2753      344,   345,   348,   357,   359,   369,   153,   181,   160,   180, 
    2754      162,   162,    11,    19,    20,    33,    34,    39,    40,    41, 
    2755       42,    43,    54,    55,    56,    57,    58,    59,    60,    62, 
    2756       63,    64,    67,    68,    69,    71,    72,    73,    74,    75, 
    2757       77,   125,   132,   138,   139,   144,   153,   154,   156,   157, 
    2758      160,   161,   162,   166,   249,   250,   252,   253,   257,   259, 
    2759      260,   261,   262,   267,   268,   269,   273,   275,   162,   191, 
    2760      192,   162,   249,   272,   131,   166,   195,   166,   195,   273, 
    2761      161,   162,   162,     3,   161,   179,   220,   305,   160,   160, 
    2762      166,   336,   162,   162,   352,   160,   161,   162,   353,   162, 
    2763      162,   195,   195,    18,    22,   219,   267,   162,   190,   119, 
    2764      130,   123,   160,   224,   173,    78,    79,   187,   244,   133, 
    2765      160,   161,   237,   336,   160,   162,   200,   201,   206,     4, 
    2766      175,    24,   140,   166,    24,    29,    31,   175,   175,   160, 
    2767      162,   221,   222,   166,     3,   220,   160,   205,   219,     3, 
    2768      220,   220,     3,   220,   160,   217,   218,   219,     3,    31, 
    2769      131,   196,   197,   226,   240,    21,   162,   229,    21,   162, 
    2770      235,   337,   160,   172,   172,   172,   172,   336,   336,   336, 
    2771        5,   122,   168,   340,     3,   162,   342,   101,   160,   273, 
    2772      352,    19,    20,    21,    46,    47,    48,    49,    50,    52, 
    2773       53,   160,   162,   250,   257,   268,   350,   352,   358,   360, 
    2774      361,   362,   175,   249,   294,   249,   249,   249,   251,   162, 
    2775      162,   162,   251,   249,   251,   162,   162,   162,   162,   162, 
    2776      162,   162,   162,   162,   162,   162,   162,   249,   162,   251, 
    2777      162,   162,   162,   162,   249,   250,   252,   275,   366,   367, 
    2778      162,   249,   252,     5,     6,     7,     8,     9,    10,    12, 
    2779       13,    14,    15,    16,    17,    19,    20,    21,    22,    23, 
    2780      164,   165,   254,   249,   168,   162,   271,   162,   162,   160, 
    2781      153,   270,   271,   193,   267,     3,   249,   133,   160,   214, 
    2782      214,   249,   249,   161,   305,    94,    95,   267,   306,   257, 
    2783      370,   371,    21,    23,   162,   267,   354,   355,   360,   361, 
    2784      366,   161,   252,   267,   371,   372,   267,   374,   214,    34, 
    2785       39,    40,    42,    43,    54,    55,    56,    57,    58,    59, 
    2786       60,    62,    63,    64,    67,    68,    69,    72,    73,    74, 
    2787       75,    77,   160,   188,   189,   160,   267,   194,   249,     3, 
    2788        3,   195,     5,    21,   238,   249,   163,    22,   162,   257, 
    2789      220,     3,    22,    45,    88,    89,   175,   166,   174,   180, 
    2790      180,     5,   221,     3,   205,   219,   162,   245,   205,   267, 
    2791      219,   160,   160,   219,   245,     3,   217,    25,    80,   106, 
    2792      108,   109,   110,   113,   114,   116,   117,   241,   242,   244, 
    2793      180,     3,   227,   160,   161,   162,   160,   230,   238,   161, 
    2794      162,   236,   249,   237,   245,     3,   288,   299,   307,   299, 
    2795       44,   321,   322,   324,   249,   249,   356,   161,    21,   249, 
    2796      343,   346,   347,   249,   249,   249,   249,   249,   249,   249, 
    2797        5,   360,   162,   250,   257,   268,   349,   363,   364,     3, 
    2798      351,    18,    21,    22,    23,   362,   360,   163,   163,     3, 
    2799      163,   251,   251,   249,   163,   163,   163,   249,   249,   249, 
    2800      249,   249,   249,   249,   249,   249,   249,   249,   249,   163, 
    2801      251,   163,   251,   251,   251,   252,   366,   367,     3,     3, 
    2802      126,     3,   251,   163,     3,     5,   249,   256,   249,   249, 
    2803      249,   249,   249,   249,   249,   249,   249,   249,   249,   249, 
    2804      249,   249,     5,    22,   249,   255,   249,     5,   249,     5, 
    2805      249,   356,   272,   258,   263,   263,     3,   163,   245,   192, 
    2806      163,     3,     3,   163,   162,   298,     5,     3,   373,   360, 
    2807       21,    23,   162,   249,     3,   163,   163,   163,   163,     3, 
    2808      373,     3,   163,     3,    22,     3,   163,   162,   160,   336, 
    2809      238,   202,   207,   208,   253,   249,     3,   201,   160,   206, 
    2810      202,   162,   162,   179,   305,   162,   182,   182,   249,   163, 
    2811      222,   220,     4,    21,   246,   247,   248,   249,   220,   245, 
    2812      245,   220,   218,   245,   162,     3,   131,   182,   160,   245, 
    2813      230,     5,   238,   163,     3,   239,    21,   163,   245,    27, 
    2814      160,   278,   279,   249,   285,   286,   287,   289,   292,   293, 
    2815      282,    91,   115,   308,   309,   330,    83,   311,   312,   316, 
    2816      112,   162,   326,   107,   322,   325,   172,   267,   161,   163, 
    2817        3,   249,   163,   363,   254,   365,   365,   365,     3,   363, 
    2818      360,   360,   360,   360,   360,   293,   249,   163,   163,   163, 
    2819      163,   163,   163,   163,   163,   163,   163,   163,   163,   163, 
    2820      163,   163,   163,   163,   163,   163,     3,     3,     3,   249, 
    2821      367,   249,   367,   249,   367,   163,   252,   249,   249,   249, 
    2822      249,   249,   257,     4,     4,   249,   264,   265,   266,   163, 
    2823      163,   267,   133,   160,   249,    35,    82,    88,   284,   249, 
    2824      249,   121,   371,   163,   249,   266,   168,   245,   355,   371, 
    2825      163,   267,   188,   249,   194,    22,     3,    19,    20,    21, 
    2826      167,   268,   163,   160,   368,    22,   249,   249,   305,    21, 
    2827      160,   163,   184,   185,    26,   177,   205,   249,     3,   163, 
    2828        4,   267,    21,   233,   233,   217,   134,   135,   136,   243, 
    2829      242,   245,   233,   163,   238,   239,   160,   163,     4,   122, 
    2830        3,    36,   290,   295,   172,   172,   160,   162,    84,   312, 
    2831      313,   314,   317,   172,     4,   249,   327,   328,   329,   160, 
    2832      160,   299,   337,   347,     3,   163,   254,   364,   160,   368, 
    2833      368,   368,   163,   272,     4,   249,     4,     3,   271,   245, 
    2834      163,   162,   162,   163,     3,     5,   163,   356,   163,   202, 
    2835      207,   207,   207,   207,     5,   163,   163,   163,     3,   163, 
    2836      162,   183,   247,   248,   249,   162,   234,   249,   163,   233, 
    2837        5,   122,   274,   239,   238,   160,   166,   280,   281,   160, 
    2838      279,   294,    37,    38,   296,   297,   172,   249,   160,    85, 
    2839      312,   318,   172,   299,   329,     3,   163,     4,   245,   368, 
    2840      365,   163,   163,   163,   163,   249,     4,   249,   265,     3, 
    2841      294,   249,   249,   257,   338,   249,    22,    82,   185,   163, 
    2842      184,    21,   274,   249,   249,   122,     3,   163,   160,   160, 
    2843      172,   288,   163,   160,   299,   328,   329,   245,   163,   249, 
    2844        4,   249,   163,   163,     3,     3,   202,   163,   163,   160, 
    2845      281,   160,   288,    82,   249,   249,   249,    22,   160,     3, 
    2846      249 
     3101       0,   205,     0,     1,    24,    28,    30,    37,    65,    88, 
     3102     115,   173,   198,   206,   207,   208,   209,   211,   212,   265, 
     3103     266,   644,   647,   664,   666,   700,   701,   702,   703,   704, 
     3104     718,   719,   185,   213,   192,   192,   176,   177,   178,   179, 
     3105     184,   190,   192,   232,   267,   316,   210,    24,   198,    24, 
     3106     267,   237,   238,   412,   657,   659,   665,   665,    29,    31, 
     3107     115,   702,   665,   665,   210,   667,   648,   269,   268,   273, 
     3108     270,   272,   271,   194,   195,   195,   210,   198,   209,    25, 
     3109      32,    47,    83,   100,   101,   112,   133,   135,   136,   148, 
     3110     168,   171,   172,   185,   186,   187,   188,   192,   193,   232, 
     3111     239,   240,   241,   252,   260,   261,   289,   291,   293,   332, 
     3112     333,   348,   351,   367,   372,   376,   393,   394,   399,   404, 
     3113     405,   412,   413,   419,   423,   429,   440,   442,   451,   453, 
     3114     455,   458,   459,   460,   521,   522,   547,   548,   549,   551, 
     3115     557,   558,   561,   567,   572,   595,   618,   643,   681,   684, 
     3116     730,   161,   659,   260,   261,   646,   653,   731,    38,    49, 
     3117      79,    94,   109,   116,   119,   120,   122,   125,   128,   129, 
     3118     130,   154,   192,   242,   243,   253,   254,   260,   465,   482, 
     3119     521,   522,   532,   533,   537,   547,   566,   567,   576,   577, 
     3120     580,   592,   593,   594,   595,   596,   601,   608,   612,   615, 
     3121     618,   631,   634,   637,   689,   694,   730,   192,   721,   192, 
     3122     707,   242,   242,   207,   207,    21,   194,   274,   275,   274, 
     3123     274,   274,    21,   194,   285,   286,   287,   274,     4,    11, 
     3124      19,    20,    21,   125,   150,   166,   167,   176,   189,   193, 
     3125     194,   202,   232,   255,   258,   264,   276,   277,   280,   281, 
     3126     289,   290,   317,   318,   323,   325,   440,   489,   490,   491, 
     3127     492,   493,   496,   497,   499,   501,   502,   503,   504,   505, 
     3128     509,   512,   514,   687,   696,   400,   207,     3,   195,   194, 
     3129     424,   425,     3,   207,   214,   552,   155,   192,   682,   683, 
     3130     155,   407,    22,   430,   207,   552,     3,   294,   295,   194, 
     3131     380,   381,   383,   384,   440,   442,     4,   194,   241,   103, 
     3132     108,   111,   140,   192,   442,   194,   292,   265,   369,   407, 
     3133     407,   131,   141,   143,   147,   194,   523,     5,   194,   454, 
     3134     545,   546,   554,   554,   545,   658,   113,   645,   654,   655, 
     3135     656,   703,   718,   194,   194,   192,   232,   236,   509,   565, 
     3136     192,   207,   261,   192,   198,   733,   194,   194,   640,   194, 
     3137     514,   599,   194,   599,   194,   194,   207,   509,   511,   512, 
     3138     517,   518,   519,   520,   597,     4,   113,   247,   248,   244, 
     3139     245,   246,   253,   643,   111,   121,   123,   126,   127,   145, 
     3140     534,    48,   578,   579,   583,   194,   690,   194,   725,   194, 
     3141     247,   247,   193,    95,   519,   194,   277,   288,    74,    95, 
     3142     264,   194,   324,   327,   328,   329,   509,   201,   201,   232, 
     3143     276,   279,   280,   282,   496,   509,     5,     3,   195,   324, 
     3144      23,   494,    21,    22,   495,   276,   277,   496,   277,   492, 
     3145      12,    13,    14,    15,    16,    17,    18,   162,   163,   164, 
     3146     165,   196,   197,   498,   500,    10,   506,     9,   507,     6, 
     3147       7,   508,   499,   194,   194,    52,   426,     3,   207,   117, 
     3148     118,   232,   553,   207,   682,     3,   207,   192,   685,   686, 
     3149     192,    18,    22,   432,   433,   207,    47,   296,   297,   348, 
     3150     192,   155,   192,   384,   385,   386,   453,   457,   458,   459, 
     3151       3,   378,   379,   434,     3,    22,   111,   112,   171,   456, 
     3152     207,   514,    21,   193,   261,   509,   511,   622,   509,   207, 
     3153       4,     5,   452,   513,   514,   265,   301,   302,   303,   304, 
     3154       3,   335,   336,   337,   368,   192,   370,   371,   680,   192, 
     3155     373,   374,   375,   433,   407,   407,   144,   265,   415,   416, 
     3156     192,   440,   441,   442,   509,   529,   530,   531,   480,   514, 
     3157     524,   525,   526,   527,   147,   509,   452,   200,   246,   169, 
     3158     170,   192,   262,   263,   550,   555,   556,   559,   562,   563, 
     3159     263,   555,   105,   568,   569,   573,     3,   155,   662,   732, 
     3160     412,   649,   656,   509,   540,   509,   207,   207,   207,   466, 
     3161     602,   194,    59,    66,    68,    69,   509,   599,   635,   636, 
     3162     207,    59,    66,    68,    69,   599,   632,   633,   207,   483, 
     3163     232,   736,   207,    49,   207,   668,   669,   246,   509,   194, 
     3164      21,    51,    59,    61,    62,    63,    64,    66,    68,   192, 
     3165     442,   446,   598,   599,   600,   619,   620,   621,   622,   619, 
     3166     622,   695,   261,   521,   532,   533,   535,   538,   539,   137, 
     3167     194,   587,   132,   579,   584,   545,   195,   692,   207,   726, 
     3168     720,   705,   412,   715,   412,   722,     5,   195,   264,     5, 
     3169       5,     3,   195,   327,   509,   151,     3,   192,   193,   278, 
     3170     278,   175,   280,   195,   264,   318,   203,   326,   277,   491, 
     3171     491,   492,   493,   497,   501,   502,   503,   195,   688,   192, 
     3172     402,   403,   195,   232,   428,   443,   451,   453,   459,   425, 
     3173     194,   544,     5,   207,   683,     3,   207,    22,   192,   192, 
     3174     437,   438,   195,     3,   207,   194,     3,   377,   434,   380, 
     3175     383,   232,   276,   277,   279,   280,   289,   315,   316,   319, 
     3176     347,   382,   388,   391,   392,   440,   496,   687,   509,   207, 
     3177     552,   207,   552,     4,    21,   155,   232,   461,   462,   464, 
     3178     509,   512,   207,     3,   207,   195,   111,   509,   195,     4, 
     3179       3,   155,   305,   174,   300,   303,    25,   102,   131,   133, 
     3180     134,   135,   138,   139,   141,   142,   338,   348,   192,   341, 
     3181     342,   344,   155,     3,   207,     3,     3,   207,   192,   396, 
     3182     232,   343,   408,   409,   410,   411,   433,   414,   194,     3, 
     3183     207,   200,   207,     4,     3,   195,     3,   195,   442,   528, 
     3184     207,   195,   455,   207,   552,     4,   114,    38,   128,   130, 
     3185     260,   261,   465,   482,   521,   532,   560,   576,   593,   595, 
     3186     601,   608,   612,   615,   618,   631,   634,   637,   689,   554, 
     3187     550,   563,   260,   194,   106,   569,   570,   571,   574,   545, 
     3188     135,   673,   192,   207,   183,   195,   195,   443,   453,   458, 
     3189     473,   474,   475,    50,    54,    55,    56,    57,    58,    59, 
     3190      66,    67,    68,   599,   604,   605,    50,    52,    53,    54, 
     3191      55,    57,    59,    60,    66,    68,    70,   599,   641,   642, 
     3192     599,   261,   442,   449,   450,   442,   447,   448,   607,     3, 
     3193     195,   599,   261,   449,   607,     3,   195,   475,   485,     3, 
     3194     195,   194,   249,   250,   251,   703,   718,   183,   195,   609, 
     3195       5,    21,   598,   622,   192,   620,   261,   261,   261,   449, 
     3196       3,   195,   195,     3,   207,   232,   696,    39,   536,   541, 
     3197     588,   192,   207,   192,   585,   691,   232,   255,   442,   509, 
     3198     697,   698,   699,    21,   192,   709,   727,   728,   729,   207, 
     3199     727,   183,   183,   519,   195,   264,   519,   519,     3,   328, 
     3200     232,   259,   276,   279,   283,   697,     5,     3,   195,     3, 
     3201     194,   509,   509,   686,   232,   421,   422,   443,    22,   194, 
     3202       3,   435,   297,   192,   298,   299,   232,   386,   387,   553, 
     3203     207,   380,   194,    21,   389,   389,   194,     3,    22,   389, 
     3204     277,   280,   195,   207,   207,     4,   509,   261,   509,     5, 
     3205       3,   195,     4,   155,   463,   194,   509,   625,   626,   627, 
     3206     104,   509,   207,   513,   102,   131,   139,   306,   307,   348, 
     3207     232,   309,   310,   192,   207,   194,   194,     3,   334,   194, 
     3208     349,   338,   371,   374,   194,     3,   395,   406,     3,   207, 
     3209     192,   417,   418,   416,   192,   529,   481,   514,   480,   526, 
     3210     480,   527,   147,   207,   207,   170,   192,   207,   194,   192, 
     3211     193,   194,   734,   194,   111,   263,   564,   554,   509,   192, 
     3212     207,   107,   569,   575,   545,   155,     3,   674,   115,   651, 
     3213     207,   539,   582,     3,   468,   194,   476,   510,   511,   606, 
     3214     510,   510,   510,   514,     5,   599,   261,   510,   449,     3, 
     3215     195,   606,     5,   449,   447,   447,   449,   599,   442,   444, 
     3216     445,   261,   449,   444,     3,   195,   636,   207,   633,   207, 
     3217       3,   486,   232,   509,   251,    30,   671,   254,   260,   261, 
     3218      58,    59,    66,    68,   599,   610,   611,   514,   621,   616, 
     3219     625,   194,   442,   613,   623,   624,   627,   623,   540,    40, 
     3220      41,   542,   543,   534,     4,   509,   589,   590,   591,   207, 
     3221     586,   207,   207,     5,     3,   195,   195,     3,   195,    31, 
     3222     717,    29,   724,   195,     3,   195,     3,   195,   195,   232, 
     3223     330,   331,   553,   195,   195,   509,   516,   403,   401,   427, 
     3224     428,   452,   195,     3,     3,   420,   439,   438,   431,   434, 
     3225       3,   195,     5,   194,   232,   256,   257,   258,   259,   276, 
     3226     279,   315,   319,   347,   390,   391,   195,   255,   320,   321, 
     3227     322,   442,   509,   528,   531,   388,   104,   509,     4,    21, 
     3228     509,   462,     4,   509,   509,   509,   626,   628,   629,     3, 
     3229     207,   207,   195,   194,     3,   155,   194,   311,     3,   207, 
     3230     207,   339,   340,   342,   207,   350,    21,   284,   397,   192, 
     3231     207,   207,   410,    20,     3,   195,     4,     4,   528,   207, 
     3232     552,   207,   540,    11,    19,    20,    44,   110,   156,   166, 
     3233     167,   185,   186,   188,   189,   193,   215,   216,   220,   222, 
     3234     225,   227,   232,   233,   234,   509,   736,   509,   254,   195, 
     3235     207,   192,   207,    27,   192,   675,   676,   660,   192,   652, 
     3236     207,    98,   146,   469,   470,   474,   195,   477,   478,   479, 
     3237     480,   510,   605,   603,   447,   195,   642,   638,    98,   146, 
     3238     475,   487,   488,   195,   195,   192,   672,   111,     3,     5, 
     3239     599,   261,   449,     3,   195,   207,   617,   207,     3,   614, 
     3240     207,   195,   192,   207,   192,   207,   534,   591,     3,   195, 
     3241       4,   207,   232,   699,   698,   693,   351,   708,   713,   729, 
     3242      26,   708,   710,   711,   714,   652,   652,    95,    74,   195, 
     3243       5,   207,     3,   195,   195,   509,   422,   207,   434,     4, 
     3244     352,   353,   354,   355,   356,   357,   358,   359,   360,   361, 
     3245     362,   363,   364,   365,   514,   515,   207,   433,   299,   207, 
     3246     519,   232,   276,     5,     3,   195,   207,   509,   261,   509, 
     3247       4,     3,   626,   104,   308,   307,     4,   312,   353,   355, 
     3248     359,   284,   310,   352,   158,   159,   160,   366,   352,   288, 
     3249       5,   147,   345,   346,   352,   194,   192,   418,   207,   207, 
     3250     195,   509,   195,   195,   509,   200,   451,   453,   194,   194, 
     3251     195,   192,   185,   235,   451,     5,     6,     7,     8,     9, 
     3252      10,    12,    13,    14,    15,    16,    17,    19,    20,    21, 
     3253      22,    23,   196,   197,   217,   195,   195,   104,   207,     4, 
     3254     147,     3,   207,   650,   447,   472,     5,     3,   467,     3, 
     3255     195,   481,     4,   207,   625,   207,   472,     5,     3,   484, 
     3256     581,   670,   509,   261,   510,   611,   207,   207,   624,   207, 
     3257     192,   207,   207,   207,   590,   591,   207,   194,   712,   714, 
     3258     706,   713,   723,   723,     5,     5,   514,   428,     3,    22, 
     3259     195,     3,     4,     3,     3,   355,   363,   515,    21,     3, 
     3260     436,     3,   322,   321,   509,   553,   629,   630,   207,   312, 
     3261     195,     3,     4,     5,   147,   313,   314,   195,   195,   195, 
     3262     516,   315,   347,   440,   195,   398,   735,   223,   224,   226, 
     3263       5,   219,   509,   509,   509,   509,   509,   509,   509,   509, 
     3264     509,   509,   509,   509,   509,   509,   509,     5,    22,   218, 
     3265     509,   509,     5,   509,     5,   509,   192,   207,   192,   663, 
     3266     676,   677,   678,   679,   680,   192,   676,   207,   449,   471, 
     3267     470,   207,   478,   639,   471,   488,   207,   207,   207,   195, 
     3268       3,   207,   192,   207,   716,   207,   519,   264,     3,   509, 
     3269     192,   354,   356,   515,     4,   355,   358,   360,     4,    21, 
     3270     365,   437,   519,     5,   195,   195,   516,   315,   347,   352, 
     3271     220,   232,   221,   228,   228,   228,   509,   509,   509,   509, 
     3272     509,   207,   661,     3,   207,   261,   195,   207,   195,   195, 
     3273     514,    22,     4,     3,   195,   514,   195,   194,     4,   229, 
     3274     230,   231,   509,   195,   195,   195,   207,   678,   207,     3, 
     3275     421,   519,     3,     4,   509,     3,     4,   451,   514,   195, 
     3276     514,   509,     4,   230,   509,     3,   509,     4,   514,   509 
    28473277}; 
    28483278 
     
    36444074  switch (yyn) 
    36454075    { 
    3646         case 7: 
    3647 /* Line 1807 of yacc.c  */ 
    3648 #line 319 "fortran.y" 
     4076        case 6: 
     4077/* Line 1807 of yacc.c  */ 
     4078#line 519 "fortran.y" 
    36494079    {yyerrok;yyclearin;} 
    36504080    break; 
    36514081 
    3652   case 18: 
    3653 /* Line 1807 of yacc.c  */ 
    3654 #line 337 "fortran.y" 
     4082  case 7: 
     4083/* Line 1807 of yacc.c  */ 
     4084#line 522 "fortran.y" 
     4085    {token_since_endofstmt = 0; increment_nbtokens = 0;} 
     4086    break; 
     4087 
     4088  case 16: 
     4089/* Line 1807 of yacc.c  */ 
     4090#line 535 "fortran.y" 
    36554091    { 
    36564092            if (inmoduledeclare == 0 ) 
     
    36624098    break; 
    36634099 
    3664   case 20: 
    3665 /* Line 1807 of yacc.c  */ 
    3666 #line 347 "fortran.y" 
     4100  case 18: 
     4101/* Line 1807 of yacc.c  */ 
     4102#line 560 "fortran.y" 
    36674103    { pos_cur = setposcur(); } 
    36684104    break; 
    36694105 
    3670   case 21: 
    3671 /* Line 1807 of yacc.c  */ 
    3672 #line 350 "fortran.y" 
    3673     { isrecursive = 0; } 
    3674     break; 
    3675  
    3676   case 22: 
    3677 /* Line 1807 of yacc.c  */ 
    3678 #line 351 "fortran.y" 
    3679     { isrecursive = 1; } 
    3680     break; 
    3681  
    3682   case 23: 
    3683 /* Line 1807 of yacc.c  */ 
    3684 #line 354 "fortran.y" 
    3685     { is_result_present = 0; } 
    3686     break; 
    3687  
    36884106  case 24: 
    36894107/* Line 1807 of yacc.c  */ 
    3690 #line 355 "fortran.y" 
    3691     { is_result_present = 1; } 
    3692     break; 
    3693  
    3694   case 25: 
    3695 /* Line 1807 of yacc.c  */ 
    3696 #line 359 "fortran.y" 
    3697     { 
    3698             insubroutinedeclare = 1; 
    3699             if ( firstpass ) 
    3700                 Add_SubroutineArgument_Var_1((yyvsp[(4) - (4)].l)); 
    3701             else 
    3702                 WriteBeginof_SubLoop(); 
    3703         } 
    3704     break; 
    3705  
    3706   case 26: 
    3707 /* Line 1807 of yacc.c  */ 
    3708 #line 367 "fortran.y" 
    3709     { 
    3710             insubroutinedeclare = 1; 
    3711             inprogramdeclare = 1; 
    3712             /* in the second step we should write the head of       */ 
    3713             /*    the subroutine sub_loop_<subroutinename>          */ 
    3714             if ( ! firstpass ) 
    3715                 WriteBeginof_SubLoop(); 
    3716         } 
     4108#line 584 "fortran.y" 
     4109    { Add_Include_1((yyvsp[(1) - (1)].na)); } 
    37174110    break; 
    37184111 
    37194112  case 27: 
    37204113/* Line 1807 of yacc.c  */ 
    3721 #line 376 "fortran.y" 
    3722     { 
    3723             insubroutinedeclare = 1; 
    3724             strcpy(DeclType, ""); 
    3725             /* we should to list of the subroutine argument the  */ 
    3726             /*    name of the function which has to be defined   */ 
    3727             if ( firstpass ) 
    3728             { 
    3729                 Add_SubroutineArgument_Var_1((yyvsp[(4) - (5)].l)); 
    3730                 if ( ! is_result_present ) 
    3731                     Add_FunctionType_Var_1((yyvsp[(3) - (5)].na)); 
    3732             } 
    3733             else 
    3734             /* in the second step we should write the head of    */ 
    3735             /*    the subroutine sub_loop_<subroutinename>       */ 
    3736                 WriteBeginof_SubLoop(); 
    3737         } 
     4114#line 1100 "fortran.y" 
     4115    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    37384116    break; 
    37394117 
    37404118  case 28: 
    37414119/* Line 1807 of yacc.c  */ 
    3742 #line 393 "fortran.y" 
    3743     { 
    3744             GlobalDeclaration = 0; 
    3745             strcpy(curmodulename,(yyvsp[(2) - (2)].na)); 
    3746             strcpy(subroutinename,""); 
    3747             Add_NameOfModule_1((yyvsp[(2) - (2)].na)); 
    3748             if ( inmoduledeclare == 0 ) 
    3749             { 
    3750                 /* To know if there are in the module declaration    */ 
    3751                 inmoduledeclare = 1; 
    3752                 /* to know if a module has been met                  */ 
    3753                 inmodulemeet = 1; 
    3754                 /* to know if we are after the keyword contains      */ 
    3755                 aftercontainsdeclare = 0 ; 
    3756             } 
    3757         } 
     4120#line 1101 "fortran.y" 
     4121    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     4122    break; 
     4123 
     4124  case 29: 
     4125/* Line 1807 of yacc.c  */ 
     4126#line 1102 "fortran.y" 
     4127    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     4128    break; 
     4129 
     4130  case 30: 
     4131/* Line 1807 of yacc.c  */ 
     4132#line 1103 "fortran.y" 
     4133    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    37584134    break; 
    37594135 
    37604136  case 31: 
    37614137/* Line 1807 of yacc.c  */ 
    3762 #line 415 "fortran.y" 
    3763     { strcpy((yyval.na), (yyvsp[(1) - (1)].na)); strcpy(subroutinename, (yyvsp[(1) - (1)].na)); } 
     4138#line 1104 "fortran.y" 
     4139    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    37644140    break; 
    37654141 
    37664142  case 32: 
    37674143/* Line 1807 of yacc.c  */ 
    3768 #line 417 "fortran.y" 
    3769     { Add_Include_1((yyvsp[(1) - (1)].na)); } 
     4144#line 1106 "fortran.y" 
     4145    { strcpy((yyval.na),"+"); } 
    37704146    break; 
    37714147 
    37724148  case 33: 
    37734149/* Line 1807 of yacc.c  */ 
    3774 #line 419 "fortran.y" 
    3775     { if ( firstpass ) (yyval.l)=NULL; } 
     4150#line 1107 "fortran.y" 
     4151    { strcpy((yyval.na),"-"); } 
    37764152    break; 
    37774153 
    37784154  case 34: 
    37794155/* Line 1807 of yacc.c  */ 
    3780 #line 420 "fortran.y" 
    3781     { if ( firstpass ) (yyval.l)=NULL; } 
     4156#line 1111 "fortran.y" 
     4157    { sprintf((yyval.na),"+%s",(yyvsp[(2) - (2)].na)); } 
    37824158    break; 
    37834159 
    37844160  case 35: 
    37854161/* Line 1807 of yacc.c  */ 
    3786 #line 421 "fortran.y" 
    3787     { if ( firstpass ) (yyval.l)=(yyvsp[(2) - (3)].l); } 
     4162#line 1112 "fortran.y" 
     4163    { sprintf((yyval.na),"-%s",(yyvsp[(2) - (2)].na)); } 
     4164    break; 
     4165 
     4166  case 36: 
     4167/* Line 1807 of yacc.c  */ 
     4168#line 1113 "fortran.y" 
     4169    { sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na)); } 
     4170    break; 
     4171 
     4172  case 37: 
     4173/* Line 1807 of yacc.c  */ 
     4174#line 1114 "fortran.y" 
     4175    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    37884176    break; 
    37894177 
    37904178  case 38: 
    37914179/* Line 1807 of yacc.c  */ 
    3792 #line 425 "fortran.y" 
    3793     { if ( firstpass ) Add_SubroutineArgument_Var_1((yyvsp[(2) - (3)].l)); } 
     4180#line 1115 "fortran.y" 
     4181    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    37944182    break; 
    37954183 
    37964184  case 39: 
    37974185/* Line 1807 of yacc.c  */ 
    3798 #line 428 "fortran.y" 
    3799     { 
    3800             if ( firstpass == 1 ) 
    3801             { 
    3802                 strcpy(nameinttypenameback,nameinttypename); 
    3803                 strcpy(nameinttypename,""); 
    3804                 curvar = createvar((yyvsp[(1) - (1)].na),NULL); 
    3805                 strcpy(nameinttypename,nameinttypenameback); 
    3806                 curlistvar = insertvar(NULL,curvar); 
    3807                 (yyval.l) = settype("",curlistvar); 
    3808             } 
    3809         } 
     4186#line 1116 "fortran.y" 
     4187    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    38104188    break; 
    38114189 
    38124190  case 40: 
    38134191/* Line 1807 of yacc.c  */ 
    3814 #line 440 "fortran.y" 
    3815     { 
    3816             if ( firstpass == 1 ) 
    3817             { 
    3818                 strcpy(nameinttypenameback,nameinttypename); 
    3819                 strcpy(nameinttypename,""); 
    3820                 curvar = createvar((yyvsp[(3) - (3)].na),NULL); 
    3821                 strcpy(nameinttypename,nameinttypenameback); 
    3822                 (yyval.l) = insertvar((yyvsp[(1) - (3)].l),curvar); 
    3823             } 
    3824         } 
     4192#line 1117 "fortran.y" 
     4193    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    38254194    break; 
    38264195 
    38274196  case 41: 
    38284197/* Line 1807 of yacc.c  */ 
    3829 #line 451 "fortran.y" 
    3830     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     4198#line 1118 "fortran.y" 
     4199    { sprintf((yyval.na)," > %s",(yyvsp[(2) - (2)].na)); } 
    38314200    break; 
    38324201 
    38334202  case 42: 
    38344203/* Line 1807 of yacc.c  */ 
    3835 #line 452 "fortran.y" 
    3836     { strcpy((yyval.na),"*"); } 
     4204#line 1119 "fortran.y" 
     4205    { sprintf((yyval.na)," < %s",(yyvsp[(2) - (2)].na)); } 
     4206    break; 
     4207 
     4208  case 43: 
     4209/* Line 1807 of yacc.c  */ 
     4210#line 1120 "fortran.y" 
     4211    { sprintf((yyval.na)," >= %s",(yyvsp[(3) - (3)].na)); } 
    38374212    break; 
    38384213 
    38394214  case 44: 
    38404215/* Line 1807 of yacc.c  */ 
    3841 #line 455 "fortran.y" 
    3842     { inside_type_declare = 1; } 
     4216#line 1121 "fortran.y" 
     4217    { sprintf((yyval.na)," <= %s",(yyvsp[(3) - (3)].na)); } 
    38434218    break; 
    38444219 
    38454220  case 45: 
    38464221/* Line 1807 of yacc.c  */ 
    3847 #line 456 "fortran.y" 
    3848     { inside_type_declare = 0; } 
     4222#line 1122 "fortran.y" 
     4223    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     4224    break; 
     4225 
     4226  case 46: 
     4227/* Line 1807 of yacc.c  */ 
     4228#line 1123 "fortran.y" 
     4229    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    38494230    break; 
    38504231 
    38514232  case 47: 
    38524233/* Line 1807 of yacc.c  */ 
    3853 #line 459 "fortran.y" 
    3854     { 
    3855             if ( ! inside_type_declare ) 
    3856             { 
    3857                 if ( firstpass ) 
    3858                 { 
    3859                     if ( insubroutinedeclare )  Add_Parameter_Var_1((yyvsp[(3) - (4)].l)); 
    3860                     else                        Add_GlobalParameter_Var_1((yyvsp[(3) - (4)].l)); 
    3861                 } 
    3862                 else 
    3863                 { 
    3864                     pos_end = setposcur(); 
    3865                     RemoveWordSET_0(fortran_out, pos_cur_decl, pos_end-pos_cur_decl); 
    3866                 } 
    3867             } 
    3868             VariableIsParameter =  0 ; 
    3869         } 
     4234#line 1124 "fortran.y" 
     4235    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    38704236    break; 
    38714237 
    38724238  case 48: 
    38734239/* Line 1807 of yacc.c  */ 
    3874 #line 476 "fortran.y" 
    3875     { 
    3876             if ( ! inside_type_declare ) 
    3877             { 
    3878                 if ( firstpass ) 
    3879                 { 
    3880                     if ( insubroutinedeclare )  Add_Parameter_Var_1((yyvsp[(2) - (2)].l)); 
    3881                     else                        Add_GlobalParameter_Var_1((yyvsp[(2) - (2)].l)); 
    3882                 } 
    3883                 else 
    3884                 { 
    3885                     pos_end = setposcur(); 
    3886                     RemoveWordSET_0(fortran_out,pos_cur_decl,pos_end-pos_cur_decl); 
    3887                 } 
    3888             } 
    3889             VariableIsParameter =  0 ; 
    3890         } 
     4240#line 1125 "fortran.y" 
     4241    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     4242    break; 
     4243 
     4244  case 49: 
     4245/* Line 1807 of yacc.c  */ 
     4246#line 1126 "fortran.y" 
     4247    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    38914248    break; 
    38924249 
    38934250  case 50: 
    38944251/* Line 1807 of yacc.c  */ 
    3895 #line 494 "fortran.y" 
    3896     { 
    3897             pos_end = setposcur(); 
    3898             RemoveWordSET_0(fortran_out,pos_cursave,pos_end-pos_cursave); 
    3899         } 
     4252#line 1127 "fortran.y" 
     4253    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     4254    break; 
     4255 
     4256  case 51: 
     4257/* Line 1807 of yacc.c  */ 
     4258#line 1128 "fortran.y" 
     4259    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    39004260    break; 
    39014261 
    39024262  case 52: 
    39034263/* Line 1807 of yacc.c  */ 
    3904 #line 500 "fortran.y" 
    3905     { 
    3906             /* if the variable is a parameter we can suppose that is   */ 
    3907             /*    value is the same on each grid. It is not useless to */ 
    3908             /*    create a copy of it on each grid                     */ 
    3909             if ( ! inside_type_declare ) 
    3910             { 
    3911                 if ( firstpass ) 
    3912                 { 
    3913                     Add_Globliste_1((yyvsp[(1) - (1)].l)); 
    3914                     /* if variableparamlists has been declared in a subroutine   */ 
    3915                     if ( insubroutinedeclare )     Add_Dimension_Var_1((yyvsp[(1) - (1)].l)); 
    3916                 } 
    3917                 else 
    3918                 { 
    3919                     pos_end = setposcur(); 
    3920                     RemoveWordSET_0(fortran_out,pos_curdimension,pos_end-pos_curdimension); 
    3921                 } 
    3922             } 
    3923             PublicDeclare = 0; 
    3924             PrivateDeclare = 0; 
    3925             ExternalDeclare = 0; 
    3926             strcpy(NamePrecision,""); 
    3927             c_star = 0; 
    3928             InitialValueGiven = 0 ; 
    3929             strcpy(IntentSpec,""); 
    3930             VariableIsParameter =  0 ; 
    3931             Allocatabledeclare = 0 ; 
    3932             Targetdeclare = 0 ; 
    3933             SaveDeclare = 0; 
    3934             pointerdeclare = 0; 
    3935             optionaldeclare = 0 ; 
    3936             dimsgiven=0; 
    3937             c_selectorgiven=0; 
    3938             strcpy(nameinttypename,""); 
    3939             strcpy(c_selectorname,""); 
    3940         } 
     4264#line 1129 "fortran.y" 
     4265    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    39414266    break; 
    39424267 
    39434268  case 53: 
    39444269/* Line 1807 of yacc.c  */ 
    3945 #line 537 "fortran.y" 
    3946     { 
    3947             if (firstpass == 0) 
    3948             { 
    3949                 if ((yyvsp[(1) - (1)].lnn)) 
    3950                 { 
    3951                     removeglobfromlist(&((yyvsp[(1) - (1)].lnn))); 
    3952                     pos_end = setposcur(); 
    3953                     RemoveWordSET_0(fortran_out,pos_cur,pos_end-pos_cur); 
    3954                     writelistpublic((yyvsp[(1) - (1)].lnn)); 
    3955                 } 
    3956             } 
    3957         } 
     4270#line 1130 "fortran.y" 
     4271    { sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na)); } 
     4272    break; 
     4273 
     4274  case 54: 
     4275/* Line 1807 of yacc.c  */ 
     4276#line 1131 "fortran.y" 
     4277    { sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na)); } 
     4278    break; 
     4279 
     4280  case 55: 
     4281/* Line 1807 of yacc.c  */ 
     4282#line 1133 "fortran.y" 
     4283    { strcpy((yyval.na),""); } 
     4284    break; 
     4285 
     4286  case 56: 
     4287/* Line 1807 of yacc.c  */ 
     4288#line 1134 "fortran.y" 
     4289    { sprintf((yyval.na),"/%s",(yyvsp[(1) - (1)].na)); } 
     4290    break; 
     4291 
     4292  case 57: 
     4293/* Line 1807 of yacc.c  */ 
     4294#line 1135 "fortran.y" 
     4295    { sprintf((yyval.na),"/= %s",(yyvsp[(2) - (2)].na));} 
     4296    break; 
     4297 
     4298  case 58: 
     4299/* Line 1807 of yacc.c  */ 
     4300#line 1136 "fortran.y" 
     4301    { sprintf((yyval.na),"//%s",(yyvsp[(2) - (2)].na)); } 
     4302    break; 
     4303 
     4304  case 59: 
     4305/* Line 1807 of yacc.c  */ 
     4306#line 1139 "fortran.y" 
     4307    { sprintf((yyval.na),"==%s",(yyvsp[(2) - (2)].na)); } 
     4308    break; 
     4309 
     4310  case 60: 
     4311/* Line 1807 of yacc.c  */ 
     4312#line 1140 "fortran.y" 
     4313    { sprintf((yyval.na),"= %s",(yyvsp[(1) - (1)].na)); } 
     4314    break; 
     4315 
     4316  case 61: 
     4317/* Line 1807 of yacc.c  */ 
     4318#line 1143 "fortran.y" 
     4319    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    39584320    break; 
    39594321 
    39604322  case 62: 
    39614323/* Line 1807 of yacc.c  */ 
    3962 #line 558 "fortran.y" 
    3963     { 
    3964             /* we should remove the data declaration                */ 
    3965             pos_end = setposcur(); 
    3966             RemoveWordSET_0(fortran_out,pos_curdata,pos_end-pos_curdata); 
    3967  
    3968             if ( aftercontainsdeclare == 1  && firstpass == 0 ) 
    3969             { 
    3970                 ReWriteDataStatement_0(fortran_out); 
    3971                 pos_end = setposcur(); 
    3972             } 
    3973         } 
     4324#line 1144 "fortran.y" 
     4325    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     4326    break; 
     4327 
     4328  case 63: 
     4329/* Line 1807 of yacc.c  */ 
     4330#line 1145 "fortran.y" 
     4331    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    39744332    break; 
    39754333 
    39764334  case 64: 
    39774335/* Line 1807 of yacc.c  */ 
    3978 #line 572 "fortran.y" 
    3979     { 
    3980             PublicDeclare = 0 ; 
    3981             PrivateDeclare = 0 ; 
    3982         } 
    3983     break; 
    3984  
    3985   case 102: 
    3986 /* Line 1807 of yacc.c  */ 
    3987 #line 630 "fortran.y" 
    3988     { 
    3989             /* if the variable is a parameter we can suppose that is*/ 
    3990             /*    value is the same on each grid. It is not useless */ 
    3991             /*    to create a copy of it on each grid               */ 
    3992             if ( ! inside_type_declare ) 
    3993             { 
    3994                 pos_end = setposcur(); 
    3995                 RemoveWordSET_0(fortran_out,pos_cur_decl,pos_end-pos_cur_decl); 
    3996                 ReWriteDeclarationAndAddTosubroutine_01((yyvsp[(1) - (2)].l)); 
    3997                 pos_cur_decl = setposcur(); 
    3998                 if ( firstpass == 0 && GlobalDeclaration == 0 
    3999                                     && insubroutinedeclare == 0 ) 
    4000                 { 
    4001                     fprintf(fortran_out,"\n#include \"Module_Declar_%s.h\"\n", curmodulename); 
    4002                     sprintf(ligne, "Module_Declar_%s.h", curmodulename); 
    4003                     module_declar = open_for_write(ligne); 
    4004                     GlobalDeclaration = 1 ; 
    4005                     pos_cur_decl = setposcur(); 
    4006                 } 
    4007                 (yyval.l) = (yyvsp[(1) - (2)].l); 
    4008  
    4009                 if ( firstpass ) 
    4010                 { 
    4011                     Add_Globliste_1((yyvsp[(1) - (2)].l)); 
    4012                     if ( insubroutinedeclare ) 
    4013                     { 
    4014                         if ( pointerdeclare ) Add_Pointer_Var_From_List_1((yyvsp[(1) - (2)].l)); 
    4015                         Add_Parameter_Var_1((yyvsp[(1) - (2)].l)); 
    4016                     } 
    4017                     else 
    4018                         Add_GlobalParameter_Var_1((yyvsp[(1) - (2)].l)); 
    4019  
    4020                     /* If there's a SAVE declaration in module's subroutines we should    */ 
    4021                     /*    remove it from the subroutines declaration and add it in the    */ 
    4022                     /*    global declarations                                             */ 
    4023                     if ( aftercontainsdeclare && SaveDeclare ) 
    4024                     { 
    4025                         if ( inmodulemeet ) Add_SubroutineDeclarationSave_Var_1((yyvsp[(1) - (2)].l)); 
    4026                         else                Add_Save_Var_dcl_1((yyvsp[(1) - (2)].l)); 
    4027                     } 
    4028                 } 
    4029             } 
    4030             else 
    4031             { 
    4032                 (yyval.l) = (listvar *) NULL; 
    4033             } 
    4034             PublicDeclare = 0; 
    4035             PrivateDeclare = 0; 
    4036             ExternalDeclare = 0; 
    4037             strcpy(NamePrecision,""); 
    4038             c_star = 0; 
    4039             InitialValueGiven = 0 ; 
    4040             strcpy(IntentSpec,""); 
    4041             VariableIsParameter =  0 ; 
    4042             Allocatabledeclare = 0 ; 
    4043             Targetdeclare = 0 ; 
    4044             SaveDeclare = 0; 
    4045             pointerdeclare = 0; 
    4046             optionaldeclare = 0 ; 
    4047             dimsgiven=0; 
    4048             c_selectorgiven=0; 
    4049             strcpy(nameinttypename,""); 
    4050             strcpy(c_selectorname,""); 
    4051             GlobalDeclarationType = 0; 
    4052         } 
    4053     break; 
    4054  
    4055   case 103: 
    4056 /* Line 1807 of yacc.c  */ 
    4057 #line 696 "fortran.y" 
    4058     { 
    4059             insubroutinedeclare = 1; 
    4060  
    4061             if ( firstpass ) 
    4062             { 
    4063                 Add_SubroutineArgument_Var_1((yyvsp[(3) - (3)].l)); 
    4064                 Add_FunctionType_Var_1((yyvsp[(2) - (3)].na)); 
    4065             } 
    4066             else 
    4067                 WriteBeginof_SubLoop(); 
    4068  
    4069             strcpy(nameinttypename,""); 
    4070         } 
    4071     break; 
    4072  
    4073   case 104: 
    4074 /* Line 1807 of yacc.c  */ 
    4075 #line 710 "fortran.y" 
    4076     { functiondeclarationisdone = 1; } 
    4077     break; 
    4078  
    4079   case 105: 
    4080 /* Line 1807 of yacc.c  */ 
    4081 #line 712 "fortran.y" 
    4082     { VariableIsParameter = 1; pos_curparameter = setposcur()-9; } 
    4083     break; 
    4084  
    4085   case 109: 
    4086 /* Line 1807 of yacc.c  */ 
    4087 #line 724 "fortran.y" 
    4088     { 
    4089             createstringfromlistname(ligne,(yyvsp[(3) - (4)].lnn)); 
    4090             if (firstpass == 1) Add_Data_Var_1(&List_Data_Var,(yyvsp[(1) - (4)].na),ligne); 
    4091             else                Add_Data_Var_1(&List_Data_Var_Cur,(yyvsp[(1) - (4)].na),ligne); 
    4092         } 
    4093     break; 
    4094  
    4095   case 110: 
    4096 /* Line 1807 of yacc.c  */ 
    4097 #line 730 "fortran.y" 
    4098     { 
    4099             if (firstpass == 1)  Add_Data_Var_Names_01(&List_Data_Var,(yyvsp[(1) - (4)].lnn),(yyvsp[(3) - (4)].lnn)); 
    4100             else                 Add_Data_Var_Names_01(&List_Data_Var_Cur,(yyvsp[(1) - (4)].lnn),(yyvsp[(3) - (4)].lnn)); 
    4101         } 
    4102     break; 
    4103  
    4104   case 111: 
    4105 /* Line 1807 of yacc.c  */ 
    4106 #line 735 "fortran.y" 
    4107     { 
    4108             createstringfromlistname(ligne,(yyvsp[(7) - (8)].lnn)); 
    4109             printf("###################################################################################################################\n"); 
    4110             printf("## CONV Error : data_implied_do statements (R537) are not yet supported. Please complain to the proper authorities.\n"); 
    4111             printf("l.%4d -- data_stmt_set : ( lhs , dospec ) /data_stmt_value_list/ -- lhs=|%s| dospec=|%s| data_stmt_value_list=|%s|\n", 
    4112                 line_num_input,(yyvsp[(2) - (8)].na),(yyvsp[(4) - (8)].na),ligne); 
    4113             printf("## But, are you SURE you NEED a DATA construct ?\n"); 
    4114             printf("###################################################################################################################\n"); 
    4115             exit(1); 
    4116         } 
    4117     break; 
    4118  
    4119   case 112: 
    4120 /* Line 1807 of yacc.c  */ 
    4121 #line 748 "fortran.y" 
    4122     { (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].na),0); } 
    4123     break; 
    4124  
    4125   case 113: 
    4126 /* Line 1807 of yacc.c  */ 
    4127 #line 749 "fortran.y" 
    4128     { (yyval.lnn) = Insertname((yyvsp[(3) - (3)].lnn),(yyvsp[(1) - (3)].na),1);   } 
    4129     break; 
    4130  
    4131   case 118: 
    4132 /* Line 1807 of yacc.c  */ 
    4133 #line 758 "fortran.y" 
    4134     { pos_cursave = setposcur()-4; } 
    4135     break; 
    4136  
    4137   case 120: 
    4138 /* Line 1807 of yacc.c  */ 
    4139 #line 761 "fortran.y" 
    4140     { if ( ! inside_type_declare ) Add_Save_Var_1((yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].d)); } 
    4141     break; 
    4142  
    4143   case 121: 
    4144 /* Line 1807 of yacc.c  */ 
    4145 #line 764 "fortran.y" 
    4146     { (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].na),0); } 
    4147     break; 
    4148  
    4149   case 122: 
    4150 /* Line 1807 of yacc.c  */ 
    4151 #line 765 "fortran.y" 
    4152     { printf("l.%4d -- INSTRUCTION NON TRAITEE : INITIALISATION DE DATA AVEC EXPRESSION\n",line_num_input); exit(0); } 
    4153     break; 
    4154  
    4155   case 123: 
    4156 /* Line 1807 of yacc.c  */ 
    4157 #line 766 "fortran.y" 
    4158     { (yyval.lnn) = concat_listname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].lnn)); } 
    4159     break; 
    4160  
    4161   case 124: 
    4162 /* Line 1807 of yacc.c  */ 
    4163 #line 769 "fortran.y" 
    4164     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));  } 
    4165     break; 
    4166  
    4167   case 125: 
    4168 /* Line 1807 of yacc.c  */ 
    4169 #line 770 "fortran.y" 
    4170     { sprintf((yyval.na),"%s+%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    4171     break; 
    4172  
    4173   case 126: 
    4174 /* Line 1807 of yacc.c  */ 
    4175 #line 771 "fortran.y" 
    4176     { sprintf((yyval.na),"%s-%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    4177     break; 
    4178  
    4179   case 127: 
    4180 /* Line 1807 of yacc.c  */ 
    4181 #line 772 "fortran.y" 
    4182     { sprintf((yyval.na),"%s*%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    4183     break; 
    4184  
    4185   case 128: 
    4186 /* Line 1807 of yacc.c  */ 
    4187 #line 773 "fortran.y" 
    4188     { sprintf((yyval.na),"%s/%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    4189     break; 
    4190  
    4191   case 129: 
    4192 /* Line 1807 of yacc.c  */ 
    4193 #line 775 "fortran.y" 
    4194     { strcpy((yyval.na),""); } 
    4195     break; 
    4196  
    4197   case 130: 
    4198 /* Line 1807 of yacc.c  */ 
    4199 #line 776 "fortran.y" 
    4200     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4201     break; 
    4202  
    4203   case 135: 
    4204 /* Line 1807 of yacc.c  */ 
    4205 #line 786 "fortran.y" 
    4206     { 
    4207             positioninblock = 0; 
    4208             pos_curdimension = setposcur()-9; 
    4209         } 
    4210     break; 
    4211  
    4212   case 136: 
    4213 /* Line 1807 of yacc.c  */ 
    4214 #line 793 "fortran.y" 
    4215     { 
    4216             printf("l.%4d -- dimension : before_dimension opt_comma TOK_NAME = |%s| -- MHCHECK\n",line_num_input,(yyvsp[(3) - (5)].na)); 
    4217             if ( inside_type_declare ) break; 
    4218             curvar = createvar((yyvsp[(3) - (5)].na),(yyvsp[(4) - (5)].d)); 
    4219             CreateAndFillin_Curvar("", curvar); 
    4220             curlistvar=insertvar(NULL, curvar); 
    4221             (yyval.l) = settype("",curlistvar); 
    4222             strcpy(vallengspec,""); 
    4223         } 
    4224     break; 
    4225  
    4226   case 137: 
    4227 /* Line 1807 of yacc.c  */ 
    4228 #line 803 "fortran.y" 
    4229     { 
    4230             printf("l.%4d -- dimension : dimension ',' TOK_NAME dims lengspec = |%s| -- MHCHECK\n",line_num_input,(yyvsp[(3) - (5)].na)); 
    4231             if ( inside_type_declare ) break; 
    4232             curvar = createvar((yyvsp[(3) - (5)].na),(yyvsp[(4) - (5)].d)); 
    4233             CreateAndFillin_Curvar("", curvar); 
    4234             curlistvar = insertvar((yyvsp[(1) - (5)].l), curvar); 
    4235             (yyval.l) = curlistvar; 
    4236             strcpy(vallengspec,""); 
    4237         } 
    4238     break; 
    4239  
    4240   case 140: 
    4241 /* Line 1807 of yacc.c  */ 
    4242 #line 818 "fortran.y" 
    4243     { (yyval.lnn) = (listname *) NULL; } 
    4244     break; 
    4245  
    4246   case 141: 
    4247 /* Line 1807 of yacc.c  */ 
    4248 #line 819 "fortran.y" 
    4249     { (yyval.lnn) = (yyvsp[(3) - (3)].lnn); } 
    4250     break; 
    4251  
    4252   case 142: 
    4253 /* Line 1807 of yacc.c  */ 
    4254 #line 822 "fortran.y" 
    4255     { (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].na),0); } 
    4256     break; 
    4257  
    4258   case 143: 
    4259 /* Line 1807 of yacc.c  */ 
    4260 #line 823 "fortran.y" 
    4261     { (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].na),0); } 
    4262     break; 
    4263  
    4264   case 144: 
    4265 /* Line 1807 of yacc.c  */ 
    4266 #line 824 "fortran.y" 
    4267     { (yyval.lnn) = Insertname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].na),0);   } 
    4268     break; 
    4269  
    4270   case 145: 
    4271 /* Line 1807 of yacc.c  */ 
    4272 #line 825 "fortran.y" 
    4273     { (yyval.lnn) = Insertname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].na),0);   } 
    4274     break; 
    4275  
    4276   case 146: 
    4277 /* Line 1807 of yacc.c  */ 
    4278 #line 829 "fortran.y" 
    4279     { 
    4280             if ( inside_type_declare ) break; 
    4281             pos_end = setposcur(); 
    4282             RemoveWordSET_0(fortran_out,pos_curcommon,pos_end-pos_curcommon); 
    4283         } 
    4284     break; 
    4285  
    4286   case 147: 
    4287 /* Line 1807 of yacc.c  */ 
    4288 #line 835 "fortran.y" 
    4289     { 
    4290             if ( inside_type_declare ) break; 
    4291             sprintf(charusemodule,"%s",(yyvsp[(2) - (3)].na)); 
    4292             Add_NameOfCommon_1((yyvsp[(2) - (3)].na),subroutinename); 
    4293             pos_end = setposcur(); 
    4294             RemoveWordSET_0(fortran_out,pos_curcommon,pos_end-pos_curcommon); 
    4295         } 
    4296     break; 
    4297  
    4298   case 148: 
    4299 /* Line 1807 of yacc.c  */ 
    4300 #line 843 "fortran.y" 
    4301     { 
    4302             if ( inside_type_declare ) break; 
    4303             sprintf(charusemodule,"%s",(yyvsp[(3) - (5)].na)); 
    4304             Add_NameOfCommon_1((yyvsp[(3) - (5)].na),subroutinename); 
    4305             pos_end = setposcur(); 
    4306             RemoveWordSET_0(fortran_out,pos_curcommon,pos_end-pos_curcommon); 
    4307         } 
    4308     break; 
    4309  
    4310   case 149: 
    4311 /* Line 1807 of yacc.c  */ 
    4312 #line 852 "fortran.y" 
    4313     { positioninblock = 0; pos_curcommon = setposcur()-6;   } 
    4314     break; 
    4315  
    4316   case 150: 
    4317 /* Line 1807 of yacc.c  */ 
    4318 #line 853 "fortran.y" 
    4319     { positioninblock = 0; pos_curcommon = setposcur()-6-7; } 
    4320     break; 
    4321  
    4322   case 151: 
    4323 /* Line 1807 of yacc.c  */ 
    4324 #line 856 "fortran.y" 
    4325     { if ( ! inside_type_declare ) Add_Common_var_1(); } 
    4326     break; 
    4327  
    4328   case 152: 
    4329 /* Line 1807 of yacc.c  */ 
    4330 #line 857 "fortran.y" 
    4331     { if ( ! inside_type_declare ) Add_Common_var_1(); } 
    4332     break; 
    4333  
    4334   case 153: 
    4335 /* Line 1807 of yacc.c  */ 
    4336 #line 861 "fortran.y" 
    4337     { 
    4338             positioninblock = positioninblock + 1 ; 
    4339             strcpy(commonvar,(yyvsp[(1) - (2)].na)); 
    4340             commondim = (yyvsp[(2) - (2)].d); 
    4341         } 
    4342     break; 
    4343  
    4344   case 154: 
    4345 /* Line 1807 of yacc.c  */ 
    4346 #line 869 "fortran.y" 
    4347     { 
    4348             strcpy((yyval.na),""); 
    4349             positioninblock=0; 
    4350             strcpy(commonblockname,""); 
    4351         } 
    4352     break; 
    4353  
    4354   case 155: 
    4355 /* Line 1807 of yacc.c  */ 
    4356 #line 875 "fortran.y" 
    4357     { 
    4358             strcpy((yyval.na),(yyvsp[(2) - (3)].na)); 
    4359             positioninblock=0; 
    4360             strcpy(commonblockname,(yyvsp[(2) - (3)].na)); 
    4361         } 
    4362     break; 
    4363  
    4364   case 158: 
    4365 /* Line 1807 of yacc.c  */ 
    4366 #line 885 "fortran.y" 
    4367     { (yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v)); } 
    4368     break; 
    4369  
    4370   case 159: 
    4371 /* Line 1807 of yacc.c  */ 
    4372 #line 886 "fortran.y" 
    4373     { (yyval.l)=insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v));   } 
    4374     break; 
    4375  
    4376   case 160: 
    4377 /* Line 1807 of yacc.c  */ 
    4378 #line 890 "fortran.y" 
    4379     { 
    4380             if ( inside_type_declare ) break; 
    4381             curvar=(variable *) calloc(1,sizeof(variable)); 
    4382             Init_Variable(curvar); 
    4383             curvar->v_VariableIsParameter = 1; 
    4384             strcpy(curvar->v_nomvar,(yyvsp[(1) - (3)].na)); 
    4385             strcpy(curvar->v_subroutinename,subroutinename); 
    4386             strcpy(curvar->v_modulename,curmodulename); 
    4387             strcpy(curvar->v_initialvalue,(yyvsp[(3) - (3)].na)); 
    4388             strcpy(curvar->v_commoninfile,cur_filename); 
    4389             Save_Length((yyvsp[(3) - (3)].na),14); 
    4390             (yyval.v) = curvar; 
    4391         } 
    4392     break; 
    4393  
    4394   case 164: 
    4395 /* Line 1807 of yacc.c  */ 
    4396 #line 913 "fortran.y" 
    4397     { 
    4398             if ( insubroutinedeclare == 1 ) 
    4399             { 
    4400                 Add_ImplicitNoneSubroutine_1(); 
    4401                 pos_end = setposcur(); 
    4402                 RemoveWordSET_0(fortran_out,pos_end-13,13); 
    4403             } 
    4404         } 
    4405     break; 
    4406  
    4407   case 166: 
    4408 /* Line 1807 of yacc.c  */ 
    4409 #line 924 "fortran.y" 
    4410     { 
    4411             if ( ! inside_type_declare ) 
    4412             { 
    4413                 if (dimsgiven == 1) curvar = createvar((yyvsp[(2) - (5)].na),curdim); 
    4414                 else                curvar = createvar((yyvsp[(2) - (5)].na),(yyvsp[(3) - (5)].d)); 
    4415                 CreateAndFillin_Curvar(DeclType, curvar); 
    4416                 curlistvar = insertvar(NULL, curvar); 
    4417                 if (!strcasecmp(DeclType,"character")) 
    4418                 { 
    4419                     if (c_selectorgiven == 1) 
    4420                     { 
    4421                         strcpy(c_selectordim.first,"1"); 
    4422                         strcpy(c_selectordim.last,c_selectorname); 
    4423                         Save_Length(c_selectorname,1); 
    4424                         change_dim_char(insertdim(NULL,c_selectordim),curlistvar); 
    4425                     } 
    4426                 } 
    4427                 (yyval.l)=settype(DeclType,curlistvar); 
    4428             } 
    4429             strcpy(vallengspec,""); 
    4430         } 
    4431     break; 
    4432  
    4433   case 167: 
    4434 /* Line 1807 of yacc.c  */ 
    4435 #line 946 "fortran.y" 
    4436     { 
    4437             if ( ! inside_type_declare ) 
    4438             { 
    4439                 if (dimsgiven == 1) curvar = createvar((yyvsp[(3) - (6)].na), curdim); 
    4440                 else                curvar = createvar((yyvsp[(3) - (6)].na), (yyvsp[(4) - (6)].d)); 
    4441                 CreateAndFillin_Curvar((yyvsp[(1) - (6)].l)->var->v_typevar,curvar); 
    4442                 strcpy(curvar->v_typevar, (yyvsp[(1) - (6)].l)->var->v_typevar); 
    4443                 curvar->v_catvar = get_cat_var(curvar); 
    4444                 curlistvar = insertvar((yyvsp[(1) - (6)].l), curvar); 
    4445                 if (!strcasecmp(DeclType,"character")) 
    4446                 { 
    4447                     if (c_selectorgiven == 1) 
    4448                     { 
    4449                         strcpy(c_selectordim.first,"1"); 
    4450                         strcpy(c_selectordim.last,c_selectorname); 
    4451                         Save_Length(c_selectorname,1); 
    4452                         change_dim_char(insertdim(NULL,c_selectordim),curlistvar); 
    4453                     } 
    4454                 } 
    4455                 (yyval.l)=curlistvar; 
    4456             } 
    4457             strcpy(vallengspec,""); 
    4458         } 
    4459     break; 
    4460  
    4461   case 168: 
    4462 /* Line 1807 of yacc.c  */ 
    4463 #line 970 "fortran.y" 
    4464     { dimsgiven = 0; } 
    4465     break; 
    4466  
    4467   case 169: 
    4468 /* Line 1807 of yacc.c  */ 
    4469 #line 972 "fortran.y" 
    4470     { strcpy(DeclType,(yyvsp[(1) - (2)].na));  } 
    4471     break; 
    4472  
    4473   case 170: 
    4474 /* Line 1807 of yacc.c  */ 
    4475 #line 973 "fortran.y" 
    4476     { strcpy(DeclType,"character");  } 
    4477     break; 
    4478  
    4479   case 171: 
    4480 /* Line 1807 of yacc.c  */ 
    4481 #line 974 "fortran.y" 
    4482     { strcpy(DeclType,(yyvsp[(1) - (3)].na)); strcpy(nameinttypename,(yyvsp[(3) - (3)].na));  } 
    4483     break; 
    4484  
    4485   case 172: 
    4486 /* Line 1807 of yacc.c  */ 
    4487 #line 975 "fortran.y" 
    4488     { strcpy(DeclType,"type"); GlobalDeclarationType = 1;  } 
    4489     break; 
    4490  
    4491   case 174: 
    4492 /* Line 1807 of yacc.c  */ 
    4493 #line 978 "fortran.y" 
    4494     { c_selectorgiven = 1; strcpy(c_selectorname,(yyvsp[(2) - (2)].na)); } 
    4495     break; 
    4496  
    4497   case 175: 
    4498 /* Line 1807 of yacc.c  */ 
    4499 #line 979 "fortran.y" 
    4500     { c_star = 1;} 
    4501     break; 
    4502  
    4503   case 180: 
    4504 /* Line 1807 of yacc.c  */ 
    4505 #line 987 "fortran.y" 
    4506     { pos_cur_decl = setposcur()-9; } 
    4507     break; 
    4508  
    4509   case 181: 
    4510 /* Line 1807 of yacc.c  */ 
    4511 #line 990 "fortran.y" 
    4512     { strcpy((yyval.na),"integer"); pos_cur_decl = setposcur()-7; } 
    4513     break; 
    4514  
    4515   case 182: 
    4516 /* Line 1807 of yacc.c  */ 
    4517 #line 991 "fortran.y" 
    4518     { strcpy((yyval.na),"logical"); pos_cur_decl = setposcur()-7; } 
    4519     break; 
    4520  
    4521   case 183: 
    4522 /* Line 1807 of yacc.c  */ 
    4523 #line 992 "fortran.y" 
    4524     { strcpy((yyval.na),"real");    pos_cur_decl = setposcur()-4; } 
    4525     break; 
    4526  
    4527   case 184: 
    4528 /* Line 1807 of yacc.c  */ 
    4529 #line 993 "fortran.y" 
    4530     { strcpy((yyval.na),"complex"); pos_cur_decl = setposcur()-7; } 
    4531     break; 
    4532  
    4533   case 185: 
    4534 /* Line 1807 of yacc.c  */ 
    4535 #line 994 "fortran.y" 
    4536     { strcpy((yyval.na),"double complex"); pos_cur_decl = setposcur()-14; } 
    4537     break; 
    4538  
    4539   case 186: 
    4540 /* Line 1807 of yacc.c  */ 
    4541 #line 995 "fortran.y" 
    4542     { pos_cur_decl = setposcur()-16; strcpy((yyval.na),"real"); strcpy(nameinttypename,"8"); } 
    4543     break; 
    4544  
    4545   case 188: 
    4546 /* Line 1807 of yacc.c  */ 
    4547 #line 998 "fortran.y" 
    4548     {strcpy(vallengspec,(yyvsp[(2) - (2)].na));} 
    4549     break; 
    4550  
    4551   case 189: 
    4552 /* Line 1807 of yacc.c  */ 
    4553 #line 1001 "fortran.y" 
    4554     { sprintf((yyval.na),"*%s",(yyvsp[(1) - (1)].na)); } 
    4555     break; 
    4556  
    4557   case 190: 
    4558 /* Line 1807 of yacc.c  */ 
    4559 #line 1002 "fortran.y" 
    4560     { strcpy((yyval.na),"*(*)"); } 
    4561     break; 
    4562  
    4563   case 197: 
    4564 /* Line 1807 of yacc.c  */ 
    4565 #line 1014 "fortran.y" 
    4566     { 
    4567             if ( strstr((yyvsp[(3) - (3)].na),"0.d0") ) 
    4568             { 
    4569                 strcpy(nameinttypename,"8"); 
    4570                 strcpy(NamePrecision,""); 
    4571             } 
    4572             else 
    4573                 sprintf(NamePrecision,"%s = %s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); 
    4574         } 
    4575     break; 
    4576  
    4577   case 198: 
    4578 /* Line 1807 of yacc.c  */ 
    4579 #line 1023 "fortran.y" 
    4580     { strcpy(NamePrecision,(yyvsp[(1) - (1)].na)); } 
    4581     break; 
    4582  
    4583   case 199: 
    4584 /* Line 1807 of yacc.c  */ 
    4585 #line 1024 "fortran.y" 
    4586     { strcpy(NamePrecision,(yyvsp[(1) - (1)].na)); } 
    4587     break; 
    4588  
    4589   case 200: 
    4590 /* Line 1807 of yacc.c  */ 
    4591 #line 1025 "fortran.y" 
    4592     { strcpy(NamePrecision,(yyvsp[(1) - (1)].na)); } 
    4593     break; 
    4594  
    4595   case 201: 
    4596 /* Line 1807 of yacc.c  */ 
    4597 #line 1028 "fortran.y" 
    4598     { strcpy(CharacterSize,(yyvsp[(1) - (1)].na));  strcpy((yyval.na),(yyvsp[(1) - (1)].na));  } 
    4599     break; 
    4600  
    4601   case 202: 
    4602 /* Line 1807 of yacc.c  */ 
    4603 #line 1029 "fortran.y" 
    4604     { strcpy(CharacterSize,"*"); strcpy((yyval.na),"*"); } 
    4605     break; 
    4606  
    4607   case 210: 
    4608 /* Line 1807 of yacc.c  */ 
    4609 #line 1042 "fortran.y" 
    4610     { VariableIsParameter = 1; } 
    4611     break; 
    4612  
    4613   case 212: 
    4614 /* Line 1807 of yacc.c  */ 
    4615 #line 1044 "fortran.y" 
    4616     { Allocatabledeclare = 1; } 
    4617     break; 
    4618  
    4619   case 213: 
    4620 /* Line 1807 of yacc.c  */ 
    4621 #line 1045 "fortran.y" 
    4622     { dimsgiven = 1; curdim = (yyvsp[(2) - (2)].d); } 
    4623     break; 
    4624  
    4625   case 214: 
    4626 /* Line 1807 of yacc.c  */ 
    4627 #line 1046 "fortran.y" 
    4628     { ExternalDeclare = 1; } 
    4629     break; 
    4630  
    4631   case 215: 
    4632 /* Line 1807 of yacc.c  */ 
    4633 #line 1048 "fortran.y" 
    4634     { strcpy(IntentSpec,(yyvsp[(3) - (4)].na)); } 
    4635     break; 
    4636  
    4637   case 217: 
    4638 /* Line 1807 of yacc.c  */ 
    4639 #line 1050 "fortran.y" 
    4640     { optionaldeclare = 1 ; } 
    4641     break; 
    4642  
    4643   case 218: 
    4644 /* Line 1807 of yacc.c  */ 
    4645 #line 1051 "fortran.y" 
    4646     { pointerdeclare = 1 ; } 
    4647     break; 
    4648  
    4649   case 219: 
    4650 /* Line 1807 of yacc.c  */ 
    4651 #line 1052 "fortran.y" 
    4652     { SaveDeclare = 1 ; } 
    4653     break; 
    4654  
    4655   case 220: 
    4656 /* Line 1807 of yacc.c  */ 
    4657 #line 1053 "fortran.y" 
    4658     { Targetdeclare = 1; } 
    4659     break; 
    4660  
    4661   case 221: 
    4662 /* Line 1807 of yacc.c  */ 
    4663 #line 1056 "fortran.y" 
    4664     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4665     break; 
    4666  
    4667   case 222: 
    4668 /* Line 1807 of yacc.c  */ 
    4669 #line 1057 "fortran.y" 
    4670     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4671     break; 
    4672  
    4673   case 223: 
    4674 /* Line 1807 of yacc.c  */ 
    4675 #line 1058 "fortran.y" 
    4676     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4677     break; 
    4678  
    4679   case 224: 
    4680 /* Line 1807 of yacc.c  */ 
    4681 #line 1061 "fortran.y" 
    4682     { PublicDeclare = 1;  } 
    4683     break; 
    4684  
    4685   case 225: 
    4686 /* Line 1807 of yacc.c  */ 
    4687 #line 1062 "fortran.y" 
    4688     { PrivateDeclare = 1; } 
    4689     break; 
    4690  
    4691   case 226: 
    4692 /* Line 1807 of yacc.c  */ 
    4693 #line 1064 "fortran.y" 
    4694     { (yyval.d) = (listdim*) NULL; } 
    4695     break; 
    4696  
    4697   case 227: 
    4698 /* Line 1807 of yacc.c  */ 
    4699 #line 1066 "fortran.y" 
    4700     { 
    4701             (yyval.d) = (listdim*) NULL; 
    4702             if ( inside_type_declare ) break; 
    4703             if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  (yyval.d)=(yyvsp[(2) - (3)].d); 
    4704         } 
    4705     break; 
    4706  
    4707   case 228: 
    4708 /* Line 1807 of yacc.c  */ 
    4709 #line 1074 "fortran.y" 
    4710     { 
    4711             (yyval.d) = (listdim*) NULL; 
    4712             if ( inside_type_declare ) break; 
    4713             if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  (yyval.d)=insertdim(NULL,(yyvsp[(1) - (1)].dim1)); 
    4714         } 
    4715     break; 
    4716  
    4717   case 229: 
    4718 /* Line 1807 of yacc.c  */ 
    4719 #line 1080 "fortran.y" 
    4720     { 
    4721             (yyval.d) = (listdim*) NULL; 
    4722             if ( inside_type_declare ) break; 
    4723             if ( (!inside_type_declare) && created_dimensionlist == 1 ) (yyval.d)=insertdim((yyvsp[(1) - (3)].d),(yyvsp[(3) - (3)].dim1)); 
    4724         } 
    4725     break; 
    4726  
    4727   case 230: 
    4728 /* Line 1807 of yacc.c  */ 
    4729 #line 1086 "fortran.y" 
    4730     { strcpy((yyval.dim1).first,"1"); strcpy((yyval.dim1).last,(yyvsp[(1) - (1)].na)); Save_Length((yyvsp[(1) - (1)].na),1); } 
    4731     break; 
    4732  
    4733   case 231: 
    4734 /* Line 1807 of yacc.c  */ 
    4735 #line 1087 "fortran.y" 
    4736     { strcpy((yyval.dim1).first,"");  strcpy((yyval.dim1).last,"");                    } 
    4737     break; 
    4738  
    4739   case 232: 
    4740 /* Line 1807 of yacc.c  */ 
    4741 #line 1088 "fortran.y" 
    4742     { strcpy((yyval.dim1).first,(yyvsp[(1) - (2)].na));  Save_Length((yyvsp[(1) - (2)].na),2); strcpy((yyval.dim1).last,""); } 
    4743     break; 
    4744  
    4745   case 233: 
    4746 /* Line 1807 of yacc.c  */ 
    4747 #line 1089 "fortran.y" 
    4748     { strcpy((yyval.dim1).first,"");  strcpy((yyval.dim1).last,(yyvsp[(2) - (2)].na)); Save_Length((yyvsp[(2) - (2)].na),1); } 
    4749     break; 
    4750  
    4751   case 234: 
    4752 /* Line 1807 of yacc.c  */ 
    4753 #line 1090 "fortran.y" 
    4754     { strcpy((yyval.dim1).first,(yyvsp[(1) - (3)].na));  Save_Length((yyvsp[(1) - (3)].na),2); strcpy((yyval.dim1).last,(yyvsp[(3) - (3)].na)); Save_Length((yyvsp[(3) - (3)].na),1); } 
    4755     break; 
    4756  
    4757   case 235: 
    4758 /* Line 1807 of yacc.c  */ 
    4759 #line 1093 "fortran.y" 
    4760     { strcpy((yyval.na),"*"); } 
    4761     break; 
    4762  
    4763   case 236: 
    4764 /* Line 1807 of yacc.c  */ 
    4765 #line 1094 "fortran.y" 
    4766     { strcpy((yyval.na),(yyvsp[(1) - (1)].na));  } 
    4767     break; 
    4768  
    4769   case 237: 
    4770 /* Line 1807 of yacc.c  */ 
    4771 #line 1096 "fortran.y" 
    4772     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4773     break; 
    4774  
    4775   case 238: 
    4776 /* Line 1807 of yacc.c  */ 
    4777 #line 1097 "fortran.y" 
    4778     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4779     break; 
    4780  
    4781   case 239: 
    4782 /* Line 1807 of yacc.c  */ 
    4783 #line 1098 "fortran.y" 
    4784     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4785     break; 
    4786  
    4787   case 240: 
    4788 /* Line 1807 of yacc.c  */ 
    4789 #line 1099 "fortran.y" 
    4790     { sprintf((yyval.na),"(%s)",(yyvsp[(2) - (3)].na)); } 
    4791     break; 
    4792  
    4793   case 241: 
    4794 /* Line 1807 of yacc.c  */ 
    4795 #line 1103 "fortran.y" 
    4796     { sprintf((yyval.na),"SUM(%s)",(yyvsp[(2) - (3)].na));} 
    4797     break; 
    4798  
    4799   case 242: 
    4800 /* Line 1807 of yacc.c  */ 
    4801 #line 1104 "fortran.y" 
    4802     { sprintf((yyval.na),"MAX(%s)",(yyvsp[(2) - (3)].na));} 
    4803     break; 
    4804  
    4805   case 243: 
    4806 /* Line 1807 of yacc.c  */ 
    4807 #line 1105 "fortran.y" 
    4808     { sprintf((yyval.na),"TANH(%s)",(yyvsp[(3) - (4)].na));} 
    4809     break; 
    4810  
    4811   case 244: 
    4812 /* Line 1807 of yacc.c  */ 
    4813 #line 1106 "fortran.y" 
    4814     { sprintf((yyval.na),"MAXVAL(%s)",(yyvsp[(3) - (4)].na));} 
    4815     break; 
    4816  
    4817   case 245: 
    4818 /* Line 1807 of yacc.c  */ 
    4819 #line 1107 "fortran.y" 
    4820     { sprintf((yyval.na),"MIN(%s)",(yyvsp[(2) - (3)].na));} 
    4821     break; 
    4822  
    4823   case 246: 
    4824 /* Line 1807 of yacc.c  */ 
    4825 #line 1108 "fortran.y" 
    4826     { sprintf((yyval.na),"MINVAL(%s)",(yyvsp[(3) - (4)].na));} 
    4827     break; 
    4828  
    4829   case 247: 
    4830 /* Line 1807 of yacc.c  */ 
    4831 #line 1109 "fortran.y" 
    4832     { sprintf((yyval.na),"TRIM(%s)",(yyvsp[(3) - (4)].na));} 
    4833     break; 
    4834  
    4835   case 248: 
    4836 /* Line 1807 of yacc.c  */ 
    4837 #line 1110 "fortran.y" 
    4838     { sprintf((yyval.na),"SQRT(%s)",(yyvsp[(2) - (3)].na));} 
    4839     break; 
    4840  
    4841   case 249: 
    4842 /* Line 1807 of yacc.c  */ 
    4843 #line 1111 "fortran.y" 
    4844     { sprintf((yyval.na),"REAL(%s)",(yyvsp[(3) - (4)].na));} 
    4845     break; 
    4846  
    4847   case 250: 
    4848 /* Line 1807 of yacc.c  */ 
    4849 #line 1112 "fortran.y" 
    4850     { sprintf((yyval.na),"NINT(%s)",(yyvsp[(3) - (4)].na));} 
    4851     break; 
    4852  
    4853   case 251: 
    4854 /* Line 1807 of yacc.c  */ 
    4855 #line 1113 "fortran.y" 
    4856     { sprintf((yyval.na),"FLOAT(%s)",(yyvsp[(3) - (4)].na));} 
    4857     break; 
    4858  
    4859   case 252: 
    4860 /* Line 1807 of yacc.c  */ 
    4861 #line 1114 "fortran.y" 
    4862     { sprintf((yyval.na),"EXP(%s)",(yyvsp[(3) - (4)].na));} 
    4863     break; 
    4864  
    4865   case 253: 
    4866 /* Line 1807 of yacc.c  */ 
    4867 #line 1115 "fortran.y" 
    4868     { sprintf((yyval.na),"COS(%s)",(yyvsp[(3) - (4)].na));} 
    4869     break; 
    4870  
    4871   case 254: 
    4872 /* Line 1807 of yacc.c  */ 
    4873 #line 1116 "fortran.y" 
    4874     { sprintf((yyval.na),"COSH(%s)",(yyvsp[(3) - (4)].na));} 
    4875     break; 
    4876  
    4877   case 255: 
    4878 /* Line 1807 of yacc.c  */ 
    4879 #line 1117 "fortran.y" 
    4880     { sprintf((yyval.na),"ACOS(%s)",(yyvsp[(3) - (4)].na));} 
    4881     break; 
    4882  
    4883   case 256: 
    4884 /* Line 1807 of yacc.c  */ 
    4885 #line 1118 "fortran.y" 
    4886     { sprintf((yyval.na),"SIN(%s)",(yyvsp[(3) - (4)].na));} 
    4887     break; 
    4888  
    4889   case 257: 
    4890 /* Line 1807 of yacc.c  */ 
    4891 #line 1119 "fortran.y" 
    4892     { sprintf((yyval.na),"SINH(%s)",(yyvsp[(3) - (4)].na));} 
    4893     break; 
    4894  
    4895   case 258: 
    4896 /* Line 1807 of yacc.c  */ 
    4897 #line 1120 "fortran.y" 
    4898     { sprintf((yyval.na),"ASIN(%s)",(yyvsp[(3) - (4)].na));} 
    4899     break; 
    4900  
    4901   case 259: 
    4902 /* Line 1807 of yacc.c  */ 
    4903 #line 1121 "fortran.y" 
    4904     { sprintf((yyval.na),"LOG(%s)",(yyvsp[(3) - (4)].na));} 
    4905     break; 
    4906  
    4907   case 260: 
    4908 /* Line 1807 of yacc.c  */ 
    4909 #line 1122 "fortran.y" 
    4910     { sprintf((yyval.na),"TAN(%s)",(yyvsp[(3) - (4)].na));} 
    4911     break; 
    4912  
    4913   case 261: 
    4914 /* Line 1807 of yacc.c  */ 
    4915 #line 1123 "fortran.y" 
    4916     { sprintf((yyval.na),"ATAN(%s)",(yyvsp[(3) - (4)].na));} 
    4917     break; 
    4918  
    4919   case 262: 
    4920 /* Line 1807 of yacc.c  */ 
    4921 #line 1124 "fortran.y" 
    4922     { sprintf((yyval.na),"ABS(%s)",(yyvsp[(2) - (3)].na));} 
    4923     break; 
    4924  
    4925   case 263: 
    4926 /* Line 1807 of yacc.c  */ 
    4927 #line 1125 "fortran.y" 
    4928     { sprintf((yyval.na),"MOD(%s)",(yyvsp[(3) - (4)].na));} 
    4929     break; 
    4930  
    4931   case 264: 
    4932 /* Line 1807 of yacc.c  */ 
    4933 #line 1126 "fortran.y" 
    4934     { sprintf((yyval.na),"SIGN(%s)",(yyvsp[(2) - (3)].na));} 
    4935     break; 
    4936  
    4937   case 265: 
    4938 /* Line 1807 of yacc.c  */ 
    4939 #line 1127 "fortran.y" 
    4940     { sprintf((yyval.na),"MINLOC(%s)",(yyvsp[(3) - (4)].na));} 
    4941     break; 
    4942  
    4943   case 266: 
    4944 /* Line 1807 of yacc.c  */ 
    4945 #line 1128 "fortran.y" 
    4946     { sprintf((yyval.na),"MAXLOC(%s)",(yyvsp[(3) - (4)].na));} 
    4947     break; 
    4948  
    4949   case 267: 
    4950 /* Line 1807 of yacc.c  */ 
    4951 #line 1130 "fortran.y" 
    4952     {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    4953     break; 
    4954  
    4955   case 268: 
    4956 /* Line 1807 of yacc.c  */ 
    4957 #line 1131 "fortran.y" 
    4958     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    4959     break; 
    4960  
    4961   case 269: 
    4962 /* Line 1807 of yacc.c  */ 
    4963 #line 1133 "fortran.y" 
    4964     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4965     break; 
    4966  
    4967   case 270: 
    4968 /* Line 1807 of yacc.c  */ 
    4969 #line 1134 "fortran.y" 
    4970     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4971     break; 
    4972  
    4973   case 271: 
    4974 /* Line 1807 of yacc.c  */ 
    4975 #line 1135 "fortran.y" 
    4976     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    4977     break; 
    4978  
    4979   case 272: 
    4980 /* Line 1807 of yacc.c  */ 
    4981 #line 1136 "fortran.y" 
    4982     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    4983     break; 
    4984  
    4985   case 273: 
    4986 /* Line 1807 of yacc.c  */ 
    4987 #line 1137 "fortran.y" 
    4988     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    4989     break; 
    4990  
    4991   case 274: 
    4992 /* Line 1807 of yacc.c  */ 
    4993 #line 1138 "fortran.y" 
    4994     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    4995     break; 
    4996  
    4997   case 275: 
    4998 /* Line 1807 of yacc.c  */ 
    4999 #line 1140 "fortran.y" 
    5000     { strcpy((yyval.na),"+"); } 
    5001     break; 
    5002  
    5003   case 276: 
    5004 /* Line 1807 of yacc.c  */ 
    5005 #line 1141 "fortran.y" 
    5006     { strcpy((yyval.na),"-"); } 
    5007     break; 
    5008  
    5009   case 277: 
    5010 /* Line 1807 of yacc.c  */ 
    5011 #line 1145 "fortran.y" 
    5012     { sprintf((yyval.na),"+%s",(yyvsp[(2) - (2)].na)); } 
    5013     break; 
    5014  
    5015   case 278: 
    5016 /* Line 1807 of yacc.c  */ 
    5017 #line 1146 "fortran.y" 
    5018     { sprintf((yyval.na),"-%s",(yyvsp[(2) - (2)].na)); } 
    5019     break; 
    5020  
    5021   case 279: 
    5022 /* Line 1807 of yacc.c  */ 
    5023 #line 1147 "fortran.y" 
    5024     { sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na)); } 
    5025     break; 
    5026  
    5027   case 280: 
    5028 /* Line 1807 of yacc.c  */ 
    5029 #line 1148 "fortran.y" 
    5030     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5031     break; 
    5032  
    5033   case 281: 
    5034 /* Line 1807 of yacc.c  */ 
    50354336#line 1149 "fortran.y" 
    5036     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5037     break; 
    5038  
    5039   case 282: 
    5040 /* Line 1807 of yacc.c  */ 
    5041 #line 1150 "fortran.y" 
    5042     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5043     break; 
    5044  
    5045   case 283: 
    5046 /* Line 1807 of yacc.c  */ 
    5047 #line 1151 "fortran.y" 
    5048     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5049     break; 
    5050  
    5051   case 284: 
    5052 /* Line 1807 of yacc.c  */ 
    5053 #line 1152 "fortran.y" 
    5054     { sprintf((yyval.na)," > %s",(yyvsp[(2) - (2)].na)); } 
    5055     break; 
    5056  
    5057   case 285: 
    5058 /* Line 1807 of yacc.c  */ 
    5059 #line 1153 "fortran.y" 
    5060     { sprintf((yyval.na)," < %s",(yyvsp[(2) - (2)].na)); } 
    5061     break; 
    5062  
    5063   case 286: 
    5064 /* Line 1807 of yacc.c  */ 
    5065 #line 1154 "fortran.y" 
    5066     { sprintf((yyval.na)," >= %s",(yyvsp[(3) - (3)].na)); } 
    5067     break; 
    5068  
    5069   case 287: 
    5070 /* Line 1807 of yacc.c  */ 
    5071 #line 1155 "fortran.y" 
    5072     { sprintf((yyval.na)," <= %s",(yyvsp[(3) - (3)].na)); } 
    5073     break; 
    5074  
    5075   case 288: 
    5076 /* Line 1807 of yacc.c  */ 
    5077 #line 1156 "fortran.y" 
    5078     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5079     break; 
    5080  
    5081   case 289: 
    5082 /* Line 1807 of yacc.c  */ 
    5083 #line 1157 "fortran.y" 
    5084     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5085     break; 
    5086  
    5087   case 290: 
    5088 /* Line 1807 of yacc.c  */ 
    5089 #line 1158 "fortran.y" 
    5090     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5091     break; 
    5092  
    5093   case 291: 
    5094 /* Line 1807 of yacc.c  */ 
    5095 #line 1159 "fortran.y" 
    5096     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5097     break; 
    5098  
    5099   case 292: 
    5100 /* Line 1807 of yacc.c  */ 
    5101 #line 1160 "fortran.y" 
    5102     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5103     break; 
    5104  
    5105   case 293: 
    5106 /* Line 1807 of yacc.c  */ 
    5107 #line 1161 "fortran.y" 
    5108     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5109     break; 
    5110  
    5111   case 294: 
    5112 /* Line 1807 of yacc.c  */ 
    5113 #line 1162 "fortran.y" 
    5114     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5115     break; 
    5116  
    5117   case 295: 
    5118 /* Line 1807 of yacc.c  */ 
    5119 #line 1163 "fortran.y" 
    5120     { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    5121     break; 
    5122  
    5123   case 296: 
    5124 /* Line 1807 of yacc.c  */ 
    5125 #line 1164 "fortran.y" 
    5126     { sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na)); } 
    5127     break; 
    5128  
    5129   case 297: 
    5130 /* Line 1807 of yacc.c  */ 
    5131 #line 1165 "fortran.y" 
    5132     { sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na)); } 
    5133     break; 
    5134  
    5135   case 298: 
    5136 /* Line 1807 of yacc.c  */ 
    5137 #line 1167 "fortran.y" 
    5138     { strcpy((yyval.na),""); } 
    5139     break; 
    5140  
    5141   case 299: 
    5142 /* Line 1807 of yacc.c  */ 
    5143 #line 1168 "fortran.y" 
    5144     { sprintf((yyval.na),"/%s",(yyvsp[(1) - (1)].na)); } 
    5145     break; 
    5146  
    5147   case 300: 
    5148 /* Line 1807 of yacc.c  */ 
    5149 #line 1169 "fortran.y" 
    5150     { sprintf((yyval.na),"/= %s",(yyvsp[(2) - (2)].na));} 
    5151     break; 
    5152  
    5153   case 301: 
    5154 /* Line 1807 of yacc.c  */ 
    5155 #line 1170 "fortran.y" 
    5156     { sprintf((yyval.na),"//%s",(yyvsp[(2) - (2)].na)); } 
    5157     break; 
    5158  
    5159   case 302: 
    5160 /* Line 1807 of yacc.c  */ 
    5161 #line 1173 "fortran.y" 
    5162     { sprintf((yyval.na),"==%s",(yyvsp[(2) - (2)].na)); } 
    5163     break; 
    5164  
    5165   case 303: 
    5166 /* Line 1807 of yacc.c  */ 
    5167 #line 1174 "fortran.y" 
    5168     { sprintf((yyval.na),"= %s",(yyvsp[(1) - (1)].na)); } 
    5169     break; 
    5170  
    5171   case 304: 
    5172 /* Line 1807 of yacc.c  */ 
    5173 #line 1177 "fortran.y" 
    5174     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    5175     break; 
    5176  
    5177   case 305: 
    5178 /* Line 1807 of yacc.c  */ 
    5179 #line 1178 "fortran.y" 
    5180     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    5181     break; 
    5182  
    5183   case 306: 
    5184 /* Line 1807 of yacc.c  */ 
    5185 #line 1179 "fortran.y" 
    5186     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    5187     break; 
    5188  
    5189   case 307: 
    5190 /* Line 1807 of yacc.c  */ 
    5191 #line 1183 "fortran.y" 
    51924337    { 
    51934338            agrif_parentcall = 0; 
     
    52014346    break; 
    52024347 
    5203   case 308: 
    5204 /* Line 1807 of yacc.c  */ 
    5205 #line 1194 "fortran.y" 
     4348  case 65: 
     4349/* Line 1807 of yacc.c  */ 
     4350#line 1160 "fortran.y" 
    52064351    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); if ( incalldeclare == 0 ) inagrifcallargument = 0;   } 
    52074352    break; 
    52084353 
    5209   case 309: 
    5210 /* Line 1807 of yacc.c  */ 
    5211 #line 1195 "fortran.y" 
     4354  case 66: 
     4355/* Line 1807 of yacc.c  */ 
     4356#line 1161 "fortran.y" 
    52124357    { sprintf((yyval.na)," %s %s ",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    52134358    break; 
    52144359 
    5215   case 310: 
    5216 /* Line 1807 of yacc.c  */ 
    5217 #line 1196 "fortran.y" 
    5218     { sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (4)].na),(yyvsp[(3) - (4)].na)); } 
    5219     break; 
    5220  
    5221   case 311: 
    5222 /* Line 1807 of yacc.c  */ 
    5223 #line 1197 "fortran.y" 
    5224     { sprintf((yyval.na)," %s ( %s ) %s ",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na)); } 
    5225     break; 
    5226  
    5227   case 312: 
    5228 /* Line 1807 of yacc.c  */ 
    5229 #line 1201 "fortran.y" 
     4360  case 67: 
     4361/* Line 1807 of yacc.c  */ 
     4362#line 1162 "fortran.y" 
     4363    {in_complex_literal=0;} 
     4364    break; 
     4365 
     4366  case 68: 
     4367/* Line 1807 of yacc.c  */ 
     4368#line 1162 "fortran.y" 
     4369    { sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (5)].na),(yyvsp[(4) - (5)].na)); } 
     4370    break; 
     4371 
     4372  case 69: 
     4373/* Line 1807 of yacc.c  */ 
     4374#line 1163 "fortran.y" 
     4375    {in_complex_literal=0;} 
     4376    break; 
     4377 
     4378  case 70: 
     4379/* Line 1807 of yacc.c  */ 
     4380#line 1163 "fortran.y" 
     4381    { sprintf((yyval.na)," %s ( %s ) %s ",(yyvsp[(1) - (6)].na),(yyvsp[(4) - (6)].na),(yyvsp[(6) - (6)].na)); } 
     4382    break; 
     4383 
     4384  case 72: 
     4385/* Line 1807 of yacc.c  */ 
     4386#line 1166 "fortran.y" 
     4387    {in_complex_literal=0;} 
     4388    break; 
     4389 
     4390  case 73: 
     4391/* Line 1807 of yacc.c  */ 
     4392#line 1167 "fortran.y" 
    52304393    { 
    52314394            if ( inside_type_declare ) break; 
    5232             sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (4)].na),(yyvsp[(3) - (4)].na)); 
    5233             ModifyTheAgrifFunction_0((yyvsp[(3) - (4)].na)); 
     4395            sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (5)].na),(yyvsp[(4) - (5)].na)); 
     4396            ModifyTheAgrifFunction_0((yyvsp[(4) - (5)].na)); 
    52344397            agrif_parentcall = 0; 
    52354398        } 
    52364399    break; 
    52374400 
    5238   case 313: 
    5239 /* Line 1807 of yacc.c  */ 
    5240 #line 1210 "fortran.y" 
     4401  case 74: 
     4402/* Line 1807 of yacc.c  */ 
     4403#line 1176 "fortran.y" 
    52414404    { 
    52424405            sprintf((yyval.na)," %s %% %s ",(yyvsp[(1) - (4)].na),(yyvsp[(4) - (4)].na)); 
     
    52454408    break; 
    52464409 
    5247   case 314: 
    5248 /* Line 1807 of yacc.c  */ 
    5249 #line 1216 "fortran.y" 
    5250     { sprintf((yyval.na),"(/%s/)",(yyvsp[(2) - (3)].na)); } 
    5251     break; 
    5252  
    5253   case 315: 
    5254 /* Line 1807 of yacc.c  */ 
    5255 #line 1219 "fortran.y" 
     4410  case 75: 
     4411/* Line 1807 of yacc.c  */ 
     4412#line 1187 "fortran.y" 
    52564413    { strcpy((yyval.na)," "); } 
    52574414    break; 
    52584415 
    5259   case 316: 
    5260 /* Line 1807 of yacc.c  */ 
    5261 #line 1220 "fortran.y" 
     4416  case 76: 
     4417/* Line 1807 of yacc.c  */ 
     4418#line 1188 "fortran.y" 
    52624419    { strcpy((yyval.na),(yyvsp[(2) - (2)].na)); } 
    52634420    break; 
    52644421 
    5265   case 317: 
    5266 /* Line 1807 of yacc.c  */ 
    5267 #line 1223 "fortran.y" 
     4422  case 77: 
     4423/* Line 1807 of yacc.c  */ 
     4424#line 1191 "fortran.y" 
    52684425    {  strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    52694426    break; 
    52704427 
    5271   case 318: 
    5272 /* Line 1807 of yacc.c  */ 
    5273 #line 1224 "fortran.y" 
     4428  case 78: 
     4429/* Line 1807 of yacc.c  */ 
     4430#line 1192 "fortran.y" 
    52744431    {  sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    52754432    break; 
    52764433 
    5277   case 319: 
    5278 /* Line 1807 of yacc.c  */ 
    5279 #line 1227 "fortran.y" 
     4434  case 79: 
     4435/* Line 1807 of yacc.c  */ 
     4436#line 1195 "fortran.y" 
    52804437    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    52814438    break; 
    52824439 
    5283   case 320: 
    5284 /* Line 1807 of yacc.c  */ 
    5285 #line 1228 "fortran.y" 
     4440  case 80: 
     4441/* Line 1807 of yacc.c  */ 
     4442#line 1196 "fortran.y" 
    52864443    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    52874444    break; 
    52884445 
    5289   case 321: 
    5290 /* Line 1807 of yacc.c  */ 
    5291 #line 1231 "fortran.y" 
     4446  case 81: 
     4447/* Line 1807 of yacc.c  */ 
     4448#line 1199 "fortran.y" 
    52924449    {  sprintf((yyval.na),"%s :%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
    52934450    break; 
    52944451 
    5295   case 322: 
    5296 /* Line 1807 of yacc.c  */ 
    5297 #line 1232 "fortran.y" 
     4452  case 82: 
     4453/* Line 1807 of yacc.c  */ 
     4454#line 1200 "fortran.y" 
    52984455    {  sprintf((yyval.na),"%s :%s :%s",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));} 
    52994456    break; 
    53004457 
    5301   case 323: 
    5302 /* Line 1807 of yacc.c  */ 
    5303 #line 1233 "fortran.y" 
     4458  case 83: 
     4459/* Line 1807 of yacc.c  */ 
     4460#line 1201 "fortran.y" 
    53044461    {  sprintf((yyval.na),":%s :%s",(yyvsp[(2) - (4)].na),(yyvsp[(4) - (4)].na));} 
    53054462    break; 
    53064463 
    5307   case 324: 
    5308 /* Line 1807 of yacc.c  */ 
    5309 #line 1234 "fortran.y" 
     4464  case 84: 
     4465/* Line 1807 of yacc.c  */ 
     4466#line 1202 "fortran.y" 
    53104467    {  sprintf((yyval.na),": : %s",(yyvsp[(3) - (3)].na));} 
    53114468    break; 
    53124469 
    5313   case 325: 
    5314 /* Line 1807 of yacc.c  */ 
    5315 #line 1235 "fortran.y" 
     4470  case 85: 
     4471/* Line 1807 of yacc.c  */ 
     4472#line 1203 "fortran.y" 
    53164473    {  sprintf((yyval.na),":%s",(yyvsp[(2) - (2)].na));} 
    53174474    break; 
    53184475 
    5319   case 326: 
    5320 /* Line 1807 of yacc.c  */ 
    5321 #line 1236 "fortran.y" 
     4476  case 86: 
     4477/* Line 1807 of yacc.c  */ 
     4478#line 1204 "fortran.y" 
    53224479    {  sprintf((yyval.na),"%s :",(yyvsp[(1) - (2)].na));} 
    53234480    break; 
    53244481 
    5325   case 327: 
    5326 /* Line 1807 of yacc.c  */ 
    5327 #line 1237 "fortran.y" 
     4482  case 87: 
     4483/* Line 1807 of yacc.c  */ 
     4484#line 1205 "fortran.y" 
    53284485    {  sprintf((yyval.na),":");} 
    53294486    break; 
    53304487 
    5331   case 328: 
    5332 /* Line 1807 of yacc.c  */ 
    5333 #line 1240 "fortran.y" 
     4488  case 88: 
     4489/* Line 1807 of yacc.c  */ 
     4490#line 1208 "fortran.y" 
    53344491    { 
     4492       //  if (indeclaration == 1) break; 
    53354493            if ( afterpercent == 0 ) 
    53364494            { 
     
    53774535    break; 
    53784536 
    5379   case 329: 
    5380 /* Line 1807 of yacc.c  */ 
    5381 #line 1285 "fortran.y" 
     4537  case 89: 
     4538/* Line 1807 of yacc.c  */ 
     4539#line 1254 "fortran.y" 
    53824540    { strcpy((yyval.na),".TRUE.");} 
    53834541    break; 
    53844542 
    5385   case 330: 
    5386 /* Line 1807 of yacc.c  */ 
    5387 #line 1286 "fortran.y" 
     4543  case 90: 
     4544/* Line 1807 of yacc.c  */ 
     4545#line 1255 "fortran.y" 
    53884546    { strcpy((yyval.na),".FALSE.");} 
    53894547    break; 
    53904548 
    5391   case 331: 
    5392 /* Line 1807 of yacc.c  */ 
    5393 #line 1287 "fortran.y" 
     4549  case 91: 
     4550/* Line 1807 of yacc.c  */ 
     4551#line 1256 "fortran.y" 
    53944552    { strcpy((yyval.na),"NULL()"); } 
    53954553    break; 
    53964554 
    5397   case 332: 
    5398 /* Line 1807 of yacc.c  */ 
    5399 #line 1288 "fortran.y" 
     4555  case 92: 
     4556/* Line 1807 of yacc.c  */ 
     4557#line 1257 "fortran.y" 
    54004558    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    54014559    break; 
    54024560 
    5403   case 333: 
    5404 /* Line 1807 of yacc.c  */ 
    5405 #line 1289 "fortran.y" 
     4561  case 93: 
     4562/* Line 1807 of yacc.c  */ 
     4563#line 1258 "fortran.y" 
    54064564    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    54074565    break; 
    54084566 
    5409   case 334: 
    5410 /* Line 1807 of yacc.c  */ 
    5411 #line 1290 "fortran.y" 
     4567  case 94: 
     4568/* Line 1807 of yacc.c  */ 
     4569#line 1259 "fortran.y" 
    54124570    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    54134571    break; 
    54144572 
    5415   case 335: 
    5416 /* Line 1807 of yacc.c  */ 
    5417 #line 1292 "fortran.y" 
     4573  case 95: 
     4574/* Line 1807 of yacc.c  */ 
     4575#line 1261 "fortran.y" 
    54184576    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
    54194577    break; 
    54204578 
    5421   case 337: 
    5422 /* Line 1807 of yacc.c  */ 
    5423 #line 1296 "fortran.y" 
     4579  case 97: 
     4580/* Line 1807 of yacc.c  */ 
     4581#line 1265 "fortran.y" 
    54244582    { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    54254583    break; 
    54264584 
    5427   case 339: 
    5428 /* Line 1807 of yacc.c  */ 
    5429 #line 1298 "fortran.y" 
     4585  case 99: 
     4586/* Line 1807 of yacc.c  */ 
     4587#line 1267 "fortran.y" 
    54304588    { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    54314589    break; 
    54324590 
    5433   case 340: 
    5434 /* Line 1807 of yacc.c  */ 
    5435 #line 1299 "fortran.y" 
     4591  case 100: 
     4592/* Line 1807 of yacc.c  */ 
     4593#line 1268 "fortran.y" 
    54364594    { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    54374595    break; 
    54384596 
    5439   case 341: 
    5440 /* Line 1807 of yacc.c  */ 
    5441 #line 1301 "fortran.y" 
     4597  case 101: 
     4598/* Line 1807 of yacc.c  */ 
     4599#line 1270 "fortran.y" 
    54424600    { strcpy((yyval.na)," ");} 
    54434601    break; 
    54444602 
    5445   case 342: 
    5446 /* Line 1807 of yacc.c  */ 
    5447 #line 1302 "fortran.y" 
     4603  case 102: 
     4604/* Line 1807 of yacc.c  */ 
     4605#line 1271 "fortran.y" 
    54484606    { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    54494607    break; 
    54504608 
    5451   case 343: 
    5452 /* Line 1807 of yacc.c  */ 
    5453 #line 1305 "fortran.y" 
    5454     { sprintf((yyval.na),"(%s :%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));} 
    5455     break; 
    5456  
    5457   case 344: 
    5458 /* Line 1807 of yacc.c  */ 
    5459 #line 1307 "fortran.y" 
     4609  case 103: 
     4610/* Line 1807 of yacc.c  */ 
     4611#line 1281 "fortran.y" 
    54604612    { strcpy((yyval.na)," ");} 
    54614613    break; 
    54624614 
    5463   case 345: 
    5464 /* Line 1807 of yacc.c  */ 
    5465 #line 1308 "fortran.y" 
     4615  case 104: 
     4616/* Line 1807 of yacc.c  */ 
     4617#line 1282 "fortran.y" 
    54664618    { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    54674619    break; 
    54684620 
    5469   case 346: 
    5470 /* Line 1807 of yacc.c  */ 
    5471 #line 1311 "fortran.y" 
    5472     { strcpy((yyval.na)," ");} 
    5473     break; 
    5474  
    5475   case 347: 
    5476 /* Line 1807 of yacc.c  */ 
    5477 #line 1312 "fortran.y" 
    5478     { strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    5479     break; 
    5480  
    5481   case 348: 
    5482 /* Line 1807 of yacc.c  */ 
    5483 #line 1314 "fortran.y" 
    5484     { InitialValueGiven = 0; } 
    5485     break; 
    5486  
    5487   case 349: 
    5488 /* Line 1807 of yacc.c  */ 
    5489 #line 1316 "fortran.y" 
    5490     { 
    5491             if ( inside_type_declare ) break; 
    5492             strcpy(InitValue,(yyvsp[(2) - (2)].na)); 
    5493             InitialValueGiven = 1; 
    5494         } 
    5495     break; 
    5496  
    5497   case 350: 
    5498 /* Line 1807 of yacc.c  */ 
    5499 #line 1322 "fortran.y" 
    5500     { 
    5501             if ( inside_type_declare ) break; 
    5502             strcpy(InitValue,(yyvsp[(2) - (2)].na)); 
    5503             InitialValueGiven = 2; 
    5504         } 
    5505     break; 
    5506  
    5507   case 351: 
    5508 /* Line 1807 of yacc.c  */ 
    5509 #line 1329 "fortran.y" 
    5510     {sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na)); } 
    5511     break; 
    5512  
    5513   case 352: 
    5514 /* Line 1807 of yacc.c  */ 
    5515 #line 1333 "fortran.y" 
    5516     { 
    5517             /* if variables has been declared in a subroutine       */ 
    5518             sprintf(charusemodule, "%s", (yyvsp[(2) - (2)].na)); 
    5519             if ( firstpass ) 
    5520             { 
    5521                 Add_NameOfModuleUsed_1((yyvsp[(2) - (2)].na)); 
    5522             } 
    5523             else 
    5524             { 
    5525                 if ( insubroutinedeclare ) 
    5526                     copyuse_0((yyvsp[(2) - (2)].na)); 
    5527  
    5528                 if ( inmoduledeclare == 0 ) 
    5529                 { 
    5530                     pos_end = setposcur(); 
    5531                     RemoveWordSET_0(fortran_out,pos_curuse,pos_end-pos_curuse); 
    5532                 } 
    5533             } 
    5534         } 
    5535     break; 
    5536  
    5537   case 353: 
    5538 /* Line 1807 of yacc.c  */ 
    5539 #line 1353 "fortran.y" 
    5540     { 
    5541             if ( firstpass ) 
    5542             { 
    5543                 if ( insubroutinedeclare ) 
    5544                 { 
    5545                     Add_CouplePointed_Var_1((yyvsp[(2) - (4)].na),(yyvsp[(4) - (4)].lc)); 
    5546                     coupletmp = (yyvsp[(4) - (4)].lc); 
    5547                     strcpy(ligne,""); 
    5548                     while ( coupletmp ) 
    5549                     { 
    5550                         strcat(ligne, coupletmp->c_namevar); 
    5551                         strcat(ligne, " => "); 
    5552                         strcat(ligne, coupletmp->c_namepointedvar); 
    5553                         coupletmp = coupletmp->suiv; 
    5554                         if ( coupletmp ) strcat(ligne,","); 
    5555                     } 
    5556                     sprintf(charusemodule,"%s",(yyvsp[(2) - (4)].na)); 
    5557                 } 
    5558                 Add_NameOfModuleUsed_1((yyvsp[(2) - (4)].na)); 
    5559             } 
    5560             if ( inmoduledeclare == 0 ) 
    5561             { 
    5562                 pos_end = setposcur(); 
    5563                 RemoveWordSET_0(fortran_out,pos_curuse,pos_end-pos_curuse); 
    5564             } 
    5565         } 
    5566     break; 
    5567  
    5568   case 354: 
    5569 /* Line 1807 of yacc.c  */ 
    5570 #line 1380 "fortran.y" 
    5571     { 
    5572             /* if variables has been declared in a subroutine       */ 
    5573             sprintf(charusemodule,"%s",(yyvsp[(2) - (6)].na)); 
    5574             if ( firstpass ) 
    5575             { 
    5576                 Add_NameOfModuleUsed_1((yyvsp[(2) - (6)].na)); 
    5577             } 
    5578             else 
    5579             { 
    5580                 if ( insubroutinedeclare ) 
    5581                     copyuseonly_0((yyvsp[(2) - (6)].na)); 
    5582  
    5583                 if ( inmoduledeclare == 0 ) 
    5584                 { 
    5585                     pos_end = setposcur(); 
    5586                     RemoveWordSET_0(fortran_out,pos_curuse,pos_end-pos_curuse); 
    5587                 } 
    5588             } 
    5589         } 
    5590     break; 
    5591  
    5592   case 355: 
    5593 /* Line 1807 of yacc.c  */ 
    5594 #line 1400 "fortran.y" 
    5595     { 
    5596             /* if variables has been declared in a subroutine      */ 
    5597             if ( firstpass ) 
    5598             { 
    5599                 if ( insubroutinedeclare ) 
    5600                 { 
    5601                     Add_CouplePointed_Var_1((yyvsp[(2) - (6)].na),(yyvsp[(6) - (6)].lc)); 
    5602                     coupletmp = (yyvsp[(6) - (6)].lc); 
    5603                     strcpy(ligne,""); 
    5604                     while ( coupletmp ) 
    5605                     { 
    5606                         strcat(ligne,coupletmp->c_namevar); 
    5607                         if ( strcasecmp(coupletmp->c_namepointedvar,"") )   strcat(ligne," => "); 
    5608                         strcat(ligne,coupletmp->c_namepointedvar); 
    5609                         coupletmp = coupletmp->suiv; 
    5610                         if ( coupletmp ) strcat(ligne,","); 
    5611                     } 
    5612                     sprintf(charusemodule,"%s",(yyvsp[(2) - (6)].na)); 
    5613                 } 
    5614                 Add_NameOfModuleUsed_1((yyvsp[(2) - (6)].na)); 
    5615             } 
    5616             else /* if ( firstpass == 0 ) */ 
    5617             { 
    5618                 if ( inmoduledeclare == 0 ) 
    5619                 { 
    5620                     pos_end = setposcur(); 
    5621                     RemoveWordSET_0(fortran_out,pos_curuse,pos_end-pos_curuse); 
    5622                     if (oldfortran_out)  variableisglobalinmodule((yyvsp[(6) - (6)].lc),(yyvsp[(2) - (6)].na),oldfortran_out,pos_curuseold); 
    5623                 } 
    5624                 else 
    5625                 { 
    5626                     /* if we are in the module declare and if the    */ 
    5627                     /* onlylist is a list of global variable         */ 
    5628                     variableisglobalinmodule((yyvsp[(6) - (6)].lc), (yyvsp[(2) - (6)].na), fortran_out,pos_curuse); 
    5629                 } 
    5630             } 
    5631         } 
    5632     break; 
    5633  
    5634   case 356: 
    5635 /* Line 1807 of yacc.c  */ 
    5636 #line 1440 "fortran.y" 
    5637     { 
    5638             pos_curuse = setposcur()-strlen((yyvsp[(1) - (1)].na)); 
    5639             if (firstpass == 0 && oldfortran_out) pos_curuseold = setposcurname(oldfortran_out); 
    5640         } 
    5641     break; 
    5642  
    5643   case 357: 
    5644 /* Line 1807 of yacc.c  */ 
    5645 #line 1447 "fortran.y" 
    5646     { 
    5647             (yyval.lc) = (yyvsp[(1) - (1)].lc); 
    5648         } 
    5649     break; 
    5650  
    5651   case 358: 
    5652 /* Line 1807 of yacc.c  */ 
    5653 #line 1451 "fortran.y" 
    5654     { 
    5655             /* insert the variable in the list $1                 */ 
    5656             (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 
    5657             (yyval.lc) = (yyvsp[(3) - (3)].lc); 
    5658         } 
    5659     break; 
    5660  
    5661   case 359: 
    5662 /* Line 1807 of yacc.c  */ 
    5663 #line 1458 "fortran.y" 
    5664     { 
    5665             coupletmp = (listcouple *) calloc(1,sizeof(listcouple)); 
    5666             strcpy(coupletmp->c_namevar,(yyvsp[(1) - (3)].na)); 
    5667             strcpy(coupletmp->c_namepointedvar,(yyvsp[(3) - (3)].na)); 
    5668             coupletmp->suiv = NULL; 
    5669             (yyval.lc) = coupletmp; 
    5670         } 
    5671     break; 
    5672  
    5673   case 360: 
    5674 /* Line 1807 of yacc.c  */ 
    5675 #line 1467 "fortran.y" 
    5676     {  (yyval.lc) = (yyvsp[(1) - (1)].lc); } 
    5677     break; 
    5678  
    5679   case 361: 
    5680 /* Line 1807 of yacc.c  */ 
    5681 #line 1469 "fortran.y" 
    5682     { 
    5683             /* insert the variable in the list $1                 */ 
    5684             (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 
    5685             (yyval.lc) = (yyvsp[(3) - (3)].lc); 
    5686         } 
    5687     break; 
    5688  
    5689   case 362: 
    5690 /* Line 1807 of yacc.c  */ 
    5691 #line 1477 "fortran.y" 
    5692     { 
    5693             coupletmp = (listcouple *)calloc(1,sizeof(listcouple)); 
    5694             strcpy(coupletmp->c_namevar,(yyvsp[(1) - (3)].na)); 
    5695             strcpy(coupletmp->c_namepointedvar,(yyvsp[(3) - (3)].na)); 
    5696             coupletmp->suiv = NULL; 
    5697             (yyval.lc) = coupletmp; 
    5698             pointedvar = 1; 
    5699             Add_UsedInSubroutine_Var_1((yyvsp[(1) - (3)].na)); 
    5700         } 
    5701     break; 
    5702  
    5703   case 363: 
    5704 /* Line 1807 of yacc.c  */ 
    5705 #line 1487 "fortran.y" 
    5706     { 
    5707             coupletmp = (listcouple *)calloc(1,sizeof(listcouple)); 
    5708             strcpy(coupletmp->c_namevar,(yyvsp[(1) - (1)].na)); 
    5709             strcpy(coupletmp->c_namepointedvar,""); 
    5710             coupletmp->suiv = NULL; 
    5711             (yyval.lc) = coupletmp; 
    5712         } 
    5713     break; 
    5714  
    5715   case 380: 
    5716 /* Line 1807 of yacc.c  */ 
    5717 #line 1522 "fortran.y" 
    5718     { inallocate = 0; } 
    5719     break; 
    5720  
    5721   case 381: 
    5722 /* Line 1807 of yacc.c  */ 
    5723 #line 1523 "fortran.y" 
    5724     { inallocate = 0; } 
    5725     break; 
    5726  
    5727   case 388: 
    5728 /* Line 1807 of yacc.c  */ 
    5729 #line 1531 "fortran.y" 
    5730     { 
    5731             GlobalDeclaration = 0 ; 
    5732             if ( firstpass == 0 && strcasecmp(subroutinename,"") ) 
    5733             { 
    5734                 if ( module_declar && insubroutinedeclare == 0 )    fclose(module_declar); 
    5735             } 
    5736             if ( strcasecmp(subroutinename,"") ) 
    5737             { 
    5738                 if ( inmodulemeet == 1 ) 
    5739                 { 
    5740                     /* we are in a module                                */ 
    5741                     if ( insubroutinedeclare == 1 ) 
    5742                     { 
    5743                         /* it is like an end subroutine <name>            */ 
    5744                         insubroutinedeclare = 0 ; 
    5745                         pos_cur = setposcur(); 
    5746                         closeandcallsubloopandincludeit_0(1); 
    5747                         functiondeclarationisdone = 0; 
    5748                     } 
    5749                     else 
    5750                     { 
    5751                         /* it is like an end module <name>                */ 
    5752                         inmoduledeclare = 0 ; 
    5753                         inmodulemeet = 0 ; 
    5754                     } 
    5755                 } 
    5756                 else 
    5757                 { 
    5758                     insubroutinedeclare = 0; 
    5759                     pos_cur = setposcur(); 
    5760                     closeandcallsubloopandincludeit_0(2); 
    5761                     functiondeclarationisdone = 0; 
    5762                 } 
    5763             } 
    5764             strcpy(subroutinename,""); 
    5765         } 
    5766     break; 
    5767  
    5768   case 389: 
    5769 /* Line 1807 of yacc.c  */ 
    5770 #line 1568 "fortran.y" 
    5771     { 
    5772             insubroutinedeclare = 0; 
    5773             inprogramdeclare = 0; 
    5774             pos_cur = setposcur(); 
    5775             closeandcallsubloopandincludeit_0(3); 
    5776             functiondeclarationisdone = 0; 
    5777             strcpy(subroutinename,""); 
    5778         } 
    5779     break; 
    5780  
    5781   case 390: 
    5782 /* Line 1807 of yacc.c  */ 
    5783 #line 1577 "fortran.y" 
    5784     { 
    5785             if ( strcasecmp(subroutinename,"") ) 
    5786             { 
    5787                 insubroutinedeclare = 0; 
    5788                 pos_cur = setposcur(); 
    5789                 closeandcallsubloopandincludeit_0(1); 
    5790                 functiondeclarationisdone = 0; 
    5791                 strcpy(subroutinename,""); 
    5792             } 
    5793         } 
    5794     break; 
    5795  
    5796   case 391: 
    5797 /* Line 1807 of yacc.c  */ 
    5798 #line 1588 "fortran.y" 
    5799     { 
    5800             insubroutinedeclare = 0; 
    5801             pos_cur = setposcur(); 
    5802             closeandcallsubloopandincludeit_0(0); 
    5803             functiondeclarationisdone = 0; 
    5804             strcpy(subroutinename,""); 
    5805         } 
    5806     break; 
    5807  
    5808   case 392: 
    5809 /* Line 1807 of yacc.c  */ 
    5810 #line 1596 "fortran.y" 
     4621  case 170: 
     4622/* Line 1807 of yacc.c  */ 
     4623#line 1481 "fortran.y" 
    58114624    { 
    58124625            /* if we never meet the contains keyword               */ 
     
    58324645    break; 
    58334646 
     4647  case 190: 
     4648/* Line 1807 of yacc.c  */ 
     4649#line 1534 "fortran.y" 
     4650    {in_complex_literal=0;} 
     4651    break; 
     4652 
     4653  case 193: 
     4654/* Line 1807 of yacc.c  */ 
     4655#line 1558 "fortran.y" 
     4656    {strcpy((yyval.na),"");} 
     4657    break; 
     4658 
     4659  case 197: 
     4660/* Line 1807 of yacc.c  */ 
     4661#line 1568 "fortran.y" 
     4662    {strcpy((yyval.na),"");} 
     4663    break; 
     4664 
     4665  case 198: 
     4666/* Line 1807 of yacc.c  */ 
     4667#line 1570 "fortran.y" 
     4668    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     4669    break; 
     4670 
     4671  case 203: 
     4672/* Line 1807 of yacc.c  */ 
     4673#line 1590 "fortran.y" 
     4674    {pos_cur_decl=my_position_before;} 
     4675    break; 
     4676 
     4677  case 204: 
     4678/* Line 1807 of yacc.c  */ 
     4679#line 1591 "fortran.y" 
     4680    {strcpy((yyval.na),(yyvsp[(2) - (2)].na));} 
     4681    break; 
     4682 
     4683  case 206: 
     4684/* Line 1807 of yacc.c  */ 
     4685#line 1594 "fortran.y" 
     4686    {strcpy(DeclType,"type"); GlobalDeclarationType = 1;} 
     4687    break; 
     4688 
     4689  case 207: 
     4690/* Line 1807 of yacc.c  */ 
     4691#line 1598 "fortran.y" 
     4692    {in_kind_selector = 1;} 
     4693    break; 
     4694 
     4695  case 208: 
     4696/* Line 1807 of yacc.c  */ 
     4697#line 1599 "fortran.y" 
     4698    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,(yyvsp[(1) - (3)].na)); in_kind_selector =0;} 
     4699    break; 
     4700 
     4701  case 209: 
     4702/* Line 1807 of yacc.c  */ 
     4703#line 1600 "fortran.y" 
     4704    {in_kind_selector = 1;} 
     4705    break; 
     4706 
     4707  case 210: 
     4708/* Line 1807 of yacc.c  */ 
     4709#line 1601 "fortran.y" 
     4710    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,(yyvsp[(1) - (3)].na));in_kind_selector =0;} 
     4711    break; 
     4712 
     4713  case 211: 
     4714/* Line 1807 of yacc.c  */ 
     4715#line 1602 "fortran.y" 
     4716    {in_kind_selector = 1;} 
     4717    break; 
     4718 
     4719  case 212: 
     4720/* Line 1807 of yacc.c  */ 
     4721#line 1603 "fortran.y" 
     4722    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,"real"); strcpy(NamePrecision,"8");in_kind_selector =0;} 
     4723    break; 
     4724 
     4725  case 213: 
     4726/* Line 1807 of yacc.c  */ 
     4727#line 1604 "fortran.y" 
     4728    {in_kind_selector = 1;} 
     4729    break; 
     4730 
     4731  case 214: 
     4732/* Line 1807 of yacc.c  */ 
     4733#line 1605 "fortran.y" 
     4734    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,(yyvsp[(1) - (3)].na));in_kind_selector =0;} 
     4735    break; 
     4736 
     4737  case 215: 
     4738/* Line 1807 of yacc.c  */ 
     4739#line 1606 "fortran.y" 
     4740    {in_char_selector = 1;} 
     4741    break; 
     4742 
     4743  case 216: 
     4744/* Line 1807 of yacc.c  */ 
     4745#line 1607 "fortran.y" 
     4746    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,(yyvsp[(1) - (3)].na));in_char_selector = 0;} 
     4747    break; 
     4748 
     4749  case 217: 
     4750/* Line 1807 of yacc.c  */ 
     4751#line 1608 "fortran.y" 
     4752    {in_kind_selector = 1;} 
     4753    break; 
     4754 
     4755  case 218: 
     4756/* Line 1807 of yacc.c  */ 
     4757#line 1609 "fortran.y" 
     4758    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));strcpy(DeclType,(yyvsp[(1) - (3)].na));in_kind_selector =0;} 
     4759    break; 
     4760 
     4761  case 219: 
     4762/* Line 1807 of yacc.c  */ 
     4763#line 1613 "fortran.y" 
     4764    {strcpy((yyval.na),"");strcpy(NamePrecision,"");} 
     4765    break; 
     4766 
     4767  case 220: 
     4768/* Line 1807 of yacc.c  */ 
     4769#line 1615 "fortran.y" 
     4770    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     4771    break; 
     4772 
     4773  case 221: 
     4774/* Line 1807 of yacc.c  */ 
     4775#line 1621 "fortran.y" 
     4776    {sprintf((yyval.na),"(%s)",(yyvsp[(2) - (3)].na)); strcpy(NamePrecision,(yyvsp[(2) - (3)].na));} 
     4777    break; 
     4778 
     4779  case 222: 
     4780/* Line 1807 of yacc.c  */ 
     4781#line 1623 "fortran.y" 
     4782    {sprintf((yyval.na),"(KIND=%s)",(yyvsp[(4) - (5)].na)); strcpy(NamePrecision,(yyvsp[(4) - (5)].na));} 
     4783    break; 
     4784 
     4785  case 223: 
     4786/* Line 1807 of yacc.c  */ 
     4787#line 1625 "fortran.y" 
     4788    {sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na));strcpy(NamePrecision,(yyvsp[(2) - (2)].na));} 
     4789    break; 
     4790 
     4791  case 225: 
     4792/* Line 1807 of yacc.c  */ 
     4793#line 1633 "fortran.y" 
     4794    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     4795    break; 
     4796 
     4797  case 227: 
     4798/* Line 1807 of yacc.c  */ 
     4799#line 1639 "fortran.y" 
     4800    {sprintf((yyval.na),"%s_%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     4801    break; 
     4802 
     4803  case 231: 
     4804/* Line 1807 of yacc.c  */ 
     4805#line 1662 "fortran.y" 
     4806    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     4807    break; 
     4808 
     4809  case 233: 
     4810/* Line 1807 of yacc.c  */ 
     4811#line 1668 "fortran.y" 
     4812    {sprintf((yyval.na),"%s_%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     4813    break; 
     4814 
     4815  case 234: 
     4816/* Line 1807 of yacc.c  */ 
     4817#line 1675 "fortran.y" 
     4818    {sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));} 
     4819    break; 
     4820 
     4821  case 242: 
     4822/* Line 1807 of yacc.c  */ 
     4823#line 1693 "fortran.y" 
     4824    {char_length_toreset = 1;} 
     4825    break; 
     4826 
     4827  case 243: 
     4828/* Line 1807 of yacc.c  */ 
     4829#line 1697 "fortran.y" 
     4830    {strcpy((yyval.na),"");} 
     4831    break; 
     4832 
     4833  case 244: 
     4834/* Line 1807 of yacc.c  */ 
     4835#line 1699 "fortran.y" 
     4836    {strcpy((yyval.na),"");} 
     4837    break; 
     4838 
     4839  case 250: 
     4840/* Line 1807 of yacc.c  */ 
     4841#line 1712 "fortran.y" 
     4842    {strcpy(CharacterSize,(yyvsp[(2) - (3)].na));} 
     4843    break; 
     4844 
     4845  case 251: 
     4846/* Line 1807 of yacc.c  */ 
     4847#line 1714 "fortran.y" 
     4848    {strcpy(CharacterSize,(yyvsp[(4) - (5)].na));} 
     4849    break; 
     4850 
     4851  case 254: 
     4852/* Line 1807 of yacc.c  */ 
     4853#line 1721 "fortran.y" 
     4854    {c_star=1; strcpy(CharacterSize,(yyvsp[(2) - (3)].na));} 
     4855    break; 
     4856 
     4857  case 255: 
     4858/* Line 1807 of yacc.c  */ 
     4859#line 1723 "fortran.y" 
     4860    {c_selectorgiven = 1; strcpy(c_selectorname,(yyvsp[(1) - (1)].na));} 
     4861    break; 
     4862 
     4863  case 261: 
     4864/* Line 1807 of yacc.c  */ 
     4865#line 1738 "fortran.y" 
     4866    { inside_type_declare = 1;} 
     4867    break; 
     4868 
     4869  case 262: 
     4870/* Line 1807 of yacc.c  */ 
     4871#line 1739 "fortran.y" 
     4872    { inside_type_declare = 0;} 
     4873    break; 
     4874 
     4875  case 272: 
     4876/* Line 1807 of yacc.c  */ 
     4877#line 1762 "fortran.y" 
     4878    {in_bind = 0;} 
     4879    break; 
     4880 
     4881  case 291: 
     4882/* Line 1807 of yacc.c  */ 
     4883#line 1806 "fortran.y" 
     4884    {in_complex_literal=0;} 
     4885    break; 
     4886 
     4887  case 296: 
     4888/* Line 1807 of yacc.c  */ 
     4889#line 1816 "fortran.y" 
     4890    { 
     4891            PublicDeclare = 0; 
     4892            PrivateDeclare = 0; 
     4893            ExternalDeclare = 0; 
     4894            strcpy(NamePrecision,""); 
     4895            c_star = 0; 
     4896            InitialValueGiven = 0 ; 
     4897            strcpy(IntentSpec,""); 
     4898            VariableIsParameter =  0 ; 
     4899            Allocatabledeclare = 0 ; 
     4900            Targetdeclare = 0 ; 
     4901            SaveDeclare = 0; 
     4902            pointerdeclare = 0; 
     4903            optionaldeclare = 0 ; 
     4904            dimsgiven=0; 
     4905            c_selectorgiven=0; 
     4906            strcpy(nameinttypename,""); 
     4907            strcpy(c_selectorname,""); 
     4908            GlobalDeclarationType = 0; 
     4909         } 
     4910    break; 
     4911 
     4912  case 306: 
     4913/* Line 1807 of yacc.c  */ 
     4914#line 1859 "fortran.y" 
     4915    {strcpy(my_dim.last,"");} 
     4916    break; 
     4917 
     4918  case 307: 
     4919/* Line 1807 of yacc.c  */ 
     4920#line 1864 "fortran.y" 
     4921    {strcpy(NamePrecision,(yyvsp[(1) - (1)].na));} 
     4922    break; 
     4923 
     4924  case 322: 
     4925/* Line 1807 of yacc.c  */ 
     4926#line 1899 "fortran.y" 
     4927    { sprintf((yyval.na),"(/%s/)",(yyvsp[(2) - (3)].na));} 
     4928    break; 
     4929 
     4930  case 323: 
     4931/* Line 1807 of yacc.c  */ 
     4932#line 1901 "fortran.y" 
     4933    { sprintf((yyval.na),"[%s]",(yyvsp[(2) - (3)].na)); } 
     4934    break; 
     4935 
     4936  case 328: 
     4937/* Line 1807 of yacc.c  */ 
     4938#line 1929 "fortran.y" 
     4939    {sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     4940    break; 
     4941 
     4942  case 331: 
     4943/* Line 1807 of yacc.c  */ 
     4944#line 1939 "fortran.y" 
     4945    {sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));} 
     4946    break; 
     4947 
     4948  case 332: 
     4949/* Line 1807 of yacc.c  */ 
     4950#line 1944 "fortran.y" 
     4951    {sprintf((yyval.na),"%s=%s,%s",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));} 
     4952    break; 
     4953 
     4954  case 333: 
     4955/* Line 1807 of yacc.c  */ 
     4956#line 1946 "fortran.y" 
     4957    {sprintf((yyval.na),"%s=%s,%s,%s",(yyvsp[(1) - (7)].na),(yyvsp[(3) - (7)].na),(yyvsp[(5) - (7)].na),(yyvsp[(7) - (7)].na));} 
     4958    break; 
     4959 
     4960  case 335: 
     4961/* Line 1807 of yacc.c  */ 
     4962#line 1954 "fortran.y" 
     4963    {indeclaration=1;} 
     4964    break; 
     4965 
     4966  case 336: 
     4967/* Line 1807 of yacc.c  */ 
     4968#line 1955 "fortran.y" 
     4969    { 
     4970            /* if the variable is a parameter we can suppose that is*/ 
     4971            /*    value is the same on each grid. It is not useless */ 
     4972            /*    to create a copy of it on each grid               */ 
     4973            if ( ! inside_type_declare ) 
     4974            { 
     4975                pos_end = setposcur(); 
     4976                //printf("POS = %d %d\n",pos_cur_decl,pos_end); 
     4977                RemoveWordSET_0(fortran_out,pos_cur_decl,pos_end-pos_cur_decl); 
     4978 
     4979                ReWriteDeclarationAndAddTosubroutine_01((yyvsp[(4) - (4)].l)); 
     4980                pos_cur_decl = setposcur(); 
     4981                if ( firstpass == 0 && GlobalDeclaration == 0 
     4982                                    && insubroutinedeclare == 0 ) 
     4983                { 
     4984                    fprintf(fortran_out,"\n#include \"Module_Declar_%s.h\"\n", curmodulename); 
     4985                    sprintf(ligne, "Module_Declar_%s.h", curmodulename); 
     4986                    module_declar = open_for_write(ligne); 
     4987                    GlobalDeclaration = 1 ; 
     4988                    pos_cur_decl = setposcur(); 
     4989                } 
     4990 
     4991                if ( firstpass ) 
     4992                { 
     4993                    Add_Globliste_1((yyvsp[(4) - (4)].l)); 
     4994                    if ( insubroutinedeclare ) 
     4995                    { 
     4996                        if ( pointerdeclare ) Add_Pointer_Var_From_List_1((yyvsp[(4) - (4)].l)); 
     4997                        Add_Parameter_Var_1((yyvsp[(4) - (4)].l)); 
     4998                    } 
     4999                    else 
     5000                        Add_GlobalParameter_Var_1((yyvsp[(4) - (4)].l)); 
     5001 
     5002                    /* If there's a SAVE declaration in module's subroutines we should    */ 
     5003                    /*    remove it from the subroutines declaration and add it in the    */ 
     5004                    /*    global declarations                                             */ 
     5005                                         
     5006                    if ( aftercontainsdeclare && SaveDeclare ) 
     5007                    { 
     5008                        if ( inmodulemeet ) Add_SubroutineDeclarationSave_Var_1((yyvsp[(4) - (4)].l)); 
     5009                        else                Add_Save_Var_dcl_1((yyvsp[(4) - (4)].l)); 
     5010                    } 
     5011                } 
     5012            } 
     5013            indeclaration = 0; 
     5014            PublicDeclare = 0; 
     5015            PrivateDeclare = 0; 
     5016            ExternalDeclare = 0; 
     5017            strcpy(NamePrecision,""); 
     5018            c_star = 0; 
     5019            InitialValueGiven = 0 ; 
     5020            strcpy(IntentSpec,""); 
     5021            VariableIsParameter =  0 ; 
     5022            Allocatabledeclare = 0 ; 
     5023            Targetdeclare = 0 ; 
     5024            SaveDeclare = 0; 
     5025            pointerdeclare = 0; 
     5026            optionaldeclare = 0 ; 
     5027            dimsgiven=0; 
     5028            c_selectorgiven=0; 
     5029            strcpy(nameinttypename,""); 
     5030            strcpy(c_selectorname,""); 
     5031            strcpy(DeclType,""); 
     5032            GlobalDeclarationType = 0; 
     5033        } 
     5034    break; 
     5035 
     5036  case 345: 
     5037/* Line 1807 of yacc.c  */ 
     5038#line 2039 "fortran.y" 
     5039    { Allocatabledeclare = 1; } 
     5040    break; 
     5041 
     5042  case 346: 
     5043/* Line 1807 of yacc.c  */ 
     5044#line 2040 "fortran.y" 
     5045    {in_complex_literal=0;} 
     5046    break; 
     5047 
     5048  case 347: 
     5049/* Line 1807 of yacc.c  */ 
     5050#line 2041 "fortran.y" 
     5051    { dimsgiven = 1; curdim = (yyvsp[(4) - (5)].d); } 
     5052    break; 
     5053 
     5054  case 348: 
     5055/* Line 1807 of yacc.c  */ 
     5056#line 2043 "fortran.y" 
     5057    { ExternalDeclare = 1; } 
     5058    break; 
     5059 
     5060  case 349: 
     5061/* Line 1807 of yacc.c  */ 
     5062#line 2044 "fortran.y" 
     5063    {in_complex_literal=0;} 
     5064    break; 
     5065 
     5066  case 350: 
     5067/* Line 1807 of yacc.c  */ 
     5068#line 2045 "fortran.y" 
     5069    { strcpy(IntentSpec,(yyvsp[(4) - (5)].na)); } 
     5070    break; 
     5071 
     5072  case 352: 
     5073/* Line 1807 of yacc.c  */ 
     5074#line 2048 "fortran.y" 
     5075    { optionaldeclare = 1 ; } 
     5076    break; 
     5077 
     5078  case 353: 
     5079/* Line 1807 of yacc.c  */ 
     5080#line 2050 "fortran.y" 
     5081    {VariableIsParameter = 1; } 
     5082    break; 
     5083 
     5084  case 354: 
     5085/* Line 1807 of yacc.c  */ 
     5086#line 2052 "fortran.y" 
     5087    { pointerdeclare = 1 ; } 
     5088    break; 
     5089 
     5090  case 355: 
     5091/* Line 1807 of yacc.c  */ 
     5092#line 2054 "fortran.y" 
     5093    { SaveDeclare = 1 ; } 
     5094    break; 
     5095 
     5096  case 356: 
     5097/* Line 1807 of yacc.c  */ 
     5098#line 2056 "fortran.y" 
     5099    { Targetdeclare = 1; } 
     5100    break; 
     5101 
     5102  case 357: 
     5103/* Line 1807 of yacc.c  */ 
     5104#line 2061 "fortran.y" 
     5105    {(yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v));} 
     5106    break; 
     5107 
     5108  case 358: 
     5109/* Line 1807 of yacc.c  */ 
     5110#line 2063 "fortran.y" 
     5111    {(yyval.l)=insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v));} 
     5112    break; 
     5113 
     5114  case 359: 
     5115/* Line 1807 of yacc.c  */ 
     5116#line 2068 "fortran.y" 
     5117    { 
     5118            if ( ! inside_type_declare ) 
     5119            { 
     5120                if (dimsgiven == 1) curvar = createvar((yyvsp[(1) - (4)].na),curdim); 
     5121                else                curvar = createvar((yyvsp[(1) - (4)].na),(yyvsp[(2) - (4)].d)); 
     5122                CreateAndFillin_Curvar(DeclType, curvar); 
     5123                strcpy(curvar->v_typevar,DeclType); 
     5124                curvar->v_catvar = get_cat_var(curvar); 
     5125                 
     5126                if (!strcasecmp(DeclType,"character")) 
     5127                { 
     5128                    if (c_selectorgiven == 1) 
     5129                    { 
     5130                        Save_Length(c_selectorname,1); 
     5131                        strcpy(curvar->v_dimchar,c_selectorname); 
     5132                    } 
     5133                } 
     5134            } 
     5135            strcpy(vallengspec,""); 
     5136            if (char_length_toreset == 1) 
     5137            { 
     5138            c_selectorgiven = 0; 
     5139            c_star = 0; 
     5140            strcpy(c_selectorname,""); 
     5141            strcpy(CharacterSize,""); 
     5142            char_length_toreset = 0; 
     5143            } 
     5144            (yyval.v)=curvar; 
     5145        } 
     5146    break; 
     5147 
     5148  case 362: 
     5149/* Line 1807 of yacc.c  */ 
     5150#line 2107 "fortran.y" 
     5151    {InitialValueGiven = 0; } 
     5152    break; 
     5153 
     5154  case 364: 
     5155/* Line 1807 of yacc.c  */ 
     5156#line 2113 "fortran.y" 
     5157    { 
     5158            if ( inside_type_declare ) break; 
     5159            strcpy(InitValue,(yyvsp[(2) - (2)].na)); 
     5160            InitialValueGiven = 1; 
     5161        } 
     5162    break; 
     5163 
     5164  case 365: 
     5165/* Line 1807 of yacc.c  */ 
     5166#line 2119 "fortran.y" 
     5167    { 
     5168            if ( inside_type_declare ) break; 
     5169            strcpy(InitValue,(yyvsp[(2) - (2)].na)); 
     5170            InitialValueGiven = 2; 
     5171        } 
     5172    break; 
     5173 
     5174  case 366: 
     5175/* Line 1807 of yacc.c  */ 
     5176#line 2125 "fortran.y" 
     5177    { 
     5178            if ( inside_type_declare ) break; 
     5179            strcpy(InitValue,(yyvsp[(2) - (2)].na)); 
     5180            InitialValueGiven = 2; 
     5181        } 
     5182    break; 
     5183 
     5184  case 368: 
     5185/* Line 1807 of yacc.c  */ 
     5186#line 2138 "fortran.y" 
     5187    {PublicDeclare = 1;  } 
     5188    break; 
     5189 
     5190  case 369: 
     5191/* Line 1807 of yacc.c  */ 
     5192#line 2140 "fortran.y" 
     5193    {PrivateDeclare = 1;  } 
     5194    break; 
     5195 
     5196  case 370: 
     5197/* Line 1807 of yacc.c  */ 
     5198#line 2144 "fortran.y" 
     5199    {(yyval.d)=NULL;} 
     5200    break; 
     5201 
     5202  case 371: 
     5203/* Line 1807 of yacc.c  */ 
     5204#line 2145 "fortran.y" 
     5205    {in_complex_literal=0;} 
     5206    break; 
     5207 
     5208  case 372: 
     5209/* Line 1807 of yacc.c  */ 
     5210#line 2146 "fortran.y" 
     5211    {(yyval.d)=(yyvsp[(3) - (4)].d);} 
     5212    break; 
     5213 
     5214  case 373: 
     5215/* Line 1807 of yacc.c  */ 
     5216#line 2151 "fortran.y" 
     5217    {in_bind = 0;} 
     5218    break; 
     5219 
     5220  case 374: 
     5221/* Line 1807 of yacc.c  */ 
     5222#line 2153 "fortran.y" 
     5223    {in_bind = 0;} 
     5224    break; 
     5225 
     5226  case 375: 
     5227/* Line 1807 of yacc.c  */ 
     5228#line 2158 "fortran.y" 
     5229    {(yyval.d)=(yyvsp[(1) - (1)].d);} 
     5230    break; 
     5231 
     5232  case 376: 
     5233/* Line 1807 of yacc.c  */ 
     5234#line 2160 "fortran.y" 
     5235    {(yyval.d)=(yyvsp[(1) - (1)].d);} 
     5236    break; 
     5237 
     5238  case 377: 
     5239/* Line 1807 of yacc.c  */ 
     5240#line 2162 "fortran.y" 
     5241    {(yyval.d)=(yyvsp[(1) - (1)].d);} 
     5242    break; 
     5243 
     5244  case 378: 
     5245/* Line 1807 of yacc.c  */ 
     5246#line 2164 "fortran.y" 
     5247    {(yyval.d)=(yyvsp[(1) - (1)].d);} 
     5248    break; 
     5249 
     5250  case 379: 
     5251/* Line 1807 of yacc.c  */ 
     5252#line 2166 "fortran.y" 
     5253    {(yyval.d)=(yyvsp[(1) - (1)].d);} 
     5254    break; 
     5255 
     5256  case 380: 
     5257/* Line 1807 of yacc.c  */ 
     5258#line 2170 "fortran.y" 
     5259    { 
     5260            (yyval.d) = (listdim*) NULL; 
     5261            if ( inside_type_declare ) break; 
     5262            if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  (yyval.d)=insertdim(NULL,(yyvsp[(1) - (1)].dim1)); 
     5263        } 
     5264    break; 
     5265 
     5266  case 381: 
     5267/* Line 1807 of yacc.c  */ 
     5268#line 2176 "fortran.y" 
     5269    { 
     5270            (yyval.d) = (listdim*) NULL; 
     5271            if ( inside_type_declare ) break; 
     5272            if ( (!inside_type_declare) && created_dimensionlist == 1 ) (yyval.d)=insertdim((yyvsp[(1) - (3)].d),(yyvsp[(3) - (3)].dim1)); 
     5273        } 
     5274    break; 
     5275 
     5276  case 382: 
     5277/* Line 1807 of yacc.c  */ 
     5278#line 2185 "fortran.y" 
     5279    {strcpy((yyval.dim1).first,(yyvsp[(1) - (3)].na));  Save_Length((yyvsp[(1) - (3)].na),2); strcpy((yyval.dim1).last,(yyvsp[(3) - (3)].na)); Save_Length((yyvsp[(3) - (3)].na),1); } 
     5280    break; 
     5281 
     5282  case 383: 
     5283/* Line 1807 of yacc.c  */ 
     5284#line 2187 "fortran.y" 
     5285    {strcpy((yyval.dim1).first,"1"); strcpy((yyval.dim1).last,(yyvsp[(1) - (1)].na)); Save_Length((yyvsp[(1) - (1)].na),1);} 
     5286    break; 
     5287 
     5288  case 384: 
     5289/* Line 1807 of yacc.c  */ 
     5290#line 2192 "fortran.y" 
     5291    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     5292    break; 
     5293 
     5294  case 386: 
     5295/* Line 1807 of yacc.c  */ 
     5296#line 2201 "fortran.y" 
     5297    { 
     5298            (yyval.d) = (listdim*) NULL; 
     5299            if ( inside_type_declare ) break; 
     5300            if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  (yyval.d)=insertdim(NULL,(yyvsp[(1) - (1)].dim1)); 
     5301        } 
     5302    break; 
     5303 
     5304  case 387: 
     5305/* Line 1807 of yacc.c  */ 
     5306#line 2207 "fortran.y" 
     5307    { 
     5308            (yyval.d) = (listdim*) NULL; 
     5309            if ( inside_type_declare ) break; 
     5310            if ( (!inside_type_declare) && created_dimensionlist == 1 ) (yyval.d)=insertdim((yyvsp[(1) - (3)].d),(yyvsp[(3) - (3)].dim1)); 
     5311        } 
     5312    break; 
     5313 
     5314  case 388: 
     5315/* Line 1807 of yacc.c  */ 
     5316#line 2216 "fortran.y" 
     5317    { strcpy((yyval.dim1).first,"");  strcpy((yyval.dim1).last,"");  } 
     5318    break; 
     5319 
     5320  case 389: 
     5321/* Line 1807 of yacc.c  */ 
     5322#line 2218 "fortran.y" 
     5323    { strcpy((yyval.dim1).first,(yyvsp[(1) - (2)].na));  Save_Length((yyvsp[(1) - (2)].na),2); strcpy((yyval.dim1).last,""); } 
     5324    break; 
     5325 
     5326  case 390: 
     5327/* Line 1807 of yacc.c  */ 
     5328#line 2223 "fortran.y" 
     5329    { 
     5330            (yyval.d) = (listdim*) NULL; 
     5331            if ( inside_type_declare ) break; 
     5332            if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  (yyval.d)=insertdim(NULL,(yyvsp[(1) - (1)].dim1)); 
     5333        } 
     5334    break; 
     5335 
     5336  case 391: 
     5337/* Line 1807 of yacc.c  */ 
     5338#line 2229 "fortran.y" 
     5339    { 
     5340            (yyval.d) = (listdim*) NULL; 
     5341            if ( inside_type_declare ) break; 
     5342            if ( (!inside_type_declare) && created_dimensionlist == 1 ) (yyval.d)=insertdim((yyvsp[(1) - (3)].d),(yyvsp[(3) - (3)].dim1)); 
     5343        } 
     5344    break; 
     5345 
     5346  case 392: 
     5347/* Line 1807 of yacc.c  */ 
     5348#line 2238 "fortran.y" 
     5349    { strcpy((yyval.dim1).first,"");  strcpy((yyval.dim1).last,"");  } 
     5350    break; 
     5351 
     5352  case 393: 
     5353/* Line 1807 of yacc.c  */ 
     5354#line 2243 "fortran.y" 
     5355    { 
     5356            (yyval.d) = (listdim*) NULL; 
     5357            if ( inside_type_declare ) break; 
     5358            if ( created_dimensionlist == 1 || agrif_parentcall == 1 )  
     5359            { 
     5360            if (!strcasecmp((yyvsp[(2) - (3)].na),"")) 
     5361            { 
     5362            strcpy(my_dim.first,"1"); 
     5363            } 
     5364            else 
     5365            { 
     5366            strcpy(my_dim.first,(yyvsp[(2) - (3)].na)); 
     5367            } 
     5368            strcpy(my_dim.last,"*"); 
     5369            (yyval.d)=insertdim((yyvsp[(1) - (3)].d),my_dim); 
     5370            strcpy(my_dim.first,""); 
     5371            strcpy(my_dim.last,""); 
     5372            } 
     5373        } 
     5374    break; 
     5375 
     5376  case 394: 
     5377/* Line 1807 of yacc.c  */ 
     5378#line 2265 "fortran.y" 
     5379    {(yyval.d) = (listdim *) NULL;} 
     5380    break; 
     5381 
    58345382  case 395: 
    58355383/* Line 1807 of yacc.c  */ 
    5836 #line 1620 "fortran.y" 
     5384#line 2267 "fortran.y" 
     5385    {(yyval.d) = (yyvsp[(1) - (2)].d);} 
     5386    break; 
     5387 
     5388  case 396: 
     5389/* Line 1807 of yacc.c  */ 
     5390#line 2285 "fortran.y" 
     5391    {strcpy((yyval.na),"");} 
     5392    break; 
     5393 
     5394  case 397: 
     5395/* Line 1807 of yacc.c  */ 
     5396#line 2287 "fortran.y" 
     5397    {strcpy((yyval.na),(yyvsp[(1) - (2)].na));} 
     5398    break; 
     5399 
     5400  case 401: 
     5401/* Line 1807 of yacc.c  */ 
     5402#line 2300 "fortran.y" 
     5403    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     5404    break; 
     5405 
     5406  case 402: 
     5407/* Line 1807 of yacc.c  */ 
     5408#line 2302 "fortran.y" 
     5409    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     5410    break; 
     5411 
     5412  case 403: 
     5413/* Line 1807 of yacc.c  */ 
     5414#line 2304 "fortran.y" 
     5415    { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
     5416    break; 
     5417 
     5418  case 404: 
     5419/* Line 1807 of yacc.c  */ 
     5420#line 2309 "fortran.y" 
     5421    { 
     5422            if ((firstpass == 0) && (PublicDeclare == 1)) 
     5423            { 
     5424                if ((yyvsp[(2) - (2)].lnn)) 
     5425                { 
     5426                    removeglobfromlist(&((yyvsp[(2) - (2)].lnn))); 
     5427                    pos_end = setposcur(); 
     5428                    RemoveWordSET_0(fortran_out,pos_cur,pos_end-pos_cur); 
     5429                    writelistpublic((yyvsp[(2) - (2)].lnn)); 
     5430                } 
     5431            } 
     5432     PublicDeclare = 0; 
     5433     PrivateDeclare = 0; 
     5434     } 
     5435    break; 
     5436 
     5437  case 406: 
     5438/* Line 1807 of yacc.c  */ 
     5439#line 2327 "fortran.y" 
     5440    {(yyval.lnn)=(listname *)NULL;} 
     5441    break; 
     5442 
     5443  case 407: 
     5444/* Line 1807 of yacc.c  */ 
     5445#line 2329 "fortran.y" 
     5446    {(yyval.lnn)=(yyvsp[(2) - (2)].lnn);} 
     5447    break; 
     5448 
     5449  case 408: 
     5450/* Line 1807 of yacc.c  */ 
     5451#line 2333 "fortran.y" 
     5452    {(yyval.lnn)=Insertname(NULL,(yyvsp[(1) - (1)].na),0);} 
     5453    break; 
     5454 
     5455  case 409: 
     5456/* Line 1807 of yacc.c  */ 
     5457#line 2335 "fortran.y" 
     5458    {(yyval.lnn)=Insertname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].na),0);} 
     5459    break; 
     5460 
     5461  case 418: 
     5462/* Line 1807 of yacc.c  */ 
     5463#line 2362 "fortran.y" 
     5464    { 
     5465            /* we should remove the data declaration                */ 
     5466            pos_end = setposcur(); 
     5467            RemoveWordSET_0(fortran_out,pos_curdata,pos_end-pos_curdata); 
     5468            if ( aftercontainsdeclare == 1  && firstpass == 0 ) 
     5469            { 
     5470                ReWriteDataStatement_0(fortran_out); 
     5471                pos_end = setposcur(); 
     5472            } 
     5473            Init_List_Data_Var(); 
     5474        } 
     5475    break; 
     5476 
     5477  case 424: 
     5478/* Line 1807 of yacc.c  */ 
     5479#line 2386 "fortran.y" 
     5480    { 
     5481            if (firstpass == 1)   
     5482            { 
     5483            Add_Data_Var_Names_01(&List_Data_Var,(yyvsp[(1) - (4)].l),(yyvsp[(3) - (4)].lnn)); 
     5484            } 
     5485            else                 Add_Data_Var_Names_01(&List_Data_Var_Cur,(yyvsp[(1) - (4)].l),(yyvsp[(3) - (4)].lnn)); 
     5486        } 
     5487    break; 
     5488 
     5489  case 425: 
     5490/* Line 1807 of yacc.c  */ 
     5491#line 2396 "fortran.y" 
     5492    { (yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v)); } 
     5493    break; 
     5494 
     5495  case 426: 
     5496/* Line 1807 of yacc.c  */ 
     5497#line 2398 "fortran.y" 
     5498    { 
     5499     (yyval.l) = insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v)); 
     5500     } 
     5501    break; 
     5502 
     5503  case 427: 
     5504/* Line 1807 of yacc.c  */ 
     5505#line 2404 "fortran.y" 
     5506    {(yyval.lnn)=Insertname(NULL,(yyvsp[(1) - (1)].na),0);} 
     5507    break; 
     5508 
     5509  case 428: 
     5510/* Line 1807 of yacc.c  */ 
     5511#line 2406 "fortran.y" 
     5512    {(yyval.lnn) = Insertname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].na),1);   } 
     5513    break; 
     5514 
     5515  case 431: 
     5516/* Line 1807 of yacc.c  */ 
     5517#line 2416 "fortran.y" 
     5518    {printf("DOVARIABLE = %s %s %s\n",(yyvsp[(4) - (9)].na),(yyvsp[(6) - (9)].na),(yyvsp[(8) - (9)].na)); 
     5519     printf("AUTRE = %s %s\n",(yyvsp[(2) - (9)].l)->var->v_nomvar,(yyvsp[(2) - (9)].l)->var->v_initialvalue_array); 
     5520     Insertdoloop((yyvsp[(2) - (9)].l)->var,(yyvsp[(4) - (9)].na),(yyvsp[(6) - (9)].na),(yyvsp[(8) - (9)].na),""); 
     5521     (yyval.v)=(yyvsp[(2) - (9)].l)->var; 
     5522     } 
     5523    break; 
     5524 
     5525  case 432: 
     5526/* Line 1807 of yacc.c  */ 
     5527#line 2422 "fortran.y" 
     5528    { 
     5529     Insertdoloop((yyvsp[(2) - (11)].l)->var,(yyvsp[(4) - (11)].na),(yyvsp[(6) - (11)].na),(yyvsp[(8) - (11)].na),(yyvsp[(10) - (11)].na)); 
     5530     (yyval.v)=(yyvsp[(2) - (11)].l)->var; 
     5531     } 
     5532    break; 
     5533 
     5534  case 433: 
     5535/* Line 1807 of yacc.c  */ 
     5536#line 2429 "fortran.y" 
     5537    {(yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v));} 
     5538    break; 
     5539 
     5540  case 434: 
     5541/* Line 1807 of yacc.c  */ 
     5542#line 2431 "fortran.y" 
     5543    {(yyval.l) = insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v));} 
     5544    break; 
     5545 
     5546  case 436: 
     5547/* Line 1807 of yacc.c  */ 
     5548#line 2437 "fortran.y" 
     5549    {(yyval.v)->v_initialvalue_array=Insertname((yyval.v)->v_initialvalue_array,my_dim.last,0); 
     5550     strcpy(my_dim.last,""); 
     5551     } 
     5552    break; 
     5553 
     5554  case 439: 
     5555/* Line 1807 of yacc.c  */ 
     5556#line 2450 "fortran.y" 
     5557    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     5558    break; 
     5559 
     5560  case 440: 
     5561/* Line 1807 of yacc.c  */ 
     5562#line 2452 "fortran.y" 
     5563    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     5564    break; 
     5565 
     5566  case 441: 
     5567/* Line 1807 of yacc.c  */ 
     5568#line 2454 "fortran.y" 
     5569    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     5570    break; 
     5571 
     5572  case 447: 
     5573/* Line 1807 of yacc.c  */ 
     5574#line 2463 "fortran.y" 
     5575    {strcpy((yyval.na),"");} 
     5576    break; 
     5577 
     5578  case 448: 
     5579/* Line 1807 of yacc.c  */ 
     5580#line 2465 "fortran.y" 
     5581    {sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na));} 
     5582    break; 
     5583 
     5584  case 457: 
     5585/* Line 1807 of yacc.c  */ 
     5586#line 2501 "fortran.y" 
     5587    {strcpy(my_dim.last,"");} 
     5588    break; 
     5589 
     5590  case 458: 
     5591/* Line 1807 of yacc.c  */ 
     5592#line 2505 "fortran.y" 
     5593    {positioninblock = 0; pos_curdimension = my_position_before;} 
     5594    break; 
     5595 
     5596  case 459: 
     5597/* Line 1807 of yacc.c  */ 
     5598#line 2507 "fortran.y" 
     5599    { 
     5600            /* if the variable is a parameter we can suppose that is   */ 
     5601            /*    value is the same on each grid. It is not useless to */ 
     5602            /*    create a copy of it on each grid                     */ 
     5603            if ( ! inside_type_declare ) 
     5604            { 
     5605                if ( firstpass ) 
     5606                { 
     5607                    Add_Globliste_1((yyvsp[(4) - (4)].l)); 
     5608                    /* if variableparamlists has been declared in a subroutine   */ 
     5609                    if ( insubroutinedeclare )     Add_Dimension_Var_1((yyvsp[(4) - (4)].l)); 
     5610                     
     5611                    /* Add it to the List_SubroutineDeclaration_Var list if not present */ 
     5612                    /* NB: if not done, a variable declared with DIMENSION but with no type given */ 
     5613                    /* will not be declared by the conv */ 
     5614                    ReWriteDeclarationAndAddTosubroutine_01((yyvsp[(4) - (4)].l)); 
     5615                } 
     5616                else 
     5617                { 
     5618                    pos_end = setposcur(); 
     5619                    RemoveWordSET_0(fortran_out,pos_curdimension,pos_end-pos_curdimension); 
     5620                    ReWriteDeclarationAndAddTosubroutine_01((yyvsp[(4) - (4)].l)); 
     5621                } 
     5622            } 
     5623            PublicDeclare = 0; 
     5624            PrivateDeclare = 0; 
     5625            ExternalDeclare = 0; 
     5626            strcpy(NamePrecision,""); 
     5627            c_star = 0; 
     5628            InitialValueGiven = 0 ; 
     5629            strcpy(IntentSpec,""); 
     5630            VariableIsParameter =  0 ; 
     5631            Allocatabledeclare = 0 ; 
     5632            Targetdeclare = 0 ; 
     5633            SaveDeclare = 0; 
     5634            pointerdeclare = 0; 
     5635            optionaldeclare = 0 ; 
     5636            dimsgiven=0; 
     5637            c_selectorgiven=0; 
     5638            strcpy(nameinttypename,""); 
     5639            strcpy(c_selectorname,""); 
     5640        } 
     5641    break; 
     5642 
     5643  case 461: 
     5644/* Line 1807 of yacc.c  */ 
     5645#line 2552 "fortran.y" 
     5646    {in_complex_literal = 0;} 
     5647    break; 
     5648 
     5649  case 462: 
     5650/* Line 1807 of yacc.c  */ 
     5651#line 2553 "fortran.y" 
     5652    { 
     5653        if ( inside_type_declare ) break; 
     5654        curvar = createvar((yyvsp[(1) - (5)].na),(yyvsp[(4) - (5)].d)); 
     5655        CreateAndFillin_Curvar("", curvar); 
     5656        curlistvar=insertvar(NULL, curvar); 
     5657        (yyval.l) = settype("",curlistvar); 
     5658        strcpy(vallengspec,""); 
     5659     } 
     5660    break; 
     5661 
     5662  case 463: 
     5663/* Line 1807 of yacc.c  */ 
     5664#line 2561 "fortran.y" 
     5665    {in_complex_literal = 0;} 
     5666    break; 
     5667 
     5668  case 464: 
     5669/* Line 1807 of yacc.c  */ 
     5670#line 2562 "fortran.y" 
     5671    { 
     5672        if ( inside_type_declare ) break; 
     5673        curvar = createvar((yyvsp[(3) - (7)].na),(yyvsp[(6) - (7)].d)); 
     5674        CreateAndFillin_Curvar("", curvar); 
     5675        curlistvar = insertvar((yyvsp[(1) - (7)].l), curvar); 
     5676        (yyval.l) = curlistvar; 
     5677        strcpy(vallengspec,""); 
     5678        } 
     5679    break; 
     5680 
     5681  case 465: 
     5682/* Line 1807 of yacc.c  */ 
     5683#line 2574 "fortran.y" 
     5684    { VariableIsParameter = 1; pos_curparameter = setposcur()-9; } 
     5685    break; 
     5686 
     5687  case 466: 
     5688/* Line 1807 of yacc.c  */ 
     5689#line 2575 "fortran.y" 
     5690    { 
     5691            if ( ! inside_type_declare ) 
     5692            { 
     5693                if ( firstpass ) 
     5694                { 
     5695                    if ( insubroutinedeclare )  Add_Parameter_Var_1((yyvsp[(4) - (5)].l)); 
     5696                    else                        Add_GlobalParameter_Var_1((yyvsp[(4) - (5)].l)); 
     5697                } 
     5698                else 
     5699                { 
     5700                    pos_end = setposcur(); 
     5701                    RemoveWordSET_0(fortran_out, pos_curparameter, pos_end-pos_curparameter); 
     5702                } 
     5703            } 
     5704            VariableIsParameter =  0 ; 
     5705        } 
     5706    break; 
     5707 
     5708  case 468: 
     5709/* Line 1807 of yacc.c  */ 
     5710#line 2595 "fortran.y" 
     5711    {(yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v));} 
     5712    break; 
     5713 
     5714  case 469: 
     5715/* Line 1807 of yacc.c  */ 
     5716#line 2597 "fortran.y" 
     5717    {(yyval.l)=insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v));} 
     5718    break; 
     5719 
     5720  case 470: 
     5721/* Line 1807 of yacc.c  */ 
     5722#line 2602 "fortran.y" 
     5723    { 
     5724            if ( inside_type_declare ) break; 
     5725            curvar=(variable *) calloc(1,sizeof(variable)); 
     5726            Init_Variable(curvar); 
     5727            curvar->v_VariableIsParameter = 1; 
     5728            strcpy(curvar->v_nomvar,(yyvsp[(1) - (3)].na)); 
     5729            strcpy(curvar->v_subroutinename,subroutinename); 
     5730            strcpy(curvar->v_modulename,curmodulename); 
     5731            curvar->v_initialvalue=Insertname(curvar->v_initialvalue,(yyvsp[(3) - (3)].na),0); 
     5732            strcpy(curvar->v_commoninfile,cur_filename); 
     5733            Save_Length((yyvsp[(3) - (3)].na),14); 
     5734            (yyval.v) = curvar; 
     5735        } 
     5736    break; 
     5737 
     5738  case 471: 
     5739/* Line 1807 of yacc.c  */ 
     5740#line 2618 "fortran.y" 
     5741    {pos_cursave = my_position_before;} 
     5742    break; 
     5743 
     5744  case 472: 
     5745/* Line 1807 of yacc.c  */ 
     5746#line 2619 "fortran.y" 
     5747    { 
     5748     pos_end = setposcur(); 
     5749     RemoveWordSET_0(fortran_out,pos_cursave,pos_end-pos_cursave); 
     5750     } 
     5751    break; 
     5752 
     5753  case 480: 
     5754/* Line 1807 of yacc.c  */ 
     5755#line 2640 "fortran.y" 
     5756    {if ( ! inside_type_declare ) Add_Save_Var_1((yyvsp[(1) - (1)].na),(listdim*) NULL); } 
     5757    break; 
     5758 
     5759  case 484: 
     5760/* Line 1807 of yacc.c  */ 
     5761#line 2650 "fortran.y" 
     5762    {my_position = my_position_before;} 
     5763    break; 
     5764 
     5765  case 486: 
     5766/* Line 1807 of yacc.c  */ 
     5767#line 2656 "fortran.y" 
     5768    { 
     5769            if ( insubroutinedeclare == 1 ) 
     5770            { 
     5771                Add_ImplicitNoneSubroutine_1(); 
     5772                pos_end = setposcur(); 
     5773                RemoveWordSET_0(fortran_out,my_position,pos_end-my_position); 
     5774            } 
     5775        } 
     5776    break; 
     5777 
     5778  case 504: 
     5779/* Line 1807 of yacc.c  */ 
     5780#line 2708 "fortran.y" 
     5781    {in_complex_literal=0;} 
     5782    break; 
     5783 
     5784  case 511: 
     5785/* Line 1807 of yacc.c  */ 
     5786#line 2723 "fortran.y" 
     5787    { positioninblock = 0; pos_curcommon = my_position_before; indeclaration=1;} 
     5788    break; 
     5789 
     5790  case 512: 
     5791/* Line 1807 of yacc.c  */ 
     5792#line 2724 "fortran.y" 
     5793    { 
     5794            indeclaration = 0; 
     5795            if ( inside_type_declare ) break; 
     5796            pos_end = setposcur(); 
     5797            RemoveWordSET_0(fortran_out,pos_curcommon,pos_end-pos_curcommon); 
     5798     } 
     5799    break; 
     5800 
     5801  case 515: 
     5802/* Line 1807 of yacc.c  */ 
     5803#line 2735 "fortran.y" 
     5804    { 
     5805     if ( inside_type_declare ) break; 
     5806     sprintf(charusemodule,"%s",(yyvsp[(1) - (1)].na)); 
     5807     Add_NameOfCommon_1((yyvsp[(1) - (1)].na),subroutinename); 
     5808     } 
     5809    break; 
     5810 
     5811  case 516: 
     5812/* Line 1807 of yacc.c  */ 
     5813#line 2743 "fortran.y" 
     5814    { 
     5815            strcpy((yyval.na),""); 
     5816            positioninblock=0; 
     5817            strcpy(commonblockname,""); 
     5818        } 
     5819    break; 
     5820 
     5821  case 517: 
     5822/* Line 1807 of yacc.c  */ 
     5823#line 2749 "fortran.y" 
     5824    { 
     5825            strcpy((yyval.na),(yyvsp[(2) - (3)].na)); 
     5826            positioninblock=0; 
     5827            strcpy(commonblockname,(yyvsp[(2) - (3)].na)); 
     5828        } 
     5829    break; 
     5830 
     5831  case 521: 
     5832/* Line 1807 of yacc.c  */ 
     5833#line 2762 "fortran.y" 
     5834    { 
     5835     if ( inside_type_declare ) break; 
     5836     sprintf(charusemodule,"%s",(yyvsp[(3) - (3)].na)); 
     5837     Add_NameOfCommon_1((yyvsp[(3) - (3)].na),subroutinename); 
     5838     } 
     5839    break; 
     5840 
     5841  case 523: 
     5842/* Line 1807 of yacc.c  */ 
     5843#line 2772 "fortran.y" 
     5844    {if ( ! inside_type_declare ) Add_Common_var_1(); } 
     5845    break; 
     5846 
     5847  case 524: 
     5848/* Line 1807 of yacc.c  */ 
     5849#line 2774 "fortran.y" 
     5850    {if ( ! inside_type_declare ) Add_Common_var_1(); } 
     5851    break; 
     5852 
     5853  case 525: 
     5854/* Line 1807 of yacc.c  */ 
     5855#line 2782 "fortran.y" 
     5856    { 
     5857            positioninblock = positioninblock + 1 ; 
     5858            strcpy(commonvar,(yyvsp[(1) - (1)].na)); 
     5859            commondim = (listdim*) NULL; 
     5860        } 
     5861    break; 
     5862 
     5863  case 526: 
     5864/* Line 1807 of yacc.c  */ 
     5865#line 2787 "fortran.y" 
     5866    {in_complex_literal=0;} 
     5867    break; 
     5868 
     5869  case 527: 
     5870/* Line 1807 of yacc.c  */ 
     5871#line 2788 "fortran.y" 
     5872    { 
     5873            positioninblock = positioninblock + 1 ; 
     5874            strcpy(commonvar,(yyvsp[(1) - (5)].na)); 
     5875            commondim = (yyvsp[(4) - (5)].d); 
     5876        } 
     5877    break; 
     5878 
     5879  case 531: 
     5880/* Line 1807 of yacc.c  */ 
     5881#line 2800 "fortran.y" 
     5882    {(yyval.v)=createvar((yyvsp[(1) - (1)].na),NULL);} 
     5883    break; 
     5884 
     5885  case 533: 
     5886/* Line 1807 of yacc.c  */ 
     5887#line 2812 "fortran.y" 
     5888    {if (strcmp(my_dim.last,"")) 
     5889       { 
     5890       (yyval.v)->v_initialvalue_array=Insertname(NULL,my_dim.last,0); 
     5891       } 
     5892       strcpy(my_dim.last,""); 
     5893       } 
     5894    break; 
     5895 
     5896  case 543: 
     5897/* Line 1807 of yacc.c  */ 
     5898#line 2854 "fortran.y" 
     5899    {sprintf((yyval.na),"%s(%s)",(yyvsp[(1) - (4)].na),(yyvsp[(3) - (4)].na));} 
     5900    break; 
     5901 
     5902  case 544: 
     5903/* Line 1807 of yacc.c  */ 
     5904#line 2856 "fortran.y" 
     5905    {sprintf((yyval.na),"%s(%s)",(yyvsp[(1) - (4)].na),(yyvsp[(3) - (4)].na));} 
     5906    break; 
     5907 
     5908  case 545: 
     5909/* Line 1807 of yacc.c  */ 
     5910#line 2871 "fortran.y" 
     5911    {sprintf((yyval.na),"%s:%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     5912    break; 
     5913 
     5914  case 546: 
     5915/* Line 1807 of yacc.c  */ 
     5916#line 2876 "fortran.y" 
     5917    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].v)->v_nomvar,(yyvsp[(2) - (2)].na));} 
     5918    break; 
     5919 
     5920  case 547: 
     5921/* Line 1807 of yacc.c  */ 
     5922#line 2880 "fortran.y" 
     5923    {strcpy((yyval.na),"");} 
     5924    break; 
     5925 
     5926  case 548: 
     5927/* Line 1807 of yacc.c  */ 
     5928#line 2882 "fortran.y" 
     5929    {sprintf((yyval.na),"%s%%%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].v)->v_nomvar);} 
     5930    break; 
     5931 
     5932  case 549: 
     5933/* Line 1807 of yacc.c  */ 
     5934#line 2887 "fortran.y" 
     5935    {(yyval.v)=createvar((yyvsp[(1) - (1)].na),NULL);} 
     5936    break; 
     5937 
     5938  case 550: 
     5939/* Line 1807 of yacc.c  */ 
     5940#line 2888 "fortran.y" 
     5941    {in_complex_literal=0;} 
     5942    break; 
     5943 
     5944  case 551: 
     5945/* Line 1807 of yacc.c  */ 
     5946#line 2889 "fortran.y" 
     5947    {sprintf(ligne,"%s(%s)",(yyvsp[(1) - (5)].na),(yyvsp[(4) - (5)].na));(yyval.v)=createvar((yyvsp[(1) - (5)].na),NULL);strcpy(my_dim.last,(yyvsp[(4) - (5)].na));} 
     5948    break; 
     5949 
     5950  case 553: 
     5951/* Line 1807 of yacc.c  */ 
     5952#line 2905 "fortran.y" 
     5953    {strcpy(my_dim.last,"");} 
     5954    break; 
     5955 
     5956  case 554: 
     5957/* Line 1807 of yacc.c  */ 
     5958#line 2910 "fortran.y" 
     5959    {strcpy(my_dim.last,"");} 
     5960    break; 
     5961 
     5962  case 555: 
     5963/* Line 1807 of yacc.c  */ 
     5964#line 2915 "fortran.y" 
     5965    {strcpy(my_dim.last,"");} 
     5966    break; 
     5967 
     5968  case 556: 
     5969/* Line 1807 of yacc.c  */ 
     5970#line 2917 "fortran.y" 
     5971    {strcpy(my_dim.last,"");} 
     5972    break; 
     5973 
     5974  case 557: 
     5975/* Line 1807 of yacc.c  */ 
     5976#line 2923 "fortran.y" 
     5977    {strcpy((yyval.na),"");} 
     5978    break; 
     5979 
     5980  case 558: 
     5981/* Line 1807 of yacc.c  */ 
     5982#line 2925 "fortran.y" 
     5983    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     5984    break; 
     5985 
     5986  case 559: 
     5987/* Line 1807 of yacc.c  */ 
     5988#line 2927 "fortran.y" 
     5989    {sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     5990    break; 
     5991 
     5992  case 560: 
     5993/* Line 1807 of yacc.c  */ 
     5994#line 2949 "fortran.y" 
     5995    {sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));} 
     5996    break; 
     5997 
     5998  case 561: 
     5999/* Line 1807 of yacc.c  */ 
     6000#line 2951 "fortran.y" 
     6001    {strcpy((yyval.na),":");} 
     6002    break; 
     6003 
     6004  case 562: 
     6005/* Line 1807 of yacc.c  */ 
     6006#line 2953 "fortran.y" 
     6007    {sprintf((yyval.na),":%s",(yyvsp[(2) - (2)].na));} 
     6008    break; 
     6009 
     6010  case 563: 
     6011/* Line 1807 of yacc.c  */ 
     6012#line 2955 "fortran.y" 
     6013    {sprintf((yyval.na),": :%s",(yyvsp[(3) - (3)].na));} 
     6014    break; 
     6015 
     6016  case 564: 
     6017/* Line 1807 of yacc.c  */ 
     6018#line 2957 "fortran.y" 
     6019    {sprintf((yyval.na),":%s :%s",(yyvsp[(2) - (4)].na),(yyvsp[(4) - (4)].na));} 
     6020    break; 
     6021 
     6022  case 565: 
     6023/* Line 1807 of yacc.c  */ 
     6024#line 2959 "fortran.y" 
     6025    {sprintf((yyval.na),"::%s",(yyvsp[(2) - (2)].na));} 
     6026    break; 
     6027 
     6028  case 567: 
     6029/* Line 1807 of yacc.c  */ 
     6030#line 2962 "fortran.y" 
     6031    {sprintf((yyval.na),"%s=%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     6032    break; 
     6033 
     6034  case 568: 
     6035/* Line 1807 of yacc.c  */ 
     6036#line 2964 "fortran.y" 
     6037    {sprintf((yyval.na),"%s=*%s",(yyvsp[(1) - (4)].na),(yyvsp[(4) - (4)].na));} 
     6038    break; 
     6039 
     6040  case 569: 
     6041/* Line 1807 of yacc.c  */ 
     6042#line 2966 "fortran.y" 
     6043    {sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na));} 
     6044    break; 
     6045 
     6046  case 570: 
     6047/* Line 1807 of yacc.c  */ 
     6048#line 2970 "fortran.y" 
     6049    {strcpy((yyval.na),":");} 
     6050    break; 
     6051 
     6052  case 571: 
     6053/* Line 1807 of yacc.c  */ 
     6054#line 2972 "fortran.y" 
     6055    {sprintf((yyval.na),":%s",(yyvsp[(2) - (2)].na));} 
     6056    break; 
     6057 
     6058  case 572: 
     6059/* Line 1807 of yacc.c  */ 
     6060#line 2974 "fortran.y" 
     6061    {sprintf((yyval.na),": :%s",(yyvsp[(3) - (3)].na));} 
     6062    break; 
     6063 
     6064  case 573: 
     6065/* Line 1807 of yacc.c  */ 
     6066#line 2976 "fortran.y" 
     6067    {sprintf((yyval.na),":%s :%s",(yyvsp[(2) - (4)].na),(yyvsp[(4) - (4)].na));} 
     6068    break; 
     6069 
     6070  case 574: 
     6071/* Line 1807 of yacc.c  */ 
     6072#line 2978 "fortran.y" 
     6073    {sprintf((yyval.na),"::%s",(yyvsp[(2) - (2)].na));} 
     6074    break; 
     6075 
     6076  case 575: 
     6077/* Line 1807 of yacc.c  */ 
     6078#line 2980 "fortran.y" 
     6079    {strcpy((yyval.na),"");} 
     6080    break; 
     6081 
     6082  case 577: 
     6083/* Line 1807 of yacc.c  */ 
     6084#line 2998 "fortran.y" 
     6085    {in_complex_literal=0;} 
     6086    break; 
     6087 
     6088  case 578: 
     6089/* Line 1807 of yacc.c  */ 
     6090#line 2999 "fortran.y" 
     6091    {inallocate = 0;} 
     6092    break; 
     6093 
     6094  case 602: 
     6095/* Line 1807 of yacc.c  */ 
     6096#line 3069 "fortran.y" 
     6097    {in_complex_literal=0;} 
     6098    break; 
     6099 
     6100  case 603: 
     6101/* Line 1807 of yacc.c  */ 
     6102#line 3070 "fortran.y" 
     6103    {inallocate = 0;} 
     6104    break; 
     6105 
     6106  case 613: 
     6107/* Line 1807 of yacc.c  */ 
     6108#line 3100 "fortran.y" 
     6109    { 
     6110      strcpy((yyval.na),(yyvsp[(1) - (1)].v)->v_nomvar); 
     6111      if (strcasecmp(my_dim.last,"")) 
     6112      { 
     6113      strcat((yyval.na),"("); 
     6114      strcat((yyval.na),my_dim.last); 
     6115      strcat((yyval.na),")"); 
     6116      } 
     6117      } 
     6118    break; 
     6119 
     6120  case 617: 
     6121/* Line 1807 of yacc.c  */ 
     6122#line 3113 "fortran.y" 
     6123    { sprintf((yyval.na),"(%s)",(yyvsp[(2) - (3)].na));} 
     6124    break; 
     6125 
     6126  case 618: 
     6127/* Line 1807 of yacc.c  */ 
     6128#line 3118 "fortran.y" 
     6129    {strcpy(my_dim.last,"");} 
     6130    break; 
     6131 
     6132  case 620: 
     6133/* Line 1807 of yacc.c  */ 
     6134#line 3124 "fortran.y" 
     6135    {sprintf((yyval.na),"%s**%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     6136    break; 
     6137 
     6138  case 622: 
     6139/* Line 1807 of yacc.c  */ 
     6140#line 3129 "fortran.y" 
     6141    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6142    break; 
     6143 
     6144  case 624: 
     6145/* Line 1807 of yacc.c  */ 
     6146#line 3137 "fortran.y" 
     6147    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     6148    break; 
     6149 
     6150  case 625: 
     6151/* Line 1807 of yacc.c  */ 
     6152#line 3139 "fortran.y" 
     6153    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6154    break; 
     6155 
     6156  case 627: 
     6157/* Line 1807 of yacc.c  */ 
     6158#line 3142 "fortran.y" 
     6159    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     6160    break; 
     6161 
     6162  case 629: 
     6163/* Line 1807 of yacc.c  */ 
     6164#line 3151 "fortran.y" 
     6165    {strcpy((yyval.na),"*");} 
     6166    break; 
     6167 
     6168  case 631: 
     6169/* Line 1807 of yacc.c  */ 
     6170#line 3157 "fortran.y" 
     6171    {strcpy((yyval.na),"+");} 
     6172    break; 
     6173 
     6174  case 632: 
     6175/* Line 1807 of yacc.c  */ 
     6176#line 3159 "fortran.y" 
     6177    {strcpy((yyval.na),"-");} 
     6178    break; 
     6179 
     6180  case 634: 
     6181/* Line 1807 of yacc.c  */ 
     6182#line 3165 "fortran.y" 
     6183    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6184    break; 
     6185 
     6186  case 637: 
     6187/* Line 1807 of yacc.c  */ 
     6188#line 3174 "fortran.y" 
     6189    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6190    break; 
     6191 
     6192  case 646: 
     6193/* Line 1807 of yacc.c  */ 
     6194#line 3187 "fortran.y" 
     6195    {strcpy((yyval.na),"<");} 
     6196    break; 
     6197 
     6198  case 648: 
     6199/* Line 1807 of yacc.c  */ 
     6200#line 3190 "fortran.y" 
     6201    {strcpy((yyval.na),">");} 
     6202    break; 
     6203 
     6204  case 651: 
     6205/* Line 1807 of yacc.c  */ 
     6206#line 3198 "fortran.y" 
     6207    { sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na)); } 
     6208    break; 
     6209 
     6210  case 653: 
     6211/* Line 1807 of yacc.c  */ 
     6212#line 3205 "fortran.y" 
     6213    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6214    break; 
     6215 
     6216  case 655: 
     6217/* Line 1807 of yacc.c  */ 
     6218#line 3212 "fortran.y" 
     6219    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6220    break; 
     6221 
     6222  case 657: 
     6223/* Line 1807 of yacc.c  */ 
     6224#line 3218 "fortran.y" 
     6225    { sprintf((yyval.na),"%s%s%s",(yyvsp[(1) - (3)].na),(yyvsp[(2) - (3)].na),(yyvsp[(3) - (3)].na)); } 
     6226    break; 
     6227 
     6228  case 667: 
     6229/* Line 1807 of yacc.c  */ 
     6230#line 3254 "fortran.y" 
     6231    {strcpy((yyval.na),"");} 
     6232    break; 
     6233 
     6234  case 670: 
     6235/* Line 1807 of yacc.c  */ 
     6236#line 3263 "fortran.y" 
     6237    { 
     6238     strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 
     6239     } 
     6240    break; 
     6241 
     6242  case 671: 
     6243/* Line 1807 of yacc.c  */ 
     6244#line 3270 "fortran.y" 
     6245    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     6246    break; 
     6247 
     6248  case 800: 
     6249/* Line 1807 of yacc.c  */ 
     6250#line 3643 "fortran.y" 
     6251    {in_select_case_stmt++;} 
     6252    break; 
     6253 
     6254  case 802: 
     6255/* Line 1807 of yacc.c  */ 
     6256#line 3644 "fortran.y" 
     6257    {in_select_case_stmt++;} 
     6258    break; 
     6259 
     6260  case 806: 
     6261/* Line 1807 of yacc.c  */ 
     6262#line 3653 "fortran.y" 
     6263    {in_select_case_stmt--;} 
     6264    break; 
     6265 
     6266  case 808: 
     6267/* Line 1807 of yacc.c  */ 
     6268#line 3654 "fortran.y" 
     6269    {in_select_case_stmt--;} 
     6270    break; 
     6271 
     6272  case 810: 
     6273/* Line 1807 of yacc.c  */ 
     6274#line 3659 "fortran.y" 
     6275    {in_complex_literal=0;} 
     6276    break; 
     6277 
     6278  case 834: 
     6279/* Line 1807 of yacc.c  */ 
     6280#line 3722 "fortran.y" 
     6281    {close_or_connect = 1;} 
     6282    break; 
     6283 
     6284  case 835: 
     6285/* Line 1807 of yacc.c  */ 
     6286#line 3722 "fortran.y" 
     6287    {close_or_connect = 0;} 
     6288    break; 
     6289 
     6290  case 852: 
     6291/* Line 1807 of yacc.c  */ 
     6292#line 3752 "fortran.y" 
     6293    {close_or_connect = 1;} 
     6294    break; 
     6295 
     6296  case 853: 
     6297/* Line 1807 of yacc.c  */ 
     6298#line 3753 "fortran.y" 
     6299    {close_or_connect = 0;} 
     6300    break; 
     6301 
     6302  case 861: 
     6303/* Line 1807 of yacc.c  */ 
     6304#line 3770 "fortran.y" 
     6305    { 
     6306         in_io_control_spec = 0; 
     6307         } 
     6308    break; 
     6309 
     6310  case 863: 
     6311/* Line 1807 of yacc.c  */ 
     6312#line 3775 "fortran.y" 
     6313    { 
     6314         in_io_control_spec = 0; 
     6315         } 
     6316    break; 
     6317 
     6318  case 867: 
     6319/* Line 1807 of yacc.c  */ 
     6320#line 3785 "fortran.y" 
     6321    { 
     6322         in_io_control_spec = 0; 
     6323         } 
     6324    break; 
     6325 
     6326  case 869: 
     6327/* Line 1807 of yacc.c  */ 
     6328#line 3790 "fortran.y" 
     6329    { 
     6330         in_io_control_spec = 0; 
     6331         } 
     6332    break; 
     6333 
     6334  case 922: 
     6335/* Line 1807 of yacc.c  */ 
     6336#line 3907 "fortran.y" 
     6337    {in_inquire=0;} 
     6338    break; 
     6339 
     6340  case 924: 
     6341/* Line 1807 of yacc.c  */ 
     6342#line 3910 "fortran.y" 
     6343    {in_inquire=0;} 
     6344    break; 
     6345 
     6346  case 926: 
     6347/* Line 1807 of yacc.c  */ 
     6348#line 3914 "fortran.y" 
     6349    {in_inquire=1;} 
     6350    break; 
     6351 
     6352  case 941: 
     6353/* Line 1807 of yacc.c  */ 
     6354#line 3941 "fortran.y" 
     6355    {pos_endsubroutine=setposcur();} 
     6356    break; 
     6357 
     6358  case 945: 
     6359/* Line 1807 of yacc.c  */ 
     6360#line 3950 "fortran.y" 
     6361    { 
     6362            GlobalDeclaration = 0; 
     6363            strcpy(curmodulename,(yyvsp[(2) - (2)].na)); 
     6364            strcpy(subroutinename,""); 
     6365            Add_NameOfModule_1((yyvsp[(2) - (2)].na)); 
     6366            if ( inmoduledeclare == 0 ) 
     6367            { 
     6368                /* To know if there are in the module declaration    */ 
     6369                inmoduledeclare = 1; 
     6370                /* to know if a module has been met                  */ 
     6371                inmodulemeet = 1; 
     6372                /* to know if we are after the keyword contains      */ 
     6373                aftercontainsdeclare = 0 ; 
     6374            } 
     6375        } 
     6376    break; 
     6377 
     6378  case 947: 
     6379/* Line 1807 of yacc.c  */ 
     6380#line 3970 "fortran.y" 
     6381    { 
     6382            /* if we never meet the contains keyword               */ 
     6383            if ( firstpass == 0 ) 
     6384            { 
     6385                RemoveWordCUR_0(fortran_out, setposcur()-my_position);    // Remove word "end module" 
     6386                if ( inmoduledeclare && ! aftercontainsdeclare ) 
     6387                { 
     6388                    Write_Closing_Module(1); 
     6389                } 
     6390                fprintf(fortran_out,"\n      end module %s\n", curmodulename); 
     6391                if ( module_declar && insubroutinedeclare == 0 ) 
     6392                { 
     6393                    fclose(module_declar); 
     6394                } 
     6395            } 
     6396            inmoduledeclare = 0 ; 
     6397            inmodulemeet = 0 ; 
     6398            aftercontainsdeclare = 1; 
     6399            strcpy(curmodulename, ""); 
     6400            GlobalDeclaration = 0 ; 
     6401        } 
     6402    break; 
     6403 
     6404  case 962: 
     6405/* Line 1807 of yacc.c  */ 
     6406#line 4022 "fortran.y" 
     6407    {if (firstpass == 0 && oldfortran_out) pos_curuseold = setposcurname(oldfortran_out);} 
     6408    break; 
     6409 
     6410  case 963: 
     6411/* Line 1807 of yacc.c  */ 
     6412#line 4027 "fortran.y" 
     6413    { 
     6414            if ( firstpass ) 
     6415            { 
     6416                if ( insubroutinedeclare ) 
     6417                { 
     6418                    if ((yyvsp[(6) - (6)].lc)) { 
     6419                      Add_CouplePointed_Var_1((yyvsp[(5) - (6)].na),(yyvsp[(6) - (6)].lc)); 
     6420                      coupletmp = (yyvsp[(6) - (6)].lc); 
     6421                      strcpy(ligne,""); 
     6422                      while ( coupletmp ) 
     6423                      { 
     6424                        strcat(ligne, coupletmp->c_namevar); 
     6425                        strcat(ligne, " => "); 
     6426                        strcat(ligne, coupletmp->c_namepointedvar); 
     6427                        coupletmp = coupletmp->suiv; 
     6428                        if ( coupletmp ) strcat(ligne,","); 
     6429                      } 
     6430                      } 
     6431                  sprintf(charusemodule,"%s",(yyvsp[(5) - (6)].na)); 
     6432                } 
     6433                Add_NameOfModuleUsed_1((yyvsp[(5) - (6)].na)); 
     6434            } 
     6435            else 
     6436            { 
     6437                if ( insubroutinedeclare ) 
     6438                { 
     6439                  copyuse_0((yyvsp[(5) - (6)].na)); 
     6440                    } 
     6441 
     6442                if ( inmoduledeclare == 0 ) 
     6443                { 
     6444                    pos_end = setposcur(); 
     6445                    RemoveWordSET_0(fortran_out,my_position,pos_end-my_position); 
     6446                } 
     6447            } 
     6448    } 
     6449    break; 
     6450 
     6451  case 965: 
     6452/* Line 1807 of yacc.c  */ 
     6453#line 4065 "fortran.y" 
     6454    { 
     6455            if ( firstpass ) 
     6456            { 
     6457                if ( insubroutinedeclare ) 
     6458                { 
     6459                  if ((yyvsp[(9) - (9)].lc)) 
     6460                  { 
     6461                    Add_CouplePointed_Var_1((yyvsp[(5) - (9)].na),(yyvsp[(9) - (9)].lc)); 
     6462                    coupletmp = (yyvsp[(9) - (9)].lc); 
     6463                    strcpy(ligne,""); 
     6464                    while ( coupletmp ) 
     6465                    { 
     6466                        strcat(ligne,coupletmp->c_namevar); 
     6467                        if ( strcasecmp(coupletmp->c_namepointedvar,"") )   strcat(ligne," => "); 
     6468                        strcat(ligne,coupletmp->c_namepointedvar); 
     6469                        coupletmp = coupletmp->suiv; 
     6470                        if ( coupletmp ) strcat(ligne,","); 
     6471                    } 
     6472                  } 
     6473                  sprintf(charusemodule,"%s",(yyvsp[(5) - (9)].na)); 
     6474                } 
     6475                Add_NameOfModuleUsed_1((yyvsp[(5) - (9)].na)); 
     6476            } 
     6477            else 
     6478            { 
     6479                if ( insubroutinedeclare ) 
     6480                    copyuseonly_0((yyvsp[(5) - (9)].na)); 
     6481 
     6482                if ( inmoduledeclare == 0 ) 
     6483                { 
     6484                    pos_end = setposcur(); 
     6485                    RemoveWordSET_0(fortran_out,my_position,pos_end-my_position); 
     6486                    if ((yyvsp[(9) - (9)].lc)) 
     6487                    { 
     6488                    if (oldfortran_out)  variableisglobalinmodule((yyvsp[(9) - (9)].lc),(yyvsp[(5) - (9)].na),oldfortran_out,pos_curuseold); 
     6489                    } 
     6490                } 
     6491                else 
     6492                { 
     6493                  if ((yyvsp[(9) - (9)].lc)) 
     6494                  { 
     6495                    /* if we are in the module declare and if the    */ 
     6496                    /* onlylist is a list of global variable         */ 
     6497                    variableisglobalinmodule((yyvsp[(9) - (9)].lc), (yyvsp[(5) - (9)].na), fortran_out,my_position); 
     6498                  } 
     6499                } 
     6500            } 
     6501    } 
     6502    break; 
     6503 
     6504  case 970: 
     6505/* Line 1807 of yacc.c  */ 
     6506#line 4122 "fortran.y" 
     6507    {(yyval.lc)=NULL;} 
     6508    break; 
     6509 
     6510  case 971: 
     6511/* Line 1807 of yacc.c  */ 
     6512#line 4124 "fortran.y" 
     6513    {(yyval.lc)=(yyvsp[(1) - (1)].lc);} 
     6514    break; 
     6515 
     6516  case 977: 
     6517/* Line 1807 of yacc.c  */ 
     6518#line 4141 "fortran.y" 
     6519    { 
     6520            strcpy(subroutinename,(yyvsp[(2) - (2)].na)); 
     6521            insubroutinedeclare = 1; 
     6522            inprogramdeclare = 1; 
     6523            /* in the second step we should write the head of       */ 
     6524            /*    the subroutine sub_loop_<subroutinename>          */ 
     6525            if ( ! firstpass ) 
     6526                WriteBeginof_SubLoop(); 
     6527        } 
     6528    break; 
     6529 
     6530  case 979: 
     6531/* Line 1807 of yacc.c  */ 
     6532#line 4154 "fortran.y" 
     6533    {pos_endsubroutine=my_position_before;} 
     6534    break; 
     6535 
     6536  case 980: 
     6537/* Line 1807 of yacc.c  */ 
     6538#line 4155 "fortran.y" 
     6539    { 
     6540            insubroutinedeclare = 0; 
     6541            inprogramdeclare = 0; 
     6542            pos_cur = setposcur(); 
     6543            closeandcallsubloopandincludeit_0(3); 
     6544            functiondeclarationisdone = 0; 
     6545            strcpy(subroutinename,"");      
     6546     } 
     6547    break; 
     6548 
     6549  case 987: 
     6550/* Line 1807 of yacc.c  */ 
     6551#line 4177 "fortran.y" 
     6552    { 
     6553    (yyval.lc)=NULL; 
     6554    } 
     6555    break; 
     6556 
     6557  case 988: 
     6558/* Line 1807 of yacc.c  */ 
     6559#line 4181 "fortran.y" 
     6560    { 
     6561    (yyval.lc)=(yyvsp[(2) - (2)].lc); 
     6562    } 
     6563    break; 
     6564 
     6565  case 989: 
     6566/* Line 1807 of yacc.c  */ 
     6567#line 4187 "fortran.y" 
     6568    { 
     6569     (yyval.lc)=(yyvsp[(1) - (1)].lc); 
     6570     } 
     6571    break; 
     6572 
     6573  case 990: 
     6574/* Line 1807 of yacc.c  */ 
     6575#line 4191 "fortran.y" 
     6576    { 
     6577     /* insert the variable in the list $1                 */ 
     6578     (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 
     6579     (yyval.lc)=(yyvsp[(3) - (3)].lc); 
     6580     } 
     6581    break; 
     6582 
     6583  case 991: 
     6584/* Line 1807 of yacc.c  */ 
     6585#line 4200 "fortran.y" 
     6586    { 
     6587            coupletmp = (listcouple *) calloc(1,sizeof(listcouple)); 
     6588            strcpy(coupletmp->c_namevar,(yyvsp[(1) - (3)].na)); 
     6589            strcpy(coupletmp->c_namepointedvar,(yyvsp[(3) - (3)].na)); 
     6590            coupletmp->suiv = NULL; 
     6591            (yyval.lc) = coupletmp; 
     6592        } 
     6593    break; 
     6594 
     6595  case 992: 
     6596/* Line 1807 of yacc.c  */ 
     6597#line 4210 "fortran.y" 
     6598    {(yyval.lc)=(yyvsp[(1) - (1)].lc);} 
     6599    break; 
     6600 
     6601  case 993: 
     6602/* Line 1807 of yacc.c  */ 
     6603#line 4212 "fortran.y" 
     6604    { 
     6605            /* insert the variable in the list $1                 */ 
     6606            (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 
     6607            (yyval.lc) = (yyvsp[(3) - (3)].lc); 
     6608        } 
     6609    break; 
     6610 
     6611  case 994: 
     6612/* Line 1807 of yacc.c  */ 
     6613#line 4221 "fortran.y" 
     6614    { 
     6615            coupletmp = (listcouple *)calloc(1,sizeof(listcouple)); 
     6616            strcpy(coupletmp->c_namevar,(yyvsp[(1) - (1)].na)); 
     6617            strcpy(coupletmp->c_namepointedvar,""); 
     6618            coupletmp->suiv = NULL; 
     6619            (yyval.lc) = coupletmp; 
     6620        } 
     6621    break; 
     6622 
     6623  case 995: 
     6624/* Line 1807 of yacc.c  */ 
     6625#line 4229 "fortran.y" 
     6626    { 
     6627            coupletmp = (listcouple *)calloc(1,sizeof(listcouple)); 
     6628            strcpy(coupletmp->c_namevar,(yyvsp[(1) - (1)].na)); 
     6629            strcpy(coupletmp->c_namepointedvar,""); 
     6630            coupletmp->suiv = NULL; 
     6631            (yyval.lc) = coupletmp; 
     6632        } 
     6633    break; 
     6634 
     6635  case 996: 
     6636/* Line 1807 of yacc.c  */ 
     6637#line 4237 "fortran.y" 
     6638    { 
     6639     (yyval.lc)=(yyvsp[(1) - (1)].lc); 
     6640     pointedvar = 1; 
     6641      Add_UsedInSubroutine_Var_1((yyvsp[(1) - (1)].lc)->c_namevar); 
     6642     } 
     6643    break; 
     6644 
     6645  case 1009: 
     6646/* Line 1807 of yacc.c  */ 
     6647#line 4277 "fortran.y" 
     6648    {in_complex_literal=0;} 
     6649    break; 
     6650 
     6651  case 1010: 
     6652/* Line 1807 of yacc.c  */ 
     6653#line 4278 "fortran.y" 
     6654    {sprintf((yyval.na),"%s(%s)",(yyvsp[(1) - (5)].na),(yyvsp[(4) - (5)].na));} 
     6655    break; 
     6656 
     6657  case 1011: 
     6658/* Line 1807 of yacc.c  */ 
     6659#line 4284 "fortran.y" 
     6660    { 
     6661            inagrifcallargument = 0 ; 
     6662            incalldeclare=0; 
     6663            if ( oldfortran_out && (callagrifinitgrids == 1) && (firstpass == 0) ) 
     6664            { 
     6665                pos_end = setposcur(); 
     6666                RemoveWordSET_0(fortran_out,pos_curcall,pos_end-pos_curcall); 
     6667                strcpy(subofagrifinitgrids,subroutinename); 
     6668            } 
     6669            Instanciation_0(sameagrifname); 
     6670        } 
     6671    break; 
     6672 
     6673  case 1013: 
     6674/* Line 1807 of yacc.c  */ 
     6675#line 4297 "fortran.y" 
     6676    { 
     6677            inagrifcallargument = 0 ; 
     6678            incalldeclare=0; 
     6679            if ( oldfortran_out && (callagrifinitgrids == 1) && (firstpass == 0) ) 
     6680            { 
     6681                pos_end = setposcur(); 
     6682                RemoveWordSET_0(fortran_out,pos_curcall,pos_end-pos_curcall); 
     6683                strcpy(subofagrifinitgrids,subroutinename); 
     6684            } 
     6685            Instanciation_0(sameagrifname); 
     6686        } 
     6687    break; 
     6688 
     6689  case 1015: 
     6690/* Line 1807 of yacc.c  */ 
     6691#line 4309 "fortran.y" 
     6692    {in_complex_literal=0;} 
     6693    break; 
     6694 
     6695  case 1016: 
     6696/* Line 1807 of yacc.c  */ 
     6697#line 4310 "fortran.y" 
     6698    { 
     6699            inagrifcallargument = 0 ; 
     6700            incalldeclare=0; 
     6701            if ( oldfortran_out && (callagrifinitgrids == 1) && (firstpass == 0) ) 
     6702            { 
     6703                pos_end = setposcur(); 
     6704                RemoveWordSET_0(fortran_out,pos_curcall,pos_end-pos_curcall); 
     6705                strcpy(subofagrifinitgrids,subroutinename); 
     6706            } 
     6707            Instanciation_0(sameagrifname); 
     6708        } 
     6709    break; 
     6710 
     6711  case 1018: 
     6712/* Line 1807 of yacc.c  */ 
     6713#line 4324 "fortran.y" 
     6714    {pos_curcall=my_position_before-strlen((yyvsp[(1) - (2)].na))-4;} 
     6715    break; 
     6716 
     6717  case 1019: 
     6718/* Line 1807 of yacc.c  */ 
     6719#line 4325 "fortran.y" 
     6720    { 
     6721            if (!strcasecmp((yyvsp[(4) - (4)].na),"MPI_Init") )    callmpiinit = 1; 
     6722            else                                callmpiinit = 0; 
     6723 
     6724            if (!strcasecmp((yyvsp[(4) - (4)].na),"Agrif_Init_Grids") ) 
     6725            { 
     6726                callagrifinitgrids = 1; 
     6727                strcpy(meetagrifinitgrids,subroutinename); 
     6728            } 
     6729            else 
     6730            { 
     6731                callagrifinitgrids = 0; 
     6732            } 
     6733            if ( Vartonumber((yyvsp[(4) - (4)].na)) == 1 ) 
     6734            { 
     6735                incalldeclare = 0; 
     6736                inagrifcallargument = 0 ; 
     6737                Add_SubroutineWhereAgrifUsed_1(subroutinename, curmodulename); 
     6738            } 
     6739        } 
     6740    break; 
     6741 
     6742  case 1024: 
     6743/* Line 1807 of yacc.c  */ 
     6744#line 4356 "fortran.y" 
     6745    {sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));} 
     6746    break; 
     6747 
     6748  case 1025: 
     6749/* Line 1807 of yacc.c  */ 
     6750#line 4361 "fortran.y" 
     6751    { 
     6752            if ( callmpiinit == 1 ) 
     6753            { 
     6754                strcpy(mpiinitvar,(yyvsp[(1) - (1)].na)); 
     6755                if ( firstpass == 1 )  Add_UsedInSubroutine_Var_1 (mpiinitvar); 
     6756            } 
     6757        } 
     6758    break; 
     6759 
     6760  case 1026: 
     6761/* Line 1807 of yacc.c  */ 
     6762#line 4369 "fortran.y" 
     6763    {sprintf((yyval.na),"%s = %s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); 
     6764                 if ( callmpiinit == 1 ) 
     6765            { 
     6766                strcpy(mpiinitvar,(yyvsp[(3) - (3)].na)); 
     6767                if ( firstpass == 1 )  Add_UsedInSubroutine_Var_1 (mpiinitvar); 
     6768            } 
     6769            } 
     6770    break; 
     6771 
     6772  case 1028: 
     6773/* Line 1807 of yacc.c  */ 
     6774#line 4381 "fortran.y" 
     6775    { 
     6776     strcpy((yyval.na),(yyvsp[(1) - (1)].v)->v_nomvar); 
     6777     if ((yyvsp[(1) - (1)].v)->v_initialvalue_array) 
     6778     { 
     6779     strcat((yyval.na),"("); 
     6780     strcat((yyval.na),(yyvsp[(1) - (1)].v)->v_initialvalue_array->n_name); 
     6781     strcat((yyval.na),")"); 
     6782     } 
     6783     } 
     6784    break; 
     6785 
     6786  case 1030: 
     6787/* Line 1807 of yacc.c  */ 
     6788#line 4393 "fortran.y" 
     6789    {isrecursive = 0;} 
     6790    break; 
     6791 
     6792  case 1034: 
     6793/* Line 1807 of yacc.c  */ 
     6794#line 4404 "fortran.y" 
     6795    {isrecursive = 0; functiondeclarationisdone = 1;} 
     6796    break; 
     6797 
     6798  case 1035: 
     6799/* Line 1807 of yacc.c  */ 
     6800#line 4406 "fortran.y" 
     6801    {isrecursive = 0;} 
     6802    break; 
     6803 
     6804  case 1036: 
     6805/* Line 1807 of yacc.c  */ 
     6806#line 4408 "fortran.y" 
     6807    {isrecursive = 1;} 
     6808    break; 
     6809 
     6810  case 1038: 
     6811/* Line 1807 of yacc.c  */ 
     6812#line 4417 "fortran.y" 
     6813    {in_complex_literal=0;} 
     6814    break; 
     6815 
     6816  case 1039: 
     6817/* Line 1807 of yacc.c  */ 
     6818#line 4418 "fortran.y" 
     6819    { 
     6820            insubroutinedeclare = 1; 
     6821            suborfun = 0; 
     6822            /* we should to list of the subroutine argument the  */ 
     6823            /*    name of the function which has to be defined   */ 
     6824            if ( firstpass ) 
     6825            { 
     6826                Add_SubroutineArgument_Var_1((yyvsp[(6) - (8)].l)); 
     6827                if ( ! is_result_present ) 
     6828                    Add_FunctionType_Var_1((yyvsp[(3) - (8)].na)); 
     6829            } 
     6830            else 
     6831            /* in the second step we should write the head of    */ 
     6832            /*    the subroutine sub_loop_<subroutinename>       */ 
     6833               { 
     6834                if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Avant Writebeginof subloop\n"); 
     6835                WriteBeginof_SubLoop(); 
     6836                if (todebug == 1) fprintf(fortran_out,"      !DEBUG: Apres Writebeginof subloop\n"); 
     6837                } 
     6838            strcpy(NamePrecision,""); 
     6839     } 
     6840    break; 
     6841 
     6842  case 1041: 
     6843/* Line 1807 of yacc.c  */ 
     6844#line 4443 "fortran.y" 
     6845    { 
     6846     if (strcmp(subroutinename,"")) 
     6847     { 
     6848     strcpy(old_subroutinename,subroutinename); // can occur in internal-subprogram 
     6849     old_oldfortran_out=oldfortran_out; 
     6850     } 
     6851     else 
     6852     { 
     6853     old_oldfortran_out=(FILE *)NULL; 
     6854     } 
     6855     strcpy((yyval.na),(yyvsp[(1) - (1)].na));strcpy(subroutinename,(yyvsp[(1) - (1)].na)); 
     6856     } 
     6857    break; 
     6858 
     6859  case 1043: 
     6860/* Line 1807 of yacc.c  */ 
     6861#line 4472 "fortran.y" 
     6862    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     6863    break; 
     6864 
     6865  case 1044: 
     6866/* Line 1807 of yacc.c  */ 
     6867#line 4476 "fortran.y" 
     6868    {is_result_present = 0; } 
     6869    break; 
     6870 
     6871  case 1052: 
     6872/* Line 1807 of yacc.c  */ 
     6873#line 4494 "fortran.y" 
     6874    {is_result_present = 1; 
     6875                 if ( firstpass == 1 ) 
     6876            { 
     6877                strcpy(nameinttypenameback,nameinttypename); 
     6878                strcpy(nameinttypename,""); 
     6879                curvar = createvar((yyvsp[(3) - (4)].na),NULL); 
     6880                strcpy(nameinttypename,nameinttypenameback); 
     6881                strcpy(curvar->v_typevar,""); 
     6882                curlistvar = insertvar(NULL,curvar); 
     6883                Add_SubroutineArgument_Var_1(curlistvar); 
     6884            } 
     6885     } 
     6886    break; 
     6887 
     6888  case 1053: 
     6889/* Line 1807 of yacc.c  */ 
     6890#line 4509 "fortran.y" 
     6891    {strcpy(DeclType, "");} 
     6892    break; 
     6893 
     6894  case 1058: 
     6895/* Line 1807 of yacc.c  */ 
     6896#line 4523 "fortran.y" 
     6897    { 
     6898            insubroutinedeclare = 1; 
     6899            suborfun = 1; 
     6900            if ( firstpass ) 
     6901                Add_SubroutineArgument_Var_1((yyvsp[(4) - (4)].l)); 
     6902            else 
     6903              { 
     6904                WriteBeginof_SubLoop(); 
     6905              } 
     6906        } 
     6907    break; 
     6908 
     6909  case 1060: 
     6910/* Line 1807 of yacc.c  */ 
     6911#line 4538 "fortran.y" 
     6912    { 
     6913     if (strcmp(subroutinename,"")) 
     6914     { 
     6915     strcpy(old_subroutinename,subroutinename); // can occur in internal-subprogram 
     6916     old_oldfortran_out=oldfortran_out; 
     6917     } 
     6918     else 
     6919     { 
     6920     old_oldfortran_out=(FILE *)NULL; 
     6921     } 
     6922     strcpy((yyval.na),(yyvsp[(1) - (1)].na));strcpy(subroutinename,(yyvsp[(1) - (1)].na)); 
     6923     } 
     6924    break; 
     6925 
     6926  case 1062: 
     6927/* Line 1807 of yacc.c  */ 
     6928#line 4559 "fortran.y" 
     6929    {pos_endsubroutine = my_position; 
     6930            GlobalDeclaration = 0 ; 
     6931            if ( firstpass == 0 && strcasecmp(subroutinename,"") ) 
     6932            { 
     6933                if ( module_declar && insubroutinedeclare == 0 )    fclose(module_declar); 
     6934            } 
     6935            if ( strcasecmp(subroutinename,"") ) 
     6936            { 
     6937                if ( inmodulemeet == 1 ) 
     6938                { 
     6939                    /* we are in a module                                */ 
     6940                    if ( insubroutinedeclare == 1 ) 
     6941                    { 
     6942                        /* it is like an end subroutine <name>            */ 
     6943                        insubroutinedeclare = 0 ; 
     6944                        pos_cur = setposcur(); 
     6945                        closeandcallsubloopandincludeit_0(suborfun); 
     6946                        functiondeclarationisdone = 0; 
     6947                    } 
     6948                    else 
     6949                    { 
     6950                        /* it is like an end module <name>                */ 
     6951                        inmoduledeclare = 0 ; 
     6952                        inmodulemeet = 0 ; 
     6953                    } 
     6954                } 
     6955                else 
     6956                { 
     6957                    insubroutinedeclare = 0; 
     6958                    pos_cur = setposcur(); 
     6959                    closeandcallsubloopandincludeit_0(2); 
     6960                    functiondeclarationisdone = 0; 
     6961                } 
     6962            } 
     6963            strcpy(subroutinename,""); 
     6964            if (strcmp(old_subroutinename,"")) 
     6965            { 
     6966            strcpy(subroutinename,old_subroutinename); 
     6967            strcpy(old_subroutinename,""); 
     6968            oldfortran_out=old_oldfortran_out; 
     6969            insubroutinedeclare=1; 
     6970            } 
     6971        } 
     6972    break; 
     6973 
     6974  case 1065: 
     6975/* Line 1807 of yacc.c  */ 
     6976#line 4608 "fortran.y" 
     6977    {if (firstpass) (yyval.l)=NULL;} 
     6978    break; 
     6979 
     6980  case 1066: 
     6981/* Line 1807 of yacc.c  */ 
     6982#line 4609 "fortran.y" 
     6983    {in_complex_literal=0;} 
     6984    break; 
     6985 
     6986  case 1067: 
     6987/* Line 1807 of yacc.c  */ 
     6988#line 4610 "fortran.y" 
     6989    {if (firstpass) (yyval.l)=(yyvsp[(3) - (5)].l);} 
     6990    break; 
     6991 
     6992  case 1068: 
     6993/* Line 1807 of yacc.c  */ 
     6994#line 4614 "fortran.y" 
     6995    {if (firstpass) (yyval.l)=NULL;} 
     6996    break; 
     6997 
     6998  case 1069: 
     6999/* Line 1807 of yacc.c  */ 
     7000#line 4616 "fortran.y" 
     7001    {if (firstpass) (yyval.l)=(yyvsp[(1) - (1)].l);} 
     7002    break; 
     7003 
     7004  case 1070: 
     7005/* Line 1807 of yacc.c  */ 
     7006#line 4621 "fortran.y" 
     7007    { 
     7008            if ( firstpass == 1 ) 
     7009            { 
     7010                strcpy(nameinttypenameback,nameinttypename); 
     7011                strcpy(nameinttypename,""); 
     7012                curvar = createvar((yyvsp[(1) - (1)].na),NULL); 
     7013                strcpy(nameinttypename,nameinttypenameback); 
     7014                curlistvar = insertvar(NULL,curvar); 
     7015                (yyval.l) = settype("",curlistvar); 
     7016            } 
     7017        } 
     7018    break; 
     7019 
     7020  case 1071: 
     7021/* Line 1807 of yacc.c  */ 
     7022#line 4633 "fortran.y" 
     7023    { 
     7024            if ( firstpass == 1 ) 
     7025            { 
     7026                strcpy(nameinttypenameback,nameinttypename); 
     7027                strcpy(nameinttypename,""); 
     7028                curvar = createvar((yyvsp[(3) - (3)].na),NULL); 
     7029                strcpy(nameinttypename,nameinttypenameback); 
     7030                (yyval.l) = insertvar((yyvsp[(1) - (3)].l),curvar); 
     7031            } 
     7032        } 
     7033    break; 
     7034 
     7035  case 1072: 
     7036/* Line 1807 of yacc.c  */ 
     7037#line 4647 "fortran.y" 
     7038    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
     7039    break; 
     7040 
     7041  case 1073: 
     7042/* Line 1807 of yacc.c  */ 
     7043#line 4649 "fortran.y" 
     7044    {strcpy((yyval.na),"*");} 
     7045    break; 
     7046 
     7047  case 1076: 
     7048/* Line 1807 of yacc.c  */ 
     7049#line 4659 "fortran.y" 
    58377050    { 
    58387051            if ( inside_type_declare ) break; 
     
    58657078    break; 
    58667079 
    5867   case 483: 
    5868 /* Line 1807 of yacc.c  */ 
    5869 #line 1898 "fortran.y" 
    5870     { 
    5871             strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 
    5872             pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].na)); 
    5873             functiondeclarationisdone = 0; 
    5874         } 
    5875     break; 
    5876  
    5877   case 484: 
    5878 /* Line 1807 of yacc.c  */ 
    5879 #line 1906 "fortran.y" 
    5880     { 
    5881             strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 
    5882             pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].na)); 
    5883         } 
    5884     break; 
    5885  
    5886   case 485: 
    5887 /* Line 1807 of yacc.c  */ 
    5888 #line 1913 "fortran.y" 
    5889     { 
    5890             strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 
    5891             pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].na)); 
    5892         } 
    5893     break; 
    5894  
    5895   case 486: 
    5896 /* Line 1807 of yacc.c  */ 
    5897 #line 1920 "fortran.y" 
    5898     { 
    5899             strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 
    5900             pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].na)); 
    5901         } 
    5902     break; 
    5903  
    5904   case 487: 
    5905 /* Line 1807 of yacc.c  */ 
    5906 #line 1926 "fortran.y" 
     7080  case 1078: 
     7081/* Line 1807 of yacc.c  */ 
     7082#line 4694 "fortran.y" 
    59077083    {strcpy((yyval.na),"");} 
    59087084    break; 
    59097085 
    5910   case 488: 
    5911 /* Line 1807 of yacc.c  */ 
    5912 #line 1927 "fortran.y" 
     7086  case 1079: 
     7087/* Line 1807 of yacc.c  */ 
     7088#line 4695 "fortran.y" 
    59137089    {strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 
    59147090    break; 
    59157091 
    5916   case 489: 
    5917 /* Line 1807 of yacc.c  */ 
    5918 #line 1930 "fortran.y" 
    5919     { created_dimensionlist = 0; } 
    5920     break; 
    5921  
    5922   case 490: 
    5923 /* Line 1807 of yacc.c  */ 
    5924 #line 1934 "fortran.y" 
    5925     { 
    5926             created_dimensionlist = 1; 
    5927             if ( ((yyvsp[(3) - (4)].d) == NULL) || ((yyvsp[(4) - (4)].d) == NULL) ) break; 
    5928             if  ( agrif_parentcall == 1 ) 
    5929             { 
    5930                 ModifyTheAgrifFunction_0((yyvsp[(3) - (4)].d)->dim.last); 
    5931                 agrif_parentcall = 0; 
    5932                 fprintf(fortran_out," = "); 
    5933             } 
    5934         } 
    5935     break; 
    5936  
    5937   case 491: 
    5938 /* Line 1807 of yacc.c  */ 
    5939 #line 1945 "fortran.y" 
    5940     { 
    5941             created_dimensionlist = 1; 
    5942         } 
    5943     break; 
    5944  
    5945   case 496: 
    5946 /* Line 1807 of yacc.c  */ 
    5947 #line 1958 "fortran.y" 
    5948     { 
    5949             inagrifcallargument = 0 ; 
    5950             incalldeclare=0; 
    5951             if ( oldfortran_out && (callagrifinitgrids == 1) && (firstpass == 0) ) 
    5952             { 
    5953                 pos_end = setposcur(); 
    5954                 RemoveWordSET_0(fortran_out,pos_curcall,pos_end-pos_curcall); 
    5955                 strcpy(subofagrifinitgrids,subroutinename); 
    5956             } 
    5957             Instanciation_0(sameagrifname); 
    5958         } 
    5959     break; 
    5960  
    5961   case 502: 
    5962 /* Line 1807 of yacc.c  */ 
    5963 #line 1979 "fortran.y" 
    5964     { 
    5965             if (!strcasecmp((yyvsp[(2) - (2)].na),"MPI_Init") )    callmpiinit = 1; 
    5966             else                                callmpiinit = 0; 
    5967  
    5968             if (!strcasecmp((yyvsp[(2) - (2)].na),"Agrif_Init_Grids") ) 
    5969             { 
    5970                 callagrifinitgrids = 1; 
    5971                 strcpy(meetagrifinitgrids,subroutinename); 
    5972             } 
    5973             else 
    5974             { 
    5975                 callagrifinitgrids = 0; 
    5976             } 
    5977             if ( Vartonumber((yyvsp[(2) - (2)].na)) == 1 ) 
    5978             { 
    5979                 incalldeclare = 1; 
    5980                 inagrifcallargument = 1 ; 
    5981                 Add_SubroutineWhereAgrifUsed_1(subroutinename, curmodulename); 
    5982             } 
    5983         } 
    5984     break; 
    5985  
    5986   case 503: 
    5987 /* Line 1807 of yacc.c  */ 
    5988 #line 2000 "fortran.y" 
    5989     { pos_curcall=setposcur()-4; } 
    5990     break; 
    5991  
    5992   case 506: 
    5993 /* Line 1807 of yacc.c  */ 
    5994 #line 2008 "fortran.y" 
    5995     { 
    5996             if ( callmpiinit == 1 ) 
    5997             { 
    5998                 strcpy(mpiinitvar,(yyvsp[(1) - (1)].na)); 
    5999                 if ( firstpass == 1 )  Add_UsedInSubroutine_Var_1 (mpiinitvar); 
    6000             } 
    6001         } 
    6002     break; 
    6003  
    6004   case 532: 
    6005 /* Line 1807 of yacc.c  */ 
    6006 #line 2056 "fortran.y" 
     7092  case 1085: 
     7093/* Line 1807 of yacc.c  */ 
     7094#line 4823 "fortran.y" 
    60077095    { afterpercent = 1; } 
    60087096    break; 
    60097097 
    6010   case 572: 
    6011 /* Line 1807 of yacc.c  */ 
    6012 #line 2115 "fortran.y" 
    6013     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    6014     break; 
    6015  
    6016   case 573: 
    6017 /* Line 1807 of yacc.c  */ 
    6018 #line 2116 "fortran.y" 
    6019     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    6020     break; 
    6021  
    6022   case 574: 
    6023 /* Line 1807 of yacc.c  */ 
    6024 #line 2117 "fortran.y" 
    6025     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    6026     break; 
    6027  
    6028   case 575: 
    6029 /* Line 1807 of yacc.c  */ 
    6030 #line 2118 "fortran.y" 
    6031     { strcpy((yyval.na),(yyvsp[(1) - (1)].na)); } 
    6032     break; 
    6033  
    6034   case 576: 
    6035 /* Line 1807 of yacc.c  */ 
    6036 #line 2119 "fortran.y" 
    6037     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6038     break; 
    6039  
    6040   case 577: 
    6041 /* Line 1807 of yacc.c  */ 
    6042 #line 2120 "fortran.y" 
    6043     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6044     break; 
    6045  
    6046   case 578: 
    6047 /* Line 1807 of yacc.c  */ 
    6048 #line 2121 "fortran.y" 
    6049     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6050     break; 
    6051  
    6052   case 579: 
    6053 /* Line 1807 of yacc.c  */ 
    6054 #line 2122 "fortran.y" 
    6055     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6056     break; 
    6057  
    6058   case 580: 
    6059 /* Line 1807 of yacc.c  */ 
    6060 #line 2123 "fortran.y" 
    6061     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6062     break; 
    6063  
    6064   case 581: 
    6065 /* Line 1807 of yacc.c  */ 
    6066 #line 2124 "fortran.y" 
    6067     { sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); } 
    6068     break; 
    6069  
    6070   case 582: 
    6071 /* Line 1807 of yacc.c  */ 
    6072 #line 2127 "fortran.y" 
    6073     { sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na)); } 
    6074     break; 
    6075  
    6076   case 583: 
    6077 /* Line 1807 of yacc.c  */ 
    6078 #line 2128 "fortran.y" 
    6079     { sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na)); } 
    6080     break; 
    6081  
    6082   case 584: 
    6083 /* Line 1807 of yacc.c  */ 
    6084 #line 2129 "fortran.y" 
    6085     { sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na)); } 
    6086     break; 
    6087  
    6088   case 585: 
    6089 /* Line 1807 of yacc.c  */ 
    6090 #line 2131 "fortran.y" 
    6091     { sprintf((yyval.na),"%s=%s,%s)",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));} 
    6092     break; 
    6093  
    6094   case 586: 
    6095 /* Line 1807 of yacc.c  */ 
    6096 #line 2132 "fortran.y" 
    6097     { sprintf((yyval.na),"%s=%s,%s,%s)",(yyvsp[(1) - (7)].na),(yyvsp[(3) - (7)].na),(yyvsp[(5) - (7)].na),(yyvsp[(7) - (7)].na));} 
    6098     break; 
    6099  
    6100   case 591: 
    6101 /* Line 1807 of yacc.c  */ 
    6102 #line 2142 "fortran.y" 
    6103     { Add_Allocate_Var_1((yyvsp[(1) - (1)].na),curmodulename); } 
    6104     break; 
    6105  
    6106  
    6107 /* Line 1807 of yacc.c  */ 
    6108 #line 6110 "fortran.tab.c" 
     7098 
     7099/* Line 1807 of yacc.c  */ 
     7100#line 7101 "fortran.tab.c" 
    61097101      default: break; 
    61107102    } 
     
    63387330 
    63397331/* Line 2055 of yacc.c  */ 
    6340 #line 2156 "fortran.y" 
     7332#line 4920 "fortran.y" 
    63417333 
    63427334 
     
    67947786   (yy_c_buf_p) = yy_cp; 
    67957787 
    6796 #define YY_NUM_RULES 176 
    6797 #define YY_END_OF_BUFFER 177 
     7788#define YY_NUM_RULES 178 
     7789#define YY_END_OF_BUFFER 179 
    67987790/* This struct is not used in this scanner, 
    67997791   but its presence is necessary. */ 
     
    68037795   flex_int32_t yy_nxt; 
    68047796   }; 
    6805 static yyconst flex_int16_t yy_accept[1132] = 
     7797static yyconst flex_int16_t yy_acclist[1591] = 
    68067798    {   0, 
    6807         0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    6808         0,    0,  177,  176,  166,  164,  175,  176,  155,  158, 
    6809       176,  176,  157,  157,  157,  160,  156,  144,  154,  157, 
    6810       159,  162,  161,  163,  151,  151,  151,  151,  151,  151, 
     7799      144,  144,  179,  178,  167,  178,  166,  178,  177,  178, 
     7800      178,  156,  178,  160,  178,  170,  178,  178,  159,  178, 
     7801      159,  178,  159,  178,  162,  178,  157,  178,  141,  178, 
     7802      155,  178,  159,  178,  161,  178,  164,  178,  163,  178, 
     7803      165,  178,  151,  178,  151,  178,  151,  178,  151,  178, 
     7804      151,  178,  151,  178,  151,  178,  151,  178,  151,  178, 
     7805      151,  178,  151,  178,  151,  178,  151,  178,  151,  178, 
     7806      151,  178,  151,  178,  151,  178,  151,  178,  151,  178, 
     7807      151,  178,  151,  178,  167,  178,  166,  176,  178,  177, 
     7808      178,  151,  178,  151,  178,  151,  178,  151,  178,  151, 
     7809 
     7810      178,  178,  178,  174,  178,  178,  178,  178,  144,  178, 
     7811      145,  178,  178,  166,  178,  151,  178,  151,  178,  151, 
     7812      178,  151,  178,  151,  178,  151,  178,  151,  178,  151, 
     7813      178,  151,  178,  151,  178,  151,  178,  151,  178,  151, 
     7814      178,  151,  178,  151,  178,  151,  178,  151,  178,  151, 
     7815      178,  151,  178,  151,  178,  151,  178,  166,  176,  178, 
     7816      167,  178,  159,  178,  155,  178,  151,  178,  151,  178, 
     7817      151,  178,  151,  178,  151,  178,  167,  178,  155,  178, 
     7818      167,  177,  177,  177,  147,  170,  146,  139,   20,  154, 
     7819      140,  138,   34,  155,  137,   35,   33,   18,   36,  151, 
     7820 
    68117821      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    6812       151,  151,  151,  151,  166,  164,  166,  175,  154,  151, 
    6813       151,  151,  151,  151,  151,  176,  176,  172,  176,  176, 
    6814       176,  157,  151,    0,    0,  166,    0,    0,  175,  175, 
    6815       175,    0,  148,    0,    0,    0,  168,    0,    0,    0, 
    6816         0,    0,  147,    0,    0,  141,   25,    0,  153,    0, 
    6817  
    6818         0,    0,    0,    0,    0,    0,  142,    0,  154,    0, 
    6819       140,   23,  151,  151,  151,  151,  151,  151,  151,  151, 
    6820       151,  151,  151,  151,  151,  151,  151,  151,   42,  151, 
     7822      151,  151,  151,  151,   42,  151,  151,  151,  151,  151, 
    68217823      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    6822       151,  151,  100,  151,   89,  151,  151,  151,  151,  151, 
     7824       91,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    68237825      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    68247826      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    6825       151,  151,  151,  151,    0,  166,  166,    0,  167,    0, 
    6826         0,    0,    0,    0,    0,  165,  166,    0,  175,  174, 
    6827       175,  175,  175,  167,  154,    0,  151,  151,  151,  151, 
    6828  
    6829        89,  151,  151,    0,  172,    0,    0,    0,    0,    0, 
    6830         0,  173,   25,    0,    0,    0,  151,  151,  151,  151, 
    6831       151,    0,    0,    0,  175,  175,    0,    0,    0,    0, 
    6832         0,    0,    0,    0,  146,    0,    0,    0,    0,    0, 
    6833         0,    0,    0,    0,    0,    0,    0,    0,  152,  152, 
    6834         0,  153,  151,  151,  151,  151,  151,  151,  151,  151, 
    6835       151,  151,  151,  151,  151,  151,  123,  151,  151,  151, 
    6836       151,  151,  151,  151,   14,  151,  151,  151,  151,  122, 
    6837       151,  151,  151,  151,  151,  151,  151,    0,  151,  151, 
    6838       151,  151,  151,  151,  129,  151,  151,  134,  151,  151, 
    6839  
    6840       151,  151,  151,  151,  151,  151,   93,  151,  151,  151, 
     7827      167,  176,  177,  177,  177,  177,  151,  151,  151,  151, 
     7828       91,  151,  151,  174,  144,  143,  151,  151,  151,  151, 
    68417829      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
    6842       151,  126,  151,  151,  151,  151,  151,  130,  151,  151, 
    6843       151,  151,  151,  151,  151,    0,  166,  166,    0,    0, 
    6844         0,    0,    0,    0,    0,    0,    0,  166,    0,  167, 
    6845       175,  175,  175,  154,    0,  151,  151,  151,  151,  151, 
    6846       151,  151,    0,    0,    0,    0,  173,    0,    0,    0, 
    6847       151,  151,  151,  151,  151,    0,    0,    0,  175,  175, 
    6848         0,    0,    0,    0,    0,    0,    0,    0,  153,    0, 
    6849        27,    0,   29,   28,   31,   30,   33,    0,    0,   35, 
    6850  
    6851         0,    0,  133,  125,  151,  151,  128,  151,  131,  151, 
    6852       151,   20,  151,  151,  151,  151,  151,  151,  124,  151, 
    6853       151,  151,  151,  151,  151,   98,    0,  115,  151,  151, 
    6854       151,  151,  151,  151,  151,  151,    0,  116,  151,    0, 
    6855       117,  151,  151,  151,  151,  151,  151,    0,  113,  151, 
    6856       151,    0,   92,  151,  151,  151,  151,  151,  151,  151, 
    6857         0,  102,  151,  151,    0,  119,  151,  151,  151,  151, 
    6858       120,    0,  114,   19,  151,   63,   77,  151,  151,  151, 
    6859       151,  151,  151,  151,  151,   82,   43,  151,  151,  151, 
    6860       151,   72,  151,  151,  127,  151,   76,   57,  151,    0, 
    6861  
    6862       101,  103,  151,   96,  105,  151,  151,  151,  151,   47, 
    6863       166,  166,    0,    0,    0,    0,    0,    0,    0,  166, 
    6864         0,  167,  175,  175,  175,  154,    0,  108,  151,  151, 
    6865       151,  151,  151,   16,    0,    0,    0,    0,    0,    0, 
    6866       151,  151,  151,  151,    0,    0,    0,  175,  175,    0, 
    6867         0,    0,    0,    0,    0,   37,   26,    0,   34,   36, 
     7830      151,   42,  151,  151,  151,  151,  151,  151,  151,  151, 
     7831 
     7832      151,  151,  151,  151,  151,  151,  151,   91,  151,  151, 
     7833      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7834      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7835      151,  151,  151,  151,  151,  151,  151,  176,  167,  167, 
     7836      175,   20,  155,  175,  151,  151,  151,  151,  151,  151, 
     7837      151,  151,  151,  151,   91,  151,  151,  167,  155,  177, 
     7838      177,  142,  146,  153,  152,  153,  154,  154,  151,  151, 
     7839      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7840      151,  151,  151,  151,  151,  151,  151,  151,    9,  151, 
     7841      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7842 
     7843      151,  103,16485,  151,  151,  151,  151,  151,  151,  151, 
     7844      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7845      151,  151,  151,   94,  151,  151,  151,  151,  151,  151, 
     7846      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7847      151,  151,  151,  151,  151,  151,   11,  151,  151,  151, 
     7848      151,  177,  177,  177,  151,  151,  151,  151,  151,  151, 
     7849      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7850      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7851        9,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7852      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7853 
     7854      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7855      151,  151,  151,   94,  151,  151,  151,  151,  151,  151, 
     7856      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7857      151,  151,  151,  151,  151,  151,   11,  151,  151,  151, 
     7858      151,  167,  167,  155,  151,  151,  151,  151,  151,  151, 
     7859      151,  151,  151,  151,  151,  151,  151,  177,  177,  154, 
     7860       22,   24,   23,   26,   25,   28,   30,  151,  151,  151, 
     7861      151,  151,  151,  151,  151,   15,  151,  151,  151,  151, 
     7862      151,  151,  151,  151,  151,  151,  151,   41,   41,  151, 
     7863      151,   99,  151,  116,  151,  151,  151,  151,  151,  117, 
     7864 
     7865      151,  127,  151,  151,   79,  151,  151,  151,  151,  114, 
     7866      151,  151,   93,  151,  151,  151,  151,  151,  151,  151, 
     7867      151,  151,  151,  151,  119,  151,  151,  151,  151,  115, 
     7868       14,  151,  151,   63,  151,   77,  151,  151,  151,  151, 
     7869      151,  151,  151,  151,  151,  151,   83,  151,   43,  151, 
     7870      131,  151,  151,  151,  151,  151,   72,  151,  151,  151, 
     7871       76,  151,   57,  151,  151,  151,   97,  151,  151,  151, 
     7872      151,  151,   47,  177,  177,  177,  105,  151,  151,  151, 
     7873      151,  151,  151,16458,  151,  151,  151,  151,  151,  151, 
     7874      151,  151,   15,  151,  151,  151,  151,  151,  151,  151, 
     7875 
     7876      151,  151,  151,  151,   41,  151,  151,   99,  151,  151, 
     7877      151,  151,  151,  151,  151,  151,  151,   79,  151,  151, 
     7878      151,  151,  151,  151,   93,  151,  151,  151,  151,  151, 
     7879      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7880       14,  151,  151,   63,  151,   77,  151,  151,  151,  151, 
     7881      151,  151,  151,  151,  151,  151,   83,  151,   43,  151, 
     7882      151,  151,  151,  151,  151,   72,  151,  151,  151,   76, 
     7883      151,   57,  151,  151,  151,   97,  151,  151,  151,  151, 
     7884      151,  167,  155,   15,  151,  105,  151,  151,  151,  151, 
     7885      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7886 
     7887    16458,  177,  177,  158,   32,   21,   29,   31,  151,  151, 
    68687888      151,  151,  151,  151,  151,  151,   52,  151,  151,  151, 
    6869       151,  132,  151,  151,  151,  151,  151,    0,  151,  151, 
    6870         0,    0,    0,    0,    0,    0,    0,    0,   41,  151, 
    6871        99,  151,  151,  151,  151,  151,  151,  151,  151,   79, 
    6872  
    6873        79,  151,    0,  111,  121,   85,  151,  151,   92,  151, 
    6874       151,   94,  151,  151,  151,  151,  151,  151,  151,  151, 
    6875       151,  151,  151,    0,    0,  151,  151,  151,   55,  151, 
    6876        80,  151,  151,  151,    0,  151,  151,  151,  151,  151, 
    6877         0,  135,  106,  151,  151,    0,  112,   58,   39,   84, 
    6878       166,  166,  108,    0,    0,    0,    0,    0,  166,    0, 
    6879       167,  175,  175,  175,  154,    0,  108,  151,   90,  151, 
    6880       151,   74,   73,   74,    0,    0,    0,    0,    0,  151, 
    6881        52,  151,  132,    0,   21,    0,  175,   21,    0,   21, 
    6882        21,    0,   21,    0,   21,   21,   21,   32,  151,  151, 
    6883  
    6884       151,   21,  151,  151,   66,  151,  151,  151,  151,  151, 
    6885       151,  151,  145,    0,    0,   97,  151,   41,    0,   99, 
    6886         0,    0,    0,    0,    0,    0,  151,  151,  151,  151, 
    6887       151,  151,  151,  151,    0,  118,  151,  151,  151,  151, 
    6888       151,  151,  151,   69,  151,  151,  137,  104,  136,  138, 
    6889        38,  151,    0,    6,  151,  151,  151,  151,  151,  151, 
    6890        87,    0,  151,    8,   78,   17,  151,  151,   86,  166, 
    6891       166,    0,    0,    0,  166,  175,  175,   21,    0,  151, 
    6892       151,  151,    0,    0,    0,   21,    0,  151,   21,   22, 
    6893         0,  169,   22,   22,   22,   22,   22,   22,   22,   22, 
    6894  
    6895       151,  151,  151,  151,   50,  151,  151,  151,  109,  151, 
    6896         0,  151,  151,   97,    0,  151,    0,    0,    0,    0, 
    6897         0,    0,    0,  151,  151,  151,  151,  151,   75,  151, 
    6898       151,  151,    0,    0,  151,  151,   15,   53,   44,  151, 
    6899        45,    0,  151,  151,    5,  151,  151,   70,   88,    3, 
    6900         0,    0,  151,    0,  151,  151,    0,    0,    0,  175, 
    6901        22,    0,  151,   67,  151,    0,    0,   22,    0,   22, 
    6902       151,    4,  151,  151,  151,  151,   91,  151,  151,    0, 
    6903         0,  151,  151,    0,  151,    0,    0,    0,    0,    0, 
    6904        75,    0,  151,  151,  151,  151,  151,   59,  151,   68, 
    6905  
    6906         0,    0,    0,    0,  143,    9,   18,  151,    0,  151, 
    6907        83,   71,  151,    0,  151,    0,  151,  151,    0,    0, 
    6908       175,    0,   62,  151,    0,    0,    0,  151,  151,  139, 
    6909        46,  151,  151,   54,    0,    0,  151,  151,    0,   61, 
    6910         0,    0,    0,    0,    0,   59,  151,   11,  151,  110, 
    6911       151,  151,    0,    0,    0,    0,    0,  143,   95,    0, 
    6912       151,   64,    0,   65,    0,  151,  151,   62,    0,  175, 
    6913         0,  149,    0,    0,    0,  151,  151,   40,    7,    0, 
    6914         0,  151,  151,   61,    0,   60,    0,   11,    0,  110, 
    6915         0,  151,   10,  151,  151,    0,    0,    0,  151,    0, 
    6916  
    6917         0,  107,    2,  149,  175,    0,    0,    0,    0,   51, 
    6918         0,    0,    0,    0,  151,  151,    0,   10,    0,   13, 
    6919       151,   56,    0,    0,    0,  151,    0,  107,  175,    0, 
    6920         0,    0,    0,    0,    0,    0,    0,  151,  151,   13, 
    6921         0,  151,    0,    0,    0,  151,    0,  175,    0,    0, 
    6922         0,    0,    0,   24,    0,    0,   49,  151,    0,   12, 
    6923         0,    0,    0,  151,    0,  175,    0,    0,    0,  150, 
    6924         0,   49,    0,  151,   12,    0,    0,    0,    0,  151, 
    6925         0,  175,    0,    0,    0,    0,   48,    0,    0,    0, 
    6926        81,    1,  175,    0,    0,    0,   48,   81,  175,    0, 
    6927  
    6928         0,    0,  175,    0,    0,    0,  175,    0,    0,    0, 
    6929       175,    0,    0,    0,  175,    0,    0,    0,  175,  170, 
    6930         0,  170,    0,    0,  170,    0,    0,    0,    0,  171, 
    6931         0 
     7889      151,  151,  135,  151,  151,  151,  151,  151,  151,  151, 
     7890       40,  151,  100,  151,  151,  151,  151,  151,  151,  151, 
     7891      151,  108,   87,  151,  128,  151,   93,  102,  151,  151, 
     7892       95,  151,  151,  151,  151,  151,  151,  151,  151,  120, 
     7893      151,  151,  122,  129,  151,  151,  151,  151,  151,   55, 
     7894      151,  151,  151,   80,  151,  151,  151,  151,   82,  130, 
     7895      151,  151,  151,  151,  151,  151,  151,  151,  151,  112, 
     7896       58,  151,   38,  151,   86,  151,  105,16458,  177,  177, 
     7897 
     7898      177,  105,  151,   92,  151,  151, 8266,   73, 8266,  151, 
     7899      151,  151,  151,  151,  151,  151,  151,   52,  151,  151, 
     7900      151,  151,  151,  135,  151,  151,  151,  151,  151,  151, 
     7901      151,   40,  151,  100,  151,  151,  151,  151,  151,  151, 
     7902      151,  151,   87,  151,  151,  151,  151,   95,  151,  151, 
     7903      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7904      151,  151,  151,   55,  151,  151,  151,   80,  151,  151, 
     7905      151,  151,  151,  151,  151,  151,  151,  151,  151,  151, 
     7906      151,   58,  151,   38,  151,   86,  151,  167,  155,  105, 
     7907      151,  151,   52,  151,  151,  151,  151,  151,  151,  151, 
     7908 
     7909      135,  151,  151,  151,   16,  177,   16,  177,   16,   16, 
     7910      147,   16,   16,   16,  146,   16,   16,   16,   16,   16, 
     7911       16,   27,  151,  151,  151,  151,  151,   16,  151,  151, 
     7912      118,  151,   66,  151,  151,  151,  151,  151,  151,  151, 
     7913      151,   98,  151,  151,   40,  100,  151,  151,  151,  151, 
     7914      151,  134,  151,  151,  102, 8293,  102,  151,  151,  151, 
     7915      151,   69,  151,  151,  151,  125,  151,  151,   37,  151, 
     7916      151,  151,  151,  151,  151,  151,  151,  151,  151,   89, 
     7917      151,  151,    7,  151,   78,  151,   12,  151,  151,  151, 
     7918      133,  151,  151,   88,  151,   85,  177,  177,   16,  177, 
     7919 
     7920      151,  151,  151,  151,  151,  151,  151,  151,   16,  151, 
     7921      151,  151,   66,  151,  151,  151,  151,  151,  151,  151, 
     7922      151,   98,  151,  151,  151,  151,  151,  151,  151,  151, 
     7923      151,  151,  151,  151,  151,   69,  151,  151,  151,  151, 
     7924      151,   37,  151,  151,  151,  151,  151,  151,  151,  151, 
     7925      151,  151,   89,  151,  151,    7,  151,   78,  151,   12, 
     7926      151,  151,  151,  133,  151,  151,   88,  151,   16,  151, 
     7927      151,   66,  151,  151,  151,  151,  151,   16,  151,  151, 
     7928      151,   17,   17,  177,   17,   17,  147,   17,   17,   17, 
     7929      146,   17,   17,   17,   17,   17,   17,  109,  110,   17, 
     7930 
     7931      151,  151,  151,  151,  151,   50,  151,  151,  151,  151, 
     7932      106,  151,  151,  151,  151,   98,  151,  151,   75,  151, 
     7933      151,  151,  121,  151,  151, 8293,  151,   10,  151,   53, 
     7934      151,   44,  151,  151,  151,  126,   45,  151,  151,  151, 
     7935        5,  151,  113,  151,  151,   70,  151,  151,   90,  151, 
     7936        2,  151,  151,  151,  123,  132,  151,  177,   17,  177, 
     7937      151,   67,  151,  171,   17,  151,  151,  151,  151,  151, 
     7938       50,  151,  151,  151,  151,  106,  151,  151,  151,  151, 
     7939      151,  151,   75,  151,  151,  151,  151,  151,  151,   10, 
     7940      151,   53,  151,   44,  151,  151,  151,   45,  151,  151, 
     7941 
     7942      151,    5,  151,  151,  151,   70,  151,  151,   90,  151, 
     7943        2,  151,  151,  151,  151,  171,   17,   17,  151,  151, 
     7944       50,  151,  151,  151,  151,  151,  151,    3,  151,  151, 
     7945      151,  151,  151,    4,  151,  151,  151,  151,  151,  151, 
     7946       75,  151,   59,  151,  151,   68,  151,    8,  151,   13, 
     7947      151,  151,  151,  151,   84,  151,   71,  151,  151,  151, 
     7948      151,  151,  151,  177,   62,  151,  151,  151,    3,  151, 
     7949      151,  151,  151,  151,    4,  151,  151,  151,  151,  151, 
     7950      151,  151,   59,  151,  151,   68,  151,    8,  151,   13, 
     7951      151,  151,  151,  151,   84,  151,   71,  151,  151,  151, 
     7952 
     7953      151,  151,  151,  151,  151,   62,  151,    4,  151,  151, 
     7954      138,  151,  151,  136,  151,   46,  151,  151,  151,   54, 
     7955      151,  151,  151,   61,  151,   59,  107,  151,  151,   96, 
     7956      151,  111,  151,   64,  151,  124,   65,  151,  151,  151, 
     7957       62,  177,  148,  151,  150,  151,  151,  136,  151,   46, 
     7958      151,  151,  151,   54,  151,  151,  151,   61,  151,  107, 
     7959      151,  151,   96,  151,  151,   64,  151,   65,  151,  151, 
     7960      151,   46,  151,  151,  148,  151,  169,  138,  151,  151, 
     7961       39,  151,    6,  151,  151,  151,   61,   60,  107,  151, 
     7962      151,  104,  151,    1,  151,  148,  177,  151,  151,   39, 
     7963 
     7964      151,    6,  151,  151,  151,  151,  151,  104,  151,    1, 
     7965      151,  168,   39,  151,   51,  151,  151,  151,   56,  151, 
     7966      151,  104,  177,   51,  151,  151,  151,   56,  151,  151, 
     7967      169,  151,  151,  151,  177,  151,  151,  151,  168,   19, 
     7968       49,  151,  151,  151,  177,  149,  174,   49,  151,  151, 
     7969      151,  168,  168,   49,  151,  151,  177,  151,  151,   48, 
     7970      151,   81,  151,  177,   48,  151,   81,  151,  168,   48, 
     7971       81,  177,  177,  177,  177,  177,  177,  172,  177,  172, 
     7972      172,  175,  172,  176,  177,  175,  173,  174,  173,  174 
     7973    } ; 
     7974 
     7975static yyconst flex_int16_t yy_accept[1888] = 
     7976    {   0, 
     7977        1,    1,    1,    1,    1,    1,    1,    1,    1,    2, 
     7978        3,    3,    3,    3,    3,    4,    5,    7,    9,   11, 
     7979       12,   14,   16,   18,   19,   21,   23,   25,   27,   29, 
     7980       31,   33,   35,   37,   39,   41,   43,   45,   47,   49, 
     7981       51,   53,   55,   57,   59,   61,   63,   65,   67,   69, 
     7982       71,   73,   75,   77,   79,   81,   83,   85,   87,   90, 
     7983       92,   94,   96,   98,  100,  102,  103,  104,  106,  107, 
     7984      108,  109,  111,  113,  114,  116,  118,  120,  122,  124, 
     7985      126,  128,  130,  132,  134,  136,  138,  140,  142,  144, 
     7986      146,  148,  150,  152,  154,  156,  158,  161,  163,  165, 
     7987 
     7988      167,  169,  171,  173,  175,  177,  179,  181,  181,  181, 
     7989      182,  183,  184,  185,  185,  186,  186,  186,  187,  187, 
     7990      187,  187,  187,  188,  188,  188,  188,  188,  189,  189, 
     7991      189,  189,  190,  190,  191,  191,  191,  191,  191,  191, 
     7992      191,  191,  191,  191,  191,  192,  193,  194,  194,  195, 
     7993      195,  196,  197,  198,  199,  200,  201,  202,  203,  204, 
     7994      205,  206,  207,  208,  209,  210,  211,  212,  213,  214, 
     7995      215,  217,  218,  219,  220,  221,  222,  223,  224,  225, 
     7996      226,  227,  228,  229,  230,  231,  233,  234,  235,  236, 
     7997      237,  238,  239,  240,  241,  242,  243,  244,  245,  246, 
     7998 
     7999      247,  248,  249,  250,  251,  252,  253,  254,  255,  256, 
     8000      257,  258,  259,  260,  261,  261,  262,  263,  263,  263, 
     8001      263,  263,  263,  263,  263,  264,  264,  265,  266,  267, 
     8002      267,  268,  269,  270,  271,  273,  274,  274,  275,  275, 
     8003      275,  275,  275,  276,  276,  277,  277,  277,  277,  277, 
     8004      277,  277,  278,  279,  280,  281,  282,  283,  284,  285, 
     8005      286,  287,  288,  289,  290,  291,  292,  294,  295,  296, 
     8006      297,  298,  299,  300,  301,  302,  303,  304,  305,  306, 
     8007      307,  308,  310,  311,  312,  313,  314,  315,  316,  317, 
     8008      318,  319,  320,  321,  322,  323,  324,  325,  326,  327, 
     8009 
     8010      328,  329,  330,  331,  332,  333,  334,  335,  336,  337, 
     8011      338,  338,  339,  339,  339,  340,  341,  341,  341,  342, 
     8012      343,  343,  343,  343,  343,  344,  345,  345,  346,  347, 
     8013      348,  349,  350,  351,  352,  353,  354,  355,  357,  358, 
     8014      359,  359,  359,  360,  360,  360,  360,  361,  362,  362, 
     8015      362,  362,  362,  362,  362,  362,  362,  364,  364,  364, 
     8016      364,  364,  364,  364,  364,  364,  364,  364,  364,  364, 
     8017      364,  364,  364,  364,  364,  364,  364,  364,  364,  364, 
     8018      364,  364,  364,  364,  364,  364,  364,  364,  364,  365, 
     8019      368,  368,  369,  370,  371,  372,  373,  374,  375,  376, 
     8020 
     8021      377,  378,  379,  380,  381,  382,  383,  384,  385,  386, 
     8022      386,  387,  388,  389,  391,  392,  393,  394,  395,  396, 
     8023      397,  398,  399,  400,  401,  401,  402,  402,  404,  405, 
     8024      406,  407,  408,  409,  410,  411,  412,  413,  414,  415, 
     8025      416,  417,  418,  419,  420,  421,  422,  423,  424,  426, 
     8026      427,  428,  429,  430,  431,  432,  433,  434,  435,  436, 
     8027      437,  438,  439,  440,  441,  442,  443,  444,  445,  446, 
     8028      447,  449,  450,  451,  452,  452,  452,  452,  452,  452, 
     8029      452,  452,  452,  452,  453,  454,  455,  455,  456,  457, 
     8030      458,  459,  460,  461,  461,  461,  461,  461,  461,  461, 
     8031 
     8032      461,  461,  461,  461,  461,  461,  462,  463,  464,  465, 
     8033      466,  467,  468,  469,  470,  471,  472,  473,  474,  475, 
     8034      476,  477,  478,  479,  480,  481,  483,  484,  485,  486, 
     8035      487,  488,  489,  490,  491,  492,  493,  494,  495,  496, 
     8036      497,  498,  499,  500,  501,  502,  503,  504,  505,  506, 
     8037      507,  508,  509,  510,  511,  512,  513,  514,  516,  517, 
     8038      518,  519,  520,  521,  522,  523,  524,  525,  526,  527, 
     8039      528,  529,  530,  531,  532,  533,  534,  535,  536,  537, 
     8040      539,  540,  541,  542,  542,  542,  542,  542,  543,  543, 
     8041      544,  544,  544,  544,  544,  544,  544,  545,  545,  546, 
     8042 
     8043      547,  548,  549,  550,  551,  552,  553,  554,  555,  556, 
     8044      557,  558,  558,  558,  558,  558,  559,  560,  560,  560, 
     8045      560,  560,  560,  560,  560,  560,  560,  560,  560,  560, 
     8046      560,  560,  560,  560,  560,  560,  561,  561,  561,  562, 
     8047      562,  563,  564,  565,  566,  566,  567,  567,  567,  568, 
     8048      568,  568,  568,  568,  568,  568,  568,  568,  568,  568, 
     8049      568,  569,  570,  571,  572,  573,  574,  575,  576,  578, 
     8050      579,  580,  581,  582,  583,  584,  585,  586,  587,  588, 
     8051      589,  591,  592,  594,  594,  595,  596,  597,  598,  599, 
     8052      600,  600,  601,  602,  602,  603,  604,  605,  607,  608, 
     8053 
     8054      609,  610,  610,  611,  612,  613,  613,  615,  615,  615, 
     8055      615,  615,  616,  617,  618,  619,  620,  621,  622,  623, 
     8056      624,  625,  625,  626,  627,  628,  629,  630,  630,  631, 
     8057      633,  634,  636,  638,  639,  640,  641,  642,  643,  644, 
     8058      645,  646,  647,  649,  651,  651,  652,  653,  654,  655, 
     8059      656,  657,  659,  660,  661,  663,  665,  666,  667,  669, 
     8060      670,  671,  672,  673,  674,  674,  674,  674,  674,  674, 
     8061      674,  675,  676,  677,  677,  679,  680,  681,  682,  683, 
     8062      685,  685,  685,  685,  685,  685,  685,  685,  685,  685, 
     8063      686,  687,  688,  689,  690,  691,  692,  693,  695,  696, 
     8064 
     8065      697,  698,  699,  700,  701,  702,  703,  704,  705,  707, 
     8066      708,  710,  711,  712,  713,  714,  715,  716,  717,  718, 
     8067      720,  721,  722,  723,  724,  725,  727,  728,  729,  730, 
     8068      731,  732,  733,  734,  735,  736,  737,  738,  739,  740, 
     8069      741,  743,  744,  746,  748,  749,  750,  751,  752,  753, 
     8070      754,  755,  756,  757,  759,  761,  762,  763,  764,  765, 
     8071      766,  768,  769,  770,  772,  774,  775,  776,  778,  779, 
     8072      780,  781,  782,  782,  782,  782,  783,  783,  783,  783, 
     8073      783,  783,  784,  784,  786,  788,  789,  790,  791,  792, 
     8074      793,  794,  795,  796,  797,  798,  799,  800,  802,  802, 
     8075 
     8076      802,  802,  803,  804,  804,  804,  804,  804,  804,  805, 
     8077      805,  805,  805,  805,  805,  805,  806,  807,  807,  808, 
     8078      809,  809,  809,  809,  809,  809,  809,  810,  811,  812, 
     8079      813,  814,  815,  816,  816,  816,  817,  819,  820,  821, 
     8080      822,  823,  825,  826,  827,  828,  829,  829,  830,  831, 
     8081      831,  831,  831,  831,  831,  833,  835,  836,  837,  838, 
     8082      839,  840,  841,  842,  842,  843,  845,  845,  846,  847, 
     8083      848,  848,  848,  848,  849,  850,  851,  853,  854,  855, 
     8084      856,  857,  858,  859,  860,  860,  861,  862,  863,  863, 
     8085      864,  864,  865,  866,  867,  868,  869,  870,  872,  873, 
     8086 
     8087      874,  876,  877,  878,  879,  879,  880,  880,  881,  882, 
     8088      883,  884,  885,  886,  887,  888,  889,  890,  890,  891, 
     8089      893,  895,  897,  898,  898,  898,  898,  898,  899,  900, 
     8090      901,  902,  902,  903,  904,  905,  906,  907,  908,  909, 
     8091      910,  910,  910,  910,  910,  910,  910,  911,  912,  913, 
     8092      914,  915,  916,  917,  918,  920,  921,  922,  923,  924, 
     8093      926,  927,  928,  929,  930,  931,  932,  934,  936,  937, 
     8094      938,  939,  940,  941,  942,  943,  945,  946,  947,  948, 
     8095      950,  951,  952,  953,  954,  955,  956,  957,  958,  959, 
     8096      960,  961,  962,  963,  964,  966,  967,  968,  970,  971, 
     8097 
     8098      972,  973,  974,  975,  976,  977,  978,  979,  980,  981, 
     8099      982,  984,  986,  988,  988,  988,  988,  989,  989,  989, 
     8100      989,  989,  989,  990,  990,  991,  992,  993,  995,  996, 
     8101      997,  998,  999, 1000, 1001, 1003, 1004, 1005, 1005, 1005, 
     8102     1006, 1007, 1009, 1009, 1010, 1012, 1012, 1013, 1014, 1016, 
     8103     1016, 1016, 1016, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 
     8104     1023, 1023, 1023, 1023, 1023, 1024, 1025, 1026, 1027, 1028, 
     8105     1030, 1031, 1031, 1032, 1033, 1035, 1036, 1037, 1038, 1039, 
     8106     1040, 1041, 1042, 1042, 1042, 1044, 1045, 1046, 1047, 1047, 
     8107     1047, 1047, 1048, 1049, 1050, 1051, 1052, 1052, 1053, 1054, 
     8108 
     8109     1055, 1055, 1056, 1056, 1056, 1056, 1056, 1057, 1058, 1059, 
     8110     1060, 1061, 1062, 1064, 1065, 1066, 1066, 1067, 1068, 1069, 
     8111     1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 
     8112     1082, 1083, 1085, 1087, 1089, 1090, 1091, 1093, 1094, 1096, 
     8113     1096, 1097, 1097, 1097, 1097, 1098, 1099, 1101, 1101, 1102, 
     8114     1103, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1105, 1106, 
     8115     1107, 1108, 1109, 1111, 1112, 1113, 1115, 1116, 1117, 1118, 
     8116     1119, 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 
     8117     1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139, 1140, 
     8118     1141, 1142, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 
     8119 
     8120     1152, 1153, 1155, 1156, 1158, 1160, 1162, 1163, 1164, 1166, 
     8121     1167, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 1171, 1172, 
     8122     1174, 1175, 1176, 1177, 1178, 1180, 1181, 1182, 1182, 1183, 
     8123     1185, 1186, 1188, 1189, 1190, 1192, 1192, 1193, 1194, 1195, 
     8124     1196, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 
     8125     1200, 1202, 1203, 1204, 1205, 1206, 1208, 1209, 1210, 1211, 
     8126     1213, 1214, 1214, 1215, 1216, 1217, 1217, 1218, 1218, 1218, 
     8127     1218, 1219, 1221, 1222, 1223, 1223, 1224, 1225, 1226, 1227, 
     8128     1227, 1227, 1228, 1230, 1232, 1234, 1235, 1236, 1236, 1237, 
     8129     1239, 1239, 1240, 1241, 1243, 1243, 1244, 1245, 1246, 1248, 
     8130 
     8131     1249, 1251, 1253, 1254, 1254, 1255, 1255, 1256, 1256, 1257, 
     8132     1258, 1258, 1258, 1258, 1259, 1261, 1261, 1262, 1263, 1264, 
     8133     1264, 1264, 1264, 1265, 1265, 1265, 1267, 1268, 1269, 1270, 
     8134     1271, 1273, 1274, 1275, 1276, 1278, 1279, 1280, 1281, 1282, 
     8135     1283, 1285, 1286, 1287, 1288, 1289, 1290, 1292, 1294, 1296, 
     8136     1297, 1298, 1300, 1301, 1302, 1304, 1305, 1306, 1308, 1309, 
     8137     1311, 1313, 1314, 1315, 1316, 1316, 1317, 1317, 1318, 1318, 
     8138     1320, 1321, 1323, 1324, 1325, 1326, 1327, 1327, 1327, 1327, 
     8139     1327, 1327, 1328, 1330, 1331, 1332, 1333, 1334, 1336, 1337, 
     8140     1338, 1338, 1338, 1339, 1340, 1340, 1341, 1341, 1342, 1342, 
     8141 
     8142     1343, 1345, 1346, 1348, 1350, 1350, 1352, 1353, 1354, 1354, 
     8143     1355, 1357, 1359, 1360, 1361, 1362, 1362, 1363, 1364, 1364, 
     8144     1364, 1365, 1365, 1367, 1368, 1368, 1368, 1368, 1368, 1368, 
     8145     1369, 1371, 1372, 1373, 1374, 1375, 1377, 1378, 1379, 1380, 
     8146     1381, 1382, 1383, 1385, 1386, 1388, 1390, 1392, 1393, 1394, 
     8147     1395, 1397, 1399, 1400, 1401, 1402, 1403, 1404, 1404, 1404, 
     8148     1404, 1405, 1406, 1408, 1410, 1411, 1411, 1411, 1411, 1411, 
     8149     1411, 1411, 1411, 1412, 1413, 1414, 1416, 1418, 1419, 1420, 
     8150     1422, 1422, 1422, 1423, 1424, 1424, 1426, 1426, 1427, 1429, 
     8151     1430, 1432, 1432, 1433, 1433, 1434, 1436, 1436, 1437, 1439, 
     8152 
     8153     1439, 1440, 1441, 1442, 1442, 1443, 1443, 1445, 1445, 1445, 
     8154     1445, 1446, 1447, 1448, 1450, 1452, 1453, 1454, 1456, 1457, 
     8155     1458, 1460, 1462, 1463, 1465, 1466, 1468, 1470, 1471, 1472, 
     8156     1472, 1472, 1472, 1474, 1475, 1477, 1477, 1477, 1478, 1478, 
     8157     1478, 1478, 1479, 1480, 1481, 1483, 1485, 1485, 1485, 1486, 
     8158     1487, 1488, 1488, 1489, 1490, 1491, 1491, 1492, 1492, 1494, 
     8159     1496, 1497, 1498, 1498, 1498, 1498, 1499, 1500, 1502, 1504, 
     8160     1505, 1506, 1507, 1508, 1510, 1512, 1512, 1512, 1512, 1513, 
     8161     1513, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1517, 1517, 
     8162     1517, 1517, 1517, 1518, 1519, 1521, 1521, 1522, 1523, 1524, 
     8163 
     8164     1524, 1524, 1524, 1526, 1527, 1528, 1530, 1531, 1531, 1531, 
     8165     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 
     8166     1532, 1532, 1532, 1532, 1533, 1534, 1534, 1535, 1536, 1536, 
     8167     1536, 1536, 1537, 1538, 1539, 1539, 1539, 1539, 1539, 1539, 
     8168     1539, 1539, 1539, 1539, 1539, 1539, 1540, 1540, 1540, 1540, 
     8169     1540, 1540, 1541, 1541, 1541, 1543, 1544, 1544, 1545, 1546, 
     8170     1546, 1546, 1546, 1548, 1550, 1551, 1552, 1552, 1552, 1552, 
     8171     1552, 1552, 1552, 1553, 1553, 1553, 1553, 1554, 1554, 1554, 
     8172     1554, 1554, 1555, 1555, 1556, 1556, 1557, 1558, 1558, 1558, 
     8173     1559, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 
     8174 
     8175     1560, 1560, 1560, 1562, 1562, 1564, 1565, 1565, 1565, 1567, 
     8176     1569, 1569, 1569, 1569, 1569, 1569, 1569, 1570, 1570, 1571, 
     8177     1572, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 
     8178     1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1575, 
     8179     1575, 1575, 1575, 1575, 1576, 1576, 1576, 1576, 1577, 1577, 
     8180     1577, 1577, 1578, 1579, 1580, 1580, 1581, 1581, 1581, 1581, 
     8181     1583, 1583, 1583, 1585, 1585, 1586, 1586, 1586, 1586, 1586, 
     8182     1586, 1586, 1587, 1587, 1587, 1587, 1587, 1589, 1589, 1589, 
     8183     1590, 1590, 1590, 1591, 1591, 1591, 1591 
    69328184    } ; 
    69338185 
     
    69388190        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
    69398191        1,    4,    5,    6,    7,    8,    9,   10,   11,   12, 
    6940        13,   14,   15,   16,   17,   18,   19,   20,   21,   22, 
    6941        23,   24,   25,   26,   27,   28,   29,   30,   31,   32, 
    6942        33,   34,    1,    1,   35,   36,   37,   38,   39,   40, 
    6943        41,   42,   43,   44,   45,   46,   47,   48,   49,   50, 
    6944        51,   52,   53,   54,   55,   56,   57,   58,   59,   60, 
    6945        61,    1,   62,    1,   63,    1,   64,   65,   66,   67, 
    6946  
    6947        68,   69,   70,   71,   72,   44,   73,   74,   75,   76, 
    6948        77,   78,   79,   80,   81,   82,   83,   84,   85,   86, 
    6949        87,   88,    1,   89,    1,    1,    1,    1,    1,    1, 
     8192       13,   14,   15,   16,   17,   18,   19,   20,   20,   20, 
     8193       20,   20,   20,   20,   20,   20,   20,   21,   22,   23, 
     8194       24,   25,    1,    1,   26,   27,   28,   29,   30,   31, 
     8195       32,   33,   34,   35,   36,   37,   38,   39,   40,   41, 
     8196       42,   43,   44,   45,   46,   47,   48,   49,   50,   51, 
     8197       52,    1,   53,    1,   54,    1,   55,   56,   57,   58, 
     8198 
     8199       59,   60,   61,   62,   63,   35,   64,   65,   66,   67, 
     8200       68,   69,   70,   71,   72,   73,   74,   75,   76,   77, 
     8201       78,   79,    1,   80,    1,    1,    1,    1,    1,    1, 
    69508202        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
    69518203        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     
    69648216    } ; 
    69658217 
    6966 static yyconst flex_int32_t yy_meta[90] = 
     8218static yyconst flex_int32_t yy_meta[81] = 
    69678219    {   0, 
    6968         1,    1,    2,    1,    1,    3,    1,    1,    1,    1, 
    6969         1,    4,    1,    1,    1,    1,    1,    3,    1,    5, 
    6970         5,    5,    5,    5,    5,    5,    5,    5,    5,    1, 
    6971         1,    1,    1,    1,    6,    7,    7,    5,    5,    8, 
    6972         9,   10,   11,   11,   11,    9,   11,    9,   12,   11, 
    6973        13,    9,    9,    9,    9,   11,   11,   11,   11,   11, 
    6974         1,    1,   11,    6,    7,    7,    5,    5,    8,    9, 
    6975        10,   11,   11,    9,   11,    9,   12,   11,   13,    9, 
    6976         9,    9,    9,   11,   11,   11,   11,   11,    3 
     8220        1,    2,    3,    2,    4,    5,    4,    4,    1,    4, 
     8221        6,    7,    8,    4,    9,   10,   11,   12,   13,   14, 
     8222        1,    4,    1,    1,    1,   15,   14,   14,   14,   14, 
     8223       15,   16,   17,   17,   17,   17,   16,   17,   16,   16, 
     8224       17,   17,   16,   16,   16,   16,   17,   17,   17,   17, 
     8225       17,    1,    1,   18,   15,   14,   14,   14,   14,   15, 
     8226       16,   17,   17,   17,   16,   17,   16,   16,   17,   17, 
     8227       16,   16,   16,   16,   17,   17,   17,   17,   17,    5 
    69778228    } ; 
    69788229 
    6979 static yyconst flex_int16_t yy_base[1171] = 
     8230static yyconst flex_int16_t yy_base[2045] = 
    69808231    {   0, 
    6981         0,   88,    0,    0,    0,    0,  984,   93,    0,   85, 
    6982         0,    0,  891,   64,   98,  103,   80,  129,   96,   99, 
    6983       134,  137,  145,  133,  168,  135,  249,  180,  318,  136, 
    6984       156,  172,  212,  239,  246,  297,  366,  341,  414,  461, 
    6985       247,  294,  398,  334,  407,  476,  506,  517,  459,  566, 
    6986       572,  522,  571,  367,  653,  226,  656,  658,  737,  638, 
    6987       785,  655,  698,  806,  652, 4012,  878, 4012,  241,  116, 
    6988       124,  455,  893,   59,   76,  229,  253,  256,    0,  122, 
    6989       127,  872, 4012,  157,  188,  869,  866,  327,  302,  349, 
    6990       740,  416, 4012,  768,  592, 4012, 4012,  981,  730,  147, 
    6991  
    6992       184,  438,  495,  328,  184,  190, 4012, 1048,  335,  969, 
    6993      4012, 4012,    0,  269,  315,  149,  319,  486,  462,  248, 
    6994       318,  325,  269,  426,  736,  336,  767,  470,  500,  518, 
    6995       512,  403,  516,  525,  535,  801,  544,  620,  565,  570, 
    6996       589,  768,  483,  589,  810,  592,  613,  638,  650,  664, 
    6997       678,  736,  737,  740,  741,  949,  736,  788,  646,  956, 
    6998       756,  999,  739,  753,  804,  749, 1043,  972,  962,  769, 
    6999       813,  963,  972,  969,    0, 1057,    0,  839,  238, 1044, 
    7000       986,  789,  956, 1030,  965,  429, 1109, 1136,  830, 4012, 
    7001      1061, 1087, 1091, 1162, 1188,  990, 1095, 1120, 1006, 1042, 
    7002  
    7003      1170, 1050, 1046,  823, 4012, 1201, 1099, 1115, 1190,  797, 
    7004       483, 4012,  790, 1167, 1100, 1194, 1269, 1358, 1255, 1254, 
    7005      1195, 1103, 1098,  625, 1148, 1163, 1217, 1237, 1222, 1238, 
    7006      1095, 1305, 1325, 1234, 4012, 1334, 1302, 1326, 1107, 1182, 
    7007       738,  735,  731,  730, 1244, 1166,  713, 1242, 4012, 1428, 
    7008      1374, 1389, 1419, 1244, 1252, 1261, 1263, 1192, 1266, 1301, 
    7009      1333, 1333, 1352, 1352, 1387, 1392, 1388, 1389, 1390, 1404, 
    7010      1401, 1405, 1407, 1404, 1506, 1471, 1417, 1476, 1430,    0, 
    7011      1422, 1437, 1442, 1432, 1484, 1440, 1454, 1497, 1444, 1448, 
    7012      1451, 1443, 1445, 1475, 1459, 1530, 1536, 1464, 1477, 1470, 
    7013  
    7014      1531, 1490, 1491, 1482, 1509, 1511,    0, 1526, 1513, 1519, 
    7015      1524, 1527, 1524, 1555, 1516, 1519, 1522, 1546, 1557, 1564, 
    7016      1558, 1565, 1555, 1557, 1562, 1561, 1615, 1573, 1575, 1573, 
    7017      1576, 1570, 1574, 1582, 1576,  719,  351,  666, 1572,  713, 
    7018      1580, 1587, 1584, 1593, 1589, 1596, 1608, 1658, 1684, 1710, 
    7019      1652, 1645, 1661, 1741, 1626, 1629, 1635, 1634, 1637, 1703, 
    7020      1653,  709, 1654, 1744,  707,  998, 4012, 1712, 1674, 1715, 
    7021      1664, 1708, 1725, 1738, 1749, 1622, 1684, 1379, 1672, 1735, 
    7022      1743, 1771, 1723, 1772, 1787, 1804, 1815, 1807, 1821,  656, 
    7023      4012,  646, 4012, 4012, 4012, 4012, 4012, 1735,  614, 4012, 
    7024  
    7025       613, 1849, 4012,    0, 1741, 1751,    0, 1796,    0, 1799, 
    7026      1799,    0, 1820, 1819, 1811, 1816, 1808, 1821,    0, 1826, 
    7027      1822, 1814, 1822, 1825, 1819, 1871, 1955, 4012, 1825, 1821, 
    7028      1837, 1830, 1829, 1850, 1823, 1844, 1899, 4012, 1836, 1909, 
    7029      4012, 1841, 2040, 1856, 1915, 1858, 1874, 1920, 4012, 1886, 
    7030      1872, 1878,    0, 1886, 1879, 1881, 1888, 1896, 1895, 1902, 
    7031      1967, 4012, 1897, 1906, 1971, 4012, 1900, 1912, 1906, 1915, 
    7032         0, 1980, 4012,    0, 1988,    0,    0, 1929, 1939, 1926, 
    7033      1933, 1936, 1946, 1939, 1953,    0,  602, 1949, 1958, 1955, 
    7034      1963,    0, 1960, 2063,    0,  598,    0,    0, 1985, 2064, 
    7035  
    7036      4012,    0, 1960,    0,    0, 2019, 2022, 2024, 2025, 4012, 
    7037       792,  880, 2030, 2023, 2043, 2043, 2041, 2042,  581, 2092, 
    7038      2118, 2144, 2079, 2080, 2084, 2170, 2045, 1005, 2060, 1022, 
    7039      2071, 2134, 2199,  574, 2082, 2174, 2108, 2147, 2148, 2101, 
    7040      2154, 2184, 2187, 2190, 2087,    0, 1422, 2144,    0, 2200, 
    7041       138, 2202,  571, 2221, 2233, 4012, 4012,  514, 4012, 4012, 
    7042      2174, 2192, 2051, 2289, 2080, 2193,    0, 2109, 2194, 2193, 
    7043      2199,    0, 2201, 2207, 2204, 2195, 2198, 2270, 2240, 2240, 
    7044      2215, 2229, 2246, 2239, 2258, 2275, 2258, 2276,    0, 2276, 
    7045         0, 2287, 2279, 2283, 2295, 2283, 2295, 2300, 2335, 4012, 
    7046  
    7047         0, 2293, 2342, 4012,    0,    0, 2294, 2293, 4012, 2316, 
    7048      2321,    0, 2297, 2323, 2312, 2319, 2335, 2334, 2327, 2337, 
    7049      2333, 2341, 2338,  197,  451, 2343, 2337, 2347,    0, 2348, 
    7050         0, 2335, 2355, 2355,  477, 2343, 2343, 2350, 2355, 2348, 
    7051      2275, 4012, 4012, 2349, 2351, 2404, 4012,    0,    0,    0, 
    7052      1140, 1249, 1797, 2376, 2082, 2379, 2366, 2432, 2263,  424, 
    7053       569, 2417, 2420,  499, 2486, 2384, 2087, 2385, 2427, 2389, 
    7054      2398, 2437, 4012, 2448, 2444, 2439, 2452,  479, 2451, 2431, 
    7055      2410, 2565, 2416,    0, 4012, 2653,    0,    0,  475,  445, 
    7056      4012,  441,  436, 2458, 2462, 2468, 4012, 4012, 2682, 2404, 
    7057  
    7058      2428,    0, 2441, 2444,    0, 2442, 2449, 2447, 2480, 2465, 
    7059      2479, 2553,    0, 2487, 2489,    0, 2493, 4012, 2486, 4012, 
    7060      2497, 2509, 2513, 2527, 2535, 2549, 2552, 2538, 2550, 2555, 
    7061      2548, 2562, 2552, 2559, 2604, 4012, 2572, 2480, 2561, 2568, 
    7062      2573, 2575, 2564,    0, 2569, 2578,    0,    0,    0,    0, 
    7063      2660, 2572,  508, 4012, 2583, 2594, 2591, 2650, 2664, 2658, 
    7064         0, 2536, 2663,    0,    0,    0, 2715, 2654,    0, 2539, 
    7065      2479, 2668, 2663, 2678, 2644, 2682,  426,  421, 2680, 2677, 
    7066      2540, 2686, 2701, 2720,  411,  365, 2721, 2790, 2691, 4012, 
    7067      2725, 4012,    0,  343, 4012,  307, 2753, 2755, 4012,    0, 
    7068  
    7069      2747, 2692, 2702, 2706,    0, 2707, 2709, 2719,    0, 2685, 
    7070      2776, 2708, 2732, 4012, 2748, 2737, 2773, 2763, 2773, 2780, 
    7071      2773, 2788, 2777, 2776, 2785, 2780, 2796, 2786,    0, 2797, 
    7072      2798, 2794, 2647, 2867, 2796, 2791,    0,    0,    0, 2795, 
    7073         0, 2845, 2798, 2801,    0, 2815, 2825,    0,    0,    0, 
    7074      2872, 2840, 2825, 2883, 2847, 2843, 2840, 2548, 2855,  827, 
    7075       303,  239, 2841, 2765, 2855, 1020, 2888,  288, 1687, 2861, 
    7076      2861,    0, 2851, 2861, 2850, 2855,    0, 2851, 2858, 2858, 
    7077      2856, 2863, 2873, 2862, 2878, 2870, 2882, 2880, 2881, 2888, 
    7078      4012, 2904, 2901, 2906, 2913, 2885, 2895,    0, 2903,    0, 
    7079  
    7080      2951, 2978, 2955, 2982, 2994,    0,    0, 2933, 2910, 2917, 
    7081         0,    0, 2923,  248, 2932, 2941, 2930, 2939, 2936, 2956, 
    7082      2998, 2964,    0, 2967, 3005, 3006, 3007, 2966, 2959,    0, 
    7083         0, 2960, 2979,    0, 2973, 2982, 2973, 2987, 2986, 3025, 
    7084      2983, 2989, 2995, 2978, 2978, 4012, 2985,    0, 2991,    0, 
    7085      2985, 3006, 3066, 3074, 3078, 3090, 3094, 3106,    0, 3009, 
    7086      3019,    0, 3041,    0, 3018, 3050, 3056, 4012, 3062, 3076, 
    7087      3056,    0, 3087, 3103, 3099, 3072, 3111,    0,    0, 3064, 
    7088      3080, 3075, 3079, 3124, 3125, 4012, 3082, 4012, 3085, 4012, 
    7089      3080, 3093,    0, 3096, 3104, 3152, 3171, 3113, 3118,  245, 
    7090  
    7091      3119,    0,    0, 4012, 1737,  184, 3142, 3141, 1922,    0, 
    7092      3181, 3186, 3115, 3122, 3127, 3111, 3122, 4012, 3128,    0, 
    7093      3129,    0, 3208, 3211, 3152, 3158, 3150, 4012, 3194, 3154, 
    7094      2097, 3179, 3201, 3224, 3231, 3169, 3153, 3159, 3179, 4012, 
    7095      3183, 3184, 3251, 3258, 3191, 3183,  207, 3229, 3207, 3237, 
    7096       194, 3233, 3261, 4012, 3209, 3200,    0, 3220, 3211,    0, 
    7097      3309, 3283, 3218, 3228, 3221, 3285, 3236, 3273,  142, 4012, 
    7098      3286, 4012, 3243, 3250, 4012, 3339, 3342, 3367, 3248, 3286, 
    7099       108, 2482,   40, 2606, 2838, 3273,    0, 3395, 3399, 3290, 
    7100         0, 4012, 3302, 3294, 3311, 3350, 4012, 4012, 3299, 3320, 
    7101  
    7102      3357, 3358, 3375, 3318, 3359, 3380, 3404, 3376, 3300, 3412, 
    7103      3362, 3363, 3370, 3415, 3418, 3423, 3420, 3426, 3433, 4012, 
    7104      3447, 4012, 3428, 3451, 4012, 3430, 3439, 3454, 3457, 4012, 
    7105      4012, 3521, 3534, 3547, 3560, 3573, 3586, 3595, 3608, 3621, 
    7106      3634, 3647, 3656, 3669, 3678, 3686, 3699, 3712, 3725, 3738, 
    7107      3751, 3764, 3777, 3790, 3803, 3816, 3829, 3842, 3855, 3868, 
    7108      3881, 3894, 3907, 3920, 3933, 3946, 3959, 3972, 3985, 3998 
     8232        0,   79,    0,    0,    0,  151, 3254,   84,   88,   91, 
     8233      224,  303,    0,  375, 3230,   65,   99, 9419,   73,  100, 
     8234       74,   90,  308,  117,  325,  126,  137,  133,  447,  386, 
     8235      382,  144,  143,  285,  390,  302,  425,  485,  533,  487, 
     8236      581,  628,  494,  324,  537,  582,  512,  534,  644,  640, 
     8237      682,  398,  700,  716,  736,  739,  449,  811,  216,  583, 
     8238      473,  791,  787,  842,  844, 9419, 3173, 9419,  533,  114, 
     8239      155,   96, 9419, 3127,  730,  883,  803,  954,  760, 1003, 
     8240      895,  470,  416,  990,  604,  937,  938, 1049, 1051, 1067, 
     8241      949, 1100, 1116,  849, 1134, 1083, 1178,  203,  738,  316, 
     8242 
     8243     1235,   71, 1132,  100, 1290,  339,  363,  106,  127,  198, 
     8244        0,  140,  144, 3123, 3076,  308,  460,  347, 3072,  181, 
     8245      629,  415, 3052,  650,  626,  762,  881, 9419, 1316, 1333, 
     8246     1358, 9419,  943, 1018,  307,  312,  371,  605,  647,  363, 
     8247      397,  934, 1377, 1183, 9419, 9419, 9419, 1327, 1374,  304, 
     8248     9419, 9419, 9419, 9419, 9419,    0,  834,  302,  458,  509, 
     8249      513,  365,  522,  550,  413,  579, 1160,  417, 1072,  645, 
     8250     1350,  651,  425,  686,  719,  759,  879,  770,  857,  889, 
     8251      903,  931,  986, 1317,  934, 1380, 1373,  956,  972,  432, 
     8252     1007,  975,  988, 1039, 1044, 1064, 1091, 1071, 1158, 1327, 
     8253 
     8254     1150,  445, 1414, 1128, 1301, 1293, 1409,  569, 1322,  662, 
     8255      664,  767,  867,  804,    0, 1353, 1149, 3052, 1388,  823, 
     8256     1365, 1379, 1404, 1206, 3049, 1212, 1448, 1452, 1418,  960, 
     8257     1423, 1427, 1412, 1423, 1456, 1431, 3008, 9419, 1502, 1470, 
     8258     1473, 1412,  209, 2999, 2984,  734, 1513, 1217, 2987, 2974, 
     8259     1517, 1509, 1527, 1507, 1506, 1545, 1540, 1553, 1564, 1571, 
     8260     1578, 1584, 1604, 1577, 1627, 1602, 1634, 1641, 1636, 1645, 
     8261     1675, 1667, 1689, 1694, 1697, 1699, 1730, 1729, 1733, 1779, 
     8262     1719, 1769, 1784, 1788, 1815, 1737, 1834, 1802, 1836, 1838, 
     8263     1839, 1841, 1872, 1875, 1880, 1899, 1902, 1907, 1929, 1893, 
     8264 
     8265     1950, 1951, 1986, 1954, 1961, 1991, 1988, 2010, 2028, 2032, 
     8266     1815, 1989, 2076, 2969, 1479,  318,  784, 2962, 9419, 2919, 
     8267     1533, 1543, 1623, 1695, 2068, 2104, 1593, 2161, 2241, 2056, 
     8268     2076, 1850, 2078, 2086, 2153, 1992, 2159, 2160, 2166, 1047, 
     8269     2266, 2236, 2269, 1740, 1460, 1456, 1477, 1504, 2897, 1609, 
     8270     1739, 2899, 1220, 2272, 2299, 1314, 2858, 2853, 2281, 2269, 
     8271     1842, 2132, 2315, 2318, 2836, 2338, 2343, 1597,  996, 1713, 
     8272     1073, 2346, 2816, 2798, 2786, 2779, 2026, 1631, 2691, 1635, 
     8273     1956, 2363, 2135, 2705, 2700, 2376, 2380, 2690, 9419, 2376, 
     8274     2672, 2669, 1347, 1373, 1664, 1764, 1445, 1777, 1789, 1562, 
     8275 
     8276     1848, 1896, 1897, 2155, 2163, 1948, 1998, 1634, 1633, 2353, 
     8277     2356, 1723, 2012, 2445, 1340, 2013, 2398, 2080, 2044, 2045, 
     8278     2040, 2090, 2160, 2062, 2405, 2161,  947,  587, 2166, 2169, 
     8279     2163, 2231, 2282, 2130, 2244, 2250, 2232, 2131, 2274, 2258, 
     8280     2358, 2374, 2347, 2380, 2287, 2362, 2374, 2380,    0, 2389, 
     8281     2379, 2385, 2385, 2391, 2393, 2390, 2430, 2459, 2382, 2386, 
     8282     2408, 2423, 2427, 2402, 2425, 2431, 2433, 2430, 2442, 2439, 
     8283        0, 2442, 2450, 2447, 2598, 2444, 2605, 2453, 2460, 2456, 
     8284     2462, 2461, 2466, 2507, 2477, 2508, 2484, 2489, 2498, 2497, 
     8285     2501, 2501, 2502, 2533, 2547, 2584, 2536, 2554, 2465, 2462, 
     8286 
     8287     2562, 2571, 2575, 2428, 2408, 2559, 2544, 2550, 2543, 2566, 
     8288     2560, 2534, 2583, 2585, 2581, 2587, 2589, 2588, 2598, 2599, 
     8289     2593, 2590, 2601, 2610, 2614, 2673, 2636, 2620, 2666, 2640, 
     8290     2623, 2664, 2644, 2676, 2648, 2653, 2659, 2654, 2668, 2669, 
     8291     2684, 2692, 2695, 2662, 2693, 2721, 2737, 2708, 2698, 2723, 
     8292     2717, 2753, 2734, 2725, 2745, 2750, 2757, 2385, 2756, 2726, 
     8293     2762, 2765, 2766, 2764, 2770, 2781, 2784, 2780, 2791, 2775, 
     8294     2772, 2789, 2771, 2777, 2803, 2797, 2800, 2812, 2782, 2371, 
     8295     2809, 2833, 2821, 2871, 2879, 2367, 2883, 2939, 2557,  367, 
     8296     2843, 2858, 2840, 2850, 2888, 2889, 2933, 2868, 3012, 3092, 
     8297 
     8298     2869, 2874, 2902, 2917, 2893, 2880, 2871, 2953, 2904, 3002, 
     8299     2979, 2574, 2824, 2913, 2573, 2915, 2934, 2995, 3053, 2978, 
     8300     3037, 2351, 3047, 3059, 2910, 3039, 3119, 3070, 3064, 3124, 
     8301     3139, 3144, 2976, 3042, 2335, 2324, 2312, 3129, 9419, 2296, 
     8302     9419, 9419, 9419, 9419, 3148, 9419, 3004, 2289, 9419, 2263, 
     8303     2911, 3002, 2266, 2212, 3165, 3176, 3197, 2192, 2189, 3210, 
     8304     3009, 3085, 3086, 2941, 3010, 3090, 3091, 1986,    0, 3101, 
     8305     3112, 3114, 3124, 3131, 3131, 3158, 3154, 3150, 3158, 2139, 
     8306     2126, 3169, 3206, 3281, 9419, 3169, 3161, 3188, 3172, 3190, 
     8307     3224, 9419, 3180, 3234, 9419, 3187, 3187,    0, 3192, 3237, 
     8308 
     8309     3209, 3241, 9419, 3242, 3204, 3211,    0, 1145, 2129, 2086, 
     8310     3284, 3228, 3207, 3211, 3230, 3263, 3240, 3231, 3243, 3252, 
     8311     3288, 3307, 9419, 3261, 3235, 3312, 3318, 3317, 9419,    0, 
     8312     3260,    0, 3276, 3277, 3290, 3302, 3289, 3292, 3293, 3314, 
     8313     3300, 3312, 3346,    0, 3366, 9419, 3370, 3306, 3314, 3309, 
     8314     3320,    0, 3319, 3332, 3317,    0, 3327, 3343,    0, 3380, 
     8315     3348, 3351, 3355, 9419, 3356, 3343, 3366, 3366, 3366, 3367, 
     8316     3395, 3396, 3397, 3358,  547, 3379,  962, 3377, 3380, 3433, 
     8317     3403, 3455, 3405, 3083, 3426, 3448, 3458, 2050, 2049, 3421, 
     8318     3408, 3433, 3452, 3458, 3440, 3464, 3479, 2036, 3461, 3466, 
     8319 
     8320     3470, 3475, 3468, 3472, 3485, 3476, 3481, 3482,  388, 3483, 
     8321     3498, 3489, 3491, 3494, 3495, 3500, 3492, 3508, 3514, 2006, 
     8322     3504, 3561, 3527, 3566, 3531, 1997, 3520, 3525, 3534, 3547, 
     8323     3563, 3569, 3553, 3574, 3579, 3594, 3581, 3575, 3612, 3619, 
     8324     1980, 3583, 1973, 3598, 3585, 3588, 3628, 3597, 3605, 3610, 
     8325     3626, 3590, 3634, 3660, 1946, 3645, 3608, 3636, 3624, 3638, 
     8326     1943, 3657, 3662, 3642, 1925, 3656, 3641, 1921, 3689, 3672, 
     8327     3673, 3677, 3706, 3718, 3623, 3735, 3713, 3723, 3726, 3701, 
     8328     3723, 3758, 3731, 3828, 3908, 3740, 3746, 3745, 3754, 3811, 
     8329     3816, 3873, 3795, 3933, 3787, 3686, 3824, 3857, 3713, 3676, 
     8330 
     8331        0, 3722,    0, 3755,  485, 3935, 3800, 3853, 9419, 3880, 
     8332     3937, 1899, 3803, 3950, 4009, 9419, 9419, 1898, 9419, 9419, 
     8333     3766, 3819, 3884, 3971, 1907, 4036, 3820, 3829, 3747, 3846, 
     8334     3835, 4093, 3902, 3947, 3980, 3912,    0, 3905, 3918, 3915, 
     8335     3928,    0, 3938, 3942, 3998, 3926, 4079, 3933, 3950, 4003, 
     8336     4005, 4014, 3997, 4012,    0,    0, 4011, 4008, 4021, 4027, 
     8337     4024, 4055, 4019, 4064, 9419,    0, 4117, 9419, 4033, 9419, 
     8338     4120, 4134, 4150, 4163, 4063, 4099,    0, 4088, 4102, 4095, 
     8339     4104, 4116, 4168, 4111, 4177, 9419, 4134, 4134, 4181, 9419, 
     8340     4184, 9419, 4135, 4151, 4161, 4155, 4161,    0, 4165, 4162, 
     8341 
     8342        0, 4154, 4171, 4174, 3985, 9419, 4205, 9419, 4160, 4161, 
     8343     4171, 4183, 4171, 4183, 4173, 4172, 4176, 4231, 9419,    0, 
     8344        0, 4235, 1324, 4197, 2152, 4202, 4193, 4246, 4237, 4248, 
     8345     1894, 4219, 2473, 4220, 2855, 4219, 4228, 4264, 9419, 4270, 
     8346     4258, 4257, 3994, 3998, 4121, 4285, 4260, 4262, 4266, 4267, 
     8347     4270, 4337, 4294, 4300, 1877, 4328, 4361, 4323, 4330, 1871, 
     8348     4331, 4333, 4321, 4370, 4365, 4369, 1867, 1862, 4371, 4372, 
     8349     4373, 4272, 4374, 4377, 4375, 1845, 4381, 4382, 4380, 1828, 
     8350     4379, 4389, 4383, 4384, 4401, 4443, 4385, 4408, 4413, 4415, 
     8351     4409, 4423, 4418, 4424, 1812, 4434, 4421, 1797, 4450, 4456, 
     8352 
     8353     4458, 4457, 4462, 4463, 4467, 4465, 4468, 4470, 4471, 4473, 
     8354     1796, 1790, 4308, 4311, 4485, 4239, 4545, 3074, 4473, 4495, 
     8355     4502, 1786, 4539, 4488, 3902, 4618, 4698, 4251, 4464, 4506, 
     8356     4496, 4526, 4543, 4778, 4266, 4491, 4477, 4532,    0, 9419, 
     8357        0,    0,  713, 1771, 1757, 4509, 4575, 4581, 1742, 4591, 
     8358     4642, 4562, 4858, 4597, 4648, 4664, 4670, 4671, 1721, 9419, 
     8359     4610, 4649, 4725, 4729, 4592, 4645, 4938, 4471, 4514,    0, 
     8360     4562, 4741, 9419, 4612,    0, 4615, 4624, 4690, 4709, 4695, 
     8361     4704, 4930, 4710, 4709,    0, 4716, 9419, 9419, 4712, 4735, 
     8362     4775, 4776, 4777, 4766, 4773, 4654, 4657, 9419, 4785, 4773, 
     8363 
     8364     4884, 4739, 4885, 4805, 1221, 1723, 4901, 4965, 4780, 4785, 
     8365     4786, 4778,    0, 4779, 4779, 4823, 9419, 4824, 4796, 4851, 
     8366     4812, 4841, 4891, 4791, 4849, 4853, 4867, 4907, 4903,    0, 
     8367     4933,    0,    0,    0, 4970, 4971, 4981, 4931,    0, 4919, 
     8368     9419, 4945, 4947, 4955, 4989, 1716, 1708, 4957, 4954, 3183, 
     8369     4968, 4994, 4998, 3416, 4050, 4692, 4755, 5007, 5031, 5057, 
     8370     5011, 5039, 1702, 5080, 5040, 1663, 4967, 5043, 5044, 5084, 
     8371     5047, 5085, 5093, 1653, 5086, 5095, 5096, 5088, 5091, 5098, 
     8372     5112, 5090, 5105, 5114, 5121, 5100, 1598, 5120, 5101, 5173, 
     8373     5124, 5179, 5126, 5129, 5182, 5139, 5146, 5144, 5150, 5163, 
     8374 
     8375     5157, 1557, 5154, 1554, 1550, 1541, 5197, 5200, 5206, 5160, 
     8376     1535, 4924, 5034, 4974, 1520, 1509, 5208, 5268, 5348, 5428, 
     8377     4953, 4970, 4985, 5166,    0, 4315, 5210, 5169, 9419,    0, 
     8378     1505, 1486, 4762, 5218, 1457, 5230, 5233, 5242, 5292, 5293, 
     8379     5314, 1411, 4088, 4403, 5248, 5296, 5300, 9419, 5301, 9419, 
     8380        0, 5081, 4973, 4991, 4992,    0, 5186, 5196, 5201,    0, 
     8381     5198, 5420, 5220, 5264, 9419, 5284, 5274, 5344, 5345, 5334, 
     8382     5350,    0, 5349, 5350, 5382, 9419, 5345, 5344, 5452, 5314, 
     8383     5470, 5340,    0,    0,    0, 5353, 5355, 5388, 9419,    0, 
     8384     5421, 5348, 5353,    0, 5455, 9419, 5362, 5359,    0, 5419, 
     8385 
     8386        0,    0, 5413, 5464, 5429, 5489, 9419, 5493, 9419, 5436, 
     8387     5436, 4568, 5445,  472, 1424, 1365, 5434, 5259, 5468,  700, 
     8388     5495, 5335, 9419, 5260, 5324, 1406, 5498, 5499, 5502, 5501, 
     8389     1397, 5504, 5506, 5507, 1386, 5508, 5509, 5511, 5512, 5513, 
     8390     1380, 5515, 5516, 5519, 5532, 5523, 1360, 1343, 1338, 5517, 
     8391     5536, 1319, 5524, 5534, 1225, 5541, 5558, 1222, 5561, 1217, 
     8392     1209, 5539, 5578, 5569, 5587, 1167, 5528, 1157,  838,    0, 
     8393     5493,    0, 5557, 5541, 5563, 5591, 5606, 5607, 5621, 5632, 
     8394     5642, 5570,    0, 5563, 5590, 5572, 5588,    0, 5584, 5599, 
     8395     5599, 5598, 5612, 5623, 5613, 5624, 5630, 9419, 5629, 5617, 
     8396 
     8397        0, 5624,    0,    0, 5690,    0, 5632, 5669, 5625, 5630, 
     8398        0,    0, 5629, 5673, 5649, 5654, 5630, 5637, 5641, 5653, 
     8399     5683, 5666,    0, 5669, 5703, 5698, 5713, 5717,    0, 5708, 
     8400     1136, 5713, 5717, 5720, 5722, 1097, 5723, 5727, 5729, 5724, 
     8401     5739, 5728, 1096, 5733, 1088, 1081, 1021, 5731, 5736, 5734, 
     8402     1004,  973, 5741, 5747, 5745, 5742, 5740, 5806, 5753, 5774, 
     8403     5710, 5739,    0,    0, 5787, 5811,  782, 5814, 5818, 5823, 
     8404     5837, 5847, 5851, 5756, 5785,    0,    0, 5786, 5726,    0, 
     8405     5796, 5805, 5802, 5808, 5808, 5870, 5800, 9419,    0, 5820, 
     8406        0, 5874, 9419, 5820, 5835,    0, 5877, 9419,    0, 5824, 
     8407 
     8408     5845, 5850, 9419, 5853, 5866, 5845,    0, 5881, 5884, 5889, 
     8409        0, 5886, 5841,  962,  947, 5887, 5894,  936, 5892, 5897, 
     8410     5914,  916, 5899,  902, 5900,  897,  862, 5905, 5908, 5903, 
     8411     2209, 5918,    0, 5874,  854,  971, 5939, 1051, 5966, 5927, 
     8412     5970,  850, 5906, 5975,    0,    0, 5881, 5909, 5918, 5925, 
     8413     5980, 5989, 9419, 9419, 5948, 5953, 5960, 5964,    0,    0, 
     8414     9419,  858,  790, 5992, 5994, 5995, 6000,  782,  759, 5959, 
     8415     5996, 5997, 6002,  748,  740, 4829, 6012, 6031, 6035, 1015, 
     8416        0, 6060, 6072, 6036, 6076, 6086,  721,    0, 6016, 6095, 
     8417     5972, 5979, 5999, 5999,    0, 6001, 6026, 9419, 6044, 6027, 
     8418 
     8419     1031, 6090,  677, 6095, 6064,  654, 6084, 6099, 6113, 6119, 
     8420      619,  614, 6127, 6143, 6125, 6119, 6149, 6162, 6166, 6178, 
     8421     6179, 6096, 6062, 6084, 6105, 6115, 6104, 6148, 6123, 6181, 
     8422      606, 6157, 6174, 6171, 6185, 6207,  605,  566, 6216, 6228, 
     8423     6244, 6194, 6212, 6240, 6256, 6252, 6195, 6268, 6284, 6264, 
     8424     6278, 9419, 6136, 6165,    0, 6183, 6178, 6193, 6265, 6230, 
     8425     6273,  541, 9419,  502, 6276, 6241, 6288, 6294, 6304, 6316, 
     8426     6292, 6320, 6324, 6329, 6343, 6348, 6346, 6360, 6364, 6369, 
     8427     6340, 9419, 6243, 6261, 6312, 6301, 1553,  338, 1642, 6337, 
     8428     6351, 6382, 6386, 6392, 6404, 6420, 6424, 6429, 6441, 6437, 
     8429 
     8430     1781, 6336,    0, 6359,    0, 6390, 6375, 6416,  383,  370, 
     8431     5340, 6483, 6454, 6466, 6462, 6507, 6488, 6457, 9419, 9419, 
     8432     6450, 6406, 6463, 6511, 6536, 6563, 6540, 6515, 6511, 6475, 
     8433     6382, 6479, 6553, 6587, 6516, 6568, 6591, 6553, 6544, 6435, 
     8434     1835, 6616, 6559, 6557, 6478, 6558, 6595, 6603, 6620, 6606, 
     8435     6630, 6634, 6642,  369, 6648, 6652,  322, 6639, 6656, 6660, 
     8436      312, 6668, 6676,  198,  178, 6680, 6684,  173, 6688, 6671, 
     8437      166, 6697,  146, 6663, 6701, 6707, 6711,  126, 6715, 6719, 
     8438      120,  106, 6725,   82, 6729, 9419, 6736, 6754, 6772, 6790, 
     8439     6808, 6825, 6829, 6847, 6865, 6883, 6899, 6917, 6935, 6953, 
     8440 
     8441     6971, 6989, 7007, 7024, 7041, 7046,  101, 7064, 7082, 7100, 
     8442     7118, 7136, 7154, 7172, 7190, 7208, 7226, 7244, 7262, 7280, 
     8443     7298, 7316, 7333, 7349, 7354, 7371, 7389, 7407, 7425, 7430, 
     8444     7448, 7461, 7476, 7494, 7512, 7530, 7548, 7566, 7584, 7602, 
     8445     7618, 7636, 7654, 7672, 7690, 7708, 7726, 7744, 7762, 7779, 
     8446     7795, 7812, 7830, 7848, 7866, 7884, 7889, 7907, 7925, 7943, 
     8447     7961, 7979, 7997, 8015, 8033, 8051, 8069, 8087, 8105, 8123, 
     8448     8141, 8159, 8177, 8194, 8199, 8215, 8232, 8250, 8268, 8286, 
     8449     8304, 8322, 8340, 8358, 8376, 8394, 8412, 8430, 8448, 8466, 
     8450     8484, 8502, 8520, 8538, 8556, 8574, 8592, 8610, 8628, 8645, 
     8451 
     8452     8663, 8680, 8696, 8701, 8718, 8736, 8754, 8772, 8790, 8808, 
     8453     8826, 8844, 8861, 8878, 8896, 8914, 8932, 8950, 8968, 8986, 
     8454     9004, 9021, 9038, 9054, 9071, 9076, 9094, 9112, 9130, 9148, 
     8455     9166, 9184, 9202, 9220, 9238, 9256, 9274, 9292, 9310, 9328, 
     8456     9346, 9364, 9382, 9400 
    71098457    } ; 
    71108458 
    7111 static yyconst flex_int16_t yy_def[1171] = 
     8459static yyconst flex_int16_t yy_def[2045] = 
    71128460    {   0, 
    7113      1131,    1, 1132, 1132,    1,    2, 1133, 1133,    1,    2, 
    7114         1,    2, 1131, 1131, 1131, 1131, 1134, 1135, 1131, 1131, 
    7115      1136, 1137, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7116      1131, 1131, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 
    7117      1138, 1138, 1138, 1138, 1138,   40, 1138, 1138, 1138, 1138, 
    7118      1138, 1138, 1138, 1138, 1131, 1131,   55, 1139, 1131,   37, 
    7119      1138, 1138, 1138, 1138, 1138, 1131, 1140, 1131, 1140, 1140, 
    7120      1140, 1141, 1131, 1131, 1131, 1131, 1131, 1131, 1134, 1134, 
    7121      1134, 1135, 1131, 1135, 1135, 1136, 1131, 1136, 1136, 1137, 
    7122      1142, 1137, 1131, 1137, 1137, 1131, 1131, 1131, 1143, 1131, 
    7123  
    7124      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1144,   29, 1131, 
    7125      1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7126      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7127      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7128      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7129      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7130      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7131      1138, 1138, 1138, 1138, 1145,   55,  176, 1146, 1131, 1131, 
    7132      1131, 1131, 1131, 1131, 1131, 1131,  176, 1131, 1139, 1131, 
    7133      1139, 1139, 1139, 1131, 1131, 1131, 1138, 1138, 1138, 1138, 
    7134  
    7135      1138, 1138, 1138, 1140, 1131, 1140, 1140, 1140, 1140, 1147, 
    7136      1147, 1131, 1147, 1147, 1147, 1147, 1148, 1148,  218,  218, 
    7137       218, 1131, 1131, 1131, 1134, 1134, 1135, 1135, 1136, 1136, 
    7138      1142, 1142, 1142, 1142, 1131, 1137, 1137, 1131, 1131, 1131, 
    7139      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1144, 
    7140      1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7141      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7142      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7143      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 1138, 1138, 
    7144      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7145  
    7146      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7147      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7148      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7149      1138, 1138, 1138, 1138, 1138, 1145,  176,  176, 1131, 1146, 
    7150      1131, 1131, 1131, 1131, 1131, 1131, 1131,  187, 1131, 1131, 
    7151      1139, 1139, 1139, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 
    7152      1138, 1138, 1140, 1140, 1147, 1147, 1131, 1147, 1147, 1147, 
    7153       218,  218,  218,  218,  218, 1131, 1131, 1131, 1134, 1134, 
    7154      1135, 1135, 1136, 1136, 1142, 1137, 1137, 1131, 1131, 1131, 
    7155      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7156  
    7157      1131, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7158      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7159      1138, 1138, 1138, 1138, 1138, 1138, 1131, 1131, 1138, 1138, 
    7160      1138, 1138, 1138, 1138, 1138, 1138, 1131, 1131, 1138, 1131, 
    7161      1131, 1138, 1149, 1138, 1138, 1138, 1138, 1131, 1131, 1138, 
    7162      1138, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7163      1131, 1131, 1138, 1138, 1131, 1131, 1138, 1138, 1138, 1138, 
    7164      1138, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7165      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7166      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 
    7167  
    7168      1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 
    7169       176,  176, 1131, 1131, 1131, 1131, 1131, 1131, 1131,  187, 
    7170      1131, 1131, 1139, 1139, 1139, 1131, 1131, 1138, 1138, 1138, 
    7171      1138, 1138, 1138, 1131, 1140, 1140, 1140, 1147, 1147, 1147, 
    7172       218,  218,  218,  218, 1131, 1150, 1131, 1134, 1151, 1135, 
    7173      1152, 1136, 1153, 1137, 1154, 1131, 1131, 1131, 1131, 1131, 
    7174      1138, 1138, 1138, 1155, 1138, 1138, 1138, 1138, 1138, 1138, 
    7175      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 1138, 1138, 
    7176      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1138, 1138, 
    7177      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 
    7178  
    7179      1138, 1138, 1131, 1131, 1138, 1138, 1138, 1138, 1131, 1138, 
    7180      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7181      1138, 1138, 1138, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 
    7182      1138, 1138, 1138, 1138, 1131, 1138, 1138, 1138, 1138, 1138, 
    7183      1131, 1131, 1131, 1138, 1138, 1131, 1131, 1138, 1138, 1138, 
    7184       176,  176, 1131, 1131, 1131, 1131, 1131, 1131,  176, 1131, 
    7185      1131, 1139, 1139, 1156, 1131, 1131, 1131, 1138, 1131, 1138, 
    7186      1138, 1131, 1131, 1131, 1140, 1140, 1147, 1157, 1147,  218, 
    7187       218, 1158,  218, 1159, 1131, 1131, 1160, 1134, 1161, 1135, 
    7188      1131, 1162, 1136, 1163, 1137, 1137, 1131, 1131, 1164, 1138, 
    7189  
    7190      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7191      1138, 1138, 1138, 1131, 1131, 1138, 1138, 1131, 1131, 1131, 
    7192      1131, 1131, 1131, 1131, 1131, 1131, 1138, 1138, 1138, 1138, 
    7193      1138, 1138, 1138, 1138, 1131, 1131, 1138, 1138, 1138, 1138, 
    7194      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7195      1138, 1138, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 
    7196      1138, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138,  176, 
    7197       176, 1131, 1131, 1131,  176, 1139, 1165, 1139, 1131, 1138, 
    7198      1138, 1138, 1140, 1140, 1166, 1147, 1147, 1167,  218, 1131, 
    7199      1131, 1131, 1134, 1135, 1131, 1136, 1137, 1137, 1131, 1138, 
    7200  
    7201      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7202      1131, 1138, 1138, 1131, 1131, 1138, 1131, 1131, 1131, 1131, 
    7203      1131, 1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7204      1138, 1138, 1131, 1168, 1138, 1138, 1138, 1138, 1138, 1138, 
    7205      1138, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7206      1131, 1131, 1138, 1131, 1138, 1138, 1131, 1131, 1131, 1139, 
    7207      1139, 1131, 1138, 1131, 1138, 1140, 1140, 1147, 1147,  218, 
    7208      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1131, 
    7209      1131, 1138, 1138, 1131, 1138, 1131, 1131, 1131, 1131, 1131, 
    7210      1131, 1131, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 
    7211  
    7212      1168, 1168, 1131, 1169, 1168, 1138, 1138, 1138, 1131, 1138, 
    7213      1138, 1138, 1138, 1131, 1138, 1131, 1138, 1138, 1131, 1131, 
    7214      1139, 1131, 1138, 1138, 1140, 1140, 1147, 1138, 1138, 1138, 
    7215      1138, 1138, 1138, 1138, 1131, 1131, 1138, 1138, 1131, 1138, 
    7216      1131, 1131, 1131, 1131, 1131, 1131, 1138, 1138, 1138, 1138, 
    7217      1138, 1138, 1131, 1169, 1169, 1168, 1169, 1169, 1138, 1131, 
    7218      1138, 1138, 1131, 1138, 1131, 1138, 1138, 1131, 1131, 1139, 
    7219      1131, 1138, 1140, 1140, 1147, 1138, 1138, 1138, 1138, 1131, 
    7220      1131, 1138, 1138, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7221      1131, 1138, 1138, 1138, 1138, 1131, 1168, 1131, 1138, 1131, 
    7222  
    7223      1131, 1138, 1138, 1131, 1139, 1131, 1140, 1140, 1147, 1138, 
    7224      1131, 1131, 1131, 1131, 1138, 1138, 1131, 1131, 1131, 1138, 
    7225      1138, 1138, 1131, 1168, 1131, 1138, 1131, 1131, 1139, 1131, 
    7226      1140, 1140, 1147, 1131, 1131, 1131, 1131, 1138, 1138, 1131, 
    7227      1131, 1138, 1131, 1168, 1131, 1138, 1131, 1139, 1131, 1140, 
    7228      1170, 1147, 1131, 1131, 1131, 1131, 1138, 1138, 1131, 1138, 
    7229      1131, 1168, 1131, 1138, 1131, 1139, 1131, 1140, 1170, 1131, 
    7230      1147, 1131, 1131, 1138, 1131, 1131, 1168, 1168, 1131, 1138, 
    7231      1131, 1139, 1131, 1140, 1147, 1131, 1138, 1168, 1169, 1131, 
    7232      1138, 1131, 1139, 1131, 1140, 1147, 1131, 1131, 1139, 1131, 
    7233  
    7234      1140, 1147, 1139, 1131, 1140, 1147, 1139, 1131, 1140, 1147, 
    7235      1139, 1131, 1140, 1147, 1139, 1131, 1140, 1147, 1139, 1131, 
    7236      1131, 1131, 1140, 1147, 1131, 1140, 1140, 1140, 1140, 1131, 
    7237         0, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7238      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7239      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7240      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131 
     8461     1886,    1, 1887, 1887,    1,    1, 1888, 1888, 1887, 1887, 
     8462     1886,   11,    1,    1, 1886, 1886, 1886, 1886, 1889, 1890, 
     8463     1886, 1886, 1886, 1891, 1892, 1886, 1886, 1886, 1886, 1886, 
     8464     1886, 1886, 1886, 1886, 1886, 1886, 1893, 1893, 1893, 1893, 
     8465     1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 
     8466       49, 1893, 1893, 1893, 1893, 1893, 1893, 1886, 1886, 1894, 
     8467       39, 1893, 1893, 1893, 1893, 1886, 1895, 1886, 1895, 1895, 
     8468     1895, 1886, 1886, 1896, 1886, 1897, 1897, 1897, 1897,   79, 
     8469       79,   79, 1897, 1897,   79,   79,   79,   79, 1897,   88, 
     8470       79,   79, 1897,   89, 1897, 1897, 1886,   58, 1898,   31, 
     8471 
     8472     1886,   79,   79,   84,   78,   58,   31, 1886, 1886, 1886, 
     8473     1899, 1899, 1899, 1900, 1886, 1900, 1900, 1886, 1901, 1902, 
     8474     1903, 1902, 1886, 1902, 1902, 1904, 1904, 1886, 1904, 1904, 
     8475     1904, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8476     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1905, 1886, 1886, 
     8477     1886, 1886, 1886, 1886, 1886, 1906, 1906, 1906, 1906, 1906, 
     8478     1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 
     8479     1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 
     8480     1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 
     8481     1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 
     8482 
     8483     1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 
     8484     1906, 1906, 1906, 1906, 1907,   58, 1886, 1908, 1886, 1886, 
     8485     1886, 1886, 1886, 1886, 1909, 1886, 1909, 1909, 1909, 1886, 
     8486     1906, 1906, 1906, 1906, 1906, 1906, 1910, 1886, 1910, 1910, 
     8487     1910, 1910, 1886, 1911, 1886, 1886, 1886, 1886, 1912, 1913, 
     8488     1886,   84,   84,  253,  253,  253,  253,  253,  253,  253, 
     8489      253,  253,  253,  253,  253,  253,  253,  253,  253,  253, 
     8490      253,  253,  253,  253,  253,  253,  253,  253,  253,  253, 
     8491      253,  253,  253,  253,  253,  253,  253,  253,  253,  253, 
     8492      253,  253,  253,  253,  253,  253,  253,  253,  253,  253, 
     8493 
     8494      253,  253,  253,  253,  253,  253,  253,  253,  253,  253, 
     8495     1886, 1886, 1886, 1914,  216,  315, 1886, 1915, 1886, 1915, 
     8496     1915, 1915, 1886, 1886, 1886, 1886, 1915, 1916, 1916,  329, 
     8497      329,  329,  329,  329,  329,  253,  253,  253,  253,  216, 
     8498     1886, 1886, 1886, 1886, 1886, 1886, 1917, 1917, 1918, 1918, 
     8499     1918, 1919, 1920, 1920, 1920, 1920, 1886, 1921, 1922, 1922, 
     8500     1886, 1923, 1886, 1924, 1925, 1924, 1924, 1886, 1886, 1886, 
     8501     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8502     1886, 1886, 1886, 1926, 1927, 1886, 1886, 1928, 1886, 1929, 
     8503     1886, 1886, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8504 
     8505     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1886, 
     8506     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8507     1930, 1930, 1930, 1930, 1886, 1930, 1886, 1931, 1930, 1930, 
     8508     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8509     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8510     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8511     1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 
     8512     1930, 1930, 1930, 1930, 1932, 1886, 1933, 1886, 1886, 1886, 
     8513     1886, 1886, 1886, 1934, 1934, 1934, 1886, 1930, 1930, 1930, 
     8514     1930, 1930, 1930, 1935, 1935, 1936, 1886, 1886, 1937, 1938, 
     8515 
     8516     1886, 1886, 1886, 1939, 1940, 1941, 1941, 1941, 1941, 1941, 
     8517     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8518     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8519     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8520     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8521     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8522     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8523     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8524     1941, 1941, 1941, 1886, 1886, 1942, 1886, 1886, 1886,  588, 
     8525     1886, 1886, 1943, 1943, 1886, 1886, 1886, 1943, 1944, 1944, 
     8526 
     8527      600,  600,  600,  600,  600,  600,  600, 1941, 1941, 1941, 
     8528     1941, 1886, 1886, 1886, 1886, 1945, 1945, 1946, 1946, 1947, 
     8529     1948, 1949, 1948, 1948, 1950, 1950, 1950, 1886, 1886, 1951, 
     8530     1952, 1952, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8531     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8532     1886, 1886, 1953, 1954, 1886, 1886, 1886, 1955, 1956, 1886, 
     8533     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8534     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1886, 
     8535     1957, 1957, 1957, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 
     8536     1886, 1886, 1957, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 
     8537 
     8538     1957, 1886, 1886, 1957, 1957, 1886, 1957, 1958, 1959, 1960, 
     8539     1958, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8540     1957, 1886, 1886, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 
     8541     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8542     1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 1957, 1957, 
     8543     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8544     1957, 1957, 1957, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8545     1961, 1961, 1961, 1886, 1957, 1957, 1957, 1957, 1957, 1957, 
     8546     1962, 1962, 1962, 1886, 1886, 1886, 1886, 1963, 1964, 1941, 
     8547     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8548 
     8549     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8550     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8551     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8552     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8553     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8554     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8555     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8556     1941, 1941, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1965, 
     8557     1965, 1886, 1965, 1966, 1966,  885,  885,  885,  885,  885, 
     8558      885,  885,  885,  885, 1941, 1941, 1941, 1941, 1886, 1886, 
     8559 
     8560     1967, 1968, 1969, 1970, 1971, 1972, 1973, 1886, 1886, 1886, 
     8561     1974, 1975, 1976, 1977, 1978, 1886, 1886, 1886, 1886, 1886, 
     8562     1886, 1886, 1886, 1886, 1979, 1886, 1957, 1957, 1957, 1957, 
     8563     1957, 1980, 1957, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 
     8564     1957, 1957, 1957, 1957, 1957, 1957, 1886, 1957, 1957, 1886, 
     8565     1886, 1886, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 1957, 
     8566     1957, 1957, 1957, 1886, 1886, 1957, 1886, 1886, 1957, 1886, 
     8567     1981, 1982, 1983, 1984, 1957, 1957, 1957, 1957, 1957, 1957, 
     8568     1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 1886, 1886, 
     8569     1886, 1886, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8570 
     8571     1957, 1957, 1957, 1957, 1886, 1886, 1886, 1886, 1957, 1957, 
     8572     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 
     8573     1957, 1957, 1886, 1886, 1886, 1886, 1886, 1886, 1985, 1985, 
     8574     1986, 1886, 1886, 1957, 1886, 1957, 1957, 1886, 1886, 1886, 
     8575     1987, 1987, 1886, 1886, 1886, 1886, 1941, 1941, 1941, 1941, 
     8576     1941, 1988, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8577     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8578     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8579     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8580     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8581 
     8582     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8583     1941, 1941, 1941, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8584     1989, 1990, 1886, 1989, 1989, 1991, 1991, 1127, 1127, 1127, 
     8585     1127, 1127, 1127, 1992, 1127, 1941, 1941, 1886, 1993, 1886, 
     8586     1994, 1995, 1996, 1997, 1886, 1998, 1999, 1999, 1886, 1886, 
     8587     1886, 2000, 2001, 1886, 2002, 1886, 2003, 2003, 2004, 1886, 
     8588     1886, 1886, 1886, 1886, 1957, 1957, 2005, 1957, 1957, 1957, 
     8589     1957, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8590     1957, 1957, 1886, 1886, 1957, 1957, 1886, 1886, 1886, 1886, 
     8591     1886, 1957, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 
     8592 
     8593     2006, 2006, 2007, 2008, 2009, 2008, 2009, 2009, 1957, 1957, 
     8594     1957, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 1957, 
     8595     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8596     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1886, 
     8597     1886, 1886, 1886, 1886, 2010, 2011, 2010, 1886, 1957, 1957, 
     8598     1957, 2012, 2012, 1886, 2013, 1886, 1886, 1941, 1941, 2014, 
     8599     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8600     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8601     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8602     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8603 
     8604     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8605     1941, 1886, 2013, 1886, 2015, 2016, 2016, 2017, 2018, 2018, 
     8606     1320, 1320, 1320, 1320, 1320, 1941, 1941, 1886, 1886, 2019, 
     8607     2020, 1886, 2021, 2021, 1886, 2022, 1886, 2002, 1886, 2003, 
     8608     2003, 2004, 1886, 2023, 1886, 1886, 1886, 1886, 1886, 1886, 
     8609     1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8610     1957, 1886, 1957, 1957, 1886, 1886, 1957, 1886, 1886, 1886, 
     8611     1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 2008, 2008, 
     8612     2009, 1957, 1957, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 
     8613     1886, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 1957, 1957, 
     8614 
     8615     1957, 1957, 1957, 1886, 1957, 1886, 1886, 1886, 1886, 1957, 
     8616     1886, 1886, 1886, 2010, 2010, 1886, 1957, 1886, 1957, 2012, 
     8617     2012, 1886, 1886, 1886, 2024, 1941, 1941, 1941, 1941, 1941, 
     8618     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8619     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8620     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8621     1941, 1941, 1941, 1941, 1886, 2025, 1886, 2016, 2016, 1320, 
     8622     1320, 1320, 1320, 1320, 1320, 1941, 1886, 1886, 1886, 1886, 
     8623     2023, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8624     1886, 1886, 1957, 1957, 1886, 1957, 1886, 1886, 1886, 1957, 
     8625 
     8626     1957, 1957, 1957, 1957, 2008, 1957, 1957, 1957, 1886, 1957, 
     8627     1957, 1957, 1957, 1957, 1957, 1886, 1957, 1957, 1886, 1886, 
     8628     2010, 1886, 1957, 1957, 2012, 2012, 1886, 1886, 2026, 1941, 
     8629     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8630     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8631     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1886, 1886, 2016, 
     8632     1320, 1320, 1320, 1320, 1941, 1886, 2027, 1886, 1886, 1886, 
     8633     2028, 1886, 1886, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 
     8634     1886, 1886, 1957, 1957, 1886, 1957, 1886, 1886, 1957, 1957, 
     8635     1957, 1886, 1886, 1886, 1957, 1957, 1886, 1886, 1957, 1886, 
     8636 
     8637     1957, 1957, 1886, 1886, 2010, 1886, 1957, 2012, 2012, 1886, 
     8638     2026, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 
     8639     1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1886, 
     8640     2029, 2016, 1320, 1320, 1941, 2027, 2027, 2027, 1886, 2028, 
     8641     2028, 2028, 1957, 1957, 1957, 1957, 1886, 1886, 1957, 1957, 
     8642     1886, 1886, 1886, 1886, 1957, 1886, 1957, 1886, 1957, 1957, 
     8643     1886, 2010, 1886, 2012, 2012, 1941, 1941, 1941, 1941, 1941, 
     8644     1941, 1941, 1941, 1941, 1941, 2029, 1886, 2029, 2029, 2016, 
     8645     1320, 2027, 2027, 2030, 2028, 1886, 2028, 1957, 1886, 1886, 
     8646     1886, 1886, 1957, 1957, 1957, 1886, 1957, 1886, 2010, 1886, 
     8647 
     8648     2012, 2012, 1941, 1941, 1941, 1941, 1941, 1886, 1886, 1886, 
     8649     2031, 2032, 2029, 2029, 2033, 2016, 2030, 2030, 2030, 1886, 
     8650     1886, 1886, 1886, 1957, 1957, 1886, 1957, 2010, 1886, 2012, 
     8651     2034, 1941, 1941, 1941, 1886, 1886, 2031, 2032, 2029, 2029, 
     8652     2029, 2035, 2036, 2033, 2033, 2033, 2016, 2030, 2027, 2030, 
     8653     1886, 1886, 1886, 1886, 1957, 1957, 1886, 1957, 2010, 1886, 
     8654     2012, 2034, 1886, 1941, 1941, 1941, 1886, 1886, 2029, 2029, 
     8655     2035, 2035, 2035, 2036, 1886, 2036, 2036, 2033, 2029, 2033, 
     8656     2016, 1886, 1886, 1957, 1886, 1957, 2010, 1886, 2012, 1941, 
     8657     1941, 1886, 1886, 2029, 2029, 2035, 2029, 2035, 2036, 2037, 
     8658 
     8659     2016, 1886, 1957, 1886, 1957, 2010, 1886, 2012, 1941, 1941, 
     8660     1886, 2029, 2029, 2029, 2037, 2037, 2037, 2016, 1886, 1886, 
     8661     2010, 1886, 2012, 1886, 2029, 2038, 2037, 2037, 2016, 2010, 
     8662     1886, 2012, 1886, 2029, 2033, 2029, 2029, 2016, 2010, 1886, 
     8663     2012, 2029, 2016, 2010, 1886, 2012, 2016, 2010, 1886, 2012, 
     8664     2016, 2010, 1886, 2039, 1886, 1886, 2040, 2012, 2016, 1886, 
     8665     2041, 1886, 1886, 2042, 2039, 1886, 1886, 2040, 1886, 2012, 
     8666     2041, 1886, 2042, 2012, 2012, 2012, 1886, 2043, 1886, 1886, 
     8667     2044, 2043, 1886, 2044, 1886,    0, 1886, 1886, 1886, 1886, 
     8668     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8669 
     8670     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8671     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8672     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8673     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8674     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8675     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8676     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8677     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8678     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8679     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8680 
     8681     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8682     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8683     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8684     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     8685     1886, 1886, 1886, 1886 
    72418686    } ; 
    72428687 
    7243 static yyconst flex_int16_t yy_nxt[4102] = 
     8688static yyconst flex_int16_t yy_nxt[9500] = 
    72448689    {   0, 
    7245        14,   15,   16,   15,   17,   18,   14,   19,   20,   21, 
    7246        22,   23,   24,   25,   24,   26,   24,   27,   28,   29, 
    7247        29,   29,   29,   29,   29,   29,   29,   29,   29,   30, 
    7248        31,   32,   33,   34,   35,   36,   37,   38,   39,   40, 
    7249        41,   42,   43,   42,   42,   44,   45,   46,   47,   48, 
    7250        42,   49,   50,   51,   52,   42,   53,   42,   42,   54, 
    7251        24,   24,   42,   35,   36,   37,   38,   39,   40,   41, 
    7252        42,   43,   42,   44,   45,   46,   47,   48,   42,   49, 
    7253        50,   51,   52,   42,   53,   42,   42,   54,   14,   55, 
    7254        56,   57,   58,  222,   69,   68,   69,   70,   72,   76, 
    7255  
    7256        77,   76, 1094,   74,   78,   77,   78,   59,   59,   59, 
    7257        59,   59,   59,   59,   59,   59,   59,   75,  205,   80, 
    7258      1092,   73,  222,  208,   60,   61,  205,  223,   62,   70, 
    7259        63,   71,   74,   81,   83,   74,   87,   74,   74,   91, 
    7260        82,   64,   65,  691, 1070,   75,   92,   93,   80,   75, 
    7261        73,   75,   75,   60,   61,  223,  225,   62,   70,   63, 
    7262        71,   81,   83,   96,   74,  111,   74,   74,   84,   64, 
    7263        65,  209,   74,   88,   74,   74,   94,   75,  226,   75, 
    7264        75,   97,   85,  255,   74,  225,   75,   89,   75,   75, 
    7265        95,  227,  107,   83,  239,   74, 1070,   84,   75,  209, 
    7266  
    7267       624,   74,   88,   74,   74,   94,  226,   74,  625,   75, 
    7268        85,   74,  255,   74,   75,   89,   75,   75,   95,   74, 
    7269       227,   75,  239, 1065,   74,   75,   75,   78,   77,   78, 
    7270        76,   77,   76,   75,  240,  247,   74,   75,  248,  228, 
    7271        74,  179,  206,  205,  206,  112, 1030,  179,   74,   75, 
    7272        98,   74,   98,   75,   78,   77,   78,  224,   77,  224, 
    7273      1027,   75,  240,  247,  963,   75,  248,  228,   99,   99, 
    7274        99,   99,   99,   99,   99,   99,   99,   99,   74,  207, 
    7275        74,  114,  115,  100,  261,  116,  116,  101,   74,  102, 
    7276       212,  117,   75,   75,  103,  142,  104,  105,  118,  119, 
    7277  
    7278       121,  922,   75,  263,   87,  190,  106,   74,  207,   87, 
    7279       114,  115,  100,  261,  116,  116,  101,   74,  102,  117, 
    7280        75,  253,  103,  142,  104,  105,  118,  119,  121,   87, 
    7281        75,  120,  263,  116,  106,  108,  116,  109,  109,  109, 
    7282       109,  109,  109,  109,  109,  109,  109,  121,   83,  253, 
    7283       121,   91,  511,  230,  512,  110,  110,   74,   92,   93, 
    7284       120,  229,  116,  254,  256,  116,  245,  212,  110,  260, 
    7285       262,   75,  268,  116, 1131,  121,  246,  175,  121,  127, 
    7286       116,  230,  146,  128,  110,  110,   74,  121, 1131,  129, 
    7287       229,  254,  256,  130,  121,  245,  110,  260,  262,   75, 
    7288  
    7289       122,  268,  116, 1131,  246,  116,  116,  123,  127,  116, 
    7290       146,  124,  128,  212,  125,  121, 1131,  129,   91,  121, 
    7291       121,  130,  121,  190,  126,   92,   93,  179,  190,  122, 
    7292        78,   77,   78,  179,  116,  116,  123,  143,   87,  124, 
    7293       275,  147,  125,   87,  144,  145,  116,  121,  121,  148, 
    7294        83,  121,  126,  116,  753,  149,  211,  212,  211,  131, 
    7295       121,  132,  133,  754,  134,  135,  143,  121,  213,  275, 
    7296       147,  136,  144,  145,  264,  116,  241,   82,  148,  121, 
    7297       795,  212,  116,  149,  366,  367,  366,  131,  121,  132, 
    7298       133,  242,  134,  135,  214,  121,  259,  162,  116,  136, 
    7299  
    7300       116,  190,  264,  137,  762,  241,  138,  139,  215,  140, 
    7301       150,  753,  121,  260,  121,  141,  271,  255,  151,  242, 
    7302       754,  113,  152,  214,  153,  259,  162,  116,  257,  116, 
    7303       154,  698,  137,  243,  138,  139,  215,  140,  258,  150, 
    7304       121,  260,  121,  141,  271,  116,  255,  151,  244,  113, 
    7305       152,  158,  153,  155,  272,  156,  116,  257,  154,  121, 
    7306       157,  116,  243,  273,  274,  159,  258,  276,  160,  172, 
    7307       121,  161,  179,   87,  116,  121,  244,  534,  179,  277, 
    7308       158,  155,  272,  156,  534,  116,  278,  121,  157,  282, 
    7309       116,  273,  274,  159,   91,  276,  160,  172,  121,  161, 
    7310  
    7311       163,   92,   93,  121,  164,  116,  169,  277,  165,  643, 
    7312       116,  116,  173,  170,  278,  635,  166,  282,  285,  167, 
    7313       168,  286,  174,  171,  121,  121,  378,   77,  378,  163, 
    7314       560,  559,  295,  164,  116,  169,  287,  165,  290,  116, 
    7315       116,  173,  170,  237,  166,  196,  285,  167,  168,  286, 
    7316       174,  171,  121,  121,  176,   77,  177,  178,  186,  187, 
    7317       190,  295,  179,  557,  287,  191,  290,  511,  283,  512, 
    7318       296,  237,  197,  556,  284,  188,  188,  188,  188,  188, 
    7319       188,  188,  188,  188,  188,  297,  198,  298,  310,  180, 
    7320       181,  116,   74,  182,  116,  183,  283,  192,  296,  172, 
    7321  
    7322       200,  197,  284,  142,  203,  121,  184,  185,  121,  212, 
    7323       299,  193,  534,  297,  198,  190,  298,  310,  180,  181, 
    7324       116,   74,  182,  116,  183,  300,  192,  172,  200,  510, 
    7325       400,  142,  203,  121,  184,  185,  121,  143,  299,  193, 
    7326       194,  232,  233,  232,  144,  201,  179,  396,  395,  234, 
    7327       235,  121,  394,  300,  108,  393,  195,  195,  195,  195, 
    7328       195,  195,  195,  195,  195,  195,  143,  238,  238,  288, 
    7329        91,  288,  144,  201,  110,  110,   74,   92,   93,  121, 
    7330       238,  301,  265,  266,  302,  303,  304,  110,  267,  307, 
    7331        75,  313,  212,  651,  319,  652,  238,  238,  320,  212, 
    7332  
    7333       323,  269,  236,  110,  110,   74,  270,  330,  238,  301, 
    7334       265,  266,  302,  303,  304,  110,  267,  307,   75,  199, 
    7335       313,  289,  319,  127,  116,  205,  320,  128,  323,  190, 
    7336       269,  236,  190,  129,  344,  270,  330,  130,  121,  308, 
    7337       169,  190,  309,  279,  321,  116,  291,  170,  199,  289, 
    7338       280,  322,  127,  116,  281,  331,  128,  171,  292,  121, 
    7339       293,  129,  344,  294,  202,  130,  121,  308,   87,  169, 
    7340       309,   87,  279,  321,  116,  291,  170,   83,  280,  322, 
    7341       205,  651,  281,  652,  331,  171,  292,  121,  293,  921, 
    7342      1131,  294,  202,  210,  211,  212,  211,  210,  210,  210, 
    7343  
    7344       216,  210,  210,  210,  210,  210,  210,  210,  210,  210, 
    7345       210,  210,  217,  217,  217,  217,  217,  217,  217,  217, 
    7346       217,  217,  210,  210,  210,  210,  210,  197,  217,  217, 
    7347       217,  217,  218,  217,  123,  217,  217,  217,  219,  217, 
    7348       217,  198,  217,  217,  217,  217,  220,  217,  217,  217, 
    7349       217,  221,  217,  210,  210,  217,  197,  217,  217,  217, 
    7350       217,  218,  217,  123,  217,  217,  219,  217,  217,  198, 
    7351       217,  217,  217,  217,  220,  217,  217,  217,  217,  221, 
    7352       217,  210,   98,  251,   98,  251,   68,  305,  252,  252, 
    7353       252,  252,  252,  252,  252,  252,  252,  252,  311,  366, 
    7354  
    7355       367,  366,  306,  345,  312,  332,  667,  326,  667,  328, 
    7356       333,  335, 1131,  329,  334,  100,  305,  347,  327,  101, 
    7357       343,  102,  205,  669,  355,  669,  103,  311,  104,  105, 
    7358       306,  345,  312,  314,  332,  315,  326,  328,  106,  333, 
    7359       335,  329, 1131,  334,  100,  347,  327, 1131,  101,  343, 
    7360       102,  316,  317,  355,  103,  318,  104,  105,  337,  358, 
    7361       338, 1131,  314,  190,  315, 1131,  106,  250,  250,  250, 
    7362       250,  250,  250,  250,  250,  250,  250,  324,  341,  316, 
    7363       317,  223,  925,  318,  362,  110,  110,  358,  346,  190, 
    7364       359,  325,  342,  190,  260,  351, 1131,  233,  110,  361, 
    7365  
    7366      1131,  205,  212, 1131,  385,  235,  324,  341, 1131,  223, 
    7367       339,  186,  348,  362,  110,  110,  346,  205,  359,  325, 
    7368       342,  352,  260, 1131,  351, 1131,  110,  361,  349,  349, 
    7369       349,  349,  349,  349,  349,  349,  349,  349,  339,  350, 
    7370       262,  770,  353,  771,  390,  179,  209,  356,  376,  363, 
    7371       352,  369,  377, 1131, 1131,  349,  349,  349,  349,  349, 
    7372       349,  349,  349,  349,  349,  350,  265,  357,  262,  212, 
    7373       353,  179,  267,  390,  209,  356,  376, 1131,  363,  369, 
    7374       377,  349,  349,  349,  349,  349,  349,  349,  349,  349, 
    7375       349,  350,  205,  379,  265,  357,  212,  179, 1131,  391, 
    7376  
    7377       267,  368,  206,  205,  206,  108,  291,  354,  354,  354, 
    7378       354,  354,  354,  354,  354,  354,  354,  380,  292,  399, 
    7379       293,  379,   83,  360,   87,  110,  110,  364,  370,  371, 
    7380       368,  375, 1131, 1131,  408,  291,  233,  392,  110,  207, 
    7381        87, 1131,   83,  385,  235,  380,  292,  399,  293, 1131, 
    7382       770,  360,  771, 1131,  110,  110,  364,  370,  371, 1131, 
    7383       375,  397,  381,  408, 1131,  392,  110,  383,  207,  365, 
    7384       365,  212,  365,  365,  365,  365,  365,  365,  365,  365, 
    7385       365,  365,  365,  365,  365,  365,  365,  365,  371,  371, 
    7386       381,  382,  384,  401,  398,  383,  404,  405,  365,  365, 
    7387  
    7388       365,  365,  365,  373,   91,  374,  232,  233,  232,  406, 
    7389       407,   92,   93,  409,  234,  235, 1131,  371,  371,  382, 
    7390       384,  401,  398, 1131,  404,  405,  232,  233,  232,  365, 
    7391       365,  373, 1131,  374,  234,  235,   91,  406,  407, 1131, 
    7392       388,  409,  388,   92,   93,  389,  389,  389,  389,  389, 
    7393       389,  389,  389,  389,  389,  410,  387,  365,  365,  365, 
    7394       212,  365,  365,  365,  365,  365,  365,  365,  365,  365, 
    7395       365,  365,  365,  365,  365,  365,  365,  411,  412,  386, 
    7396       547,   77,  547,  410,  387, 1131, 1131,  365,  365,  365, 
    7397       365,  365,  372,  252,  252,  252,  252,  252,  252,  252, 
    7398  
    7399       252,  252,  252,  413,  414,  411,  412,  386,  252,  252, 
    7400       252,  252,  252,  252,  252,  252,  252,  252,  365,  365, 
    7401       402,  372,  402,  686,   77,  686, 1131, 1131,  417,  419, 
    7402       403,  413,  414,  415,  420,  421,  416, 1131,  422,  423, 
    7403       424,  425,  426, 1131, 1131,  418,  365,  250,  250,  250, 
    7404       250,  250,  250,  250,  250,  250,  250,  417,  419,  439, 
    7405       444,  415,  420,  421,  416,  238,  238,  422,  423,  424, 
    7406       425,  426,  437,  418,  437,  445,  446,  440,  238,  440, 
    7407      1131, 1131,  442,  443,  447,  448,  450,  448,  439,  444, 
    7408       451, 1131,  453,  454,  238,  238,  455,  456,  288,  457, 
    7409  
    7410       288,  460, 1131,  438,  445,  446,  238,  427,  441,  427, 
    7411       442,  443,  447,  458,  450,  470,  449, 1131,  469,  451, 
    7412       453,  454, 1131,  471,  455,  456,  459,  457,  474, 1131, 
    7413       460,  461,  472,  461,  472, 1131,  475,  465,  428,  465, 
    7414       476,  462,  458,  429,  470,  430,  469,  466,  431, 1131, 
    7415       452,  471,  432,  478,  459,  433,  477,  474,  434,  435, 
    7416       479, 1131,  436,  473,  475,  480,  481,  484,  476,  485, 
    7417       488,  482,  429,  489,  430,  463,  490,  431,  452,  483, 
    7418       432,  467,  478,  433,  477,  464,  434,  435,  491,  479, 
    7419       436,  468,  486,  480,  481,  492,  484,  485,  488,  482, 
    7420  
    7421       487,  489,  493,  463,  490,  494,  495,  483,  496,  467, 
    7422       497,  498,  499,  464,  502,  503,  500,  491,  500,  468, 
    7423       504,  486,  505,  506,  492,  507,  501,  508,  487,  509, 
    7424       346,  493,  513,  494,  514,  495,  496,  515,  497,  498, 
    7425       499,  516,  517,  502,  503,  518,  519,  190,  504, 1131, 
    7426       505,  506, 1131,  507,  190,  508,  205,  509,  346,  511, 
    7427       513,  520,  514,  190, 1131,  515,  527,  528,  530,  516, 
    7428       517,  417,  531,  518,  545,  519,  212,  521,  521,  521, 
    7429       521,  521,  521,  521,  521,  521,  521,  522,  529,  212, 
    7430       524,  533,  523,  179,  535,  527,  528,  530,  371, 1131, 
    7431  
    7432       417,  531,  545,  521,  521,  521,  521,  521,  521,  521, 
    7433       521,  521,  521,  522,  212,  525,  529,  212,  524,  179, 
    7434       533,  523,  546,  535,  548,   87, 1131,  371,  539,  521, 
    7435       521,  521,  521,  521,  521,  521,  521,  521,  521,  190, 
    7436      1131,  532,  371,  525,  522,  536,  205,  536,   83,  927, 
    7437       179,  546,  548,  541,  459,  540,  539,  538,  108,  371, 
    7438       526,  526,  526,  526,  526,  526,  526,  526,  526,  526, 
    7439       532,  371,  371,  549,   87,  552,   83,  542,  110,  110, 
    7440      1131,  541,  459,  371,  540,  538,  537,  562,  371,  233, 
    7441       558,  110,  543,  561,  544,  550,  385,  235,  667, 1029, 
    7442  
    7443       667,  371,  549,  552, 1131,  542,   91,  110,  110,  551, 
    7444       553, 1131,  371,   92,   93,  537,  562,   91,  558,  110, 
    7445       543,  561,  544,  550,   92,   93,  389,  389,  389,  389, 
    7446       389,  389,  389,  389,  389,  389,  563,  564,  551,  553, 
    7447       389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
    7448       402,  565,  402,  555,  566, 1131,  554,  567, 1131,  568, 
    7449       403,  569,  570,  571,  572,  563,  564,  573,  574,  575, 
    7450       576,  577,  578,  589,  578,  590,  591, 1131,  592,  565, 
    7451       593,  596,  555,  566,  554,  597,  567,  568,  594,  569, 
    7452       570,  598,  571,  572,  599,  573,  574,  575,  576,  577, 
    7453  
    7454       437,  589,  437,  590,  595,  591,  592,  602,  593,  596, 
    7455       440,  605,  440,  579,  597,  606,  603,  594,  603,  598, 
    7456       607,  448,  599,  448,  212,  608,  609,  580,  610, 1131, 
    7457       613,  438,  595,  611,  612,  602,  614,  616,  617,  605, 
    7458       619,  441,  579,  615,  606,  618,  621,  604,  620,  607, 
    7459      1131,  622,  449,  608,  609,  580,  427,  610,  427,  613, 
    7460       623,  611,  612, 1131,  629,  614,  616,  617,  461,  619, 
    7461       461,  615,  465,  618,  465,  621,  620,  627,  462,  622, 
    7462       632,  472,  466,  472, 1033,  628,  630,  428,  623,  631, 
    7463       633,  624,  581,  629,  582,  634,  640,  583,  645,  625, 
    7464  
    7465       636,  584, 1131,  637,  585,  627,  638,  586,  587,  632, 
    7466       639,  588,  473,  628,  630, 1131, 1131,  631,  633, 1131, 
    7467       646,  581,  646,  582,  634,  640,  583,  645,  636,  584, 
    7468       626,  637,  585,  644,  638,  586,  587, 1131,  639,  588, 
    7469       600,  600,  600,  600,  600,  600,  600,  600,  600,  600, 
    7470       600,  647,  600,  600,  600,  600,  600,  600,  600,  626, 
    7471       648,  644,  649,  650,  641,  500,  641,  500,  653,  600, 
    7472       600,  600,  600,  600,  642,  501,  654,  655,  656,  657, 
    7473       658,  190,  190,  669,  205,  669,  190, 1131,  667,  648, 
    7474       667,  649,  650,  651,  668,  659,  666,  653,  701,  205, 
    7475  
    7476       600,  600,  571,  212,  654,  670,  655,  656,  657,  658, 
    7477       205,  660,  660,  660,  660,  660,  660,  660,  660,  660, 
    7478       660,  661,  664,  668,  666,  684,  701,  179,  600,  703, 
    7479       662,  571,  663,  675,  670, 1131, 1131,  660,  660,  660, 
    7480       660,  660,  660,  660,  660,  660,  660,  661, 1131,  212, 
    7481       212,  664,  679,  179,  684,  676,  705,  703,  662, 1050, 
    7482       663,  675, 1131,  660,  660,  660,  660,  660,  660,  660, 
    7483       660,  660,  660,  661,  614,  536,  205,  536, 1131,  179, 
    7484       679,  615,  687,  676,  705,  671,  678,  108,  371,  665, 
    7485       665,  665,  665,  665,  665,  665,  665,  665,  665,  677, 
    7486  
    7487       672, 1131,  672,  614,   87,   83,  680,  110,  110,  615, 
    7488       673,  687,  699,  671,  674,  678,  537,  371,  371, 1131, 
    7489       110,  371,  681,   91,  371,  682,  700,  677,  683,  704, 
    7490        92,   93,  706,  712,  680,   91,  110,  110,  689,  713, 
    7491       692,  699,  696,  697,  707,  537,  708,  371,  110,  709, 
    7492       371,  681,  710,  371,  682,  700,  711,  683,  704,  694, 
    7493      1131,  706,  712,  718,  770,  186,  775,  689,  713,  692, 
    7494      1131,  578,  707,  578,  708, 1131,  641,  709,  641,  716, 
    7495       710,  717, 1131,  719,  711,  720,  642,  721,  694,  685, 
    7496       685,  718,  685,  685,  685,  685,  685,  685,  685,  685, 
    7497  
    7498       685,  685,  685,  685,  685,  685,  685,  685,  716,  722, 
    7499       717,  719,  714,  723,  720,  721,  725,  726,  685,  685, 
    7500       685,  685,  685,  727,  728, 1131,  715,  729,  730,  724, 
    7501       731, 1131,  732,  733,  734,  739,  735,  722,  735, 1131, 
    7502       737,  714,  723,  603,  725,  603,  726,  738,  742,  685, 
    7503       685,  727,  740,  728,  715,  729,  730,  724,  741,  731, 
    7504       732,  743,  733,  734,  739,  744,  745,  736,  737,  746, 
    7505       747, 1131,  748,  749,  604,  738,  742,  685,  750,  751, 
    7506       752,  740,  755, 1131,  756,  757,  758,  741,  759,  760, 
    7507       743,  761,  766,  744,  745,  763,  764,  765,  746,  747, 
    7508  
    7509       748,  767,  749,  768,  769,  646,  750,  646,  751,  752, 
    7510       772,  755,  756,  773,  757,  758,  759,  774,  760,  190, 
    7511       761,  766,  190,  763,  764,  765,  779,  780,  669,  767, 
    7512       669,  768,  769,  672,  781,  672,  647,  782,  672,  772, 
    7513       672,  205,  773,  673,  371,  774,  205,  674,  673,  674, 
    7514       371,  674,  674,  212,  212,  779,  780,  801,  777,  776, 
    7515        91, 1131,  781,  674,   91,  371,  782,  798,  799,  788, 
    7516        91,   92,   93,  371,  802,  803, 1131,   92,   93,  371, 
    7517       770,  833,  771,  833,  190,  801,  783,  777,  776,  179, 
    7518       785,  834,  784,  787,  371,  179, 1131,  804,  788,  805, 
    7519  
    7520       806,  807,  802,  108,  803,  109,  109,  109,  109,  109, 
    7521       109,  109,  109,  109,  109,  783,  808, 1131,  809,  785, 
    7522       784,  810,  787,  110,  110,  804,  814,  805,  806,  807, 
    7523       815,  816, 1131,  817,  818, 1131,  110,  851, 1131,  851, 
    7524       770,  864,  770,  864, 1093,  808,  809,  852, 1131,  864, 
    7525       810,  864,  110,  110,  811,  814,  811,  819,  820,  815, 
    7526       816,  817,  821,  818,  110,  786,  786,  212,  786,  786, 
    7527       786,  786,  786,  786,  786,  786,  786,  786,  786,  786, 
    7528       786,  786,  786,  786,  822,  819,  820,  823,  824,  812, 
    7529       826,  821,  825,  827,  786,  786,  786,  786,  786,  828, 
    7530  
    7531       829, 1131,  813,  830,  831,  735,  832,  735,  205,  835, 
    7532       836,  837,  822,  838, 1131,  839,  823,  824,  812,  826, 
    7533       825,  840,  827,  841,  844,  786,  786,  828,  846,  829, 
    7534       813,  830,  831, 1131, 1131,  832,  736,  835, 1131,  836, 
    7535       837,  845,  838,  839,  847,  770,  186,  775,  833,  840, 
    7536       833,  841,  844,  786,  791,   77,  791,  846,  834,  792, 
    7537       792,  842,  792,  842, 1131, 1131,  792,  792, 1095,  845, 
    7538       792, 1131,  847,  792,  792,  792,  792,  792,  792,  792, 
    7539       792,  792,  790,  790,  190,  790,  790,  790,  790,  790, 
    7540       790,  790,  790,  790,  790,  790,  790,  790,  790,  790, 
    7541  
    7542       790,  848,  849,  205,  850,  853, 1131,  856,  858,  843, 
    7543       857,  790,  790,  790,  790,  790,  854,  859,  854,  862, 
    7544       865,  860,  205,  212,  863,  371,  791,   77,  791,  848, 
    7545       873,  849,  850,  879,  853,  856,  858,  843,  874,  857, 
    7546       866, 1131,  790,  790,  875,  876,  859,  877,  862,  865, 
    7547       860,  855,  863,  878,  371,   91,  882,   91,  867,  873, 
    7548       869,  879,   92,   93,   92,   93,  864,  874,  864,  866, 
    7549       790, 1131, 1131,  875,  876, 1131,  877,  811, 1131,  811, 
    7550       855,  871,  878,  883,  882,  872,  884,  867,  885,  869, 
    7551       868,  868,  212,  868,  868,  868,  868,  868,  868,  868, 
    7552  
    7553       868,  868,  868,  868,  868,  868,  868,  868,  868,  886, 
    7554       871,  883,  880,  888,  872,  884,  885,  887,  889,  868, 
    7555       868,  868,  868,  868,  890,  881,  891, 1131,  892,  893, 
    7556       894,  895,  896, 1131,  897,  898,  899,  908,  886,  900, 
    7557       212,  880,  888,  906,  907,  887,  842,  889,  842,  910, 
    7558       868,  868,  890,  881,  911,  891,  892,  893,  894,  895, 
    7559       912,  896,  897,  913,  898,  899,  908,  900,  902,  903, 
    7560       902,  906,  907,  851,  914,  851,  904,  910,  868,  905, 
    7561       915,  917,  911,  852,  854,  918,  854,  919,  912,  920, 
    7562       205,  924,  913,  923,  909,  371,  928, 1131,  929,  930, 
    7563  
    7564      1096,  931,  932,  914,  933,  934,  935,  936,  915,  937, 
    7565       917,  938, 1131,  939,  918,  919,  940,  944,  920,  916, 
    7566       924,  923,  909,  941,  371,  928,  929,  942,  930,  931, 
    7567       932,  943,  933,  934,  935,  936,  945,  937,  950,  926, 
    7568       938,  939,  946,  947,  948,  940,  944,  949,  916,  951, 
    7569       952,  941,  902,  903,  902,  942,  953,  903,  953,  943, 
    7570       904,  960, 1131,  905,  945,  961,  950,  926, 1131,  959, 
    7571       964,  946,  947,  948,  962,  965,  949,  951,  952,  902, 
    7572       903,  902,  966,  955,  956,  955,  967,  904,  968,  960, 
    7573       905,  957,  969,  961,  958,  902,  903,  902,  959,  964, 
    7574  
    7575       190,  971,  962,  904,  965,  972,  905,  205,  205,  212, 
    7576       966,  976,  977,  978,  967, 1131,  968,  979, 1131,  980, 
    7577       981,  969,  982,  983,  984,  987,  985,  988,  985,  989, 
    7578       971,  990,  991,  992,  972,  970,  986,  993,  994,  976, 
    7579       977,  978,  995,  973,  975,  974,  979,  980, 1131,  981, 
    7580       982, 1131,  983,  984,  987,  999,  988,  998,  989,  990, 
    7581       991,  992, 1131, 1131,  970,  993,  994,  996,  903,  996, 
    7582      1001,  995,  973,  975,  974,  955,  956,  955,  190,  955, 
    7583       956,  955, 1000,  957,  999,  998,  958,  957, 1002,  205, 
    7584       958,  997,  956,  997, 1003,  955,  956,  955, 1001,  904, 
    7585  
    7586      1004,  212,  905,  957, 1006,  205,  958,  955,  956,  955, 
    7587      1010, 1000, 1011, 1013, 1011,  957, 1014, 1002,  958, 1131, 
    7588      1015, 1016, 1012, 1003, 1005,  985,  985,  985,  985, 1004, 
    7589      1017, 1018, 1006, 1019, 1007,  986,  986, 1008, 1021, 1010, 
    7590      1020, 1013, 1022,  205,  205, 1014, 1131, 1009, 1015, 1025, 
    7591      1016, 1131, 1005, 1023,  903, 1023, 1026, 1028, 1017, 1018, 
    7592      1036, 1019, 1007, 1039, 1037, 1038, 1008, 1021, 1020, 1040, 
    7593      1041, 1022, 1024,  903, 1024, 1009, 1042, 1032, 1025, 1031, 
    7594       904,  205, 1011,  905, 1011, 1026, 1028, 1034, 1036, 1034, 
    7595      1045, 1039, 1012, 1037, 1038, 1046,  190, 1040, 1047, 1041, 
    7596  
    7597      1035, 1049, 1035,  212, 1042, 1056, 1032, 1055, 1031, 1043, 
    7598       903, 1043, 1044,  903, 1044, 1131, 1057, 1051, 1035, 1045, 
    7599       904, 1058, 1060,  905, 1046, 1034, 1047, 1034, 1063, 1049, 
    7600      1059,  190, 1053, 1056, 1053,  212, 1055, 1064, 1035,  205, 
    7601      1035, 1048, 1073, 1054, 1057, 1035, 1051, 1035, 1052, 1075, 
    7602      1058, 1060, 1061,  903, 1061, 1067, 1035, 1063, 1059, 1062, 
    7603       903, 1062, 1053, 1035, 1053, 1064, 1072,  904, 1074, 1048, 
    7604       905, 1073, 1079, 1054, 1068,  205, 1052, 1066, 1075, 1080, 
    7605      1081, 1071, 1131, 1067, 1078,  903, 1078,  190,  212, 1083, 
    7606      1131, 1086,  904, 1131, 1072,  905, 1074, 1087, 1131, 1090, 
    7607  
    7608      1079,  190,  205, 1068,  190, 1066, 1131, 1080, 1081, 1071, 
    7609      1076,  903, 1076,  205, 1131, 1077, 1077, 1083, 1077, 1086, 
    7610      1097, 1084, 1077, 1077, 1091, 1087, 1077, 1090, 1098, 1077, 
    7611      1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1082, 1085, 
    7612      1076,  903, 1076,  902,  903,  902, 1131, 1100, 1097, 1084, 
    7613      1103,  904,  212, 1091,  905, 1099, 1108, 1098, 1101,  205, 
    7614       212,  205, 1113, 1131,  190, 1131, 1082, 1085,  902,  903, 
    7615       902, 1104,  205, 1088, 1088, 1100, 1089,  190, 1103,  905, 
    7616      1088, 1088,  212, 1099, 1088, 1108, 1101, 1088, 1088, 1088, 
    7617      1088, 1088, 1088, 1088, 1088, 1088,  902,  903,  902, 1104, 
    7618  
    7619       955,  956,  955, 1102,  904, 1105,  190,  905,  957, 1106, 
    7620      1112,  958, 1109, 1107,  212, 1115, 1116,  212, 1110, 1119, 
    7621      1120, 1119,  205, 1117, 1121, 1122, 1121, 1124, 1125, 1124, 
    7622       205, 1102,  205, 1105, 1119, 1120, 1119, 1106, 1111, 1112, 
    7623      1109,  205, 1107, 1115, 1116, 1131, 1114, 1110, 1121, 1122, 
    7624      1121, 1117, 1124, 1125, 1124, 1129, 1130, 1129, 1129, 1130, 
    7625      1129, 1131, 1131, 1131, 1127, 1131, 1126, 1111, 1118, 1131, 
    7626      1131, 1123, 1131, 1131, 1131, 1114, 1131, 1131, 1131, 1131, 
    7627      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7628      1131, 1131, 1128, 1127, 1131, 1126, 1118, 1131, 1131, 1123, 
    7629  
    7630      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7631      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7632      1128,   66,   66,   66,   66,   66,   66,   66,   66,   66, 
     8690       16,   17,   18,   17,   19,   20,   16,   21,   22,   23, 
     8691       24,   25,   26,   27,   26,   28,   26,   29,   30,   31, 
     8692       32,   33,   34,   35,   36,   37,   38,   39,   40,   41, 
     8693       42,   43,   44,   45,   44,   46,   47,   48,   49,   50, 
     8694       51,   44,   52,   53,   54,   55,   44,   56,   44,   44, 
     8695       57,   26,   26,   26,   37,   38,   39,   40,   41,   42, 
     8696       43,   44,   45,   46,   47,   48,   49,   50,   51,   44, 
     8697       52,   53,   54,   55,   44,   56,   44,   44,   57,   16, 
     8698       58,   59,   58,   60, 1885,   69,   68,   69,   70,   72, 
     8699       73,   72,   72,   73,   72,  108,  336,  243,   74,  243, 
     8700 
     8701      110,   74,  110,  112,  108,  115,   61,   62, 1883,  109, 
     8702       63,   70,   64,   71,  475,  475,  238,  113,  109,  121, 
     8703      108,  241, 1885,   65,  108,  336,  122,  123, 1883,  108, 
     8704      116,  345,  112,  108,  109,   61,   62,  109,  338,   63, 
     8705       70,   64,   71,  109,  117,  113,  109,  124, 1866,  108, 
     8706      132,   65,   58,   59,   58,   60,  108,  238,  108,  116, 
     8707      345,  125,  109,  108,  151,  347,  338,  108, 1872,  346, 
     8708      109,  109,  117,  108,  108, 1869,  124,  109,   61,   62, 
     8709     1866,  109,   63,  121,   64,  108,  348,  109,  109,  125, 
     8710      122,  123,  108,  242,  347,   65,  108,  346,  109,  110, 
     8711 
     8712     1866,  110,  108,  108,  315,  109,  316,   61,   62,  109, 
     8713      243,   63,  243,   64,  348,  109,  109,  224,  217,  224, 
     8714      218,  242,  317,   65,   16,   17,   75,   17,   19,   20, 
     8715       16,   21,   22,   23,   24,   25,   26,   27,   26,   28, 
     8716       26,   29,   30,   31,   32,   33,   34,   35,   36,   76, 
     8717       77,   78,   79,   80,   81,   82,   83,   84,   83,   85, 
     8718       86,   87,   88,   89,   90,   83,   91,   92,   93,   94, 
     8719       83,   95,   83,   83,   96,   26,   26,   26,   76,   77, 
     8720       78,   79,   80,   81,   82,   83,   84,   85,   86,   87, 
     8721       88,   89,   90,   83,   91,   92,   93,   94,   83,   95, 
     8722 
     8723       83,   83,   96,   16,   58,   97,   98,   60,  152,  118, 
     8724      118,  118,  119,  115, 1872,  108,   99,  323,  391,  324, 
     8725      391,  590,  100,  392, 1869,  155,  126,  395,  126,  109, 
     8726      101,  102,  108,  350,  103,  325,  104,  591,  108,  127, 
     8727      340,  127,  340,  128,  108,  371,  109,  105,  118,  118, 
     8728      118,  119,  109,  372,  158,  130,  395,  109,  341,  101, 
     8729      102,  108,  350,  103,  342,  104,  342,  108,  161,  131, 
     8730      876, 1866,  251,  371,  109,  105,  106,   59,  106,   60, 
     8731      109,  372,  343,  158,  130,  251,  877,  142,  143,  142, 
     8732      251, 1807,  399,  344,  107,  144,  161,  131,  145,  148, 
     8733 
     8734      373,  149,   61,   62,  146,  379,   63,  809,   64,  147, 
     8735      150,  150,  108,  153,  154,  374,  108,  121,  251,   65, 
     8736      108,  399,  344,  150,  122,  123,  109,  203,  158,  373, 
     8737      109,   61,   62,  379,  109,   63,  380,   64,  402,  150, 
     8738      150,  108,  161,  374,  406,  108,  254,   65,  133,  108, 
     8739      133,  150,  157,  414,  109,  158,  203,  158,  109,  215, 
     8740      257,  159,  109,  439,  380,  115,  134,  402,  160,  161, 
     8741      161,  456,  135,  406,  226,  254,  136,  108,  137,  158, 
     8742      230,  157,  414,  138,  158,  139,  140,  114,  257,  159, 
     8743     1145,  109,  439,  161,  396,  141,  160,  161,  231,  252, 
     8744 
     8745      456,  135,  351,  252,  251,  136,  108,  137,  158,  279, 
     8746      162,  138,  232,  139,  140,  158,  169,  158,  163,  109, 
     8747      170,  161,  396,  141,  158, 1521,  171,  231,  252,  161, 
     8748      351,  161,  252,  183,  239,  238,  239,  279,  161,  162, 
     8749      232,  189,  158, 1763,  158,  169,  158,  163, 1033,  170, 
     8750     1033,  190,  397,  158,  171,  398,  161,  161,  164,  161, 
     8751      400,  183,  240,  158,  158,  165,  161,  184, 1709,  166, 
     8752      189,  158,  167,  191,  185,  186,  187,  161,  161,  190, 
     8753      397,  161,  168,  398,  161,  226,  401,  164,  400,  709, 
     8754      227,  240,  158,  158,  165,  467,  184,  166,  710,  711, 
     8755 
     8756      167,  191,  185,  186,  187,  161,  161, 1709, 1763,  161, 
     8757      168,  158,  158,  228,  401,  188, 1709,  172,  403,  173, 
     8758      174, 1709,  175,  176,  467,  161,  161,  229,  121,  177, 
     8759      354,  355,  354,  252,  375,  122,  123,  284,  356,  357, 
     8760      158,  158,  228,  252,  188,  172,  403,  173,  174,  376, 
     8761      175,  176,  121,  161,  161,  229,  251,  177,  158,  122, 
     8762      123,  178,  252,  375,  179,  180,  284,  181,  360,  192, 
     8763      158,  252,  161,  182,  158,  359,  377,  376,  196,  251, 
     8764      197,  193,  409,  194,  161,  198,  378,  158,  161,  195, 
     8765      178,  469,  179,  180,  413,  181,  360,  470,  192,  158, 
     8766 
     8767      161,  182,  238,  158,  359,  377,  196,  199,  197,  193, 
     8768      409,  194,  161,  198,  378,  114,  161,  195, 1332,  156, 
     8769      469,  200,  413,  660,  201,  204,  470,  202,  415,  205, 
     8770      158,  246,  247,  248,  249,  497,  199,  497,  249,  206, 
     8771      319,  209,  251,  250,  207,  208,  158,  156,  210,  200, 
     8772      251,  320,  201, 1525,  204,  202,  415,  250,  205,  158, 
     8773      161,  251,  251,  126,  416,  126,  158,  206,  321,  158, 
     8774      209,  213,  207,  208,  211,  158,  127,  210,  127,  212, 
     8775      161,  214,  322,  161,  251,  323,  250,  592,  161,  265, 
     8776      254, 1637,  416,  266, 1638,  158,  471,  321,  158,  267, 
     8777 
     8778      213,  417,  211,  591,  257,  251,  420,  212,  161,  214, 
     8779      322,  161,  216,  217,  216,  218,  233,  158,  265,  254, 
     8780      169,  158,  266,  234,  170,  471,  183,  267,  258,  417, 
     8781      171,  161,  257,  254,  420,  161,  259,  474,  219,  220, 
     8782      319,  108,  221, 1700,  222,  233,  158,  257,  480,  169, 
     8783      158,  234,  660,  170,  183,  223,  251,  258,  171,  161, 
     8784      226,  393,  254,  161,  251,  259,  474,  219,  220,  209, 
     8785      108,  221,  184,  222,  158,  257,  210,  480,  394,  185, 
     8786      235,  187, 1886,  223, 1886,  251,  161,  307,  161,  252, 
     8787      393, 1560,  308,  236,  252, 1886,  472, 1886,  209,  251, 
     8788 
     8789      473,  184,  421,  158,  251,  210,  394,  185,  235,  187, 
     8790      253, 1699,  418,  254,  161,  307,  161,  252,  251,  255, 
     8791      308,  236,  252,  419,  252,  472,  256,  257,  274,  473, 
     8792      421,  275,  276,  422,  277,  142,  143,  142,  251,  253, 
     8793      278,  418,  254,  144,  133,  423,  133,  255,  427,  251, 
     8794      427,  419,  146,  252,  256,  257,  251,  274,  428,  275, 
     8795      276,  422,  277, 1035,  251, 1035,  285,  252,  278,  424, 
     8796      252,  252,  368,  423,  429,  251,  286,  287,  299,  260, 
     8797     1637,  369,  252, 1638,  254,  487,  261,  425,  252,  425, 
     8798      262,  141,  251,  263,  437,  285,  252,  424,  257,  252, 
     8799 
     8800      252,  368,  429,  264,  286,  287,  251,  299,  260,  369, 
     8801      438,  252,  442,  254,  487,  261,  252,  319,  262,  141, 
     8802      280,  263,  437,  251,  443,  634,  257,  281,  282,  283, 
     8803      426,  264,  252,  238,  257,  440,  252,  134,  438,  268, 
     8804      442,  269,  270,  441,  271,  272,  370,  370,  340,  280, 
     8805      340,  273,  443,  251,  634,  281,  282,  283,  426,  370, 
     8806     1637,  252,  257, 1638,  440,  252,  341,  268, 1716,  269, 
     8807      270,  441,  271,  272,  288,  370,  370,  444,  252,  273, 
     8808      445,  254,  252,  251, 1730,  251,  289,  370,  290,  292, 
     8809      251,  293,  295,  215,  291,  257,  294,  407,  251,  251, 
     8810 
     8811      446,  637,  408,  288,  252,  444,  296,  252,  445,  297, 
     8812      254,  252,  298,  254,  289,  449,  290,  292,  251,  293, 
     8813      447,  295,  291,  257,  294,  300,  407,  257,  446,  301, 
     8814      637,  408,  252,  252,  296,  448,  251,  297,  251,  302, 
     8815      298,  305,  254,  449,  303,  304,  254,  709,  306,  447, 
     8816      224,  217,  224,  218,  300,  257,  710,  711,  301,  319, 
     8817      257,  252,  252,  448,  254,  252,  309,  302,  337,  226, 
     8818      305,  279,  303,  304,  462,  254,  310,  306,  257,  311, 
     8819      312,  313,  314,  454,  386,  387,  386,  388,  257,  455, 
     8820      252,  250,  144,  254,  252,  309,  337,  404,  405,  279, 
     8821 
     8822      450,  146,  462,  451,  310,  250,  257,  224,  217,  224, 
     8823      218,  251,  454,  224,  217,  224,  218,  455,  497,  251, 
     8824      498,  249,  355,  709,  251,  404,  405,  251,  450,  620, 
     8825      357,  451, 1206, 1207,  250,  318,  318,  326,  318,  318, 
     8826      318,  318,  327,  318,  318,  318,  318,  318,  318,  318, 
     8827      318,  318,  318,  318,  328,  318,  318,  318,  318,  318, 
     8828      329,  328,  328,  328,  328,  330,  328,  331,  328,  328, 
     8829      328,  332,  328,  328,  333,  328,  328,  328,  328,  334, 
     8830      328,  328,  328,  328,  335,  328,  318,  318,  328,  329, 
     8831      328,  328,  328,  328,  330,  328,  331,  328,  328,  332, 
     8832 
     8833      328,  328,  333,  328,  328,  328,  328,  334,  328,  328, 
     8834      328,  328,  335,  328,  318,  305,  355,  361,  427,  361, 
     8835      427,  251,  306,  620,  357, 1033,  252, 1033,  428,  252, 
     8836     1886,  362, 1886,  363,  361,  364,  361,  463,  464,  339, 
     8837      251,  691,  395,  691,  305,  251,  390, 1886,  362, 1886, 
     8838      363,  306,  364,  410,  252,  150,  150,  252,  366,  361, 
     8839      452,  361,  251,  692,  468,  463,  464,  339,  150,  365, 
     8840      453,  395, 1886,  362, 1886,  363,  661,  364,  381,  382, 
     8841      383,  384,  251, 1886,  150,  150,  365,  366,  251,  452, 
     8842      385,  148,  468,  149,  411,  412,  150,  476,  453,  251, 
     8843 
     8844      367,  481,  150,  150,  385,  661,  662,  430,  251,  434, 
     8845      435,  365, 1886,  478,  238,  150,  436,  482, 1522,  431, 
     8846      226,  432,  411,  412,  433,  476,  226,  479,  367,  481, 
     8847      629,  150,  150,  385,  465,  662,  430,  434,  435,  457, 
     8848      495,  458,  478,  150,  436,  482,  346,  431,  466,  432, 
     8849      226,  398,  433,  483,  226,  479,  490,  459,  460,  401, 
     8850      486,  461,  491,  465,  404,  489,  488,  358,  457,  495, 
     8851      458,  493,  238,  484,  346,  238,  466,  485,  665,  398, 
     8852      588,  483,  588,  430,  490,  459,  460,  401,  486,  461, 
     8853      491,  349,  404,  489,  488,  431,  614,  432,  494,  493, 
     8854 
     8855      492,  615,  484,  239,  238,  239,  485,  665,  242,  589, 
     8856      115,  319,  430,  616,  246,  247,  248,  249,  501,  502, 
     8857      503,  504,  319,  431,  614,  432,  250,  494,  492,  615, 
     8858      505,  240,  508,  252,  252,  319,  242,  251,  589,  252, 
     8859      250,  616,  509,  251,  505,  319,  252,  252,  252,  617, 
     8860      252,  252,  251,  252,  506,  226,  251,  252,  593,  251, 
     8861      240,  508,  252,  252,  252,  252,  252,  252,  252,  250, 
     8862      509,  507,  252,  505,  252,  252,  252,  617,  252,  252, 
     8863      512,  252,  511,  506,  252,  594,  252,  593,  510,  252, 
     8864      668,  252,  252,  252,  252,  319,  252,  252,  252,  507, 
     8865 
     8866      251,  252,  513,  515,  519,  252, 1806,  514,  252,  512, 
     8867      511,  252,  252,  594,  115,  252,  510,  252,  598,  668, 
     8868      252,  252,  252,  516,  595,  252,  595,  252,  252,  252, 
     8869      513,  252,  515,  519,  252,  514,  252,  410,  633,  522, 
     8870      252,  517,  518,  252,  238,  618,  252,  598,  252,  252, 
     8871      252,  516,  520,  589,  252,  251,  252,  521,  252,  678, 
     8872      252,  252,  679,  252,  526,  251,  633,  522,  252,  517, 
     8873      518,  252,  252,  618,  252,  648,  252,  650,  523,  524, 
     8874      252,  520,  589,  252,  525,  252,  521,  527,  678,  252, 
     8875      252,  679,  252,  526,  252, 1808,  595,  252,  596,  252, 
     8876 
     8877      663,  252,  252,  648,  251,  650,  523,  524,  252,  529, 
     8878      226,  252,  525,  252,  591,  527,  252,  252,  226,  252, 
     8879      528,  252,  530,  252,  252,  589,  252,  635,  663,  635, 
     8880      532,  252,  636,  531,  425, 1379,  425,  529,  252,  252, 
     8881      629,  252,  533,  534,  115,  252,  252,  252,  528,  682, 
     8882      252,  530,  358,  252,  589,  252,  252,  252,  532,  538, 
     8883      252,  531,  349,  252,  252,  345,  252,  536,  548,  252, 
     8884      533,  534,  535,  252,  252,  252,  115,  537,  682,  613, 
     8885      427,  252,  427,  319,  619,  252,  252,  538,  319,  252, 
     8886      428,  252,  251,  252,  345,  536,  539,  548,  251,  251, 
     8887 
     8888      535,  252,  252,  664,  508,  537,  252,  613,  540,  252, 
     8889      541,  252,  619,  542,  251,  252,  584,  217,  584,  314, 
     8890      543,  544,  666,  252,  667,  539,  546,  545,  252,  252, 
     8891      251,  664,  252,  508, 1818,  252,  540,  238,  541,  551, 
     8892      252,  542,  252,  361,  252,  361,  252,  251,  543,  544, 
     8893      666,  252,  667,  547,  546,  545,  252,  362,  252,  252, 
     8894      252,  252,  549,  252,  251,  252,  252,  551,  252,  251, 
     8895      550,  252,  552,  251,  252,  554,  553,  555,  252,  251, 
     8896      252,  547,  252,  252,  669,  252,  328,  252, 1846,  603, 
     8897      252,  549,  252,  328,  252,  252,  226,  252,  550,  252, 
     8898 
     8899      552,  556,  252,  554,  553,  555,  252,  252,  252,  926, 
     8900      252,  252,  669,  252,  328, 1160,  557,  603, 1151,  558, 
     8901      252,  328,  559,  251,  252,  560,  252,  251,  252,  252, 
     8902      556,  252,  561,  565,  252,  563,  252,  252,  670,  571, 
     8903      671,  564,  562,  252,  557,  251,  252,  558,  251,  252, 
     8904      559,  252,  252,  560,  566,  252,  567,  651,  252,  651, 
     8905      384,  561,  565,  252,  563,  252,  670,  571,  671,  564, 
     8906      562,  252,  568,  569,  252,  251,  570,  252,  252,  252, 
     8907      576,  252,  251,  566,  676,  567,  572,  934,  252,  934, 
     8908      311,  312,  313,  314,  252,  252,  573,  935,  252,  251, 
     8909 
     8910      568,  569,  250,  577,  570,  252,  252,  252,  251,  576, 
     8911      252,  574,  676,  252,  572,  252,  250,  252,  252,  252, 
     8912      578,  579,  252,  252,  573,  575,  252,  645,  511,  645, 
     8913      252,  577,  252,  252,  677,  252,  608,  252,  251,  580, 
     8914      574,  683,  252,  646,  252,  250,  693,  252,  252,  578, 
     8915      579,  502,  502,  575,  252,  252,  511,  581,  252,  252, 
     8916      252,  582,  677,  252,  608,  583,  252,  647,  580,  323, 
     8917      683,  592,  252,  699,  700,  693,  252,  584,  217,  585, 
     8918      314,  601,  252,  701,  252,  148,  581,  597,  252,  705, 
     8919      582,  702,  328,  702,  583,  647,  150,  150,  972,  328, 
     8920 
     8921      252,  602,  699,  700,  252,  501,  502,  503,  504,  150, 
     8922      601,  701,  328,  703,  328,  604,  605,  505,  705,  328, 
     8923      328,  328,  328,  697,  698,  150,  150,  328,  606,  328, 
     8924      602,  505,  722,  625,  722,  625,  651,  150,  652,  384, 
     8925      328,  971,  328,  604,  605,  681,  626,  328,  626,  328, 
     8926      328,  697,  698, 1035,  723, 1035,  606,  328,  680,  718, 
     8927      505,  318,  318,  326,  318,  318,  318,  318,  318,  318, 
     8928      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     8929      607,  318,  318,  318,  318,  318,  252,  539,  718,  328, 
     8930      674,  660,  672,  252,  926,  673,  328,  704,  609,  540, 
     8931 
     8932      707,  541,  712,  252,  610,  713,  611,  675,  714,  607, 
     8933      252, 1677,  318,  318,  382,  252,  539,  328, 1678,  674, 
     8934      672, 1679,  252,  673,  328,  704,  609,  540,  707,  541, 
     8935      712,  252,  610,  713,  611,  675,  714,  342,  252,  342, 
     8936      318,  318,  318,  326,  318,  318,  318,  318,  318,  318, 
     8937      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     8938      721,  318,  318,  318,  318,  318,  612,  342,  382,  342, 
     8939      342,  121,  342,  354,  355,  354,  715,  599,  122,  123, 
     8940      920,  356,  357,  121,  600,  341,  148,  719,  343,  721, 
     8941      122,  123,  318,  318,  720,  612,  612,  150,  150,  612, 
     8942 
     8943      354,  355,  354,  725,  715,  599,  919,  724,  356,  357, 
     8944      150,  716,  600,  917,  624,  719,  361,  623,  361,  361, 
     8945      318,  361,  720,  731,  717,  612,  150,  150,  612,  916, 
     8946      362,  725,  363,  362,  628,  363,  724,  364,  150,  361, 
     8947      716,  361,  624,  636,  361,  623,  361,  638,  728,  638, 
     8948      728,  731,  717,  362,  636,  363,  410,  364,  362,  410, 
     8949      363,  123,  364,  639,  381,  382,  383,  384,  365,  587, 
     8950      729,  365,  680,  251,  631,  681,  385,  386,  387,  386, 
     8951      388,  655,  656,  657,  658,  144,  726,  251,  632,  144, 
     8952      385,  365,  640,  385,  146,  390,  365,  410,  146,  694, 
     8953 
     8954      411,  694,  631,  727,  370,  370,  425,  385,  425,  730, 
     8955      502,  732,  733,  734,  735,  726,  632,  370,  738,  385, 
     8956      640,  695,  736,  737,  741,  410,  742,  749,  411,  739, 
     8957      502,  750,  727,  370,  370,  696,  385,  740,  730,  732, 
     8958      733,  751,  734,  735,  754,  370,  684,  738,  684,  706, 
     8959      736,  737,  752,  741,  742,  749,  753,  739,  743,  750, 
     8960      745,  758,  745,  696,  247,  740,  744,  247,  685,  755, 
     8961      751,  756,  754,  686, 1033,  757, 1033,  706,  687,  226, 
     8962      759,  752,  746,  760,  761,  753,  762,  743,  688,  689, 
     8963      758,  763,  690,  483,  744,  747,  765,  755,  766,  756, 
     8964 
     8965      767,  768,  686,  757,  748,  769,  770,  687,  759,  226, 
     8966      226,  760,  761,  772,  762,  774,  688,  689,  775,  763, 
     8967      690,  483,  777,  747,  765,  674,  766,  778,  767,  768, 
     8968      779,  780,  748,  769,  770,  238,  251,  784,  771,  784, 
     8969      249,  772,  776,  717,  774,  251,  251,  775,  782,  238, 
     8970      782,  777,  251,  773,  674,  784,  778,  785,  249,  779, 
     8971      780,  251,  251,  786,  781,  786,  504,  771,  251,  796, 
     8972      776,  717,  501,  502,  503,  504,  786,  791,  787,  504, 
     8973      783,  773,  793,  251,  505,  251,  792,  251,  790,  251, 
     8974      251,  251,  251,  781,  245,  251,  875,  796,  505,  794, 
     8975 
     8976      251,  251,  901,  251,  410,  795,  791,  226,  764,  783, 
     8977      793,  797,  251,  613,  792,  803,  251,  790,  807,  808, 
     8978      809,  798,  251,  799,  875,  251,  801,  505,  794,  802, 
     8979      800,  901,  804,  795,  805,  806,  810,  691,  251,  691, 
     8980      797,  613,  251,  811,  803,  523,  251,  807,  808,  798, 
     8981      251,  799,  821,  817,  801,  251,  251,  802,  800,  692, 
     8982      804,  251,  805,  806,  251,  810,  251,  694,  251,  694, 
     8983      251,  251,  811,  523,  684,  251,  684,  702,  251,  702, 
     8984      825,  821,  817,  819,  820,  824,  251,  823,  392,  695, 
     8985      827,  392,  660,  822,  251,  251,  685,  251,  826,  703, 
     8986 
     8987      251,  812,  382,  818,  828,  834,  813,  382,  649,  825, 
     8988      251,  819,  820,  824,  829,  823,  814,  815,  827,  251, 
     8989      816,  831,  822,  251,  833,  251,  826,  251,  251,  830, 
     8990      812,  818,  828,  834,  832,  813,  251,  835,  722,  251, 
     8991      722,  837,  829,  838,  814,  815,  840,  251,  816,  836, 
     8992      831,  839,  251,  833,  728,  251,  728,  830,  251,  251, 
     8993      723,  842,  832,  841,  251,  835,  251,  251,  251,  847, 
     8994      837,  838,  251,  251,  251,  840,  729,  251,  836,  251, 
     8995      839,  846,  251,  251,  251,  745,  251,  745,  844,  842, 
     8996      845,  251,  841,  251,  843,  852,  644,  847,  849,  251, 
     8997 
     8998      848,  861,  251,  643,  850,  251,  853,  746,  860,  854, 
     8999      846,  251,  851,  863,  251,  642,  844,  855,  862,  845, 
     9000      856,  864,  843,  251,  852,  858,  869,  849,  848,  857, 
     9001      861,  867,  850,  641,  853,  251,  859,  860,  854,  866, 
     9002      851,  863,  319,  865,  323,  855,  878,  862,  856,  864, 
     9003      868,  870,  319,  858,  869,  629, 1035,  857, 1035,  595, 
     9004      867,  879,  877,  123,  859,  872,  899,  866,  621,  871, 
     9005      319,  865,  873,  217,  873,  314,  880,  877,  868,  870, 
     9006      873,  217,  874,  314,  311,  312,  313,  314,  589,  595, 
     9007      595,  595,  879,  872,  899,  881,  250,  871,  328,  883, 
     9008 
     9009      328,  118,  115,  328,  880,  886,  251,  894,  877,  328, 
     9010      250,  625,  921,  625,  921,  384,  887,  589,  589,  589, 
     9011      891,  319,  328,  881,  626,  893,  626,  328,  883,  328, 
     9012      896,  328,  328,  886,  323,  894,  878,  892,  328,  250, 
     9013      588,  217,  588,  218,  887,  888,  328,  589,  589,  891, 
     9014      148,  328,  882,  893,  889,  251,  900,  890,  902,  896, 
     9015      328,  150,  150,  903,  319,  892,  219,  220,  930,  589, 
     9016      221,  587,  222,  888,  150,  328,  247,  638,  895,  638, 
     9017      355,  251,  889,  476,  900,  890,  902,  620,  357,  247, 
     9018      150,  150,  903,  639,  496,  219,  220,  930,  589,  221, 
     9019 
     9020      115,  222,  150,  921,  251,  922,  384,  895,  898,  245, 
     9021      238,  476,  318,  318,  326,  318,  318,  318,  318,  318, 
     9022      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9023      318,  897,  318,  318,  318,  318,  318,  898,  904,  121, 
     9024     1886,  931, 1886,  645,  832,  645,  122,  123,  884,  121, 
     9025      918,  226,  927, 1886,  226, 1886,  122,  123,  115,  646, 
     9026      897,  121,  358,  318,  318,  361,  904,  361,  122,  123, 
     9027      931,  361,  832,  361,  118,  323,  884,  323,  918,  362, 
     9028      927,  349,  905,  629, 1043,  362, 1043,  249,  907,  628, 
     9029      906,  318,  318,  318,  326,  318,  318,  318,  318,  318, 
     9030 
     9031      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9032      318,  905,  318,  318,  318,  318,  318,  907,  906,  932, 
     9033      908,  885,  908,  365,  928,  361,  936,  361,  115,  929, 
     9034      638,  909,  638, 1886,  933, 1886,  910,  245,  911,  362, 
     9035      361,  937,  361,  318,  318,  361,  639,  361,  932,  645, 
     9036      885,  645,  928,  938,  362,  936,  363,  929,  364,  362, 
     9037      939,  363,  933,  364,  941,  646,  923,  387,  923,  658, 
     9038      937,  318,  912,  915,  144,  238,  940,  655,  656,  657, 
     9039      658,  938,  914,  146, 1418,  144, 1418,  942,  939,  385, 
     9040      943,  956,  365,  941,  146,  944,  945,  365,  923,  387, 
     9041 
     9042      924,  658,  915,  385,  940,  946,  144,  947,  955,  947, 
     9043      914,  386,  387,  386,  388,  146,  942,  957,  943,  144, 
     9044      956,  958,  959,  944,  945,  691,  960,  691,  146, 1886, 
     9045      961,  962,  385,  946,  963,  694,  955,  694,  964,  948, 
     9046      964,  966,  702,  967,  702,  967,  957,  692,  969,  958, 
     9047      970,  959,  976,  949,  960,  977,   68,  695,  961,  962, 
     9048      965,  975,  963,  978,  703,  968, 1886, 1886,  948,  982, 
     9049      966,  988, 1886,  981,  983, 1886,  969,  984,  970, 1886, 
     9050      976,  949,  684,  977,  684,  973,  709,  973,  987,  985, 
     9051      975,  985,  978,  994,  979,  710,  711,  982,  974,  988, 
     9052 
     9053      974,  980,  981,  983,  685,  995,  984,  974,  722,  950, 
     9054      722,  986, 1886,  989,  951,  989,  996,  987,  728,  991, 
     9055      728,  991,  994,  979,  952,  953, 1886,  997,  954,  980, 
     9056      723,  998, 1886,  999,  995,  990, 1000, 1001,  950, 1002, 
     9057      729,  992, 1003,  951,  996, 1004, 1013, 1005, 1009, 1005, 
     9058     1010, 1011,  952,  953,  993,  997,  954, 1006, 1012, 1014, 
     9059      998,  999, 1015,  974, 1000, 1001, 1016,  745, 1002,  745, 
     9060     1003, 1007, 1017, 1007, 1004, 1013, 1009, 1020, 1010, 1011, 
     9061     1021, 1018,  993, 1018, 1022, 1023, 1012, 1024, 1014,  746, 
     9062     1015, 1025, 1026, 1008, 1016, 1027, 1028,  226,  226,  226, 
     9063 
     9064     1032, 1017, 1036, 1019, 1034,  238, 1020,  238, 1886, 1021, 
     9065      251,  979,  941, 1022, 1023, 1024, 1886, 1422,  980, 1422, 
     9066     1025, 1026, 1037,  251, 1027, 1028, 1031, 1043, 1032, 1044, 
     9067      249, 1036, 1886, 1034, 1038,  251, 1038, 1029, 1886, 1030, 
     9068      979,  941,  251, 1042, 1039, 1041,  980, 1048, 1040, 1045, 
     9069     1037, 1045,  504, 1040,  251, 1031,  782,  238,  782, 1045, 
     9070      251, 1046,  504,  251, 1047, 1029,  251, 1030,  251, 1052, 
     9071      251, 1042,  251, 1041,  251, 1048, 1049,  251,  251, 1050, 
     9072      934,  251,  934,  251,  251,  251, 1054,  251,  783, 1051, 
     9073      935,  251, 1047,  251,  251, 1055,  251,  251, 1052,  947, 
     9074 
     9075      251,  947,  251, 1886, 1049, 1059,  251, 1053, 1050, 1056, 
     9076      251, 1057, 1061, 1058, 1060, 1054,  251,  783, 1051, 1064, 
     9077     1063, 1068,  251, 1069, 1055, 1886, 1062,  251, 1067,  251, 
     9078     1886, 1065, 1071,  251, 1059, 1053,  251, 1056, 1072, 1057, 
     9079     1061, 1058, 1886, 1060, 1070, 1066, 1075, 1064, 1063,  251, 
     9080     1068, 1073, 1069, 1078, 1062,  251, 1067, 1886, 1074, 1076, 
     9081     1065, 1071,  964,  251,  964,  251, 1072,  967,  251,  967, 
     9082     1079,  251, 1070, 1066, 1075, 1077,  251,  251, 1080, 1073, 
     9083     1081,  251, 1078,  251,  965,  251, 1074,  251, 1076,  968, 
     9084      251, 1085,  251, 1886, 1082,  985,  251,  985, 1079,  251, 
     9085 
     9086      251, 1083, 1084, 1077, 1087, 1086, 1080,  251, 1088, 1081, 
     9087      251, 1089,  251,  989,  251,  989, 1091,  986, 1886, 1085, 
     9088      991,  251,  991, 1082, 1093, 1094,  251, 1092,  251, 1083, 
     9089      251, 1084, 1100, 1087, 1086,  990,  251, 1088,  251, 1089, 
     9090      251, 1096,  992,  251,  251, 1091, 1007,  251, 1007, 1097, 
     9091     1102, 1099, 1093, 1094, 1098, 1090, 1092, 1095,  251,  251, 
     9092     1100, 1005,  251, 1005,  251, 1116, 1104, 1101, 1008, 1096, 
     9093     1110, 1006, 1103, 1886,  251,  251, 1105, 1097, 1102,  251, 
     9094     1099, 1886, 1098, 1090, 1106, 1886, 1095, 1108,  251, 1107, 
     9095     1018,  251, 1018, 1116, 1104, 1109, 1101, 1886, 1886, 1110, 
     9096 
     9097     1103, 1111, 1112,  319, 1105, 1139, 1113, 1114,  217, 1114, 
     9098      314, 1136, 1019, 1106,  323, 1108, 1119, 1886, 1107, 1114, 
     9099      217, 1115,  314, 1109,  595,  319, 1120,  595, 1886, 1120, 
     9100     1111, 1112, 1118,  319, 1139, 1113,  588,  217, 1117,  218, 
     9101     1136,  318, 1118,  318, 1121, 1118,  318,  318,  318,  318, 
     9102     1138, 1141, 1122,  589, 1118,  318,  589,  318, 1886,  323, 
     9103      115, 1119,  219,  220, 1886,  589,  221, 1161,  222, 1161, 
     9104      384, 1127, 1121, 1124, 1128,  148, 1167, 1123, 1138,  476, 
     9105     1141, 1122,  589, 1126, 1143,  589,  150,  150, 1035,  251, 
     9106     1035,  219,  220, 1129,  589,  221,  318,  222,  318,  150, 
     9107 
     9108     1127, 1124,  121, 1128,  361, 1167,  361,  476, 1886, 1148, 
     9109     1149, 1126,  318, 1143,  318,  150,  150,  318,  362,  318, 
     9110     1161, 1129, 1162,  384, 1134, 1886,  251,  150,  318,  318, 
     9111      326,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9112      318,  318,  318,  318,  318,  318,  318, 1130,  318,  318, 
     9113      318,  318,  318, 1134,  908, 1082,  908, 1886, 1038,  251, 
     9114     1038, 1131, 1083, 1165, 1886,  909, 1137, 1166, 1039, 1886, 
     9115     1886, 1168, 1040, 1169,  318, 1130,  318, 1040, 1886,  318, 
     9116      318,  908, 1886,  908, 1082, 1163,  387, 1163,  658, 1131, 
     9117     1083, 1165,  909,  144, 1137, 1166, 1886,  910, 1132, 1150, 
     9118 
     9119     1168, 1169,  146, 1125,  319, 1125, 1133,  318,  318, 1125, 
     9120      326, 1125,  318,  318,  318,  318,  318,  318,  318,  318, 
     9121      318,  318,  318,  318,  318,  318,  318, 1132,  318,  318, 
     9122      318,  318,  318,  912,  318, 1133,  318,  121,  908, 1174, 
     9123      908, 1886, 1171, 1175,  122,  123, 1886, 1176,  934,  909, 
     9124      934,  361, 1886,  361,  910, 1182,  911, 1177,  935,  318, 
     9125      318, 1886, 1135, 1185, 1146,  362, 1178,  363, 1174,  364, 
     9126     1171, 1175, 1163,  387, 1164,  658, 1176, 1179, 1180, 1153, 
     9127      144, 1172, 1186, 1172, 1182, 1177, 1005,  318, 1005,  146, 
     9128      912, 1135, 1185, 1146, 1178, 1254, 1006, 1254,  249, 1254, 
     9129 
     9130     1886, 1255,  249,  365, 1886, 1179, 1180, 1173, 1153, 1140, 
     9131     1154, 1186, 1154, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 
     9132     1140, 1140, 1140, 1140, 1155, 1140, 1156, 1140, 1157, 1140, 
     9133     1140, 1140, 1140, 1140, 1886, 1188, 1173,  655,  656,  657, 
     9134      658, 1181, 1187, 1189, 1191,  144, 1190, 1192, 1193,  385, 
     9135     1194, 1422, 1195, 1422,  146, 1196, 1197, 1199, 1197, 1886, 
     9136     1140, 1140, 1159,  385, 1188,  964, 1200,  964, 1886, 1181, 
     9137     1187, 1886, 1189, 1191, 1190, 1192, 1193, 1886, 1198, 1194, 
     9138      947, 1195,  947, 1886, 1196, 1199, 1886,  965, 1140, 1478, 
     9139     1209, 1478,  385, 1140, 1140, 1200, 1140, 1140, 1140, 1140, 
     9140 
     9141     1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 
     9142     1140, 1140, 1183, 1140, 1140, 1140, 1140, 1140,  967, 1209, 
     9143      967, 1201, 1256, 1201, 1256,  504, 1184, 1210, 1886, 1886, 
     9144     1211, 1212,  971, 1886, 1202, 1203, 1202, 1203, 1886, 1213, 
     9145      968, 1183, 1214, 1202, 1140, 1140,  972, 1215, 1204, 1886, 
     9146     1204,  973,  709,  973, 1184, 1218, 1210, 1204, 1211, 1219, 
     9147     1212,  710,  711, 1220,  974,  709,  974, 1213, 1221, 1216, 
     9148     1214, 1216, 1140,  974, 1206, 1207, 1215, 1208,  985, 1208, 
     9149      985, 1222,  989, 1218,  989,  991, 1208,  991, 1219, 1223, 
     9150     1225, 1217, 1220, 1224, 1226, 1227, 1229, 1221, 1228, 1202, 
     9151 
     9152      986, 1230, 1886, 1231,  990, 1232, 1007,  992, 1007, 1233, 
     9153     1222, 1234, 1236, 1204, 1886, 1235, 1237, 1238, 1223, 1225, 
     9154     1239, 1224, 1242, 1226, 1227, 1229, 1228, 1243, 1008,  974, 
     9155     1230, 1231, 1018, 1232, 1018, 1244, 1240, 1233, 1240,  226, 
     9156     1234, 1236, 1208, 1235, 1237, 1238, 1241, 1038, 1239, 1038, 
     9157      226, 1242, 1248, 1249, 1019, 1250, 1243, 1039, 1251,  238, 
     9158      238, 1040,  251, 1244,  251, 1038, 1040, 1038,  251,  251, 
     9159     1245, 1040,  251, 1040,  251, 1039, 1314, 1246,  328, 1040, 
     9160     1886, 1248, 1249, 1250, 1040, 1040, 1256, 1251, 1257,  504, 
     9161     1040, 1252, 1261,  328, 1886, 1260,  251, 1279, 1886, 1245, 
     9162 
     9163     1259, 1253,  251, 1258, 1314, 1886, 1246,  328, 1262, 1240, 
     9164      251, 1240, 1312,  217, 1312,  314, 1418,  251, 1418, 1241, 
     9165     1252, 1261,  328,  251, 1260,  251, 1279, 1265, 1259, 1253, 
     9166      251, 1258,  251,  251, 1264,  251, 1262, 1140, 1140,  251, 
     9167     1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 
     9168     1140, 1140, 1140, 1140, 1140, 1140, 1265, 1140, 1140, 1140, 
     9169     1140, 1140, 1264,  251, 1272, 1268, 1266,  251, 1269, 1271, 
     9170     1270,  251,  251,  251,  251,  251,  251,  251, 1197,  251, 
     9171     1197,  251,  251,  251,  251,  251,  251,  251, 1140, 1140, 
     9172     1267,  251, 1272, 1268, 1266, 1274, 1269, 1271, 1270, 1273, 
     9173 
     9174     1198, 1275, 1278,  251, 1478, 1280, 1478, 1276, 1284, 1283, 
     9175      251,  251, 1277, 1281, 1282,  251, 1140,  251, 1286, 1267, 
     9176      251, 1285, 1288,  251, 1274,  251,  251, 1287, 1273, 1290, 
     9177     1275, 1278, 1289, 1291, 1280, 1276,  251, 1284, 1283, 1294, 
     9178     1277, 1281, 1292, 1282, 1216,  251, 1216, 1286, 1293, 1285, 
     9179     1288, 1295,  251, 1297, 1299, 1287, 1296, 1290,  251,  251, 
     9180      251, 1289, 1291, 1298,  251,  251, 1217,  251, 1294,  251, 
     9181      251, 1292,  251,  251,  595,  251,  595, 1293, 1886,  251, 
     9182     1295, 1301, 1297, 1299, 1296, 1302, 1312,  217, 1313,  314, 
     9183      319,  328, 1298,  251, 1300, 1306,  595, 1308,  595, 1886, 
     9184 
     9185     1303, 1305, 1320,  589,  319, 1886, 1304, 1327, 1886, 1307, 
     9186     1301,  121, 1886, 1309, 1302, 1352, 1310, 1311, 1334, 1335, 
     9187      328, 1317, 1300,  328, 1306,  589, 1308, 1326, 1303, 1305, 
     9188     1320, 1315,  589,  328, 1304, 1321, 1327, 1307, 1322, 1886, 
     9189      323, 1309,  323, 1352, 1310, 1311,  588,  217,  588,  218, 
     9190     1317, 1353,  328,  328,  589, 1326,  148, 1328,  149, 1323, 
     9191     1315, 1886,  328,  908, 1321,  908, 1322,  150,  150, 1418, 
     9192      328, 1418,  219,  220,  909,  589,  221,  121,  222, 1353, 
     9193      150, 1324,  328,  121,  122,  123, 1328, 1354, 1323,  476, 
     9194      122,  123,  908, 1347,  908, 1347,  150,  150,  361,  328, 
     9195 
     9196      361,  219,  220,  909,  589,  221, 1886,  222,  150, 1324, 
     9197     1150, 1343,  362, 1343,  384, 1348, 1354,  476,  318,  318, 
     9198      326,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9199      318,  318,  318,  318,  318,  318,  318, 1886,  318,  318, 
     9200      318,  318,  318,  908,  912,  908, 1349, 1318, 1349,  625, 
     9201     1343,  625, 1344,  384,  909, 1375, 1355, 1375, 1197, 1886, 
     9202     1197, 1151,  626, 1356,  626,  361, 1357,  361, 1350,  318, 
     9203      318,  361,  361,  361,  361, 1886, 1318, 1376, 1886,  362, 
     9204     1198,  363, 1886,  628, 1355,  362,  362,  363,  363,  364, 
     9205      364, 1356, 1886, 1424, 1357, 1424,  504,  318,  318,  318, 
     9206 
     9207      326,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9208      318,  318,  318,  318,  318,  318,  318,  365,  318,  318, 
     9209      318,  318,  318,  365,  365, 1319, 1345,  387, 1345,  658, 
     9210     1345,  387, 1346,  658,  144, 1358, 1359, 1361,  144, 1360, 
     9211     1365, 1366, 1172,  146, 1172, 1367, 1886,  146, 1368,  318, 
     9212      318,  971, 1886, 1202, 1319, 1202, 1424, 1886, 1425,  504, 
     9213     1886, 1886, 1202, 1358,  121, 1359, 1361, 1360, 1173, 1365, 
     9214     1366,  122,  123, 1886, 1367, 1369, 1368,  318, 1316, 1316, 
     9215      326, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 
     9216     1316, 1316, 1316, 1316, 1316, 1316, 1316, 1173, 1316, 1316, 
     9217 
     9218     1316, 1316, 1316, 1369, 1370, 1371, 1372, 1886, 1373, 1374, 
     9219     1377, 1886, 1378, 1382, 1383, 1384, 1397, 1379, 1202, 1380, 
     9220     1385, 1380, 1386, 1387, 1216, 1388, 1216, 1388, 1380, 1316, 
     9221     1316, 1677, 1390, 1370, 1371, 1372, 1373, 1374, 1678, 1377, 
     9222     1378, 1679, 1382, 1383, 1384, 1397, 1217, 1389, 1385, 1886, 
     9223     1386, 1387, 1391, 1886, 1391, 1393, 1886, 1316, 1329, 1337, 
     9224     1390, 1337, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 
     9225     1329, 1329, 1329, 1338, 1329, 1339, 1329, 1340, 1329, 1329, 
     9226     1329, 1329, 1329, 1393, 1380, 1201, 1203, 1201, 1203, 1886, 
     9227     1394, 1392, 1395, 1398, 1395, 1399,  971,  972, 1202, 1204, 
     9228 
     9229     1202, 1204, 1381,  709, 1381, 1886, 1400, 1202, 1204, 1329, 
     9230     1329, 1342, 1206, 1207, 1396, 1208, 1886, 1208, 1394, 1392, 
     9231     1240, 1398, 1240, 1399, 1208, 1465,  217, 1465,  218, 1886, 
     9232     1241, 1362, 1886, 1362, 1400, 1886, 1401, 1329, 1329, 1329, 
     9233     1402, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 
     9234     1329, 1329, 1329, 1329, 1329, 1329, 1329, 1363, 1329, 1329, 
     9235     1329, 1329, 1329, 1202, 1204, 1401, 1403,  709, 1402,  251, 
     9236     1364, 1404, 1406, 1404, 1406, 1410, 1206, 1207, 1411, 1208, 
     9237     1208, 1208, 1408, 1412, 1408, 1413, 1363, 1416, 1208, 1329, 
     9238     1329,  226, 1417, 1419, 1407, 1403,  238, 1405, 1364, 1467, 
     9239 
     9240      238, 1472, 1484, 1410, 1409, 1886, 1886, 1411, 1347,  251, 
     9241     1347, 1412, 1473,  251, 1413, 1431, 1416, 1329, 1485, 1414, 
     9242     1417, 1486, 1419, 1474, 1420, 1886, 1405, 1421, 1467, 1472, 
     9243     1348, 1484, 1349,  251, 1349, 1465,  217, 1465, 1466, 1886, 
     9244     1473,  251,  251, 1431, 1208,  251,  251, 1485, 1414,  251, 
     9245     1486, 1474, 1886, 1420, 1350, 1427, 1421, 1329, 1329,  251, 
     9246     1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 
     9247     1329, 1329, 1329, 1329, 1329, 1329, 1428, 1329, 1329, 1329, 
     9248     1329, 1329,  251, 1427, 1430, 1432,  251,  251,  251, 1433, 
     9249      251, 1435,  251,  251, 1362,  251, 1362,  251,  251, 1375, 
     9250 
     9251      251, 1375,  251,  251, 1428, 1429, 1482,  251, 1329, 1329, 
     9252     1483, 1434, 1430, 1432,  251, 1439,  251, 1433, 1436, 1435, 
     9253     1437, 1376,  251,  251, 1440, 1441,  251, 1443,  251, 1445, 
     9254     1442,  251, 1886, 1438, 1429, 1482, 1329, 1444, 1446, 1483, 
     9255     1434,  251, 1449, 1447, 1439, 1451,  251, 1436,  251, 1437, 
     9256     1448, 1886,  251, 1440, 1441, 1443,  251, 1445, 1442,  251, 
     9257     1452, 1438,  251, 1450, 1456,  251, 1444, 1446, 1886, 1454, 
     9258     1449, 1886, 1447, 1451, 1388,  251, 1388, 1886, 1455, 1448, 
     9259     1391,  251, 1391, 1395,  251, 1395, 1458, 1462, 1452, 1459, 
     9260     1457, 1450, 1460, 1456, 1461, 1886, 1389, 1454, 1404,  251, 
     9261 
     9262     1404, 1406,  251, 1406, 1464, 1396, 1455, 1408,  251, 1408, 
     9263      319, 1475,  251, 1477, 1458, 1487, 1462, 1459, 1457, 1453, 
     9264      121, 1460, 1461, 1407, 1463, 1488, 1489,  122,  123, 1409, 
     9265     1886,  908, 1464,  908,  361, 1476,  361, 1490, 1469, 1475, 
     9266     1886, 1477,  909,  625, 1487,  625, 1886, 1453,  362, 1480, 
     9267      387, 1480,  658, 1463, 1488, 1489,  626,  144,  626, 1493, 
     9268     1418, 1528, 1418, 1528, 1476, 1490,  146, 1469, 1468, 1468, 
     9269      326, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 
     9270     1468, 1468, 1468, 1468, 1468, 1468, 1468, 1493, 1468, 1468, 
     9271     1468, 1468, 1468,  361,  361,  361,  361, 1480,  387, 1481, 
     9272 
     9273      658, 1347, 1349, 1347, 1349,  144, 1494,  362,  362,  363, 
     9274      363,  628,  364, 1495,  146,  361, 1496,  361, 1886, 1468, 
     9275     1468, 1886, 1886, 1348, 1350, 1528, 1379, 1528, 1380,  362, 
     9276     1380,  363, 1886,  364, 1494, 1886, 1527, 1380, 1527,  249, 
     9277     1886, 1824, 1495, 1824, 1496,  365,  365, 1468,  318,  318, 
     9278      326,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9279      318,  318,  318,  318,  318,  318,  318,  365,  318,  318, 
     9280      318,  318,  318, 1497, 1498, 1886, 1499, 1500, 1501, 1502, 
     9281     1886, 1503, 1504, 1375, 1506, 1375, 1507, 1508, 1513, 1388, 
     9282     1510, 1388, 1471, 1380, 1886, 1886, 1886, 1511, 1512,  318, 
     9283 
     9284      318, 1886, 1497, 1498, 1499, 1376, 1500, 1501, 1502, 1503, 
     9285     1504, 1389, 1506, 1886, 1886, 1507, 1508, 1513, 1510, 1886, 
     9286     1471, 1362, 1391, 1362, 1391, 1511, 1512,  318,  318,  318, 
     9287      326,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9288      318,  318,  318,  318,  318,  318,  318, 1491,  318,  318, 
     9289      318,  318,  318, 1505, 1517, 1505, 1395, 1514, 1395, 1515, 
     9290     1492, 1509, 1886, 1886, 1379, 1404, 1380, 1404, 1380, 1518, 
     9291     1520, 1381,  709, 1381, 1519, 1380, 1491, 1523, 1396,  318, 
     9292      318, 1206, 1207, 1517, 1208, 1514, 1208, 1515, 1492, 1509, 
     9293     1406, 1516, 1406, 1208, 1408, 1524, 1408,  238, 1518, 1520, 
     9294 
     9295      251,  251, 1519,  251,  251, 1523,  251,  318,  251,  251, 
     9296      251,  251, 1407,  251,  251,  251, 1409,  251,  251,  251, 
     9297     1516,  251, 1561, 1530, 1524,  251,  251, 1531, 1532, 1533, 
     9298     1534, 1380, 1537, 1535,  251, 1536,  251, 1526,  251, 1886, 
     9299     1542,  251, 1886,  251, 1543, 1544, 1886, 1538, 1539, 1208, 
     9300     1548, 1561, 1530, 1540, 1541, 1545, 1531, 1532, 1533, 1534, 
     9301      251, 1537, 1535,  251, 1536, 1526, 1550, 1547, 1549, 1542, 
     9302     1546,  251, 1559, 1543, 1544, 1538, 1539, 1552, 1551, 1548, 
     9303      251, 1540, 1541, 1545, 1563, 1555, 1562, 1553, 1558,  217, 
     9304     1558,  314, 1564,  251, 1550, 1547, 1574, 1549, 1546, 1554, 
     9305 
     9306     1559, 1575, 1557, 1556, 1886, 1552, 1551, 1566, 1568, 1566, 
     9307     1568,  384, 1563, 1555, 1577, 1562, 1553, 1567, 1565, 1576, 
     9308     1886, 1564, 1569,  143, 1569, 1574, 1578, 1554, 1579, 1575, 
     9309      144, 1557, 1556, 1570,  387, 1570,  388, 1580, 1581,  146, 
     9310     1582,  144, 1577, 1570,  387, 1570, 1571, 1565, 1576, 1583, 
     9311      146, 1572, 1584, 1586, 1578, 1585, 1579, 1587, 1588, 1591, 
     9312     1573, 1589, 1590, 1886, 1886, 1580, 1581, 1594, 1582, 1595, 
     9313     1592, 1596, 1592, 1601, 1597, 1602, 1597, 1583, 1599, 1600, 
     9314     1604, 1584, 1586, 1585, 1603,  226, 1587, 1588, 1591, 1589, 
     9315     1590, 1505, 1593, 1505, 1606, 1594, 1598, 1595, 1607, 1596, 
     9316 
     9317      238, 1601, 1379, 1602, 1380,  238, 1380, 1599, 1600, 1604, 
     9318      251, 1605, 1603, 1380, 1527,  251, 1527,  249, 1610,  251, 
     9319     1610,  504,  251, 1606,  251,  251,  251, 1607, 1609,  251, 
     9320      251,  251, 1608,  251, 1612,  251,  251, 1592,  251, 1592, 
     9321     1605,  251,  251,  251,  251, 1886, 1614,  251, 1597,  251, 
     9322     1597, 1613, 1633, 1620, 1630, 1646, 1630, 1609, 1624, 1593, 
     9323     1616, 1608, 1615, 1612, 1631, 1618, 1619, 1617, 1621, 1380, 
     9324     1598, 1623, 1622, 1625, 1627, 1614,  319, 1634, 1629, 1613, 
     9325     1633, 1886, 1620, 1626, 1646, 1628, 1886, 1624, 1616,  251, 
     9326     1615, 1886, 1643, 1618, 1619, 1617, 1886, 1621, 1886, 1623, 
     9327 
     9328     1622, 1625, 1632, 1627, 1886, 1634, 1629, 1558,  217, 1558, 
     9329      314, 1626, 1566, 1628, 1566, 1568, 1635, 1568,  384, 1569, 
     9330     1643, 1569, 1567, 1886, 1639,  387, 1639,  658, 1886, 1644, 
     9331     1645, 1632,  144, 1647, 1648, 1650,  146, 1651, 1640,  387, 
     9332     1640,  146, 1649,  251, 1654, 1635, 1641, 1655,  386,  387, 
     9333      386,  388, 1569,  143, 1569, 1642,  144, 1644, 1645, 1656, 
     9334      144, 1647, 1657, 1648, 1650,  146, 1651, 1658,  226,  146, 
     9335     1649, 1652, 1654, 1652, 1659, 1592, 1655, 1592, 1597, 1660, 
     9336     1597, 1653, 1661,  238, 1663, 1667,  238, 1656,  251,  251, 
     9337     1610, 1657, 1610,  504,  251, 1658,  251, 1593, 1886,  251, 
     9338 
     9339     1598,  251,  251, 1659, 1630, 1662, 1630,  251, 1660, 1665, 
     9340      251, 1661, 1663, 1667, 1631, 1652,  251, 1652, 1681, 1664, 
     9341      319, 1691, 1666, 1669, 1671, 1653, 1672, 1673, 1640,  660, 
     9342     1640, 1668, 1670, 1662, 1674, 1688, 1692, 1675, 1665, 1886, 
     9343     1682, 1683, 1682, 1684, 1886, 1642, 1681, 1664, 1637, 1691, 
     9344     1666, 1638, 1669, 1671, 1693, 1672, 1673, 1680, 1694, 1668, 
     9345     1670,  251, 1886, 1674, 1688, 1692, 1675, 1639,  387, 1639, 
     9346      658, 1685, 1686, 1685, 1687,  144, 1689, 1695, 1689, 1641, 
     9347     1696, 1652, 1693, 1652,  146, 1680, 1690, 1694, 1642, 1697, 
     9348     1652, 1653, 1652, 1698,  238, 1704,  238,  251,  251,  251, 
     9349 
     9350     1653, 1689,  251, 1689,  251, 1886, 1695, 1886, 1722, 1696, 
     9351     1886, 1690, 1723, 1708, 1709, 1710, 1711, 1689, 1697, 1689, 
     9352     1701, 1702, 1698, 1704, 1703, 1712, 1706, 1690, 1724, 1705, 
     9353     1726, 1707, 1713, 1714, 1713, 1715, 1722, 1677, 1683, 1712, 
     9354     1678, 1723, 1725, 1679, 1678, 1718,  226, 1679, 1719, 1701, 
     9355     1702, 1886, 1886, 1703, 1727, 1706, 1886, 1724, 1705, 1726, 
     9356     1707, 1682, 1683, 1682, 1684, 1729,  251, 1886, 1712, 1637, 
     9357     1725, 1886, 1638, 1682, 1683, 1682, 1684, 1685, 1686, 1685, 
     9358     1687, 1637, 1728, 1727, 1638, 1641,  251,  655,  656,  657, 
     9359      658, 1886,  238, 1729, 1642,  144, 1720,  251, 1720,  385, 
     9360 
     9361     1735, 1886, 1735, 1711,  146, 1754, 1886, 1733, 1886, 1721, 
     9362     1728, 1721, 1734,  385, 1708, 1709, 1710, 1711, 1721, 1731, 
     9363     1735,  319, 1736, 1711, 1732, 1753, 1712, 1714, 1713, 1714, 
     9364     1713, 1715, 1755, 1754, 1745, 1733, 1678, 1746, 1756, 1679, 
     9365     1712, 1734,  385, 1757, 1739, 1740, 1741, 1742, 1731, 1758, 
     9366      226, 1683, 1678, 1732, 1753, 1679, 1743, 1747, 1718,  251, 
     9367     1755, 1719, 1760, 1748, 1749, 1748, 1750, 1756, 1683, 1712, 
     9368     1743, 1718, 1757,  251, 1719, 1718,  251, 1758, 1719, 1720, 
     9369     1751, 1720, 1751,  238, 1782, 1747, 1767, 1759, 1767, 1711, 
     9370     1760, 1752, 1721, 1721, 1721, 1721, 1740,  319, 1783, 1743, 
     9371 
     9372     1886, 1721, 1721, 1772, 1886, 1764, 1773, 1765, 1767, 1761, 
     9373     1768, 1711, 1782, 1886, 1775, 1759, 1766, 1769, 1714, 1769, 
     9374     1742, 1776, 1784, 1785, 1777, 1678, 1886, 1783, 1679, 1739, 
     9375     1740, 1741, 1742, 1764, 1781, 1786, 1765, 1678, 1761, 1886, 
     9376     1679, 1743, 1714,  251, 1766, 1769, 1714, 1770, 1742, 1745, 
     9377     1784, 1785, 1746, 1678, 1714, 1743, 1679, 1778, 1779, 1778, 
     9378     1780, 1745, 1781, 1786, 1746, 1745, 1683,  226, 1746, 1748, 
     9379     1749, 1748, 1750, 1718, 1788,  238, 1719, 1718,  251, 1751, 
     9380     1719, 1751, 1802, 1791, 1743, 1682, 1683, 1682, 1684, 1792, 
     9381     1752, 1792, 1711, 1637, 1740, 1792, 1638, 1793, 1711, 1803, 
     9382 
     9383     1886, 1772, 1788, 1886, 1773, 1794, 1714, 1794, 1742, 1787, 
     9384     1802, 1791, 1789, 1678, 1886, 1790, 1679, 1794, 1714, 1795, 
     9385     1742, 1796, 1797, 1796, 1798, 1678, 1740, 1803, 1679, 1772, 
     9386     1805, 1775, 1773, 1772, 1886, 1886, 1773, 1787, 1776,  251, 
     9387     1789, 1777,  319, 1790, 1708, 1709, 1710, 1711, 1775, 1799, 
     9388     1740, 1799, 1800,  251, 1804, 1776, 1712, 1776, 1777, 1805, 
     9389     1777, 1778, 1779, 1778, 1780, 1739, 1740, 1741, 1742, 1745, 
     9390     1712, 1714, 1746, 1678, 1819, 1809, 1679, 1743, 1745, 1886, 
     9391     1810, 1746, 1804, 1811, 1801, 1811, 1711, 1811, 1820, 1812, 
     9392     1711, 1743,  226, 1813, 1714, 1813, 1742, 1886, 1886, 1712, 
     9393 
     9394     1886, 1678, 1819, 1809, 1679, 1813, 1714, 1814, 1742, 1810, 
     9395     1886, 1840, 1801, 1678, 1886, 1886, 1679, 1820,  238, 1822, 
     9396     1743, 1796, 1797, 1796, 1798, 1739, 1740, 1741, 1742, 1772, 
     9397     1886, 1740, 1773, 1678, 1821, 1886, 1679, 1743, 1772, 1740, 
     9398     1840, 1773, 1799, 1740, 1799, 1800, 1816, 1822, 1831, 1817, 
     9399     1776, 1743,  226, 1777, 1823, 1825, 1714, 1825, 1742,  319, 
     9400     1845, 1886, 1821, 1678, 1740,  238, 1679, 1825, 1714, 1826, 
     9401     1742, 1816, 1886, 1886, 1817, 1678, 1831,  226, 1679, 1886, 
     9402     1743,  238, 1823, 1886, 1824, 1886, 1824, 1886, 1886, 1845, 
     9403     1740, 1886, 1830, 1886, 1886, 1886, 1886, 1816, 1886, 1886, 
     9404 
     9405     1817, 1829, 1832, 1886, 1839, 1886, 1886, 1886, 1827, 1797, 
     9406     1827, 1828, 1833,  319, 1833, 1711, 1816, 1740, 1714, 1817, 
     9407     1830, 1886, 1849, 1841, 1816, 1745, 1886, 1817, 1746, 1829, 
     9408     1832, 1886, 1886, 1839, 1886, 1886, 1886, 1834, 1714, 1834, 
     9409     1715, 1827, 1797, 1827, 1828, 1678,  226, 1886, 1679, 1816, 
     9410     1849, 1841, 1817, 1838, 1833,  319, 1833, 1711, 1886,  226, 
     9411      238,  319, 1886, 1676, 1834, 1714, 1834, 1835, 1676, 1844, 
     9412     1677, 1676, 1837, 1676, 1676, 1679, 1886, 1678, 1676, 1676, 
     9413     1679, 1838, 1843, 1676, 1847, 1676, 1676, 1676, 1842, 1714, 
     9414     1842, 1742, 1713, 1714, 1713, 1715, 1678,  319, 1844, 1679, 
     9415 
     9416     1678, 1848, 1850, 1679, 1852, 1853, 1852, 1854,  238, 1886, 
     9417     1886, 1843, 1886, 1847, 1676, 1676, 1676, 1842, 1714, 1842, 
     9418     1742, 1855, 1856, 1855, 1857, 1678, 1886, 1886, 1679, 1848, 
     9419     1850, 1859, 1860, 1859, 1861, 1852, 1853, 1852, 1854, 1851, 
     9420     1886,  238, 1676, 1862, 1863, 1862, 1864, 1886, 1858, 1855, 
     9421     1856, 1855, 1857, 1867, 1856, 1867, 1857, 1859, 1860, 1859, 
     9422     1861, 1867, 1856, 1867, 1857,  238, 1886, 1851, 1870, 1862, 
     9423     1863, 1862, 1864,  238, 1886, 1886, 1858, 1862, 1863, 1862, 
     9424     1864, 1862, 1863, 1862, 1864, 1867, 1856, 1867, 1857, 1867, 
     9425     1856, 1867, 1857, 1886, 1886, 1886, 1874, 1870, 1867, 1856, 
     9426 
     9427     1867, 1857, 1876, 1877, 1876, 1878, 1886, 1875, 1876, 1877, 
     9428     1876, 1878, 1879, 1880, 1879, 1881, 1879, 1880, 1879, 1881, 
     9429     1879, 1880, 1879, 1881, 1886, 1874, 1879, 1880, 1879, 1881, 
     9430     1879, 1880, 1879, 1881, 1886, 1875,   66,   66,   66,   66, 
     9431       66,   66,   66,   66,   66,   66,   66,   66,   66,   66, 
    76339432       66,   66,   66,   66,   67,   67,   67,   67,   67,   67, 
    7634        67,   67,   67,   67,   67,   67,   67,   79, 1131,   79, 
    7635        79,   79,   79,   79,   79,   79,   79,   79,   79,   79, 
    7636        82,   82,   82,   82,   82,   82,   82,   82,   82,   82, 
    7637        82,   82,   82,   86,   86,   86,   86,   86,   86,   86, 
    7638        86,   86,   86,   86,   86,   86,   90,   90,   90,   90, 
    7639        90,   90,   90,   90,   90,   90,   90,   90,   90,  113, 
    7640  
    7641       113,  113,  113,  113,  113,  113,  113,  113,  189,  189, 
    7642       189,  189,  189,  189,  189,  189,  189,  189,  189,  189, 
    7643       189,  204,  204,  204,  204,  204,  204,  204,  204,  204, 
    7644       204,  204,  204,  204,  210,  210,  210,  210,  210, 1131, 
    7645       210,  210,  210, 1131,  210, 1131,  210,  231,  231,  231, 
    7646       231,  231,  231,  231,  231,  231,  231,  231,  231,  231, 
    7647        99, 1131, 1131, 1131, 1131, 1131, 1131, 1131,   99,  249, 
    7648       249, 1131,  249,  249, 1131,  249, 1131, 1131,  249,  249, 
    7649      1131,  249,  336,  336,  336,  336,  340,  340,  340,  340, 
    7650       340,  340,  340,  340,  340,  340,  340,  340,  340,  365, 
    7651  
    7652       365,  365,  365,  365,  365,  365,  365,  365,  365,  365, 
    7653       365,  365,  371,  371,  371,  371,  371,  371,  371,  371, 
    7654       371,  371,  371,  371,  371,  601,  601,  601, 1131,  601, 
    7655       601,  601,  601,  601,  601,  601,  601,  601,  685, 1131, 
    7656       685,  685,  685,  685,  685,  685,  685,  685,  685,  685, 
    7657       685,  688, 1131,  688,  688,  688,  688,  688,  688,  688, 
    7658       688,  688,  688,  688,  690,  690,  690,  690,  690,  690, 
    7659       690,  690,  690,  690,  690,  690,  690,  693,  693,  693, 
    7660       693,  693,  693,  693,  693,  693,  693,  693,  693,  693, 
    7661       695,  695,  695,  695,  695,  695,  695,  695,  695,  695, 
    7662  
    7663       695,  695,  695,  702, 1131,  702,  702,  702,  702,  702, 
    7664       702,  702,  702,  702,  702,  702,  778,  778,  778,  778, 
    7665       778,  778,  778,  778,  778,  778,  778,  778,  778,  786, 
    7666       786,  786,  786,  786,  786,  786,  786,  786,  786,  786, 
    7667       786,  786,  789,  789,  789,  789,  789,  789,  789,  789, 
    7668       789,  789,  789,  789,  789,  790, 1131,  790,  790,  790, 
    7669       790,  790,  790,  790,  790,  790,  790,  790,  793, 1131, 
    7670       793,  793,  793,  793,  793,  793,  793,  793,  793,  793, 
    7671       793,  794,  794,  794,  794,  794,  794,  794,  794,  794, 
    7672       794,  794,  794,  794,  796,  796,  796,  796,  796,  796, 
    7673  
    7674       796,  796,  796,  796,  796,  796,  796,  797,  797,  797, 
    7675       797,  797,  797,  797,  797,  797,  797,  797,  797,  797, 
    7676       800, 1131,  800,  800,  800,  800,  800,  800,  800,  800, 
    7677       800,  800,  800,  861,  861,  861,  861,  861,  861,  861, 
    7678       861,  861,  861,  861,  861,  861,  868,  868,  868,  868, 
    7679       868,  868,  868,  868,  868,  868,  868,  868,  868,  870, 
    7680       870,  870,  870,  870,  870,  870,  870,  870,  870,  870, 
    7681       870,  870,  901,  901,  901,  901,  901,  901,  901,  901, 
    7682       901,  901,  901,  901,  901,  954,  954,  954,  954,  954, 
    7683       954,  954,  954,  954,  954,  954,  954,  954, 1069, 1069, 
    7684  
    7685      1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 
    7686      1069,   13, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7687      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7688      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7689      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7690      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7691      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7692      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7693      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7694      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    7695  
    7696      1131 
     9433       67,   67,   67,   67,   67,   67,   67,   67,   67,   67, 
     9434       67,   67,  111,  111, 1886,  111,  111,  111,  111,  111, 
     9435      111,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9436      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9437 
     9438      114,  114,  114,  114,  114,  114,  114,  114,  120,  120, 
     9439      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9440      120,  120,  120,  120,  120,  120,  129, 1886, 1886, 1886, 
     9441     1886, 1886, 1886,  129, 1886,  129, 1886,  129,  129,  129, 
     9442      129,  129,  156,  156,  156,  156,  156,  225,  225,  225, 
     9443      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9444      225,  225,  225,  225,  225,  237,  237,  237,  237,  237, 
     9445      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9446      237,  237,  237,  244,  244,  244,  244,  244,  244,  244, 
     9447      244,  244,  244,  244,  244,  244,  244,  244,  244,  244, 
     9448 
     9449      244,  252, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9450     1886, 1886,  252,  252,  252,  252,  252,  318,  318,  318, 
     9451      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9452      318,  318,  318,  318,  318,  111,  111, 1886,  111,  111, 
     9453      111,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9454      111,  111,  111,  114,  114,  114,  114,  114,  114,  114, 
     9455      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9456      114,  352,  352,  352,  352,  352,  352,  352,  352,  352, 
     9457      352,  352,  352,  352,  352,  352,  352,  352,  352,  120, 
     9458      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9459 
     9460      120,  120,  120,  120,  120,  120,  120,  353,  353,  353, 
     9461      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
     9462      353,  353,  353,  353,  353,  129, 1886, 1886, 1886, 1886, 
     9463     1886, 1886,  129, 1886,  129, 1886, 1886,  129,  129,  129, 
     9464      129,  389,  389,  389,  389, 1886,  389,  389,  389,  389, 
     9465      389,  389, 1886,  389,  389, 1886, 1886,  389,  389,  156, 
     9466      156,  156,  156,  156,  477,  477,  477,  477,  477,  477, 
     9467      477,  477,  477,  477,  477,  477,  477,  477,  477,  477, 
     9468      477,  477,  225,  225,  225,  225,  225,  225,  225,  225, 
     9469      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9470 
     9471      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9472      237,  237,  237,  237,  237,  237,  237,  237,  244,  244, 
     9473      244,  244,  244,  244,  244,  244,  244,  244,  244,  244, 
     9474      244,  244,  244,  244,  244,  244,  499,  499,  499,  499, 
     9475      499,  499,  499,  499,  499,  499,  499,  499,  499,  499, 
     9476      499,  499,  499,  499,  500,  500,  500,  500,  500,  500, 
     9477      500,  500,  500,  500,  500,  500,  500,  500,  500,  500, 
     9478      500,  500,  586,  586,  586,  586,  586,  586,  586,  586, 
     9479      586,  586,  586,  586,  586,  586,  586,  586,  586,  586, 
     9480      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9481 
     9482      318,  318,  318,  318,  318,  318,  318,  318,  328,  328, 
     9483      328,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9484      328,  328,  328,  328,  328,  328,  111,  111, 1886,  111, 
     9485      111,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9486      111,  111,  111,  111,  114,  114,  114,  114,  114,  114, 
     9487      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9488      114,  114,  352,  352,  352,  352,  352,  352,  352,  352, 
     9489      352,  352,  352,  352,  352,  352,  352,  352,  352,  352, 
     9490      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
     9491      353,  353,  353,  353,  353,  353,  353,  353,  622,  622, 
     9492 
     9493      622,  622,  622,  622,  622,  622,  622,  622,  622,  622, 
     9494      622,  622,  622,  622,  622,  622,  120,  120,  120,  120, 
     9495      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9496      120,  120,  120,  120,  627, 1886, 1886, 1886, 1886, 1886, 
     9497     1886,  627, 1886,  627, 1886, 1886,  627,  627,  627,  627, 
     9498      129, 1886, 1886, 1886, 1886, 1886, 1886, 1886,  129, 1886, 
     9499      129, 1886,  129,  129,  129,  129,  129,  630,  630,  630, 
     9500      630,  653,  653,  653,  653,  653,  653,  653,  653,  653, 
     9501      653,  653,  653,  653,  653,  653,  653,  653,  653,  654, 
     9502      654,  654,  654,  654,  654,  654,  654,  654,  654,  654, 
     9503 
     9504      654,  654,  654,  654,  654,  654,  654,  659,  659,  659, 
     9505      659,  659,  659,  659,  659,  659,  659,  659,  659,  659, 
     9506      659,  659,  659,  659,  659,  389,  389,  389,  389, 1886, 
     9507      389,  389,  389,  389,  389,  389, 1886,  389,  389, 1886, 
     9508     1886,  389,  389,  156,  156,  156,  156,  156,  708,  708, 
     9509      708,  708,  708,  708,  708,  708,  708,  708,  708,  708, 
     9510      708,  708,  708,  708,  708,  708,  475, 1886, 1886, 1886, 
     9511     1886, 1886, 1886, 1886,  475,  475,  477,  477,  477,  477, 
     9512      477,  477,  477,  477,  477,  477,  477,  477,  477,  477, 
     9513      477,  477,  477,  477,  225,  225,  225,  225,  225,  225, 
     9514 
     9515      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9516      225,  225,  237,  237,  237,  237,  237,  237,  237,  237, 
     9517      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9518      244,  244,  244,  244,  244,  244,  244,  244,  244,  244, 
     9519      244,  244,  244,  244,  244,  244,  244,  244,  499,  499, 
     9520      499,  499,  499,  499,  499,  499,  499,  499,  499,  499, 
     9521      499,  499,  499,  499,  499,  499,  500,  500,  500,  500, 
     9522      500,  500,  500,  500,  500,  500,  500,  500,  500,  500, 
     9523      500,  500,  500,  500,  788,  788,  788,  788,  788,  788, 
     9524      788,  788,  788,  788,  788,  788,  788,  788,  788,  788, 
     9525 
     9526      788,  788,  789,  789,  789,  789,  789,  789,  789,  789, 
     9527      789,  789,  789,  789,  789,  789,  789,  789,  789,  789, 
     9528      252, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9529     1886,  252,  252,  252,  252,  252,  586,  586,  586,  586, 
     9530      586,  586,  586,  586,  586,  586,  586,  586,  586,  586, 
     9531      586,  586,  586,  586,  318,  318,  318,  318,  318,  318, 
     9532      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9533      318,  318,  328,  328,  328,  328,  328,  328,  328,  328, 
     9534      328,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9535      111,  111, 1886,  111,  111,  111,  111,  111,  111,  111, 
     9536 
     9537      111,  111,  111,  111,  111,  111,  111,  111,  114,  114, 
     9538      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9539      114,  114,  114,  114,  114,  114,  353,  353,  353,  353, 
     9540      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
     9541      353,  353,  353,  353,  120,  120,  120,  120,  120,  120, 
     9542      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9543      120,  120,  622,  622,  622,  622,  622,  622,  622,  622, 
     9544      622,  622,  622,  622,  622,  622,  622,  622,  622,  622, 
     9545      627, 1886, 1886, 1886, 1886, 1886, 1886,  627, 1886,  627, 
     9546     1886, 1886,  627,  627,  627,  627,  913, 1886, 1886, 1886, 
     9547 
     9548     1886, 1886, 1886, 1886,  913, 1886, 1886, 1886,  913,  913, 
     9549      913,  913,  913,  129, 1886, 1886, 1886, 1886, 1886, 1886, 
     9550     1886,  129, 1886,  129, 1886,  129,  129,  129,  129,  129, 
     9551      653,  653,  653,  653,  653,  653,  653,  653,  653,  653, 
     9552      653,  653,  653,  653,  653,  653,  653,  653,  654,  654, 
     9553      654,  654,  654,  654,  654,  654,  654,  654,  654,  654, 
     9554      654,  654,  654,  654,  654,  654,  925,  925,  925,  925, 
     9555      925,  925,  925,  925,  925,  925,  925,  925,  925,  925, 
     9556      925,  925,  925,  925,  659,  659,  659,  659,  659,  659, 
     9557      659,  659,  659,  659,  659,  659,  659,  659,  659,  659, 
     9558 
     9559      659,  659,  156,  156,  156,  156,  156,  708,  708,  708, 
     9560      708,  708,  708,  708,  708,  708,  708,  708,  708,  708, 
     9561      708,  708,  708,  708,  708,  709,  709,  709,  709,  709, 
     9562      709, 1886,  709,  709,  709,  709,  709,  709,  709,  709, 
     9563      709,  709,  709,  710,  710, 1886,  710,  710,  710,  710, 
     9564      710,  710,  710,  710,  710,  710,  710,  710,  710,  710, 
     9565      710,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9566      225,  225,  225,  225,  225,  225,  225,  225,  225,  237, 
     9567      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9568      237,  237,  237,  237,  237,  237,  237,  788,  788,  788, 
     9569 
     9570      788,  788,  788,  788,  788,  788,  788,  788,  788,  788, 
     9571      788,  788,  788,  788,  788,  789,  789,  789,  789,  789, 
     9572      789,  789,  789,  789,  789,  789,  789,  789,  789,  789, 
     9573      789,  789,  789,  318,  318,  318,  318,  318,  318,  318, 
     9574      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9575      318,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9576      328,  328,  328,  328,  328,  328,  328,  328,  328, 1140, 
     9577     1140, 1886, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 
     9578     1140, 1140, 1140, 1140, 1140, 1140, 1140,  111,  111, 1886, 
     9579      111,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9580 
     9581      111,  111,  111,  111,  111, 1142, 1142, 1886, 1142, 1142, 
     9582     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 
     9583     1142, 1142, 1142,  114,  114,  114,  114,  114,  114,  114, 
     9584      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9585      114, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 
     9586     1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,  120, 
     9587      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9588      120,  120,  120,  120,  120,  120,  120, 1147, 1147, 1147, 
     9589     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 
     9590     1147, 1147, 1147, 1147, 1147,  627, 1886, 1886, 1886, 1886, 
     9591 
     9592     1886,  627, 1886, 1886, 1886,  627, 1886,  627,  627,  627, 
     9593      627,  627, 1152, 1152, 1152, 1152,  913, 1886, 1886, 1886, 
     9594     1886, 1886, 1886, 1886,  913, 1886, 1886, 1886,  913,  913, 
     9595      913,  913,  913,  129, 1886, 1886, 1886, 1886, 1886, 1886, 
     9596     1886,  129, 1886,  129, 1886,  129,  129,  129,  129,  129, 
     9597     1158, 1158, 1886, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 
     9598     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,  925,  925, 
     9599      925,  925,  925,  925,  925,  925,  925,  925,  925,  925, 
     9600      925,  925,  925,  925,  925,  925, 1170, 1170, 1886, 1170, 
     9601     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 
     9602 
     9603     1170, 1170, 1170, 1170,  709,  709,  709,  709,  709,  709, 
     9604     1886,  709,  709,  709,  709,  709,  709,  709,  709,  709, 
     9605      709,  709,  710,  710, 1886,  710,  710,  710,  710,  710, 
     9606      710,  710,  710,  710,  710,  710,  710,  710,  710,  710, 
     9607      708,  708,  708,  708,  708,  708,  708,  708,  708,  708, 
     9608      708,  708,  708,  708,  708,  708,  708,  708, 1205, 1205, 
     9609     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 
     9610     1205, 1205, 1205, 1205, 1205, 1205,  225,  225,  225,  225, 
     9611      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9612      225,  225,  225,  225, 1247, 1247, 1247, 1247, 1247, 1247, 
     9613 
     9614     1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 
     9615     1247, 1247,  237,  237,  237,  237,  237,  237,  237,  237, 
     9616      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9617     1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 
     9618     1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,  318,  318, 
     9619      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9620      318,  318,  318,  318,  318,  318, 1316, 1316, 1316, 1316, 
     9621     1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 
     9622     1316, 1316, 1316, 1316,  328,  328,  328,  328,  328,  328, 
     9623      328,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9624 
     9625      328,  328, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 
     9626     1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 
     9627     1329, 1329, 1886, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 
     9628     1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1330, 1330, 
     9629     1886, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 
     9630     1330, 1330, 1330, 1330, 1330, 1330,  111,  111, 1886,  111, 
     9631      111,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9632      111,  111,  111,  111, 1331, 1331, 1331, 1331, 1331, 1331, 
     9633     1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 
     9634     1331, 1331,  114,  114,  114,  114,  114,  114,  114,  114, 
     9635 
     9636      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9637     1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 
     9638     1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333,  120,  120, 
     9639      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9640      120,  120,  120,  120,  120,  120, 1336, 1886, 1886, 1886, 
     9641     1886, 1886, 1336, 1886, 1886, 1886, 1886, 1886, 1336, 1336, 
     9642     1336, 1336, 1336, 1341, 1341, 1886, 1341, 1341, 1341, 1341, 
     9643     1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 
     9644     1341,  627, 1886, 1886, 1886, 1886, 1886, 1886,  627, 1886, 
     9645      627, 1886, 1886,  627,  627,  627,  627,  129, 1886, 1886, 
     9646 
     9647     1886, 1886, 1886, 1886, 1886,  129, 1886,  129, 1886,  129, 
     9648      129,  129,  129,  129,  630,  630,  630,  630, 1351, 1351, 
     9649     1886, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 
     9650     1351, 1351, 1351, 1351, 1351, 1351,  709,  709,  709,  709, 
     9651      709,  709, 1886,  709,  709,  709,  709,  709,  709,  709, 
     9652      709,  709,  709,  709,  710,  710, 1886,  710,  710,  710, 
     9653      710,  710,  710,  710,  710,  710,  710,  710,  710,  710, 
     9654      710,  710, 1206, 1206, 1886, 1206, 1206, 1206, 1206, 1206, 
     9655     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 
     9656     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 
     9657 
     9658     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,  225,  225, 
     9659      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
     9660      225,  225,  225,  225,  225,  225, 1415, 1415, 1415, 1415, 
     9661     1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 
     9662     1415, 1415, 1415, 1415,  237,  237,  237,  237,  237,  237, 
     9663      237,  237,  237,  237,  237,  237,  237,  237,  237,  237, 
     9664      237,  237, 1423, 1886, 1423, 1886, 1886, 1886, 1886, 1423, 
     9665     1886, 1886, 1423, 1423, 1423, 1423, 1423, 1423, 1426, 1426, 
     9666     1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 
     9667     1426, 1426, 1426, 1426, 1426, 1426, 1468, 1468, 1468, 1468, 
     9668 
     9669     1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 
     9670     1468, 1468, 1468, 1468,  318,  318,  318,  318,  318,  318, 
     9671      318,  318,  318,  318,  318,  318,  318,  318,  318,  318, 
     9672      318,  318, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 
     9673     1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 
     9674      328,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9675      328,  328,  328,  328,  328,  328,  328,  328,  111,  111, 
     9676     1886,  111,  111,  111,  111,  111,  111,  111,  111,  111, 
     9677      111,  111,  111,  111,  111,  111,  114,  114,  114,  114, 
     9678      114,  114,  114,  114,  114,  114,  114,  114,  114,  114, 
     9679 
     9680      114,  114,  114,  114,  120,  120,  120,  120,  120,  120, 
     9681      120,  120,  120,  120,  120,  120,  120,  120,  120,  120, 
     9682      120,  120, 1336, 1886, 1886, 1886, 1886, 1886, 1336, 1886, 
     9683     1886, 1886, 1886, 1886, 1336, 1336, 1336, 1336, 1336, 1479, 
     9684     1886, 1479, 1886, 1886, 1886, 1886, 1479, 1886, 1886, 1479, 
     9685     1479, 1479, 1479, 1479, 1479, 1529, 1886, 1529, 1886, 1886, 
     9686     1886, 1886, 1529, 1886, 1886, 1529, 1529, 1529, 1529, 1529, 
     9687     1529,  477,  477,  477,  477,  477,  477,  477,  477,  477, 
     9688      477,  477,  477,  477,  477,  477,  477,  477,  477, 1611, 
     9689     1611, 1611, 1611, 1611, 1636, 1636, 1886, 1636, 1636, 1636, 
     9690 
     9691     1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 
     9692     1636, 1636,  659,  659,  659,  659,  659,  659,  659,  659, 
     9693      659,  659,  659,  659,  659,  659,  659,  659,  659,  659, 
     9694     1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 
     9695     1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1717, 1717, 
     9696     1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 
     9697     1717, 1717, 1717, 1717, 1717, 1717, 1737, 1737, 1737, 1737, 
     9698     1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 
     9699     1737, 1737, 1737, 1737, 1738, 1738, 1738, 1738, 1738, 1738, 
     9700     1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 
     9701 
     9702     1738, 1738, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 
     9703     1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 
     9704     1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 
     9705     1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1771, 1771, 
     9706     1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 
     9707     1771, 1771, 1771, 1771, 1771, 1771, 1774, 1774, 1774, 1774, 
     9708     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 
     9709     1774, 1774, 1774, 1774, 1815, 1815, 1815, 1815, 1815, 1815, 
     9710     1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 
     9711     1815, 1815, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 
     9712 
     9713     1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 
     9714     1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 
     9715     1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1868, 1868, 
     9716     1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 
     9717     1868, 1868, 1868, 1868, 1868, 1868, 1871, 1871, 1871, 1871, 
     9718     1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 
     9719     1871, 1871, 1871, 1871, 1873, 1873, 1873, 1873, 1873, 1873, 
     9720     1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 
     9721     1873, 1873, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 
     9722     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 
     9723 
     9724     1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 
     9725     1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,   15, 1886, 
     9726     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9727     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9728     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9729     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9730     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9731     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9732     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     9733     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886 
     9734 
    76979735    } ; 
    76989736 
    7699 static yyconst flex_int16_t yy_chk[4102] = 
     9737static yyconst flex_int16_t yy_chk[9500] = 
    77009738    {   0, 
    77019739        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     
    77079745        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
    77089746        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
    7709         1,    1,    1,    1,    1,    1,    1,    1,    1,    2, 
    7710         2,    2,    2,   74,    8,    8,    8,    8,   10,   15, 
    7711  
    7712        15,   15, 1083,   14,   16,   16,   16,    2,    2,    2, 
    7713         2,    2,    2,    2,    2,    2,    2,   14,   70,   17, 
    7714      1081,   10,   74,   70,    2,    2,   71,   75,    2,    8, 
    7715         2,    8,   14,   17,   18,   19,   21,   15,   20,   22, 
    7716       551,    2,    2,  551, 1069,   14,   22,   22,   17,   19, 
    7717        10,   15,   20,    2,    2,   75,   80,    2,    8,    2, 
    7718         8,   17,   84,   23,   19,   30,   15,   20,   18,    2, 
    7719         2,   71,   24,   21,   26,   30,   22,   19,   81,   15, 
    7720        20,   25,   18,  116,   23,   80,   24,   21,   26,   30, 
    7721        22,   84,   28,   85,  100,   31, 1051,   18,   23,   71, 
    7722  
    7723       624,   24,   21,   26,   30,   22,   81,   25,  624,   31, 
    7724        18,   32,  116,   23,   24,   21,   26,   30,   22,   28, 
    7725        84,   25,  100, 1047,   31,   32,   23,   56,   56,   56, 
    7726        76,   76,   76,   28,  101,  105,   25,   31,  106,   85, 
    7727        32,  179,   69,   69,   69,   33, 1006,  179,   28,   25, 
    7728        27,   33,   27,   32,   77,   77,   77,   78,   78,   78, 
    7729      1000,   28,  101,  105,  914,   33,  106,   85,   27,   27, 
    7730        27,   27,   27,   27,   27,   27,   27,   27,   34,   69, 
    7731        33,   35,   35,   27,  120,   35,   41,   27,   27,   27, 
    7732       868,   35,   34,   33,   27,   41,   27,   27,   35,   35, 
    7733  
    7734        41,  862,   27,  123,   89,  861,   27,   34,   69,  796, 
    7735        35,   35,   27,  120,   35,   41,   27,   27,   27,   35, 
    7736        34,  114,   27,   41,   27,   27,   35,   35,   41,   88, 
    7737        27,   36,  123,   42,   27,   29,   36,   29,   29,   29, 
    7738        29,   29,   29,   29,   29,   29,   29,   42,  794,  114, 
    7739        36,   90,  337,   89,  337,   29,   29,   29,   90,   90, 
    7740        36,   88,   42,  115,  117,   36,  104,  786,   29,  121, 
    7741       122,   29,  126,   44,  109,   42,  104,   54,   36,   38, 
    7742        38,   89,   44,   38,   29,   29,   29,   44,  109,   38, 
    7743        88,  115,  117,   38,   38,  104,   29,  121,  122,   29, 
    7744  
    7745        37,  126,   44,  109,  104,   37,   54,   37,   38,   38, 
    7746        44,   37,   38,  785,   37,   44,  109,   38,   92,   37, 
    7747        54,   38,   38,  778,   37,   92,   92,  660,  777,   37, 
    7748       186,  186,  186,  660,   37,   54,   37,   43,  693,   37, 
    7749       132,   45,   37,  692,   43,   43,   45,   37,   54,   45, 
    7750       690,   43,   37,   39,  625,   45,   72,   72,   72,   39, 
    7751        45,   39,   39,  625,   39,   39,   43,   39,   72,  132, 
    7752        45,   39,   43,   43,  124,   45,  102,  689,   45,   43, 
    7753       689,  678,   39,   45,  211,  211,  211,   39,   45,   39, 
    7754        39,  102,   39,   39,   72,   39,  119,   49,   49,   39, 
    7755  
    7756        40,  664,  124,   40,  635,  102,   40,   40,   72,   40, 
    7757        46,  753,   49,  119,   40,   40,  128,  143,   46,  102, 
    7758       753,   46,   46,   72,   46,  119,   49,   49,  118,   40, 
    7759        46,  558,   40,  103,   40,   40,   72,   40,  118,   46, 
    7760        49,  119,   40,   40,  128,   47,  143,   46,  103,   46, 
    7761        46,   48,   46,   47,  129,   47,   48,  118,   46,   47, 
    7762        47,   52,  103,  130,  131,   48,  118,  133,   48,   52, 
    7763        48,   48,  661,  553,   47,   52,  103,  534,  661,  134, 
    7764        48,   47,  129,   47,  519,   48,  135,   47,   47,  137, 
    7765        52,  130,  131,   48,   95,  133,   48,   52,   48,   48, 
    7766  
    7767        50,   95,   95,   52,   50,   50,   51,  134,   50,  496, 
    7768        53,   51,   53,   51,  135,  487,   50,  137,  139,   50, 
    7769        50,  140,   53,   51,   53,   51,  224,  224,  224,   50, 
    7770       401,  399,  146,   50,   50,   51,  141,   50,  144,   53, 
    7771        51,   53,   51,   95,   50,   60,  139,   50,   50,  140, 
    7772        53,   51,   53,   51,   55,   55,   55,   55,   57,   57, 
    7773        58,  146,   55,  392,  141,   58,  144,  338,  138,  338, 
    7774       147,   95,   60,  390,  138,   57,   57,   57,   57,   57, 
    7775        57,   57,   57,   57,   57,  148,   60,  149,  159,   55, 
    7776        55,   65,   55,   55,   62,   55,  138,   58,  147,   65, 
    7777  
    7778        62,   60,  138,   62,   65,   65,   55,   55,   62,  365, 
    7779       150,   58,  362,  148,   60,  340,  149,  159,   55,   55, 
    7780        65,   55,   55,   62,   55,  151,   58,   65,   62,  336, 
    7781       247,   62,   65,   65,   55,   55,   62,   63,  150,   58, 
    7782        59,   91,   91,   91,   63,   63,   59,  244,  243,   91, 
    7783        91,   63,  242,  151,   59,  241,   59,   59,   59,   59, 
    7784        59,   59,   59,   59,   59,   59,   63,   99,   99,  142, 
    7785        94,  142,   63,   63,   59,   59,   59,   94,   94,   63, 
    7786        99,  152,  125,  125,  153,  154,  155,   59,  125,  157, 
    7787        59,  161,  213,  511,  163,  511,   99,   99,  164,  210, 
    7788  
    7789       166,  127,   94,   59,   59,   59,  127,  170,   99,  152, 
    7790       125,  125,  153,  154,  155,   59,  125,  157,   59,   61, 
    7791       161,  142,  163,   61,   61,  204,  164,   61,  166,  860, 
    7792       127,   94,  189,   61,  182,  127,  170,   61,   61,  158, 
    7793        64,  178,  158,  136,  165,   64,  145,   64,   61,  142, 
    7794       136,  165,   61,   61,  136,  171,   61,   64,  145,   64, 
    7795       145,   61,  182,  145,   64,   61,   61,  158,   87,   64, 
    7796       158,   86,  136,  165,   64,  145,   64,   82,  136,  165, 
    7797        67,  512,  136,  512,  171,   64,  145,   64,  145,  860, 
    7798        13,  145,   64,   73,   73,   73,   73,   73,   73,   73, 
    7799  
    7800        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7801        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7802        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7803        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7804        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7805        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7806        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7807        73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
    7808        73,   73,   98,  110,   98,  110,    7,  156,  110,  110, 
    7809       110,  110,  110,  110,  110,  110,  110,  110,  160,  366, 
    7810  
    7811       366,  366,  156,  183,  160,  172,  528,  168,  528,  169, 
    7812       173,  174,    0,  169,  173,   98,  156,  185,  168,   98, 
    7813       181,   98,  866,  530,  196,  530,   98,  160,   98,   98, 
    7814       156,  183,  160,  162,  172,  162,  168,  169,   98,  173, 
    7815       174,  169,    0,  173,   98,  185,  168,    0,   98,  181, 
    7816        98,  162,  162,  196,   98,  162,   98,   98,  176,  199, 
    7817       176,    0,  162,  191,  162,    0,   98,  108,  108,  108, 
    7818       108,  108,  108,  108,  108,  108,  108,  167,  180,  162, 
    7819       162,  184,  866,  162,  203,  108,  108,  199,  184,  192, 
    7820       200,  167,  180,  193,  167,  191,  176,  231,  108,  202, 
    7821  
    7822         0,  207,  215,    0,  231,  231,  167,  180,    0,  184, 
    7823       176,  187,  187,  203,  108,  108,  184,  208,  200,  167, 
    7824       180,  192,  167,    0,  191,  176,  108,  202,  187,  187, 
    7825       187,  187,  187,  187,  187,  187,  187,  187,  176,  188, 
    7826       197,  651,  193,  651,  239,  188,  207,  197,  222,  208, 
    7827       192,  215,  223,    0,    0,  188,  188,  188,  188,  188, 
    7828       188,  188,  188,  188,  188,  194,  198,  198,  197,  214, 
    7829       193,  194,  198,  239,  207,  197,  222,    0,  208,  215, 
    7830       223,  194,  194,  194,  194,  194,  194,  194,  194,  194, 
    7831       194,  195,  209,  225,  198,  198,  216,  195,    0,  240, 
    7832  
    7833       198,  214,  206,  206,  206,  195,  201,  195,  195,  195, 
    7834       195,  195,  195,  195,  195,  195,  195,  226,  201,  246, 
    7835       201,  225,  227,  201,  229,  195,  195,  209,  216,  221, 
    7836       214,  221,    0,    0,  258,  201,  234,  240,  195,  206, 
    7837       230,    0,  228,  234,  234,  226,  201,  246,  201,    0, 
    7838       652,  201,  652,    0,  195,  195,  209,  216,  221,    0, 
    7839       221,  245,  227,  258,    0,  240,  195,  229,  206,  217, 
    7840       217,  217,  217,  217,  217,  217,  217,  217,  217,  217, 
    7841       217,  217,  217,  217,  217,  217,  217,  217,  220,  219, 
    7842       227,  228,  230,  248,  245,  229,  254,  255,  217,  217, 
    7843  
    7844       217,  217,  217,  219,  237,  220,  232,  232,  232,  256, 
    7845       257,  237,  237,  259,  232,  232,    0,  220,  219,  228, 
    7846       230,  248,  245,    0,  254,  255,  233,  233,  233,  217, 
    7847       217,  219,    0,  220,  233,  233,  236,  256,  257,    0, 
    7848       238,  259,  238,  236,  236,  238,  238,  238,  238,  238, 
    7849       238,  238,  238,  238,  238,  260,  237,  217,  218,  218, 
    7850       218,  218,  218,  218,  218,  218,  218,  218,  218,  218, 
    7851       218,  218,  218,  218,  218,  218,  218,  261,  262,  236, 
    7852       378,  378,  378,  260,  237,    0,    0,  218,  218,  218, 
    7853       218,  218,  218,  251,  251,  251,  251,  251,  251,  251, 
    7854  
    7855       251,  251,  251,  263,  264,  261,  262,  236,  252,  252, 
    7856       252,  252,  252,  252,  252,  252,  252,  252,  218,  218, 
    7857       253,  218,  253,  547,  547,  547,    0,    0,  266,  267, 
    7858       253,  263,  264,  265,  268,  269,  265,    0,  270,  271, 
    7859       272,  273,  274,    0,    0,  266,  218,  250,  250,  250, 
    7860       250,  250,  250,  250,  250,  250,  250,  266,  267,  277, 
    7861       281,  265,  268,  269,  265,  250,  250,  270,  271,  272, 
    7862       273,  274,  276,  266,  276,  282,  283,  278,  250,  278, 
    7863         0,    0,  279,  279,  284,  285,  286,  285,  277,  281, 
    7864       287,    0,  289,  290,  250,  250,  291,  292,  288,  293, 
    7865  
    7866       288,  295,    0,  276,  282,  283,  250,  275,  278,  275, 
    7867       279,  279,  284,  294,  286,  299,  285,    0,  298,  287, 
    7868       289,  290,    0,  300,  291,  292,  294,  293,  302,    0, 
    7869       295,  296,  301,  296,  301,    0,  303,  297,  275,  297, 
    7870       304,  296,  294,  275,  299,  275,  298,  297,  275,    0, 
    7871       288,  300,  275,  306,  294,  275,  305,  302,  275,  275, 
    7872       308,    0,  275,  301,  303,  309,  310,  312,  304,  313, 
    7873       315,  311,  275,  316,  275,  296,  317,  275,  288,  311, 
    7874       275,  297,  306,  275,  305,  296,  275,  275,  318,  308, 
    7875       275,  297,  314,  309,  310,  319,  312,  313,  315,  311, 
    7876  
    7877       314,  316,  320,  296,  317,  321,  322,  311,  323,  297, 
    7878       324,  325,  326,  296,  328,  329,  327,  318,  327,  297, 
    7879       330,  314,  331,  332,  319,  333,  327,  334,  314,  335, 
    7880       339,  320,  341,  321,  342,  322,  323,  343,  324,  325, 
    7881       326,  344,  345,  328,  329,  346,  347,  352,  330,    0, 
    7882       331,  332,    0,  333,  351,  334,  363,  335,  339,  348, 
    7883       341,  348,  342,  353,    0,  343,  355,  356,  358,  344, 
    7884       345,  357,  359,  346,  376,  347,  369,  348,  348,  348, 
    7885       348,  348,  348,  348,  348,  348,  348,  349,  357,  869, 
    7886       352,  361,  351,  349,  363,  355,  356,  358,  371,    0, 
    7887  
    7888       357,  359,  376,  349,  349,  349,  349,  349,  349,  349, 
    7889       349,  349,  349,  350,  368,  353,  357,  370,  352,  350, 
    7890       361,  351,  377,  363,  379,  383,    0,  371,  369,  350, 
    7891       350,  350,  350,  350,  350,  350,  350,  350,  350, 1005, 
    7892         0,  360,  372,  353,  354,  364,  364,  364,  381,  869, 
    7893       354,  377,  379,  372,  360,  370,  369,  368,  354,  373, 
    7894       354,  354,  354,  354,  354,  354,  354,  354,  354,  354, 
    7895       360,  372,  374,  380,  384,  383,  382,  373,  354,  354, 
    7896         0,  372,  360,  375,  370,  368,  364,  406,  373,  385, 
    7897       398,  354,  374,  405,  375,  381,  385,  385,  653, 1005, 
    7898  
    7899       653,  374,  380,  383,    0,  373,  386,  354,  354,  382, 
    7900       384,    0,  375,  386,  386,  364,  406,  387,  398,  354, 
    7901       374,  405,  375,  381,  387,  387,  388,  388,  388,  388, 
    7902       388,  388,  388,  388,  388,  388,  408,  410,  382,  384, 
    7903       389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
    7904       402,  411,  402,  387,  413,    0,  386,  414,    0,  415, 
    7905       402,  416,  417,  418,  420,  408,  410,  421,  422,  423, 
    7906       424,  425,  426,  429,  426,  430,  431,    0,  432,  411, 
    7907       433,  435,  387,  413,  386,  436,  414,  415,  434,  416, 
    7908       417,  439,  418,  420,  442,  421,  422,  423,  424,  425, 
    7909  
    7910       437,  429,  437,  430,  434,  431,  432,  444,  433,  435, 
    7911       440,  446,  440,  426,  436,  447,  445,  434,  445,  439, 
    7912       450,  448,  442,  448, 1009,  451,  452,  426,  454,    0, 
    7913       457,  437,  434,  455,  456,  444,  458,  459,  460,  446, 
    7914       464,  440,  426,  458,  447,  463,  468,  445,  467,  450, 
    7915         0,  469,  448,  451,  452,  426,  427,  454,  427,  457, 
    7916       470,  455,  456,    0,  480,  458,  459,  460,  461,  464, 
    7917       461,  458,  465,  463,  465,  468,  467,  478,  461,  469, 
    7918       483,  472,  465,  472, 1009,  479,  481,  427,  470,  482, 
    7919       484,  475,  427,  480,  427,  485,  493,  427,  503,  475, 
    7920  
    7921       488,  427,    0,  489,  427,  478,  490,  427,  427,  483, 
    7922       491,  427,  472,  479,  481,    0,    0,  482,  484,    0, 
    7923       506,  427,  506,  427,  485,  493,  427,  503,  488,  427, 
    7924       475,  489,  427,  499,  490,  427,  427,    0,  491,  427, 
    7925       443,  443,  443,  443,  443,  443,  443,  443,  443,  443, 
    7926       443,  506,  443,  443,  443,  443,  443,  443,  443,  475, 
    7927       507,  499,  508,  509,  494,  500,  494,  500,  513,  443, 
    7928       443,  443,  443,  443,  494,  500,  514,  515,  516,  517, 
    7929       518,  523,  524,  655,  535,  655,  525,    0,  667,  507, 
    7930       667,  508,  509,  520,  529,  520,  527,  513,  563, 1031, 
    7931  
    7932       443,  443,  529,  540,  514,  531,  515,  516,  517,  518, 
    7933       537,  520,  520,  520,  520,  520,  520,  520,  520,  520, 
    7934       520,  521,  525,  529,  527,  545,  563,  521,  443,  565, 
    7935       523,  529,  524,  535,  531,    0,    0,  521,  521,  521, 
    7936       521,  521,  521,  521,  521,  521,  521,  522,    0,  538, 
    7937       539,  525,  540,  522,  545,  537,  568,  565,  523, 1031, 
    7938       524,  535,    0,  522,  522,  522,  522,  522,  522,  522, 
    7939       522,  522,  522,  526,  532,  536,  536,  536,    0,  526, 
    7940       540,  532,  548,  537,  568,  532,  539,  526,  541,  526, 
    7941       526,  526,  526,  526,  526,  526,  526,  526,  526,  538, 
    7942  
    7943       533,    0,  533,  532,  552,  550,  541,  526,  526,  532, 
    7944       533,  548,  561,  532,  533,  539,  536,  541,  542,    0, 
    7945       526,  543,  542,  554,  544,  543,  562,  538,  544,  566, 
    7946       554,  554,  569,  576,  541,  555,  526,  526,  550,  577, 
    7947       552,  561,  555,  555,  570,  536,  571,  542,  526,  573, 
    7948       543,  542,  574,  544,  543,  562,  575,  544,  566,  554, 
    7949         0,  569,  576,  581,  659,  659,  659,  550,  577,  552, 
    7950         0,  578,  570,  578,  571,    0,  641,  573,  641,  579, 
    7951       574,  580,    0,  582,  575,  583,  641,  584,  554,  564, 
    7952       564,  581,  564,  564,  564,  564,  564,  564,  564,  564, 
    7953  
    7954       564,  564,  564,  564,  564,  564,  564,  564,  579,  585, 
    7955       580,  582,  578,  586,  583,  584,  587,  588,  564,  564, 
    7956       564,  564,  564,  590,  592,    0,  578,  593,  594,  586, 
    7957       595,    0,  596,  597,  598,  608,  599,  585,  599,    0, 
    7958       602,  578,  586,  603,  587,  603,  588,  607,  613,  564, 
    7959       564,  590,  610,  592,  578,  593,  594,  586,  611,  595, 
    7960       596,  614,  597,  598,  608,  615,  616,  599,  602,  617, 
    7961       618,    0,  619,  620,  603,  607,  613,  564,  621,  622, 
    7962       623,  610,  626,    0,  627,  628,  630,  611,  632,  633, 
    7963       614,  634,  639,  615,  616,  636,  637,  638,  617,  618, 
    7964  
    7965       619,  640,  620,  644,  645,  646,  621,  646,  622,  623, 
    7966       654,  626,  627,  656,  628,  630,  632,  657,  633,  662, 
    7967       634,  639,  663,  636,  637,  638,  666,  668,  669,  640, 
    7968       669,  644,  645,  658,  670,  658,  646,  671,  672,  654, 
    7969       672,  676,  656,  658,  681,  657,  675,  658,  672,  674, 
    7970       683,  674,  672,  679,  677,  666,  668,  700,  663,  662, 
    7971       694,    0,  670,  674,  695,  680,  671,  694,  694,  680, 
    7972       696,  695,  695,  681,  701,  703,    0,  696,  696,  683, 
    7973       771,  738,  771,  738, 1082,  700,  675,  663,  662,  665, 
    7974       677,  738,  676,  679,  680,  665,    0,  704,  680,  706, 
    7975  
    7976       707,  708,  701,  665,  703,  665,  665,  665,  665,  665, 
    7977       665,  665,  665,  665,  665,  675,  709,    0,  710,  677, 
    7978       676,  711,  679,  665,  665,  704,  714,  706,  707,  708, 
    7979       715,  717,    0,  719,  721,    0,  665,  762,    0,  762, 
    7980       770,  781,  770,  781, 1082,  709,  710,  762,  770,  858, 
    7981       711,  858,  665,  665,  712,  714,  712,  722,  723,  715, 
    7982       717,  719,  724,  721,  665,  682,  682,  682,  682,  682, 
    7983       682,  682,  682,  682,  682,  682,  682,  682,  682,  682, 
    7984       682,  682,  682,  682,  725,  722,  723,  726,  727,  712, 
    7985       729,  724,  728,  730,  682,  682,  682,  682,  682,  731, 
    7986  
    7987       732,    0,  712,  733,  734,  735,  737,  735, 1084,  739, 
    7988       740,  741,  725,  742,    0,  743,  726,  727,  712,  729, 
    7989       728,  745,  730,  746,  752,  682,  682,  731,  756,  732, 
    7990       712,  733,  734,    0,    0,  737,  735,  739,    0,  740, 
    7991       741,  755,  742,  743,  757,  775,  775,  775,  833,  745, 
    7992       833,  746,  752,  682,  686,  686,  686,  756,  833,  686, 
    7993       686,  751,  686,  751,    0,    0,  686,  686, 1084,  755, 
    7994       686,    0,  757,  686,  686,  686,  686,  686,  686,  686, 
    7995       686,  686,  699,  699,  776,  699,  699,  699,  699,  699, 
    7996       699,  699,  699,  699,  699,  699,  699,  699,  699,  699, 
    7997  
    7998       699,  758,  759,  783,  760,  763,    0,  768,  773,  751, 
    7999       772,  699,  699,  699,  699,  699,  767,  774,  767,  779, 
    8000       782,  776,  784,  787,  780,  789,  791,  791,  791,  758, 
    8001       802,  759,  760,  810,  763,  768,  773,  751,  803,  772, 
    8002       783,    0,  699,  699,  804,  806,  774,  807,  779,  782, 
    8003       776,  767,  780,  808,  789,  797,  812,  798,  784,  802, 
    8004       787,  810,  797,  797,  798,  798,  864,  803,  864,  783, 
    8005       699,    0,    0,  804,  806,    0,  807,  811,    0,  811, 
    8006       767,  801,  808,  813,  812,  801,  815,  784,  816,  787, 
    8007       788,  788,  788,  788,  788,  788,  788,  788,  788,  788, 
    8008  
    8009       788,  788,  788,  788,  788,  788,  788,  788,  788,  817, 
    8010       801,  813,  811,  819,  801,  815,  816,  818,  820,  788, 
    8011       788,  788,  788,  788,  821,  811,  822,    0,  823,  824, 
    8012       825,  826,  827,    0,  828,  830,  831,  840,  817,  832, 
    8013      1085,  811,  819,  835,  836,  818,  842,  820,  842,  843, 
    8014       788,  788,  821,  811,  844,  822,  823,  824,  825,  826, 
    8015       846,  827,  828,  847,  830,  831,  840,  832,  834,  834, 
    8016       834,  835,  836,  851,  852,  851,  834,  843,  788,  834, 
    8017       853,  855,  844,  851,  854,  856,  854,  857,  846,  859, 
    8018       867,  865,  847,  863,  842,  870,  871,    0,  873,  874, 
    8019  
    8020      1085,  875,  876,  852,  878,  879,  880,  881,  853,  882, 
    8021       855,  883,    0,  884,  856,  857,  885,  889,  859,  854, 
    8022       865,  863,  842,  886,  870,  871,  873,  887,  874,  875, 
    8023       876,  888,  878,  879,  880,  881,  890,  882,  896,  867, 
    8024       883,  884,  892,  893,  894,  885,  889,  895,  854,  897, 
    8025       899,  886,  901,  901,  901,  887,  903,  903,  903,  888, 
    8026       901,  909,    0,  901,  890,  910,  896,  867,    0,  908, 
    8027       915,  892,  893,  894,  913,  916,  895,  897,  899,  902, 
    8028       902,  902,  917,  904,  904,  904,  918,  902,  919,  909, 
    8029       902,  904,  920,  910,  904,  905,  905,  905,  908,  915, 
    8030  
    8031       921,  922,  913,  905,  916,  924,  905,  925,  926,  927, 
    8032       917,  928,  929,  932,  918,    0,  919,  933,    0,  935, 
    8033       936,  920,  937,  938,  939,  941,  940,  942,  940,  943, 
    8034       922,  944,  945,  947,  924,  921,  940,  949,  951,  928, 
    8035       929,  932,  952,  925,  927,  926,  933,  935,    0,  936, 
    8036       937,    0,  938,  939,  941,  961,  942,  960,  943,  944, 
    8037       945,  947,    0,    0,  921,  949,  951,  953,  953,  953, 
    8038       965,  952,  925,  927,  926,  954,  954,  954,  970,  955, 
    8039       955,  955,  963,  954,  961,  960,  954,  955,  966,  973, 
    8040       955,  956,  956,  956,  967,  957,  957,  957,  965,  956, 
    8041  
    8042       969,  975,  956,  957,  971,  974,  957,  958,  958,  958, 
    8043       976,  963,  977,  980,  977,  958,  981,  966,  958,    0, 
    8044       982,  983,  977,  967,  970,  984,  985,  984,  985,  969, 
    8045       987,  989,  971,  991,  973,  984,  985,  974,  994,  976, 
    8046       992,  980,  995, 1008, 1007,  981,    0,  975,  982,  998, 
    8047       983,    0,  970,  996,  996,  996,  999, 1001,  987,  989, 
    8048      1013,  991,  973, 1016, 1014, 1015,  974,  994,  992, 1017, 
    8049      1019,  995,  997,  997,  997,  975, 1021, 1008,  998, 1007, 
    8050       997, 1032, 1011,  997, 1011,  999, 1001, 1012, 1013, 1012, 
    8051      1025, 1016, 1011, 1014, 1015, 1026, 1029, 1017, 1027, 1019, 
    8052  
    8053      1012, 1030, 1012, 1033, 1021, 1037, 1008, 1036, 1007, 1023, 
    8054      1023, 1023, 1024, 1024, 1024,    0, 1038, 1032, 1012, 1025, 
    8055      1024, 1039, 1042, 1024, 1026, 1034, 1027, 1034, 1045, 1030, 
    8056      1041, 1048, 1035, 1037, 1035, 1052, 1036, 1046, 1034, 1050, 
    8057      1034, 1029, 1056, 1035, 1038, 1035, 1032, 1035, 1033, 1059, 
    8058      1039, 1042, 1043, 1043, 1043, 1049, 1034, 1045, 1041, 1044, 
    8059      1044, 1044, 1053, 1035, 1053, 1046, 1055, 1044, 1058, 1029, 
    8060      1044, 1056, 1063, 1053, 1050, 1068, 1033, 1048, 1059, 1064, 
    8061      1065, 1052,    0, 1049, 1062, 1062, 1062, 1066, 1071, 1067, 
    8062         0, 1073, 1062,    0, 1055, 1062, 1058, 1074,    0, 1079, 
    8063  
    8064      1063, 1099, 1109, 1050, 1093, 1048,    0, 1064, 1065, 1052, 
    8065      1061, 1061, 1061, 1095,    0, 1061, 1061, 1067, 1061, 1073, 
    8066      1086, 1068, 1061, 1061, 1080, 1074, 1061, 1079, 1090, 1061, 
    8067      1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1066, 1071, 
    8068      1076, 1076, 1076, 1077, 1077, 1077,    0, 1094, 1086, 1068, 
    8069      1099, 1077, 1096, 1080, 1077, 1093, 1104, 1090, 1095, 1101, 
    8070      1102, 1105, 1109,    0, 1111,    0, 1066, 1071, 1078, 1078, 
    8071      1078, 1100, 1113, 1078, 1078, 1094, 1078, 1103, 1099, 1078, 
    8072      1078, 1078, 1106, 1093, 1078, 1104, 1095, 1078, 1078, 1078, 
    8073      1078, 1078, 1078, 1078, 1078, 1078, 1088, 1088, 1088, 1100, 
    8074  
    8075      1089, 1089, 1089, 1096, 1088, 1101, 1107, 1088, 1089, 1102, 
    8076      1108, 1089, 1105, 1103, 1110, 1111, 1112, 1114, 1106, 1115, 
    8077      1115, 1115, 1117, 1113, 1116, 1116, 1116, 1118, 1118, 1118, 
    8078      1123, 1096, 1126, 1101, 1119, 1119, 1119, 1102, 1107, 1108, 
    8079      1105, 1127, 1103, 1111, 1112,    0, 1110, 1106, 1121, 1121, 
    8080      1121, 1113, 1124, 1124, 1124, 1128, 1128, 1128, 1129, 1129, 
    8081      1129,    0,    0,    0, 1126,    0, 1123, 1107, 1114,    0, 
    8082         0, 1117,    0,    0,    0, 1110,    0,    0,    0,    0, 
    8083         0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    8084         0,    0, 1127, 1126,    0, 1123, 1114,    0,    0, 1117, 
    8085  
    8086         0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    8087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    8088      1127, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 
    8089      1132, 1132, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 
    8090      1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134,    0, 1134, 
     9747        2,    2,    2,    2, 1884,    8,    8,    8,    8,    9, 
     9748        9,    9,   10,   10,   10,   16,  102,   72,    9,   72, 
     9749 
     9750       17,   10,   17,   19,   21,   20,    2,    2, 1882,   16, 
     9751        2,    8,    2,    8, 1907, 1907,   70,   19,   21,   24, 
     9752       22,   70, 1881,    2,   16,  102,   24,   24, 1878,   17, 
     9753       20,  108,   19,   21,   22,    2,    2,   16,  104,    2, 
     9754        8,    2,    8,   17,   20,   19,   21,   24, 1873,   22, 
     9755       27,    2,    6,    6,    6,    6,   26,   71,   17,   20, 
     9756      108,   24,   22,   28,   32,  112,  104,   27, 1871,  109, 
     9757       26,   17,   20,   33,   32, 1868,   24,   28,    6,    6, 
     9758     1865,   27,    6,  120,    6,   26,  113,   33,   32,   24, 
     9759      120,  120,   28,   71,  112,    6,   27,  109,   26,  110, 
     9760 
     9761     1864,  110,   33,   32,   98,   28,   98,    6,    6,   27, 
     9762      243,    6,  243,    6,  113,   33,   32,   59,   59,   59, 
     9763       59,   71,   98,    6,   11,   11,   11,   11,   11,   11, 
     9764       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9765       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9766       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9767       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9768       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9769       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9770       11,   11,   11,   11,   11,   11,   11,   11,   11,   11, 
     9771 
     9772       11,   11,   11,   11,   12,   12,   12,   12,   34,   23, 
     9773       23,   23,   23,  116, 1861,   34,   12,  100,  150,  100, 
     9774      150,  316,   12,  150, 1857,   36,   25,  158,   25,   34, 
     9775       12,   12,   36,  116,   12,  100,   12,  316,   23,   25, 
     9776      106,   25,  106,   25,   34,  135,   36,   12,  118,  118, 
     9777      118,  118,   23,  136,   44,   25,  158,   34,  106,   12, 
     9778       12,   36,  116,   12,  107,   12,  107,   23,   44,   25, 
     9779      590, 1854, 1810,  135,   36,   12,   14,   14,   14,   14, 
     9780       23,  136,  107,   44,   25, 1809,  590,   30,   30,   30, 
     9781      809, 1788,  162,  107,   14,   30,   44,   25,   30,   31, 
     9782 
     9783      137,   31,   14,   14,   30,  140,   14,  809,   14,   30, 
     9784       31,   31,   31,   35,   35,  137,   30,  122,   83,   14, 
     9785       35,  162,  107,   31,  122,  122,   31,   52,   52,  137, 
     9786       30,   14,   14,  140,   35,   14,  141,   14,  165,   31, 
     9787       31,   31,   52,  137,  168,   30,   83,   14,   29,   35, 
     9788       29,   31,   37,  173,   31,   37,   52,   52,   30,   57, 
     9789       83,   37,   35,  190,  141,  117,   29,  165,   37,   37, 
     9790       52,  202,   29,  168, 1414,   83,   29,   29,   29,   57, 
     9791       61,   37,  173,   29,   37,   29,   29,  905,   83,   37, 
     9792      905,   29,  190,   57,  159,   29,   37,   37,   61,   82, 
     9793 
     9794      202,   29,  117,   82, 1764,   29,   29,   29,   57,   82, 
     9795       38,   29,   61,   29,   29,   38,   40,   40,   38,   29, 
     9796       40,   57,  159,   29,   43, 1414,   40,   61,   82,   38, 
     9797      117,   40,   82,   43,   69,   69,   69,   82,   43,   38, 
     9798       61,   47,   47, 1762,   38,   40,   40,   38,  775,   40, 
     9799      775,   47,  160,   43,   40,  161,   47,   38,   39,   40, 
     9800      163,   43,   69,   39,   48,   39,   43,   45, 1738,   39, 
     9801       47,   47,   39,   48,   45,   45,   45,   39,   48,   47, 
     9802      160,   45,   39,  161,   47,   60,  164,   39,  163,  428, 
     9803       60,   69,   39,   48,   39,  208,   45,   39,  428,  428, 
     9804 
     9805       39,   48,   45,   45,   45,   39,   48, 1737, 1731,   45, 
     9806       39,   41,   46,   60,  164,   46, 1712,   41,  166,   41, 
     9807       41, 1711,   41,   41,  208,   41,   46,   60,  125,   41, 
     9808      121,  121,  121,   85,  138,  125,  125,   85,  121,  121, 
     9809       41,   46,   60,   85,   46,   41,  166,   41,   41,  138, 
     9810       41,   41,  124,   41,   46,   60, 1706,   41,   42,  124, 
     9811      124,   42,   85,  138,   42,   42,   85,   42,  125,   49, 
     9812       50,   85,   42,   42,   49,  124,  139,  138,   50, 1703, 
     9813       50,   49,  170,   49,   50,   50,  139,   42,   49,   49, 
     9814       42,  210,   42,   42,  172,   42,  125,  211,   49,   50, 
     9815 
     9816       42,   42, 1420,   49,  124,  139,   50,   51,   50,   49, 
     9817      170,   49,   50,   50,  139, 1143,   49,   49, 1143,   51, 
     9818      210,   51,  172, 1687,   51,   53,  211,   51,  174,   53, 
     9819       53,   75,   75,   75,   75,  246,   51,  246,  246,   53, 
     9820       99,   54, 1675,   75,   53,   53,   54,   51,   54,   51, 
     9821     1674,   99,   51, 1420,   53,   51,  174,   75,   53,   53, 
     9822       54, 1669,   79,  126,  175,  126,   55,   53,   99,   56, 
     9823       54,   56,   53,   53,   55,   54,  126,   54,  126,   55, 
     9824       55,   56,   99,   56, 1668,  317,   75,  317,   54,   79, 
     9825       79, 1567,  175,   79, 1567,   55,  212,   99,   56,   79, 
     9826 
     9827       56,  176,   55,  317,   79,   77,  178,   55,   55,   56, 
     9828       99,   56,   58,   58,   58,   58,   62,   63,   79,   79, 
     9829       62,   62,   79,   63,   62,  212,   63,   79,   77,  176, 
     9830       62,   63,   79,   77,  178,   62,   77,  214,   58,   58, 
     9831     1469,   58,   58, 1663,   58,   62,   63,   77,  220,   62, 
     9832       62,   63, 1642,   62,   63,   58, 1635,   77,   62,   63, 
     9833     1662,  157,   77,   62, 1627,   77,  214,   58,   58,   65, 
     9834       58,   58,   64,   58,   65,   77,   65,  220,  157,   64, 
     9835       64,   64,  127,   58,  127,   76,   64,   94,   65,   94, 
     9836      157, 1469,   94,   65,   94,  127,  213,  127,   65, 1626, 
     9837 
     9838      213,   64,  179,   65, 1624,   65,  157,   64,   64,   64, 
     9839       76, 1662,  177,   76,   64,   94,   65,   94, 1622,   76, 
     9840       94,   65,   94,  177,   81,  213,   76,   76,   81,  213, 
     9841      179,   81,   81,  180,   81,  142,  142,  142, 1618,   76, 
     9842       81,  177,   76,  142,  133,  181,  133,   76,  427, 1615, 
     9843      427,  177,  142,   81,   76,   76,   78,   81,  427,   81, 
     9844       81,  180,   81,  777, 1614,  777,   86,   87,   81,  182, 
     9845       86,   87,  133,  181,  185, 1552,   86,   87,   91,   78, 
     9846     1636,  133,   91, 1636,   78,  230,   78,  183,   91,  183, 
     9847       78,  133,   84,   78,  188,   86,   87,  182,   78,   86, 
     9848 
     9849       87,  133,  185,   78,   86,   87, 1551,   91,   78,  133, 
     9850      189,   91,  192,   78,  230,   78,   91, 1680,   78,  133, 
     9851       84,   78,  188, 1547,  193,  369,   78,   84,   84,   84, 
     9852      183,   78,   80, 1701,   84,  191,   80,  134,  189,   80, 
     9853      192,   80,   80,  191,   80,   80,  134,  134,  340,   84, 
     9854      340,   80,  193,   89,  369,   84,   84,   84,  183,  134, 
     9855     1638,   80,   84, 1638,  191,   80,  340,   80, 1680,   80, 
     9856       80,  191,   80,   80,   88,  134,  134,  194,   88,   80, 
     9857      195,   89,   88, 1546, 1701,   96,   88,  134,   88,   89, 
     9858     1545,   89,   90,   96,   88,   89,   89,  169, 1543, 1536, 
     9859 
     9860      196,  371,  169,   88,   90,  194,   90,   88,  195,   90, 
     9861       89,   88,   90,   96,   88,  198,   88,   89,   93,   89, 
     9862      197,   90,   88,   89,   89,   92,  169,   96,  196,   92, 
     9863      371,  169,   90,   92,   90,  197,   95,   90, 1531,   92, 
     9864       90,   93,   96,  198,   92,   92,   93,  708,   93,  197, 
     9865      217,  217,  217,  217,   92,   96,  708,  708,   92, 1468, 
     9866       93,  103,   92,  197,   95,  103,   95,   92,  103, 1466, 
     9867       93,  103,   92,   92,  204,   93,   95,   93,   95,   97, 
     9868       97,   97,   97,  201,  144,  144,  144,  144,   93,  201, 
     9869      103,   97,  144,   95,  103,   95,  103,  167,  167,  103, 
     9870 
     9871      199,  144,  204,  199,   95,   97,   95,  224,  224,  224, 
     9872      224, 1461,  201,  226,  226,  226,  226,  201,  248, 1460, 
     9873      248,  248,  353, 1205, 1458,  167,  167, 1455,  199,  353, 
     9874      353,  199, 1205, 1205,   97,  101,  101,  101,  101,  101, 
     9875      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9876      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9877      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9878      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9879      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9880      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9881 
     9882      101,  101,  101,  101,  101,  101,  101,  101,  101,  101, 
     9883      101,  101,  101,  101,  101,  105,  356,  129,  184,  129, 
     9884      184, 1452,  105,  356,  356, 1023,  105, 1023,  184,  105, 
     9885      129,  129,  129,  129,  130,  129,  130,  205,  206,  105, 
     9886     1449,  415,  184,  415,  105, 1448,  148,  130,  130,  130, 
     9887      130,  105,  130,  171,  105,  148,  148,  105,  130,  131, 
     9888      200,  131, 1447,  415,  209,  205,  206,  105,  148,  129, 
     9889      200,  184,  131,  131,  131,  131,  393,  131,  143,  143, 
     9890      143,  143, 1441,  216,  148,  148,  130,  130, 1435,  200, 
     9891      143,  149,  209,  149,  171,  171,  148,  216,  200, 1431, 
     9892 
     9893      131,  221,  149,  149,  143,  393,  394,  186, 1426,  187, 
     9894      187,  131,  216,  219,  242,  149,  187,  222, 1416,  186, 
     9895      229,  186,  171,  171,  186,  216, 1415,  219,  131,  221, 
     9896     1342,  149,  149,  143,  207,  394,  186,  187,  187,  203, 
     9897      242,  203,  219,  149,  187,  222,  223,  186,  207,  186, 
     9898      227,  207,  186,  223,  228,  219,  233,  203,  203,  231, 
     9899      229,  203,  234,  207,  232,  232,  231, 1335,  203,  242, 
     9900      203,  236,  240,  227,  223,  241,  207,  228,  397,  207, 
     9901      315,  223,  315,  235,  233,  203,  203,  231,  229,  203, 
     9902      234, 1332,  232,  232,  231,  235,  345,  235,  241,  236, 
     9903 
     9904      235,  346,  227,  239,  239,  239,  228,  397,  240,  315, 
     9905     1331, 1316,  235,  347,  247,  247,  247,  247,  251,  251, 
     9906      251,  251, 1315,  235,  345,  235,  247,  241,  235,  346, 
     9907      251,  239,  254,  255,  254,  321,  240, 1311,  315,  252, 
     9908      247,  347,  255, 1306,  251,  322,  252,  252,  252,  348, 
     9909      255,  254, 1305,  252,  253, 1787, 1304,  253,  321, 1302, 
     9910      239,  254,  255,  254,  253,  253,  253,  257,  252,  247, 
     9911      255,  253,  256,  251,  252,  252,  252,  348,  255,  254, 
     9912      258,  252,  257,  253,  257,  322,  253,  321,  256,  256, 
     9913      400,  259,  253,  253,  253,  327,  257,  258,  260,  253, 
     9914 
     9915     1287,  256,  259,  261,  264,  261, 1787,  260,  259,  258, 
     9916      257,  262,  257,  322,  350,  260,  256,  256,  327,  400, 
     9917      259,  264,  261,  262,  323,  258,  323,  260,  262,  266, 
     9918      259,  263,  261,  264,  261,  260,  259,  267,  368,  266, 
     9919      262,  263,  263,  260, 1789,  350,  266,  327,  263,  264, 
     9920      261,  262,  265,  323,  265, 1274,  262,  265,  266,  408, 
     9921      263,  267,  409,  269,  269, 1266,  368,  266,  268,  263, 
     9922      263,  265,  270,  350,  266,  378,  263,  380,  267,  267, 
     9923      269,  265,  323,  265,  268,  268,  265,  270,  408,  270, 
     9924      267,  409,  269,  269,  272, 1789,  324,  268,  324,  265, 
     9925 
     9926      395,  270,  271,  378, 1263,  380,  267,  267,  269,  272, 
     9927     1247,  272,  268,  268,  324,  270,  273,  270, 1246,  271, 
     9928      271,  274,  273,  272,  275,  324,  276,  370,  395,  370, 
     9929      274,  271,  370,  273,  279, 1206,  279,  272,  274,  272, 
     9930     1159,  275,  275,  276,  351,  273,  281,  271,  271,  412, 
     9931      274,  273, 1149,  275,  324,  276,  278,  277,  274,  281, 
     9932      279,  273, 1145,  281,  286,  344,  274,  278,  286,  275, 
     9933      275,  276,  277,  278,  277,  281, 1144,  279,  412,  344, 
     9934      280,  286,  280, 1801,  351,  278,  277,  281, 1122,  279, 
     9935      280,  281, 1112,  286,  344,  278,  282,  286, 1111, 1098, 
     9936 
     9937      277,  278,  277,  396,  280,  279,  280,  344,  282,  286, 
     9938      282,  283,  351,  282, 1095,  284,  311,  311,  311,  311, 
     9939      283,  283,  398,  280,  399,  282,  284,  283,  283,  288, 
     9940     1080,  396,  284,  280, 1801,  280,  282, 1841,  282,  288, 
     9941      283,  282,  285,  361,  284,  361,  288, 1076,  283,  283, 
     9942      398,  280,  399,  285,  284,  283,  283,  361,  288,  285, 
     9943      284,  287,  287,  289, 1068,  290,  291,  288,  292, 1067, 
     9944      287,  285,  289, 1060,  288,  291,  290,  292,  287, 1055, 
     9945      289,  285,  290,  291,  401,  292,  332,  285, 1841,  332, 
     9946      287,  287,  289,  332,  290,  291, 1031,  292,  287,  293, 
     9947 
     9948      289,  293,  294,  291,  290,  292,  287,  295,  289,  925, 
     9949      290,  291,  401,  292,  332,  918,  293,  332,  912,  294, 
     9950      300,  332,  295,  868,  295,  295,  296,  865,  293,  297, 
     9951      293,  294,  296,  298,  298,  297,  295,  300,  402,  300, 
     9952      403,  297,  296,  296,  293,  861,  297,  294,  855,  300, 
     9953      295,  298,  295,  295,  299,  296,  299,  381,  297,  381, 
     9954      381,  296,  298,  298,  297,  300,  402,  300,  403,  297, 
     9955      296,  296,  299,  299,  297,  843,  299,  301,  302,  298, 
     9956      304,  304,  841,  299,  406,  299,  301,  668,  305,  668, 
     9957      312,  312,  312,  312,  301,  302,  302,  668,  304,  826, 
     9958 
     9959      299,  299,  312,  305,  299,  305,  301,  302,  820,  304, 
     9960      304,  303,  406,  303,  301,  307,  312,  305,  306,  336, 
     9961      306,  307,  301,  302,  302,  303,  304,  377,  303,  377, 
     9962      303,  305,  307,  305,  407,  306,  336,  308,  798,  308, 
     9963      303,  413,  303,  377,  307,  312,  416,  306,  336,  306, 
     9964      307,  789,  788,  303,  308,  309,  303,  309,  303,  310, 
     9965      307,  309,  407,  306,  336,  310,  308,  377,  308,  325, 
     9966      413,  325,  309,  419,  420,  416,  310,  313,  313,  313, 
     9967      313,  330,  308,  421,  309,  325,  309,  325,  310,  424, 
     9968      309,  422,  330,  422,  310,  377,  325,  325,  710,  330, 
     9969 
     9970      309,  331,  419,  420,  310,  326,  326,  326,  326,  325, 
     9971      330,  421,  331,  422,  333,  333,  333,  326,  424,  331, 
     9972      330,  333,  334,  418,  418,  325,  325,  330,  334,  334, 
     9973      331,  326,  438,  362,  438,  362,  383,  325,  383,  383, 
     9974      331,  709,  333,  333,  333,  681,  362,  331,  362,  333, 
     9975      334,  418,  418, 1025,  438, 1025,  334,  334,  680,  434, 
     9976      326,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9977      328,  328,  328,  328,  328,  328,  328,  328,  328,  328, 
     9978      335,  328,  328,  328,  328,  328,  337,  338,  434,  335, 
     9979      405,  659,  404,  339,  658,  404,  335,  423,  337,  338, 
     9980 
     9981      426,  338,  429,  337,  338,  430,  339,  405,  431,  335, 
     9982      339, 1631,  328,  328,  654,  337,  338,  335, 1631,  405, 
     9983      404, 1631,  339,  404,  335,  423,  337,  338,  426,  338, 
     9984      429,  337,  338,  430,  339,  405,  431,  342,  339,  342, 
     9985      328,  329,  329,  329,  329,  329,  329,  329,  329,  329, 
     9986      329,  329,  329,  329,  329,  329,  329,  329,  329,  329, 
     9987      437,  329,  329,  329,  329,  329,  342,  341,  653,  341, 
     9988      343,  360,  343,  354,  354,  354,  432,  329,  360,  360, 
     9989      650,  354,  354,  359,  329,  341,  343,  435,  343,  437, 
     9990      359,  359,  329,  329,  436,  342,  341,  343,  343,  343, 
     9991 
     9992      355,  355,  355,  440,  432,  329,  648,  439,  355,  355, 
     9993      343,  433,  329,  640,  360,  435,  363,  359,  363,  364, 
     9994      329,  364,  436,  445,  433,  341,  343,  343,  343,  637, 
     9995      363,  440,  363,  364,  363,  364,  439,  364,  343,  366, 
     9996      433,  366,  360,  636,  367,  359,  367,  372,  443,  372, 
     9997      443,  445,  433,  366,  635,  366,  410,  366,  367,  411, 
     9998      367,  622,  367,  372,  382,  382,  382,  382,  363,  586, 
     9999      443,  364,  410,  580,  366,  411,  382,  386,  386,  386, 
     10000      386,  387,  387,  387,  387,  386,  441,  558,  367,  387, 
     10001      382,  366,  372,  387,  386,  390,  367,  410,  387,  417, 
     10002 
     10003      411,  417,  366,  442,  390,  390,  425,  387,  425,  444, 
     10004      505,  446,  447,  448,  450,  441,  367,  390,  453,  382, 
     10005      372,  417,  451,  452,  455,  410,  456,  459,  411,  454, 
     10006      504,  460,  442,  390,  390,  417,  387,  454,  444,  446, 
     10007      447,  461,  448,  450,  464,  390,  414,  453,  414,  425, 
     10008      451,  452,  462,  455,  456,  459,  463,  454,  457,  460, 
     10009      458,  468,  458,  417,  500,  454,  457,  499,  414,  465, 
     10010      461,  466,  464,  414, 1033,  467, 1033,  425,  414,  485, 
     10011      469,  462,  458,  470,  472,  463,  473,  457,  414,  414, 
     10012      468,  474,  414,  476,  457,  458,  478,  465,  479,  466, 
     10013 
     10014      480,  481,  414,  467,  458,  482,  483,  414,  469,  484, 
     10015      486,  470,  472,  485,  473,  487,  414,  414,  488,  474, 
     10016      414,  476,  490,  458,  478,  489,  479,  491,  480,  481, 
     10017      492,  493,  458,  482,  483,  494,  512,  497,  484,  497, 
     10018      497,  485,  489,  492,  487,  509,  507,  488,  495,  495, 
     10019      495,  490,  508,  486,  489,  498,  491,  498,  498,  492, 
     10020      493,  506,  511,  501,  494,  501,  501,  484,  510,  512, 
     10021      489,  492,  502,  502,  502,  502,  503,  507,  503,  503, 
     10022      495,  486,  509,  515,  502,  513,  508,  514,  506,  516, 
     10023      518,  517,  522,  494,  496,  521,  589,  512,  502,  510, 
     10024 
     10025      519,  520,  615,  523,  523,  511,  507,  477,  475,  495, 
     10026      509,  513,  524,  612,  508,  518,  525,  506,  521,  522, 
     10027      523,  514,  528,  515,  589,  531,  517,  502,  510,  517, 
     10028      516,  615,  518,  511,  519,  520,  524,  527,  527,  527, 
     10029      513,  612,  530,  525,  518,  523,  533,  521,  522,  514, 
     10030      535,  515,  531,  528,  517,  536,  538,  517,  516,  527, 
     10031      518,  537,  519,  520,  544,  524,  532,  529,  529,  529, 
     10032      539,  540,  525,  523,  526,  526,  526,  534,  534,  534, 
     10033      536,  531,  528,  530,  530,  535,  541,  533,  392,  529, 
     10034      538,  391,  388,  532,  542,  545,  526,  543,  537,  534, 
     10035 
     10036      549,  526,  385,  529,  539,  544,  526,  384,  379,  536, 
     10037      548,  530,  530,  535,  540,  533,  526,  526,  538,  551, 
     10038      526,  542,  532,  546,  543,  550,  537,  554,  560,  541, 
     10039      526,  529,  539,  544,  542,  526,  553,  545,  547,  547, 
     10040      547,  548,  540,  549,  526,  526,  551,  555,  526,  546, 
     10041      542,  550,  556,  543,  552,  552,  552,  541,  559,  557, 
     10042      547,  554,  542,  553,  561,  545,  564,  562,  563,  560, 
     10043      548,  549,  565,  573,  571,  551,  552,  570,  546,  574, 
     10044      550,  559,  568,  566,  579,  567,  567,  567,  556,  554, 
     10045      557,  572,  553,  569,  555,  564,  376,  560,  562,  576, 
     10046 
     10047      561,  571,  577,  375,  563,  575,  565,  567,  570,  566, 
     10048      559,  581,  563,  573,  578,  374,  556,  566,  572,  557, 
     10049      567,  574,  555,  583,  564,  568,  579,  562,  561,  567, 
     10050      571,  577,  563,  373,  565,  582,  569,  570,  566,  576, 
     10051      563,  573,  593,  575,  591,  566,  591,  572,  567,  574, 
     10052      578,  581,  594,  568,  579,  365, 1035,  567, 1035,  592, 
     10053      577,  592,  591,  358,  569,  583,  613,  576,  357,  582, 
     10054      598,  575,  584,  584,  584,  584,  593,  592,  578,  581, 
     10055      585,  585,  585,  585,  587,  587,  587,  587,  592,  595, 
     10056      596,  595,  596,  583,  613,  594,  587,  582,  601,  598, 
     10057 
     10058      607,  352,  349,  602,  593,  601,  609,  607,  596,  606, 
     10059      587,  625,  651,  625,  651,  651,  602,  592,  595,  596, 
     10060      605,  320,  605,  594,  625,  606,  625,  601,  598,  607, 
     10061      609,  603,  602,  601,  597,  607,  597,  605,  606,  587, 
     10062      588,  588,  588,  588,  602,  603,  604,  595,  596,  605, 
     10063      597,  605,  597,  606,  604,  608,  614,  604,  616,  609, 
     10064      603,  597,  597,  617,  318,  605,  588,  588,  664,  588, 
     10065      588,  314,  588,  603,  597,  604,  250,  633,  608,  633, 
     10066      620,  611,  604,  588,  614,  604,  616,  620,  620,  249, 
     10067      597,  597,  617,  633,  245,  588,  588,  664,  588,  588, 
     10068 
     10069      618,  588,  597,  652,  610,  652,  652,  608,  611,  244, 
     10070      237,  588,  599,  599,  599,  599,  599,  599,  599,  599, 
     10071      599,  599,  599,  599,  599,  599,  599,  599,  599,  599, 
     10072      599,  610,  599,  599,  599,  599,  599,  611,  618,  621, 
     10073      626,  665,  626,  634,  610,  634,  621,  621,  599,  623, 
     10074      647,  225,  661,  626,  218,  626,  623,  623,  619,  634, 
     10075      610,  624,  123,  599,  599,  629,  618,  629,  624,  624, 
     10076      665,  628,  610,  628,  119, 1118,  599, 1118,  647,  629, 
     10077      661,  115,  619,  629,  784,  628,  784,  784,  624,  628, 
     10078      623,  599,  600,  600,  600,  600,  600,  600,  600,  600, 
     10079 
     10080      600,  600,  600,  600,  600,  600,  600,  600,  600,  600, 
     10081      600,  619,  600,  600,  600,  600,  600,  624,  623,  666, 
     10082      627,  600,  627,  628,  662,  630,  670,  630,  114,  663, 
     10083      638,  627,  638,  627,  667,  627,  627,   74,  627,  630, 
     10084      631,  671,  631,  600,  600,  632,  638,  632,  666,  645, 
     10085      600,  645,  662,  672,  631,  670,  631,  663,  631,  632, 
     10086      673,  632,  667,  632,  675,  645,  655,  655,  655,  655, 
     10087      671,  600,  627,  632,  655,   67,  674,  656,  656,  656, 
     10088      656,  672,  631,  655, 1250,  656, 1250,  676,  673,  656, 
     10089      677,  687,  631,  675,  656,  678,  679,  632,  657,  657, 
     10090 
     10091      657,  657,  632,  656,  674,  682,  657,  683,  686,  683, 
     10092      631,  660,  660,  660,  660,  657,  676,  688,  677,  660, 
     10093      687,  689,  690,  678,  679,  691,  693,  691,  660,   15, 
     10094      696,  697,  656,  682,  699,  694,  686,  694,  700,  683, 
     10095      700,  701,  702,  704,  702,  704,  688,  691,  705,  689, 
     10096      706,  690,  713,  683,  693,  714,    7,  694,  696,  697, 
     10097      700,  712,  699,  715,  702,  704,    0,    0,  683,  718, 
     10098      701,  725,    0,  717,  719,    0,  705,  720,  706,    0, 
     10099      713,  683,  684,  714,  684,  711,  711,  711,  724,  721, 
     10100      712,  721,  715,  731,  716,  711,  711,  718,  711,  725, 
     10101 
     10102      711,  716,  717,  719,  684,  733,  720,  711,  722,  684, 
     10103      722,  721,    0,  726,  684,  726,  734,  724,  728,  727, 
     10104      728,  727,  731,  716,  684,  684,    0,  735,  684,  716, 
     10105      722,  736,    0,  737,  733,  726,  738,  739,  684,  740, 
     10106      728,  727,  741,  684,  734,  742,  753,  743,  748,  743, 
     10107      749,  750,  684,  684,  727,  735,  684,  743,  751,  754, 
     10108      736,  737,  755,  711,  738,  739,  757,  745,  740,  745, 
     10109      741,  747,  758,  747,  742,  753,  748,  761,  749,  750, 
     10110      762,  760,  727,  760,  763,  765,  751,  766,  754,  745, 
     10111      755,  767,  768,  747,  757,  769,  770,  771,  772,  773, 
     10112 
     10113      774,  758,  778,  760,  776,  781,  761,  783,    0,  762, 
     10114      791,  779,  776,  763,  765,  766,    0, 1254,  779, 1254, 
     10115      767,  768,  779,  790,  769,  770,  773,  785,  774,  785, 
     10116      785,  778,    0,  776,  780,  792,  780,  771,    0,  772, 
     10117      779,  776,  795,  783,  780,  781,  779,  791,  780,  786, 
     10118      779,  786,  786,  780,  793,  773,  782,  782,  782,  787, 
     10119      794,  787,  787,  799,  790,  771,  796,  772,  800,  795, 
     10120      803,  783,  801,  781,  804,  791,  792,  802,  806,  793, 
     10121      797,  797,  797,  807,  808,  810,  799,  805,  782,  794, 
     10122      797,  812,  790,  813,  817,  800,  814,  815,  795,  811, 
     10123 
     10124      811,  811,  816,    0,  792,  804,  821,  796,  793,  801, 
     10125      818,  802,  806,  803,  805,  799,  819,  782,  794,  810, 
     10126      808,  813,  827,  814,  800,    0,  807,  828,  812,  823, 
     10127        0,  811,  816,  825,  804,  796,  829,  801,  817,  802, 
     10128      806,  803,    0,  805,  815,  811,  821,  810,  808,  830, 
     10129      813,  818,  814,  827,  807,  833,  812,    0,  819,  823, 
     10130      811,  816,  822,  822,  822,  831,  817,  824,  824,  824, 
     10131      828,  832,  815,  811,  821,  825,  834,  838,  829,  818, 
     10132      830,  835,  827,  837,  822,  842,  819,  845,  823,  824, 
     10133      846,  833,  852,    0,  831,  836,  836,  836,  828,  848, 
     10134 
     10135      844,  831,  832,  825,  835,  834,  829,  849,  837,  830, 
     10136      857,  838,  850,  839,  839,  839,  842,  836,    0,  833, 
     10137      840,  840,  840,  831,  845,  846,  859,  844,  851,  831, 
     10138      847,  832,  852,  835,  834,  839,  853,  837,  858,  838, 
     10139      860,  848,  840,  867,  864,  842,  856,  856,  856,  849, 
     10140      857,  851,  845,  846,  850,  840,  844,  847,  866,  862, 
     10141      852,  854,  854,  854,  863,  875,  859,  853,  856,  848, 
     10142      867,  854,  858,    0,  870,  871,  860,  849,  857,  872, 
     10143      851,    0,  850,  840,  862,    0,  847,  864,  896,  863, 
     10144      869,  869,  869,  875,  859,  866,  853,    0,    0,  867, 
     10145 
     10146      858,  870,  871,  880,  860,  900,  872,  873,  873,  873, 
     10147      873,  896,  869,  862,  877,  864,  877,    0,  863,  874, 
     10148      874,  874,  874,  866,  878,  881,  878,  879,    0,  879, 
     10149      870,  871,  877,  883,  900,  872,  876,  876,  876,  876, 
     10150      896,  886,  878,  886,  880,  879,  888,  887,  888,  887, 
     10151      899,  902,  881,  878,  876,  889,  879,  889,    0,  882, 
     10152      904,  882,  876,  876,    0,  876,  876,  921,  876,  921, 
     10153      921,  887,  880,  883,  888,  882,  929,  882,  899,  876, 
     10154      902,  881,  878,  886,  904,  879,  882,  882,  895,  895, 
     10155      895,  876,  876,  889,  876,  876,  893,  876,  893,  882, 
     10156 
     10157      887,  883,  907,  888,  913,  929,  913,  876,    0,  907, 
     10158      907,  886,  890,  904,  890,  882,  882,  891,  913,  891, 
     10159      922,  889,  922,  922,  893,    0,  897,  882,  884,  884, 
     10160      884,  884,  884,  884,  884,  884,  884,  884,  884,  884, 
     10161      884,  884,  884,  884,  884,  884,  884,  890,  884,  884, 
     10162      884,  884,  884,  893,  908,  897,  908,    0,  898,  898, 
     10163      898,  891,  897,  927,    0,  908,  897,  928,  898,    0, 
     10164        0,  930,  898,  931,  892,  890,  892,  898,    0,  884, 
     10165      884,  910,    0,  910,  897,  923,  923,  923,  923,  891, 
     10166      897,  927,  910,  923,  897,  928,    0,  910,  892,  910, 
     10167 
     10168      930,  931,  923, 1125, 1125, 1125,  892,  884,  885,  885, 
     10169      885,  885,  885,  885,  885,  885,  885,  885,  885,  885, 
     10170      885,  885,  885,  885,  885,  885,  885,  892,  885,  885, 
     10171      885,  885,  885,  910,  894,  892,  894,  906,  911,  936, 
     10172      911,    0,  933,  938,  906,  906,    0,  939,  934,  911, 
     10173      934,  914,    0,  914,  911,  946,  911,  940,  934,  885, 
     10174      885,    0,  894,  948,  906,  914,  941,  914,  936,  914, 
     10175      933,  938,  924,  924,  924,  924,  939,  943,  944,  914, 
     10176      924,  935,  949,  935,  946,  940, 1005,  885, 1005,  924, 
     10177      911,  894,  948,  906,  941, 1043, 1005, 1043, 1043, 1044, 
     10178 
     10179        0, 1044, 1044,  914,    0,  943,  944,  935,  914,  915, 
     10180      915,  949,  915,  915,  915,  915,  915,  915,  915,  915, 
     10181      915,  915,  915,  915,  915,  915,  915,  915,  915,  915, 
     10182      915,  915,  915,  915,    0,  951,  935,  926,  926,  926, 
     10183      926,  945,  950,  952,  954,  926,  953,  957,  958,  926, 
     10184      959, 1255,  960, 1255,  926,  961,  962,  963,  962,    0, 
     10185      915,  915,  915,  926,  951,  964,  969,  964,    0,  945, 
     10186      950,    0,  952,  954,  953,  957,  958,    0,  962,  959, 
     10187      947,  960,  947,    0,  961,  963,    0,  964,  915, 1343, 
     10188      975, 1343,  926,  932,  932,  969,  932,  932,  932,  932, 
     10189 
     10190      932,  932,  932,  932,  932,  932,  932,  932,  932,  932, 
     10191      932,  932,  947,  932,  932,  932,  932,  932,  967,  975, 
     10192      967,  971, 1045,  971, 1045, 1045,  947,  976,    0,    0, 
     10193      978,  979,  971,    0,  971,  972,  971,  972,    0,  980, 
     10194      967,  947,  981,  971,  932,  932,  972,  982,  972,    0, 
     10195      972,  973,  973,  973,  947,  984,  976,  972,  978,  987, 
     10196      979,  973,  973,  988,  973,  974,  973,  980,  993,  983, 
     10197      981,  983,  932,  973,  974,  974,  982,  974,  985,  974, 
     10198      985,  994,  989,  984,  989,  991,  974,  991,  987,  995, 
     10199      997,  983,  988,  996,  999, 1000, 1003,  993, 1002,  971, 
     10200 
     10201      985, 1004,    0, 1009,  989, 1010, 1007,  991, 1007, 1011, 
     10202      994, 1012, 1014,  972,    0, 1013, 1015, 1016,  995,  997, 
     10203     1017,  996, 1024,  999, 1000, 1003, 1002, 1026, 1007,  973, 
     10204     1004, 1009, 1018, 1010, 1018, 1027, 1022, 1011, 1022, 1029, 
     10205     1012, 1014,  974, 1013, 1015, 1016, 1022, 1028, 1017, 1028, 
     10206     1030, 1024, 1032, 1034, 1018, 1036, 1026, 1028, 1037, 1042, 
     10207     1041, 1028, 1047, 1027, 1048, 1038, 1028, 1038, 1049, 1050, 
     10208     1029, 1040, 1051, 1040, 1072, 1038, 1116, 1030, 1128, 1038, 
     10209        0, 1032, 1034, 1036, 1038, 1040, 1046, 1037, 1046, 1046, 
     10210     1040, 1041, 1050, 1135,    0, 1049, 1053, 1072,    0, 1029, 
     10211 
     10212     1048, 1042, 1054, 1047, 1116,    0, 1030, 1128, 1051, 1113, 
     10213     1113, 1113, 1114, 1114, 1114, 1114, 1326, 1326, 1326, 1113, 
     10214     1041, 1050, 1135, 1063, 1049, 1058, 1072, 1054, 1048, 1042, 
     10215     1056, 1047, 1059, 1061, 1053, 1062, 1051, 1052, 1052, 1052, 
     10216     1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 
     10217     1052, 1052, 1052, 1052, 1052, 1052, 1054, 1052, 1052, 1052, 
     10218     1052, 1052, 1053, 1057, 1063, 1058, 1056, 1065, 1059, 1062, 
     10219     1061, 1066, 1064, 1069, 1070, 1071, 1073, 1075, 1074, 1074, 
     10220     1074, 1081, 1079, 1077, 1078, 1083, 1084, 1087, 1052, 1052, 
     10221     1057, 1082, 1063, 1058, 1056, 1065, 1059, 1062, 1061, 1064, 
     10222 
     10223     1074, 1066, 1071, 1085, 1344, 1073, 1344, 1069, 1079, 1078, 
     10224     1088, 1091, 1070, 1075, 1077, 1089, 1052, 1090, 1082, 1057, 
     10225     1093, 1081, 1084, 1097, 1065, 1092, 1094, 1083, 1064, 1087, 
     10226     1066, 1071, 1085, 1088, 1073, 1069, 1096, 1079, 1078, 1091, 
     10227     1070, 1075, 1089, 1077, 1086, 1086, 1086, 1082, 1090, 1081, 
     10228     1084, 1092, 1099, 1094, 1097, 1083, 1093, 1087, 1100, 1102, 
     10229     1101, 1085, 1088, 1096, 1103, 1104, 1086, 1106, 1091, 1105, 
     10230     1107, 1089, 1108, 1109, 1119, 1110, 1119, 1090,    0, 1137, 
     10231     1092, 1100, 1094, 1097, 1093, 1101, 1115, 1115, 1115, 1115, 
     10232     1124, 1129, 1096, 1136, 1099, 1105, 1120, 1107, 1120,    0, 
     10233 
     10234     1102, 1104, 1129, 1119, 1121,    0, 1103, 1137,    0, 1106, 
     10235     1100, 1146,    0, 1108, 1101, 1168, 1109, 1110, 1146, 1146, 
     10236     1129, 1124, 1099, 1131, 1105, 1120, 1107, 1136, 1102, 1104, 
     10237     1129, 1121, 1119, 1130, 1103, 1130, 1137, 1106, 1131,    0, 
     10238     1123, 1108, 1123, 1168, 1109, 1110, 1117, 1117, 1117, 1117, 
     10239     1124, 1169, 1131, 1132, 1120, 1136, 1123, 1138, 1123, 1132, 
     10240     1121,    0, 1130, 1152, 1130, 1152, 1131, 1123, 1123, 1412, 
     10241     1133, 1412, 1117, 1117, 1152, 1117, 1117, 1147, 1117, 1169, 
     10242     1123, 1133, 1132, 1148, 1147, 1147, 1138, 1171, 1132, 1117, 
     10243     1148, 1148, 1150, 1165, 1150, 1165, 1123, 1123, 1154, 1133, 
     10244 
     10245     1154, 1117, 1117, 1150, 1117, 1117,    0, 1117, 1123, 1133, 
     10246     1150, 1161, 1154, 1161, 1161, 1165, 1171, 1117, 1126, 1126, 
     10247     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 
     10248     1126, 1126, 1126, 1126, 1126, 1126, 1126,    0, 1126, 1126, 
     10249     1126, 1126, 1126, 1151, 1150, 1151, 1166, 1126, 1166, 1155, 
     10250     1162, 1155, 1162, 1162, 1151, 1196, 1174, 1196, 1197,    0, 
     10251     1197, 1151, 1155, 1176, 1155, 1156, 1177, 1156, 1166, 1126, 
     10252     1126, 1157, 1158, 1157, 1158,    0, 1126, 1196,    0, 1156, 
     10253     1197, 1156,    0, 1156, 1174, 1157, 1158, 1157, 1158, 1157, 
     10254     1158, 1176,    0, 1256, 1177, 1256, 1256, 1126, 1127, 1127, 
     10255 
     10256     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 
     10257     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1156, 1127, 1127, 
     10258     1127, 1127, 1127, 1157, 1158, 1127, 1163, 1163, 1163, 1163, 
     10259     1164, 1164, 1164, 1164, 1163, 1178, 1179, 1181, 1164, 1180, 
     10260     1183, 1184, 1172, 1163, 1172, 1186,    0, 1164, 1189, 1127, 
     10261     1127, 1202,    0, 1202, 1127, 1202, 1257,    0, 1257, 1257, 
     10262        0,    0, 1202, 1178, 1333, 1179, 1181, 1180, 1172, 1183, 
     10263     1184, 1333, 1333,    0, 1186, 1190, 1189, 1127, 1134, 1134, 
    809110264     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 
    8092      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 
    8093      1135, 1135, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 
    8094      1136, 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 
    8095      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1138, 
    8096  
    8097      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1139, 1139, 
    8098      1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 
    8099      1139, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 
    8100      1140, 1140, 1140, 1140, 1141, 1141, 1141, 1141, 1141,    0, 
    8101      1141, 1141, 1141,    0, 1141,    0, 1141, 1142, 1142, 1142, 
    8102      1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 
    8103      1143,    0,    0,    0,    0,    0,    0,    0, 1143, 1144, 
    8104      1144,    0, 1144, 1144,    0, 1144,    0,    0, 1144, 1144, 
    8105         0, 1144, 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 
    8106      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 
    8107  
    8108      1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 
    8109      1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 
    8110      1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149,    0, 1149, 
    8111      1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150,    0, 
    8112      1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 
    8113      1150, 1151,    0, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 
    8114      1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152, 1152, 1152, 
    8115      1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153, 
     10265     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1172, 1134, 1134, 
     10266 
     10267     1134, 1134, 1134, 1190, 1191, 1192, 1193,    0, 1194, 1195, 
     10268     1199,    0, 1200, 1209, 1210, 1211, 1224, 1204, 1202, 1204, 
     10269     1212, 1204, 1214, 1215, 1216, 1218, 1216, 1218, 1204, 1134, 
     10270     1134, 1676, 1219, 1191, 1192, 1193, 1194, 1195, 1676, 1199, 
     10271     1200, 1676, 1209, 1210, 1211, 1224, 1216, 1218, 1212,    0, 
     10272     1214, 1215, 1220,    0, 1220, 1221,    0, 1134, 1153, 1153, 
     10273     1219, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 
    811610274     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 
    8117      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 
    8118  
    8119      1154, 1154, 1154, 1155,    0, 1155, 1155, 1155, 1155, 1155, 
    8120      1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156, 1156, 1156, 
    8121      1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 
    8122      1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 
    8123      1157, 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 
    8124      1158, 1158, 1158, 1158, 1158, 1159,    0, 1159, 1159, 1159, 
    8125      1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160,    0, 
    8126      1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 
    8127      1160, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 
    8128      1161, 1161, 1161, 1161, 1162, 1162, 1162, 1162, 1162, 1162, 
    8129  
    8130      1162, 1162, 1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163, 
    8131      1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 
    8132      1164,    0, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 
    8133      1164, 1164, 1164, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 
    8134      1165, 1165, 1165, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 
    8135      1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, 
    8136      1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 
    8137      1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 
    8138      1168, 1168, 1168, 1168, 1168, 1169, 1169, 1169, 1169, 1169, 
    8139      1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 
    8140  
    8141      1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 
    8142      1170, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8143      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8144      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8145      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8146      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8147      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8148      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8149      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8150      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 
    8151  
    8152      1131 
     10275     1153, 1153, 1153, 1221, 1204, 1201, 1203, 1201, 1203,    0, 
     10276     1222, 1220, 1223, 1225, 1223, 1226, 1201, 1203, 1201, 1203, 
     10277 
     10278     1201, 1203, 1207, 1207, 1207,    0, 1227, 1201, 1203, 1153, 
     10279     1153, 1153, 1207, 1207, 1223, 1207,    0, 1207, 1222, 1220, 
     10280     1240, 1225, 1240, 1226, 1207, 1312, 1312, 1312, 1312,    0, 
     10281     1240, 1182,    0, 1182, 1227,    0, 1228, 1153, 1167, 1167, 
     10282     1229, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 
     10283     1167, 1167, 1167, 1167, 1167, 1167, 1167, 1182, 1167, 1167, 
     10284     1167, 1167, 1167, 1201, 1203, 1228, 1231, 1208, 1229, 1267, 
     10285     1182, 1235, 1236, 1235, 1236, 1238, 1208, 1208, 1242, 1208, 
     10286     1207, 1208, 1237, 1243, 1237, 1244, 1182, 1248, 1208, 1167, 
     10287     1167, 1245, 1249, 1251, 1236, 1231, 1252, 1235, 1182, 1314, 
     10288 
     10289     1253, 1321, 1353, 1238, 1237,    0,    0, 1242, 1258, 1258, 
     10290     1258, 1243, 1322, 1261, 1244, 1267, 1248, 1167, 1354, 1245, 
     10291     1249, 1355, 1251, 1323, 1252,    0, 1235, 1253, 1314, 1321, 
     10292     1258, 1353, 1259, 1259, 1259, 1313, 1313, 1313, 1313,    0, 
     10293     1322, 1262, 1265, 1267, 1208, 1268, 1269, 1354, 1245, 1271, 
     10294     1355, 1323,    0, 1252, 1259, 1261, 1253, 1260, 1260, 1260, 
     10295     1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 
     10296     1260, 1260, 1260, 1260, 1260, 1260, 1262, 1260, 1260, 1260, 
     10297     1260, 1260, 1264, 1261, 1265, 1268, 1270, 1272, 1275, 1269, 
     10298     1278, 1271, 1282, 1279, 1273, 1273, 1273, 1276, 1277, 1280, 
     10299 
     10300     1280, 1280, 1286, 1289, 1262, 1264, 1352, 1283, 1260, 1260, 
     10301     1352, 1270, 1265, 1268, 1281, 1275, 1284, 1269, 1272, 1271, 
     10302     1273, 1280, 1288, 1285, 1276, 1277, 1291, 1279, 1293, 1282, 
     10303     1278, 1294,    0, 1273, 1264, 1352, 1260, 1281, 1283, 1352, 
     10304     1270, 1296, 1286, 1284, 1275, 1289, 1298, 1272, 1297, 1273, 
     10305     1285,    0, 1299, 1276, 1277, 1279, 1303, 1282, 1278, 1301, 
     10306     1291, 1273, 1310, 1288, 1296, 1300, 1281, 1283,    0, 1293, 
     10307     1286,    0, 1284, 1289, 1290, 1290, 1290,    0, 1294, 1285, 
     10308     1292, 1292, 1292, 1295, 1295, 1295, 1298, 1303, 1291, 1299, 
     10309     1297, 1288, 1300, 1296, 1301,    0, 1290, 1293, 1307, 1307, 
     10310 
     10311     1307, 1308, 1308, 1308, 1310, 1295, 1294, 1309, 1309, 1309, 
     10312     1317, 1324, 1327, 1328, 1298, 1357, 1303, 1299, 1297, 1292, 
     10313     1334, 1300, 1301, 1308, 1307, 1358, 1359, 1334, 1334, 1309, 
     10314        0, 1336, 1310, 1336, 1337, 1327, 1337, 1361, 1317, 1324, 
     10315        0, 1328, 1336, 1338, 1357, 1338,    0, 1292, 1337, 1345, 
     10316     1345, 1345, 1345, 1307, 1358, 1359, 1338, 1345, 1338, 1363, 
     10317     1418, 1424, 1418, 1424, 1327, 1361, 1345, 1317, 1318, 1318, 
     10318     1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 
     10319     1318, 1318, 1318, 1318, 1318, 1318, 1318, 1363, 1318, 1318, 
     10320     1318, 1318, 1318, 1339, 1340, 1339, 1340, 1346, 1346, 1346, 
     10321 
     10322     1346, 1347, 1349, 1347, 1349, 1346, 1364, 1339, 1340, 1339, 
     10323     1340, 1339, 1340, 1366, 1346, 1341, 1367, 1341,    0, 1318, 
     10324     1318,    0,    0, 1347, 1349, 1425, 1380, 1425, 1380, 1341, 
     10325     1380, 1341,    0, 1341, 1364,    0, 1422, 1380, 1422, 1422, 
     10326        0, 1811, 1366, 1811, 1367, 1339, 1340, 1318, 1319, 1319, 
     10327     1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 
     10328     1319, 1319, 1319, 1319, 1319, 1319, 1319, 1341, 1319, 1319, 
     10329     1319, 1319, 1319, 1368, 1369,    0, 1370, 1371, 1373, 1374, 
     10330        0, 1377, 1378, 1375, 1382, 1375, 1386, 1387, 1398, 1388, 
     10331     1392, 1388, 1319, 1380,    0,    0,    0, 1393, 1397, 1319, 
     10332 
     10333     1319,    0, 1368, 1369, 1370, 1375, 1371, 1373, 1374, 1377, 
     10334     1378, 1388, 1382,    0,    0, 1386, 1387, 1398, 1392,    0, 
     10335     1319, 1362, 1391, 1362, 1391, 1393, 1397, 1319, 1320, 1320, 
     10336     1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 
     10337     1320, 1320, 1320, 1320, 1320, 1320, 1320, 1362, 1320, 1320, 
     10338     1320, 1320, 1320, 1379, 1405, 1379, 1395, 1400, 1395, 1403, 
     10339     1362, 1391,    0,    0, 1379, 1404, 1379, 1404, 1379, 1410, 
     10340     1413, 1381, 1381, 1381, 1411, 1379, 1362, 1417, 1395, 1320, 
     10341     1320, 1381, 1381, 1405, 1381, 1400, 1381, 1403, 1362, 1391, 
     10342     1406, 1404, 1406, 1381, 1408, 1419, 1408, 1421, 1410, 1413, 
     10343 
     10344     1427, 1428, 1411, 1430, 1429, 1417, 1432, 1320, 1433, 1434, 
     10345     1436, 1437, 1406, 1438, 1439, 1440, 1408, 1442, 1443, 1450, 
     10346     1404, 1444, 1471, 1427, 1419, 1446, 1453, 1427, 1428, 1429, 
     10347     1430, 1379, 1434, 1432, 1445, 1433, 1454, 1421, 1451,    0, 
     10348     1440, 1462,    0, 1456, 1442, 1443,    0, 1436, 1437, 1381, 
     10349     1450, 1471, 1427, 1438, 1439, 1444, 1427, 1428, 1429, 1430, 
     10350     1457, 1434, 1432, 1459, 1433, 1421, 1453, 1446, 1451, 1440, 
     10351     1445, 1464, 1467, 1442, 1443, 1436, 1437, 1456, 1454, 1450, 
     10352     1463, 1438, 1439, 1444, 1474, 1462, 1473, 1457, 1465, 1465, 
     10353     1465, 1465, 1475, 1476, 1453, 1446, 1482, 1451, 1445, 1459, 
     10354 
     10355     1467, 1484, 1464, 1463,    0, 1456, 1454, 1477, 1478, 1477, 
     10356     1478, 1478, 1474, 1462, 1486, 1473, 1457, 1477, 1476, 1485, 
     10357        0, 1475, 1479, 1479, 1479, 1482, 1487, 1459, 1489, 1484, 
     10358     1479, 1464, 1463, 1480, 1480, 1480, 1480, 1490, 1491, 1479, 
     10359     1492, 1480, 1486, 1481, 1481, 1481, 1481, 1476, 1485, 1493, 
     10360     1480, 1481, 1494, 1496, 1487, 1495, 1489, 1497, 1499, 1507, 
     10361     1481, 1500, 1502,    0,    0, 1490, 1491, 1509, 1492, 1510, 
     10362     1508, 1513, 1508, 1517, 1514, 1518, 1514, 1493, 1515, 1516, 
     10363     1520, 1494, 1496, 1495, 1519, 1521, 1497, 1499, 1507, 1500, 
     10364     1502, 1505, 1508, 1505, 1522, 1509, 1514, 1510, 1524, 1513, 
     10365 
     10366     1526, 1517, 1505, 1518, 1505, 1525, 1505, 1515, 1516, 1520, 
     10367     1530, 1521, 1519, 1505, 1527, 1532, 1527, 1527, 1528, 1533, 
     10368     1528, 1528, 1534, 1522, 1535, 1537, 1540, 1524, 1526, 1538, 
     10369     1542, 1539, 1525, 1548, 1530, 1544, 1550, 1549, 1549, 1549, 
     10370     1521, 1541, 1557, 1553, 1556,    0, 1533, 1555, 1554, 1554, 
     10371     1554, 1532, 1561, 1540, 1559, 1579, 1559, 1526, 1548, 1549, 
     10372     1535, 1525, 1534, 1530, 1559, 1538, 1539, 1537, 1541, 1505, 
     10373     1554, 1544, 1542, 1550, 1555, 1533, 1560, 1562, 1557, 1532, 
     10374     1561,    0, 1540, 1553, 1579, 1556,    0, 1548, 1535, 1565, 
     10375     1534,    0, 1574, 1538, 1539, 1537,    0, 1541,    0, 1544, 
     10376 
     10377     1542, 1550, 1560, 1555,    0, 1562, 1557, 1558, 1558, 1558, 
     10378     1558, 1553, 1566, 1556, 1566, 1568, 1565, 1568, 1568, 1569, 
     10379     1574, 1569, 1566,    0, 1570, 1570, 1570, 1570,    0, 1575, 
     10380     1578, 1560, 1570, 1581, 1582, 1584, 1569, 1585, 1571, 1571, 
     10381     1571, 1570, 1583, 1613, 1587, 1565, 1571, 1590, 1572, 1572, 
     10382     1572, 1572, 1573, 1573, 1573, 1571, 1572, 1575, 1578, 1594, 
     10383     1573, 1581, 1595, 1582, 1584, 1572, 1585, 1600, 1605, 1573, 
     10384     1583, 1586, 1587, 1586, 1601, 1592, 1590, 1592, 1597, 1602, 
     10385     1597, 1586, 1604, 1608, 1606, 1613, 1609, 1594, 1612, 1616, 
     10386     1610, 1595, 1610, 1610, 1619, 1600, 1617, 1592,    0, 1620, 
     10387 
     10388     1597, 1623, 1625, 1601, 1630, 1605, 1630, 1628, 1602, 1609, 
     10389     1629, 1604, 1606, 1613, 1630, 1621, 1621, 1621, 1634, 1608, 
     10390     1632, 1647, 1612, 1617, 1620, 1621, 1623, 1625, 1640, 1640, 
     10391     1640, 1616, 1619, 1605, 1628, 1643, 1648, 1629, 1609,    0, 
     10392     1637, 1637, 1637, 1637,    0, 1640, 1634, 1608, 1637, 1647, 
     10393     1612, 1637, 1617, 1620, 1649, 1623, 1625, 1632, 1650, 1616, 
     10394     1619, 1670,    0, 1628, 1643, 1648, 1629, 1639, 1639, 1639, 
     10395     1639, 1641, 1641, 1641, 1641, 1639, 1644, 1655, 1644, 1641, 
     10396     1656, 1651, 1649, 1651, 1639, 1632, 1644, 1650, 1641, 1657, 
     10397     1652, 1651, 1652, 1658, 1664, 1670, 1665, 1666, 1671, 1672, 
     10398 
     10399     1652, 1667, 1667, 1667, 1673,    0, 1655,    0, 1691, 1656, 
     10400        0, 1667, 1692, 1677, 1677, 1677, 1677, 1689, 1657, 1689, 
     10401     1664, 1665, 1658, 1670, 1666, 1677, 1672, 1689, 1693, 1671, 
     10402     1696, 1673, 1678, 1678, 1678, 1678, 1691, 1679, 1684, 1677, 
     10403     1678, 1692, 1694, 1678, 1679, 1684, 1699, 1679, 1684, 1664, 
     10404     1665,    0,    0, 1666, 1697, 1672,    0, 1693, 1671, 1696, 
     10405     1673, 1682, 1682, 1682, 1682, 1700, 1705,    0, 1677, 1682, 
     10406     1694,    0, 1682, 1683, 1683, 1683, 1683, 1685, 1685, 1685, 
     10407     1685, 1683, 1699, 1697, 1683, 1685, 1707, 1686, 1686, 1686, 
     10408     1686,    0, 1702, 1700, 1685, 1686, 1690, 1704, 1690, 1686, 
     10409 
     10410     1708,    0, 1708, 1708, 1686, 1723,    0, 1705,    0, 1690, 
     10411     1699, 1690, 1707, 1686, 1709, 1709, 1709, 1709, 1690, 1702, 
     10412     1710, 1716, 1710, 1710, 1704, 1722, 1709, 1715, 1713, 1713, 
     10413     1713, 1713, 1724, 1723, 1715, 1705, 1713, 1715, 1725, 1713, 
     10414     1709, 1707, 1686, 1726, 1714, 1714, 1714, 1714, 1702, 1727, 
     10415     1728, 1717, 1714, 1704, 1722, 1714, 1714, 1716, 1717, 1732, 
     10416     1724, 1717, 1729, 1718, 1718, 1718, 1718, 1725, 1719, 1709, 
     10417     1714, 1718, 1726, 1734, 1718, 1719, 1733, 1727, 1719, 1720, 
     10418     1721, 1720, 1721, 1730, 1753, 1716, 1735, 1728, 1735, 1735, 
     10419     1729, 1721, 1720, 1721, 1720, 1721, 1742, 1747, 1754, 1714, 
     10420 
     10421        0, 1720, 1721, 1742,    0, 1732, 1742, 1733, 1736, 1730, 
     10422     1736, 1736, 1753,    0, 1743, 1728, 1734, 1739, 1739, 1739, 
     10423     1739, 1743, 1756, 1757, 1743, 1739,    0, 1754, 1739, 1740, 
     10424     1740, 1740, 1740, 1732, 1747, 1758, 1733, 1740, 1730,    0, 
     10425     1740, 1740, 1744, 1766, 1734, 1741, 1741, 1741, 1741, 1744, 
     10426     1756, 1757, 1744, 1741, 1746, 1740, 1741, 1745, 1745, 1745, 
     10427     1745, 1746, 1747, 1758, 1746, 1745, 1750, 1759, 1745, 1748, 
     10428     1748, 1748, 1748, 1750, 1760, 1761, 1750, 1748, 1765, 1751, 
     10429     1748, 1751, 1783, 1766, 1740, 1749, 1749, 1749, 1749, 1767, 
     10430     1751, 1767, 1767, 1749, 1771, 1768, 1749, 1768, 1768, 1784, 
     10431 
     10432        0, 1771, 1760,    0, 1771, 1769, 1769, 1769, 1769, 1759, 
     10433     1783, 1766, 1761, 1769,    0, 1765, 1769, 1770, 1770, 1770, 
     10434     1770, 1772, 1772, 1772, 1772, 1770, 1773, 1784, 1770, 1772, 
     10435     1786, 1774, 1772, 1773,    0,    0, 1773, 1759, 1774, 1790, 
     10436     1761, 1774, 1781, 1765, 1775, 1775, 1775, 1775, 1777, 1776, 
     10437     1776, 1776, 1776, 1791, 1785, 1777, 1775, 1776, 1777, 1786, 
     10438     1776, 1778, 1778, 1778, 1778, 1779, 1779, 1779, 1779, 1778, 
     10439     1775, 1780, 1778, 1779, 1802, 1790, 1779, 1779, 1780,    0, 
     10440     1791, 1780, 1785, 1792, 1781, 1792, 1792, 1793, 1804, 1793, 
     10441     1793, 1779, 1806, 1794, 1794, 1794, 1794,    0,    0, 1775, 
     10442 
     10443        0, 1794, 1802, 1790, 1794, 1795, 1795, 1795, 1795, 1791, 
     10444        0, 1831, 1781, 1795,    0,    0, 1795, 1804, 1808, 1807, 
     10445     1779, 1796, 1796, 1796, 1796, 1797, 1797, 1797, 1797, 1796, 
     10446        0, 1798, 1796, 1797, 1806,    0, 1797, 1797, 1798, 1800, 
     10447     1831, 1798, 1799, 1799, 1799, 1799, 1800, 1807, 1822, 1800, 
     10448     1799, 1797, 1821, 1799, 1808, 1813, 1813, 1813, 1813, 1818, 
     10449     1840,    0, 1806, 1813, 1815, 1823, 1813, 1814, 1814, 1814, 
     10450     1814, 1815,    0,    0, 1815, 1814, 1822, 1830, 1814,    0, 
     10451     1797, 1832, 1808, 1812, 1812, 1812, 1812,    0, 1812, 1840, 
     10452     1817, 1812, 1821, 1812, 1812, 1812,    0, 1817, 1812, 1812, 
     10453 
     10454     1817, 1818, 1823, 1812, 1830, 1812, 1812, 1812, 1816, 1816, 
     10455     1816, 1816, 1824, 1829, 1824, 1824, 1816, 1828, 1835, 1816, 
     10456     1821,    0, 1845, 1832, 1828, 1835,    0, 1828, 1835, 1818, 
     10457     1823,    0,    0, 1830, 1812, 1812, 1812, 1825, 1825, 1825, 
     10458     1825, 1827, 1827, 1827, 1827, 1825, 1839,    0, 1825, 1827, 
     10459     1845, 1832, 1827, 1829, 1833, 1838, 1833, 1833,    0, 1844, 
     10460     1846, 1843, 1812, 1826, 1826, 1826, 1826, 1826, 1826, 1839, 
     10461     1836, 1826, 1826, 1826, 1826, 1826,    0, 1836, 1826, 1826, 
     10462     1836, 1829, 1838, 1826, 1843, 1826, 1826, 1826, 1834, 1834, 
     10463     1834, 1834, 1837, 1837, 1837, 1837, 1834, 1847, 1839, 1834, 
     10464 
     10465     1837, 1844, 1846, 1837, 1848, 1848, 1848, 1848, 1850,    0, 
     10466        0, 1838,    0, 1843, 1826, 1826, 1826, 1842, 1842, 1842, 
     10467     1842, 1849, 1849, 1849, 1849, 1842,    0,    0, 1842, 1844, 
     10468     1846, 1851, 1851, 1851, 1851, 1852, 1852, 1852, 1852, 1847, 
     10469        0, 1858, 1826, 1853, 1853, 1853, 1853,    0, 1850, 1855, 
     10470     1855, 1855, 1855, 1856, 1856, 1856, 1856, 1859, 1859, 1859, 
     10471     1859, 1860, 1860, 1860, 1860, 1874,    0, 1847, 1858, 1862, 
     10472     1862, 1862, 1862, 1870,    0,    0, 1850, 1863, 1863, 1863, 
     10473     1863, 1866, 1866, 1866, 1866, 1867, 1867, 1867, 1867, 1869, 
     10474     1869, 1869, 1869,    0,    0,    0, 1870, 1858, 1872, 1872, 
     10475 
     10476     1872, 1872, 1875, 1875, 1875, 1875,    0, 1874, 1876, 1876, 
     10477     1876, 1876, 1877, 1877, 1877, 1877, 1879, 1879, 1879, 1879, 
     10478     1880, 1880, 1880, 1880,    0, 1870, 1883, 1883, 1883, 1883, 
     10479     1885, 1885, 1885, 1885,    0, 1874, 1887, 1887, 1887, 1887, 
     10480     1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 
     10481     1887, 1887, 1887, 1887, 1888, 1888, 1888, 1888, 1888, 1888, 
     10482     1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 
     10483     1888, 1888, 1889, 1889,    0, 1889, 1889, 1889, 1889, 1889, 
     10484     1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 
     10485     1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 
     10486 
     10487     1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1891, 1891, 
     10488     1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 
     10489     1891, 1891, 1891, 1891, 1891, 1891, 1892,    0,    0,    0, 
     10490        0,    0,    0, 1892,    0, 1892,    0, 1892, 1892, 1892, 
     10491     1892, 1892, 1893, 1893, 1893, 1893, 1893, 1894, 1894, 1894, 
     10492     1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 
     10493     1894, 1894, 1894, 1894, 1894, 1895, 1895, 1895, 1895, 1895, 
     10494     1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 
     10495     1895, 1895, 1895, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 
     10496     1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 
     10497 
     10498     1896, 1897,    0,    0,    0,    0,    0,    0,    0,    0, 
     10499        0,    0, 1897, 1897, 1897, 1897, 1897, 1898, 1898, 1898, 
     10500     1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 
     10501     1898, 1898, 1898, 1898, 1898, 1899, 1899,    0, 1899, 1899, 
     10502     1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 
     10503     1899, 1899, 1899, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 
     10504     1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 
     10505     1900, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 
     10506     1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1902, 
     10507     1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 
     10508 
     10509     1902, 1902, 1902, 1902, 1902, 1902, 1902, 1903, 1903, 1903, 
     10510     1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 
     10511     1903, 1903, 1903, 1903, 1903, 1904,    0,    0,    0,    0, 
     10512        0,    0, 1904,    0, 1904,    0,    0, 1904, 1904, 1904, 
     10513     1904, 1905, 1905, 1905, 1905,    0, 1905, 1905, 1905, 1905, 
     10514     1905, 1905,    0, 1905, 1905,    0,    0, 1905, 1905, 1906, 
     10515     1906, 1906, 1906, 1906, 1908, 1908, 1908, 1908, 1908, 1908, 
     10516     1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 
     10517     1908, 1908, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 
     10518     1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 
     10519 
     10520     1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 
     10521     1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1911, 1911, 
     10522     1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 
     10523     1911, 1911, 1911, 1911, 1911, 1911, 1912, 1912, 1912, 1912, 
     10524     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 
     10525     1912, 1912, 1912, 1912, 1913, 1913, 1913, 1913, 1913, 1913, 
     10526     1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 
     10527     1913, 1913, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 
     10528     1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 
     10529     1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 
     10530 
     10531     1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1916, 1916, 
     10532     1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 
     10533     1916, 1916, 1916, 1916, 1916, 1916, 1917, 1917,    0, 1917, 
     10534     1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 
     10535     1917, 1917, 1917, 1917, 1918, 1918, 1918, 1918, 1918, 1918, 
     10536     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 
     10537     1918, 1918, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 
     10538     1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 
     10539     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 
     10540     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1921, 1921, 
     10541 
     10542     1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 
     10543     1921, 1921, 1921, 1921, 1921, 1921, 1922, 1922, 1922, 1922, 
     10544     1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 
     10545     1922, 1922, 1922, 1922, 1923,    0,    0,    0,    0,    0, 
     10546        0, 1923,    0, 1923,    0,    0, 1923, 1923, 1923, 1923, 
     10547     1924,    0,    0,    0,    0,    0,    0,    0, 1924,    0, 
     10548     1924,    0, 1924, 1924, 1924, 1924, 1924, 1925, 1925, 1925, 
     10549     1925, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 
     10550     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1927, 
     10551     1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 
     10552 
     10553     1927, 1927, 1927, 1927, 1927, 1927, 1927, 1928, 1928, 1928, 
     10554     1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 
     10555     1928, 1928, 1928, 1928, 1928, 1929, 1929, 1929, 1929,    0, 
     10556     1929, 1929, 1929, 1929, 1929, 1929,    0, 1929, 1929,    0, 
     10557        0, 1929, 1929, 1930, 1930, 1930, 1930, 1930, 1931, 1931, 
     10558     1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 
     10559     1931, 1931, 1931, 1931, 1931, 1931, 1932,    0,    0,    0, 
     10560        0,    0,    0,    0, 1932, 1932, 1933, 1933, 1933, 1933, 
     10561     1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 
     10562     1933, 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1934, 1934, 
     10563 
     10564     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 
     10565     1934, 1934, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 
     10566     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 
     10567     1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 
     10568     1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1937, 1937, 
     10569     1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 
     10570     1937, 1937, 1937, 1937, 1937, 1937, 1938, 1938, 1938, 1938, 
     10571     1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 
     10572     1938, 1938, 1938, 1938, 1939, 1939, 1939, 1939, 1939, 1939, 
     10573     1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 
     10574 
     10575     1939, 1939, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 
     10576     1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 
     10577     1941,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     10578        0, 1941, 1941, 1941, 1941, 1941, 1942, 1942, 1942, 1942, 
     10579     1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 
     10580     1942, 1942, 1942, 1942, 1943, 1943, 1943, 1943, 1943, 1943, 
     10581     1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 
     10582     1943, 1943, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 
     10583     1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 
     10584     1945, 1945,    0, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 
     10585 
     10586     1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1946, 1946, 
     10587     1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 
     10588     1946, 1946, 1946, 1946, 1946, 1946, 1947, 1947, 1947, 1947, 
     10589     1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 
     10590     1947, 1947, 1947, 1947, 1948, 1948, 1948, 1948, 1948, 1948, 
     10591     1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 
     10592     1948, 1948, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 
     10593     1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 
     10594     1950,    0,    0,    0,    0,    0,    0, 1950,    0, 1950, 
     10595        0,    0, 1950, 1950, 1950, 1950, 1951,    0,    0,    0, 
     10596 
     10597        0,    0,    0,    0, 1951,    0,    0,    0, 1951, 1951, 
     10598     1951, 1951, 1951, 1952,    0,    0,    0,    0,    0,    0, 
     10599        0, 1952,    0, 1952,    0, 1952, 1952, 1952, 1952, 1952, 
     10600     1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 
     10601     1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1954, 1954, 
     10602     1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 
     10603     1954, 1954, 1954, 1954, 1954, 1954, 1955, 1955, 1955, 1955, 
     10604     1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 
     10605     1955, 1955, 1955, 1955, 1956, 1956, 1956, 1956, 1956, 1956, 
     10606     1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 
     10607 
     10608     1956, 1956, 1957, 1957, 1957, 1957, 1957, 1958, 1958, 1958, 
     10609     1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 
     10610     1958, 1958, 1958, 1958, 1958, 1959, 1959, 1959, 1959, 1959, 
     10611     1959,    0, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 
     10612     1959, 1959, 1959, 1960, 1960,    0, 1960, 1960, 1960, 1960, 
     10613     1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 
     10614     1960, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 
     10615     1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1962, 
     10616     1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 
     10617     1962, 1962, 1962, 1962, 1962, 1962, 1962, 1963, 1963, 1963, 
     10618 
     10619     1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 
     10620     1963, 1963, 1963, 1963, 1963, 1964, 1964, 1964, 1964, 1964, 
     10621     1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 
     10622     1964, 1964, 1964, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 
     10623     1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 
     10624     1965, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 
     10625     1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1967, 
     10626     1967,    0, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 
     10627     1967, 1967, 1967, 1967, 1967, 1967, 1967, 1968, 1968,    0, 
     10628     1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 
     10629 
     10630     1968, 1968, 1968, 1968, 1968, 1969, 1969,    0, 1969, 1969, 
     10631     1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 
     10632     1969, 1969, 1969, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 
     10633     1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 
     10634     1970, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 
     10635     1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1972, 
     10636     1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 
     10637     1972, 1972, 1972, 1972, 1972, 1972, 1972, 1973, 1973, 1973, 
     10638     1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 
     10639     1973, 1973, 1973, 1973, 1973, 1974,    0,    0,    0,    0, 
     10640 
     10641        0, 1974,    0,    0,    0, 1974,    0, 1974, 1974, 1974, 
     10642     1974, 1974, 1975, 1975, 1975, 1975, 1976,    0,    0,    0, 
     10643        0,    0,    0,    0, 1976,    0,    0,    0, 1976, 1976, 
     10644     1976, 1976, 1976, 1977,    0,    0,    0,    0,    0,    0, 
     10645        0, 1977,    0, 1977,    0, 1977, 1977, 1977, 1977, 1977, 
     10646     1978, 1978,    0, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 
     10647     1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1979, 1979, 
     10648     1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 
     10649     1979, 1979, 1979, 1979, 1979, 1979, 1980, 1980,    0, 1980, 
     10650     1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 
     10651 
     10652     1980, 1980, 1980, 1980, 1981, 1981, 1981, 1981, 1981, 1981, 
     10653        0, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 
     10654     1981, 1981, 1982, 1982,    0, 1982, 1982, 1982, 1982, 1982, 
     10655     1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 
     10656     1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 
     10657     1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1984, 1984, 
     10658     1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 
     10659     1984, 1984, 1984, 1984, 1984, 1984, 1985, 1985, 1985, 1985, 
     10660     1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 
     10661     1985, 1985, 1985, 1985, 1986, 1986, 1986, 1986, 1986, 1986, 
     10662 
     10663     1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 
     10664     1986, 1986, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 
     10665     1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 
     10666     1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 
     10667     1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1989, 1989, 
     10668     1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 
     10669     1989, 1989, 1989, 1989, 1989, 1989, 1990, 1990, 1990, 1990, 
     10670     1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 
     10671     1990, 1990, 1990, 1990, 1991, 1991, 1991, 1991, 1991, 1991, 
     10672     1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 
     10673 
     10674     1991, 1991, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 
     10675     1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 
     10676     1993, 1993,    0, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 
     10677     1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1994, 1994, 
     10678        0, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 
     10679     1994, 1994, 1994, 1994, 1994, 1994, 1995, 1995,    0, 1995, 
     10680     1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
     10681     1995, 1995, 1995, 1995, 1996, 1996, 1996, 1996, 1996, 1996, 
     10682     1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 
     10683     1996, 1996, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 
     10684 
     10685     1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 
     10686     1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 
     10687     1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1999, 1999, 
     10688     1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 
     10689     1999, 1999, 1999, 1999, 1999, 1999, 2000,    0,    0,    0, 
     10690        0,    0, 2000,    0,    0,    0,    0,    0, 2000, 2000, 
     10691     2000, 2000, 2000, 2001, 2001,    0, 2001, 2001, 2001, 2001, 
     10692     2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 
     10693     2001, 2002,    0,    0,    0,    0,    0,    0, 2002,    0, 
     10694     2002,    0,    0, 2002, 2002, 2002, 2002, 2003,    0,    0, 
     10695 
     10696        0,    0,    0,    0,    0, 2003,    0, 2003,    0, 2003, 
     10697     2003, 2003, 2003, 2003, 2004, 2004, 2004, 2004, 2005, 2005, 
     10698        0, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 
     10699     2005, 2005, 2005, 2005, 2005, 2005, 2006, 2006, 2006, 2006, 
     10700     2006, 2006,    0, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 
     10701     2006, 2006, 2006, 2006, 2007, 2007,    0, 2007, 2007, 2007, 
     10702     2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 
     10703     2007, 2007, 2008, 2008,    0, 2008, 2008, 2008, 2008, 2008, 
     10704     2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 
     10705     2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 
     10706 
     10707     2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010, 
     10708     2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 
     10709     2010, 2010, 2010, 2010, 2010, 2010, 2011, 2011, 2011, 2011, 
     10710     2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 
     10711     2011, 2011, 2011, 2011, 2012, 2012, 2012, 2012, 2012, 2012, 
     10712     2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 
     10713     2012, 2012, 2013,    0, 2013,    0,    0,    0,    0, 2013, 
     10714        0,    0, 2013, 2013, 2013, 2013, 2013, 2013, 2014, 2014, 
     10715     2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 
     10716     2014, 2014, 2014, 2014, 2014, 2014, 2015, 2015, 2015, 2015, 
     10717 
     10718     2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 
     10719     2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016, 2016, 
     10720     2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 
     10721     2016, 2016, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 
     10722     2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 
     10723     2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
     10724     2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 
     10725        0, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 
     10726     2019, 2019, 2019, 2019, 2019, 2019, 2020, 2020, 2020, 2020, 
     10727     2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
     10728 
     10729     2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 
     10730     2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 
     10731     2021, 2021, 2022,    0,    0,    0,    0,    0, 2022,    0, 
     10732        0,    0,    0,    0, 2022, 2022, 2022, 2022, 2022, 2023, 
     10733        0, 2023,    0,    0,    0,    0, 2023,    0,    0, 2023, 
     10734     2023, 2023, 2023, 2023, 2023, 2024,    0, 2024,    0,    0, 
     10735        0,    0, 2024,    0,    0, 2024, 2024, 2024, 2024, 2024, 
     10736     2024, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 
     10737     2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2026, 
     10738     2026, 2026, 2026, 2026, 2027, 2027,    0, 2027, 2027, 2027, 
     10739 
     10740     2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 
     10741     2027, 2027, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 
     10742     2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 
     10743     2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 
     10744     2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2030, 2030, 
     10745     2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 
     10746     2030, 2030, 2030, 2030, 2030, 2030, 2031, 2031, 2031, 2031, 
     10747     2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 
     10748     2031, 2031, 2031, 2031, 2032, 2032, 2032, 2032, 2032, 2032, 
     10749     2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 
     10750 
     10751     2032, 2032, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 
     10752     2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 
     10753     2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 
     10754     2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2035, 2035, 
     10755     2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 
     10756     2035, 2035, 2035, 2035, 2035, 2035, 2036, 2036, 2036, 2036, 
     10757     2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 
     10758     2036, 2036, 2036, 2036, 2037, 2037, 2037, 2037, 2037, 2037, 
     10759     2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 
     10760     2037, 2037, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 
     10761 
     10762     2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 
     10763     2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 
     10764     2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040, 
     10765     2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 
     10766     2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041, 
     10767     2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 
     10768     2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042, 2042, 
     10769     2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 
     10770     2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 
     10771     2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 
     10772 
     10773     2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 
     10774     2044, 2044, 2044, 2044, 2044, 2044, 2044, 2044, 1886, 1886, 
     10775     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10776     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10777     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10778     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10779     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10780     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10781     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 
     10782     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886 
     10783 
    815310784    } ; 
    8154  
    8155 static yy_state_type yy_last_accepting_state; 
    8156 static char *yy_last_accepting_cpos; 
    815710785 
    815810786extern int fortran__flex_debug; 
    815910787int fortran__flex_debug = 0; 
    816010788 
    8161 /* The intent behind this definition is that it'll catch 
    8162  * any uses of REJECT which flex missed. 
    8163  */ 
    8164 #define REJECT reject_used_but_not_detected 
     10789static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; 
     10790static char *yy_full_match; 
     10791static int yy_lp; 
     10792static int yy_looking_for_trail_begin = 0; 
     10793static int yy_full_lp; 
     10794static int *yy_full_state; 
     10795#define YY_TRAILING_MASK 0x2000 
     10796#define YY_TRAILING_HEAD_MASK 0x4000 
     10797#define REJECT \ 
     10798{ \ 
     10799*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ \ 
     10800yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ 
     10801(yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \ 
     10802(yy_state_ptr) = (yy_full_state); /* restore orig. state */ \ 
     10803yy_current_state = *(yy_state_ptr); /* restore curr. state */ \ 
     10804++(yy_lp); \ 
     10805goto find_rule; \ 
     10806} 
     10807 
    816510808#define yymore() yymore_used_but_not_detected 
    816610809#define YY_MORE_ADJ 0 
     
    820710850 
    820810851 
    8209 #line 44 "fortran.lex" 
     10852 
     10853#line 45 "fortran.lex" 
    821010854#include <math.h> 
    821110855#include <stdlib.h> 
     
    821310857extern FILE * fortran_in; 
    821410858#define MAX_INCLUDE_DEPTH 30 
     10859#define YY_BUF_SIZE 64000 
    821510860YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; 
    8216 int line_num_input = 1; 
     10861int line_num_input = 0; 
    821710862int newlinef90 = 0; 
    8218 char tmpc; 
    8219 #define PRINT_LINE_NUM()     // { fprintf(stderr,"== Parsing l.%4d...\n", line_num_input); } 
    8220 #define INCREMENT_LINE_NUM() { line_num_input++; PRINT_LINE_NUM(); } 
    8221  
    8222 /******************************************************************************/ 
    8223 /**************PETITS PB NON PREVUS *******************************************/ 
    8224 /******************************************************************************/ 
    8225 /* NEXTLINF77 un ligne fortran 77 peut commencer par -      &a=b or on        */ 
    8226 /*            a prevu seulement       & a=b avec l'espace entre le symbole    */ 
    8227 /*            de la 7eme et le debut de la ligne de commande                  */ 
    8228 /*            le ! est aussi interdit comme symbole de la 7 eme colonne       */ 
    8229 /*            Normalement NEXTLINEF77 \n+[ ]{5}[^ ]                           */ 
    8230 /******************************************************************************/ 
    8231 #define YY_USER_ACTION  if (firstpass == 0) ECHO; 
     10863int tmpc; 
     10864 
     10865int lastwasendofstmt = 1; 
     10866 
     10867extern char linebuf1[1024]; 
     10868extern char linebuf2[1024]; 
     10869 
     10870int count_newlines(const char* str_in) 
     10871{ 
     10872    int k, i = 0; 
     10873    for( k=0 ; k<strlen(str_in) ; k++) 
     10874        if (str_in[k] == '\n') i++; 
     10875    return i; 
     10876} 
     10877 
     10878#define PRINT_LINE_NUM()    // { fprintf(stderr,"== Parsing l.%4d...\n", line_num_input); } 
     10879#define INCREMENT_LINE_NUM() { line_num_input+=count_newlines(fortran_text) ; PRINT_LINE_NUM(); } 
     10880#define YY_USER_ACTION       { if (increment_nbtokens !=0) token_since_endofstmt++; increment_nbtokens = 1; if (token_since_endofstmt>=1) lastwasendofstmt=0; /*printf("VALLIJSDFLSD = %d %d %s \n",lastwasendofstmt,token_since_endofstmt,fortran_text); */ if (firstpass) { strcpy(linebuf1, linebuf2); strncpy(linebuf2, fortran_text,80);} \ 
     10881                               else {my_position_before=setposcur();/*printf("muposition = %d\n",my_position_before);*/ECHO;} } 
     10882#define YY_BREAK {/*printf("VALL = %d %d\n",lastwasendofstmt,token_since_endofstmt);*/if (token_since_endofstmt>=1) lastwasendofstmt=0; break;} 
    823210883 
    823310884void out_of_donottreat(void); 
    823410885 
    8235 #line 1826 "fortran.yy.c" 
     10886#line 3485 "fortran.yy.c" 
    823610887 
    823710888#define INITIAL 0 
     
    823910890#define character 2 
    824010891#define donottreat 3 
    8241 #define fortran77style 4 
    8242 #define fortran90style 5 
     10892#define includestate 4 
     10893#define fortran77style 5 
     10894#define fortran90style 6 
    824310895 
    824410896#ifndef YY_NO_UNISTD_H 
     
    842311075   register int yy_act; 
    842411076     
    8425 #line 97 "fortran.lex" 
     11077#line 100 "fortran.lex" 
    842611078 
    842711079  if (infixed) BEGIN(fortran77style) ; 
    842811080  if (infree)  BEGIN(fortran90style) ; 
    842911081 
    8430 #line 2021 "fortran.yy.c" 
     11082#line 3681 "fortran.yy.c" 
    843111083 
    843211084   if ( !(yy_init) ) 
     
    843711089      YY_USER_INIT; 
    843811090#endif 
     11091 
     11092        /* Create the reject buffer large enough to save one state per allowed character. */ 
     11093        if ( ! (yy_state_buf) ) 
     11094            (yy_state_buf) = (yy_state_type *)fortran_alloc(YY_STATE_BUF_SIZE  ); 
     11095            if ( ! (yy_state_buf) ) 
     11096                YY_FATAL_ERROR( "out of dynamic memory in fortran_lex()" ); 
    843911097 
    844011098      if ( ! (yy_start) ) 
     
    847011128      yy_current_state = (yy_start); 
    847111129      yy_current_state += YY_AT_BOL(); 
     11130 
     11131      (yy_state_ptr) = (yy_state_buf); 
     11132      *(yy_state_ptr)++ = yy_current_state; 
     11133 
    847211134yy_match: 
    847311135      do 
    847411136         { 
    847511137         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 
    8476          if ( yy_accept[yy_current_state] ) 
    8477             { 
    8478             (yy_last_accepting_state) = yy_current_state; 
    8479             (yy_last_accepting_cpos) = yy_cp; 
    8480             } 
    848111138         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 
    848211139            { 
    848311140            yy_current_state = (int) yy_def[yy_current_state]; 
    8484             if ( yy_current_state >= 1132 ) 
     11141            if ( yy_current_state >= 1887 ) 
    848511142               yy_c = yy_meta[(unsigned int) yy_c]; 
    848611143            } 
    848711144         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 
     11145         *(yy_state_ptr)++ = yy_current_state; 
    848811146         ++yy_cp; 
    848911147         } 
    8490       while ( yy_base[yy_current_state] != 4012 ); 
     11148      while ( yy_base[yy_current_state] != 9419 ); 
    849111149 
    849211150yy_find_action: 
    8493       yy_act = yy_accept[yy_current_state]; 
    8494       if ( yy_act == 0 ) 
    8495          { /* have to back up */ 
    8496          yy_cp = (yy_last_accepting_cpos); 
    8497          yy_current_state = (yy_last_accepting_state); 
    8498          yy_act = yy_accept[yy_current_state]; 
     11151      yy_current_state = *--(yy_state_ptr); 
     11152      (yy_lp) = yy_accept[yy_current_state]; 
     11153goto find_rule; /* Shut up GCC warning -Wall */ 
     11154find_rule: /* we branch to this label when backing up */ 
     11155      for ( ; ; ) /* until we find what rule we matched */ 
     11156         { 
     11157         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) 
     11158            { 
     11159            yy_act = yy_acclist[(yy_lp)]; 
     11160            if ( yy_act & YY_TRAILING_HEAD_MASK || 
     11161                 (yy_looking_for_trail_begin) ) 
     11162               { 
     11163               if ( yy_act == (yy_looking_for_trail_begin) ) 
     11164                  { 
     11165                  (yy_looking_for_trail_begin) = 0; 
     11166                  yy_act &= ~YY_TRAILING_HEAD_MASK; 
     11167                  break; 
     11168                  } 
     11169               } 
     11170            else if ( yy_act & YY_TRAILING_MASK ) 
     11171               { 
     11172               (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK; 
     11173               (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK; 
     11174               } 
     11175            else 
     11176               { 
     11177               (yy_full_match) = yy_cp; 
     11178               (yy_full_state) = (yy_state_ptr); 
     11179               (yy_full_lp) = (yy_lp); 
     11180               break; 
     11181               } 
     11182            ++(yy_lp); 
     11183            goto find_rule; 
     11184            } 
     11185         --yy_cp; 
     11186         yy_current_state = *--(yy_state_ptr); 
     11187         (yy_lp) = yy_accept[yy_current_state]; 
    849911188         } 
    850011189 
     
    850511194      switch ( yy_act ) 
    850611195   { /* beginning of action switch */ 
    8507          case 0: /* must back up */ 
    8508          /* undo the effects of YY_DO_BEFORE_ACTION */ 
    8509          *yy_cp = (yy_hold_char); 
    8510          yy_cp = (yy_last_accepting_cpos); 
    8511          yy_current_state = (yy_last_accepting_state); 
    8512          goto yy_find_action; 
    8513  
    851411196case 1: 
    851511197YY_RULE_SETUP 
    8516 #line 101 "fortran.lex" 
    8517 { return TOK_REAL8; } 
     11198#line 104 "fortran.lex" 
     11199{ return TOK_SUBROUTINE; } 
    851811200   YY_BREAK 
    851911201case 2: 
    852011202YY_RULE_SETUP 
    8521 #line 102 "fortran.lex" 
    8522 { return TOK_SUBROUTINE; } 
     11203#line 105 "fortran.lex" 
     11204{ return TOK_PROGRAM; } 
    852311205   YY_BREAK 
    852411206case 3: 
    852511207YY_RULE_SETUP 
    8526 #line 103 "fortran.lex" 
    8527 { return TOK_PROGRAM; } 
     11208#line 106 "fortran.lex" 
     11209{ inallocate = 1; return TOK_ALLOCATE; } 
    852811210   YY_BREAK 
    852911211case 4: 
    853011212YY_RULE_SETUP 
    8531 #line 104 "fortran.lex" 
    8532 { inallocate = 1; return TOK_ALLOCATE; } 
     11213#line 107 "fortran.lex" 
     11214{ return TOK_CONTINUE; } 
    853311215   YY_BREAK 
    853411216case 5: 
    853511217YY_RULE_SETUP 
    8536 #line 105 "fortran.lex" 
     11218#line 108 "fortran.lex" 
    853711219{ return TOK_NULLIFY; } 
    853811220   YY_BREAK 
    853911221case 6: 
    854011222YY_RULE_SETUP 
    8541 #line 106 "fortran.lex" 
    8542 { return TOK_NULL_PTR; } 
     11223#line 109 "fortran.lex" 
     11224{ inallocate = 1; return TOK_DEALLOCATE; } 
    854311225   YY_BREAK 
    854411226case 7: 
    854511227YY_RULE_SETUP 
    8546 #line 107 "fortran.lex" 
    8547 { inallocate = 1; return TOK_DEALLOCATE; } 
     11228#line 110 "fortran.lex" 
     11229{ return TOK_RESULT; } 
    854811230   YY_BREAK 
    854911231case 8: 
    855011232YY_RULE_SETUP 
    8551 #line 108 "fortran.lex" 
    8552 { return TOK_RESULT; } 
     11233#line 111 "fortran.lex" 
     11234{ return TOK_FUNCTION; } 
    855311235   YY_BREAK 
    855411236case 9: 
    855511237YY_RULE_SETUP 
    8556 #line 109 "fortran.lex" 
    8557 { return TOK_FUNCTION; } 
     11238#line 112 "fortran.lex" 
     11239{ strcpy(yylval.na,fortran_text); return TOK_ENDUNIT;} 
    855811240   YY_BREAK 
    855911241case 10: 
    856011242YY_RULE_SETUP 
    8561 #line 110 "fortran.lex" 
    8562 { strcpy(yylval.na,fortran_text); return TOK_ENDPROGRAM;} 
     11243#line 113 "fortran.lex" 
     11244{ pos_curinclude = setposcur()-9; BEGIN(includestate); } 
    856311245   YY_BREAK 
    856411246case 11: 
    856511247YY_RULE_SETUP 
    8566 #line 111 "fortran.lex" 
    8567 { strcpy(yylval.na,fortran_text); return TOK_ENDMODULE; } 
     11248#line 114 "fortran.lex" 
     11249{ return TOK_USE;} 
    856811250   YY_BREAK 
    856911251case 12: 
    857011252YY_RULE_SETUP 
    8571 #line 112 "fortran.lex" 
    8572 { strcpy(yylval.na,fortran_text); return TOK_ENDSUBROUTINE;} 
     11253#line 115 "fortran.lex" 
     11254{ return TOK_REWIND; } 
    857311255   YY_BREAK 
    857411256case 13: 
    857511257YY_RULE_SETUP 
    8576 #line 113 "fortran.lex" 
    8577 { strcpy(yylval.na,fortran_text); return TOK_ENDFUNCTION;} 
     11258#line 116 "fortran.lex" 
     11259{ return TOK_IMPLICIT; } 
    857811260   YY_BREAK 
    857911261case 14: 
    858011262YY_RULE_SETUP 
    8581 #line 114 "fortran.lex" 
    8582 { strcpy(yylval.na,fortran_text); return TOK_ENDUNIT;} 
     11263#line 117 "fortran.lex" 
     11264{ return TOK_NONE; } 
    858311265   YY_BREAK 
    858411266case 15: 
    858511267YY_RULE_SETUP 
    8586 #line 115 "fortran.lex" 
    8587 { pos_curinclude = setposcur()-9; return TOK_INCLUDE;} 
     11268#line 118 "fortran.lex" 
     11269{ return TOK_CALL; } 
    858811270   YY_BREAK 
    858911271case 16: 
    859011272YY_RULE_SETUP 
    8591 #line 116 "fortran.lex" 
    8592 { strcpy(yylval.na,fortran_text); 
    8593                               tmpc = (char) input(); unput(tmpc); 
    8594                               if ( ( tmpc >= 'a' && tmpc <= 'z' ) || 
    8595                                    ( tmpc >= 'A' && tmpc <= 'Z' )  )  return TOK_USE; 
    8596                               else                                    return TOK_NAME; 
     11273#line 119 "fortran.lex" 
     11274{ strcpy(yylval.na,fortran_text); return TOK_TRUE; } 
     11275   YY_BREAK 
     11276case 17: 
     11277YY_RULE_SETUP 
     11278#line 120 "fortran.lex" 
     11279{ strcpy(yylval.na,fortran_text); return TOK_FALSE; } 
     11280   YY_BREAK 
     11281case 18: 
     11282YY_RULE_SETUP 
     11283#line 121 "fortran.lex" 
     11284{ return TOK_POINT_TO; } 
     11285   YY_BREAK 
     11286case 19: 
     11287YY_RULE_SETUP 
     11288#line 122 "fortran.lex" 
     11289{ strcpy(yylval.na,fortran_text); return TOK_ASSIGNTYPE;} 
     11290   YY_BREAK 
     11291case 20: 
     11292YY_RULE_SETUP 
     11293#line 123 "fortran.lex" 
     11294{ strcpy(yylval.na,fortran_text); return TOK_DASTER; } 
     11295   YY_BREAK 
     11296case 21: 
     11297YY_RULE_SETUP 
     11298#line 124 "fortran.lex" 
     11299{ strcpy(yylval.na,fortran_text); return TOK_EQV; } 
     11300   YY_BREAK 
     11301case 22: 
     11302YY_RULE_SETUP 
     11303#line 125 "fortran.lex" 
     11304{ strcpy(yylval.na,fortran_text); return TOK_EQ;  } 
     11305   YY_BREAK 
     11306case 23: 
     11307YY_RULE_SETUP 
     11308#line 126 "fortran.lex" 
     11309{ strcpy(yylval.na,fortran_text); return TOK_GT;  } 
     11310   YY_BREAK 
     11311case 24: 
     11312YY_RULE_SETUP 
     11313#line 127 "fortran.lex" 
     11314{ strcpy(yylval.na,fortran_text); return TOK_GE;  } 
     11315   YY_BREAK 
     11316case 25: 
     11317YY_RULE_SETUP 
     11318#line 128 "fortran.lex" 
     11319{ strcpy(yylval.na,fortran_text); return TOK_LT;  } 
     11320   YY_BREAK 
     11321case 26: 
     11322YY_RULE_SETUP 
     11323#line 129 "fortran.lex" 
     11324{ strcpy(yylval.na,fortran_text); return TOK_LE;  } 
     11325   YY_BREAK 
     11326case 27: 
     11327YY_RULE_SETUP 
     11328#line 130 "fortran.lex" 
     11329{ strcpy(yylval.na,fortran_text); return TOK_NEQV;} 
     11330   YY_BREAK 
     11331case 28: 
     11332YY_RULE_SETUP 
     11333#line 131 "fortran.lex" 
     11334{ strcpy(yylval.na,fortran_text); return TOK_NE;  } 
     11335   YY_BREAK 
     11336case 29: 
     11337YY_RULE_SETUP 
     11338#line 132 "fortran.lex" 
     11339{ strcpy(yylval.na,fortran_text); return TOK_NOT; } 
     11340   YY_BREAK 
     11341case 30: 
     11342YY_RULE_SETUP 
     11343#line 133 "fortran.lex" 
     11344{ strcpy(yylval.na,fortran_text); return TOK_OR;  } 
     11345   YY_BREAK 
     11346case 31: 
     11347YY_RULE_SETUP 
     11348#line 134 "fortran.lex" 
     11349{ strcpy(yylval.na,fortran_text); return TOK_XOR; } 
     11350   YY_BREAK 
     11351case 32: 
     11352YY_RULE_SETUP 
     11353#line 135 "fortran.lex" 
     11354{ strcpy(yylval.na,fortran_text); return TOK_AND; } 
     11355   YY_BREAK 
     11356case 33: 
     11357YY_RULE_SETUP 
     11358#line 136 "fortran.lex" 
     11359{ strcpy(yylval.na,fortran_text); return TOK_EQUALEQUAL; } 
     11360   YY_BREAK 
     11361case 34: 
     11362YY_RULE_SETUP 
     11363#line 137 "fortran.lex" 
     11364{ strcpy(yylval.na,fortran_text); return TOK_SLASHEQUAL; } 
     11365   YY_BREAK 
     11366case 35: 
     11367YY_RULE_SETUP 
     11368#line 138 "fortran.lex" 
     11369{ strcpy(yylval.na,fortran_text); return TOK_INFEQUAL; } 
     11370   YY_BREAK 
     11371case 36: 
     11372YY_RULE_SETUP 
     11373#line 139 "fortran.lex" 
     11374{ strcpy(yylval.na,fortran_text); return TOK_SUPEQUAL; } 
     11375   YY_BREAK 
     11376case 37: 
     11377YY_RULE_SETUP 
     11378#line 140 "fortran.lex" 
     11379{ return TOK_MODULE; } 
     11380   YY_BREAK 
     11381case 38: 
     11382YY_RULE_SETUP 
     11383#line 141 "fortran.lex" 
     11384{ return TOK_WHILE; } 
     11385   YY_BREAK 
     11386case 39: 
     11387YY_RULE_SETUP 
     11388#line 142 "fortran.lex" 
     11389{ return TOK_CONCURRENT; } 
     11390   YY_BREAK 
     11391case 40: 
     11392YY_RULE_SETUP 
     11393#line 143 "fortran.lex" 
     11394{ return TOK_ENDDO; } 
     11395   YY_BREAK 
     11396case 41: 
     11397YY_RULE_SETUP 
     11398#line 144 "fortran.lex" 
     11399{ strcpy(yylval.na,&fortran_text[2]); 
     11400                              if (testandextractfromlist(&List_Do_labels,&fortran_text[2]) == 1) 
     11401                              { 
     11402                              return TOK_PLAINDO_LABEL_DJVIEW; 
     11403                              } 
     11404                              else 
     11405                              { 
     11406                              List_Do_labels=Insertname(List_Do_labels,yylval.na,1); 
     11407                              return TOK_PLAINDO_LABEL; 
     11408                             } 
     11409                             } 
     11410   YY_BREAK 
     11411case 42: 
     11412YY_RULE_SETUP 
     11413#line 155 "fortran.lex" 
     11414{ increment_nbtokens = 0; return TOK_PLAINDO;} 
     11415   YY_BREAK 
     11416case 43: 
     11417YY_RULE_SETUP 
     11418#line 156 "fortran.lex" 
     11419{ strcpy(yylval.na,fortran_text); return TOK_REAL; } 
     11420   YY_BREAK 
     11421case 44: 
     11422YY_RULE_SETUP 
     11423#line 157 "fortran.lex" 
     11424{ strcpy(yylval.na,fortran_text); return TOK_INTEGER; } 
     11425   YY_BREAK 
     11426case 45: 
     11427YY_RULE_SETUP 
     11428#line 158 "fortran.lex" 
     11429{ strcpy(yylval.na,fortran_text); return TOK_LOGICAL; } 
     11430   YY_BREAK 
     11431case 46: 
     11432YY_RULE_SETUP 
     11433#line 159 "fortran.lex" 
     11434{ strcpy(yylval.na,fortran_text); return TOK_CHARACTER; } 
     11435   YY_BREAK 
     11436case 47: 
     11437YY_RULE_SETUP 
     11438#line 160 "fortran.lex" 
     11439{ strcpy(yylval.na,fortran_text); return TOK_HEXA;} 
     11440   YY_BREAK 
     11441case 48: 
     11442YY_RULE_SETUP 
     11443#line 161 "fortran.lex" 
     11444{ strcpy(yylval.na,fortran_text); return TOK_DOUBLEPRECISION; } 
     11445   YY_BREAK 
     11446case 49: 
     11447YY_RULE_SETUP 
     11448#line 162 "fortran.lex" 
     11449{ strcpy(yylval.na,fortran_text); return TOK_DOUBLECOMPLEX; } 
     11450   YY_BREAK 
     11451case 50: 
     11452YY_RULE_SETUP 
     11453#line 163 "fortran.lex" 
     11454{ strcpy(yylval.na,fortran_text); return TOK_COMPLEX; } 
     11455   YY_BREAK 
     11456case 51: 
     11457YY_RULE_SETUP 
     11458#line 164 "fortran.lex" 
     11459{ return TOK_ALLOCATABLE; } 
     11460   YY_BREAK 
     11461case 52: 
     11462YY_RULE_SETUP 
     11463#line 165 "fortran.lex" 
     11464{ return TOK_CLOSE; } 
     11465   YY_BREAK 
     11466case 53: 
     11467YY_RULE_SETUP 
     11468#line 166 "fortran.lex" 
     11469{ return TOK_INQUIRE; } 
     11470   YY_BREAK 
     11471case 54: 
     11472YY_RULE_SETUP 
     11473#line 167 "fortran.lex" 
     11474{ return TOK_DIMENSION; } 
     11475   YY_BREAK 
     11476case 55: 
     11477YY_RULE_SETUP 
     11478#line 168 "fortran.lex" 
     11479{ return TOK_PAUSE; } 
     11480   YY_BREAK 
     11481case 56: 
     11482YY_RULE_SETUP 
     11483#line 169 "fortran.lex" 
     11484{ return TOK_EQUIVALENCE; } 
     11485   YY_BREAK 
     11486case 57: 
     11487YY_RULE_SETUP 
     11488#line 170 "fortran.lex" 
     11489{ return TOK_STOP; } 
     11490   YY_BREAK 
     11491case 58: 
     11492YY_RULE_SETUP 
     11493#line 171 "fortran.lex" 
     11494{ return TOK_WHERE; } 
     11495   YY_BREAK 
     11496case 59: 
     11497YY_RULE_SETUP 
     11498#line 172 "fortran.lex" 
     11499{ return TOK_ENDWHERE; } 
     11500   YY_BREAK 
     11501case 60: 
     11502YY_RULE_SETUP 
     11503#line 173 "fortran.lex" 
     11504{ return TOK_ELSEWHEREPAR; } 
     11505   YY_BREAK 
     11506case 61: 
     11507YY_RULE_SETUP 
     11508#line 174 "fortran.lex" 
     11509{ return TOK_ELSEWHERE; } 
     11510   YY_BREAK 
     11511case 62: 
     11512YY_RULE_SETUP 
     11513#line 175 "fortran.lex" 
     11514{ return TOK_CONTAINS; } 
     11515   YY_BREAK 
     11516case 63: 
     11517YY_RULE_SETUP 
     11518#line 176 "fortran.lex" 
     11519{ return TOK_ONLY; } 
     11520   YY_BREAK 
     11521case 64: 
     11522YY_RULE_SETUP 
     11523#line 177 "fortran.lex" 
     11524{ return TOK_PARAMETER; } 
     11525   YY_BREAK 
     11526case 65: 
     11527YY_RULE_SETUP 
     11528#line 178 "fortran.lex" 
     11529{ return TOK_RECURSIVE; } 
     11530   YY_BREAK 
     11531case 66: 
     11532YY_RULE_SETUP 
     11533#line 179 "fortran.lex" 
     11534{ return TOK_COMMON; } 
     11535   YY_BREAK 
     11536case 67: 
     11537YY_RULE_SETUP 
     11538#line 180 "fortran.lex" 
     11539{ return TOK_GLOBAL; } 
     11540   YY_BREAK 
     11541case 68: 
     11542YY_RULE_SETUP 
     11543#line 181 "fortran.lex" 
     11544{ return TOK_EXTERNAL; } 
     11545   YY_BREAK 
     11546case 69: 
     11547YY_RULE_SETUP 
     11548#line 182 "fortran.lex" 
     11549{ return TOK_INTENT; } 
     11550   YY_BREAK 
     11551case 70: 
     11552YY_RULE_SETUP 
     11553#line 183 "fortran.lex" 
     11554{ return TOK_POINTER; } 
     11555   YY_BREAK 
     11556case 71: 
     11557YY_RULE_SETUP 
     11558#line 184 "fortran.lex" 
     11559{ return TOK_OPTIONAL; } 
     11560   YY_BREAK 
     11561case 72: 
     11562YY_RULE_SETUP 
     11563#line 185 "fortran.lex" 
     11564{ return TOK_SAVE; } 
     11565   YY_BREAK 
     11566case 73: 
     11567YY_RULE_SETUP 
     11568#line 186 "fortran.lex" 
     11569{ pos_cur_decl = setposcur()-5; return TOK_TYPEPAR; } 
     11570   YY_BREAK 
     11571case 74: 
     11572YY_RULE_SETUP 
     11573#line 187 "fortran.lex" 
     11574{ return TOK_TYPE; } 
     11575   YY_BREAK 
     11576case 75: 
     11577YY_RULE_SETUP 
     11578#line 188 "fortran.lex" 
     11579{ return TOK_ENDTYPE; } 
     11580   YY_BREAK 
     11581case 76: 
     11582YY_RULE_SETUP 
     11583#line 189 "fortran.lex" 
     11584{ if (inallocate == 1) return TOK_STAT; else { strcpy(yylval.na,fortran_text); return TOK_NAME; } } 
     11585   YY_BREAK 
     11586case 77: 
     11587YY_RULE_SETUP 
     11588#line 190 "fortran.lex" 
     11589{ return TOK_OPEN; } 
     11590   YY_BREAK 
     11591case 78: 
     11592YY_RULE_SETUP 
     11593#line 191 "fortran.lex" 
     11594{ return TOK_RETURN; } 
     11595   YY_BREAK 
     11596case 79: 
     11597YY_RULE_SETUP 
     11598#line 192 "fortran.lex" 
     11599{ return TOK_EXIT; } 
     11600   YY_BREAK 
     11601case 80: 
     11602YY_RULE_SETUP 
     11603#line 193 "fortran.lex" 
     11604{ return TOK_PRINT; } 
     11605   YY_BREAK 
     11606case 81: 
     11607YY_RULE_SETUP 
     11608#line 194 "fortran.lex" 
     11609{ return TOK_PROCEDURE; } 
     11610   YY_BREAK 
     11611case 82: 
     11612YY_RULE_SETUP 
     11613#line 195 "fortran.lex" 
     11614{ in_io_control_spec = 1; return TOK_READ_PAR; } 
     11615   YY_BREAK 
     11616case 83: 
     11617YY_RULE_SETUP 
     11618#line 196 "fortran.lex" 
     11619{ return TOK_READ; } 
     11620   YY_BREAK 
     11621case 84: 
     11622YY_RULE_SETUP 
     11623#line 197 "fortran.lex" 
     11624{ return TOK_NAMELIST; } 
     11625   YY_BREAK 
     11626case 85: 
     11627YY_RULE_SETUP 
     11628#line 198 "fortran.lex" 
     11629{ in_io_control_spec = 1; return TOK_WRITE_PAR; } 
     11630   YY_BREAK 
     11631case 86: 
     11632YY_RULE_SETUP 
     11633#line 199 "fortran.lex" 
     11634{ return TOK_WRITE; } 
     11635   YY_BREAK 
     11636case 87: 
     11637YY_RULE_SETUP 
     11638#line 200 "fortran.lex" 
     11639{ strcpy(yylval.na,fortran_text); return TOK_FLUSH; } 
     11640   YY_BREAK 
     11641case 88: 
     11642YY_RULE_SETUP 
     11643#line 201 "fortran.lex" 
     11644{ return TOK_TARGET; } 
     11645   YY_BREAK 
     11646case 89: 
     11647YY_RULE_SETUP 
     11648#line 202 "fortran.lex" 
     11649{ return TOK_PUBLIC; } 
     11650   YY_BREAK 
     11651case 90: 
     11652YY_RULE_SETUP 
     11653#line 203 "fortran.lex" 
     11654{ return TOK_PRIVATE; } 
     11655   YY_BREAK 
     11656case 91: 
     11657YY_RULE_SETUP 
     11658#line 204 "fortran.lex" 
     11659{ strcpy(yylval.na,fortran_text); return TOK_IN; } 
     11660   YY_BREAK 
     11661case 92: 
     11662YY_RULE_SETUP 
     11663#line 205 "fortran.lex" 
     11664{ pos_curdata = setposcur()-strlen(fortran_text); /*Init_List_Data_Var();*/ return TOK_DATA; } 
     11665   YY_BREAK 
     11666case 93: 
     11667YY_RULE_SETUP 
     11668#line 206 "fortran.lex" 
     11669{ return TOK_PLAINGOTO; } 
     11670   YY_BREAK 
     11671case 94: 
     11672YY_RULE_SETUP 
     11673#line 207 "fortran.lex" 
     11674{ strcpy(yylval.na,fortran_text); return TOK_OUT; } 
     11675   YY_BREAK 
     11676case 95: 
     11677YY_RULE_SETUP 
     11678#line 208 "fortran.lex" 
     11679{ strcpy(yylval.na,fortran_text); return TOK_INOUT; } 
     11680   YY_BREAK 
     11681case 96: 
     11682YY_RULE_SETUP 
     11683#line 209 "fortran.lex" 
     11684{ return TOK_INTRINSIC; } 
     11685   YY_BREAK 
     11686case 97: 
     11687YY_RULE_SETUP 
     11688#line 210 "fortran.lex" 
     11689{ return TOK_THEN; } 
     11690   YY_BREAK 
     11691case 98: 
     11692YY_RULE_SETUP 
     11693#line 211 "fortran.lex" 
     11694{ return TOK_ELSEIF; } 
     11695   YY_BREAK 
     11696case 99: 
     11697YY_RULE_SETUP 
     11698#line 212 "fortran.lex" 
     11699{ return TOK_ELSE; } 
     11700   YY_BREAK 
     11701case 100: 
     11702YY_RULE_SETUP 
     11703#line 213 "fortran.lex" 
     11704{ return TOK_ENDIF; } 
     11705   YY_BREAK 
     11706case 101: 
     11707YY_RULE_SETUP 
     11708#line 214 "fortran.lex" 
     11709{strcpy(yylval.na,fortran_text); 
     11710                            return TOK_LOGICALIF_PAR; 
    859711711                            } 
    859811712   YY_BREAK 
    8599 case 17: 
    8600 YY_RULE_SETUP 
    8601 #line 122 "fortran.lex" 
    8602 { return TOK_REWIND; } 
    8603    YY_BREAK 
    8604 case 18: 
    8605 YY_RULE_SETUP 
    8606 #line 123 "fortran.lex" 
    8607 { return TOK_IMPLICIT; } 
    8608    YY_BREAK 
    8609 case 19: 
    8610 YY_RULE_SETUP 
    8611 #line 124 "fortran.lex" 
    8612 { return TOK_NONE; } 
    8613    YY_BREAK 
    8614 case 20: 
    8615 YY_RULE_SETUP 
    8616 #line 125 "fortran.lex" 
    8617 { return TOK_CALL; } 
    8618    YY_BREAK 
    8619 case 21: 
    8620 YY_RULE_SETUP 
    8621 #line 126 "fortran.lex" 
    8622 { return TOK_TRUE; } 
    8623    YY_BREAK 
    8624 case 22: 
    8625 YY_RULE_SETUP 
    8626 #line 127 "fortran.lex" 
    8627 { return TOK_FALSE; } 
    8628    YY_BREAK 
    8629 case 23: 
    8630 YY_RULE_SETUP 
    8631 #line 128 "fortran.lex" 
    8632 { return TOK_POINT_TO; } 
    8633    YY_BREAK 
    8634 case 24: 
    8635 YY_RULE_SETUP 
    8636 #line 129 "fortran.lex" 
    8637 { strcpy(yylval.na,fortran_text); return TOK_ASSIGNTYPE;} 
    8638    YY_BREAK 
    8639 case 25: 
    8640 YY_RULE_SETUP 
    8641 #line 130 "fortran.lex" 
    8642 { strcpy(yylval.na,fortran_text); return TOK_DASTER; } 
    8643    YY_BREAK 
    8644 case 26: 
    8645 YY_RULE_SETUP 
    8646 #line 131 "fortran.lex" 
    8647 { strcpy(yylval.na,fortran_text); return TOK_EQV; } 
    8648    YY_BREAK 
    8649 case 27: 
    8650 YY_RULE_SETUP 
    8651 #line 132 "fortran.lex" 
    8652 { strcpy(yylval.na,fortran_text); return TOK_EQ;  } 
    8653    YY_BREAK 
    8654 case 28: 
    8655 YY_RULE_SETUP 
    8656 #line 133 "fortran.lex" 
    8657 { strcpy(yylval.na,fortran_text); return TOK_GT;  } 
    8658    YY_BREAK 
    8659 case 29: 
    8660 YY_RULE_SETUP 
    8661 #line 134 "fortran.lex" 
    8662 { strcpy(yylval.na,fortran_text); return TOK_GE;  } 
    8663    YY_BREAK 
    8664 case 30: 
    8665 YY_RULE_SETUP 
    8666 #line 135 "fortran.lex" 
    8667 { strcpy(yylval.na,fortran_text); return TOK_LT;  } 
    8668    YY_BREAK 
    8669 case 31: 
    8670 YY_RULE_SETUP 
    8671 #line 136 "fortran.lex" 
    8672 { strcpy(yylval.na,fortran_text); return TOK_LE;  } 
    8673    YY_BREAK 
    8674 case 32: 
    8675 YY_RULE_SETUP 
    8676 #line 137 "fortran.lex" 
    8677 { strcpy(yylval.na,fortran_text); return TOK_NEQV;} 
    8678    YY_BREAK 
    8679 case 33: 
    8680 YY_RULE_SETUP 
    8681 #line 138 "fortran.lex" 
    8682 { strcpy(yylval.na,fortran_text); return TOK_NE;  } 
    8683    YY_BREAK 
    8684 case 34: 
    8685 YY_RULE_SETUP 
    8686 #line 139 "fortran.lex" 
    8687 { strcpy(yylval.na,fortran_text); return TOK_NOT; } 
    8688    YY_BREAK 
    8689 case 35: 
    8690 YY_RULE_SETUP 
    8691 #line 140 "fortran.lex" 
    8692 { strcpy(yylval.na,fortran_text); return TOK_OR;  } 
    8693    YY_BREAK 
    8694 case 36: 
    8695 YY_RULE_SETUP 
    8696 #line 141 "fortran.lex" 
    8697 { strcpy(yylval.na,fortran_text); return TOK_XOR; } 
    8698    YY_BREAK 
    8699 case 37: 
    8700 YY_RULE_SETUP 
    8701 #line 142 "fortran.lex" 
    8702 { strcpy(yylval.na,fortran_text); return TOK_AND; } 
    8703    YY_BREAK 
    8704 case 38: 
    8705 YY_RULE_SETUP 
    8706 #line 143 "fortran.lex" 
    8707 { return TOK_MODULE; } 
    8708    YY_BREAK 
    8709 case 39: 
    8710 YY_RULE_SETUP 
    8711 #line 144 "fortran.lex" 
    8712 { return TOK_WHILE; } 
    8713    YY_BREAK 
    8714 case 40: 
    8715 YY_RULE_SETUP 
    8716 #line 145 "fortran.lex" 
    8717 { return TOK_CONCURRENT; } 
    8718    YY_BREAK 
    8719 case 41: 
    8720 YY_RULE_SETUP 
    8721 #line 146 "fortran.lex" 
    8722 { return TOK_ENDDO; } 
    8723    YY_BREAK 
    8724 case 42: 
    8725 YY_RULE_SETUP 
    8726 #line 147 "fortran.lex" 
    8727 { return TOK_PLAINDO;} 
    8728    YY_BREAK 
    8729 case 43: 
    8730 YY_RULE_SETUP 
    8731 #line 148 "fortran.lex" 
    8732 { strcpy(yylval.na,fortran_text); return TOK_REAL; } 
    8733    YY_BREAK 
    8734 case 44: 
    8735 YY_RULE_SETUP 
    8736 #line 149 "fortran.lex" 
    8737 { strcpy(yylval.na,fortran_text); return TOK_INTEGER; } 
    8738    YY_BREAK 
    8739 case 45: 
    8740 YY_RULE_SETUP 
    8741 #line 150 "fortran.lex" 
    8742 { strcpy(yylval.na,fortran_text); return TOK_LOGICAL; } 
    8743    YY_BREAK 
    8744 case 46: 
    8745 YY_RULE_SETUP 
    8746 #line 151 "fortran.lex" 
    8747 { strcpy(yylval.na,fortran_text); return TOK_CHARACTER; } 
    8748    YY_BREAK 
    8749 case 47: 
    8750 YY_RULE_SETUP 
    8751 #line 152 "fortran.lex" 
    8752 { strcpy(yylval.na,fortran_text); return TOK_HEXA;} 
    8753    YY_BREAK 
    8754 case 48: 
    8755 YY_RULE_SETUP 
    8756 #line 153 "fortran.lex" 
    8757 { strcpy(yylval.na,fortran_text); return TOK_DOUBLEPRECISION; } 
    8758    YY_BREAK 
    8759 case 49: 
    8760 YY_RULE_SETUP 
    8761 #line 154 "fortran.lex" 
    8762 { strcpy(yylval.na,fortran_text); return TOK_DOUBLECOMPLEX; } 
    8763    YY_BREAK 
    8764 case 50: 
    8765 YY_RULE_SETUP 
    8766 #line 155 "fortran.lex" 
    8767 { return TOK_COMPLEX; } 
    8768    YY_BREAK 
    8769 case 51: 
    8770 YY_RULE_SETUP 
    8771 #line 156 "fortran.lex" 
    8772 { return TOK_ALLOCATABLE; } 
    8773    YY_BREAK 
    8774 case 52: 
    8775 YY_RULE_SETUP 
    8776 #line 157 "fortran.lex" 
    8777 { return TOK_CLOSE; } 
    8778    YY_BREAK 
    8779 case 53: 
    8780 YY_RULE_SETUP 
    8781 #line 158 "fortran.lex" 
    8782 { return TOK_INQUIRE; } 
    8783    YY_BREAK 
    8784 case 54: 
    8785 YY_RULE_SETUP 
    8786 #line 159 "fortran.lex" 
    8787 { return TOK_DIMENSION; } 
    8788    YY_BREAK 
    8789 case 55: 
    8790 YY_RULE_SETUP 
    8791 #line 160 "fortran.lex" 
    8792 { return TOK_PAUSE; } 
    8793    YY_BREAK 
    8794 case 56: 
    8795 YY_RULE_SETUP 
    8796 #line 161 "fortran.lex" 
    8797 { return TOK_EQUIVALENCE; } 
    8798    YY_BREAK 
    8799 case 57: 
    8800 YY_RULE_SETUP 
    8801 #line 162 "fortran.lex" 
    8802 { return TOK_STOP; } 
    8803    YY_BREAK 
    8804 case 58: 
    8805 YY_RULE_SETUP 
    8806 #line 163 "fortran.lex" 
    8807 { return TOK_WHERE; } 
    8808    YY_BREAK 
    8809 case 59: 
    8810 YY_RULE_SETUP 
    8811 #line 164 "fortran.lex" 
    8812 { return TOK_ENDWHERE; } 
    8813    YY_BREAK 
    8814 case 60: 
    8815 YY_RULE_SETUP 
    8816 #line 165 "fortran.lex" 
    8817 { return TOK_ELSEWHEREPAR; } 
    8818    YY_BREAK 
    8819 case 61: 
    8820 YY_RULE_SETUP 
    8821 #line 166 "fortran.lex" 
    8822 { return TOK_ELSEWHERE; } 
    8823    YY_BREAK 
    8824 case 62: 
    8825 YY_RULE_SETUP 
    8826 #line 167 "fortran.lex" 
    8827 { return TOK_CONTAINS; } 
    8828    YY_BREAK 
    8829 case 63: 
    8830 YY_RULE_SETUP 
    8831 #line 168 "fortran.lex" 
    8832 { return TOK_ONLY; } 
    8833    YY_BREAK 
    8834 case 64: 
    8835 YY_RULE_SETUP 
    8836 #line 169 "fortran.lex" 
    8837 { return TOK_PARAMETER; } 
    8838    YY_BREAK 
    8839 case 65: 
    8840 YY_RULE_SETUP 
    8841 #line 170 "fortran.lex" 
    8842 { return TOK_RECURSIVE; } 
    8843    YY_BREAK 
    8844 case 66: 
    8845 YY_RULE_SETUP 
    8846 #line 171 "fortran.lex" 
    8847 { return TOK_COMMON; } 
    8848    YY_BREAK 
    8849 case 67: 
    8850 YY_RULE_SETUP 
    8851 #line 172 "fortran.lex" 
    8852 { return TOK_GLOBAL; } 
    8853    YY_BREAK 
    8854 case 68: 
    8855 YY_RULE_SETUP 
    8856 #line 173 "fortran.lex" 
    8857 { return TOK_EXTERNAL; } 
    8858    YY_BREAK 
    8859 case 69: 
    8860 YY_RULE_SETUP 
    8861 #line 174 "fortran.lex" 
    8862 { return TOK_INTENT; } 
    8863    YY_BREAK 
    8864 case 70: 
    8865 YY_RULE_SETUP 
    8866 #line 175 "fortran.lex" 
    8867 { return TOK_POINTER; } 
    8868    YY_BREAK 
    8869 case 71: 
    8870 YY_RULE_SETUP 
    8871 #line 176 "fortran.lex" 
    8872 { return TOK_OPTIONAL; } 
    8873    YY_BREAK 
    8874 case 72: 
    8875 YY_RULE_SETUP 
    8876 #line 177 "fortran.lex" 
    8877 { return TOK_SAVE; } 
    8878    YY_BREAK 
    8879 case 73: 
    8880 YY_RULE_SETUP 
    8881 #line 178 "fortran.lex" 
    8882 { pos_cur_decl = setposcur()-5; return TOK_TYPEPAR; } 
    8883    YY_BREAK 
    8884 case 74: 
    8885 YY_RULE_SETUP 
    8886 #line 179 "fortran.lex" 
    8887 { return TOK_TYPE; } 
    8888    YY_BREAK 
    8889 case 75: 
    8890 YY_RULE_SETUP 
    8891 #line 180 "fortran.lex" 
    8892 { return TOK_ENDTYPE; } 
    8893    YY_BREAK 
    8894 case 76: 
    8895 YY_RULE_SETUP 
    8896 #line 181 "fortran.lex" 
    8897 { if (inallocate == 1) return TOK_STAT; else { strcpy(yylval.na,fortran_text); return TOK_NAME; } } 
    8898    YY_BREAK 
    8899 case 77: 
    8900 YY_RULE_SETUP 
    8901 #line 182 "fortran.lex" 
    8902 { return TOK_OPEN; } 
    8903    YY_BREAK 
    8904 case 78: 
    8905 YY_RULE_SETUP 
    8906 #line 183 "fortran.lex" 
    8907 { return TOK_RETURN; } 
    8908    YY_BREAK 
    8909 case 79: 
    8910 /* rule 79 can match eol */ 
    8911 YY_RULE_SETUP 
    8912 #line 184 "fortran.lex" 
    8913 { return TOK_EXIT; } 
    8914    YY_BREAK 
    8915 case 80: 
    8916 YY_RULE_SETUP 
    8917 #line 185 "fortran.lex" 
    8918 { return TOK_PRINT; } 
    8919    YY_BREAK 
    8920 case 81: 
    8921 YY_RULE_SETUP 
    8922 #line 186 "fortran.lex" 
    8923 { return TOK_PROCEDURE; } 
    8924    YY_BREAK 
    8925 case 82: 
    8926 YY_RULE_SETUP 
    8927 #line 187 "fortran.lex" 
    8928 { return TOK_READ; } 
    8929    YY_BREAK 
    8930 case 83: 
    8931 YY_RULE_SETUP 
    8932 #line 188 "fortran.lex" 
    8933 { return TOK_NAMELIST; } 
    8934    YY_BREAK 
    8935 case 84: 
    8936 YY_RULE_SETUP 
    8937 #line 189 "fortran.lex" 
    8938 { return TOK_WRITE; } 
    8939    YY_BREAK 
    8940 case 85: 
    8941 YY_RULE_SETUP 
    8942 #line 190 "fortran.lex" 
    8943 { return TOK_FLUSH; } 
    8944    YY_BREAK 
    8945 case 86: 
    8946 YY_RULE_SETUP 
    8947 #line 191 "fortran.lex" 
    8948 { return TOK_TARGET; } 
    8949    YY_BREAK 
    8950 case 87: 
    8951 YY_RULE_SETUP 
    8952 #line 192 "fortran.lex" 
    8953 { return TOK_PUBLIC; } 
    8954    YY_BREAK 
    8955 case 88: 
    8956 YY_RULE_SETUP 
    8957 #line 193 "fortran.lex" 
    8958 { return TOK_PRIVATE; } 
    8959    YY_BREAK 
    8960 case 89: 
    8961 YY_RULE_SETUP 
    8962 #line 194 "fortran.lex" 
    8963 { strcpy(yylval.na,fortran_text); return TOK_IN; } 
    8964    YY_BREAK 
    8965 case 90: 
    8966 YY_RULE_SETUP 
    8967 #line 195 "fortran.lex" 
    8968 { pos_curdata = setposcur()-strlen(fortran_text); Init_List_Data_Var(); return TOK_DATA; } 
    8969    YY_BREAK 
    8970 case 91: 
    8971 YY_RULE_SETUP 
    8972 #line 196 "fortran.lex" 
    8973 { return TOK_CONTINUE; } 
    8974    YY_BREAK 
    8975 case 92: 
    8976 YY_RULE_SETUP 
    8977 #line 197 "fortran.lex" 
    8978 { return TOK_PLAINGOTO; } 
    8979    YY_BREAK 
    8980 case 93: 
    8981 YY_RULE_SETUP 
    8982 #line 198 "fortran.lex" 
    8983 { strcpy(yylval.na,fortran_text); return TOK_OUT; } 
    8984    YY_BREAK 
    8985 case 94: 
    8986 YY_RULE_SETUP 
    8987 #line 199 "fortran.lex" 
    8988 { strcpy(yylval.na,fortran_text); return TOK_INOUT; } 
    8989    YY_BREAK 
    8990 case 95: 
    8991 YY_RULE_SETUP 
    8992 #line 200 "fortran.lex" 
    8993 { return TOK_INTRINSIC; } 
    8994    YY_BREAK 
    8995 case 96: 
    8996 YY_RULE_SETUP 
    8997 #line 201 "fortran.lex" 
    8998 { return TOK_THEN; } 
    8999    YY_BREAK 
    9000 case 97: 
    9001 YY_RULE_SETUP 
    9002 #line 202 "fortran.lex" 
    9003 { return TOK_ELSEIF; } 
    9004    YY_BREAK 
    9005 case 98: 
    9006 YY_RULE_SETUP 
    9007 #line 203 "fortran.lex" 
    9008 { return TOK_ELSE; } 
    9009    YY_BREAK 
    9010 case 99: 
    9011 YY_RULE_SETUP 
    9012 #line 204 "fortran.lex" 
    9013 { return TOK_ENDIF; } 
    9014    YY_BREAK 
    9015 case 100: 
    9016 YY_RULE_SETUP 
    9017 #line 205 "fortran.lex" 
    9018 { return TOK_LOGICALIF; } 
    9019    YY_BREAK 
    9020 case 101: 
    9021 YY_RULE_SETUP 
    9022 #line 206 "fortran.lex" 
    9023 { return TOK_SUM; } 
    9024    YY_BREAK 
    902511713case 102: 
    9026 YY_RULE_SETUP 
    9027 #line 207 "fortran.lex" 
    9028 { return TOK_MAX; } 
     11714/* rule 102 can match eol */ 
     11715*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11716(yy_c_buf_p) = yy_cp = yy_bp + 2; 
     11717YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11718YY_RULE_SETUP 
     11719#line 217 "fortran.lex" 
     11720{strcpy(yylval.na,fortran_text); 
     11721                            return TOK_NAME; 
     11722                            } 
    902911723   YY_BREAK 
    903011724case 103: 
    903111725YY_RULE_SETUP 
    9032 #line 208 "fortran.lex" 
    9033 { return TOK_TANH; } 
     11726#line 220 "fortran.lex" 
     11727{strcpy(yylval.na,fortran_text); 
     11728                            return TOK_LOGICALIF_PAR; 
     11729                            } 
    903411730   YY_BREAK 
    903511731case 104: 
    903611732YY_RULE_SETUP 
    9037 #line 209 "fortran.lex" 
    9038 { return TOK_MAXVAL; } 
     11733#line 223 "fortran.lex" 
     11734{ return TOK_SELECTCASE; } 
    903911735   YY_BREAK 
    904011736case 105: 
    904111737YY_RULE_SETUP 
    9042 #line 210 "fortran.lex" 
    9043 { return TOK_TRIM; } 
     11738#line 224 "fortran.lex" 
     11739{ if (in_select_case_stmt > 0) return TOK_CASE ; else return TOK_NAME;} 
    904411740   YY_BREAK 
    904511741case 106: 
    904611742YY_RULE_SETUP 
    9047 #line 211 "fortran.lex" 
    9048 { return TOK_SQRT; } 
     11743#line 225 "fortran.lex" 
     11744{ return TOK_DEFAULT; } 
    904911745   YY_BREAK 
    905011746case 107: 
    905111747YY_RULE_SETUP 
    9052 #line 212 "fortran.lex" 
    9053 { return TOK_SELECTCASE; } 
     11748#line 226 "fortran.lex" 
     11749{ return TOK_ENDSELECT; } 
    905411750   YY_BREAK 
    905511751case 108: 
    905611752YY_RULE_SETUP 
    9057 #line 213 "fortran.lex" 
    9058 { return TOK_CASE; } 
     11753#line 227 "fortran.lex" 
     11754{ return TOK_FILE; } 
    905911755   YY_BREAK 
    906011756case 109: 
    906111757YY_RULE_SETUP 
    9062 #line 214 "fortran.lex" 
    9063 { return TOK_DEFAULT; } 
     11758#line 228 "fortran.lex" 
     11759{ return TOK_ACCESS; } 
    906411760   YY_BREAK 
    906511761case 110: 
    906611762YY_RULE_SETUP 
    9067 #line 215 "fortran.lex" 
    9068 { return TOK_ENDSELECT; } 
     11763#line 229 "fortran.lex" 
     11764{ return TOK_ACTION; } 
    906911765   YY_BREAK 
    907011766case 111: 
    907111767YY_RULE_SETUP 
    9072 #line 216 "fortran.lex" 
    9073 { return TOK_FILE; } 
     11768#line 230 "fortran.lex" 
     11769{ return TOK_IOLENGTH; } 
    907411770   YY_BREAK 
    907511771case 112: 
    907611772YY_RULE_SETUP 
    9077 #line 217 "fortran.lex" 
     11773#line 231 "fortran.lex" 
    907811774{ return TOK_UNIT; } 
    907911775   YY_BREAK 
    908011776case 113: 
    908111777YY_RULE_SETUP 
    9082 #line 218 "fortran.lex" 
     11778#line 232 "fortran.lex" 
     11779{ return TOK_OPENED; } 
     11780   YY_BREAK 
     11781case 114: 
     11782YY_RULE_SETUP 
     11783#line 233 "fortran.lex" 
    908311784{ return TOK_FMT; } 
    908411785   YY_BREAK 
    9085 case 114: 
    9086 YY_RULE_SETUP 
    9087 #line 219 "fortran.lex" 
     11786case 115: 
     11787YY_RULE_SETUP 
     11788#line 234 "fortran.lex" 
    908811789{ return TOK_NML; } 
    908911790   YY_BREAK 
    9090 case 115: 
    9091 YY_RULE_SETUP 
    9092 #line 220 "fortran.lex" 
     11791case 116: 
     11792YY_RULE_SETUP 
     11793#line 235 "fortran.lex" 
    909311794{ return TOK_END; } 
    909411795   YY_BREAK 
    9095 case 116: 
    9096 YY_RULE_SETUP 
    9097 #line 221 "fortran.lex" 
     11796case 117: 
     11797YY_RULE_SETUP 
     11798#line 236 "fortran.lex" 
    909811799{ return TOK_EOR; } 
    909911800   YY_BREAK 
    9100 case 117: 
    9101 YY_RULE_SETUP 
    9102 #line 222 "fortran.lex" 
     11801case 118: 
     11802YY_RULE_SETUP 
     11803#line 237 "fortran.lex" 
     11804{ in_bind = 1; return TOK_BIND;} 
     11805   YY_BREAK 
     11806case 119: 
     11807*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11808(yy_c_buf_p) = yy_cp = yy_bp + 3; 
     11809YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11810YY_RULE_SETUP 
     11811#line 238 "fortran.lex" 
     11812{ 
     11813                            if (in_char_selector ==1) 
     11814                               return TOK_LEN; 
     11815                            else 
     11816                            { 
     11817                            strcpy(yylval.na,fortran_text); return TOK_NAME; 
     11818                            } 
     11819                            } 
     11820   YY_BREAK 
     11821case 120: 
     11822*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11823(yy_c_buf_p) = yy_cp = yy_bp + 4; 
     11824YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11825YY_RULE_SETUP 
     11826#line 246 "fortran.lex" 
     11827{ 
     11828                            if ((in_char_selector==1) || (in_kind_selector == 1)) 
     11829                               return TOK_KIND; 
     11830                            else 
     11831                            { 
     11832                            strcpy(yylval.na,fortran_text); return TOK_NAME; 
     11833                            } 
     11834                            } 
     11835   YY_BREAK 
     11836case 121: 
     11837YY_RULE_SETUP 
     11838#line 254 "fortran.lex" 
     11839{ return TOK_ERRMSG; } 
     11840   YY_BREAK 
     11841case 122: 
     11842YY_RULE_SETUP 
     11843#line 255 "fortran.lex" 
     11844{ return TOK_MOLD; } 
     11845   YY_BREAK 
     11846case 123: 
     11847YY_RULE_SETUP 
     11848#line 256 "fortran.lex" 
     11849{ return TOK_SOURCE; } 
     11850   YY_BREAK 
     11851case 124: 
     11852YY_RULE_SETUP 
     11853#line 257 "fortran.lex" 
     11854{ return TOK_POSITION; } 
     11855   YY_BREAK 
     11856case 125: 
     11857YY_RULE_SETUP 
     11858#line 258 "fortran.lex" 
     11859{ return TOK_IOMSG; } 
     11860   YY_BREAK 
     11861case 126: 
     11862YY_RULE_SETUP 
     11863#line 259 "fortran.lex" 
     11864{ return TOK_IOSTAT; } 
     11865   YY_BREAK 
     11866case 127: 
     11867YY_RULE_SETUP 
     11868#line 260 "fortran.lex" 
    910311869{ return TOK_ERR; } 
    910411870   YY_BREAK 
    9105 case 118: 
    9106 YY_RULE_SETUP 
    9107 #line 223 "fortran.lex" 
     11871case 128: 
     11872YY_RULE_SETUP 
     11873#line 261 "fortran.lex" 
     11874{ return TOK_FORM; } 
     11875   YY_BREAK 
     11876case 129: 
     11877*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11878(yy_c_buf_p) = yy_cp = yy_bp + 4; 
     11879YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11880YY_RULE_SETUP 
     11881#line 262 "fortran.lex" 
     11882{ 
     11883                            if (in_inquire==1 || in_bind == 1) 
     11884                               return TOK_NAME_EQ; 
     11885                            else 
     11886                            { 
     11887                            strcpy(yylval.na,fortran_text); return TOK_NAME; 
     11888                            } 
     11889                            } 
     11890   YY_BREAK 
     11891case 130: 
     11892YY_RULE_SETUP 
     11893#line 270 "fortran.lex" 
     11894{ return TOK_RECL; } 
     11895   YY_BREAK 
     11896case 131: 
     11897*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11898(yy_c_buf_p) = yy_cp = yy_bp + 3; 
     11899YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11900YY_RULE_SETUP 
     11901#line 271 "fortran.lex" 
     11902{ if (in_io_control_spec == 1) 
     11903                              return TOK_REC; 
     11904                             else 
     11905                             { 
     11906                             strcpy(yylval.na,fortran_text); return TOK_NAME; 
     11907                             } 
     11908                             } 
     11909   YY_BREAK 
     11910case 132: 
     11911*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     11912(yy_c_buf_p) = yy_cp = yy_bp + 6; 
     11913YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     11914YY_RULE_SETUP 
     11915#line 278 "fortran.lex" 
     11916{ if (close_or_connect == 1) 
     11917                              return TOK_STATUS; 
     11918                             else 
     11919                             { 
     11920                             strcpy(yylval.na,fortran_text); return TOK_NAME; 
     11921                             } 
     11922                             } 
     11923   YY_BREAK 
     11924case 133: 
     11925YY_RULE_SETUP 
     11926#line 285 "fortran.lex" 
     11927{ strcpy(yylval.na,fortran_text); return TOK_NAME;} 
     11928   YY_BREAK 
     11929case 134: 
     11930YY_RULE_SETUP 
     11931#line 286 "fortran.lex" 
    910811932{ return TOK_EXIST; } 
    910911933   YY_BREAK 
    9110 case 119: 
    9111 YY_RULE_SETUP 
    9112 #line 224 "fortran.lex" 
    9113 { return TOK_MIN; } 
    9114    YY_BREAK 
    9115 case 120: 
    9116 YY_RULE_SETUP 
    9117 #line 225 "fortran.lex" 
    9118 { return TOK_NINT; } 
    9119    YY_BREAK 
    9120 case 121: 
    9121 YY_RULE_SETUP 
    9122 #line 226 "fortran.lex" 
    9123 { return TOK_FLOAT; } 
    9124    YY_BREAK 
    9125 case 122: 
    9126 YY_RULE_SETUP 
    9127 #line 227 "fortran.lex" 
    9128 { return TOK_EXP; } 
    9129    YY_BREAK 
    9130 case 123: 
    9131 YY_RULE_SETUP 
    9132 #line 228 "fortran.lex" 
    9133 { return TOK_COS; } 
    9134    YY_BREAK 
    9135 case 124: 
    9136 YY_RULE_SETUP 
    9137 #line 229 "fortran.lex" 
    9138 { return TOK_COSH; } 
    9139    YY_BREAK 
    9140 case 125: 
    9141 YY_RULE_SETUP 
    9142 #line 230 "fortran.lex" 
    9143 { return TOK_ACOS; } 
    9144    YY_BREAK 
    9145 case 126: 
    9146 YY_RULE_SETUP 
    9147 #line 231 "fortran.lex" 
    9148 { return TOK_SIN; } 
    9149    YY_BREAK 
    9150 case 127: 
    9151 YY_RULE_SETUP 
    9152 #line 232 "fortran.lex" 
    9153 { return TOK_SINH; } 
    9154    YY_BREAK 
    9155 case 128: 
    9156 YY_RULE_SETUP 
    9157 #line 233 "fortran.lex" 
    9158 { return TOK_ASIN; } 
    9159    YY_BREAK 
    9160 case 129: 
    9161 YY_RULE_SETUP 
    9162 #line 234 "fortran.lex" 
    9163 { return TOK_LOG; } 
    9164    YY_BREAK 
    9165 case 130: 
    9166 YY_RULE_SETUP 
    9167 #line 235 "fortran.lex" 
    9168 { return TOK_TAN; } 
    9169    YY_BREAK 
    9170 case 131: 
    9171 YY_RULE_SETUP 
    9172 #line 236 "fortran.lex" 
    9173 { return TOK_ATAN; } 
    9174    YY_BREAK 
    9175 case 132: 
    9176 YY_RULE_SETUP 
    9177 #line 237 "fortran.lex" 
     11934case 135: 
     11935YY_RULE_SETUP 
     11936#line 287 "fortran.lex" 
    917811937{ return TOK_CYCLE; } 
    917911938   YY_BREAK 
    9180 case 133: 
    9181 YY_RULE_SETUP 
    9182 #line 238 "fortran.lex" 
    9183 { return TOK_ABS; } 
    9184    YY_BREAK 
    9185 case 134: 
    9186 YY_RULE_SETUP 
    9187 #line 239 "fortran.lex" 
    9188 { return TOK_MOD; } 
    9189    YY_BREAK 
    9190 case 135: 
    9191 YY_RULE_SETUP 
    9192 #line 240 "fortran.lex" 
    9193 { return TOK_SIGN; } 
    9194    YY_BREAK 
    919511939case 136: 
    919611940YY_RULE_SETUP 
    9197 #line 241 "fortran.lex" 
    9198 { return TOK_MINLOC; } 
     11941#line 288 "fortran.lex" 
     11942{ return TOK_BACKSPACE; } 
    919911943   YY_BREAK 
    920011944case 137: 
    920111945YY_RULE_SETUP 
    9202 #line 242 "fortran.lex" 
    9203 { return TOK_MAXLOC; } 
     11946#line 289 "fortran.lex" 
     11947{ return TOK_FOURDOTS; } 
    920411948   YY_BREAK 
    920511949case 138: 
    9206 YY_RULE_SETUP 
    9207 #line 243 "fortran.lex" 
    9208 { return TOK_MINVAL; } 
     11950/* rule 138 can match eol */ 
     11951YY_RULE_SETUP 
     11952#line 290 "fortran.lex" 
     11953{ strcpy(yylval.na,fortran_text); return TOK_DSLASH; } 
    920911954   YY_BREAK 
    921011955case 139: 
    921111956YY_RULE_SETUP 
    9212 #line 244 "fortran.lex" 
    9213 { return TOK_BACKSPACE; } 
     11957#line 291 "fortran.lex" 
     11958{ return TOK_LEFTAB; } 
    921411959   YY_BREAK 
    921511960case 140: 
    921611961YY_RULE_SETUP 
    9217 #line 245 "fortran.lex" 
    9218 { return TOK_FOURDOTS; } 
     11962#line 292 "fortran.lex" 
     11963{ return TOK_RIGHTAB; } 
    921911964   YY_BREAK 
    922011965case 141: 
    922111966YY_RULE_SETUP 
    9222 #line 246 "fortran.lex" 
    9223 { return TOK_LEFTAB; } 
     11967#line 293 "fortran.lex" 
     11968{ strcpy(yylval.na,fortran_text); return TOK_SLASH; } 
    922411969   YY_BREAK 
    922511970case 142: 
    9226 YY_RULE_SETUP 
    9227 #line 247 "fortran.lex" 
    9228 { return TOK_RIGHTAB; } 
     11971/* rule 142 can match eol */ 
     11972YY_RULE_SETUP 
     11973#line 294 "fortran.lex" 
     11974{ 
     11975                              INCREMENT_LINE_NUM() ; strcpy(yylval.na,fortran_text); return TOK_CHAR_CUT; } 
    922911976   YY_BREAK 
    923011977case 143: 
    923111978/* rule 143 can match eol */ 
    923211979YY_RULE_SETUP 
    9233 #line 248 "fortran.lex" 
     11980#line 296 "fortran.lex" 
     11981{Add_Include_1(fortran_text);} 
     11982   YY_BREAK 
     11983case 144: 
     11984YY_RULE_SETUP 
     11985#line 297 "fortran.lex" 
     11986{} 
     11987   YY_BREAK 
     11988case 145: 
     11989/* rule 145 can match eol */ 
     11990YY_RULE_SETUP 
     11991#line 298 "fortran.lex" 
    923411992{ 
    9235                               return TOK_FORMAT; } 
    9236    YY_BREAK 
    9237 case 144: 
    9238 YY_RULE_SETUP 
    9239 #line 250 "fortran.lex" 
    9240 { strcpy(yylval.na,fortran_text); return TOK_SLASH; } 
    9241    YY_BREAK 
    9242 case 145: 
    9243 YY_RULE_SETUP 
    9244 #line 251 "fortran.lex" 
    9245 { strcpy(yylval.na,fortran_text); return TOK_DSLASH; } 
     11993                  if (inmoduledeclare == 0 ) 
     11994                  { 
     11995                  pos_end=setposcur(); 
     11996                  RemoveWordSET_0(fortran_out,pos_curinclude,pos_end-pos_curinclude); 
     11997                  } 
     11998                  out_of_donottreat(); 
     11999                  } 
    924612000   YY_BREAK 
    924712001case 146: 
    924812002/* rule 146 can match eol */ 
    924912003YY_RULE_SETUP 
    9250 #line 252 "fortran.lex" 
    9251 { 
    9252                               strcpy(yylval.na,fortran_text); return TOK_CHAR_CUT; } 
     12004#line 306 "fortran.lex" 
     12005{ strcpy(yylval.na,fortran_text);return TOK_CHAR_CONSTANT; } 
    925312006   YY_BREAK 
    925412007case 147: 
    925512008/* rule 147 can match eol */ 
    925612009YY_RULE_SETUP 
    9257 #line 254 "fortran.lex" 
    9258 { strcpy(yylval.na,fortran_text);return TOK_CHAR_CONSTANT; } 
     12010#line 307 "fortran.lex" 
     12011{ strcpy(yylval.na,fortran_text);return TOK_CHAR_MESSAGE; } 
    925912012   YY_BREAK 
    926012013case 148: 
    9261 /* rule 148 can match eol */ 
    9262 YY_RULE_SETUP 
    9263 #line 255 "fortran.lex" 
    9264 { strcpy(yylval.na,fortran_text);return TOK_CHAR_MESSAGE; } 
     12014YY_RULE_SETUP 
     12015#line 308 "fortran.lex" 
     12016{ BEGIN(donottreat); } 
    926512017   YY_BREAK 
    926612018case 149: 
    9267 YY_RULE_SETUP 
    9268 #line 256 "fortran.lex" 
    9269 { BEGIN(donottreat); } 
     12019/* rule 149 can match eol */ 
     12020YY_RULE_SETUP 
     12021#line 309 "fortran.lex" 
     12022{ out_of_donottreat(); return '\n'; } 
    927012023   YY_BREAK 
    927112024case 150: 
    927212025/* rule 150 can match eol */ 
    927312026YY_RULE_SETUP 
    9274 #line 257 "fortran.lex" 
    9275 { out_of_donottreat(); return '\n'; } 
     12027#line 310 "fortran.lex" 
     12028{strcpy(yylval.na,fortran_text); removenewline(yylval.na); 
     12029                            return TOK_NAME; } 
    927612030   YY_BREAK 
    927712031case 151: 
    927812032YY_RULE_SETUP 
    9279 #line 258 "fortran.lex" 
     12033#line 312 "fortran.lex" 
    928012034{ strcpy(yylval.na,fortran_text); return TOK_NAME; } 
    928112035   YY_BREAK 
    928212036case 152: 
    9283 /* rule 152 can match eol */ 
     12037YY_RULE_SETUP 
     12038#line 313 "fortran.lex" 
     12039{strcpy(yylval.na,fortran_text); return TOK_CSTREAL; } 
     12040   YY_BREAK 
     12041case 153: 
     12042/* rule 153 can match eol */ 
    928412043*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
    928512044(yy_c_buf_p) = yy_cp -= 1; 
    928612045YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
    928712046YY_RULE_SETUP 
    9288 #line 259 "fortran.lex" 
     12047#line 314 "fortran.lex" 
    928912048{  // REAL1 
    929012049                              strcpy(yylval.na,fortran_text); return TOK_CSTREAL; } 
    929112050   YY_BREAK 
    9292 case 153: 
    9293 YY_RULE_SETUP 
    9294 #line 261 "fortran.lex" 
     12051case 154: 
     12052YY_RULE_SETUP 
     12053#line 316 "fortran.lex" 
    929512054{  // REAL2 
    929612055                              strcpy(yylval.na,fortran_text); return TOK_CSTREAL; } 
    929712056   YY_BREAK 
    9298 case 154: 
    9299 YY_RULE_SETUP 
    9300 #line 263 "fortran.lex" 
    9301 { strcpy(yylval.na,fortran_text); return TOK_CSTINT; } 
    9302    YY_BREAK 
    930312057case 155: 
    930412058YY_RULE_SETUP 
    9305 #line 264 "fortran.lex" 
     12059#line 318 "fortran.lex" 
     12060{ strcpy(yylval.na,fortran_text); 
     12061                             if (lastwasendofstmt == 0) 
     12062                              return TOK_CSTINT; 
     12063                             else 
     12064                              if (testandextractfromlist(&List_Do_labels,fortran_text) == 1) 
     12065                              { 
     12066                              removefromlist(&List_Do_labels,yylval.na); 
     12067                              return TOK_LABEL_DJVIEW; 
     12068                              } 
     12069                              else 
     12070                              { 
     12071                              return TOK_LABEL; 
     12072                              } 
     12073                             } 
     12074   YY_BREAK 
     12075case 156: 
     12076YY_RULE_SETUP 
     12077#line 332 "fortran.lex" 
    930612078{} 
    930712079   YY_BREAK 
    9308 case 156: 
    9309 YY_RULE_SETUP 
    9310 #line 265 "fortran.lex" 
     12080case 157: 
     12081YY_RULE_SETUP 
     12082#line 333 "fortran.lex" 
    931112083{} 
    931212084   YY_BREAK 
    9313 case 157: 
    9314 YY_RULE_SETUP 
    9315 #line 266 "fortran.lex" 
     12085case 158: 
     12086*yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
     12087(yy_c_buf_p) = yy_cp = yy_bp + 1; 
     12088YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
     12089YY_RULE_SETUP 
     12090#line 334 "fortran.lex" 
     12091{ 
     12092                            in_complex_literal = -1; 
     12093                            return (int) *fortran_text; 
     12094                            } 
     12095   YY_BREAK 
     12096case 159: 
     12097YY_RULE_SETUP 
     12098#line 338 "fortran.lex" 
    931612099{ strcpy(yylval.na,fortran_text); return (int) *fortran_text; } 
    931712100   YY_BREAK 
    9318 case 158: 
    9319 YY_RULE_SETUP 
    9320 #line 267 "fortran.lex" 
     12101case 160: 
     12102YY_RULE_SETUP 
     12103#line 339 "fortran.lex" 
    932112104{ strcpy(yylval.na,fortran_text); return (int) *fortran_text; } 
    932212105   YY_BREAK 
    9323 case 159: 
    9324 YY_RULE_SETUP 
    9325 #line 268 "fortran.lex" 
    9326 { return TOK_SEMICOLON; } 
    9327    YY_BREAK 
    9328 case 160: 
    9329 YY_RULE_SETUP 
    9330 #line 269 "fortran.lex" 
     12106case 161: 
     12107YY_RULE_SETUP 
     12108#line 340 "fortran.lex" 
     12109{ lastwasendofstmt=1; token_since_endofstmt = 0; return TOK_SEMICOLON; } 
     12110   YY_BREAK 
     12111case 162: 
     12112YY_RULE_SETUP 
     12113#line 341 "fortran.lex" 
     12114{ if (in_complex_literal==-1) {return TOK_COMMACOMPLEX; in_complex_literal=0;} else; return (int) *fortran_text; } 
     12115   YY_BREAK 
     12116case 163: 
     12117YY_RULE_SETUP 
     12118#line 342 "fortran.lex" 
    933112119{ return (int) *fortran_text; } 
    933212120   YY_BREAK 
    9333 case 161: 
    9334 YY_RULE_SETUP 
    9335 #line 270 "fortran.lex" 
     12121case 164: 
     12122YY_RULE_SETUP 
     12123#line 343 "fortran.lex" 
    933612124{ return (int) *fortran_text; } 
    933712125   YY_BREAK 
    9338 case 162: 
    9339 YY_RULE_SETUP 
    9340 #line 271 "fortran.lex" 
     12126case 165: 
     12127YY_RULE_SETUP 
     12128#line 344 "fortran.lex" 
    934112129{ return (int) *fortran_text; } 
    934212130   YY_BREAK 
    9343 case 163: 
    9344 YY_RULE_SETUP 
    9345 #line 272 "fortran.lex" 
    9346 { return (int) *fortran_text; } 
    9347    YY_BREAK 
    9348 case 164: 
    9349 /* rule 164 can match eol */ 
    9350 YY_RULE_SETUP 
    9351 #line 273 "fortran.lex" 
    9352 { INCREMENT_LINE_NUM() ; return '\n'; } 
    9353    YY_BREAK 
    9354 case 165: 
    9355 *yy_cp = (yy_hold_char); /* undo effects of setting up fortran_text */ 
    9356 (yy_c_buf_p) = yy_cp -= 1; 
    9357 YY_DO_BEFORE_ACTION; /* set up fortran_text again */ 
    9358 YY_RULE_SETUP 
    9359 #line 274 "fortran.lex" 
    9360 {} 
    9361    YY_BREAK 
    936212131case 166: 
    9363 YY_RULE_SETUP 
    9364 #line 275 "fortran.lex" 
    9365 {} 
     12132/* rule 166 can match eol */ 
     12133YY_RULE_SETUP 
     12134#line 345 "fortran.lex" 
     12135{ INCREMENT_LINE_NUM() ; lastwasendofstmt=1; token_since_endofstmt = 0; increment_nbtokens = 0; return '\n'; } 
    936612136   YY_BREAK 
    936712137case 167: 
    936812138YY_RULE_SETUP 
    9369 #line 276 "fortran.lex" 
    9370 { if (newlinef90 == 0) return TOK_LABEL; else newlinef90 = 0; } 
     12139#line 346 "fortran.lex" 
     12140{increment_nbtokens = 0;} 
    937112141   YY_BREAK 
    937212142case 168: 
    937312143/* rule 168 can match eol */ 
    937412144YY_RULE_SETUP 
    9375 #line 277 "fortran.lex" 
    9376 { INCREMENT_LINE_NUM() ; newlinef90=1; } 
     12145#line 347 "fortran.lex" 
     12146{ 
     12147                              return TOK_LABEL_FORMAT; } 
    937712148   YY_BREAK 
    937812149case 169: 
    937912150/* rule 169 can match eol */ 
    938012151YY_RULE_SETUP 
    9381 #line 278 "fortran.lex" 
    9382 { INCREMENT_LINE_NUM() ; } 
     12152#line 349 "fortran.lex" 
     12153{return TOK_LABEL_FORMAT; } 
    938312154   YY_BREAK 
    938412155case 170: 
    938512156/* rule 170 can match eol */ 
    938612157YY_RULE_SETUP 
    9387 #line 280 "fortran.lex" 
    9388 { INCREMENT_LINE_NUM() ; BEGIN(donottreat); } 
     12158#line 350 "fortran.lex" 
     12159{ INCREMENT_LINE_NUM() ; newlinef90=1; } 
    938912160   YY_BREAK 
    939012161case 171: 
    939112162/* rule 171 can match eol */ 
    939212163YY_RULE_SETUP 
    9393 #line 281 "fortran.lex" 
    9394 { out_of_donottreat(); return '\n'; } 
     12164#line 351 "fortran.lex" 
     12165{ INCREMENT_LINE_NUM() ;} 
    939512166   YY_BREAK 
    939612167case 172: 
    939712168/* rule 172 can match eol */ 
    939812169YY_RULE_SETUP 
    9399 #line 282 "fortran.lex" 
    9400 { INCREMENT_LINE_NUM() ; } 
     12170#line 353 "fortran.lex" 
     12171{ INCREMENT_LINE_NUM() ; BEGIN(donottreat); } 
    940112172   YY_BREAK 
    940212173case 173: 
    940312174/* rule 173 can match eol */ 
    940412175YY_RULE_SETUP 
    9405 #line 283 "fortran.lex" 
    9406 { INCREMENT_LINE_NUM() ; } 
     12176#line 354 "fortran.lex" 
     12177{ out_of_donottreat(); return '\n'; } 
    940712178   YY_BREAK 
    940812179case 174: 
    940912180/* rule 174 can match eol */ 
    941012181YY_RULE_SETUP 
    9411 #line 284 "fortran.lex" 
     12182#line 355 "fortran.lex" 
    941212183{ INCREMENT_LINE_NUM() ; } 
    941312184   YY_BREAK 
    941412185case 175: 
    9415 YY_RULE_SETUP 
    9416 #line 285 "fortran.lex" 
    9417 {} 
     12186/* rule 175 can match eol */ 
     12187YY_RULE_SETUP 
     12188#line 356 "fortran.lex" 
     12189{ INCREMENT_LINE_NUM() ; increment_nbtokens = 0;} 
    941812190   YY_BREAK 
    941912191case 176: 
    9420 YY_RULE_SETUP 
    9421 #line 286 "fortran.lex" 
    9422 ECHO; 
    9423    YY_BREAK 
    9424 #line 3015 "fortran.yy.c" 
     12192/* rule 176 can match eol */ 
     12193YY_RULE_SETUP 
     12194#line 357 "fortran.lex" 
     12195{ INCREMENT_LINE_NUM() ; increment_nbtokens = 0;} 
     12196   YY_BREAK 
     12197case 177: 
     12198YY_RULE_SETUP 
     12199#line 358 "fortran.lex" 
     12200{increment_nbtokens = 0;} 
     12201   YY_BREAK 
    942512202case YY_STATE_EOF(INITIAL): 
    942612203case YY_STATE_EOF(parameter): 
    942712204case YY_STATE_EOF(character): 
    942812205case YY_STATE_EOF(donottreat): 
     12206case YY_STATE_EOF(includestate): 
    942912207case YY_STATE_EOF(fortran77style): 
    943012208case YY_STATE_EOF(fortran90style): 
    9431    yyterminate(); 
     12209#line 359 "fortran.lex" 
     12210{endoffile = 1; yyterminate();} 
     12211   YY_BREAK 
     12212case 178: 
     12213YY_RULE_SETUP 
     12214#line 360 "fortran.lex" 
     12215ECHO; 
     12216   YY_BREAK 
     12217#line 4816 "fortran.yy.c" 
    943212218 
    943312219   case YY_END_OF_BUFFER: 
     
    961912405         { /* Not enough room in the buffer - grow it. */ 
    962012406 
    9621          /* just a shorter name for the current buffer */ 
    9622          YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 
    9623  
    9624          int yy_c_buf_p_offset = 
    9625             (int) ((yy_c_buf_p) - b->yy_ch_buf); 
    9626  
    9627          if ( b->yy_is_our_buffer ) 
    9628             { 
    9629             yy_size_t new_size = b->yy_buf_size * 2; 
    9630  
    9631             if ( new_size <= 0 ) 
    9632                b->yy_buf_size += b->yy_buf_size / 8; 
    9633             else 
    9634                b->yy_buf_size *= 2; 
    9635  
    9636             b->yy_ch_buf = (char *) 
    9637                /* Include room in for 2 EOB chars. */ 
    9638                fortran_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  ); 
    9639             } 
    9640          else 
    9641             /* Can't grow it, we don't own it. */ 
    9642             b->yy_ch_buf = 0; 
    9643  
    9644          if ( ! b->yy_ch_buf ) 
    9645             YY_FATAL_ERROR( 
    9646             "fatal error - scanner input buffer overflow" ); 
    9647  
    9648          (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 
    9649  
    9650          num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 
    9651                   number_to_move - 1; 
     12407         YY_FATAL_ERROR( 
     12408"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 
    965212409 
    965312410         } 
     
    970912466   yy_current_state += YY_AT_BOL(); 
    971012467 
     12468   (yy_state_ptr) = (yy_state_buf); 
     12469   *(yy_state_ptr)++ = yy_current_state; 
     12470 
    971112471   for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 
    971212472      { 
    971312473      register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 
    9714       if ( yy_accept[yy_current_state] ) 
    9715          { 
    9716          (yy_last_accepting_state) = yy_current_state; 
    9717          (yy_last_accepting_cpos) = yy_cp; 
    9718          } 
    971912474      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 
    972012475         { 
    972112476         yy_current_state = (int) yy_def[yy_current_state]; 
    9722          if ( yy_current_state >= 1132 ) 
     12477         if ( yy_current_state >= 1887 ) 
    972312478            yy_c = yy_meta[(unsigned int) yy_c]; 
    972412479         } 
    972512480      yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 
     12481      *(yy_state_ptr)++ = yy_current_state; 
    972612482      } 
    972712483 
     
    973712493{ 
    973812494   register int yy_is_jam; 
    9739       register char *yy_cp = (yy_c_buf_p); 
    9740  
     12495     
    974112496   register YY_CHAR yy_c = 1; 
    9742    if ( yy_accept[yy_current_state] ) 
    9743       { 
    9744       (yy_last_accepting_state) = yy_current_state; 
    9745       (yy_last_accepting_cpos) = yy_cp; 
    9746       } 
    974712497   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 
    974812498      { 
    974912499      yy_current_state = (int) yy_def[yy_current_state]; 
    9750       if ( yy_current_state >= 1132 ) 
     12500      if ( yy_current_state >= 1887 ) 
    975112501         yy_c = yy_meta[(unsigned int) yy_c]; 
    975212502      } 
    975312503   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 
    9754    yy_is_jam = (yy_current_state == 1131); 
     12504   yy_is_jam = (yy_current_state == 1886); 
     12505   if ( ! yy_is_jam ) 
     12506      *(yy_state_ptr)++ = yy_current_state; 
    975512507 
    975612508   return yy_is_jam ? 0 : yy_current_state; 
     
    1034213094    (yy_start) = 0; 
    1034313095 
     13096    (yy_state_buf) = 0; 
     13097    (yy_state_ptr) = 0; 
     13098    (yy_full_match) = 0; 
     13099    (yy_lp) = 0; 
     13100 
    1034413101/* Defined in main.c */ 
    1034513102#ifdef YY_STDINIT 
     
    1037113128   fortran_free((yy_buffer_stack) ); 
    1037213129   (yy_buffer_stack) = NULL; 
     13130 
     13131    fortran_free ( (yy_state_buf) ); 
     13132    (yy_state_buf)  = NULL; 
    1037313133 
    1037413134    /* Reset the globals. This is important in a non-reentrant scanner so the next time 
     
    1042713187#define YYTABLES_NAME "yytables" 
    1042813188 
    10429 #line 286 "fortran.lex" 
     13189#line 360 "fortran.lex" 
    1043013190 
    1043113191 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/main.c

    r5656 r8139  
    1 /* A Bison parser, made by GNU Bison 2.3.  */ 
    2  
    3 /* Skeleton implementation for Bison's Yacc-like parsers in C 
    4  
    5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 
    6    Free Software Foundation, Inc. 
    7  
    8    This program is free software; you can redistribute it and/or modify 
     1/* A Bison parser, made by GNU Bison 2.7.  */ 
     2 
     3/* Bison implementation for Yacc-like parsers in C 
     4    
     5      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 
     6    
     7   This program is free software: you can redistribute it and/or modify 
    98   it under the terms of the GNU General Public License as published by 
    10    the Free Software Foundation; either version 2, or (at your option) 
    11    any later version. 
    12  
     9   the Free Software Foundation, either version 3 of the License, or 
     10   (at your option) any later version. 
     11    
    1312   This program is distributed in the hope that it will be useful, 
    1413   but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1514   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1615   GNU General Public License for more details. 
    17  
     16    
    1817   You should have received a copy of the GNU General Public License 
    19    along with this program; if not, write to the Free Software 
    20    Foundation, Inc., 51 Franklin Street, Fifth Floor, 
    21    Boston, MA 02110-1301, USA.  */ 
     18   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
    2219 
    2320/* As a special exception, you may create a larger work that contains 
     
    3027   Bison output files to be licensed under the GNU General Public 
    3128   License without this special exception. 
    32  
     29    
    3330   This special exception was added by the Free Software Foundation in 
    3431   version 2.2 of Bison.  */ 
     
    4845 
    4946/* Bison version.  */ 
    50 #define YYBISON_VERSION "2.3" 
     47#define YYBISON_VERSION "2.7" 
    5148 
    5249/* Skeleton name.  */ 
     
    5653#define YYPURE 0 
    5754 
    58 /* Using locations.  */ 
    59 #define YYLSP_NEEDED 0 
     55/* Push parsers.  */ 
     56#define YYPUSH 0 
     57 
     58/* Pull parsers.  */ 
     59#define YYPULL 1 
     60 
    6061 
    6162/* Substitute the variable and function names.  */ 
    62 #define yyparse convert_parse 
    63 #define yylex   convert_lex 
    64 #define yyerror convert_error 
    65 #define yylval  convert_lval 
    66 #define yychar  convert_char 
    67 #define yydebug convert_debug 
    68 #define yynerrs convert_nerrs 
    69  
     63#define yyparse         convert_parse 
     64#define yylex           convert_lex 
     65#define yyerror         convert_error 
     66#define yylval          convert_lval 
     67#define yychar          convert_char 
     68#define yydebug         convert_debug 
     69#define yynerrs         convert_nerrs 
     70 
     71/* Copy the first part of user declarations.  */ 
     72/* Line 371 of yacc.c  */ 
     73#line 35 "convert.y" 
     74 
     75#include <stdlib.h> 
     76#include <stdio.h> 
     77#include <string.h> 
     78#include "decl.h" 
     79 
     80int line_num=1; 
     81extern FILE * convert_in; 
     82 
     83int convert_error(const char *s) 
     84{ 
     85    printf("##\n## ERROR in conv: '%s' (line %d, file: %s)\n##\n", s, line_num, config_file); 
     86    exit(0); 
     87} 
     88 
     89 
     90/* Line 371 of yacc.c  */ 
     91#line 92 "convert.tab.c" 
     92 
     93# ifndef YY_NULL 
     94#  if defined __cplusplus && 201103L <= __cplusplus 
     95#   define YY_NULL nullptr 
     96#  else 
     97#   define YY_NULL 0 
     98#  endif 
     99# endif 
     100 
     101/* Enabling verbose error messages.  */ 
     102#ifdef YYERROR_VERBOSE 
     103# undef YYERROR_VERBOSE 
     104# define YYERROR_VERBOSE 1 
     105#else 
     106# define YYERROR_VERBOSE 0 
     107#endif 
     108 
     109 
     110/* Enabling traces.  */ 
     111#ifndef YYDEBUG 
     112# define YYDEBUG 1 
     113#endif 
     114#if YYDEBUG 
     115extern int convert_debug; 
     116#endif 
    70117 
    71118/* Tokens.  */ 
     
    87134   }; 
    88135#endif 
    89 /* Tokens.  */ 
    90 #define TOK_SEP 258 
    91 #define TOK_KIND 259 
    92 #define TOK_EQUAL 260 
    93 #define TOK_USE 261 
    94 #define TOK_MODULEMAIN 262 
    95 #define TOK_NOTGRIDDEP 263 
    96 #define TOK_USEITEM 264 
    97 #define TOK_NAME 265 
    98 #define TOK_CSTINT 266 
    99 #define TOK_PROBTYPE 267 
    100  
    101  
    102  
    103  
    104 /* Copy the first part of user declarations.  */ 
    105 #line 35 "convert.y" 
    106  
    107 #include <stdlib.h> 
    108 #include <stdio.h> 
    109 #include <string.h> 
    110 #include "decl.h" 
    111  
    112 int line_num=1; 
    113 extern FILE * convert_in; 
    114  
    115 int convert_error(const char *s) 
    116 { 
    117     printf("##\n## ERROR in conv: '%s' (line %d, file: %s)\n##\n", s, line_num, config_file); 
    118     exit(0); 
    119 } 
    120  
    121  
    122  
    123 /* Enabling traces.  */ 
    124 #ifndef YYDEBUG 
    125 # define YYDEBUG 1 
    126 #endif 
    127  
    128 /* Enabling verbose error messages.  */ 
    129 #ifdef YYERROR_VERBOSE 
    130 # undef YYERROR_VERBOSE 
    131 # define YYERROR_VERBOSE 1 
    132 #else 
    133 # define YYERROR_VERBOSE 0 
    134 #endif 
    135  
    136 /* Enabling the token table.  */ 
    137 #ifndef YYTOKEN_TABLE 
    138 # define YYTOKEN_TABLE 0 
    139 #endif 
     136 
    140137 
    141138#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
    142139typedef union YYSTYPE 
     140{ 
     141/* Line 387 of yacc.c  */ 
    143142#line 52 "convert.y" 
    144 { 
     143 
    145144    char na[LONG_M]; 
    146 } 
    147 /* Line 193 of yacc.c.  */ 
     145 
     146 
     147/* Line 387 of yacc.c  */ 
    148148#line 149 "convert.tab.c" 
    149    YYSTYPE; 
     149} YYSTYPE; 
     150# define YYSTYPE_IS_TRIVIAL 1 
    150151# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
    151152# define YYSTYPE_IS_DECLARED 1 
    152 # define YYSTYPE_IS_TRIVIAL 1 
    153 #endif 
     153#endif 
     154 
     155extern YYSTYPE convert_lval; 
     156 
     157#ifdef YYPARSE_PARAM 
     158#if defined __STDC__ || defined __cplusplus 
     159int convert_parse (void *YYPARSE_PARAM); 
     160#else 
     161int convert_parse (); 
     162#endif 
     163#else /* ! YYPARSE_PARAM */ 
     164#if defined __STDC__ || defined __cplusplus 
     165int convert_parse (void); 
     166#else 
     167int convert_parse (); 
     168#endif 
     169#endif /* ! YYPARSE_PARAM */ 
    154170 
    155171 
     
    157173/* Copy the second part of user declarations.  */ 
    158174 
    159  
    160 /* Line 216 of yacc.c.  */ 
    161 #line 162 "convert.tab.c" 
     175/* Line 390 of yacc.c  */ 
     176#line 177 "convert.tab.c" 
    162177 
    163178#ifdef short 
     
    212227#  if ENABLE_NLS 
    213228#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 
    214 #   define YY_(msgid) dgettext ("bison-runtime", msgid) 
     229#   define YY_(Msgid) dgettext ("bison-runtime", Msgid) 
    215230#  endif 
    216231# endif 
    217232# ifndef YY_ 
    218 #  define YY_(msgid) msgid 
     233#  define YY_(Msgid) Msgid 
    219234# endif 
    220235#endif 
     
    222237/* Suppress unused-variable warnings by "using" E.  */ 
    223238#if ! defined lint || defined __GNUC__ 
    224 # define YYUSE(e) ((void) (e)) 
     239# define YYUSE(E) ((void) (E)) 
    225240#else 
    226 # define YYUSE(e) /* empty */ 
     241# define YYUSE(E) /* empty */ 
    227242#endif 
    228243 
    229244/* Identity function, used to suppress warnings about constant conditions.  */ 
    230245#ifndef lint 
    231 # define YYID(n) (n) 
     246# define YYID(N) (N) 
    232247#else 
    233248#if (defined __STDC__ || defined __C99__FUNC__ \ 
    234249     || defined __cplusplus || defined _MSC_VER) 
    235250static int 
    236 YYID (int i) 
     251YYID (int yyi) 
    237252#else 
    238253static int 
    239 YYID (i) 
    240     int i; 
    241 #endif 
    242 { 
    243   return i; 
     254YYID (yyi) 
     255    int yyi; 
     256#endif 
     257{ 
     258  return yyi; 
    244259} 
    245260#endif 
     
    262277#   else 
    263278#    define YYSTACK_ALLOC alloca 
    264 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
     279#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    265280     || defined __cplusplus || defined _MSC_VER) 
    266281#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
    267 #     ifndef _STDLIB_H 
    268 #      define _STDLIB_H 1 
     282      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */ 
     283#     ifndef EXIT_SUCCESS 
     284#      define EXIT_SUCCESS 0 
    269285#     endif 
    270286#    endif 
     
    289305#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 
    290306#  endif 
    291 #  if (defined __cplusplus && ! defined _STDLIB_H \ 
     307#  if (defined __cplusplus && ! defined EXIT_SUCCESS \ 
    292308       && ! ((defined YYMALLOC || defined malloc) \ 
    293309        && (defined YYFREE || defined free))) 
    294310#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
    295 #   ifndef _STDLIB_H 
    296 #    define _STDLIB_H 1 
     311#   ifndef EXIT_SUCCESS 
     312#    define EXIT_SUCCESS 0 
    297313#   endif 
    298314#  endif 
    299315#  ifndef YYMALLOC 
    300316#   define YYMALLOC malloc 
    301 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
     317#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    302318     || defined __cplusplus || defined _MSC_VER) 
    303319void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 
     
    306322#  ifndef YYFREE 
    307323#   define YYFREE free 
    308 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
     324#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 
    309325     || defined __cplusplus || defined _MSC_VER) 
    310326void free (void *); /* INFRINGES ON USER NAME SPACE */ 
     
    322338union yyalloc 
    323339{ 
    324   yytype_int16 yyss; 
    325   YYSTYPE yyvs; 
    326   }; 
     340  yytype_int16 yyss_alloc; 
     341  YYSTYPE yyvs_alloc; 
     342}; 
    327343 
    328344/* The size of the maximum gap between one aligned stack and the next.  */ 
     
    335351      + YYSTACK_GAP_MAXIMUM) 
    336352 
    337 /* Copy COUNT objects from FROM to TO.  The source and destination do 
    338    not overlap.  */ 
    339 # ifndef YYCOPY 
    340 #  if defined __GNUC__ && 1 < __GNUC__ 
    341 #   define YYCOPY(To, From, Count) \ 
    342       __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 
    343 #  else 
    344 #   define YYCOPY(To, From, Count)     \ 
    345       do             \ 
    346    {              \ 
    347      YYSIZE_T yyi;            \ 
    348      for (yyi = 0; yyi < (Count); yyi++)  \ 
    349        (To)[yyi] = (From)[yyi];     \ 
    350    }              \ 
    351       while (YYID (0)) 
    352 #  endif 
    353 # endif 
     353# define YYCOPY_NEEDED 1 
    354354 
    355355/* Relocate STACK from its old location to the new one.  The 
     
    358358   stack.  Advance YYPTR to a properly aligned location for the next 
    359359   stack.  */ 
    360 # define YYSTACK_RELOCATE(Stack)             \ 
     360# define YYSTACK_RELOCATE(Stack_alloc, Stack)            \ 
    361361    do                           \ 
    362362      {                          \ 
    363363   YYSIZE_T yynewbytes;                \ 
    364    YYCOPY (&yyptr->Stack, Stack, yysize);          \ 
    365    Stack = &yyptr->Stack               \ 
     364   YYCOPY (&yyptr->Stack_alloc, Stack, yysize);       \ 
     365   Stack = &yyptr->Stack_alloc;              \ 
    366366   yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
    367367   yyptr += yynewbytes / sizeof (*yyptr);          \ 
     
    370370 
    371371#endif 
     372 
     373#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 
     374/* Copy COUNT objects from SRC to DST.  The source and destination do 
     375   not overlap.  */ 
     376# ifndef YYCOPY 
     377#  if defined __GNUC__ && 1 < __GNUC__ 
     378#   define YYCOPY(Dst, Src, Count) \ 
     379      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 
     380#  else 
     381#   define YYCOPY(Dst, Src, Count)              \ 
     382      do                                        \ 
     383        {                                       \ 
     384          YYSIZE_T yyi;                         \ 
     385          for (yyi = 0; yyi < (Count); yyi++)   \ 
     386            (Dst)[yyi] = (Src)[yyi];            \ 
     387        }                                       \ 
     388      while (YYID (0)) 
     389#  endif 
     390# endif 
     391#endif /* !YYCOPY_NEEDED */ 
    372392 
    373393/* YYFINAL -- State number of the termination state.  */ 
     
    451471#endif 
    452472 
    453 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 
     473#if YYDEBUG || YYERROR_VERBOSE || 0 
    454474/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 
    455475   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */ 
     
    459479  "TOK_USE", "TOK_MODULEMAIN", "TOK_NOTGRIDDEP", "TOK_USEITEM", "TOK_NAME", 
    460480  "TOK_CSTINT", "TOK_PROBTYPE", "','", "';'", "'\\n'", "$accept", "input", 
    461   "line", 0 
     481  "line", YY_NULL 
    462482}; 
    463483#endif 
     
    487507}; 
    488508 
    489 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 
    490    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero 
     509/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 
     510   Performed when YYTABLE doesn't specify something else to do.  Zero 
    491511   means the default is an error.  */ 
    492512static const yytype_uint8 yydefact[] = 
     
    521541/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
    522542   positive, shift that token.  If negative, reduce the rule which 
    523    number is the opposite.  If zero, do what YYDEFACT says. 
    524    If YYTABLE_NINF, syntax error.  */ 
     543   number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
    525544#define YYTABLE_NINF -1 
    526545static const yytype_uint8 yytable[] = 
     
    531550}; 
    532551 
     552#define yypact_value_is_default(Yystate) \ 
     553  (!!((Yystate) == (-13))) 
     554 
     555#define yytable_value_is_error(Yytable_value) \ 
     556  YYID (0) 
     557 
    533558static const yytype_int8 yycheck[] = 
    534559{ 
     
    559584/* Like YYERROR except do call yyerror.  This remains here temporarily 
    560585   to ease the transition to the new meaning of YYERROR, for GCC. 
    561    Once GCC version 2 has supplanted version 1, this can go.  */ 
     586   Once GCC version 2 has supplanted version 1, this can go.  However, 
     587   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated 
     588   in Bison 2.4.2's NEWS entry, where a plan to phase it out is 
     589   discussed.  */ 
    562590 
    563591#define YYFAIL    goto yyerrlab 
     592#if defined YYFAIL 
     593  /* This is here to suppress warnings from the GCC cpp's 
     594     -Wunused-macros.  Normally we don't worry about that warning, but 
     595     some users do, and we want to make it easy for users to remove 
     596     YYFAIL uses, which will produce warnings from Bison 2.5.  */ 
     597#endif 
    564598 
    565599#define YYRECOVERING()  (!!yyerrstatus) 
    566600 
    567 #define YYBACKUP(Token, Value)               \ 
    568 do                      \ 
    569   if (yychar == YYEMPTY && yylen == 1)          \ 
    570     {                      \ 
    571       yychar = (Token);                \ 
    572       yylval = (Value);                \ 
    573       yytoken = YYTRANSLATE (yychar);           \ 
    574       YYPOPSTACK (1);                  \ 
    575       goto yybackup;                \ 
    576     }                      \ 
    577   else                        \ 
    578     {                      \ 
     601#define YYBACKUP(Token, Value)                                  \ 
     602do                                                              \ 
     603  if (yychar == YYEMPTY)                                        \ 
     604    {                                                           \ 
     605      yychar = (Token);                                         \ 
     606      yylval = (Value);                                         \ 
     607      YYPOPSTACK (yylen);                                       \ 
     608      yystate = *yyssp;                                         \ 
     609      goto yybackup;                                            \ 
     610    }                                                           \ 
     611  else                                                          \ 
     612    {                                                           \ 
    579613      yyerror (YY_("syntax error: cannot back up")); \ 
    580614      YYERROR;                   \ 
     
    582616while (YYID (0)) 
    583617 
    584  
     618/* Error token number */ 
    585619#define YYTERROR  1 
    586620#define YYERRCODE 256 
    587621 
    588622 
    589 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 
    590    If N is 0, then set CURRENT to the empty location which ends 
    591    the previous symbol: RHS[0] (always defined).  */ 
    592  
    593 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 
    594 #ifndef YYLLOC_DEFAULT 
    595 # define YYLLOC_DEFAULT(Current, Rhs, N)           \ 
    596     do                           \ 
    597       if (YYID (N))                                                    \ 
    598    {                       \ 
    599      (Current).first_line   = YYRHSLOC (Rhs, 1).first_line; \ 
    600      (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \ 
    601      (Current).last_line    = YYRHSLOC (Rhs, N).last_line;     \ 
    602      (Current).last_column  = YYRHSLOC (Rhs, N).last_column;   \ 
    603    }                       \ 
    604       else                       \ 
    605    {                       \ 
    606      (Current).first_line   = (Current).last_line   =    \ 
    607        YYRHSLOC (Rhs, 0).last_line;          \ 
    608      (Current).first_column = (Current).last_column =    \ 
    609        YYRHSLOC (Rhs, 0).last_column;           \ 
    610    }                       \ 
    611     while (YYID (0)) 
    612 #endif 
    613  
    614  
    615 /* YY_LOCATION_PRINT -- Print the location on the stream. 
    616    This macro was not mandated originally: define only if we know 
    617    we won't break user code: when these are the locations we know.  */ 
    618  
     623/* This macro is provided for backward compatibility. */ 
    619624#ifndef YY_LOCATION_PRINT 
    620 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 
    621 #  define YY_LOCATION_PRINT(File, Loc)       \ 
    622      fprintf (File, "%d.%d-%d.%d",        \ 
    623          (Loc).first_line, (Loc).first_column,  \ 
    624          (Loc).last_line,  (Loc).last_column) 
    625 # else 
    626 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
    627 # endif 
     625# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
    628626#endif 
    629627 
    630628 
    631629/* YYLEX -- calling `yylex' with the right arguments.  */ 
    632  
    633630#ifdef YYLEX_PARAM 
    634631# define YYLEX yylex (YYLEX_PARAM) 
     
    680677#endif 
    681678{ 
     679  FILE *yyo = yyoutput; 
     680  YYUSE (yyo); 
    682681  if (!yyvaluep) 
    683682    return; 
     
    691690    { 
    692691      default: 
    693    break; 
     692        break; 
    694693    } 
    695694} 
     
    729728     || defined __cplusplus || defined _MSC_VER) 
    730729static void 
    731 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) 
     730yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 
    732731#else 
    733732static void 
    734 yy_stack_print (bottom, top) 
    735     yytype_int16 *bottom; 
    736     yytype_int16 *top; 
     733yy_stack_print (yybottom, yytop) 
     734    yytype_int16 *yybottom; 
     735    yytype_int16 *yytop; 
    737736#endif 
    738737{ 
    739738  YYFPRINTF (stderr, "Stack now"); 
    740   for (; bottom <= top; ++bottom) 
    741     YYFPRINTF (stderr, " %d", *bottom); 
     739  for (; yybottom <= yytop; yybottom++) 
     740    { 
     741      int yybot = *yybottom; 
     742      YYFPRINTF (stderr, " %d", yybot); 
     743    } 
    742744  YYFPRINTF (stderr, "\n"); 
    743745} 
     
    773775  for (yyi = 0; yyi < yynrhs; yyi++) 
    774776    { 
    775       fprintf (stderr, "   $%d = ", yyi + 1); 
     777      YYFPRINTF (stderr, "   $%d = ", yyi + 1); 
    776778      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 
    777779             &(yyvsp[(yyi + 1) - (yynrhs)]) 
    778780                         ); 
    779       fprintf (stderr, "\n"); 
     781      YYFPRINTF (stderr, "\n"); 
    780782    } 
    781783} 
     
    813815# define YYMAXDEPTH 10000 
    814816#endif 
    815  
    816  
    817817 
    818818 
     
    918918# endif 
    919919 
    920 /* Copy into YYRESULT an error message about the unexpected token 
    921    YYCHAR while in state YYSTATE.  Return the number of bytes copied, 
    922    including the terminating null byte.  If YYRESULT is null, do not 
    923    copy anything; just return the number of bytes that would be 
    924    copied.  As a special case, return 0 if an ordinary "syntax error" 
    925    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during 
    926    size calculation.  */ 
    927 static YYSIZE_T 
    928 yysyntax_error (char *yyresult, int yystate, int yychar) 
    929 { 
    930   int yyn = yypact[yystate]; 
    931  
    932   if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 
    933     return 0; 
    934   else 
     920/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 
     921   about the unexpected token YYTOKEN for the state stack whose top is 
     922   YYSSP. 
     923 
     924   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is 
     925   not large enough to hold the message.  In that case, also set 
     926   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the 
     927   required number of bytes is too large to store.  */ 
     928static int 
     929yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 
     930                yytype_int16 *yyssp, int yytoken) 
     931{ 
     932  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); 
     933  YYSIZE_T yysize = yysize0; 
     934  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 
     935  /* Internationalized format string. */ 
     936  const char *yyformat = YY_NULL; 
     937  /* Arguments of yyformat. */ 
     938  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 
     939  /* Number of reported tokens (one for the "unexpected", one per 
     940     "expected"). */ 
     941  int yycount = 0; 
     942 
     943  /* There are many possibilities here to consider: 
     944     - Assume YYFAIL is not used.  It's too flawed to consider.  See 
     945       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 
     946       for details.  YYERROR is fine as it does not invoke this 
     947       function. 
     948     - If this state is a consistent state with a default action, then 
     949       the only way this function was invoked is if the default action 
     950       is an error action.  In that case, don't check for expected 
     951       tokens because there are none. 
     952     - The only way there can be no lookahead present (in yychar) is if 
     953       this state is a consistent state with a default action.  Thus, 
     954       detecting the absence of a lookahead is sufficient to determine 
     955       that there is no unexpected or expected token to report.  In that 
     956       case, just report a simple "syntax error". 
     957     - Don't assume there isn't a lookahead just because this state is a 
     958       consistent state with a default action.  There might have been a 
     959       previous inconsistent state, consistent state with a non-default 
     960       action, or user semantic action that manipulated yychar. 
     961     - Of course, the expected token list depends on states to have 
     962       correct lookahead information, and it depends on the parser not 
     963       to perform extra reductions after fetching a lookahead from the 
     964       scanner and before detecting a syntax error.  Thus, state merging 
     965       (from LALR or IELR) and default reductions corrupt the expected 
     966       token list.  However, the list is correct for canonical LR with 
     967       one exception: it will still contain any token that will not be 
     968       accepted due to an error action in a later state. 
     969  */ 
     970  if (yytoken != YYEMPTY) 
    935971    { 
    936       int yytype = YYTRANSLATE (yychar); 
    937       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 
    938       YYSIZE_T yysize = yysize0; 
    939       YYSIZE_T yysize1; 
    940       int yysize_overflow = 0; 
    941       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 
    942       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 
    943       int yyx; 
    944  
    945 # if 0 
    946       /* This is so xgettext sees the translatable formats that are 
    947     constructed on the fly.  */ 
    948       YY_("syntax error, unexpected %s"); 
    949       YY_("syntax error, unexpected %s, expecting %s"); 
    950       YY_("syntax error, unexpected %s, expecting %s or %s"); 
    951       YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 
    952       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 
    953 # endif 
    954       char *yyfmt; 
    955       char const *yyf; 
    956       static char const yyunexpected[] = "syntax error, unexpected %s"; 
    957       static char const yyexpecting[] = ", expecting %s"; 
    958       static char const yyor[] = " or %s"; 
    959       char yyformat[sizeof yyunexpected 
    960           + sizeof yyexpecting - 1 
    961           + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 
    962              * (sizeof yyor - 1))]; 
    963       char const *yyprefix = yyexpecting; 
    964  
    965       /* Start YYX at -YYN if negative to avoid negative indexes in 
    966     YYCHECK.  */ 
    967       int yyxbegin = yyn < 0 ? -yyn : 0; 
    968  
    969       /* Stay within bounds of both yycheck and yytname.  */ 
    970       int yychecklim = YYLAST - yyn + 1; 
    971       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 
    972       int yycount = 1; 
    973  
    974       yyarg[0] = yytname[yytype]; 
    975       yyfmt = yystpcpy (yyformat, yyunexpected); 
    976  
    977       for (yyx = yyxbegin; yyx < yyxend; ++yyx) 
    978    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 
    979      { 
    980        if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 
    981          { 
    982       yycount = 1; 
    983       yysize = yysize0; 
    984       yyformat[sizeof yyunexpected - 1] = '\0'; 
    985       break; 
    986          } 
    987        yyarg[yycount++] = yytname[yyx]; 
    988        yysize1 = yysize + yytnamerr (0, yytname[yyx]); 
    989        yysize_overflow |= (yysize1 < yysize); 
    990        yysize = yysize1; 
    991        yyfmt = yystpcpy (yyfmt, yyprefix); 
    992        yyprefix = yyor; 
    993      } 
    994  
    995       yyf = YY_(yyformat); 
    996       yysize1 = yysize + yystrlen (yyf); 
    997       yysize_overflow |= (yysize1 < yysize); 
    998       yysize = yysize1; 
    999  
    1000       if (yysize_overflow) 
    1001    return YYSIZE_MAXIMUM; 
    1002  
    1003       if (yyresult) 
    1004    { 
    1005      /* Avoid sprintf, as that infringes on the user's name space. 
    1006         Don't have undefined behavior even if the translation 
    1007         produced a string with the wrong number of "%s"s.  */ 
    1008      char *yyp = yyresult; 
    1009      int yyi = 0; 
    1010      while ((*yyp = *yyf) != '\0') 
    1011        { 
    1012          if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 
    1013       { 
    1014         yyp += yytnamerr (yyp, yyarg[yyi++]); 
    1015         yyf += 2; 
    1016       } 
    1017          else 
    1018       { 
    1019         yyp++; 
    1020         yyf++; 
    1021       } 
    1022        } 
    1023    } 
    1024       return yysize; 
     972      int yyn = yypact[*yyssp]; 
     973      yyarg[yycount++] = yytname[yytoken]; 
     974      if (!yypact_value_is_default (yyn)) 
     975        { 
     976          /* Start YYX at -YYN if negative to avoid negative indexes in 
     977             YYCHECK.  In other words, skip the first -YYN actions for 
     978             this state because they are default actions.  */ 
     979          int yyxbegin = yyn < 0 ? -yyn : 0; 
     980          /* Stay within bounds of both yycheck and yytname.  */ 
     981          int yychecklim = YYLAST - yyn + 1; 
     982          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 
     983          int yyx; 
     984 
     985          for (yyx = yyxbegin; yyx < yyxend; ++yyx) 
     986            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 
     987                && !yytable_value_is_error (yytable[yyx + yyn])) 
     988              { 
     989                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 
     990                  { 
     991                    yycount = 1; 
     992                    yysize = yysize0; 
     993                    break; 
     994                  } 
     995                yyarg[yycount++] = yytname[yyx]; 
     996                { 
     997                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); 
     998                  if (! (yysize <= yysize1 
     999                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 
     1000                    return 2; 
     1001                  yysize = yysize1; 
     1002                } 
     1003              } 
     1004        } 
    10251005    } 
     1006 
     1007  switch (yycount) 
     1008    { 
     1009# define YYCASE_(N, S)                      \ 
     1010      case N:                               \ 
     1011        yyformat = S;                       \ 
     1012      break 
     1013      YYCASE_(0, YY_("syntax error")); 
     1014      YYCASE_(1, YY_("syntax error, unexpected %s")); 
     1015      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 
     1016      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 
     1017      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 
     1018      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 
     1019# undef YYCASE_ 
     1020    } 
     1021 
     1022  { 
     1023    YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 
     1024    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 
     1025      return 2; 
     1026    yysize = yysize1; 
     1027  } 
     1028 
     1029  if (*yymsg_alloc < yysize) 
     1030    { 
     1031      *yymsg_alloc = 2 * yysize; 
     1032      if (! (yysize <= *yymsg_alloc 
     1033             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 
     1034        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 
     1035      return 1; 
     1036    } 
     1037 
     1038  /* Avoid sprintf, as that infringes on the user's name space. 
     1039     Don't have undefined behavior even if the translation 
     1040     produced a string with the wrong number of "%s"s.  */ 
     1041  { 
     1042    char *yyp = *yymsg; 
     1043    int yyi = 0; 
     1044    while ((*yyp = *yyformat) != '\0') 
     1045      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 
     1046        { 
     1047          yyp += yytnamerr (yyp, yyarg[yyi++]); 
     1048          yyformat += 2; 
     1049        } 
     1050      else 
     1051        { 
     1052          yyp++; 
     1053          yyformat++; 
     1054        } 
     1055  } 
     1056  return 0; 
    10261057} 
    10271058#endif /* YYERROR_VERBOSE */ 
    1028  
    1029  
    10301059 
    10311060/*-----------------------------------------------. 
     
    10561085 
    10571086      default: 
    1058    break; 
     1087        break; 
    10591088    } 
    10601089} 
     
    10621091 
    10631092 
    1064 /* Prevent warnings from -Wmissing-prototypes.  */ 
    1065  
    1066 #ifdef YYPARSE_PARAM 
    1067 #if defined __STDC__ || defined __cplusplus 
    1068 int yyparse (void *YYPARSE_PARAM); 
    1069 #else 
    1070 int yyparse (); 
    1071 #endif 
    1072 #else /* ! YYPARSE_PARAM */ 
    1073 #if defined __STDC__ || defined __cplusplus 
    1074 int yyparse (void); 
    1075 #else 
    1076 int yyparse (); 
    1077 #endif 
    1078 #endif /* ! YYPARSE_PARAM */ 
    1079  
    1080  
    1081  
    1082 /* The look-ahead symbol.  */ 
     1093 
     1094/* The lookahead symbol.  */ 
    10831095int yychar; 
    10841096 
    1085 /* The semantic value of the look-ahead symbol.  */ 
    1086 YYSTYPE yylval; 
     1097 
     1098#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
     1099# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
     1100# define YY_IGNORE_MAYBE_UNINITIALIZED_END 
     1101#endif 
     1102#ifndef YY_INITIAL_VALUE 
     1103# define YY_INITIAL_VALUE(Value) /* Nothing. */ 
     1104#endif 
     1105 
     1106/* The semantic value of the lookahead symbol.  */ 
     1107YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); 
    10871108 
    10881109/* Number of syntax errors so far.  */ 
    10891110int yynerrs; 
    1090  
    10911111 
    10921112 
     
    11171137#endif 
    11181138{ 
    1119    
    1120   int yystate; 
     1139    int yystate; 
     1140    /* Number of tokens to shift before error messages enabled.  */ 
     1141    int yyerrstatus; 
     1142 
     1143    /* The stacks and their tools: 
     1144       `yyss': related to states. 
     1145       `yyvs': related to semantic values. 
     1146 
     1147       Refer to the stacks through separate pointers, to allow yyoverflow 
     1148       to reallocate them elsewhere.  */ 
     1149 
     1150    /* The state stack.  */ 
     1151    yytype_int16 yyssa[YYINITDEPTH]; 
     1152    yytype_int16 *yyss; 
     1153    yytype_int16 *yyssp; 
     1154 
     1155    /* The semantic value stack.  */ 
     1156    YYSTYPE yyvsa[YYINITDEPTH]; 
     1157    YYSTYPE *yyvs; 
     1158    YYSTYPE *yyvsp; 
     1159 
     1160    YYSIZE_T yystacksize; 
     1161 
    11211162  int yyn; 
    11221163  int yyresult; 
    1123   /* Number of tokens to shift before error messages enabled.  */ 
    1124   int yyerrstatus; 
    1125   /* Look-ahead token as an internal (translated) token number.  */ 
     1164  /* Lookahead token as an internal (translated) token number.  */ 
    11261165  int yytoken = 0; 
     1166  /* The variables used to return semantic value and location from the 
     1167     action routines.  */ 
     1168  YYSTYPE yyval; 
     1169 
    11271170#if YYERROR_VERBOSE 
    11281171  /* Buffer for error messages, and its allocated size.  */ 
     
    11321175#endif 
    11331176 
    1134   /* Three stacks and their tools: 
    1135      `yyss': related to states, 
    1136      `yyvs': related to semantic values, 
    1137      `yyls': related to locations. 
    1138  
    1139      Refer to the stacks thru separate pointers, to allow yyoverflow 
    1140      to reallocate them elsewhere.  */ 
    1141  
    1142   /* The state stack.  */ 
    1143   yytype_int16 yyssa[YYINITDEPTH]; 
    1144   yytype_int16 *yyss = yyssa; 
    1145   yytype_int16 *yyssp; 
    1146  
    1147   /* The semantic value stack.  */ 
    1148   YYSTYPE yyvsa[YYINITDEPTH]; 
    1149   YYSTYPE *yyvs = yyvsa; 
    1150   YYSTYPE *yyvsp; 
    1151  
    1152  
    1153  
    11541177#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)) 
    1155  
    1156   YYSIZE_T yystacksize = YYINITDEPTH; 
    1157  
    1158   /* The variables used to return semantic value and location from the 
    1159      action routines.  */ 
    1160   YYSTYPE yyval; 
    1161  
    11621178 
    11631179  /* The number of symbols on the RHS of the reduced rule. 
     
    11651181  int yylen = 0; 
    11661182 
     1183  yyssp = yyss = yyssa; 
     1184  yyvsp = yyvs = yyvsa; 
     1185  yystacksize = YYINITDEPTH; 
     1186 
    11671187  YYDPRINTF ((stderr, "Starting parse\n")); 
    11681188 
     
    11701190  yyerrstatus = 0; 
    11711191  yynerrs = 0; 
    1172   yychar = YYEMPTY;     /* Cause a token to be read.  */ 
    1173  
    1174   /* Initialize stack pointers. 
    1175      Waste one element of value and location stack 
    1176      so that they stay on the same level as the state stack. 
    1177      The wasted elements are never initialized.  */ 
    1178  
    1179   yyssp = yyss; 
    1180   yyvsp = yyvs; 
    1181  
     1192  yychar = YYEMPTY; /* Cause a token to be read.  */ 
    11821193  goto yysetstate; 
    11831194 
     
    12061217   yytype_int16 *yyss1 = yyss; 
    12071218 
    1208  
    12091219   /* Each stack pointer address is followed by the size of the 
    12101220      data in use in that stack, in bytes.  This used to be a 
     
    12141224          &yyss1, yysize * sizeof (*yyssp), 
    12151225          &yyvs1, yysize * sizeof (*yyvsp), 
    1216  
    12171226          &yystacksize); 
    12181227 
     
    12371246   if (! yyptr) 
    12381247     goto yyexhaustedlab; 
    1239    YYSTACK_RELOCATE (yyss); 
    1240    YYSTACK_RELOCATE (yyvs); 
    1241  
     1248   YYSTACK_RELOCATE (yyss_alloc, yyss); 
     1249   YYSTACK_RELOCATE (yyvs_alloc, yyvs); 
    12421250#  undef YYSTACK_RELOCATE 
    12431251   if (yyss1 != yyssa) 
     
    12501258      yyvsp = yyvs + yysize - 1; 
    12511259 
    1252  
    12531260      YYDPRINTF ((stderr, "Stack size increased to %lu\n", 
    12541261        (unsigned long int) yystacksize)); 
     
    12591266 
    12601267  YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 
     1268 
     1269  if (yystate == YYFINAL) 
     1270    YYACCEPT; 
    12611271 
    12621272  goto yybackup; 
     
    12681278 
    12691279  /* Do appropriate processing given the current state.  Read a 
    1270      look-ahead token if we need one and don't already have one.  */ 
    1271  
    1272   /* First try to decide what to do without reference to look-ahead token.  */ 
     1280     lookahead token if we need one and don't already have one.  */ 
     1281 
     1282  /* First try to decide what to do without reference to lookahead token.  */ 
    12731283  yyn = yypact[yystate]; 
    1274   if (yyn == YYPACT_NINF) 
     1284  if (yypact_value_is_default (yyn)) 
    12751285    goto yydefault; 
    12761286 
    1277   /* Not known => get a look-ahead token if don't already have one.  */ 
    1278  
    1279   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */ 
     1287  /* Not known => get a lookahead token if don't already have one.  */ 
     1288 
     1289  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */ 
    12801290  if (yychar == YYEMPTY) 
    12811291    { 
     
    13031313  if (yyn <= 0) 
    13041314    { 
    1305       if (yyn == 0 || yyn == YYTABLE_NINF) 
    1306    goto yyerrlab; 
     1315      if (yytable_value_is_error (yyn)) 
     1316        goto yyerrlab; 
    13071317      yyn = -yyn; 
    13081318      goto yyreduce; 
    13091319    } 
    1310  
    1311   if (yyn == YYFINAL) 
    1312     YYACCEPT; 
    13131320 
    13141321  /* Count tokens shifted since error; after three, turn off error 
     
    13171324    yyerrstatus--; 
    13181325 
    1319   /* Shift the look-ahead token.  */ 
     1326  /* Shift the lookahead token.  */ 
    13201327  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 
    13211328 
    1322   /* Discard the shifted token unless it is eof.  */ 
    1323   if (yychar != YYEOF) 
    1324     yychar = YYEMPTY; 
     1329  /* Discard the shifted token.  */ 
     1330  yychar = YYEMPTY; 
    13251331 
    13261332  yystate = yyn; 
     1333  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
    13271334  *++yyvsp = yylval; 
     1335  YY_IGNORE_MAYBE_UNINITIALIZED_END 
    13281336 
    13291337  goto yynewstate; 
     
    13621370    { 
    13631371        case 5: 
     1372/* Line 1807 of yacc.c  */ 
    13641373#line 76 "convert.y" 
    1365     { initdimprob(1,(yyvsp[(2) - (3)].na),"0","0"); ;} 
     1374    { initdimprob(1,(yyvsp[(2) - (3)].na),"0","0"); } 
    13661375    break; 
    13671376 
    13681377  case 6: 
     1378/* Line 1807 of yacc.c  */ 
    13691379#line 77 "convert.y" 
    1370     { initdimprob(2,(yyvsp[(2) - (5)].na), (yyvsp[(4) - (5)].na),"0"); ;} 
     1380    { initdimprob(2,(yyvsp[(2) - (5)].na), (yyvsp[(4) - (5)].na),"0"); } 
    13711381    break; 
    13721382 
    13731383  case 7: 
     1384/* Line 1807 of yacc.c  */ 
    13741385#line 78 "convert.y" 
    1375     { initdimprob(3,(yyvsp[(2) - (7)].na), (yyvsp[(4) - (7)].na), (yyvsp[(6) - (7)].na)); ;} 
     1386    { initdimprob(3,(yyvsp[(2) - (7)].na), (yyvsp[(4) - (7)].na), (yyvsp[(6) - (7)].na)); } 
    13761387    break; 
    13771388 
    13781389  case 8: 
     1390/* Line 1807 of yacc.c  */ 
    13791391#line 80 "convert.y" 
    13801392    { 
    13811393            listofmodules = Addtolistnom((yyvsp[(2) - (3)].na),listofmodules,0); 
    13821394            Addmoduletothelist((yyvsp[(2) - (3)].na)); 
    1383         ;} 
     1395        } 
    13841396    break; 
    13851397 
    13861398  case 9: 
     1399/* Line 1807 of yacc.c  */ 
    13871400#line 85 "convert.y" 
    13881401    { 
     
    14001413                exit(0); 
    14011414            } 
    1402         ;} 
     1415        } 
    14031416    break; 
    14041417 
    14051418  case 10: 
     1419/* Line 1807 of yacc.c  */ 
    14061420#line 101 "convert.y" 
    14071421    { 
    14081422            Add_NotGridDepend_Var_1((yyvsp[(3) - (4)].na)); 
    1409         ;} 
     1423        } 
    14101424    break; 
    14111425 
    14121426  case 11: 
     1427/* Line 1807 of yacc.c  */ 
    14131428#line 105 "convert.y" 
    14141429    { 
    14151430            if (!strcasecmp((yyvsp[(2) - (3)].na),"FIXED_GRIDS"))      fixedgrids = 1; 
    14161431            if (!strcasecmp((yyvsp[(2) - (3)].na),"ONLY_FIXED_GRIDS")) onlyfixedgrids = 1; 
    1417         ;} 
     1432        } 
    14181433    break; 
    14191434 
    14201435 
    1421 /* Line 1267 of yacc.c.  */ 
    1422 #line 1420 "convert.tab.c" 
     1436/* Line 1807 of yacc.c  */ 
     1437#line 1438 "convert.tab.c" 
    14231438      default: break; 
    14241439    } 
     1440  /* User semantic actions sometimes alter yychar, and that requires 
     1441     that yytoken be updated with the new translation.  We take the 
     1442     approach of translating immediately before every use of yytoken. 
     1443     One alternative is translating here after every semantic action, 
     1444     but that translation would be missed if the semantic action invokes 
     1445     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 
     1446     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an 
     1447     incorrect destructor might then be invoked immediately.  In the 
     1448     case of YYERROR or YYBACKUP, subsequent parser actions might lead 
     1449     to an incorrect destructor call or verbose syntax error message 
     1450     before the lookahead is translated.  */ 
    14251451  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 
    14261452 
     
    14301456 
    14311457  *++yyvsp = yyval; 
    1432  
    14331458 
    14341459  /* Now `shift' the result of the reduction.  Determine what state 
     
    14511476`------------------------------------*/ 
    14521477yyerrlab: 
     1478  /* Make sure we have latest lookahead translation.  See comments at 
     1479     user semantic actions for why this is necessary.  */ 
     1480  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 
     1481 
    14531482  /* If not already recovering from an error, report this error.  */ 
    14541483  if (!yyerrstatus) 
     
    14581487      yyerror (YY_("syntax error")); 
    14591488#else 
     1489# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 
     1490                                        yyssp, yytoken) 
    14601491      { 
    1461    YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 
    1462    if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 
    1463      { 
    1464        YYSIZE_T yyalloc = 2 * yysize; 
    1465        if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 
    1466          yyalloc = YYSTACK_ALLOC_MAXIMUM; 
    1467        if (yymsg != yymsgbuf) 
    1468          YYSTACK_FREE (yymsg); 
    1469        yymsg = (char *) YYSTACK_ALLOC (yyalloc); 
    1470        if (yymsg) 
    1471          yymsg_alloc = yyalloc; 
    1472        else 
    1473          { 
    1474       yymsg = yymsgbuf; 
    1475       yymsg_alloc = sizeof yymsgbuf; 
    1476          } 
    1477      } 
    1478  
    1479    if (0 < yysize && yysize <= yymsg_alloc) 
    1480      { 
    1481        (void) yysyntax_error (yymsg, yystate, yychar); 
    1482        yyerror (yymsg); 
    1483      } 
    1484    else 
    1485      { 
    1486        yyerror (YY_("syntax error")); 
    1487        if (yysize != 0) 
    1488          goto yyexhaustedlab; 
    1489      } 
     1492        char const *yymsgp = YY_("syntax error"); 
     1493        int yysyntax_error_status; 
     1494        yysyntax_error_status = YYSYNTAX_ERROR; 
     1495        if (yysyntax_error_status == 0) 
     1496          yymsgp = yymsg; 
     1497        else if (yysyntax_error_status == 1) 
     1498          { 
     1499            if (yymsg != yymsgbuf) 
     1500              YYSTACK_FREE (yymsg); 
     1501            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 
     1502            if (!yymsg) 
     1503              { 
     1504                yymsg = yymsgbuf; 
     1505                yymsg_alloc = sizeof yymsgbuf; 
     1506                yysyntax_error_status = 2; 
     1507              } 
     1508            else 
     1509              { 
     1510                yysyntax_error_status = YYSYNTAX_ERROR; 
     1511                yymsgp = yymsg; 
     1512              } 
     1513          } 
     1514        yyerror (yymsgp); 
     1515        if (yysyntax_error_status == 2) 
     1516          goto yyexhaustedlab; 
    14901517      } 
     1518# undef YYSYNTAX_ERROR 
    14911519#endif 
    14921520    } 
     
    14961524  if (yyerrstatus == 3) 
    14971525    { 
    1498       /* If just tried and failed to reuse look-ahead token after an 
     1526      /* If just tried and failed to reuse lookahead token after an 
    14991527    error, discard it.  */ 
    15001528 
     
    15131541    } 
    15141542 
    1515   /* Else will try to reuse look-ahead token after shifting the error 
     1543  /* Else will try to reuse lookahead token after shifting the error 
    15161544     token.  */ 
    15171545  goto yyerrlab1; 
     
    15471575    { 
    15481576      yyn = yypact[yystate]; 
    1549       if (yyn != YYPACT_NINF) 
     1577      if (!yypact_value_is_default (yyn)) 
    15501578   { 
    15511579     yyn += YYTERROR; 
     
    15701598    } 
    15711599 
    1572   if (yyn == YYFINAL) 
    1573     YYACCEPT; 
    1574  
     1600  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
    15751601  *++yyvsp = yylval; 
     1602  YY_IGNORE_MAYBE_UNINITIALIZED_END 
    15761603 
    15771604 
     
    15971624  goto yyreturn; 
    15981625 
    1599 #ifndef yyoverflow 
     1626#if !defined yyoverflow || YYERROR_VERBOSE 
    16001627/*-------------------------------------------------. 
    16011628| yyexhaustedlab -- memory exhaustion comes here.  | 
     
    16081635 
    16091636yyreturn: 
    1610   if (yychar != YYEOF && yychar != YYEMPTY) 
    1611      yydestruct ("Cleanup: discarding lookahead", 
    1612        yytoken, &yylval); 
     1637  if (yychar != YYEMPTY) 
     1638    { 
     1639      /* Make sure we have latest lookahead translation.  See comments at 
     1640         user semantic actions for why this is necessary.  */ 
     1641      yytoken = YYTRANSLATE (yychar); 
     1642      yydestruct ("Cleanup: discarding lookahead", 
     1643                  yytoken, &yylval); 
     1644    } 
    16131645  /* Do not reclaim the symbols of the rule which action triggered 
    16141646     this YYABORT or YYACCEPT.  */ 
     
    16341666 
    16351667 
     1668/* Line 2055 of yacc.c  */ 
    16361669#line 110 "convert.y" 
    16371670 
     
    16571690    int infreegiven ; 
    16581691    int infixedgiven ; 
    1659     int lengthmainfile; 
    16601692 
    16611693    char filetoparse[LONG_FNAME]; 
     
    16871719    tmpuselocallist = (listusemodule *) NULL; 
    16881720    List_ContainsSubroutine = (listnom *) NULL; 
     1721    List_Do_labels = (listname *) NULL; 
    16891722    oldfortran_out = (FILE *) NULL; 
    16901723 
    1691     if (argc < 2) print_usage(); 
    1692      
     1724    if ( argc < 2 ) 
     1725        print_usage(); 
     1726 
    16931727    strcpy(config_file, argv[1]); 
    16941728    strcpy(work_dir, "."); 
     
    17841818            strcpy(filetoparse, argv[i+1]); 
    17851819            i++; 
    1786             lengthmainfile = strlen(filetoparse); 
    1787             if (!strcasecmp(&filetoparse[lengthmainfile-4], ".f90")) 
    1788             { 
    1789                 infixed = 0; 
    1790                 infree = 1; 
    1791             } 
    1792             else 
    1793             { 
    1794                 infixed = 1; 
    1795                 infree = 0; 
    1796             } 
     1820            infree  = (strstr(filetoparse, ".f90") != NULL) || (strstr(filetoparse, ".F90") != NULL); 
     1821            infixed = ! infree; 
    17971822        } 
    17981823        else if (!strcasecmp(argv[i], "-free")) 
     
    19271952    /* Build new subroutines                                                   */ 
    19281953    firstpass = 0; 
     1954    /* 
     1955    printf("**********************************\n"); 
     1956    printf("SECOND PASSES \n"); 
     1957    printf("**********************************\n"); 
     1958    */ 
    19291959    process_fortran(filetoparse); 
    19301960 
     
    19892019    return 0; 
    19902020} 
    1991  
    19922021#line 2 "convert.yy.c" 
    19932022 
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/toamr.c

    r5656 r8139  
    4747        "tabvars_i"     // v_catvar == 4 
    4848    }; 
     49 
    4950    return tname[var->v_catvar];    // v_catvar should never be ouside the range [0:4]. 
    5051} 
     
    137138    static char tname_1[LONG_C]; 
    138139    static char tname_2[LONG_C]; 
    139  
     140     
    140141    if ( iorindice == 0 ) sprintf(tname_1, "Agrif_Gr %% %s(%d)", tabvarsname(var), var->v_indicetabvars); 
    141142    else                  sprintf(tname_1, "Agrif_Gr %% %s(i)",  tabvarsname(var)); 
    142143 
    143     if (!strcasecmp(var->v_typevar, "REAL")) 
     144    if (!strcasecmp(var->v_typevar, "real")) 
    144145    { 
    145146        if      ( !strcasecmp(var->v_nameinttypename,"8") ) sprintf(tname_2, "%% darray%d", var->v_nbdim); 
    146147        else if ( !strcasecmp(var->v_nameinttypename,"4") ) sprintf(tname_2, "%% sarray%d", var->v_nbdim); 
    147         else                                                sprintf(tname_2, "%% array%d",  var->v_nbdim); 
     148        else if ( !strcasecmp(var->v_precision,"8") ) sprintf(tname_2, "%% darray%d", var->v_nbdim); 
     149        else if ( !strcasecmp(var->v_precision,"4") ) sprintf(tname_2, "%% sarray%d", var->v_nbdim);         
     150        else   
     151          { 
     152          sprintf(tname_2, "%% array%d",  var->v_nbdim); 
     153          } 
    148154    } 
    149155    else if (!strcasecmp(var->v_typevar, "integer")) 
     
    195201        if (!strcasecmp(var->v_typevar, "REAL")) 
    196202        { 
    197             if      ( !strcasecmp(var->v_nameinttypename,"8") ) sprintf(tname_2, "%% darray%d", var->v_nbdim); 
    198             else if ( !strcasecmp(var->v_nameinttypename,"4") ) sprintf(tname_2, "%% sarray%d", var->v_nbdim); 
    199             else                                                sprintf(tname_2, "%% array%d", var->v_nbdim); 
     203            if      ( !strcasecmp(var->v_nameinttypename,"8") ) sprintf(tname_2, "darray%d", var->v_nbdim); 
     204            else if ( !strcasecmp(var->v_nameinttypename,"4") ) sprintf(tname_2, "sarray%d", var->v_nbdim); 
     205            else if ( !strcasecmp(var->v_precision,"8") ) sprintf(tname_2, "darray%d", var->v_nbdim); 
     206            else if ( !strcasecmp(var->v_precision,"4") ) sprintf(tname_2, "sarray%d", var->v_nbdim); 
     207            else sprintf(tname_2, "array%d", var->v_nbdim); 
    200208        } 
    201209        else if (!strcasecmp(var->v_typevar, "INTEGER")) 
    202210        { 
    203             sprintf(tname_2, "%% iarray%d", var->v_nbdim); 
     211            sprintf(tname_2, "iarray%d", var->v_nbdim); 
    204212        } 
    205213        else if (!strcasecmp(var->v_typevar, "LOGICAL")) 
    206214        { 
    207             sprintf(tname_2, "%% larray%d", var->v_nbdim); 
     215            sprintf(tname_2, "larray%d", var->v_nbdim); 
    208216        } 
    209217        else if (!strcasecmp(var->v_typevar, "CHARACTER")) 
    210218        { 
    211219            WARNING_CharSize(var); 
    212             sprintf(tname_2, "%% carray%d", var->v_nbdim); 
    213         } 
    214         strcat(tname_1, tname_2); 
     220            sprintf(tname_2, "carray%d", var->v_nbdim); 
     221        } 
     222        if (var->v_pointerdeclare) 
     223        { 
     224                strcat(tname_1,"%p"); 
     225                strcat(tname_1, tname_2); 
     226        } 
     227        else 
     228        { 
     229                strcat(tname_1,"%"); 
     230                strcat(tname_1, tname_2); 
     231        } 
    215232    } 
    216233    Save_Length(tname_1, 46); 
     
    232249 
    233250    sprintf(tname_1, "(%d)", var->v_indicetabvars); 
    234  
    235     if (!strcasecmp (var->v_typevar, "REAL")) 
    236     { 
    237         if      ( !strcasecmp(var->v_nameinttypename,"8") ) sprintf(tname_2, "%% darray%d", var->v_nbdim); 
    238         else if ( !strcasecmp(var->v_nameinttypename,"4") ) sprintf(tname_2, "%% sarray%d", var->v_nbdim); 
    239         else                                                sprintf(tname_2, "%% array%d", var->v_nbdim); 
    240     } 
    241     else if (!strcasecmp(var->v_typevar, "INTEGER")) 
    242     { 
    243         sprintf(tname_2, "%% iarray%d", var->v_nbdim); 
    244     } 
    245     else if (!strcasecmp(var->v_typevar, "LOGICAL")) 
    246     { 
    247         sprintf(tname_2, "%% larray%d", var->v_nbdim); 
    248     } 
    249     else if (!strcasecmp(var->v_typevar, "CHARACTER")) 
    250     { 
    251         WARNING_CharSize(var); 
    252         sprintf(tname_2, "%% carray%d", var->v_nbdim); 
    253     } 
    254  
    255     strcat(tname_1, tname_2); 
     251     
     252        if (!strcasecmp(var->v_typevar, "REAL")) 
     253        { 
     254            if      ( !strcasecmp(var->v_nameinttypename,"8") ) sprintf(tname_2, "darray%d", var->v_nbdim); 
     255            else if ( !strcasecmp(var->v_nameinttypename,"4") ) sprintf(tname_2, "sarray%d", var->v_nbdim); 
     256            else if ( !strcasecmp(var->v_precision,"8") ) sprintf(tname_2, "darray%d", var->v_nbdim); 
     257            else if ( !strcasecmp(var->v_precision,"4") ) sprintf(tname_2, "sarray%d", var->v_nbdim); 
     258            else sprintf(tname_2, "array%d", var->v_nbdim); 
     259        } 
     260        else if (!strcasecmp(var->v_typevar, "INTEGER")) 
     261        { 
     262            sprintf(tname_2, "iarray%d", var->v_nbdim); 
     263        } 
     264        else if (!strcasecmp(var->v_typevar, "LOGICAL")) 
     265        { 
     266            sprintf(tname_2, "larray%d", var->v_nbdim); 
     267        } 
     268        else if (!strcasecmp(var->v_typevar, "CHARACTER")) 
     269        { 
     270            WARNING_CharSize(var); 
     271            sprintf(tname_2, "carray%d", var->v_nbdim); 
     272        } 
     273        if (var->v_pointerdeclare) 
     274        { 
     275                strcat(tname_1,"%p"); 
     276                strcat(tname_1, tname_2); 
     277        } 
     278        else 
     279        { 
     280                strcat(tname_1,"%"); 
     281                strcat(tname_1, tname_2); 
     282        } 
     283 
    256284    Save_Length(tname_1, 46); 
    257285 
     
    535563    listvar *parcoursprec; 
    536564    listvar *parcours1; 
     565    listname *parcours_name; 
     566    listname *parcours_name_array; 
     567    listdoloop *parcours_loop; 
    537568    FILE *allocationagrif; 
    538569    FILE *paramtoamr; 
    539570    char ligne[LONG_M]; 
    540571    char ligne2[LONG_M]; 
     572    char ligne3[LONG_M]; 
    541573    variable *v; 
    542574    int IndiceMax; 
     
    550582    listindice *parcoursindic; 
    551583    int i; 
     584    int nb_initial; 
     585    int is_parameter_local; 
     586    int global_check; 
    552587 
    553588    parcoursprec = (listvar *) NULL; 
     
    561596            sprintf(ligne,"alloc_agrif_%s.h",parcours_nom->o_nom); 
    562597            allocationagrif = open_for_write(ligne); 
     598 
    563599            fprintf(allocationagrif,"#include \"Param_toamr_%s.h\" \n", parcours_nom->o_nom); 
    564  
    565600            sprintf(ligne,"Param_toamr_%s.h",parcours_nom->o_nom); 
    566601            paramtoamr = open_for_write(ligne); 
     
    568603            list_indic = (listindice **) calloc(NB_CAT_VARIABLES,sizeof(listindice *)); 
    569604 
    570 //             shouldincludempif = 1 ; 
     605             shouldincludempif = 1 ; 
    571606            parcours = List_Common_Var; 
    572607            while ( parcours ) 
     
    621656                                        IndiceMin = parcours->var->v_indicetabvars; 
    622657                                        IndiceMax = parcours->var->v_indicetabvars+compteur; 
    623                                         sprintf(ligne,"    allocate(%s", vargridnametabvars(v,1)); 
     658                                        sprintf(ligne,"    if (.not. allocated(%s)) allocate(%s", vargridnametabvars(v,1), vargridnametabvars(v,1)); 
    624659                                        sprintf(ligne2,"%s)", vargridparam(v)); 
    625660                                        strcat(ligne,ligne2); 
     
    639674                                    else 
    640675                                    { 
    641                                         sprintf(ligne,"allocate(%s", vargridnametabvars(v,0)); 
     676                                        sprintf(ligne,"if (.not. allocated(%s)) allocate(%s", vargridnametabvars(v,0), vargridnametabvars(v,0)); 
    642677                                        sprintf(ligne2,"%s)", vargridparam(v)); 
    643678                                        strcat(ligne,ligne2); 
     
    648683                                        list_indic[parcours->var->v_catvar] = parcoursindic; 
    649684                                    } 
    650                                     neededparameter = writedeclarationintoamr(List_Parameter_Var, 
    651                                                         paramtoamr,v,parcours_nom->o_nom,neededparameter,v->v_commonname); 
     685 
     686                                    global_check = 0; 
     687                                    is_parameter_local = writedeclarationintoamr(List_Parameter_Var, 
     688                                                        paramtoamr,v,parcours_nom->o_nom,&neededparameter,v->v_commonname,global_check); 
     689                                    if (is_parameter_local == 0) 
     690                                    { 
     691                                    global_check = 1; 
     692                                    is_parameter_local = writedeclarationintoamr(List_GlobalParameter_Var, 
     693                                                        paramtoamr,v,parcours_nom->o_nom,&neededparameter,v->v_commonname,global_check); 
     694                                    } 
    652695                                } 
    653696                            } /* end of the allocation part                                       */ 
    654697                            /*                INITIALISATION                                      */ 
    655                             if ( strcasecmp(v->v_initialvalue,"") ) 
     698                            if ( v->v_initialvalue ) 
     699                            { 
     700                            parcours_name = v->v_initialvalue; 
     701                            parcours_name_array = v->v_initialvalue_array; 
     702                            if (parcours_name_array) 
     703                            { 
     704                            while (parcours_name) 
    656705                            { 
    657706                                strcpy(ligne, vargridnametabvars(v,0)); 
     707                                if (parcours_name_array) 
     708                                { 
     709                                if (strcasecmp(parcours_name_array->n_name,"") ) 
     710                                { 
     711                                sprintf(ligne2,"(%s)",parcours_name_array->n_name); 
     712                                strcat(ligne,ligne2); 
     713                                } 
     714                                } 
    658715                                /* We should modify the initialvalue in the case of variable has been defined with others variables */ 
    659                                 strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_Global_Var)); 
    660                                 if ( !strcasecmp(initialvalue,v->v_initialvalue) ) 
    661                                 { 
    662                                     strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_Common_Var)); 
    663                                 } 
    664                                 if ( !strcasecmp(initialvalue,v->v_initialvalue) ) 
    665                                 { 
    666                                     strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_ModuleUsed_Var)); 
     716                                strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Global_Var)); 
     717                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     718                                { 
     719                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Common_Var)); 
     720                                } 
     721                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     722                                { 
     723                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_ModuleUsed_Var)); 
    667724                                } 
    668725                                strcat (ligne," = "); 
    669726 
    670                                 if (v->v_nbdim == 0) 
     727                                if (v->v_nbdim >= 0) 
    671728                                { 
    672729                                    strcpy(ligne2,initialvalue); 
     
    678735                                strcat(ligne,ligne2); 
    679736                                tofich(allocationagrif,ligne,1); 
     737                              
     738                             parcours_name = parcours_name->suiv; 
     739                             if (parcours_name_array) parcours_name_array = parcours_name_array->suiv; 
     740                            } 
     741                            } 
     742                            else 
     743                            { 
     744                            strcpy(ligne, vargridnametabvars(v,0)); 
     745                            strcat (ligne," = "); 
     746                            strcpy(ligne2,""); 
     747                            nb_initial = 0; 
     748                             
     749                            while (parcours_name) 
     750                            { 
     751                            nb_initial = nb_initial + 1; 
     752                                /* We should modify the initialvalue in the case of variable has been defined with others variables */ 
     753                                strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Global_Var)); 
     754                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     755                                { 
     756                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Common_Var)); 
     757                                } 
     758                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     759                                { 
     760                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_ModuleUsed_Var)); 
     761                                } 
     762 
     763                                strcat(ligne2,initialvalue); 
     764                             if (parcours_name->suiv) 
     765                             { 
     766                             strcat(ligne2,","); 
     767                             } 
     768                              
     769                             parcours_name = parcours_name->suiv; 
     770                            } 
     771                            if (nb_initial > 1) 
     772                            { 
     773                            sprintf(ligne3,"reshape((/%s/),shape(%s))",ligne2,vargridnametabvars(v,0)); 
     774                            } 
     775                            else 
     776                            { 
     777                            strcpy(ligne3,ligne2); 
     778                            } 
     779                            strcat(ligne,ligne3); 
     780                            tofich(allocationagrif,ligne,1); 
     781                            } 
    680782                            } 
    681783                        } 
     
    705807    char ligne[LONG_M]; 
    706808    char ligne2[LONG_M]; 
     809    char ligne3[LONG_M]; 
     810    listname *parcours_name; 
     811    listname *parcours_name_array; 
    707812    variable *v; 
    708813    int IndiceMax; 
     
    714819    char initialvalue[LONG_M]; 
    715820    int typeiswritten ; 
     821    int nb_initial; 
    716822 
    717823    parcoursprec = (listvar *) NULL; 
     
    794900                                        IndiceMin = parcours->var->v_indicetabvars; 
    795901                                        IndiceMax = parcours->var->v_indicetabvars+compteur; 
    796                                         sprintf(ligne,"    allocate(%s", vargridnametabvars(v,1)); 
     902                                        sprintf(ligne,"    if (.not. allocated(%s)) allocate(%s", vargridnametabvars(v,1), vargridnametabvars(v,1)); 
    797903                                        sprintf(ligne2,"%s)", vargridparam(v)); 
    798904                                        strcat(ligne,ligne2); 
     
    803909                                    else 
    804910                                    { 
    805                                         sprintf(ligne,"allocate(%s", vargridnametabvars(v,0)); 
     911                                        sprintf(ligne,"if (.not. allocated(%s)) allocate(%s", vargridnametabvars(v,0), vargridnametabvars(v,0)); 
    806912                                        sprintf(ligne2,"%s)", vargridparam(v)); 
    807913                                        strcat(ligne,ligne2); 
     
    811917                            } /* end of the allocation part                                       */ 
    812918                            /*                INITIALISATION                                      */ 
    813                             if ( strcasecmp(v->v_initialvalue,"") ) 
     919 
     920               if ( v->v_initialvalue ) 
     921                            { 
     922                            parcours_name = v->v_initialvalue; 
     923                            parcours_name_array = v->v_initialvalue_array; 
     924                            if (parcours_name_array) 
     925                            { 
     926                            while (parcours_name) 
    814927                            { 
    815928                                strcpy(ligne, vargridnametabvars(v,0)); 
     929                                if (parcours_name_array) 
     930                                { 
     931                                if (strcasecmp(parcours_name_array->n_name,"") ) 
     932                                { 
     933                                sprintf(ligne2,"(%s)",parcours_name_array->n_name); 
     934                                strcat(ligne,ligne2); 
     935                                } 
     936                                } 
    816937                                /* We should modify the initialvalue in the case of variable has been defined with others variables */ 
    817                                 strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_Global_Var)); 
    818                                 if ( !strcasecmp(initialvalue,v->v_initialvalue) ) 
    819                                 { 
    820                                     strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_Common_Var)); 
    821                                 } 
    822                                 if ( !strcasecmp(initialvalue,v->v_initialvalue) ) 
    823                                 { 
    824                                     strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(v->v_initialvalue,List_ModuleUsed_Var)); 
     938                                strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Global_Var)); 
     939                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     940                                { 
     941                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Common_Var)); 
     942                                } 
     943                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     944                                { 
     945                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_ModuleUsed_Var)); 
    825946                                } 
    826947                                strcat (ligne," = "); 
    827                                 strcat (ligne,initialvalue); 
    828                                 Save_Length(ligne,48); 
     948 
     949                                if (v->v_nbdim >= 0) 
     950                                { 
     951                                    strcpy(ligne2,initialvalue); 
     952                                } 
     953                                else 
     954                                { 
     955                                    sprintf(ligne2,"reshape(%s,shape(%s))",initialvalue,vargridnametabvars(v,0)); 
     956                                } 
     957                                strcat(ligne,ligne2); 
    829958                                tofich(allocationagrif,ligne,1); 
     959                              
     960                             parcours_name = parcours_name->suiv; 
     961                             if (parcours_name_array) parcours_name_array = parcours_name_array->suiv; 
     962                            } 
     963                            } 
     964                            else 
     965                            { 
     966                            strcpy(ligne, vargridnametabvars(v,0)); 
     967                            strcat (ligne," = "); 
     968                            strcpy(ligne2,""); 
     969                            nb_initial = 0; 
     970                             
     971                            while (parcours_name) 
     972                            { 
     973                            nb_initial = nb_initial + 1; 
     974                                /* We should modify the initialvalue in the case of variable has been defined with others variables */ 
     975                                strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Global_Var)); 
     976                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     977                                { 
     978                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_Common_Var)); 
     979                                } 
     980                                if ( !strcasecmp(initialvalue,parcours_name->n_name) ) 
     981                                { 
     982                                    strcpy(initialvalue,ChangeTheInitalvaluebyTabvarsName(parcours_name->n_name,List_ModuleUsed_Var)); 
     983                                } 
     984 
     985                                strcat(ligne2,initialvalue); 
     986                             if (parcours_name->suiv) 
     987                             { 
     988                             strcat(ligne2,","); 
     989                             } 
     990                              
     991                             parcours_name = parcours_name->suiv; 
     992                            } 
     993                            if (nb_initial > 1) 
     994                            { 
     995                            sprintf(ligne3,"reshape((/%s/),shape(%s))",ligne2,vargridnametabvars(v,0)); 
     996                            } 
     997                            else 
     998                            { 
     999                            strcpy(ligne3,ligne2); 
     1000                            } 
     1001                            strcat(ligne,ligne3); 
     1002                            tofich(allocationagrif,ligne,1); 
     1003                            } 
    8301004                            } 
    8311005                        } 
Note: See TracChangeset for help on using the changeset viewer.