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 10088 – NEMO

Changeset 10088


Ignore:
Timestamp:
2018-09-05T15:35:32+02:00 (6 years ago)
Author:
rblod
Message:

update conv

Location:
vendors/AGRIF/CMEMS_2020/LIB
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • vendors/AGRIF/CMEMS_2020/LIB/DiversListe.c

    r5656 r10088  
    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; 
  • vendors/AGRIF/CMEMS_2020/LIB/Makefile

    r5656 r10088  
    1818   @echo =================================================== 
    1919   @echo 
    20  
     20# Modif Laurent Debreu car Version de bison trop ancienne => Eviter l'appel a Bison 
    2121#main.c: convert.y convert.lex 
    2222#  @echo =================================================== 
     
    2424#  @echo =================================================== 
    2525#  $(MAKE) -f Makefile.lex main.c 
    26  
     26# 
    2727#fortran.c: fortran.y fortran.lex 
    2828#  @echo =================================================== 
     
    3232 
    3333conv: $(OBJS) 
    34    $(CC) $(CFLAGS) -g $(OBJS) -o ../$@ 
     34   $(CC) $(CFLAGS) $(OBJS) -o ./$@ 
    3535 
    3636%.o: %.c 
    37    $(CC) $(CFLAGS) -g -c $< -o $@ 
     37   $(CC) $(CFLAGS) -c $< -o $@ 
    3838 
    3939main.o : main.c 
     
    6262 
    6363clean: 
    64 #  $(MAKE) -f Makefile.lex clean 
     64   $(MAKE) -f Makefile.lex clean 
    6565   $(RM) *.o conv 
    6666    
     67clean-all: clean 
     68   $(MAKE) -f Makefile.lex clean-all 
  • vendors/AGRIF/CMEMS_2020/LIB/SubLoopCreation.c

    r5656 r10088  
    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"); 
  • vendors/AGRIF/CMEMS_2020/LIB/UtilAgrif.c

    r5656 r10088  
    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 
  • vendors/AGRIF/CMEMS_2020/LIB/UtilFortran.c

    r5656 r10088  
    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 
  • vendors/AGRIF/CMEMS_2020/LIB/UtilListe.c

    r5656 r10088  
    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} 
  • vendors/AGRIF/CMEMS_2020/LIB/WorkWithlistdatavariable.c

    r5656 r10088  
    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} 
  • vendors/AGRIF/CMEMS_2020/LIB/WorkWithlistvarindoloop.c

    r5656 r10088  
    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"); 
  • vendors/AGRIF/CMEMS_2020/LIB/WriteInFile.c

    r5656 r10088  
    141141    fseek(filout, position, SEEK_SET); 
    142142    tofich_blanc(filout, sizetoremove); 
    143     fseek(filout, position, SEEK_SET); 
     143 
    144144} 
    145145 
  • vendors/AGRIF/CMEMS_2020/LIB/Writedeclarations.c

    r5656 r10088  
    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        } 
  • vendors/AGRIF/CMEMS_2020/LIB/decl.h

    r9019 r10088  
    3636#define LONG_FNAME 1000    // Max length for a file name 
    3737#define LONG_C     200 
    38 #define LONG_M     2000 
     38#define LONG_M     1500 
    3939 
    4040#define NB_CAT_VARIABLES 5 
     
    5555   struct listdim *suiv; 
    5656} listdim;                 /* list of the dimensions of a variable            */ 
     57 
     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; 
    5777 
    5878typedef struct variable 
     
    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); 
  • vendors/AGRIF/CMEMS_2020/LIB/fortran.c

    r5656 r10088  
    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; 
     97long int my_position; 
     98long int my_position_before; 
     99int suborfun = 0; 
     100int indeclaration = 0; 
     101int endoffile = 0; 
     102int in_inquire = 0; 
     103int in_char_selector = 0; 
     104int in_kind_selector =0; 
     105int char_length_toreset = 0; 
     106 
     107typedim my_dim; 
     108 
    92109listvar *test; 
     110 
     111char linebuf1[1024]; 
     112char linebuf2[1024]; 
    93113 
    94114int fortran_error(const char *s) 
    95115{ 
    96     printf("%s line %d, file %s motclef = |%s|\n", s, line_num_input, cur_filename, fortran_text); 
     116  if (endoffile == 1)  
     117  { 
     118  endoffile = 0; 
     119  return 0; 
     120  } 
     121    printf("%s line %d, file %s culprit = |%s|\n", s, line_num_input, cur_filename, strcat(linebuf1, linebuf2)); 
    97122    exit(1); 
    98123} 
     
    100125 
    101126/* Line 371 of yacc.c  */ 
    102 #line 104 "fortran.tab.c" 
     127#line 128 "fortran.tab.c" 
    103128 
    104129# ifndef YY_NULL 
     
    156181     TOK_PROGRAM = 279, 
    157182     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 
     183     TOK_LABEL_FORMAT = 281, 
     184     TOK_LABEL_CONTINUE = 282, 
     185     TOK_LABEL_END_DO = 283, 
     186     TOK_MAX = 284, 
     187     TOK_TANH = 285, 
     188     TOK_COMMENT = 286, 
     189     TOK_WHERE = 287, 
     190     TOK_ELSEWHEREPAR = 288, 
     191     TOK_ELSEWHERE = 289, 
     192     TOK_ENDWHERE = 290, 
     193     TOK_MAXVAL = 291, 
     194     TOK_TRIM = 292, 
     195     TOK_NULL_PTR = 293, 
     196     TOK_SUM = 294, 
     197     TOK_SQRT = 295, 
     198     TOK_CASE = 296, 
     199     TOK_SELECTCASE = 297, 
     200     TOK_FILE = 298, 
     201     TOK_REC = 299, 
     202     TOK_NAME_EQ = 300, 
     203     TOK_IOLENGTH = 301, 
     204     TOK_ACCESS = 302, 
     205     TOK_ACTION = 303, 
     206     TOK_FORM = 304, 
     207     TOK_RECL = 305, 
     208     TOK_STATUS = 306, 
     209     TOK_UNIT = 307, 
     210     TOK_OPENED = 308, 
     211     TOK_FMT = 309, 
     212     TOK_NML = 310, 
     213     TOK_END = 311, 
     214     TOK_EOR = 312, 
     215     TOK_EOF = 313, 
     216     TOK_ERR = 314, 
     217     TOK_POSITION = 315, 
     218     TOK_IOSTAT = 316, 
     219     TOK_IOMSG = 317, 
     220     TOK_EXIST = 318, 
     221     TOK_MIN = 319, 
     222     TOK_FLOAT = 320, 
     223     TOK_EXP = 321, 
     224     TOK_LEN = 322, 
     225     TOK_COS = 323, 
     226     TOK_COSH = 324, 
     227     TOK_ACOS = 325, 
     228     TOK_NINT = 326, 
     229     TOK_CYCLE = 327, 
     230     TOK_SIN = 328, 
     231     TOK_SINH = 329, 
     232     TOK_ASIN = 330, 
     233     TOK_EQUIVALENCE = 331, 
     234     TOK_BACKSPACE = 332, 
     235     TOK_LOG = 333, 
     236     TOK_TAN = 334, 
     237     TOK_ATAN = 335, 
     238     TOK_RECURSIVE = 336, 
     239     TOK_ABS = 337, 
     240     TOK_MOD = 338, 
     241     TOK_SIGN = 339, 
     242     TOK_MINLOC = 340, 
     243     TOK_MAXLOC = 341, 
     244     TOK_EXIT = 342, 
     245     TOK_KIND = 343, 
     246     TOK_MOLD = 344, 
     247     TOK_SOURCE = 345, 
     248     TOK_ERRMSG = 346, 
     249     TOK_MINVAL = 347, 
     250     TOK_PUBLIC = 348, 
     251     TOK_PRIVATE = 349, 
     252     TOK_ALLOCATABLE = 350, 
     253     TOK_RETURN = 351, 
     254     TOK_THEN = 352, 
     255     TOK_ELSEIF = 353, 
     256     TOK_ELSE = 354, 
     257     TOK_ENDIF = 355, 
     258     TOK_PRINT = 356, 
     259     TOK_PLAINGOTO = 357, 
     260     TOK_LOGICALIF = 358, 
     261     TOK_LOGICALIF_PAR = 359, 
     262     TOK_PLAINDO = 360, 
     263     TOK_CONTAINS = 361, 
     264     TOK_ENDDO = 362, 
     265     TOK_MODULE = 363, 
     266     TOK_ENDMODULE = 364, 
     267     TOK_WHILE = 365, 
     268     TOK_CONCURRENT = 366, 
     269     TOK_ALLOCATE = 367, 
     270     TOK_OPEN = 368, 
     271     TOK_CLOSE = 369, 
     272     TOK_INQUIRE = 370, 
     273     TOK_WRITE_PAR = 371, 
     274     TOK_WRITE = 372, 
     275     TOK_FLUSH = 373, 
     276     TOK_READ_PAR = 374, 
     277     TOK_READ = 375, 
     278     TOK_REWIND = 376, 
     279     TOK_DEALLOCATE = 377, 
     280     TOK_NULLIFY = 378, 
     281     TOK_DIMENSION = 379, 
     282     TOK_ENDSELECT = 380, 
     283     TOK_EXTERNAL = 381, 
     284     TOK_INTENT = 382, 
     285     TOK_INTRINSIC = 383, 
     286     TOK_NAMELIST = 384, 
     287     TOK_DEFAULT = 385, 
     288     TOK_OPTIONAL = 386, 
     289     TOK_POINTER = 387, 
     290     TOK_CONTINUE = 388, 
     291     TOK_SAVE = 389, 
     292     TOK_TARGET = 390, 
     293     TOK_IMPLICIT = 391, 
     294     TOK_NONE = 392, 
     295     TOK_CALL = 393, 
     296     TOK_STAT = 394, 
     297     TOK_POINT_TO = 395, 
     298     TOK_COMMON = 396, 
     299     TOK_GLOBAL = 397, 
     300     TOK_LEFTAB = 398, 
     301     TOK_RIGHTAB = 399, 
     302     TOK_PAUSE = 400, 
     303     TOK_PROCEDURE = 401, 
     304     TOK_STOP = 402, 
     305     TOK_FOURDOTS = 403, 
     306     TOK_HEXA = 404, 
     307     TOK_ASSIGNTYPE = 405, 
     308     TOK_OUT = 406, 
     309     TOK_INOUT = 407, 
     310     TOK_IN = 408, 
     311     TOK_USE = 409, 
     312     TOK_EQUALEQUAL = 410, 
     313     TOK_SLASHEQUAL = 411, 
     314     TOK_INFEQUAL = 412, 
     315     TOK_SUPEQUAL = 413, 
     316     TOK_TRUE = 414, 
     317     TOK_FALSE = 415, 
     318     TOK_LABEL = 416, 
     319     TOK_LABEL_DJVIEW = 417, 
     320     TOK_PLAINDO_LABEL_DJVIEW = 418, 
     321     TOK_PLAINDO_LABEL = 419, 
     322     TOK_TYPE = 420, 
     323     TOK_TYPEPAR = 421, 
     324     TOK_ENDTYPE = 422, 
     325     TOK_COMMACOMPLEX = 423, 
     326     TOK_REAL = 424, 
     327     TOK_INTEGER = 425, 
     328     TOK_LOGICAL = 426, 
     329     TOK_DOUBLEPRECISION = 427, 
     330     TOK_ENDSUBROUTINE = 428, 
     331     TOK_ENDFUNCTION = 429, 
     332     TOK_ENDPROGRAM = 430, 
     333     TOK_ENDUNIT = 431, 
     334     TOK_CHARACTER = 432, 
     335     TOK_CHAR_CONSTANT = 433, 
     336     TOK_CHAR_CUT = 434, 
     337     TOK_DATA = 435, 
     338     TOK_CHAR_MESSAGE = 436, 
     339     TOK_CSTREAL = 437, 
     340     TOK_COMPLEX = 438, 
     341     TOK_DOUBLECOMPLEX = 439, 
     342     TOK_NAME = 440, 
     343     TOK_CSTINT = 441 
    288344   }; 
    289345#endif 
     
    294350{ 
    295351/* Line 387 of yacc.c  */ 
    296 #line 65 "fortran.y" 
     352#line 89 "fortran.y" 
    297353 
    298354    char        na[LONG_M]; 
     
    306362 
    307363/* Line 387 of yacc.c  */ 
    308 #line 310 "fortran.tab.c" 
     364#line 365 "fortran.tab.c" 
    309365} YYSTYPE; 
    310366# define YYSTYPE_IS_TRIVIAL 1 
     
    334390 
    335391/* Line 390 of yacc.c  */ 
    336 #line 338 "fortran.tab.c" 
     392#line 393 "fortran.tab.c" 
    337393 
    338394#ifdef short 
     
    554610#define YYFINAL  2 
    555611/* YYLAST -- Last index in YYTABLE.  */ 
    556 #define YYLAST   6268 
     612#define YYLAST   4537 
    557613 
    558614/* YYNTOKENS -- Number of terminals.  */ 
    559 #define YYNTOKENS  169 
     615#define YYNTOKENS  203 
    560616/* YYNNTS -- Number of nonterminals.  */ 
    561 #define YYNNTS  206 
     617#define YYNNTS  518 
    562618/* YYNRULES -- Number of rules.  */ 
    563 #define YYNRULES  597 
     619#define YYNRULES  1063 
    564620/* YYNRULES -- Number of states.  */ 
    565 #define YYNSTATES  1051 
     621#define YYNSTATES  1719 
    566622 
    567623/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
    568624#define YYUNDEFTOK  2 
    569 #define YYMAXUTOK   410 
     625#define YYMAXUTOK   441 
    570626 
    571627#define YYTRANSLATE(YYX)                  \ 
     
    576632{ 
    577633       0,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    578      166,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     634     197,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    579635       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, 
     636       2,     2,     2,     2,     2,     2,     2,   199,     2,     2, 
     637     193,   194,    21,    19,     3,    20,     2,   198,     2,     2, 
    582638       2,     2,     2,     2,     2,     2,     2,     2,     4,     2, 
    583      164,     5,   165,     2,     2,     2,     2,     2,     2,     2, 
     639     195,     5,   196,     2,     2,     2,     2,     2,     2,     2, 
    584640       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    585641       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     642       2,   201,     2,   202,     2,   200,     2,     2,     2,     2, 
    587643       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    588644       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     
    616672     141,   142,   143,   144,   145,   146,   147,   148,   149,   150, 
    617673     151,   152,   153,   154,   155,   156,   157,   158,   159,   160, 
    618      161 
     674     161,   162,   163,   164,   165,   166,   167,   168,   169,   170, 
     675     171,   172,   173,   174,   175,   176,   177,   178,   179,   180, 
     676     181,   182,   183,   184,   185,   186,   187,   188,   189,   190, 
     677     191,   192 
    619678}; 
    620679 
     
    624683static const yytype_uint16 yyprhs[] = 
    625684{ 
    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 
     685       0,     0,     3,     4,     7,     9,    11,    13,    16,    18, 
     686      20,    24,    27,    29,    33,    37,    39,    43,    45,    46, 
     687      48,    50,    52,    54,    56,    58,    59,    61,    63,    65, 
     688      68,    71,    74,    76,    78,    81,    84,    87,    90,    93, 
     689      96,    99,   102,   105,   109,   113,   116,   119,   122,   125, 
     690     128,   131,   134,   137,   140,   143,   144,   146,   149,   152, 
     691     155,   157,   159,   161,   163,   164,   166,   169,   170,   176, 
     692     177,   184,   186,   187,   193,   198,   200,   203,   205,   209, 
     693     211,   213,   217,   223,   228,   232,   235,   238,   240,   242, 
     694     244,   246,   248,   250,   252,   254,   257,   260,   262,   265, 
     695     267,   269,   270,   272,   273,   275,   278,   279,   281,   282, 
     696     284,   286,   289,   291,   293,   295,   297,   299,   301,   303, 
     697     305,   307,   309,   311,   313,   314,   316,   319,   320,   322, 
     698     324,   327,   329,   331,   332,   334,   338,   339,   341,   343, 
     699     346,   348,   350,   352,   354,   356,   358,   360,   362,   364, 
     700     366,   368,   370,   372,   374,   376,   378,   380,   382,   384, 
     701     386,   388,   390,   392,   394,   396,   398,   401,   406,   409, 
     702     411,   413,   415,   417,   419,   421,   423,   425,   427,   429, 
     703     431,   433,   435,   437,   439,   441,   443,   445,   447,   449, 
     704     451,   453,   454,   456,   458,   460,   461,   463,   465,   467, 
     705     469,   471,   472,   475,   479,   483,   484,   488,   489,   493, 
     706     494,   498,   499,   503,   504,   508,   509,   513,   514,   516, 
     707     520,   526,   529,   531,   534,   536,   540,   542,   544,   546, 
     708     549,   551,   555,   561,   563,   565,   567,   569,   571,   573, 
     709     574,   577,   578,   580,   582,   592,   598,   604,   614,   618, 
     710     624,   627,   631,   635,   637,   639,   641,   643,   645,   647, 
     711     648,   653,   658,   666,   667,   670,   671,   674,   676,   680, 
     712     682,   684,   688,   690,   693,   697,   698,   700,   702,   705, 
     713     707,   712,   713,   715,   719,   721,   725,   727,   729,   734, 
     714     736,   738,   742,   747,   748,   752,   754,   756,   757,   759, 
     715     762,   765,   768,   770,   772,   777,   779,   783,   785,   789, 
     716     793,   798,   800,   804,   806,   810,   812,   814,   816,   820, 
     717     824,   826,   828,   830,   832,   836,   838,   840,   846,   852, 
     718     860,   862,   863,   864,   871,   872,   875,   876,   878,   881, 
     719     885,   887,   889,   890,   896,   898,   899,   905,   907,   909, 
     720     911,   913,   915,   917,   919,   923,   928,   930,   932,   933, 
     721     935,   938,   941,   944,   946,   948,   950,   951,   952,   957, 
     722     959,   961,   963,   965,   967,   969,   973,   977,   979,   981, 
     723     983,   985,   989,   991,   994,   996,  1000,  1002,  1006,  1007, 
     724    1010,  1011,  1014,  1016,  1020,  1023,  1025,  1027,  1029,  1030, 
     725    1035,  1036,  1039,  1041,  1045,  1047,  1049,  1050,  1056,  1057, 
     726    1059,  1062,  1066,  1071,  1073,  1077,  1079,  1083,  1085,  1087, 
     727    1097,  1109,  1111,  1115,  1117,  1119,  1121,  1123,  1126,  1129, 
     728    1132,  1134,  1136,  1138,  1140,  1142,  1143,  1146,  1148,  1150, 
     729    1152,  1154,  1156,  1158,  1160,  1162,  1164,  1165,  1166,  1173, 
     730    1174,  1180,  1181,  1189,  1190,  1191,  1199,  1201,  1205,  1209, 
     731    1210,  1211,  1218,  1219,  1221,  1222,  1224,  1226,  1230,  1232, 
     732    1234,  1236,  1238,  1239,  1244,  1245,  1251,  1253,  1257,  1262, 
     733    1264,  1268,  1270,  1274,  1282,  1283,  1290,  1292,  1296,  1298, 
     734    1302,  1304,  1308,  1309,  1316,  1318,  1322,  1324,  1326,  1328, 
     735    1329,  1330,  1338,  1339,  1341,  1343,  1347,  1348,  1350,  1351, 
     736    1356,  1358,  1362,  1364,  1365,  1371,  1373,  1375,  1377,  1379, 
     737    1381,  1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399, 
     738    1401,  1406,  1411,  1415,  1418,  1419,  1423,  1425,  1426,  1432, 
     739    1434,  1436,  1438,  1440,  1445,  1446,  1448,  1452,  1455,  1457, 
     740    1460,  1464,  1469,  1472,  1474,  1478,  1483,  1486,  1488,  1491, 
     741    1495,  1500,  1503,  1504,  1506,  1507,  1508,  1517,  1518,  1521, 
     742    1523,  1527,  1530,  1534,  1536,  1538,  1540,  1544,  1547,  1549, 
     743    1551,  1552,  1556,  1558,  1562,  1565,  1566,  1569,  1571,  1573, 
     744    1574,  1575,  1584,  1586,  1590,  1591,  1594,  1596,  1600,  1603, 
     745    1607,  1609,  1611,  1613,  1615,  1619,  1621,  1623,  1627,  1629, 
     746    1633,  1635,  1638,  1642,  1644,  1647,  1649,  1651,  1653,  1655, 
     747    1657,  1659,  1663,  1665,  1667,  1671,  1673,  1675,  1677,  1679, 
     748    1681,  1683,  1685,  1687,  1689,  1691,  1693,  1695,  1697,  1700, 
     749    1702,  1706,  1708,  1712,  1714,  1718,  1720,  1722,  1724,  1726, 
     750    1728,  1730,  1732,  1734,  1736,  1737,  1739,  1741,  1743,  1745, 
     751    1747,  1749,  1751,  1753,  1758,  1764,  1770,  1778,  1783,  1784, 
     752    1788,  1790,  1794,  1796,  1800,  1803,  1807,  1809,  1811,  1815, 
     753    1817,  1819,  1821,  1827,  1833,  1834,  1837,  1838,  1842,  1843, 
     754    1847,  1853,  1855,  1857,  1859,  1861,  1863,  1868,  1874,  1877, 
     755    1881,  1884,  1888,  1889,  1891,  1892,  1895,  1897,  1899,  1901, 
     756    1905,  1909,  1914,  1917,  1923,  1927,  1932,  1935,  1941,  1945, 
     757    1950,  1953,  1959,  1963,  1970,  1979,  1985,  1989,  1991,  1993, 
     758    1995,  1998,  2002,  2007,  2009,  2011,  2015,  2018,  2020,  2022, 
     759    2024,  2026,  2028,  2030,  2032,  2035,  2040,  2042,  2044,  2046, 
     760    2048,  2050,  2052,  2054,  2056,  2061,  2065,  2068,  2072,  2076, 
     761    2079,  2080,  2082,  2086,  2092,  2093,  2095,  2098,  2101,  2102, 
     762    2104,  2107,  2110,  2119,  2126,  2133,  2141,  2144,  2148,  2151, 
     763    2155,  2161,  2165,  2166,  2168,  2171,  2174,  2175,  2184,  2185, 
     764    2192,  2196,  2201,  2202,  2206,  2207,  2212,  2213,  2218,  2220, 
     765    2222,  2226,  2228,  2231,  2234,  2238,  2240,  2243,  2247,  2251, 
     766    2262,  2266,  2269,  2273,  2275,  2277,  2279,  2281,  2283,  2285, 
     767    2287,  2288,  2289,  2297,  2299,  2303,  2305,  2308,  2311,  2314, 
     768    2317,  2320,  2323,  2326,  2329,  2332,  2336,  2338,  2340,  2341, 
     769    2348,  2350,  2354,  2356,  2359,  2362,  2365,  2369,  2375,  2382, 
     770    2387,  2394,  2400,  2407,  2412,  2419,  2421,  2425,  2427,  2429, 
     771    2432,  2434,  2436,  2439,  2442,  2445,  2448,  2451,  2454,  2457, 
     772    2459,  2461,  2463,  2465,  2469,  2471,  2473,  2475,  2479,  2481, 
     773    2483,  2489,  2491,  2495,  2497,  2499,  2505,  2513,  2517,  2523, 
     774    2525,  2529,  2531,  2534,  2537,  2540,  2543,  2547,  2553,  2555, 
     775    2559,  2561,  2564,  2567,  2570,  2573,  2574,  2582,  2583,  2593, 
     776    2594,  2596,  2600,  2602,  2605,  2608,  2611,  2614,  2617,  2620, 
     777    2623,  2627,  2630,  2633,  2636,  2637,  2643,  2644,  2646,  2647, 
     778    2652,  2653,  2660,  2661,  2663,  2664,  2666,  2669,  2670,  2672, 
     779    2674,  2677,  2679,  2681,  2683,  2686,  2687,  2688,  2697,  2698, 
     780    2710,  2711,  2713,  2717,  2718,  2720,  2726,  2727,  2729,  2730, 
     781    2732,  2733,  2738,  2739,  2740,  2747,  2748,  2750,  2751,  2753, 
     782    2755,  2756,  2759,  2761,  2765,  2769,  2771,  2775,  2777,  2779, 
     783    2781,  2783,  2785,  2789,  2794,  2796,  2800,  2802,  2807,  2809, 
     784    2813,  2815,  2819,  2820,  2826,  2827,  2831,  2832,  2838,  2839, 
     785    2840,  2848,  2849,  2854,  2856,  2858,  2860,  2862,  2866,  2868, 
     786    2872,  2874,  2876,  2878,  2879,  2881,  2883,  2886,  2888,  2890, 
     787    2892,  2898,  2899,  2900,  2911,  2913,  2915,  2916,  2918,  2923, 
     788    2924,  2932,  2933,  2935,  2941,  2942,  2949,  2951,  2958,  2959, 
     789    2960,  2962,  2963,  2964,  2969,  2970,  2972,  2974,  2978,  2980, 
     790    2982,  2986,  2991,  2992,  2997,  2999,  3001,  3005,  3009,  3011, 
     791    3015,  3017,  3018,  3020 
    686792}; 
    687793 
     
    689795static const yytype_int16 yyrhs[] = 
    690796{ 
    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 
     797     204,     0,    -1,    -1,   204,   205,    -1,   206,    -1,   207, 
     798      -1,     1,    -1,   197,   209,    -1,    24,    -1,    64,    -1, 
     799     206,   197,   209,    -1,   206,    24,    -1,   208,    -1,   207, 
     800      24,   197,    -1,   207,    24,   208,    -1,   210,    -1,    28, 
     801     212,   209,    -1,    37,    -1,    -1,   652,    -1,   211,    -1, 
     802     632,    -1,   691,    -1,   702,    -1,   184,    -1,    -1,     3, 
     803      -1,   219,    -1,   232,    -1,   501,   216,    -1,   215,   501, 
     804      -1,    11,   501,    -1,    19,    -1,    20,    -1,    19,   501, 
     805      -1,    20,   501,    -1,    21,   501,    -1,    23,   501,    -1, 
     806      13,   501,    -1,     7,   501,    -1,    16,   501,    -1,   196, 
     807     501,    -1,   195,   501,    -1,   196,     5,   501,    -1,   195, 
     808       5,   501,    -1,    17,   501,    -1,    14,   501,    -1,    15, 
     809     501,    -1,    12,   501,    -1,     6,   501,    -1,     8,   501, 
     810      -1,     9,   501,    -1,    10,   501,    -1,    22,   217,    -1, 
     811       5,   218,    -1,    -1,   501,    -1,     5,   501,    -1,    22, 
     812     501,    -1,     5,   501,    -1,   501,    -1,   231,    -1,   226, 
     813      -1,   221,    -1,    -1,   224,    -1,   224,   443,    -1,    -1, 
     814     226,   193,   222,   227,   194,    -1,    -1,   226,   193,   223, 
     815     227,   194,   443,    -1,   109,    -1,    -1,   231,   193,   225, 
     816     227,   194,    -1,   219,   199,   719,   219,    -1,   220,    -1, 
     817     220,   228,    -1,   229,    -1,   228,     3,   229,    -1,   501, 
     818      -1,   230,    -1,   501,     4,   501,    -1,   501,     4,   501, 
     819       4,   501,    -1,     4,   501,     4,   501,    -1,     4,     4, 
     820     501,    -1,     4,   501,    -1,   501,     4,    -1,     4,    -1, 
     821     191,    -1,   165,    -1,   166,    -1,    44,    -1,   192,    -1, 
     822     188,    -1,   155,    -1,   232,   191,    -1,   233,   234,    -1, 
     823     184,    -1,   233,   184,    -1,   187,    -1,   185,    -1,    -1, 
     824     443,    -1,    -1,   501,    -1,   237,   238,    -1,    -1,   645, 
     825      -1,    -1,   239,    -1,   240,    -1,   239,   240,    -1,   290, 
     826      -1,   392,    -1,   631,    -1,   406,    -1,   251,    -1,   330, 
     827      -1,   513,    -1,   514,    -1,   539,    -1,   587,    -1,   714, 
     828      -1,   606,    -1,    -1,   242,    -1,   252,   243,    -1,    -1, 
     829     244,    -1,   245,    -1,   244,   245,    -1,   252,    -1,   631, 
     830      -1,    -1,   247,    -1,   112,   206,   248,    -1,    -1,   249, 
     831      -1,   250,    -1,   249,   250,    -1,   691,    -1,   702,    -1, 
     832     364,    -1,   422,    -1,   369,    -1,   386,    -1,   416,    -1, 
     833     669,    -1,   672,    -1,   412,    -1,   397,    -1,   253,    -1, 
     834     539,    -1,   569,    -1,   559,    -1,   525,    -1,   457,    -1, 
     835     513,    -1,   677,    -1,   600,    -1,   587,    -1,   558,    -1, 
     836     474,    -1,   585,    -1,   584,    -1,   622,    -1,    78,   235, 
     837      -1,   129,   193,   720,   194,    -1,   115,   717,    -1,   568, 
     838      -1,   625,    -1,   593,    -1,   514,    -1,   606,    -1,   604, 
     839      -1,   714,    -1,   619,    -1,   588,    -1,   524,    -1,   605, 
     840      -1,   586,    -1,   231,    -1,   256,    -1,   257,    -1,   258, 
     841      -1,   276,    -1,   279,    -1,   289,    -1,   280,    -1,   288, 
     842      -1,   231,    -1,    -1,   260,    -1,   167,    -1,   192,    -1, 
     843      -1,   262,    -1,   168,    -1,   506,    -1,    21,    -1,     4, 
     844      -1,    -1,   265,   266,    -1,   172,   266,   194,    -1,   172, 
     845     314,   194,    -1,    -1,   176,   267,   273,    -1,    -1,   175, 
     846     268,   273,    -1,    -1,   178,   269,   273,    -1,    -1,   189, 
     847     270,   273,    -1,    -1,   183,   271,   284,    -1,    -1,   177, 
     848     272,   273,    -1,    -1,   274,    -1,   193,   511,   194,    -1, 
     849     193,    94,     5,   511,   194,    -1,    21,   192,    -1,   276, 
     850      -1,   488,   276,    -1,   192,    -1,   192,   200,   277,    -1, 
     851     192,    -1,   191,    -1,   279,    -1,   488,   279,    -1,   188, 
     852      -1,   188,   200,   277,    -1,   193,   281,   174,   282,   194, 
     853      -1,   275,    -1,   278,    -1,   231,    -1,   275,    -1,   278, 
     854      -1,   258,    -1,    -1,    21,   287,    -1,    -1,   285,    -1, 
     855     286,    -1,   193,    73,     5,   263,     3,    94,     5,   511, 
     856     194,    -1,   193,   263,     3,   511,   194,    -1,   193,    94, 
     857       5,   511,   194,    -1,   193,    94,     5,   511,     3,    73, 
     858       5,   263,   194,    -1,   193,   263,   194,    -1,   193,    73, 
     859       5,   263,   194,    -1,    21,   287,    -1,    21,   287,     3, 
     860      -1,   193,   263,   194,    -1,   276,    -1,   184,    -1,   187, 
     861      -1,   185,    -1,   165,    -1,   166,    -1,    -1,   292,   291, 
     862     300,   299,    -1,   171,   293,   191,   206,    -1,   171,   294, 
     863     191,   193,   297,   194,   206,    -1,    -1,   294,   154,    -1, 
     864      -1,     3,   295,    -1,   296,    -1,   295,     3,   296,    -1, 
     865     346,    -1,   298,    -1,   297,     3,   298,    -1,   191,    -1, 
     866     173,   206,    -1,   173,   191,   206,    -1,    -1,   301,    -1, 
     867     302,    -1,   301,   302,    -1,   303,    -1,   264,   304,   307, 
     868     206,    -1,    -1,   154,    -1,     3,   305,   154,    -1,   306, 
     869      -1,   305,     3,   306,    -1,   346,    -1,   101,    -1,   130, 
     870     193,   310,   194,    -1,   138,    -1,   308,    -1,   307,     3, 
     871     308,    -1,   231,   309,   283,   311,    -1,    -1,   193,   310, 
     872     194,    -1,   350,    -1,   356,    -1,    -1,   312,    -1,     5, 
     873     508,    -1,   146,   345,    -1,   146,   313,    -1,   432,    -1, 
     874     231,    -1,   231,   193,   315,   194,    -1,   316,    -1,   315, 
     875       3,   316,    -1,   263,    -1,   254,     5,   263,    -1,   314, 
     876     193,   194,    -1,   314,   193,   318,   194,    -1,   319,    -1, 
     877     318,     3,   319,    -1,   320,    -1,   254,     5,   320,    -1, 
     878     501,    -1,   520,    -1,   523,    -1,   149,   322,   150,    -1, 
     879     323,   322,   324,    -1,   325,    -1,   201,    -1,   202,    -1, 
     880     326,    -1,   325,     3,   326,    -1,   501,    -1,   327,    -1, 
     881     193,   325,     3,   328,   194,    -1,   329,     5,   506,     3, 
     882     506,    -1,   329,     5,   506,     3,   506,     3,   506,    -1, 
     883     545,    -1,    -1,    -1,   331,   264,   333,   339,   332,   206, 
     884      -1,    -1,   334,   154,    -1,    -1,   335,    -1,     3,   336, 
     885      -1,   335,     3,   336,    -1,   346,    -1,   101,    -1,    -1, 
     886     130,   193,   337,   349,   194,    -1,   132,    -1,    -1,   133, 
     887     193,   338,   363,   194,    -1,   134,    -1,   137,    -1,    25, 
     888      -1,   138,    -1,   140,    -1,   141,    -1,   340,    -1,   339, 
     889       3,   340,    -1,   342,   347,   283,   343,    -1,   231,    -1, 
     890     191,    -1,    -1,   344,    -1,     5,   508,    -1,   146,   345, 
     891      -1,   146,   313,    -1,   675,    -1,    99,    -1,   100,    -1, 
     892      -1,    -1,   193,   348,   349,   194,    -1,   350,    -1,   354, 
     893      -1,   356,    -1,   358,    -1,   361,    -1,   351,    -1,   350, 
     894       3,   351,    -1,   352,     4,   353,    -1,   353,    -1,   507, 
     895      -1,   507,    -1,   355,    -1,   354,     3,   355,    -1,     4, 
     896      -1,   352,     4,    -1,   357,    -1,   356,     3,   357,    -1, 
     897       4,    -1,   359,   360,    21,    -1,    -1,   350,     3,    -1, 
     898      -1,   352,     4,    -1,   362,    -1,   361,     3,   362,    -1, 
     899     360,    21,    -1,   159,    -1,   157,    -1,   158,    -1,    -1, 
     900     346,   366,   365,   206,    -1,    -1,   400,   367,    -1,   368, 
     901      -1,   367,     3,   368,    -1,   191,    -1,   668,    -1,    -1, 
     902     186,   373,   371,   370,   206,    -1,    -1,   372,    -1,   427, 
     903     373,    -1,   372,   427,   373,    -1,   374,    22,   375,    22, 
     904      -1,   376,    -1,   374,     3,   376,    -1,   381,    -1,   375, 
     905       3,   381,    -1,   434,    -1,   377,    -1,   193,   378,     3, 
     906     380,     5,   511,     3,   511,   194,    -1,   193,   378,     3, 
     907     380,     5,   511,     3,   511,     3,   511,   194,    -1,   379, 
     908      -1,   378,     3,   379,    -1,   451,    -1,   449,    -1,   377, 
     909      -1,   545,    -1,   384,   382,    -1,   276,   382,    -1,   288, 
     910     382,    -1,   275,    -1,   278,    -1,   345,    -1,   313,    -1, 
     911     317,    -1,    -1,    21,   383,    -1,   255,    -1,   384,    -1, 
     912     275,    -1,   278,    -1,   345,    -1,   313,    -1,   317,    -1, 
     913     385,    -1,   432,    -1,    -1,    -1,   387,   130,   400,   389, 
     914     388,   206,    -1,    -1,   191,   193,   390,   349,   194,    -1, 
     915      -1,   389,     3,   191,   193,   391,   349,   194,    -1,    -1, 
     916      -1,    25,   393,   193,   395,   194,   394,   206,    -1,   396, 
     917      -1,   395,     3,   396,    -1,   191,     5,   508,    -1,    -1, 
     918      -1,   398,   140,   400,   401,   399,   206,    -1,    -1,   154, 
     919      -1,    -1,   402,    -1,   403,    -1,   402,     3,   403,    -1, 
     920     341,    -1,   404,    -1,   426,    -1,   231,    -1,    -1,   405, 
     921     142,   408,   206,    -1,    -1,   405,   142,   143,   407,   206, 
     922      -1,   409,    -1,   408,     3,   409,    -1,   264,   193,   410, 
     923     194,    -1,   411,    -1,   410,     3,   411,    -1,   191,    -1, 
     924     191,    20,   191,    -1,   135,    22,   191,    22,   414,   413, 
     925     206,    -1,    -1,   413,   427,    22,   191,    22,   414,    -1, 
     926     415,    -1,   414,     3,   415,    -1,   435,    -1,    82,   417, 
     927     206,    -1,   418,    -1,   417,     3,   418,    -1,    -1,   193, 
     928     419,   421,     3,   420,   194,    -1,   421,    -1,   420,     3, 
     929     421,    -1,   435,    -1,   451,    -1,   443,    -1,    -1,    -1, 
     930     147,   423,   425,   429,   428,   424,   206,    -1,    -1,   426, 
     931      -1,    18,    -1,    22,   191,    22,    -1,    -1,     3,    -1, 
     932      -1,   428,   427,   426,   429,    -1,   430,    -1,   429,     3, 
     933     430,    -1,   191,    -1,    -1,   191,   193,   431,   349,   194, 
     934      -1,   451,    -1,   452,    -1,   450,    -1,   443,    -1,   434, 
     935      -1,   432,    -1,   231,    -1,   437,    -1,   434,    -1,   434, 
     936      -1,   440,    -1,   434,    -1,   442,    -1,   434,    -1,   445, 
     937      -1,   445,   193,   444,   194,    -1,   288,   193,   444,   194, 
     938      -1,   505,     4,   505,    -1,   447,   446,    -1,    -1,   446, 
     939     199,   447,    -1,   231,    -1,    -1,   231,   193,   448,   453, 
     940     194,    -1,   450,    -1,   445,    -1,   445,    -1,   445,    -1, 
     941     445,   193,   444,   194,    -1,    -1,   454,    -1,   453,     3, 
     942     454,    -1,   501,   455,    -1,     4,    -1,     4,   501,    -1, 
     943       4,     4,   501,    -1,     4,   501,     4,   501,    -1,   154, 
     944     501,    -1,   456,    -1,   231,     5,   501,    -1,   231,     5, 
     945      21,   260,    -1,    21,   260,    -1,     4,    -1,     4,   501, 
     946      -1,     4,     4,   501,    -1,     4,   501,     4,   501,    -1, 
     947     154,   501,    -1,    -1,   504,    -1,    -1,    -1,   118,   193, 
     948     458,   465,   460,   194,   459,   206,    -1,    -1,     3,   461, 
     949      -1,   462,    -1,   461,     3,   462,    -1,    97,   464,    -1, 
     950     145,     5,   463,    -1,   441,    -1,   439,    -1,   466,    -1, 
     951     465,     3,   466,    -1,   467,   468,    -1,   435,    -1,   450, 
     952      -1,    -1,   193,   469,   194,    -1,   470,    -1,   469,     3, 
     953     470,    -1,   471,   473,    -1,    -1,   472,     4,    -1,   506, 
     954      -1,   506,    -1,    -1,    -1,   128,   193,   475,   477,   478, 
     955     194,   476,   206,    -1,   467,    -1,   477,     3,   467,    -1, 
     956      -1,     3,   479,    -1,   480,    -1,   479,     3,   480,    -1, 
     957      97,   464,    -1,   145,     5,   463,    -1,   432,    -1,   257, 
     958      -1,   321,    -1,   675,    -1,   193,   501,   194,    -1,   481, 
     959      -1,   482,    -1,   482,   486,   483,    -1,   483,    -1,   484, 
     960     487,   483,    -1,   484,    -1,   488,   484,    -1,   485,   488, 
     961     484,    -1,   275,    -1,   485,   275,    -1,    23,    -1,    21, 
     962      -1,    22,    -1,    19,    -1,    20,    -1,   485,    -1,   489, 
     963     490,   485,    -1,    18,    -1,   489,    -1,   489,   492,   489, 
     964      -1,    13,    -1,    12,    -1,    17,    -1,    15,    -1,    16, 
     965      -1,    14,    -1,   161,    -1,   162,    -1,   195,    -1,   163, 
     966      -1,   196,    -1,   164,    -1,   491,    -1,   497,   491,    -1, 
     967     493,    -1,   494,   498,   493,    -1,   494,    -1,   495,   499, 
     968     494,    -1,   495,    -1,   496,   500,   495,    -1,    11,    -1, 
     969      10,    -1,     9,    -1,     7,    -1,     6,    -1,   496,    -1, 
     970     503,    -1,   501,    -1,   501,    -1,    -1,   506,    -1,   504, 
     971      -1,   506,    -1,   501,    -1,   510,    -1,   503,    -1,   512, 
     972      -1,   504,    -1,   434,     5,   501,   206,    -1,   260,   434, 
     973       5,   501,   206,    -1,   432,   515,   146,   520,   206,    -1, 
     974     432,   193,   517,   194,   146,   520,   206,    -1,   432,   146, 
     975     523,   206,    -1,    -1,   193,   516,   194,    -1,   518,    -1, 
     976     516,     3,   518,    -1,   519,    -1,   517,     3,   519,    -1, 
     977     472,     4,    -1,   472,     4,   473,    -1,   434,    -1,   191, 
     978      -1,   433,   199,   521,    -1,   501,    -1,   521,    -1,   522, 
     979      -1,    38,   193,   532,   194,   531,    -1,   529,   526,   527, 
     980     528,   535,    -1,    -1,   526,   530,    -1,    -1,   527,   533, 
     981     526,    -1,    -1,   528,   534,   526,    -1,    38,   193,   532, 
     982     194,   206,    -1,   531,    -1,   524,    -1,   525,    -1,   513, 
     983      -1,   501,    -1,    39,   532,   194,   206,    -1,    39,   532, 
     984     194,   191,   206,    -1,    40,   206,    -1,    40,   191,   206, 
     985      -1,    41,   206,    -1,    41,   191,   206,    -1,    -1,   538, 
     986      -1,    -1,   538,   245,    -1,   540,    -1,   549,    -1,   540, 
     987      -1,   541,   546,   547,    -1,   543,   546,   547,    -1,   191, 
     988       4,   170,   206,    -1,   170,   206,    -1,   191,     4,   170, 
     989     544,   206,    -1,   170,   544,   206,    -1,   191,     4,   169, 
     990     206,    -1,   169,   206,    -1,   191,     4,   169,   544,   206, 
     991      -1,   169,   544,   206,    -1,   191,     4,   111,   206,    -1, 
     992     111,   206,    -1,   191,     4,   111,   544,   206,    -1,   111, 
     993     544,   206,    -1,   213,   545,     5,   501,     3,   501,    -1, 
     994     213,   545,     5,   501,     3,   501,     3,   501,    -1,   213, 
     995     116,   193,   501,   194,    -1,   213,   117,   536,    -1,   231, 
     996      -1,   537,    -1,   548,    -1,   262,   587,    -1,   261,   113, 
     997     206,    -1,   261,   113,   191,   206,    -1,   550,    -1,   553, 
     998      -1,   541,   546,   551,    -1,   262,   552,    -1,   457,    -1, 
     999     513,    -1,   677,    -1,   600,    -1,   474,    -1,   622,    -1, 
     1000     585,    -1,   127,   718,    -1,   129,   193,   720,   194,    -1, 
     1001     568,    -1,   625,    -1,   593,    -1,   606,    -1,   604,    -1, 
     1002     619,    -1,   524,    -1,   605,    -1,   541,   546,   554,   555, 
     1003      -1,   541,   546,   555,    -1,   542,   546,    -1,   554,   542, 
     1004     546,    -1,   542,   546,   556,    -1,   262,   253,    -1,    -1, 
     1005     191,    -1,    78,   557,   206,    -1,   564,   537,   560,   562, 
     1006     567,    -1,    -1,   561,    -1,   560,   561,    -1,   565,   537, 
     1007      -1,    -1,   563,    -1,   562,   561,    -1,   566,   537,    -1, 
     1008     259,   191,     4,   110,   501,   194,   103,   206,    -1,   259, 
     1009     110,   501,   194,   103,   206,    -1,   104,   193,   501,   194, 
     1010     103,   206,    -1,   104,   193,   501,   194,   103,   191,   206, 
     1011      -1,   105,   206,    -1,   105,   191,   206,    -1,   106,   206, 
     1012      -1,   106,   191,   206,    -1,   259,   110,   501,   194,   253, 
     1013      -1,   572,   570,   576,    -1,    -1,   571,    -1,   570,   571, 
     1014      -1,   575,   537,    -1,    -1,   191,     4,    48,   193,   501, 
     1015     194,   573,   206,    -1,    -1,    48,   193,   501,   194,   574, 
     1016     206,    -1,    47,   579,   206,    -1,    47,   579,   191,   206, 
     1017      -1,    -1,   131,   577,   206,    -1,    -1,   131,   191,   578, 
     1018     206,    -1,    -1,   193,   580,   581,   194,    -1,   136,    -1, 
     1019     582,    -1,   581,     3,   582,    -1,   583,    -1,   583,     4, 
     1020      -1,     4,   583,    -1,   583,     4,   583,    -1,   501,    -1, 
     1021      93,   206,    -1,    93,   191,   206,    -1,   108,   260,   206, 
     1022      -1,   259,   110,   501,   194,   260,     3,   260,     3,   260, 
     1023     206,    -1,   259,   139,   206,    -1,   153,   206,    -1,   153, 
     1024     589,   206,    -1,   509,    -1,   511,    -1,   591,    -1,    21, 
     1025      -1,   592,    -1,   506,    -1,   438,    -1,    -1,    -1,   119, 
     1026     193,   594,   596,   194,   595,   206,    -1,   597,    -1,   596, 
     1027       3,   597,    -1,   591,    -1,    58,   591,    -1,    53,   502, 
     1028      -1,    54,   502,    -1,    65,   260,    -1,    49,   598,    -1, 
     1029      55,   502,    -1,    67,   441,    -1,    66,   502,    -1,    56, 
     1030     506,    -1,    57,     5,   502,    -1,   502,    -1,   439,    -1, 
     1031      -1,   120,   193,   601,   602,   194,   206,    -1,   603,    -1, 
     1032     602,     3,   603,    -1,   591,    -1,    58,   591,    -1,    67, 
     1033     441,    -1,    65,   260,    -1,    57,     5,   502,    -1,   259, 
     1034     125,   607,   194,   206,    -1,   259,   125,   607,   194,   611, 
     1035     206,    -1,   259,   126,   610,   206,    -1,   259,   126,   610, 
     1036       3,   611,   206,    -1,   259,   122,   607,   194,   206,    -1, 
     1037     259,   122,   607,   194,   613,   206,    -1,   259,   107,   610, 
     1038     206,    -1,   259,   107,   610,     3,   613,   206,    -1,   609, 
     1039      -1,   607,     3,   609,    -1,   191,    -1,   590,    -1,    58, 
     1040     590,    -1,   610,    -1,   608,    -1,    61,   608,    -1,    60, 
     1041     610,    -1,    62,   260,    -1,    63,   260,    -1,    65,   260, 
     1042      -1,    67,   441,    -1,    50,   506,    -1,   503,    -1,   260, 
     1043      -1,    21,    -1,   612,    -1,   611,     3,   612,    -1,   434, 
     1044      -1,   615,    -1,   614,    -1,   613,     3,   614,    -1,   501, 
     1045      -1,   615,    -1,   193,   616,     3,   618,   194,    -1,   617, 
     1046      -1,   616,     3,   617,    -1,   612,    -1,   614,    -1,   545, 
     1047       5,   506,     3,   506,    -1,   545,     5,   506,     3,   506, 
     1048       3,   506,    -1,   127,   591,   206,    -1,   127,   193,   620, 
     1049     194,   206,    -1,   621,    -1,   620,     3,   621,    -1,   591, 
     1050      -1,    58,   591,    -1,    68,   599,    -1,    67,   441,    -1, 
     1051      65,   260,    -1,   124,   591,   206,    -1,   124,   193,   623, 
     1052     194,   206,    -1,   624,    -1,   623,     3,   624,    -1,   591, 
     1053      -1,    58,   591,    -1,    67,   441,    -1,    68,   599,    -1, 
     1054      65,   260,    -1,    -1,   121,   628,   193,   629,   194,   626, 
     1055     206,    -1,    -1,   121,   628,   193,    52,   441,   194,   613, 
     1056     627,   206,    -1,    -1,   630,    -1,   629,     3,   630,    -1, 
     1057     591,    -1,    58,   591,    -1,    49,   598,    -1,    53,   439, 
     1058      -1,    54,   439,    -1,    65,   260,    -1,    69,   436,    -1, 
     1059      67,   441,    -1,    51,     5,   439,    -1,    59,   436,    -1, 
     1060      56,   441,    -1,    32,   206,    -1,    -1,   635,   653,   634, 
     1061     633,   637,    -1,    -1,   641,    -1,    -1,   114,   191,   636, 
     1062     206,    -1,    -1,   405,   182,   639,   640,   638,   206,    -1, 
     1063      -1,   114,    -1,    -1,   191,    -1,   715,   642,    -1,    -1, 
     1064     643,    -1,   644,    -1,   643,   644,    -1,   691,    -1,   702, 
     1065      -1,   647,    -1,   645,   647,    -1,    -1,    -1,   405,   160, 
     1066     646,   650,   191,   662,   648,   206,    -1,    -1,   405,   160, 
     1067     646,   650,   191,     3,    27,     4,   651,   649,   206,    -1, 
     1068      -1,   154,    -1,     3,   661,   154,    -1,    -1,   665,    -1, 
     1069     654,   653,   241,   246,   656,    -1,    -1,   236,    -1,    -1, 
     1070     242,    -1,    -1,    30,   191,   655,   206,    -1,    -1,    -1, 
     1071     657,   182,   659,   660,   658,   206,    -1,    -1,    30,    -1, 
     1072      -1,   191,    -1,   134,    -1,    -1,     3,   663,    -1,   664, 
     1073      -1,   663,     3,   664,    -1,   191,   146,   191,    -1,   666, 
     1074      -1,   665,     3,   666,    -1,   668,    -1,   667,    -1,   664, 
     1075      -1,   191,    -1,   191,    -1,   132,   670,   206,    -1,   132, 
     1076     154,   670,   206,    -1,   671,    -1,   670,     3,   671,    -1, 
     1077     191,    -1,   134,   400,   673,   206,    -1,   674,    -1,   673, 
     1078       3,   674,    -1,   191,    -1,   684,   193,   194,    -1,    -1, 
     1079     684,   193,   676,   685,   194,    -1,    -1,   682,   678,   206, 
     1080      -1,    -1,   682,   193,   194,   679,   206,    -1,    -1,    -1, 
     1081     682,   193,   680,   685,   194,   681,   206,    -1,    -1,   259, 
     1082     144,   683,   684,    -1,   231,    -1,   124,    -1,   175,    -1, 
     1083     686,    -1,   685,     3,   686,    -1,   687,    -1,   254,     5, 
     1084     687,    -1,   501,    -1,   434,    -1,   231,    -1,    -1,   689, 
     1085      -1,   690,    -1,   689,   690,    -1,   264,    -1,   114,    -1, 
     1086      87,    -1,   692,   653,   241,   246,   699,    -1,    -1,    -1, 
     1087     688,    31,   695,   193,   693,   711,   194,   697,   694,   206, 
     1088      -1,   191,    -1,   191,    -1,    -1,   698,    -1,    26,   193, 
     1089     191,   194,    -1,    -1,   405,   182,   701,   640,   707,   700, 
     1090     206,    -1,    -1,    31,    -1,   703,   653,   241,   246,   706, 
     1091      -1,    -1,   688,    29,   705,   709,   704,   206,    -1,   191, 
     1092      -1,   405,   182,   708,   640,   707,   206,    -1,    -1,    -1, 
     1093      29,    -1,    -1,    -1,   193,   710,   711,   194,    -1,    -1, 
     1094     712,    -1,   713,    -1,   712,     3,   713,    -1,   696,    -1, 
     1095      21,    -1,   259,   102,   206,    -1,   259,   102,   506,   206, 
     1096      -1,    -1,   259,   112,   716,   206,    -1,   197,    -1,   191, 
     1097      -1,   193,   231,   194,    -1,   193,   192,   194,    -1,   192, 
     1098      -1,   193,   214,   194,    -1,   191,    -1,    -1,   231,    -1, 
     1099     720,     3,   231,    -1 
    8751100}; 
    8761101 
     
    8781103static const yytype_uint16 yyrline[] = 
    8791104{ 
    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 
     1105       0,   512,   512,   513,   515,   516,   517,   519,   521,   522, 
     1106     523,   524,   527,   528,   529,   531,   532,   540,   558,   562, 
     1107     563,   564,   568,   569,   582,   850,   851,  1102,  1103,  1104, 
     1108    1105,  1106,  1108,  1109,  1113,  1114,  1115,  1116,  1117,  1118, 
     1109    1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126,  1127,  1128, 
     1110    1129,  1130,  1131,  1132,  1133,  1135,  1136,  1137,  1138,  1141, 
     1111    1142,  1145,  1146,  1147,  1151,  1162,  1163,  1164,  1164,  1165, 
     1112    1165,  1167,  1168,  1168,  1177,  1189,  1190,  1193,  1194,  1197, 
     1113    1198,  1201,  1202,  1203,  1204,  1205,  1206,  1207,  1209,  1256, 
     1114    1257,  1258,  1259,  1260,  1261,  1262,  1264,  1267,  1268,  1269, 
     1115    1270,  1272,  1273,  1283,  1284,  1336,  1339,  1340,  1365,  1366, 
     1116    1370,  1371,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391, 
     1117    1392,  1393,  1394,  1395,  1398,  1399,  1403,  1406,  1407,  1411, 
     1118    1412,  1416,  1417,  1420,  1421,  1425,  1429,  1430,  1433,  1434, 
     1119    1438,  1439,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450, 
     1120    1451,  1456,  1457,  1458,  1459,  1460,  1468,  1469,  1470,  1471, 
     1121    1472,  1473,  1474,  1475,  1476,  1477,  1478,  1479,  1480,  1502, 
     1122    1503,  1504,  1505,  1506,  1507,  1508,  1509,  1510,  1511,  1512, 
     1123    1513,  1517,  1520,  1525,  1526,  1530,  1531,  1532,  1533,  1535, 
     1124    1539,  1558,  1559,  1563,  1564,  1568,  1569,  1573,  1577,  1578, 
     1125    1579,  1590,  1590,  1592,  1593,  1598,  1598,  1600,  1600,  1602, 
     1126    1602,  1604,  1604,  1606,  1606,  1608,  1608,  1613,  1614,  1620, 
     1127    1622,  1624,  1631,  1632,  1637,  1638,  1643,  1644,  1660,  1661, 
     1128    1666,  1667,  1674,  1680,  1681,  1682,  1686,  1687,  1688,  1691, 
     1129    1692,  1697,  1698,  1703,  1704,  1705,  1706,  1707,  1711,  1713, 
     1130    1715,  1716,  1720,  1722,  1727,  1728,  1729,  1733,  1734,  1738, 
     1131    1738,  1743,  1744,  1747,  1748,  1751,  1752,  1755,  1756,  1760, 
     1132    1763,  1764,  1767,  1771,  1772,  1775,  1776,  1780,  1781,  1785, 
     1133    1789,  1792,  1793,  1794,  1797,  1798,  1802,  1803,  1804,  1805, 
     1134    1808,  1809,  1813,  1836,  1837,  1841,  1842,  1845,  1846,  1850, 
     1135    1851,  1852,  1856,  1861,  1863,  1866,  1867,  1871,  1872,  1876, 
     1136    1877,  1880,  1881,  1885,  1886,  1890,  1891,  1892,  1896,  1898, 
     1137    1913,  1917,  1921,  1925,  1926,  1931,  1932,  1936,  1941,  1943, 
     1138    1948,  1952,  1953,  1952,  2020,  2021,  2024,  2025,  2029,  2030, 
     1139    2034,  2035,  2037,  2037,  2039,  2041,  2041,  2043,  2044,  2046, 
     1140    2048,  2050,  2052,  2057,  2059,  2064,  2098,  2101,  2104,  2105, 
     1141    2109,  2115,  2121,  2130,  2134,  2136,  2141,  2142,  2142,  2147, 
     1142    2149,  2151,  2153,  2155,  2159,  2165,  2174,  2176,  2181,  2186, 
     1143    2190,  2196,  2205,  2207,  2212,  2218,  2227,  2232,  2255,  2256, 
     1144    2275,  2276,  2280,  2281,  2285,  2289,  2291,  2293,  2299,  2298, 
     1145    2317,  2318,  2322,  2324,  2329,  2330,  2335,  2334,  2349,  2350, 
     1146    2353,  2354,  2358,  2368,  2370,  2376,  2378,  2383,  2384,  2388, 
     1147    2394,  2401,  2403,  2408,  2409,  2413,  2417,  2422,  2424,  2426, 
     1148    2428,  2429,  2430,  2431,  2432,  2436,  2437,  2453,  2454,  2455, 
     1149    2456,  2457,  2458,  2459,  2465,  2473,  2478,  2480,  2478,  2525, 
     1150    2525,  2534,  2534,  2547,  2548,  2547,  2567,  2569,  2574,  2591, 
     1151    2592,  2591,  2599,  2600,  2603,  2604,  2607,  2608,  2612,  2614, 
     1152    2615,  2619,  2623,  2627,  2629,  2628,  2640,  2641,  2645,  2648, 
     1153    2649,  2653,  2654,  2658,  2661,  2662,  2664,  2665,  2669,  2673, 
     1154    2676,  2677,  2681,  2681,  2684,  2685,  2689,  2690,  2691,  2696, 
     1155    2697,  2696,  2706,  2707,  2715,  2721,  2729,  2730,  2733,  2734, 
     1156    2738,  2740,  2748,  2754,  2754,  2763,  2764,  2765,  2766,  2775, 
     1157    2778,  2791,  2794,  2798,  2802,  2805,  2809,  2812,  2815,  2819, 
     1158    2820,  2822,  2837,  2842,  2847,  2848,  2853,  2855,  2855,  2867, 
     1159    2871,  2876,  2881,  2883,  2890,  2891,  2893,  2915,  2917,  2919, 
     1160    2921,  2923,  2925,  2927,  2928,  2930,  2932,  2936,  2938,  2940, 
     1161    2942,  2944,  2947,  2961,  2965,  2966,  2965,  2974,  2975,  2979, 
     1162    2980,  2984,  2985,  2989,  2993,  2997,  2998,  3002,  3006,  3007, 
     1163    3010,  3011,  3015,  3016,  3020,  3023,  3024,  3028,  3032,  3036, 
     1164    3037,  3036,  3042,  3043,  3046,  3047,  3051,  3052,  3056,  3057, 
     1165    3066,  3076,  3077,  3078,  3079,  3084,  3089,  3090,  3094,  3095, 
     1166    3102,  3103,  3105,  3107,  3108,  3113,  3117,  3119,  3123,  3125, 
     1167    3130,  3131,  3136,  3139,  3140,  3145,  3146,  3147,  3148,  3149, 
     1168    3150,  3151,  3152,  3153,  3155,  3156,  3158,  3163,  3164,  3170, 
     1169    3171,  3177,  3178,  3183,  3184,  3189,  3193,  3197,  3201,  3202, 
     1170    3206,  3209,  3213,  3217,  3221,  3222,  3225,  3229,  3236,  3240, 
     1171    3244,  3247,  3251,  3257,  3258,  3270,  3271,  3272,  3280,  3281, 
     1172    3285,  3286,  3290,  3291,  3295,  3299,  3303,  3306,  3315,  3319, 
     1173    3320,  3321,  3325,  3329,  3332,  3333,  3336,  3337,  3340,  3341, 
     1174    3345,  3349,  3350,  3351,  3355,  3359,  3363,  3364,  3368,  3369, 
     1175    3374,  3375,  3379,  3383,  3386,  3387,  3392,  3393,  3397,  3402, 
     1176    3403,  3414,  3415,  3416,  3417,  3420,  3421,  3422,  3423,  3427, 
     1177    3428,  3429,  3430,  3435,  3436,  3437,  3438,  3442,  3446,  3455, 
     1178    3456,  3460,  3461,  3472,  3473,  3479,  3489,  3494,  3495,  3496, 
     1179    3497,  3498,  3499,  3500,  3501,  3502,  3503,  3504,  3505,  3506, 
     1180    3507,  3508,  3509,  3510,  3520,  3521,  3524,  3525,  3536,  3541, 
     1181    3544,  3545,  3549,  3553,  3556,  3557,  3558,  3561,  3564,  3565, 
     1182    3566,  3569,  3573,  3574,  3578,  3579,  3583,  3584,  3588,  3589, 
     1183    3593,  3597,  3600,  3601,  3602,  3605,  3609,  3609,  3610,  3610, 
     1184    3614,  3615,  3619,  3619,  3620,  3620,  3625,  3625,  3626,  3630, 
     1185    3631,  3636,  3637,  3638,  3639,  3643,  3647,  3648,  3652,  3656, 
     1186    3660,  3664,  3665,  3669,  3670,  3674,  3675,  3676,  3680,  3684, 
     1187    3688,  3688,  3688,  3691,  3692,  3696,  3697,  3698,  3699,  3700, 
     1188    3701,  3702,  3703,  3704,  3705,  3706,  3710,  3714,  3718,  3718, 
     1189    3722,  3723,  3727,  3728,  3729,  3730,  3731,  3735,  3736,  3737, 
     1190    3738,  3742,  3743,  3747,  3748,  3750,  3751,  3754,  3758,  3759, 
     1191    3760,  3761,  3762,  3763,  3764,  3765,  3766,  3767,  3768,  3772, 
     1192    3773,  3774,  3777,  3778,  3781,  3782,  3786,  3787,  3791,  3792, 
     1193    3796,  3799,  3800,  3804,  3805,  3809,  3810,  3814,  3815,  3819, 
     1194    3820,  3824,  3825,  3826,  3827,  3828,  3832,  3833,  3837,  3838, 
     1195    3842,  3843,  3844,  3845,  3846,  3852,  3851,  3855,  3854,  3859, 
     1196    3863,  3864,  3868,  3869,  3870,  3871,  3872,  3873,  3874,  3875, 
     1197    3876,  3877,  3878,  3882,  3886,  3886,  3889,  3890,  3895,  3894, 
     1198    3915,  3914,  3939,  3940,  3943,  3944,  3947,  3950,  3951,  3954, 
     1199    3955,  3958,  3959,  3962,  3963,  3967,  3972,  3971,  4010,  4009, 
     1200    4061,  4062,  4063,  4067,  4068,  4073,  4076,  4077,  4080,  4081, 
     1201    4086,  4085,  4099,  4100,  4099,  4111,  4112,  4114,  4115,  4118, 
     1202    4122,  4125,  4131,  4135,  4144,  4154,  4156,  4165,  4173,  4181, 
     1203    4189,  4193,  4197,  4198,  4201,  4202,  4205,  4209,  4213,  4214, 
     1204    4217,  4221,  4222,  4222,  4229,  4228,  4242,  4241,  4254,  4255, 
     1205    4254,  4269,  4269,  4293,  4294,  4295,  4299,  4300,  4305,  4313, 
     1206    4324,  4325,  4335,  4338,  4339,  4343,  4344,  4348,  4350,  4352, 
     1207    4357,  4362,  4363,  4361,  4386,  4411,  4416,  4417,  4421,  4438, 
     1208    4437,  4442,  4443,  4447,  4452,  4451,  4466,  4483,  4488,  4532, 
     1209    4533,  4537,  4538,  4538,  4543,  4544,  4549,  4561,  4575,  4577, 
     1210    4582,  4583,  4588,  4587,  4623,  4624,  4731,  4732,  4733,  4734, 
     1211    4735,  4752,  4845,  4846 
    9401212}; 
    9411213#endif 
     
    9511223  "'*'", "TOK_SLASH", "TOK_DASTER", "TOK_SEMICOLON", "TOK_PARAMETER", 
    9521224  "TOK_RESULT", "TOK_ONLY", "TOK_INCLUDE", "TOK_SUBROUTINE", "TOK_PROGRAM", 
    953   "TOK_FUNCTION", "TOK_FORMAT", "TOK_MAX", "TOK_TANH", "TOK_WHERE", 
     1225  "TOK_FUNCTION", "TOK_LABEL_FORMAT", "TOK_LABEL_CONTINUE", 
     1226  "TOK_LABEL_END_DO", "TOK_MAX", "TOK_TANH", "TOK_COMMENT", "TOK_WHERE", 
    9541227  "TOK_ELSEWHEREPAR", "TOK_ELSEWHERE", "TOK_ENDWHERE", "TOK_MAXVAL", 
    9551228  "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", 
     1229  "TOK_SELECTCASE", "TOK_FILE", "TOK_REC", "TOK_NAME_EQ", "TOK_IOLENGTH", 
     1230  "TOK_ACCESS", "TOK_ACTION", "TOK_FORM", "TOK_RECL", "TOK_STATUS", 
     1231  "TOK_UNIT", "TOK_OPENED", "TOK_FMT", "TOK_NML", "TOK_END", "TOK_EOR", 
     1232  "TOK_EOF", "TOK_ERR", "TOK_POSITION", "TOK_IOSTAT", "TOK_IOMSG", 
     1233  "TOK_EXIST", "TOK_MIN", "TOK_FLOAT", "TOK_EXP", "TOK_LEN", "TOK_COS", 
     1234  "TOK_COSH", "TOK_ACOS", "TOK_NINT", "TOK_CYCLE", "TOK_SIN", "TOK_SINH", 
     1235  "TOK_ASIN", "TOK_EQUIVALENCE", "TOK_BACKSPACE", "TOK_LOG", "TOK_TAN", 
     1236  "TOK_ATAN", "TOK_RECURSIVE", "TOK_ABS", "TOK_MOD", "TOK_SIGN", 
     1237  "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", "TOK_KIND", "TOK_MOLD", 
     1238  "TOK_SOURCE", "TOK_ERRMSG", "TOK_MINVAL", "TOK_PUBLIC", "TOK_PRIVATE", 
     1239  "TOK_ALLOCATABLE", "TOK_RETURN", "TOK_THEN", "TOK_ELSEIF", "TOK_ELSE", 
     1240  "TOK_ENDIF", "TOK_PRINT", "TOK_PLAINGOTO", "TOK_LOGICALIF", 
     1241  "TOK_LOGICALIF_PAR", "TOK_PLAINDO", "TOK_CONTAINS", "TOK_ENDDO", 
    9651242  "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", 
     1243  "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", "TOK_INQUIRE", "TOK_WRITE_PAR", 
     1244  "TOK_WRITE", "TOK_FLUSH", "TOK_READ_PAR", "TOK_READ", "TOK_REWIND", 
     1245  "TOK_DEALLOCATE", "TOK_NULLIFY", "TOK_DIMENSION", "TOK_ENDSELECT", 
     1246  "TOK_EXTERNAL", "TOK_INTENT", "TOK_INTRINSIC", "TOK_NAMELIST", 
     1247  "TOK_DEFAULT", "TOK_OPTIONAL", "TOK_POINTER", "TOK_CONTINUE", "TOK_SAVE", 
     1248  "TOK_TARGET", "TOK_IMPLICIT", "TOK_NONE", "TOK_CALL", "TOK_STAT", 
     1249  "TOK_POINT_TO", "TOK_COMMON", "TOK_GLOBAL", "TOK_LEFTAB", "TOK_RIGHTAB", 
     1250  "TOK_PAUSE", "TOK_PROCEDURE", "TOK_STOP", "TOK_FOURDOTS", "TOK_HEXA", 
     1251  "TOK_ASSIGNTYPE", "TOK_OUT", "TOK_INOUT", "TOK_IN", "TOK_USE", 
     1252  "TOK_EQUALEQUAL", "TOK_SLASHEQUAL", "TOK_INFEQUAL", "TOK_SUPEQUAL", 
     1253  "TOK_TRUE", "TOK_FALSE", "TOK_LABEL", "TOK_LABEL_DJVIEW", 
     1254  "TOK_PLAINDO_LABEL_DJVIEW", "TOK_PLAINDO_LABEL", "TOK_TYPE", 
     1255  "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_COMMACOMPLEX", "TOK_REAL", 
    9761256  "TOK_INTEGER", "TOK_LOGICAL", "TOK_DOUBLEPRECISION", "TOK_ENDSUBROUTINE", 
    9771257  "TOK_ENDFUNCTION", "TOK_ENDPROGRAM", "TOK_ENDUNIT", "TOK_CHARACTER", 
    9781258  "TOK_CHAR_CONSTANT", "TOK_CHAR_CUT", "TOK_DATA", "TOK_CHAR_MESSAGE", 
    9791259  "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", 
     1260  "TOK_CSTINT", "'('", "')'", "'<'", "'>'", "'\\n'", "'/'", "'%'", "'_'", 
     1261  "'['", "']'", "$accept", "input", "line", "line-break", 
     1262  "suite_line_list", "suite_line", "fin_line", "program-unit", 
     1263  "external-subprogram", "filename", "opt_comma", "uexpr", "signe", 
     1264  "operation", "after_slash", "after_equal", "lhs", "beforefunctionuse", 
     1265  "array_ele_substring_func_ref", "$@4", "$@5", "begin_array", "$@6", 
     1266  "structure_component", "funarglist", "funargs", "funarg", "triplet", 
     1267  "ident", "simple_const", "string_constant", "opt_substring", "opt_expr", 
     1268  "specification-part", "opt-use-stmt-list", 
     1269  "opt-declaration-construct-list", "declaration-construct-list", 
     1270  "declaration-construct", "opt-execution-part", "execution-part", 
     1271  "opt-execution-part-construct-list", "execution-part-construct-list", 
     1272  "execution-part-construct", "opt-internal-subprogram-part", 
     1273  "internal-subprogram-part", "opt-internal-subprogram", 
     1274  "internal-subprogram-list", "internal-subprogram", 
     1275  "other-specification-stmt", "executable-construct", "action-stmt", 
     1276  "keyword", "scalar-constant", "constant", "literal-constant", 
     1277  "named-constant", "opt-label", "label", "opt-label-djview", 
     1278  "label-djview", "type-param-value", "declaration-type-spec", "$@7", 
     1279  "intrinsic-type-spec", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", 
     1280  "opt-kind-selector", "kind-selector", "signed-int-literal-constant", 
     1281  "int-literal-constant", "kind-param", "signed-real-literal-constant", 
     1282  "real-literal-constant", "complex-literal-constant", "real-part", 
     1283  "imag-part", "opt-char_length-star", "opt-char-selector", 
     1284  "char-selector", "length-selector", "char-length", 
     1285  "char-literal-constant", "logical-literal-constant", "derived-type-def", 
     1286  "$@14", "derived-type-stmt", "opt-type-attr-spec-list-comma-fourdots", 
     1287  "opt-type-attr-spec-list-comma", "type-attr-spec-list", "type-attr-spec", 
     1288  "type-param-name-list", "type-param-name", "end-type-stmt", 
     1289  "opt-component-part", "component-part", "component-def-stmt", 
     1290  "data-component-def-stmt", "opt-component-attr-spec-list-comma-2points", 
     1291  "component-attr-spec-list", "component-attr-spec", "component-decl-list", 
     1292  "component-decl", "opt-component-array-spec", "component-array-spec", 
     1293  "opt-component-initialization", "component-initialization", 
     1294  "initial-data-target", "derived-type-spec", "type-param-spec-list", 
     1295  "type-param-spec", "structure-constructor", "component-spec-list", 
     1296  "component-spec", "component-data-source", "array-constructor", 
     1297  "ac-spec", "lbracket", "rbracket", "ac-value-list", "ac-value", 
     1298  "ac-implied-do", "ac-implied-do-control", "ac-do-variable", 
     1299  "type-declaration-stmt", "$@15", "$@16", "opt-attr-spec-construct", 
     1300  "opt-attr-spec-comma-list", "attr-spec-comma-list", "attr-spec", "$@17", 
     1301  "$@18", "entity-decl-list", "entity-decl", "object-name", 
     1302  "object-name-noident", "opt-initialization", "initialization", 
     1303  "null-init", "access-spec", "opt-array-spec-par", "$@19", "array-spec", 
     1304  "explicit-shape-spec-list", "explicit-shape-spec", "lower-bound", 
     1305  "upper-bound", "assumed-shape-spec-list", "assumed-shape-spec", 
     1306  "deferred-shape-spec-list", "deferred-shape-spec", "assumed-size-spec", 
     1307  "opt-explicit-shape-spec-list-comma", "opt-lower-bound-2points", 
     1308  "implied-shape-spec-list", "implied-shape-spec", "intent-spec", 
     1309  "access-stmt", "$@20", "opt-access-id-list", "access-id-list", 
     1310  "access-id", "data-stmt", "$@21", "opt-data-stmt-set-nlist", 
     1311  "data-stmt-set-nlist", "data-stmt-set", "data-stmt-object-list", 
     1312  "data-stmt-value-list", "data-stmt-object", "data-implied-do", 
     1313  "data-i-do-object-list", "data-i-do-object", "data-i-do-variable", 
     1314  "data-stmt-value", "opt-data-stmt-star", "data-stmt-constant", 
     1315  "scalar-constant-subobject", "constant-subobject", "dimension-stmt", 
     1316  "$@22", "$@23", "array-name-spec-list", "$@24", "$@25", "parameter-stmt", 
     1317  "$@26", "$@27", "named-constant-def-list", "named-constant-def", 
     1318  "save-stmt", "$@28", "$@29", "opt-TOK_FOURDOTS", "opt-saved-entity-list", 
     1319  "saved-entity-list", "saved-entity", "proc-pointer-name", 
     1320  "get_my_position", "implicit-stmt", "$@30", "implicit-spec-list", 
     1321  "implicit-spec", "letter-spec-list", "letter-spec", "namelist-stmt", 
     1322  "opt-namelist-other", "namelist-group-object-list", 
     1323  "namelist-group-object", "equivalence-stmt", "equivalence-set-list", 
     1324  "equivalence-set", "$@31", "equivalence-object-list", 
     1325  "equivalence-object", "common-stmt", "$@32", "$@33", 
     1326  "opt-common-block-name", "common-block-name", "opt-comma", 
     1327  "opt-common-block-list", "common-block-object-list", 
     1328  "common-block-object", "$@34", "designator", "scalar-variable", 
     1329  "variable", "variable-name", "scalar-logical-variable", 
     1330  "logical-variable", "char-variable", "scalar-default-char-variable", 
     1331  "default-char-variable", "scalar-int-variable", "int-variable", 
     1332  "substring", "substring-range", "data-ref", "opt-part-ref", "part-ref", 
     1333  "$@35", "scalar-structure-component", "structure-component", 
     1334  "array-element", "array-section", "section-subscript-list", 
     1335  "section-subscript", "section_subscript_ambiguous", "vector-subscript", 
     1336  "allocate-stmt", "$@36", "$@37", "opt-alloc-opt-list-comma", 
     1337  "alloc-opt-list", "alloc-opt", "stat-variable", "errmsg-variable", 
     1338  "allocation-list", "allocation", "allocate-object", 
     1339  "opt-allocate-shape-spec-list-par", "allocate-shape-spec-list", 
     1340  "allocate-shape-spec", "opt-lower-bound-expr", "lower-bound-expr", 
     1341  "upper-bound-expr", "deallocate-stmt", "$@38", "$@39", 
     1342  "allocate-object-list", "opt-dealloc-opt-list-comma", "dealloc-opt-list", 
     1343  "dealloc-opt", "primary", "level-1-expr", "mult-operand", "add-operand", 
     1344  "level-2-expr", "power-op", "mult-op", "add-op", "level-3-expr", 
     1345  "concat-op", "level-4-expr", "rel-op", "and-operand", "or-operand", 
     1346  "equiv-operand", "level-5-expr", "not-op", "and-op", "or-op", "equiv-op", 
     1347  "expr", "scalar-default-char-expr", "default-char-expr", "int-expr", 
     1348  "opt-scalar-int-expr", "scalar-int-expr", "specification-expr", 
     1349  "constant-expr", "scalar-default-char-constant-expr", 
     1350  "default-char-constant-expr", "scalar-int-constant-expr", 
     1351  "int-constant-expr", "assignment-stmt", "pointer-assignment-stmt", 
     1352  "opt-bounds-spec-list-par", "bounds-spec-list", "bounds-remapping-list", 
     1353  "bounds-spec", "bounds-remapping", "data-target", 
     1354  "procedure-component-name", "proc-component-ref", "proc-target", 
     1355  "where-stmt", "where-construct", "opt-where-body-construct", 
     1356  "opt-masked-elsewhere-construct", "opt-elsewhere-construct", 
     1357  "where-construct-stmt", "where-body-construct", "where-assignment-stmt", 
     1358  "mask-expr", "masked-elsewhere-stmt", "elsewhere-stmt", "end-where-stmt", 
     1359  "forall-header", "block", "opt-execution-part-construct", "do-construct", 
     1360  "block-do-construct", "label-do-stmt", "label-do-stmt-djview", 
     1361  "nonlabel-do-stmt", "loop-control", "do-variable", "do-block", "end-do", 
     1362  "end-do-stmt", "nonblock-do-construct", "action-term-do-construct", 
     1363  "do-term-action-stmt", "do-term-action-stmt-special", 
     1364  "outer-shared-do-construct", "label-do-stmt-djview-do-block-list", 
     1365  "inner-shared-do-construct", "do-term-shared-stmt", 
     1366  "opt-do-construct-name", "cycle-stmt", "if-construct", 
    10141367  "opt-else-if-stmt-block", "else-if-stmt-block", "opt-else-stmt-block", 
    10151368  "else-stmt-block", "if-then-stmt", "else-if-stmt", "else-stmt", 
    10161369  "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 
     1370  "case-stmt-block", "select-case-stmt", "$@40", "$@41", "case-stmt", 
     1371  "end-select-stmt", "$@42", "$@43", "case-selector", "$@44", 
     1372  "case-value-range-list", "case-value-range", "case-value", "exit-stmt", 
     1373  "goto-stmt", "arithmetic-if-stmt", "continue-stmt", "stop-stmt", 
     1374  "stop-code", "io-unit", "file-unit-number", "internal-file-variable", 
     1375  "open-stmt", "$@45", "$@46", "connect-spec-list", "connect-spec", 
     1376  "file-name-expr", "iomsg-variable", "close-stmt", "$@47", 
     1377  "close-spec-list", "close-spec", "read-stmt", "write-stmt", "print-stmt", 
     1378  "io-control-spec-list", "namelist-group-name", "io-control-spec", 
     1379  "format", "input-item-list", "input-item", "output-item-list", 
     1380  "output-item", "io-implied-do", "io-implied-do-object-list", 
     1381  "io-implied-do-object", "io-implied-do-control", "rewind-stmt", 
     1382  "position-spec-list", "position-spec", "flush-stmt", "flush-spec-list", 
     1383  "flush-spec", "inquire-stmt", "$@48", "$@49", "set_in_inquire", 
     1384  "inquire-spec-list", "inquire-spec", "format-stmt", "module", "$@50", 
     1385  "opt-module-subprogram-part", "module-stmt", "$@51", "end-module-stmt", 
     1386  "$@52", "opt-tok-module", "opt-ident", "module-subprogram-part", 
     1387  "opt-module-subprogram-list", "module-subprogram-list", 
     1388  "module-subprogram", "use-stmt-list", "save_olduse", "use-stmt", "$@53", 
     1389  "$@54", "opt-module-nature-2points", "opt-only-list", "main-program", 
     1390  "opt-specification-part", "program-stmt", "$@55", "end-program-stmt", 
     1391  "$@56", "$@57", "opt-tok-program", "opt-tok-name", "module-nature", 
     1392  "opt-rename-list", "rename-list", "rename", "only-list", "only", 
     1393  "only-use-name", "generic-spec", "external-stmt", "external-name-list", 
     1394  "external-name", "intrinsic-stmt", "intrinsic-procedure-name-list", 
     1395  "intrinsic-procedure-name", "function-reference", "$@58", "call-stmt", 
     1396  "$@59", "$@60", "$@61", "$@62", "before-call-stmt", "$@63", 
     1397  "procedure-designator", "actual-arg-spec-list", "actual-arg-spec", 
     1398  "actual-arg", "opt-prefix", "prefix", "prefix-spec", 
     1399  "function-subprogram", "function-stmt", "$@64", "$@65", "function-name", 
     1400  "dummy-arg-name", "opt-suffix", "suffix", "end-function-stmt", "$@66", 
     1401  "opt-tok-function", "subroutine-subprogram", "subroutine-stmt", "$@67", 
     1402  "subroutine-name", "end-subroutine-stmt", "close_subroutine", 
     1403  "opt-tok-subroutine", "opt-dummy-arg-list-par", "$@68", 
     1404  "opt-dummy-arg-list", "dummy-arg-list", "dummy-arg", "return-stmt", 
     1405  "contains-stmt", "$@69", "opt_name", "after_rewind", 
     1406  "declare_after_percent", "pointer_name_list", YY_NULL 
    10291407}; 
    10301408#endif 
     
    10511429     389,   390,   391,   392,   393,   394,   395,   396,   397,   398, 
    10521430     399,   400,   401,   402,   403,   404,   405,   406,   407,   408, 
    1053      409,   410,    40,    41,    60,    62,    10,    47,    37 
     1431     409,   410,   411,   412,   413,   414,   415,   416,   417,   418, 
     1432     419,   420,   421,   422,   423,   424,   425,   426,   427,   428, 
     1433     429,   430,   431,   432,   433,   434,   435,   436,   437,   438, 
     1434     439,   440,   441,    40,    41,    60,    62,    10,    47,    37, 
     1435      95,    91,    93 
    10541436}; 
    10551437# endif 
     
    10581440static const yytype_uint16 yyr1[] = 
    10591441{ 
    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, 
    1088      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 
     1442       0,   203,   204,   204,   205,   205,   205,   206,   206,   206, 
     1443     206,   206,   207,   207,   207,   208,   208,   208,   209,   210, 
     1444     210,   210,   211,   211,   212,   213,   213,   214,   214,   214, 
     1445     214,   214,   215,   215,   216,   216,   216,   216,   216,   216, 
     1446     216,   216,   216,   216,   216,   216,   216,   216,   216,   216, 
     1447     216,   216,   216,   216,   216,   217,   217,   217,   217,   218, 
     1448     218,   219,   219,   219,   220,   221,   221,   222,   221,   223, 
     1449     221,   224,   225,   224,   226,   227,   227,   228,   228,   229, 
     1450     229,   230,   230,   230,   230,   230,   230,   230,   231,   232, 
     1451     232,   232,   232,   232,   232,   232,   232,   233,   233,   233, 
     1452     233,   234,   234,   235,   235,   236,   237,   237,   238,   238, 
     1453     239,   239,   240,   240,   240,   240,   240,   240,   240,   240, 
     1454     240,   240,   240,   240,   241,   241,   242,   243,   243,   244, 
     1455     244,   245,   245,   246,   246,   247,   248,   248,   249,   249, 
     1456     250,   250,   251,   251,   251,   251,   251,   251,   251,   251, 
     1457     251,   252,   252,   252,   252,   252,   253,   253,   253,   253, 
     1458     253,   253,   253,   253,   253,   253,   253,   253,   253,   253, 
     1459     253,   253,   253,   253,   253,   253,   253,   253,   253,   253, 
     1460     253,   254,   255,   256,   256,   257,   257,   257,   257,   257, 
     1461     258,   259,   259,   260,   260,   261,   261,   262,   263,   263, 
     1462     263,   265,   264,   264,   264,   267,   266,   268,   266,   269, 
     1463     266,   270,   266,   271,   266,   272,   266,   273,   273,   274, 
     1464     274,   274,   275,   275,   276,   276,   277,   277,   278,   278, 
     1465     279,   279,   280,   281,   281,   281,   282,   282,   282,   283, 
     1466     283,   284,   284,   285,   285,   285,   285,   285,   286,   286, 
     1467     286,   286,   287,   287,   288,   288,   288,   289,   289,   291, 
     1468     290,   292,   292,   293,   293,   294,   294,   295,   295,   296, 
     1469     297,   297,   298,   299,   299,   300,   300,   301,   301,   302, 
     1470     303,   304,   304,   304,   305,   305,   306,   306,   306,   306, 
     1471     307,   307,   308,   309,   309,   310,   310,   311,   311,   312, 
     1472     312,   312,   313,   314,   314,   315,   315,   316,   316,   317, 
     1473     317,   318,   318,   319,   319,   320,   320,   320,   321,   321, 
     1474     322,   323,   324,   325,   325,   326,   326,   327,   328,   328, 
     1475     329,   331,   332,   330,   333,   333,   334,   334,   335,   335, 
     1476     336,   336,   337,   336,   336,   338,   336,   336,   336,   336, 
     1477     336,   336,   336,   339,   339,   340,   341,   342,   343,   343, 
     1478     344,   344,   344,   345,   346,   346,   347,   348,   347,   349, 
     1479     349,   349,   349,   349,   350,   350,   351,   351,   352,   353, 
     1480     354,   354,   355,   355,   356,   356,   357,   358,   359,   359, 
     1481     360,   360,   361,   361,   362,   363,   363,   363,   365,   364, 
     1482     366,   366,   367,   367,   368,   368,   370,   369,   371,   371, 
     1483     372,   372,   373,   374,   374,   375,   375,   376,   376,   377, 
     1484     377,   378,   378,   379,   379,   379,   380,   381,   381,   381, 
     1485     381,   381,   381,   381,   381,   382,   382,   383,   383,   383, 
     1486     383,   383,   383,   383,   384,   385,   387,   388,   386,   390, 
     1487     389,   391,   389,   393,   394,   392,   395,   395,   396,   398, 
     1488     399,   397,   400,   400,   401,   401,   402,   402,   403,   403, 
     1489     403,   404,   405,   406,   407,   406,   408,   408,   409,   410, 
     1490     410,   411,   411,   412,   413,   413,   414,   414,   415,   416, 
     1491     417,   417,   419,   418,   420,   420,   421,   421,   421,   423, 
     1492     424,   422,   425,   425,   426,   426,   427,   427,   428,   428, 
     1493     429,   429,   430,   431,   430,   432,   432,   432,   432,   433, 
     1494     434,   435,   436,   437,   438,   439,   440,   441,   442,   443, 
     1495     443,   443,   444,   445,   446,   446,   447,   448,   447,   449, 
     1496     450,   451,   452,   452,   453,   453,   453,   454,   454,   454, 
     1497     454,   454,   454,   454,   454,   454,   454,   455,   455,   455, 
     1498     455,   455,   455,   456,   458,   459,   457,   460,   460,   461, 
     1499     461,   462,   462,   463,   464,   465,   465,   466,   467,   467, 
     1500     468,   468,   469,   469,   470,   471,   471,   472,   473,   475, 
     1501     476,   474,   477,   477,   478,   478,   479,   479,   480,   480, 
     1502     481,   481,   481,   481,   481,   482,   483,   483,   484,   484, 
     1503     485,   485,   485,   485,   485,   486,   487,   487,   488,   488, 
     1504     489,   489,   490,   491,   491,   492,   492,   492,   492,   492, 
     1505     492,   492,   492,   492,   492,   492,   492,   493,   493,   494, 
     1506     494,   495,   495,   496,   496,   497,   498,   499,   500,   500, 
     1507     501,   502,   503,   504,   505,   505,   506,   507,   508,   509, 
     1508     510,   511,   512,   513,   513,   514,   514,   514,   515,   515, 
     1509     516,   516,   517,   517,   518,   519,   520,   521,   522,   523, 
     1510     523,   523,   524,   525,   526,   526,   527,   527,   528,   528, 
     1511     529,   530,   530,   530,   531,   532,   533,   533,   534,   534, 
     1512     535,   535,   536,   537,   538,   538,   539,   539,   539,   540, 
     1513     540,   541,   541,   541,   541,   542,   542,   542,   542,   543, 
     1514     543,   543,   543,   544,   544,   544,   544,   545,   546,   547, 
     1515     547,   548,   548,   549,   549,   550,   551,   552,   552,   552, 
     1516     552,   552,   552,   552,   552,   552,   552,   552,   552,   552, 
     1517     552,   552,   552,   552,   553,   553,   554,   554,   555,   556, 
     1518     557,   557,   558,   559,   560,   560,   560,   561,   562,   562, 
     1519     562,   563,   564,   564,   565,   565,   566,   566,   567,   567, 
     1520     568,   569,   570,   570,   570,   571,   573,   572,   574,   572, 
     1521     575,   575,   577,   576,   578,   576,   580,   579,   579,   581, 
     1522     581,   582,   582,   582,   582,   583,   584,   584,   585,   586, 
     1523     587,   588,   588,   589,   589,   590,   590,   590,   591,   592, 
     1524     594,   595,   593,   596,   596,   597,   597,   597,   597,   597, 
     1525     597,   597,   597,   597,   597,   597,   598,   599,   601,   600, 
     1526     602,   602,   603,   603,   603,   603,   603,   604,   604,   604, 
     1527     604,   605,   605,   606,   606,   607,   607,   608,   609,   609, 
     1528     609,   609,   609,   609,   609,   609,   609,   609,   609,   610, 
     1529     610,   610,   611,   611,   612,   612,   613,   613,   614,   614, 
     1530     615,   616,   616,   617,   617,   618,   618,   619,   619,   620, 
     1531     620,   621,   621,   621,   621,   621,   622,   622,   623,   623, 
     1532     624,   624,   624,   624,   624,   626,   625,   627,   625,   628, 
     1533     629,   629,   630,   630,   630,   630,   630,   630,   630,   630, 
     1534     630,   630,   630,   631,   633,   632,   634,   634,   636,   635, 
     1535     638,   637,   639,   639,   640,   640,   641,   642,   642,   643, 
     1536     643,   644,   644,   645,   645,   646,   648,   647,   649,   647, 
     1537     650,   650,   650,   651,   651,   652,   653,   653,   241,   241, 
     1538     655,   654,   657,   658,   656,   659,   659,   660,   660,   661, 
     1539     662,   662,   663,   663,   664,   665,   665,   666,   666,   666, 
     1540     667,   668,   669,   669,   670,   670,   671,   672,   673,   673, 
     1541     674,   675,   676,   675,   678,   677,   679,   677,   680,   681, 
     1542     677,   683,   682,   684,   684,   684,   685,   685,   686,   686, 
     1543     687,   687,   687,   688,   688,   689,   689,   690,   690,   690, 
     1544     691,   693,   694,   692,   695,   696,   697,   697,   698,   700, 
     1545     699,   701,   701,   702,   704,   703,   705,   706,   707,   708, 
     1546     708,   709,   710,   709,   711,   711,   712,   712,   713,   713, 
     1547     714,   714,   716,   715,   717,   717,   718,   718,   718,   718, 
     1548     718,   719,   720,   720 
    11201549}; 
    11211550 
     
    11231552static const yytype_uint8 yyr2[] = 
    11241553{ 
    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, 
     1554       0,     2,     0,     2,     1,     1,     1,     2,     1,     1, 
     1555       3,     2,     1,     3,     3,     1,     3,     1,     0,     1, 
     1556       1,     1,     1,     1,     1,     0,     1,     1,     1,     2, 
     1557       2,     2,     1,     1,     2,     2,     2,     2,     2,     2, 
     1558       2,     2,     2,     3,     3,     2,     2,     2,     2,     2, 
     1559       2,     2,     2,     2,     2,     0,     1,     2,     2,     2, 
     1560       1,     1,     1,     1,     0,     1,     2,     0,     5,     0, 
     1561       6,     1,     0,     5,     4,     1,     2,     1,     3,     1, 
     1562       1,     3,     5,     4,     3,     2,     2,     1,     1,     1, 
     1563       1,     1,     1,     1,     1,     2,     2,     1,     2,     1, 
     1564       1,     0,     1,     0,     1,     2,     0,     1,     0,     1, 
     1565       1,     2,     1,     1,     1,     1,     1,     1,     1,     1, 
     1566       1,     1,     1,     1,     0,     1,     2,     0,     1,     1, 
     1567       2,     1,     1,     0,     1,     3,     0,     1,     1,     2, 
    11321568       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
    11331569       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, 
    1157        1,     3,     5,     4,     3,     2,     2,     1,     1,     1, 
    1158        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 
     1570       1,     1,     1,     1,     1,     1,     2,     4,     2,     1, 
     1571       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1572       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1573       1,     0,     1,     1,     1,     0,     1,     1,     1,     1, 
     1574       1,     0,     2,     3,     3,     0,     3,     0,     3,     0, 
     1575       3,     0,     3,     0,     3,     0,     3,     0,     1,     3, 
     1576       5,     2,     1,     2,     1,     3,     1,     1,     1,     2, 
     1577       1,     3,     5,     1,     1,     1,     1,     1,     1,     0, 
     1578       2,     0,     1,     1,     9,     5,     5,     9,     3,     5, 
     1579       2,     3,     3,     1,     1,     1,     1,     1,     1,     0, 
     1580       4,     4,     7,     0,     2,     0,     2,     1,     3,     1, 
     1581       1,     3,     1,     2,     3,     0,     1,     1,     2,     1, 
     1582       4,     0,     1,     3,     1,     3,     1,     1,     4,     1, 
     1583       1,     3,     4,     0,     3,     1,     1,     0,     1,     2, 
     1584       2,     2,     1,     1,     4,     1,     3,     1,     3,     3, 
     1585       4,     1,     3,     1,     3,     1,     1,     1,     3,     3, 
     1586       1,     1,     1,     1,     3,     1,     1,     5,     5,     7, 
     1587       1,     0,     0,     6,     0,     2,     0,     1,     2,     3, 
     1588       1,     1,     0,     5,     1,     0,     5,     1,     1,     1, 
     1589       1,     1,     1,     1,     3,     4,     1,     1,     0,     1, 
     1590       2,     2,     2,     1,     1,     1,     0,     0,     4,     1, 
     1591       1,     1,     1,     1,     1,     3,     3,     1,     1,     1, 
     1592       1,     3,     1,     2,     1,     3,     1,     3,     0,     2, 
     1593       0,     2,     1,     3,     2,     1,     1,     1,     0,     4, 
     1594       0,     2,     1,     3,     1,     1,     0,     5,     0,     1, 
     1595       2,     3,     4,     1,     3,     1,     3,     1,     1,     9, 
     1596      11,     1,     3,     1,     1,     1,     1,     2,     2,     2, 
     1597       1,     1,     1,     1,     1,     0,     2,     1,     1,     1, 
     1598       1,     1,     1,     1,     1,     1,     0,     0,     6,     0, 
     1599       5,     0,     7,     0,     0,     7,     1,     3,     3,     0, 
     1600       0,     6,     0,     1,     0,     1,     1,     3,     1,     1, 
     1601       1,     1,     0,     4,     0,     5,     1,     3,     4,     1, 
     1602       3,     1,     3,     7,     0,     6,     1,     3,     1,     3, 
     1603       1,     3,     0,     6,     1,     3,     1,     1,     1,     0, 
     1604       0,     7,     0,     1,     1,     3,     0,     1,     0,     4, 
     1605       1,     3,     1,     0,     5,     1,     1,     1,     1,     1, 
     1606       1,     1,     1,     1,     1,     1,     1,     1,     1,     1, 
     1607       4,     4,     3,     2,     0,     3,     1,     0,     5,     1, 
     1608       1,     1,     1,     4,     0,     1,     3,     2,     1,     2, 
     1609       3,     4,     2,     1,     3,     4,     2,     1,     2,     3, 
     1610       4,     2,     0,     1,     0,     0,     8,     0,     2,     1, 
     1611       3,     2,     3,     1,     1,     1,     3,     2,     1,     1, 
     1612       0,     3,     1,     3,     2,     0,     2,     1,     1,     0, 
     1613       0,     8,     1,     3,     0,     2,     1,     3,     2,     3, 
     1614       1,     1,     1,     1,     3,     1,     1,     3,     1,     3, 
     1615       1,     2,     3,     1,     2,     1,     1,     1,     1,     1, 
     1616       1,     3,     1,     1,     3,     1,     1,     1,     1,     1, 
     1617       1,     1,     1,     1,     1,     1,     1,     1,     2,     1, 
     1618       3,     1,     3,     1,     3,     1,     1,     1,     1,     1, 
     1619       1,     1,     1,     1,     0,     1,     1,     1,     1,     1, 
     1620       1,     1,     1,     4,     5,     5,     7,     4,     0,     3, 
     1621       1,     3,     1,     3,     2,     3,     1,     1,     3,     1, 
     1622       1,     1,     5,     5,     0,     2,     0,     3,     0,     3, 
     1623       5,     1,     1,     1,     1,     1,     4,     5,     2,     3, 
     1624       2,     3,     0,     1,     0,     2,     1,     1,     1,     3, 
     1625       3,     4,     2,     5,     3,     4,     2,     5,     3,     4, 
     1626       2,     5,     3,     6,     8,     5,     3,     1,     1,     1, 
     1627       2,     3,     4,     1,     1,     3,     2,     1,     1,     1, 
     1628       1,     1,     1,     1,     2,     4,     1,     1,     1,     1, 
     1629       1,     1,     1,     1,     4,     3,     2,     3,     3,     2, 
     1630       0,     1,     3,     5,     0,     1,     2,     2,     0,     1, 
     1631       2,     2,     8,     6,     6,     7,     2,     3,     2,     3, 
     1632       5,     3,     0,     1,     2,     2,     0,     8,     0,     6, 
     1633       3,     4,     0,     3,     0,     4,     0,     4,     1,     1, 
     1634       3,     1,     2,     2,     3,     1,     2,     3,     3,    10, 
     1635       3,     2,     3,     1,     1,     1,     1,     1,     1,     1, 
     1636       0,     0,     7,     1,     3,     1,     2,     2,     2,     2, 
     1637       2,     2,     2,     2,     2,     3,     1,     1,     0,     6, 
     1638       1,     3,     1,     2,     2,     2,     3,     5,     6,     4, 
     1639       6,     5,     6,     4,     6,     1,     3,     1,     1,     2, 
     1640       1,     1,     2,     2,     2,     2,     2,     2,     2,     1, 
     1641       1,     1,     1,     3,     1,     1,     1,     3,     1,     1, 
     1642       5,     1,     3,     1,     1,     5,     7,     3,     5,     1, 
     1643       3,     1,     2,     2,     2,     2,     3,     5,     1,     3, 
     1644       1,     2,     2,     2,     2,     0,     7,     0,     9,     0, 
     1645       1,     3,     1,     2,     2,     2,     2,     2,     2,     2, 
     1646       3,     2,     2,     2,     0,     5,     0,     1,     0,     4, 
     1647       0,     6,     0,     1,     0,     1,     2,     0,     1,     1, 
     1648       2,     1,     1,     1,     2,     0,     0,     8,     0,    11, 
     1649       0,     1,     3,     0,     1,     5,     0,     1,     0,     1, 
     1650       0,     4,     0,     0,     6,     0,     1,     0,     1,     1, 
     1651       0,     2,     1,     3,     3,     1,     3,     1,     1,     1, 
     1652       1,     1,     3,     4,     1,     3,     1,     4,     1,     3, 
     1653       1,     3,     0,     5,     0,     3,     0,     5,     0,     0, 
     1654       7,     0,     4,     1,     1,     1,     1,     3,     1,     3, 
     1655       1,     1,     1,     0,     1,     1,     2,     1,     1,     1, 
     1656       5,     0,     0,    10,     1,     1,     0,     1,     4,     0, 
     1657       7,     0,     1,     5,     0,     6,     1,     6,     0,     0, 
     1658       1,     0,     0,     4,     0,     1,     1,     3,     1,     1, 
     1659       3,     4,     0,     4,     1,     1,     3,     3,     1,     3, 
     1660       1,     0,     1,     3 
    11851661}; 
    11861662 
     
    11901666static const yytype_uint16 yydefact[] = 
    11911667{ 
    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, 
    1206        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 
     1668       2,     0,     1,     6,     8,     0,     0,    17,     9,  1019, 
     1669    1018,     0,    18,     3,     4,     5,    12,    15,    20,  1017, 
     1670       0,    21,   106,    19,   106,     0,   201,  1015,    22,   106, 
     1671      23,   106,    24,    18,   960,   928,   207,   205,   215,   209, 
     1672     213,   211,    88,   303,     0,     0,     7,    11,    18,   201, 
     1673     202,   957,   108,     0,   107,   943,   191,   191,     0,     0, 
     1674    1018,  1016,   191,   191,    16,     0,     0,   217,   217,   217, 
     1675     217,   241,   217,     0,   203,   204,    10,    13,    14,   453, 
     1676       0,     0,   364,   365,    25,     0,   462,     0,   499,   193, 
     1677      25,   263,   254,   256,     0,   255,    88,   194,   536,   105, 
     1678     109,   110,   116,     0,   192,     0,   112,   259,   117,   201, 
     1679     400,   142,   144,   145,     0,   113,   150,     0,     0,   115, 
     1680     149,   146,   143,   520,     0,   518,   529,   534,   517,   515, 
     1681     516,   118,   119,   120,   706,   704,   704,   707,   733,   734, 
     1682     121,   123,   114,   147,   148,   122,   945,   944,     0,   192, 
     1683     924,   927,   201,     0,     0,   103,     0,     0,     0,     0, 
     1684       0,     0,   909,     0,     0,     0,     0,     0,    88,   133, 
     1685     125,   191,   151,     0,   156,   162,   157,   172,   178,   155, 
     1686     684,   152,   161,   154,   704,   169,   153,   782,   164,   163, 
     1687     180,   160,   177,   171,   159,   174,   179,   173,   176,   165, 
     1688     170,   158,   994,   175,  1036,  1041,  1024,     0,   133,   133, 
     1689     961,   929,     0,     0,   208,   218,   206,   216,   210,     0, 
     1690       0,   214,   242,   243,   212,   200,   645,   618,   619,   199, 
     1691    1004,     0,   257,   258,  1005,   230,   224,     0,   321,   536, 
     1692       0,   601,   307,   613,   185,   186,   188,   189,   187,     0, 
     1693     305,   602,     0,   600,   605,   606,   608,   610,   620,     0, 
     1694     623,   637,   639,   641,   643,   650,     0,   653,   656,   198, 
     1695     603,     0,     0,   923,   492,     0,   490,    26,   720,     0, 
     1696       0,     0,   986,     0,   984,   463,     0,     0,   502,   712, 
     1697       0,     0,     0,     0,     0,   506,     0,   413,   418,   520, 
     1698     417,     0,   537,   111,     0,     0,     0,     0,   654,   201, 
     1699     334,   398,     0,   462,   462,   201,     0,     0,     0,     0, 
     1700     654,   533,   728,   191,   195,   195,   950,  1052,   472,   936, 
     1701     201,   939,   941,   942,     0,     0,    88,   536,   166,   104, 
     1702       0,     0,   806,     0,  1055,  1054,   168,   564,   820,   838, 
     1703       0,     0,   818,     0,     0,     0,   589,     0,   811,   652, 
     1704     660,   662,   813,   659,   814,   661,     0,     0,     0,   962, 
     1705     134,   126,   191,   129,   131,   132,     0,     0,     0,     0, 
     1706    1001,     0,   686,   764,     0,     0,   783,   704,   998,     0, 
     1707    1042,  1034,  1021,   472,   472,   221,     0,     0,     0,   253, 
     1708     250,     0,     0,     0,     0,     0,   320,   323,   326,   325, 
     1709       0,     0,   536,   613,   234,   186,     0,     0,     0,     0, 
     1710       0,   304,     0,   615,     0,   616,   617,     0,   614,   222, 
     1711       0,   185,   611,   626,   625,   630,   628,   629,   627,   622, 
     1712     631,   632,   634,   636,   633,   635,     0,     0,   646,     0, 
     1713     647,     0,   649,   648,     0,   638,   992,     0,     0,     0, 
     1714     489,     0,   702,   727,     0,   722,     0,     0,   982,   990, 
     1715       0,   988,     0,   504,     0,     0,   503,   714,   266,   267, 
     1716     269,     0,   264,     0,   425,     0,   421,   540,   424,   539, 
     1717     423,   507,   406,   506,     0,     0,     0,    25,    25,   544, 
     1718    1050,     0,   871,   224,   870,   652,   869,     0,   810,     0, 
     1719       0,     0,   655,   281,     0,   201,   277,   279,     0,     0, 
     1720       0,   337,     0,   404,   401,   402,   405,     0,   464,   474, 
     1721       0,     0,   476,    88,   600,     0,   519,   679,   680,   681, 
     1722       0,     0,   587,     0,     0,   670,   672,     0,     0,     0, 
     1723       0,   705,   197,    25,     0,     0,   191,   704,   709,   729, 
     1724     735,     0,   755,   191,   710,     0,   951,     0,     0,     0, 
     1725     925,   940,   695,     0,     0,   762,   807,   808,     0,     0, 
     1726       0,     0,     0,     0,     0,     0,   653,   900,     0,   898, 
     1727     896,     0,     0,     0,     0,   891,     0,   889,   887,     0, 
     1728    1062,     0,   812,     0,   201,   955,     0,   130,     0,   816, 
     1729       0,     0,     0,     0,     0,     0,     0,     0,    88,   524, 
     1730     819,   858,   815,   817,     0,   861,   855,   860,     0,     0, 
     1731       0,     0,     0,   694,   692,   693,   688,   685,   691,     0, 
     1732     768,   765,   704,   798,   796,     0,   792,   784,   781,   785, 
     1733     996,     0,   995,  1044,     0,  1044,     0,  1020,     0,  1033, 
     1734       0,   219,     0,     0,     0,     0,   248,     0,   325,   318, 
     1735       0,   227,   226,   231,   225,     0,   186,   604,   308,   306, 
     1736     322,   319,   185,   607,   609,   612,   621,   624,   640,   642, 
     1737     644,   991,     0,     0,     0,   456,   521,     0,   496,   498, 
     1738     529,   497,   491,     0,   726,     0,   983,   985,     0,   987, 
     1739       0,     0,   512,   508,   510,     0,   261,     0,     0,     0, 
     1740       0,   410,   414,   536,   430,   222,   431,   228,   435,   433, 
     1741       0,   434,   432,     0,   415,   435,   444,   302,     0,   363, 
     1742     719,     0,   711,     0,   548,     0,     0,   536,     0,   545, 
     1743     553,   562,   563,  1051,     0,   853,     0,   531,   654,     0, 
     1744     282,     0,     0,   260,   278,   349,   341,     0,   344,     0, 
     1745     347,   348,   350,   351,   352,   338,   340,   357,   332,   353, 
     1746     366,   335,     0,   399,     0,     0,   447,   356,   468,   460, 
     1747     465,   466,   469,   470,     0,     0,   201,   473,     0,   667, 
     1748     674,     0,   669,     0,     0,   676,     0,   663,   530,   535, 
     1749     716,     0,     0,     0,     0,     0,     0,     0,   737,   741, 
     1750     738,   752,   736,   746,   743,   730,   748,   740,   750,   753, 
     1751     749,   751,   742,   747,   739,   756,   704,   754,     0,   969, 
     1752       0,   970,  1053,   932,     0,   788,   578,   540,   579,   567, 
     1753     575,   580,     0,     0,     0,     0,     0,     0,     0,     0, 
     1754       0,     0,   825,     0,   823,     0,     0,     0,     0,   842, 
     1755       0,   840,     0,     0,     0,     0,     0,     0,     0,     0, 
     1756       0,     0,     0,   912,     0,   910,   901,   904,   528,   902, 
     1757     527,   526,   837,   525,   903,     0,     0,   892,   895,   894, 
     1758     893,     0,     0,   592,   594,     0,   167,     0,   135,   201, 
     1759     138,   140,   141,   965,   191,   868,   816,   859,   863,   857, 
     1760     862,   864,   865,   866,   867,     0,     0,     0,     0,   849, 
     1761    1003,  1002,     0,     0,     0,   684,     0,     0,   766,     0, 
     1762     769,   704,   767,     0,     0,   790,   794,     0,     0,   536, 
     1763       0,  1011,  1010,     0,  1006,  1008,  1049,  1025,  1048,     0, 
     1764    1045,  1046,  1035,     0,  1031,  1039,     0,   252,     0,     0, 
     1765       0,     0,   324,   190,   238,   236,   237,     0,     0,     0, 
     1766       0,   454,     0,   654,     0,     0,   989,   521,   484,   486, 
     1767     488,   505,   513,     0,   500,   268,   272,     0,   270,   536, 
     1768     422,     0,   426,   407,   411,   537,     0,   428,   429,     0, 
     1769       0,   412,   427,   223,   229,   721,   713,     0,   549,   556, 
     1770     552,     0,     0,   538,   557,     0,   547,     0,   878,     0, 
     1771     876,   879,   664,   532,   287,     0,   289,     0,   284,   286, 
     1772     293,     0,   290,     0,   273,   342,   345,     0,     0,   367, 
     1773     239,   339,   403,   449,     0,     0,     0,     0,   475,   481, 
     1774       0,   479,   477,   677,   678,   675,   588,     0,   671,     0, 
     1775     673,     0,   665,   718,    25,     0,   731,     0,  1060,  1058, 
     1776       0,   744,     0,     0,   191,   758,   757,   952,     0,   946, 
     1777     933,   934,   690,   682,     0,     0,     0,     0,   577,   836, 
     1778     651,   830,   827,   828,   831,   834,     0,   826,   829,   833, 
     1779     832,     0,   821,     0,   843,   845,   844,     0,     0,   914, 
     1780       0,     0,   915,   916,   922,   913,   523,   921,   522,   917, 
     1781     919,   918,     0,   905,   899,   897,   890,   888,     0,     0, 
     1782    1063,     0,   139,   966,   967,     0,   780,     0,   192,   856, 
     1783     851,     0,     0,   847,   874,     0,   872,   875,     0,     0, 
     1784       0,     0,     0,   684,   683,   687,     0,     0,   776,     0, 
     1785     770,   763,   771,     0,   805,     0,   799,   801,   791,     0, 
     1786     793,   997,     0,     0,   999,  1043,     0,  1026,  1032,   934, 
     1787    1040,   934,   220,     0,   249,     0,   246,   245,   536,     0, 
     1788       0,   330,   232,   993,   658,   458,   457,     0,     0,   494, 
     1789       0,   725,     0,     0,   506,   388,   511,     0,     0,     0, 
     1790       0,     0,     0,   190,   437,   182,   183,   184,   439,   440, 
     1791     442,   443,   441,   436,   438,   309,     0,     0,   311,   313, 
     1792     676,   315,   316,   317,   416,   550,     0,     0,   554,   546, 
     1793       0,   558,   561,   878,   883,   884,   875,     0,   881,     0, 
     1794     854,     0,     0,   283,     0,   239,     0,   280,   274,   388, 
     1795       0,   354,   333,   388,     0,   358,   388,     0,   448,   461, 
     1796     467,     0,     0,   478,   674,     0,     0,   715,     0,   732, 
     1797       0,     0,    32,    33,    91,    71,    94,   257,   258,   254, 
     1798     256,   255,   230,   224,     0,     0,    27,    63,    65,    62, 
     1799     536,    28,   101,   653,     0,     0,   759,     0,     0,   971, 
     1800     972,     0,   935,   930,   789,     0,     0,   568,   569,   576, 
     1801     565,     0,   582,     0,     0,   835,   824,     0,   846,   841, 
     1802     839,   920,     0,   911,     0,     0,     0,   593,   595,   596, 
     1803     590,   786,   968,   963,   773,     0,     0,   852,     0,   848, 
     1804     850,     0,     0,     0,   698,     0,   700,   689,     0,   777, 
     1805       0,   778,   803,     0,   797,   802,   795,   536,  1009,  1007, 
     1806       0,  1047,     0,  1022,  1027,  1038,  1038,     0,     0,   327, 
     1807       0,   455,     0,   493,   530,   723,   487,   483,     0,   382, 
     1808       0,   369,   374,     0,   377,   370,   380,   371,   384,   372, 
     1809     390,     0,   373,   392,   657,   379,   501,     0,   271,   262, 
     1810       0,   235,   233,     0,     0,   310,   551,   555,   559,     0, 
     1811       0,   877,   386,     0,   295,     0,   296,   285,     0,   297, 
     1812     291,     0,   396,   397,   395,     0,     0,   240,     0,     0, 
     1813     355,   359,     0,   451,   482,   480,   666,   717,     0,    31, 
     1814    1057,  1059,    30,  1061,    66,   529,    67,    72,  1056,    95, 
     1815      98,    96,   102,     0,     0,     0,     0,     0,     0,     0, 
     1816       0,     0,     0,     0,     0,     0,     0,     0,    55,     0, 
     1817       0,     0,    29,   745,   191,   953,     0,     0,   947,     0, 
     1818     574,   571,     0,     0,     0,     0,   581,   584,   586,   822, 
     1819     907,   906,   598,     0,     0,     0,     0,     0,     0,     0, 
     1820     873,     0,     0,   696,   699,   701,     0,   779,   800,   804, 
     1821    1000,     0,     0,  1029,     0,     0,     0,     0,   495,     0, 
     1822       0,   514,   389,   383,     0,     0,     0,     0,   378,   394, 
     1823     390,   509,     0,   314,   312,   560,     0,   882,     0,   288, 
     1824       0,     0,   294,     0,     0,   292,   298,   343,   346,   368, 
     1825     360,   362,   361,   302,   450,   388,     0,    64,    64,    64, 
     1826       0,    54,    60,    49,    39,    50,    51,    52,    48,    38, 
     1827      46,    47,    40,    45,    34,    35,    36,     0,     0,    53, 
     1828      56,    37,     0,    42,     0,    41,   980,   948,   979,   954, 
     1829     975,   978,   977,   974,   973,   931,   573,   572,   570,   566, 
     1830     583,     0,   599,   597,   591,   787,   964,   191,     0,   772, 
     1831     697,     0,   774,     0,  1023,     0,  1037,     0,     0,     0, 
     1832     724,     0,   375,   376,   379,   382,     0,   381,   385,   391, 
     1833     387,   393,     0,     0,   880,   299,   301,   300,     0,    74, 
     1834      61,    75,     0,     0,     0,    59,    57,    58,    44,    43, 
     1835       0,     0,   908,     0,   775,  1028,  1030,   244,   247,   328, 
     1836       0,   383,     0,   419,     0,   452,    72,    87,    76,    77, 
     1837      80,    79,    68,     0,    73,   949,   976,   809,     0,   485, 
     1838       0,     0,     0,    85,     0,    86,    70,   329,   420,   885, 
     1839      84,     0,    78,    81,     0,    83,     0,   886,    82 
    12981840}; 
    12991841 
     
    13011843static const yytype_int16 yydefgoto[] = 
    13021844{ 
    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 
     1845      -1,     1,    13,    14,    15,    16,    46,    17,    18,    33, 
     1846     279,  1304,  1305,  1492,  1599,  1581,  1306,  1661,  1307,  1577, 
     1847    1578,  1308,  1579,  1309,  1662,  1688,  1689,  1690,   337,  1311, 
     1848    1312,  1471,   338,    51,    52,    99,   100,   101,   169,   170, 
     1849     371,   372,   373,   369,   370,   908,   909,   910,   102,   171, 
     1850     172,   240,  1224,  1225,   241,   974,   173,   104,   555,  1084, 
     1851     242,    19,    20,    44,    68,    67,    70,    72,    71,    69, 
     1852     214,   215,   243,   244,   673,   414,   245,   246,   416,   977, 
     1853    1275,   221,   222,   223,   400,   247,   248,   106,   309,   107, 
     1854     292,   293,   478,   479,   997,   998,   763,   514,   515,   516, 
     1855     517,   761,  1037,  1038,  1041,  1042,  1265,  1433,  1565,  1566, 
     1856     729,   730,   249,   250,   731,  1237,  1238,  1239,   251,   405, 
     1857     252,   681,   406,   407,   408,  1199,  1200,   108,   109,  1048, 
     1858     519,   520,   521,   775,  1269,  1270,   778,   779,   788,   780, 
     1859    1450,  1451,   732,   110,  1050,  1273,  1400,  1401,  1402,  1403, 
     1860    1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,  1412,  1413, 
     1861    1445,   111,   522,   311,   524,   525,   112,   719,   492,   493, 
     1862     295,   296,   733,   297,   298,   485,   486,  1001,   734,  1007, 
     1863    1233,   735,   736,   113,   114,  1055,   786,  1276,  1575,   115, 
     1864     272,  1207,   694,   695,   116,   117,  1056,   286,   789,   790, 
     1865     791,   792,    53,   119,   794,   531,   532,  1060,  1061,   120, 
     1866    1214,   988,   989,   121,   275,   276,   458,  1208,   697,   122, 
     1867     288,  1217,   475,   793,   494,   994,   713,   714,  1215,   253, 
     1868     535,   124,   846,  1127,  1128,   620,   892,   893,  1616,   890, 
     1869     125,   510,   126,   321,   127,   499,   488,   128,   129,   130, 
     1870     748,   749,  1026,   750,   174,   578,  1504,  1096,  1327,  1328, 
     1871    1617,  1501,   849,   850,   851,  1098,  1331,  1332,  1333,  1334, 
     1872    1065,   175,   599,  1515,   904,  1139,  1348,  1349,   254,   255, 
     1873     256,   257,   258,   424,   427,   259,   260,   446,   261,   447, 
     1874     262,   263,   264,   265,   266,   449,   451,   454,   267,  1099, 
     1875    1100,   268,   511,   352,  1415,  1205,   362,   363,   364,   365, 
     1876     176,   177,   318,   543,   544,   545,   546,  1242,   538,   539, 
     1877    1243,   178,   179,   382,   636,   934,   180,   637,   638,   573, 
     1878     935,  1163,  1164,   704,   322,   323,   181,   134,   135,   557, 
     1879     136,   280,   464,   324,   558,   559,   137,   138,   560,   822, 
     1880     139,   561,   562,  1085,   340,   182,   183,   640,   641,   939, 
     1881     940,   184,   642,   941,  1171,   185,   186,   385,   386,   187, 
     1882    1516,  1094,   387,   648,   947,  1179,   645,   943,  1175,  1176, 
     1883    1177,   188,   189,   190,   191,   192,   366,   621,   622,   623, 
     1884     193,   579,  1337,   863,   864,  1101,   894,   194,   580,   870, 
     1885     871,   195,   196,   197,   624,   625,   626,   627,  1155,  1254, 
     1886    1029,  1030,  1031,  1257,  1258,  1558,   198,   596,   597,   199, 
     1887     588,   589,   200,  1344,  1621,   350,   884,   885,   375,    21, 
     1888     328,   150,    22,    66,   570,  1499,  1091,  1323,   151,   329, 
     1889     330,   331,    54,   326,    55,  1321,  1670,   567,  1607,    23, 
     1890      56,    24,    65,   605,   606,  1517,  1144,  1353,   840,  1089, 
     1891    1319,  1608,  1609,  1610,  1611,   526,   143,   283,   284,   144, 
     1892     470,   471,   270,   692,   201,   389,   948,   651,  1380,   202, 
     1893     630,   271,   953,   954,   955,    25,    26,    27,    28,    29, 
     1894     655,  1532,   207,   958,  1383,  1384,   657,  1635,  1189,    30, 
     1895      31,   654,   205,   659,  1533,  1191,   391,   653,   959,   960, 
     1896     961,   203,   152,   568,   346,  1081,  1576,   601 
    13241897}; 
    13251898 
    13261899/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
    13271900   STATE-NUM.  */ 
    1328 #define YYPACT_NINF -845 
     1901#define YYPACT_NINF -1394 
    13291902static const yytype_int16 yypact[] = 
    13301903{ 
    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 
     1904   -1394,  1431, -1394, -1394, -1394,   -49,   -36, -1394, -1394, -1394, 
     1905      39,   837, -1394, -1394,   155,   218, -1394, -1394, -1394, -1394, 
     1906     855, -1394,   194, -1394,   194,   189,   624, -1394, -1394,   194, 
     1907   -1394,   194, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1908   -1394, -1394, -1394,   101,   233,   268, -1394, -1394, -1394,   869, 
     1909   -1394, -1394,  4057,   229,   194, -1394,   512,  2546,   303,   355, 
     1910   -1394, -1394,  2546,  2546, -1394,   188,   188,    86,    86,    86, 
     1911      86,    95,    86,   132, -1394, -1394, -1394, -1394, -1394, -1394, 
     1912     188,   361, -1394, -1394,    98,   296,   421,   598, -1394, -1394, 
     1913      98,   109, -1394, -1394,   800, -1394,   658, -1394,   434, -1394, 
     1914    4057, -1394, -1394,   313,   697,   495, -1394, -1394, -1394,   549, 
     1915     422, -1394, -1394, -1394,   604, -1394, -1394,   625,   651, -1394, 
     1916   -1394, -1394, -1394,   -18,   764, -1394,   615, -1394, -1394, -1394, 
     1917   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1918   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394,   691, -1394, 
     1919   -1394, -1394,   892,   667,   669,  1351,   432,   -53,   475,   674, 
     1920     676,   683, -1394,  3782,  3837,   687,   690,  3574,   812,   731, 
     1921   -1394,  4247, -1394,  1042, -1394, -1394, -1394, -1394, -1394, -1394, 
     1922   -1394, -1394, -1394, -1394, -1394, -1394, -1394,   827, -1394, -1394, 
     1923   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1924   -1394, -1394,   709, -1394, -1394,   716, -1394,   729,   731,   731, 
     1925     155,   155,   700,  3103, -1394, -1394, -1394, -1394, -1394,   411, 
     1926    1061, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1927   -1394,  3867, -1394, -1394, -1394,   727,   730,  3882, -1394,    87, 
     1928     927, -1394, -1394, -1394,   760, -1394, -1394,   495, -1394,    82, 
     1929   -1394, -1394,  3867, -1394, -1394,   932, -1394,   756,   253,  1456, 
     1930     951, -1394, -1394,   947,   949,   781,  2103, -1394, -1394, -1394, 
     1931   -1394,   768,   769,   155, -1394,   103, -1394, -1394,   155,   322, 
     1932     188,   783, -1394,   118, -1394, -1394,   786,   789,   610,   155, 
     1933     188,   699,   790,   433,   487,   130,   608, -1394, -1394, -1394, 
     1934   -1394,    13, -1394, -1394,  3574,  3585,   188,   967,  3882,   657, 
     1935     210, -1394,   795,   421,   421,    14,  3913,  3882,   843,  3882, 
     1936    3882,   798, -1394,  4169,   409,   834,   263, -1394, -1394, -1394, 
     1937     895, -1394, -1394, -1394,  3882,  3882,   336,   434, -1394, -1394, 
     1938     188,   188,   155,   188, -1394, -1394, -1394, -1394, -1394, -1394, 
     1939     811,  3434, -1394,   188,  3464,   188, -1394,   819,   155, -1394, 
     1940   -1394, -1394, -1394, -1394, -1394, -1394,   188,   362,   188, -1394, 
     1941   -1394, -1394,  4270, -1394, -1394, -1394,  3882,  3133,  3133,  3585, 
     1942   -1394,  1014,   556,   918,    -5,    76, -1394, -1394,   841,   188, 
     1943   -1394, -1394, -1394, -1394, -1394, -1394,  1031,   846,   132, -1394, 
     1944   -1394,  1032,  1038,   112,  3867,   898,  1048, -1394, -1394, -1394, 
     1945     644,   644,   482,   871, -1394,   879,   888,  1456,   874,   132, 
     1946     132, -1394,   868, -1394,  1456, -1394, -1394,  1456, -1394, -1394, 
     1947    1456,   901,   756, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1948   -1394, -1394, -1394, -1394, -1394, -1394,  2103,  2103, -1394,  3882, 
     1949   -1394,  3882, -1394, -1394,  3882, -1394,   882,   887,   697,   361, 
     1950     155,   886, -1394, -1394,  1087,   155,   118,   783,   155, -1394, 
     1951     160, -1394,  1073, -1394,   906,   908, -1394,   155,  1101, -1394, 
     1952   -1394,   188, -1394,   913, -1394,  1105, -1394, -1394, -1394, -1394, 
     1953   -1394, -1394, -1394,   169,   800,   800,   762,    98,    98,  1119, 
     1954     155,   188, -1394,   114, -1394, -1394, -1394,   195,   155,  3882, 
     1955     916,  1113, -1394,   341,   952,   723, -1394, -1394,  1850,   933, 
     1956     972,  1126,   188, -1394,  1128, -1394, -1394,   944,   158, -1394, 
     1957     948,   201, -1394, -1394,    93,   946, -1394, -1394, -1394, -1394, 
     1958     188,  1146, -1394,   115,   134, -1394, -1394,   697,   188,   957, 
     1959     819, -1394, -1394,    98,  1149,  1043,  4345, -1394, -1394, -1394, 
     1960   -1394,   -25, -1394,   331, -1394,  1025, -1394,   969,   188,   979, 
     1961   -1394, -1394, -1394,   968,   971,   155,   155,   155,   819,  3218, 
     1962    3519,  2975,  3882,   -53,   697,   697,   874, -1394,   137, -1394, 
     1963     155,  3882,   -53,   697,   697, -1394,   138, -1394,   155,   819, 
     1964   -1394,   147,   155,   970,   555, -1394,   987, -1394,   980, -1394, 
     1965    3882,  3639,  3585,   982,   -53,   -53,   -53,   697, -1394, -1394, 
     1966   -1394, -1394, -1394, -1394,   161, -1394, -1394, -1394,   168,   207, 
     1967     440,  1060,   697, -1394, -1394, -1394,  1137, -1394, -1394,   984, 
     1968     803, -1394, -1394, -1394, -1394,   442,   988, -1394, -1394, -1394, 
     1969   -1394,  3882,   155,    83,   188,    83,   996, -1394,  1000, -1394, 
     1970    3882, -1394,   990,   132,  3882,  3882, -1394,  1187,   874, -1394, 
     1971    3867, -1394, -1394, -1394, -1394,   234,  1017, -1394, -1394, -1394, 
     1972   -1394, -1394, -1394, -1394, -1394,   756,   253,  1175, -1394,   947, 
     1973     949, -1394,  3882,  1189,   171, -1394,   496,  1195, -1394, -1394, 
     1974    1007, -1394, -1394,  3882, -1394,  3882,   155, -1394,   786,   155, 
     1975     819,  1183,  1013,  1204, -1394,   699,   155,  1018,   487,   188, 
     1976     800, -1394, -1394,  1015, -1394,  1191, -1394, -1394,   176, -1394, 
     1977    1021, -1394, -1394,   710, -1394,  1191, -1394,  1194,   534, -1394, 
     1978     155,   188,   155,   188,  1176,   -53,  3882,   125,   174, -1394, 
     1979   -1394,   116, -1394,   155,  3960,   155,   188, -1394,  3882,   659, 
     1980   -1394,   819,   485, -1394, -1394, -1394, -1394,  1023, -1394,  1024, 
     1981   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394,  1215, -1394, 
     1982    1026, -1394,  1850,   155,   795,  1027,  1218, -1394, -1394, -1394, 
     1983    1219, -1394, -1394, -1394,   188,  1033,   549,   155,  1034,   155, 
     1984    3882,  3882, -1394,  3882,  1077, -1394,   188,   155, -1394, -1394, 
     1985     155,   188,  1062,   501,  1036,  3989,  1039,  1206, -1394, -1394, 
     1986   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     1987   -1394, -1394, -1394, -1394, -1394,   834, -1394, -1394,  1095, -1394, 
     1988    1084,  1236,   155,  1130,   476, -1394, -1394, -1394, -1394,  1239, 
     1989   -1394,  1054,  3882,  3882,  3882,  3882,  3882,  1245,  3882,   -53, 
     1990    3882,   697, -1394,   193, -1394,  1246,  3882,   -53,   697, -1394, 
     1991     197, -1394,  3882,  1251,   697,   697,   697,   697,  3882,   697, 
     1992     -53,   697,   697, -1394,   200, -1394, -1394, -1394, -1394, -1394, 
     1993   -1394, -1394, -1394, -1394, -1394,  3434,   188, -1394, -1394, -1394, 
     1994   -1394,  3464,   188, -1394,  1254,   819, -1394,  3882, -1394,   976, 
     1995   -1394, -1394, -1394,  1228,  2759, -1394, -1394, -1394, -1394, -1394, 
     1996   -1394, -1394, -1394, -1394, -1394,  3133,  3650,   425,   909,   155, 
     1997   -1394, -1394,  3882,  3882,   864, -1394,  3882,   505, -1394,   645, 
     1998   -1394, -1394, -1394,  1555,   188,   155, -1394,   188,   188,    87, 
     1999    1255, -1394, -1394,   202, -1394, -1394, -1394, -1394, -1394,  1065, 
     2000    1260, -1394,   155,  1071,  1235,  1238,  1075, -1394,   203,   205, 
     2001    1076,  3867, -1394, -1394, -1394, -1394, -1394,  1080,   211,  3882, 
     2002     887, -1394,   697,  3882,  1082,  1274, -1394, -1394,  1276, -1394, 
     2003   -1394, -1394, -1394,   908,   567, -1394, -1394,   212, -1394,   182, 
     2004   -1394,  1278, -1394,   155, -1394,   132,   579, -1394, -1394,  3697, 
     2005     762, -1394, -1394, -1394, -1394,   155,   155,  3882,  1282, -1394, 
     2006   -1394,  3734,  1119, -1394,  1634,  3882, -1394,  3960, -1394,   258, 
     2007   -1394, -1394,   155, -1394, -1394,  1094, -1394,   353, -1394, -1394, 
     2008    1097,   266, -1394,   188,   155, -1394, -1394,   933,   188, -1394, 
     2009    1270, -1394, -1394, -1394,  1102,   188,   188,   158,   155,  1272, 
     2010     214, -1394, -1394, -1394, -1394, -1394, -1394,  1291, -1394,  1292, 
     2011   -1394,   697,   155,   155,    98,   188,   155,  3882,  2901,  2425, 
     2012    3379, -1394,   819,  3882,  1839, -1394,   834, -1394,   143, -1394, 
     2013   -1394,  1107,   155, -1394,   188,   414,  1108,  3882, -1394, -1394, 
     2014   -1394, -1394, -1394, -1394, -1394, -1394,  3882, -1394, -1394, -1394, 
     2015   -1394,  3218, -1394,  3882, -1394, -1394, -1394,  3519,   188, -1394, 
     2016     697,  1111, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     2017   -1394, -1394,  3294, -1394, -1394,   155, -1394,   155,   445,  1115, 
     2018   -1394,  1121, -1394, -1394,  1133,   188, -1394,  1592,   350, -1394, 
     2019     155,   258,  3960,   155, -1394,   318, -1394, -1394,   318,  1123, 
     2020    1132,   577,   613, -1394, -1394,   556,  1135,   188,   155,   623, 
     2021   -1394, -1394, -1394,  3882, -1394,   220, -1394,  1295,   155,   188, 
     2022     155,   155,  3882,  3882, -1394, -1394,    83,  1301, -1394,  1107, 
     2023   -1394,  1107, -1394,  1242, -1394,  1264, -1394, -1394,   182,  1139, 
     2024    1334, -1394, -1394, -1394, -1394, -1394, -1394,   188,   225, -1394, 
     2025    1150, -1394,  3882,   819,   364,  1681, -1394,   188,   610,  1018, 
     2026     188,  3882,   234,   540, -1394, -1394, -1394, -1394, -1394, -1394, 
     2027   -1394, -1394, -1394, -1394, -1394, -1394,  1335,   240, -1394, -1394, 
     2028    1144, -1394, -1394, -1394, -1394, -1394,  3882,   -53, -1394, -1394, 
     2029    3882,  1342, -1394,   874, -1394, -1394, -1394,  1345, -1394,  3960, 
     2030     155,  1923,   659, -1394,  1923,  1270,   819,   155,   155,  1681, 
     2031     696, -1394,   155,  1681,   411,   105,  1681,  1160,   155,   155, 
     2032   -1394,  1166,  1033, -1394, -1394,  3882,   188,   155,   188,   155, 
     2033    1164,  3882, -1394, -1394, -1394, -1394, -1394,   582,   592,   634, 
     2034     744,   865,   444,   562,  1165,  3882,  1167, -1394,   697,  1181, 
     2035     491,  1188,   870,  1880,   243,  1186, -1394,  1378,  1237,  1381, 
     2036   -1394,   188, -1394, -1394,   155,   697,  1382,  1383, -1394, -1394, 
     2037   -1394,   246, -1394,  3882,  1384, -1394, -1394,   188, -1394, -1394, 
     2038     155, -1394,  3960, -1394,   188,   697,  1387, -1394,  1390, -1394, 
     2039   -1394, -1394, -1394, -1394,   155,  3882,   -53,   155,   909,   155, 
     2040     155,  1293,   650,   188,   155,   188,   155,   556,  1296,   155, 
     2041     188,   155, -1394,  1555, -1394,  3882,   155,   434, -1394, -1394, 
     2042     188, -1394,  1201, -1394, -1394, -1394, -1394,  1393,  1395, -1394, 
     2043    3882,   155,   697, -1394, -1394,  1392, -1394,   155,  1385, -1394, 
     2044    1209,  1402, -1394,  1405, -1394,  1403, -1394,  1407, -1394, -1394, 
     2045    3882,  1396,  1408, -1394, -1394,  1412,   155,   908, -1394,   155, 
     2046    1415, -1394, -1394,  3913,  3913, -1394, -1394, -1394, -1394,  3882, 
     2047    3960, -1394, -1394,  1226,  1419,  1420,  1407, -1394,  1229,   121, 
     2048   -1394,  1231, -1394, -1394, -1394,  1232,  1233, -1394,  3882,   533, 
     2049   -1394, -1394,  1234, -1394, -1394, -1394,   155,   155,   467, -1394, 
     2050   -1394, -1394, -1394, -1394, -1394,  1007, -1394,   108, -1394, -1394, 
     2051    1241, -1394, -1394,  2513,  3882,  3882,  3882,  3882,  3882,  3882, 
     2052    3882,  3882,  3882,  3882,  3882,  3882,  3882,  3882,  2329,  3882, 
     2053    2559,  2599, -1394, -1394,  1839,  1244,  1247,  1248,   155,   188, 
     2054   -1394, -1394,   697,    50,   188,  3882, -1394, -1394, -1394,   155, 
     2055    1427,   155, -1394,   697,   262,   188,   188,   188,  1243,  1433, 
     2056   -1394,   188,   188,   155,   155,   155,   682,   155, -1394, -1394, 
     2057     155,  1249,   188, -1394,   188,  3882,   132,  1439, -1394,  3882, 
     2058    1252, -1394,  3882,  3771,  2016,  1440,  1441,  1428, -1394, -1394, 
     2059    3882,  1204,  3882, -1394, -1394, -1394,  1445, -1394,  1257, -1394, 
     2060    3882,  3882, -1394,  3882,   533, -1394, -1394, -1394, -1394, -1394, 
     2061   -1394, -1394, -1394, -1394, -1394,  1681,    -1, -1394, -1394, -1394, 
     2062    3882, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     2063   -1394, -1394, -1394, -1394, -1394, -1394, -1394,  3882,  3882, -1394, 
     2064   -1394, -1394,  3882, -1394,  3882, -1394,  1237, -1394, -1394,  1450, 
     2065   -1394, -1394, -1394, -1394, -1394,   155, -1394, -1394, -1394,   155, 
     2066   -1394,   188, -1394, -1394,   155,   155,   155,  1839,   -53,   155, 
     2067     155,   188,   155,  1262,   155,   188,   155,  1269,  1273,  3882, 
     2068   -1394,  1432, -1394, -1394, -1394, -1394,  1454, -1394, -1394, -1394, 
     2069   -1394, -1394,   247,  3882, -1394, -1394, -1394, -1394,  1275,  1167, 
     2070    1280,  2127,  1283,  1286,  1287, -1394, -1394, -1394, -1394, -1394, 
     2071     188,  1244,   155,   188,   155, -1394,   155, -1394, -1394,  1463, 
     2072     819, -1394,  3882, -1394,  1471, -1394, -1394,  2220,  1481, -1394, 
     2073   -1394,  1482, -1394,   697, -1394,   155, -1394,   155,  3882, -1394, 
     2074    1299,  3882,  3882,  1483,  2127,  3882, -1394, -1394, -1394,  1487, 
     2075   -1394,  3882, -1394,  1492,  3882, -1394,  3882, -1394, -1394 
    14372076}; 
    14382077 
     
    14402079static const yytype_int16 yypgoto[] = 
    14412080{ 
    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 
     2081   -1394, -1394, -1394,   635, -1394,  1436,   548, -1394, -1394, -1394, 
     2082   -1394, -1394, -1394, -1394, -1394, -1394,   -79, -1394, -1394, -1394, 
     2083   -1394, -1394, -1394, -1394,  -666, -1394,  -206, -1394,   -11, -1394, 
     2084   -1394, -1394, -1394, -1394, -1394, -1394, -1394,  1399,   857, -1394, 
     2085   -1394, -1394,   119,   735, -1394, -1394, -1394,   595, -1394,   -68, 
     2086    -892,  -632, -1394, -1394,   499,   500,   -42,    34, -1394,   627, 
     2087    -217,   -80, -1394,  1488, -1394, -1394, -1394, -1394, -1394, -1394, 
     2088    1050, -1394,  -205,  -183,  1096,  -448,  -195, -1394, -1394, -1394, 
     2089     244, -1394, -1394, -1394,   236,   -37, -1394, -1394, -1394, -1394, 
     2090   -1394, -1394, -1394,   796, -1394,   293, -1394, -1394, -1394,   998, 
     2091   -1394, -1394, -1394,   252, -1394,   249, -1394,   256, -1394, -1394, 
     2092    -972,  1510, -1394,  1103,   516, -1394,   100,   102, -1394,  1277, 
     2093   -1394, -1394,  1124,  -598, -1394, -1394, -1394, -1394, -1394, -1394, 
     2094   -1394, -1394, -1394,   748, -1394, -1394, -1394,   486, -1394, -1394, 
     2095   -1394, -1394,  -971,  -254, -1394, -1394, -1189,  -438, -1112, -1170, 
     2096   -1107, -1394,   -10,  -413,   -13, -1394, -1394,   131, -1394,    -4, 
     2097   -1394, -1394, -1394, -1394, -1394,   763, -1394, -1394, -1394, -1394, 
     2098    -415, -1394, -1394,  1045,  -247, -1394,   831, -1394,   541,  -603, 
     2099   -1394,   547, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     2100   -1394, -1394, -1394,   574, -1394, -1394, -1394,   -29, -1394, -1394, 
     2101     506, -1394,     9, -1394, -1394, -1394,   761, -1394,   276, -1394, 
     2102   -1394,  -116,   356, -1394, -1394,  1109, -1394, -1394,  -939, -1394, 
     2103   -1394, -1394, -1394,  -276,  -472, -1394,   153,   578, -1394,  1178, 
     2104   -1394,  1964,  -452,   694, -1394, -1394,  -821, -1394,  -498, -1394, 
     2105    -456,  -292,  -289, -1394,  1028, -1394, -1394,  -249,  -285, -1394, 
     2106   -1394,   551, -1394, -1394,  1030, -1394, -1394, -1394, -1394,    74, 
     2107      71,   248, -1394,   493,  -566, -1394, -1394,    84, -1394,  -251, 
     2108     259,  1035, -1394, -1394, -1394, -1394, -1394,    80, -1394, -1394, 
     2109     385,     1,  1151, -1394, -1394,  -193,  1148, -1394,  1330, -1394, 
     2110    1152,  1147,  1145, -1394, -1394, -1394, -1394, -1394,  1529,  -755, 
     2111    -140,  -163,   842,   -72,  -936, -1047, -1394, -1394,  -200, -1394, 
     2112     -44,   332, -1394, -1394, -1394,   801,   807,  -508,   806, -1394, 
     2113    1297,  -371,  -375,  -861, -1394, -1394, -1394, -1394,  -813,  -820, 
     2114   -1394, -1394, -1394, -1394,  -166, -1394,   343, -1394, -1394,  1051, 
     2115   -1394,   -74,  -694,  -106,  1290, -1394, -1394, -1394, -1394, -1394, 
     2116   -1394, -1394,  1056, -1394, -1394, -1394, -1394, -1394,  -558, -1394, 
     2117   -1394, -1394, -1394, -1394, -1394,  1055, -1394, -1394,  1240, -1394, 
     2118   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394,   250, 
     2119   -1100, -1394,  1063, -1394,    -3, -1394, -1394,  1016,   507, -1394, 
     2120    1074, -1394, -1394, -1394,   521,   765,  1040,  1079, -1394, -1394, 
     2121     519,  1090,  1099,   -12,  1281,  1020,   725,  -234,   724,  -850, 
     2122    -856,  -963,  -859, -1394,   221, -1394,  1104, -1394,   757,  1110, 
     2123   -1394,   770,  1112, -1394, -1394, -1394, -1394,   531,   466, -1394, 
     2124   -1394, -1394, -1394, -1394, -1394, -1394, -1394,  -434, -1394, -1394, 
     2125   -1394,  1337, -1394, -1394,  1616, -1394, -1394, -1394, -1394, -1394, 
     2126     681, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, 
     2127   -1394, -1029, -1394,     0, -1394, -1393, -1394,  1394,  1210, -1394, 
     2128   -1394,   973,  -479, -1394,  1131, -1394, -1394, -1394, -1394, -1394, 
     2129   -1394,  1058,   994,   497,   511, -1394, -1394,  1663,  -129, -1394, 
     2130   -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394, -1394,  -114, 
     2131   -1394, -1394, -1394, -1394,   309, -1394, -1394, -1394,  1052, -1394, 
     2132     517,   468, -1394, -1394, -1394, -1394, -1394,   616 
    14632133}; 
    14642134 
     
    14662136   positive, shift that token.  If negative, reduce the rule which 
    14672137   number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
    1468 #define YYTABLE_NINF -542 
     2138#define YYTABLE_NINF -1015 
    14692139static const yytype_int16 yytable[] = 
    14702140{ 
    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, 
     2141      43,   269,   699,   403,   361,   487,   698,   635,   131,   490, 
     2142     103,   634,   476,   397,   148,   105,   290,   739,   383,   950, 
     2143     105,   720,  1146,   332,  1002,   105,   105,   360,   549,   310, 
     2144     325,  1093,   413,   903,  1230,  1232,   399,   480,   333,   806, 
     2145     141,    98,   415,  1209,   417,   489,    98,   484,   726,   140, 
     2146     361,    98,    98,   428,  1122,  1123,   131,   105,   103,  1320, 
     2147     950,   118,   239,   105,  1255,   430,   541,   105,  1157,  1157, 
     2148    1151,   507,   972,  1372,  1165,   429,   431,  1156,  1156,   721, 
     2149    1441,   312,   938,    98,  1446,   420,   889,  1452,   141,    98, 
     2150     149,  1435,  -181,    98,  1435,   899,  -520,   140,  1102,  1103, 
     2151    1104,   277,  1612,   374,   956,  1109,   459,   212,  1295,   118, 
     2152    1448,  -537,   291,  1160,    89,   665,   219,  -194,   801,   924, 
     2153    1024,   467,     4,   384,   497,  1008,  1563,     4,   316,  -537, 
     2154    1021,   643,  1012,   491,   105,    32,   225,   803,  -194,    97, 
     2155     895,   901,     4,   226,   553,   629,   413,  1325,   269,   413, 
     2156     905,   227,   228,   229,  -408,    34,   415,   529,   417,   415, 
     2157      98,   417,     8,   708,   925,   506,   554,     8,  1256,   700, 
     2158    1317,   925,   491,   701,   980,   317,   473,  1022,  -194,    47, 
     2159     474,   662,     8,   498,     4,   821,    11,  -727,   644,  1255, 
     2160      42,   343,  1316,  -409,  -408,  1326,  1111,  1006,   754,   413, 
     2161    1117,   332,   678,  1132,   796,  1183,  1193,   646,  1195,   415, 
     2162     928,   417,     4,   518,  1183,  1219,   333,  1282,    58,     4, 
     2163      59,   649,   676,  1373,     8,     4,   412,   976,  1392,   513, 
     2164      35,     4,   501,  -409,   431,   530,   512,   506,   506,   506, 
     2165    1546,   682,    49,  1424,   682,   542,   905,   431,   512,  1505, 
     2166    1682,  1449,     8,   227,   228,   374,   230,  1290,   990,     8, 
     2167     432,  1259,  -537,  -265,   776,     8,   565,  1564,   463,  1266, 
     2168    1025,     8,   227,   228,   957,  1529,   421,  1201,  1612,   213, 
     2169     302,   231,     4,    98,   527,   528,   105,  -520,   220,   847, 
     2170       4,   724,  -520,  1256,    73,    12,  1431,   232,   233,  1341, 
     2171      12,   727,  1367,   738,   374,  1004,   666,   234,  -194,   802, 
     2172     847,  -194,    98,   725,   411,    12,    92,    93,   302,    95, 
     2173     235,  1358,     8,    42,   236,   237,   269,  -408,   804,   848, 
     2174       8,   896,   902,   238,  1318,   105,   752,   569,   633,   504, 
     2175     412,   906,     4,   412,   759,   105,   600,   269,   269,    42, 
     2176     848,  1335,    48,  1356,  -472,   926,  1262,    12,  1338,  1345, 
     2177    -761,    98,   927,  1110,  -336,   981,  -409,   491,  1023,   308, 
     2178    1116,    98,  1435,   972,  1646,   302,  1121,  1236,   918,  1124, 
     2179    1546,  1170,     8,  1130,   132,    12,  1658,  1112,     4,   146, 
     2180    1435,  1118,    12,   412,  1133,   133,  1184,  1194,    12,  1196, 
     2181    -761,  1570,   656,   658,    12,  1203,  1220,  1346,  1283,   239, 
     2182     603,   504,   504,   504,  1374,   304,   632,   566,   432,  1393, 
     2183     305,   105,   235,   741,   743,    42,   236,    74,     8,   487, 
     2184    1642,   685,   132,   490,  1425,   513,  1643,  1493,   461,   462, 
     2185    1506,  1683,   551,   133,  -196,   236,   968,   696,  1642,     4, 
     2186     281,   835,   306,  1538,  1643,    12,     4,   105,   105,   728, 
     2187     966,   480,    75,    12,   969,   970,     4,  1255,  1614,   489, 
     2188     975,   484,   506,   497,  1548,   911,   942,  1571,  1572,   811, 
     2189     727,   428,   738,    98,    98,   723,  1510,   282,   747,     8, 
     2190     912,   607,   429,   430,   204,   760,     8,   361,    89,  1157, 
     2191       4,   361,   361,   429,  1500,  1039,     8,  1263,  1520,     4, 
     2192     105,  1325,   820,    42,   817,    12,  1655,   787,   142,   105, 
     2193     145,   838,  1218,    97,  1500,     4,   699,   739,   776,     4, 
     2194     698,   739,   498,  -761,    92,    93,    98,    95,   915,    98, 
     2195       8,    42,  1345,  1014,   830,    98,   206,   105,   105,     8, 
     2196    1067,   950,  1069,   825,   274,  1013,   105,   105,  1229,  1326, 
     2197     825,    12,   726,  1286,   230,     8,   142,   696,   145,     8, 
     2198     491,  1256,  1347,    98,    98,   285,   285,   552,   553,    47, 
     2199     105,    64,    98,    98, -1013,  -506, -1013,   482,   696,  -506, 
     2200    1346,   269,  1656,  1657,   153,   105,    76,   149,   227,   228, 
     2201     554,     4,  1146,   236,   398,    42,    98,  1644,  1548,    92, 
     2202      93,   495,    95,  -462,  1548,   234,    42,   887,  1152,   930, 
     2203     287,    98,    12,   341,   483,  1644,   898,   302,   473,    12, 
     2204     496,    42,   474,   944,    89,   -93,    42,     4,   -93,    12, 
     2205     949,     8,     9,    89,   410,  1093,   504,     4,   921,   922, 
     2206     923,    92,    93, -1014,    95, -1014,  -235,   230,    42,    97, 
     2207      92,    93,   301,    95,   973,  -235,   344,    42,    97,    60, 
     2208     353,   355,   345,    12,     4,   302,  1043,     8,    42,    89, 
     2209     294,   949,    12,   105,  1467,  1468,   512,     8,   308,   302, 
     2210     -61,  1210,  1075,   700,  -926,  -536,  1167,   701,    12,   987, 
     2211     210,   211,    12,   230,    97,    57,     4,   999,   234,    98, 
     2212      62,     9,    63,  1010,     8,   273,   530,    92,    93,   278, 
     2213      95,    11,   235,    89,    42,   289,   236,    11,  1066,   542, 
     2214    1086,   542,  1011,  1005,   313,  1146,  1556,  -136,    60,  -536, 
     2215      92,    93,  1398,    95,   232,   233,     8,    42,    97,   639, 
     2216    1040,  1169,    48,   -92,   234,  1385,  1460,  1386,    82,    83, 
     2217    1034,   990,   411,    92,    93,   314,    95,   235,  1363,   319, 
     2218      42,   236,  1222,   -89,    12,  1172,   -89,   425,   426,  1019, 
     2219     911,   227,   228,   -90,  1105,   506,   -90,   452,   453,  1035, 
     2220     635,   342,  1236,   315,   634,   912,    11,  1036,    82,    83, 
     2221     633,  1228,   358,   327,  1365,   724,   847,   105,   320,   683, 
     2222      12,   415,   684,   738,  1370,   727,   367,   738,   -97,   -97, 
     2223      12,   -97,   413,  1434,   105,   -97,  1434,   725,   -97,    11, 
     2224    -275,   105,   415,    98,   417,   671,   672,   105,   105,   105, 
     2225     105,  1522,   105,   368,   105,   105,   848,    12,  1436,   847, 
     2226      98,  1436,  1464,  1442,  1443,  1444,  1472,    98,   587,   752, 
     2227     334,   595,   335,    98,    98,    98,    98,   347,    98,   348, 
     2228      98,    98,  1147,  1631,   384,   413,   349,   105,   632,    12, 
     2229     356,    92,    93,   357,    95,   415,   230,   417,    42,   848, 
     2230     105,   105,   395,  1108,  1140,    11,  -276,     5, -1013,     6, 
     2231   -1013,  1115,   388,    98,  1161,  1162,     7,   639,   937,   390, 
     2232     460,   512,  1663,  1664,  1129,   465,    98,    98,   468,   208, 
     2233     209, -1013,   392, -1013, -1013,   477, -1013,   410,  -100,  -100, 
     2234     411,  -100,   419,   269,  -222,  -100,   699,   234,  -100,   500, 
     2235     698,   508,  1417,   393,   394,   105,    92,    93,  1148,    95, 
     2236     235,   556,   563,    42,   236,   423,     9,   448,   450,   504, 
     2237    1198,   456,   457,   433,   434,   435,   436,   437,   438,   439, 
     2238     739,   696,   509,   728,   282,   575,   576,   469,   577,     9, 
     2239     472,   481,     9,    10,    92,    93,   523,    95,   590,   547, 
     2240     598,    42,   635,   294,   239,  1223,   634,   550,   239,   723, 
     2241    1288,   602,   552,   604,   581, -1013,    60, -1013,  1039,    60, 
     2242      42,   747,    36,    37,    38,    39,   412,  1422,   631,  1465, 
     2243      40,  1420,   639,  1465,   652,   542,    41,   727,    42,   738, 
     2244      36,    37,    38,    39,   105,   650,   660,   663,    40,   429, 
     2245     661,    11,  1147,   664,    41,  -233,   787,   105,   669,   -99, 
     2246     -99,   670,   -99,  -228,  1470,    93,   -99,    95,   361,   -99, 
     2247      98,    42,   675,     9,    11,   225,    77,    11,   677,  1310, 
     2248     680,   600,   226,    98,  -937,  -223,   691,  -938,   693,   703, 
     2249     227,   228,   229,   105,   696,   739,   862,   869,   883,   886, 
     2250      60,   399,   705,    92,    93,   710,    95,   711,   897,   712, 
     2251      42,   706,  1152,   700,   715,   709,   717,   701,   718,    98, 
     2252     757,   105,   440,   441,   442,   443,   716,   758,   216,   217, 
     2253     218,   633,   224,   744,   777,   762,   781,   696,   105,   782, 
     2254     226,   784,   740,   742,   401,   785,   753,    98,   227,   228, 
     2255     745,   795,   755,  1414,   304,   798,   444,   445,    11,   305, 
     2256     800,   808,   376,   812,    98,   402,   813,   783,  -137,   839, 
     2257     841,   843,   844,   907,   377,   845,   797,   378,   379,   913, 
     2258     932,  1377,   949,   919,   914,   799,   933,   936,   964,   946, 
     2259    1017,   306,   965,   807,   967,   230,   380,   226,   810,  1414, 
     2260     971,  -229,  1414,   439,   979,   227,   228,  1414,   982,   632, 
     2261     983,  1414,   987,   842,  1414,   991,   992,   993,  1005,   996, 
     2262     231,  1421,  1006,  1066,  1009,  -445,  1045,  1046,  1047,  1049, 
     2263    1053,  1054,  1057,  1071,  1059,  1063,   232,   233,   990,  1077, 
     2264     123,  1074,  1082,   381,   306,   123,   234,  1706,  1087,  1088, 
     2265     123,   123,  1095,   230,  1090,    92,    93,  1097,    95,   235, 
     2266    1106,  1113,    42,   236,   237,  1040,  1120,  1138,  1143,  1185, 
     2267    1182,  1066,   238,  1186,   929,  1187,  1188,  1190,   231,  1192, 
     2268    1197,   105,   299,   746,  1202,   105,  1211,  1212,   123,  1213, 
     2269     945,  1427,   299,  1221,   232,   233,  1246,  1261,   105,   962, 
     2270    1264,  1274,  1281,  1277,   234,  1284,  1285,    98,  1322,  1375, 
     2271     230,    98,  1330,    92,    93,  1342,    95,   235,   105,  1350, 
     2272      42,   236,   237,   305,    98,  1351,  1083,  1361,  1537,  1638, 
     2273     238,   105,   355,   633,  1352,   231,  1362,  1382,   377,  1368, 
     2274&nb