Changes in / [b5b0907:ea9b9d3]


Ignore:
Location:
src
Files:
5 added
50 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Jun 15 12:43:21 2015
    13 // Update Count     : 138
     12// Last Modified On : Thu Jun 11 13:22:39 2015
     13// Update Count     : 137
    1414//
    1515
     
    1919#include <list>
    2020
    21 #include "Parser/ParseNode.h"
    22 
    2321#include "SynTree/Type.h"
     22#include "SynTree/Declaration.h"
     23#include "SynTree/Statement.h"
    2424#include "SynTree/Expression.h"
    2525#include "SynTree/Initializer.h"
    26 #include "SynTree/Statement.h"
    2726
    2827#include "utility.h"
     
    629628        void CodeGenerator::handleStorageClass( Declaration *decl ) {
    630629                switch ( decl->get_storageClass() ) {
    631                   case DeclarationNode::Extern:
     630                  case Declaration::NoStorageClass:
     631                        break;
     632                  case Declaration::Extern:
    632633                        output << "extern ";
    633634                        break;
    634                   case DeclarationNode::Static:
     635                  case Declaration::Static:
    635636                        output << "static ";
    636637                        break;
    637                   case DeclarationNode::Auto:
     638                  case Declaration::Auto:
    638639                        // silently drop storage class
    639640                        break;
    640                   case DeclarationNode::Register:
     641                  case Declaration::Register:
    641642                        output << "register ";
    642643                        break;
    643                   case DeclarationNode::Inline:
     644                  case Declaration::Inline:
    644645                        // handled as special via isInline flag (FIX)
    645646                        break;
    646                   case DeclarationNode::Fortran:
     647                  case Declaration::Fortran:
    647648                        // not handled
    648                         output << "fortran ";
    649                         break;
    650                   case DeclarationNode::Noreturn:
    651                         // not handled
    652                         output << "_Noreturn ";
    653                         break;
    654                   case DeclarationNode::Threadlocal:
    655                         // not handled
    656                         output << "_Thread_local ";
    657                         break;
    658                   case DeclarationNode::NoStorageClass:
    659649                        break;
    660650                } // switch
  • src/GenPoly/Box.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:13:46 2015
    13 // Update Count     : 3
     12// Last Modified On : Tue May 19 07:31:41 2015
     13// Update Count     : 1
    1414//
    1515
     
    2626#include "ScrubTyVars.h"
    2727
    28 #include "Parser/ParseNode.h"
    29 
     28#include "SynTree/Declaration.h"
    3029#include "SynTree/Type.h"
    3130#include "SynTree/Expression.h"
     
    3332#include "SynTree/Statement.h"
    3433#include "SynTree/Mutator.h"
    35 
    3634#include "ResolvExpr/TypeEnvironment.h"
    37 
    3835#include "SymTab/Mangler.h"
    3936
     
    285282
    286283                ObjectDecl *Pass1::makeTemporary( Type *type ) {
    287                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, type, 0 );
     284                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, type, 0 );
    288285                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
    289286                        return newObj;
     
    365362                                        arg = new AddressExpr( arg );
    366363                                } else {
    367                                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
     364                                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
    368365                                        newObj->get_type()->get_qualifiers() = Type::Qualifiers();
    369366                                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
     
    436433                                makeRetParm( adapter );
    437434                        } // if
    438                         adapter->get_parameters().push_front( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 ) );
     435                        adapter->get_parameters().push_front( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 ) );
    439436                        return adapter;
    440437                }
     
    524521                        adapterBody->get_kids().push_back( bodyStmt );
    525522                        std::string adapterName = makeAdapterName( mangleName );
    526                         return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false );
     523                        return new FunctionDecl( adapterName, Declaration::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false );
    527524                }
    528525
     
    905902                                if ( adaptersDone.find( mangleName ) == adaptersDone.end() ) {
    906903                                        std::string adapterName = makeAdapterName( mangleName );
    907                                         paramList.push_front( new ObjectDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), makeAdapterType( *funType, scopeTyVars ) ), 0 ) );
     904                                        paramList.push_front( new ObjectDecl( adapterName, Declaration::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), makeAdapterType( *funType, scopeTyVars ) ), 0 ) );
    908905                                        adaptersDone.insert( adaptersDone.begin(), mangleName );
    909906                                }
     
    964961                        std::list< DeclarationWithType *>::iterator last = funcType->get_parameters().begin();
    965962                        std::list< DeclarationWithType *> inferredParams;
    966                         ObjectDecl *newObj = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0 );
    967 ///   ObjectDecl *newFunPtr = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
     963                        ObjectDecl *newObj = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0 );
     964///   ObjectDecl *newFunPtr = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
    968965                        for ( std::list< TypeDecl *>::const_iterator tyParm = funcType->get_forall().begin(); tyParm != funcType->get_forall().end(); ++tyParm ) {
    969966                                ObjectDecl *thisParm;
  • src/GenPoly/Specialize.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:14:42 2015
    13 // Update Count     : 5
     12// Last Modified On : Tue May 19 07:55:09 2015
     13// Update Count     : 4
    1414//
    1515
     
    1919#include "PolyMutator.h"
    2020
    21 #include "Parser/ParseNode.h"
    22 
     21#include "SynTree/Declaration.h"
     22#include "SynTree/Statement.h"
    2323#include "SynTree/Expression.h"
    24 #include "SynTree/Statement.h"
    2524#include "SynTree/Type.h"
    2625#include "SynTree/TypeSubstitution.h"
     
    9796                                        newEnv.applyFree( newType );
    9897                                } // if
    99                                 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false );
     98                                FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false );
    10099                                thunkFunc->fixUniqueId();
    101100
  • src/Makefile.am

    rb5b0907 rea9b9d3  
    1111## Created On       : Sun May 31 08:51:46 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Sat Jun 13 08:22:14 2015
    14 ## Update Count     : 17
     13## Last Modified On : Thu Jun  4 21:01:59 2015
     14## Update Count     : 15
    1515###############################################################################
    1616
     
    3838cfa_cpplib_PROGRAMS = cfa-cpp
    3939cfa_cpp_SOURCES = ${SRC}
    40 # need files Common/utility.h
    41 cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${srcdir}/Common
     40# need files Common/utility.h and Parser/lex.h
     41cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${srcdir}/Common -I${srcdir}/Parser
    4242
    4343CXXFLAGS = -g   # remove default -O2 to allow better debugging
  • src/Makefile.in

    rb5b0907 rea9b9d3  
    392392cfa_cpplibdir = ${libdir}
    393393cfa_cpp_SOURCES = ${SRC}
    394 # need files Common/utility.h
    395 cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${srcdir}/Common
     394# need files Common/utility.h and Parser/lex.h
     395cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${srcdir}/Common -I${srcdir}/Parser
    396396all: $(BUILT_SOURCES)
    397397        $(MAKE) $(AM_MAKEFLAGS) all-am
  • src/Parser/DeclarationNode.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:02:03 2015
    13 // Update Count     : 58
     12// Last Modified On : Sat Jun  6 23:29:13 2015
     13// Update Count     : 23
    1414//
    1515
     
    2121
    2222#include "TypeData.h"
    23 
    24 #include "SynTree/Declaration.h"
    2523#include "SynTree/Expression.h"
    2624
     25
    2726using namespace std;
    2827
    2928// These must remain in the same order as the corresponding DeclarationNode enumerations.
    30 const char *DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "" };
    3129const char *DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic" };
    3230const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary" };
    33 const char *DeclarationNode::modifierName[]  = { "signed", "unsigned", "short", "long" };
    34 const char *DeclarationNode::aggregateName[] = { "struct", "union", "context" };
     31const char *DeclarationNode::modifierName[] = { "signed", "unsigned", "short", "long" };
     32const char *DeclarationNode::tyConName[] = { "struct", "union", "context" };
    3533const char *DeclarationNode::typeClassName[] = { "type", "dtype", "ftype" };
    3634
     
    6563}
    6664
     65const char *storageClassName[] = {
     66        // order must correspond with DeclarationNode::StorageClass
     67        "extern",
     68        "static",
     69        "auto",
     70        "register",
     71        "inline",
     72        "fortran",
     73};
     74
    6775void DeclarationNode::print( std::ostream &os, int indent ) const {
    6876        os << string( indent, ' ' );
     
    7179        } else {
    7280                os << name << ": ";
    73         } // if
     81        }
    7482
    7583        if ( linkage != LinkageSpec::Cforall ) {
    7684                os << LinkageSpec::toString( linkage ) << " ";
    77         } // if
    78 
    79         printEnums( storageClasses.begin(), storageClasses.end(), DeclarationNode::storageName, os );
     85        }
     86
     87        printEnums( storageClasses.begin(), storageClasses.end(), storageClassName, os );
    8088        if ( type ) {
    8189                type->print( os, indent );
    8290        } else {
    8391                os << "untyped entity ";
    84         } // if
     92        }
    8593
    8694        if ( bitfieldWidth ) {
    8795                os << endl << string( indent + 2, ' ' ) << "with bitfield width ";
    8896                bitfieldWidth->printOneLine( os );
    89         } // if
     97        }
    9098
    9199        if ( initializer != 0 ) {
    92100                os << endl << string( indent + 2, ' ' ) << "with initializer ";
    93101                initializer->printOneLine( os );
    94         } // if
     102        }
    95103
    96104        os << endl;
     
    101109        if ( hasEllipsis ) {
    102110                os << string( indent, ' ' )  << "and a variable number of other arguments" << endl;
    103         } // if
     111        }
    104112}
    105113
     
    115123        if ( body ) {
    116124                newnode->type->function->hasBody = true;
    117         } // if
     125        }
    118126
    119127        if ( ret ) {
     
    121129                ret->type = 0;
    122130                delete ret;
    123         } // if
     131        }
    124132
    125133        return newnode;
     
    133141}
    134142
    135 DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
     143DeclarationNode *DeclarationNode::newStorageClass( StorageClass sc ) {
    136144        DeclarationNode *newnode = new DeclarationNode;
    137145        newnode->storageClasses.push_back( sc );
     
    169177}
    170178
    171 DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {
     179DeclarationNode *DeclarationNode::newAggregate( TyCon kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {
    172180        DeclarationNode *newnode = new DeclarationNode;
    173181        newnode->type = new TypeData( TypeData::Aggregate );
     
    176184        if ( newnode->type->aggregate->name == "" ) {
    177185                newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    178         } // if
     186        }
    179187        newnode->type->aggregate->params = formals;
    180188        newnode->type->aggregate->actuals = actuals;
     
    190198        if ( newnode->type->enumeration->name == "" ) {
    191199                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    192         } // if
     200        }
    193201        newnode->type->enumeration->constants = constants;
    194202        return newnode;
     
    323331                        } else {
    324332                                dst->forall = src->forall;
    325                         } // if
     333                        }
    326334                        src->forall = 0;
    327                 } // if
     335                }
    328336                if ( dst->base ) {
    329337                        addQualifiersToType( src, dst->base );
     
    333341                } else {
    334342                        dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers );
    335                 } // if
    336         } // if
     343                }
     344        }
    337345}
    338346         
     
    343351                        if ( ! type ) {
    344352                                type = new TypeData;
    345                         } // if
     353                        }
    346354                        addQualifiersToType( q->type, type );
    347355                        if ( q->type && q->type->forall ) {
     
    349357                                        type->forall->appendList( q->type->forall );
    350358                                } else {
    351                                         if ( type->kind == TypeData::Aggregate ) {
    352                                                 type->aggregate->params = q->type->forall;
    353                                         } else {
    354                                                 type->forall = q->type->forall;
    355                                         } // if
    356                                 } // if
     359                                        type->forall = q->type->forall;
     360                                }
    357361                                q->type->forall = 0;
    358                         } // if
    359                 } // if
    360         } // if
     362                        }
     363                }
     364        }
    361365        delete q;
    362366        return this;
     
    375379                        } else {
    376380                                dst->forall = src->forall;
    377                         } // if
     381                        }
    378382                        src->forall = 0;
    379                 } // if
     383                }
    380384                if ( dst->base ) {
    381385                        addTypeToType( src, dst->base );
     
    394398                                        dst->basic->modifiers.splice( dst->basic->modifiers.end(), src->basic->modifiers );
    395399                                        dst->basic->typeSpec.splice( dst->basic->typeSpec.end(), src->basic->typeSpec );
    396                                 } // if
     400                                }
    397401                                break;
    398402
     
    405409                                        if ( src->kind == TypeData::Aggregate ) {
    406410                                                dst->base->aggInst->params = maybeClone( src->aggregate->actuals );
    407                                         } // if
     411                                        }
    408412                                        dst->base->qualifiers.splice( dst->base->qualifiers.end(), src->qualifiers );
    409413                                        src = 0;
     
    415419                                        } else {
    416420                                                dst->forall = src->forall;
    417                                         } // if
     421                                        }
    418422                                        src->forall = 0;
    419423                                        dst->base = src;
    420424                                        src = 0;
    421                                 } // switch
    422                         } // switch
    423                 } // if
    424         } // if
     425                                }
     426                        }
     427                }
     428        }
    425429}
    426430
     
    435439                                        if ( o->type->kind == TypeData::Aggregate ) {
    436440                                                type->aggInst->params = maybeClone( o->type->aggregate->actuals );
    437                                         } // if
     441                                        }
    438442                                        type->qualifiers.splice( type->qualifiers.end(), o->type->qualifiers );
    439443                                } else {
    440444                                        type = o->type;
    441                                 } // if
     445                                }
    442446                                o->type = 0;
    443447                        } else {
    444448                                addTypeToType( o->type, type );
    445                         } // if
    446                 } // if
     449                        }
     450                }
    447451                if ( o->bitfieldWidth ) {
    448452                        bitfieldWidth = o->bitfieldWidth;
    449                 } // if
    450         } // if
     453                }
     454        }
    451455        delete o;
    452456        return this;
     
    471475                } else {
    472476                        type->symbolic->assertions = assertions;
    473                 } // if
     477                }
    474478                break;
     479       
    475480          case TypeData::Variable:
    476481                if ( type->variable->assertions ) {
     
    478483                } else {
    479484                        type->variable->assertions = assertions;
    480                 } // if
     485                }
    481486                break;
     487       
    482488          default:
    483489                assert( false );
    484         } // switch
     490        }
    485491       
    486492        return this;
     
    520526}
    521527
    522 static void setBase( TypeData *&type, TypeData *newType ) {
     528static void
     529setBase( TypeData *&type, TypeData *newType ) {
    523530        if ( type ) {
    524531                TypeData *prevBase = type;
     
    527534                        prevBase = curBase;
    528535                        curBase = curBase->base;
    529                 } // while
     536                }
    530537                prevBase->base = newType;
    531538        } else {
    532539                type = newType;
    533         } // if
     540        }
    534541}
    535542
     
    540547                p->type = 0;
    541548                delete p;
    542         } // if
     549        }
    543550        return this;
    544551}
     
    550557                a->type = 0;
    551558                delete a;
    552         } // if
     559        }
    553560        return this;
    554561}
     
    565572                                if ( type->kind == TypeData::Aggregate ) {
    566573                                        p->type->base->aggInst->params = maybeClone( type->aggregate->actuals );
    567                                 } // if
     574                                }
    568575                                p->type->base->qualifiers.splice( p->type->base->qualifiers.end(), type->qualifiers );
    569576                                break;
     
    571578                          default:
    572579                                p->type->base = type;
    573                         } // switch
     580                        }
    574581                        type = 0;
    575                 } // if
     582                }
    576583                delete this;
    577584                return p;
    578585        } else {
    579586                return this;
    580         } // if
     587        }
    581588}
    582589
     
    586593        while ( cur->base ) {
    587594                cur = cur->base;
    588         } // while
     595        }
    589596        return cur;
    590597}
     
    602609                                if ( type->kind == TypeData::Aggregate ) {
    603610                                        lastArray->base->aggInst->params = maybeClone( type->aggregate->actuals );
    604                                 } // if
     611                                }
    605612                                lastArray->base->qualifiers.splice( lastArray->base->qualifiers.end(), type->qualifiers );
    606613                                break;
    607614                          default:
    608615                                lastArray->base = type;
    609                         } // switch
     616                        }
    610617                        type = 0;
    611                 } // if
     618                }
    612619                delete this;
    613620                return a;
    614621        } else {
    615622                return this;
    616         } // if
     623        }
    617624}
    618625
     
    630637                } else {
    631638                        type->function->idList = ids;
    632                 } // if
     639                }
    633640                return type;
    634641        } else {
     
    636643                newtype->function->idList = ids;
    637644                return newtype;
    638         } // if
     645        }
    639646}
    640647       
     
    655662        while ( srcType->base ) {
    656663                srcType = srcType->base;
    657         } // while
     664        }
    658665        newnode->type = maybeClone( srcType );
    659666        if ( newnode->type->kind == TypeData::AggregateInst ) {
     
    666673                        delete newnode->type->aggInst->aggregate->aggregate->members;
    667674                        newnode->type->aggInst->aggregate->aggregate->members = 0;
    668                 } // if
    669         } // if
     675                }
     676        }
    670677        newnode->type->forall = maybeClone( type->forall );
    671678        newnode->storageClasses = storageClasses;
     
    681688                        while ( srcType->base ) {
    682689                                srcType = srcType->base;
    683                         } // while
     690                        }
    684691                        TypeData *newType = srcType->clone();
    685692                        if ( newType->kind == TypeData::AggregateInst ) {
     
    692699                                        delete newType->aggInst->aggregate->aggregate->members;
    693700                                        newType->aggInst->aggregate->aggregate->members = 0;
    694                                 } // if
    695                         } // if
     701                                }
     702                        }
    696703                        newType->forall = maybeClone( type->forall );
    697704                        if ( ! o->type ) {
     
    700707                                addTypeToType( newType, o->type );
    701708                                delete newType;
    702                         } // if
    703                 } // if
    704         } // if
     709                        }
     710                }
     711        }
    705712        return o;
    706713}
     
    724731                                addTypeToType( newType, o->type );
    725732                                delete newType;
    726                         } // if
    727                 } // if
    728         } // if
     733                        }
     734                }
     735        }
    729736        return o;
    730737}
     
    733740        if ( node != 0 ) {
    734741                set_link( node );
    735         } // if
     742        }
    736743        return this;
    737744}
     
    796803                                } else if ( StructDecl *agg = dynamic_cast< StructDecl *>( decl ) ) {
    797804                                        StructInstType *inst = new StructInstType( Type::Qualifiers(), agg->get_name() );
    798                                         *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 );
     805                                        *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 );
    799806                                        delete agg;
    800807                                } else if ( UnionDecl *agg = dynamic_cast< UnionDecl *>( decl ) ) {
    801808                                        UnionInstType *inst = new UnionInstType( Type::Qualifiers(), agg->get_name() );
    802                                         *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 );
     809                                        *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 );
    803810                                } // if
    804811                        } // if
     
    875882}
    876883
    877 DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const {
    878         DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass;
    879         for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
    880           if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers
    881 
    882           if ( ret != DeclarationNode::NoStorageClass ) {       // already have a valid storage class ?
     884Declaration::StorageClass DeclarationNode::buildStorageClass() const {
     885        static const Declaration::StorageClass scMap[] = { 
     886                Declaration::Extern,
     887                Declaration::Static,
     888                Declaration::Auto,
     889                Declaration::Register,
     890                Declaration::Inline,
     891                Declaration::Fortran
     892        }; 
     893 
     894        Declaration::StorageClass ret = Declaration::NoStorageClass;
     895        for ( std::list< StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
     896                assert( unsigned( *i ) < sizeof( scMap ) / sizeof( scMap[0] ) );
     897          if ( *i == Inline ) continue;
     898          if ( ret != Declaration::NoStorageClass ) {
    883899                        throw SemanticError( "invalid combination of storage classes in declaration of ", this );
    884                 } // if
    885                 ret = *i;
    886         } // for
     900                }
     901                ret = scMap[ *i ];
     902        }
    887903        return ret;
    888904}
    889905
    890906bool DeclarationNode::buildInline() const {
    891         std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), DeclarationNode::Inline );
     907        std::list< StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), Inline );
    892908  if ( first == storageClasses.end() ) return false;
    893         std::list< DeclarationNode::StorageClass >::const_iterator next = std::find( ++first, storageClasses.end(), DeclarationNode::Inline );
     909        std::list< StorageClass >::const_iterator next = std::find( ++first, storageClasses.end(), Inline );
    894910  if ( next == storageClasses.end() ) return true;
    895911        throw SemanticError( "duplicate inline specification in declaration of ", this );
  • src/Parser/ParseNode.h

    rb5b0907 rea9b9d3  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:24:22 2015
    13 // Update Count     : 79
     12// Last Modified On : Sun Jun  7 22:02:00 2015
     13// Update Count     : 65
    1414//
    1515
     
    2222
    2323#include "utility.h"
    24 #include "Parser/LinkageSpec.h"
    2524#include "SynTree/Type.h"
    26 //#include "SynTree/Declaration.h"
     25#include "SynTree/Declaration.h"
    2726#include "UniqueName.h"
    2827
     
    266265  public:
    267266        enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, Attribute };
    268         enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, };
     267        enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran };
    269268        enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary };
    270         enum Modifier  { Signed, Unsigned, Short, Long };
    271         enum Aggregate { Struct, Union, Context };
     269        enum Modifier { Signed, Unsigned, Short, Long };
     270        enum TyCon { Struct, Union, Context };
    272271        enum TypeClass { Type, Dtype, Ftype };
    273272
    274         static const char *storageName[]; 
    275273        static const char *qualifierName[];
    276274        static const char *basicTypeName[];
    277275        static const char *modifierName[];
    278         static const char *aggregateName[];
     276        static const char *tyConName[];
    279277        static const char *typeClassName[];
    280278
     
    287285        static DeclarationNode *newForall( DeclarationNode *);
    288286        static DeclarationNode *newFromTypedef( std::string *);
    289         static DeclarationNode *newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields );
     287        static DeclarationNode *newAggregate( TyCon kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields );
    290288        static DeclarationNode *newEnum( std::string *name, DeclarationNode *constants );
    291289        static DeclarationNode *newEnumConstant( std::string *name, ExpressionNode *constant );
     
    346344        ~DeclarationNode();
    347345  private:
    348         StorageClass buildStorageClass() const;
     346        Declaration::StorageClass buildStorageClass() const;
    349347        bool buildInline() const;
    350348
  • src/Parser/TypeData.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:03:20 2015
    13 // Update Count     : 15
     12// Last Modified On : Sat Jun  6 12:26:02 2015
     13// Update Count     : 8
    1414//
    1515
     
    8989                attr->type = 0;
    9090                break;
    91         } // switch
     91        }
    9292}
    9393
     
    155155                delete attr;
    156156                break;
    157         } // switch
     157        }
    158158}
    159159
     
    225225                newtype->attr->type = maybeClone( attr->type );
    226226                break;
    227         } // switch
     227        }
    228228        return newtype;
    229229}
     
    238238                os << "forall " << endl;
    239239                forall->printList( os, indent+4 );
    240         } // if
     240        }
    241241
    242242        switch ( kind ) {
     
    249249                        os << "to ";
    250250                        base->print( os, indent );
    251                 } // if
     251                }
    252252                break;
    253253          case EnumConstant:
     
    261261                if ( array->isStatic ) {
    262262                        os << "static ";
    263                 } // if
     263                }
    264264                if ( array->dimension ) {
    265265                        os << "array of ";
     
    269269                } else {
    270270                        os << "open array of ";
    271                 } // if
     271                }
    272272                if ( base ) {
    273273                        base->print( os, indent );
    274                 } // if
     274                }
    275275                break;
    276276          case Function:
     
    281281                } else {
    282282                        os << string( indent+2, ' ' ) << "with no parameters " << endl;
    283                 } // if
     283                }
    284284                if ( function->idList ) {
    285285                        os << string( indent+2, ' ' ) << "with old-style identifier list " << endl;
    286286                        function->idList->printList( os, indent+4 );
    287                 } // if
     287                }
    288288                if ( function->oldDeclList ) {
    289289                        os << string( indent+2, ' ' ) << "with old-style declaration list " << endl;
    290290                        function->oldDeclList->printList( os, indent+4 );
    291                 } // if
     291                }
    292292                os << string( indent+2, ' ' ) << "returning ";
    293293                if ( base ) {
     
    295295                } else {
    296296                        os << "nothing ";
    297                 } // if
     297                }
    298298                os << endl;
    299299                if ( function->hasBody ) {
    300300                        os << string( indent+2, ' ' ) << "with body " << endl;
    301                 } // if
     301                }
    302302                if ( function->body ) {
    303303                        function->body->printList( os, indent+2 );
    304                 } // if
     304                }
    305305                break;
    306306          case Aggregate:
    307                 os << DeclarationNode::aggregateName[ aggregate->kind ] << ' ' << aggregate->name << endl;
     307                os << DeclarationNode::tyConName[ aggregate->kind ] << ' ' << aggregate->name << endl;
    308308                if ( aggregate->params ) {
    309309                        os << string( indent+2, ' ' ) << "with type parameters " << endl;
    310310                        aggregate->params->printList( os, indent+4 );
    311                 } // if
     311                }
    312312                if ( aggregate->actuals ) {
    313313                        os << string( indent+2, ' ' ) << "instantiated with actual parameters " << endl;
    314314                        aggregate->actuals->printList( os, indent+4 );
    315                 } // if
     315                }
    316316                if ( aggregate->members ) {
    317317                        os << string( indent+2, ' ' ) << "with members " << endl;
     
    319319///     } else {
    320320///       os << string( indent+2, ' ' ) << "with no members " << endl;
    321                 } // if
     321                }
    322322                break;
    323323          case AggregateInst:
     
    327327                } else {
    328328                        os << "instance of an unspecified aggregate ";
    329                 } // if
     329                }
    330330                if ( aggInst->params ) {
    331331                        os << string( indent+2, ' ' ) << "with parameters " << endl;
    332332                        aggInst->params->printList( os, indent+2 );
    333                 } // if
     333                }
    334334                break;
    335335          case Enum:
     
    338338                        os << "with constants" << endl;
    339339                        enumeration->constants->printList( os, indent+2 );
    340                 } // if
     340                }
    341341                break;
    342342          case SymbolicInst:
     
    345345                        os << " with parameters" << endl;
    346346                        symbolic->actuals->printList( os, indent + 2 );
    347                 } // if
     347                }
    348348                break;
    349349          case Symbolic:
     
    352352                } else {
    353353                        os << "type definition ";
    354                 } // if
     354                }
    355355                if ( symbolic->params ) {
    356356                        os << endl << string( indent+2, ' ' ) << "with parameters" << endl;
    357357                        symbolic->params->printList( os, indent + 2 );
    358                 } // if
     358                }
    359359                if ( symbolic->assertions ) {
    360360                        os << endl << string( indent+2, ' ' ) << "with assertions" << endl;
    361361                        symbolic->assertions->printList( os, indent + 4 );
    362362                        os << string( indent+2, ' ' );
    363                 } // if
     363                }
    364364                if ( base ) {
    365365                        os << "for ";
    366366                        base->print( os, indent + 2 );
    367                 } // if
     367                }
    368368                break;
    369369          case Variable:
     
    373373                        variable->assertions->printList( os, indent + 4 );
    374374                        os << string( indent+2, ' ' );
    375                 } // if
     375                }
    376376                break;
    377377          case Tuple:
     
    380380                        os << "with members " << endl;
    381381                        tuple->members->printList( os, indent + 2 );
    382                 } // if
     382                }
    383383                break;
    384384          case Typeof:
     
    386386                if ( typeexpr->expr ) {
    387387                        typeexpr->expr->print( os, indent + 2 );
    388                 } // if
     388                }
    389389                break;
    390390          case Attr:
     
    392392                if ( attr->expr ) {
    393393                        attr->expr->print( os, indent + 2 );
    394                 } // if
     394                }
    395395                if ( attr->type ) {
    396396                        attr->type->print( os, indent + 2 );
    397                 } // if
    398                 break;
    399         } // switch
     397                }
     398                break;
     399        }
    400400}
    401401
     
    408408                        ret = clone();
    409409                        ret->qualifiers.clear();
    410                 } // if
     410                }
    411411                break;
    412412          case Enum:
     
    414414                        ret = clone();
    415415                        ret->qualifiers.clear();
    416                 } // if
     416                }
    417417                break;
    418418          case AggregateInst:
    419419                if ( aggInst->aggregate ) {
    420420                        ret = aggInst->aggregate->extractAggregate( false );
    421                 } // if
     421                }
    422422                break;
    423423          default:
    424424                if ( base ) {
    425425                        ret = base->extractAggregate( false );
    426                 } // if
    427         } // switch
     426                }
     427        }
    428428        return ret;
    429429}
     
    434434                if ( (*i)->get_kind() == TypeDecl::Any ) {
    435435                        FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    436                         assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );
    437                         assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
    438                         assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
    439                         (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false ) );
    440                 } // if
    441         } // for
    442 }
    443 
    444 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init ) const {
     436                        assignType->get_parameters().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );
     437                        assignType->get_parameters().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
     438                        assignType->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
     439                        (*i)->get_assertions().push_front( new FunctionDecl( "?=?", Declaration::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false ) );
     440                }
     441        }
     442}
     443
     444Declaration *TypeData::buildDecl( std::string name, Declaration::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init ) const {
    445445        if ( kind == TypeData::Function ) {
    446446                FunctionDecl *decl;
     
    454454                                // std::list<Label> ls;
    455455                                decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline );
    456                         } // if
     456                        }
    457457                } else {
    458458                        decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline );
    459                 } // if
     459                }
    460460                for ( DeclarationNode *cur = function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_link() ) ) {
    461461                        if ( cur->get_name() != "" ) {
    462462                                decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name() );
    463                         } // if
    464                 } // for
     463                        }
     464                }
    465465                buildList( function->oldDeclList, decl->get_oldDecls() );
    466466                return decl;
     
    478478                } else {
    479479                        return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init );
    480                 } // if
    481         } // if
     480                }
     481        }
    482482        return 0;
    483483}
     
    514514          case Variable:
    515515                assert( false );
    516         } // switch
     516        }
    517517
    518518        return 0;
     
    541541                        q.isAttribute = true;
    542542                        break;
    543                 } // switch
    544         } // for
     543                }
     544        }
    545545        return q;
    546546}
     
    563563                                } else {
    564564                                        return new VoidType( buildQualifiers() );
    565                                 } // if
     565                                }
    566566                        } else {
    567567                                ret = kindMap[ *i ];
    568                         } // if
     568                        }
    569569                } else {
    570570                        switch ( *i ) {
     
    582582                                          default:
    583583                                                throw SemanticError( "invalid type specifier \"float\" in type: ", this );
    584                                         } // switch
    585                                 } // if
     584                                        }
     585                                }
    586586                                break;
    587587                          case DeclarationNode::Double:
     
    595595                                          default:
    596596                                                throw SemanticError( "invalid type specifier \"double\" in type: ", this );
    597                                         } // switch
    598                                 } // if
     597                                        }
     598                                }
    599599                                break;
    600600       
     
    609609                                  default:
    610610                                        throw SemanticError( "invalid type specifier \"_Complex\" in type: ", this );
    611                                 } // switch
     611                                }
    612612                                break;
    613613                          case DeclarationNode::Imaginary:
     
    621621                                  default:
    622622                                        throw SemanticError( "invalid type specifier \"_Imaginary\" in type: ", this );
    623                                 } // switch
     623                                }
    624624                                break;
    625625                          default:
    626626                                throw SemanticError( std::string( "invalid type specifier \"" ) + DeclarationNode::basicTypeName[ *i ] + "\" in type: ", this );
    627                         } // switch
    628                 } // if
     627                        }
     628                }
    629629                if ( *i == DeclarationNode::Double ) {
    630630                        sawDouble = true;
    631                 } // if
    632         } // for
     631                }
     632        }
    633633
    634634        for ( std::list< DeclarationNode::Modifier >::const_iterator i = basic->modifiers.begin(); i != basic->modifiers.end(); ++i ) {
     
    663663                                  default:
    664664                                        throw SemanticError( "invalid type modifier \"long\" in type: ", this );
    665                                 } // switch
    666                         } // if
     665                                }
     666                        }
    667667                        break;
    668668                  case DeclarationNode::Short:
     
    680680                                  default:
    681681                                        throw SemanticError( "invalid type modifier \"short\" in type: ", this );
    682                                 } // switch
    683                         } // if
     682                                }
     683                        }
    684684                        break;
    685685                  case DeclarationNode::Signed:
     
    705705                                  default:
    706706                                        throw SemanticError( "invalid type modifer \"signed\" in type: ", this );
    707                                 } // switch
    708                         } // if
     707                                }
     708                        }
    709709                        break;
    710710                  case DeclarationNode::Unsigned:
     
    733733                                  default:
    734734                                        throw SemanticError( "invalid type modifer \"unsigned\" in type: ", this );
    735                                 } // switch
    736                         } // if
    737                         break;
    738                 } // switch
     735                                }
     736                        }
     737                        break;
     738                }
    739739
    740740                if ( *i == DeclarationNode::Signed ) {
    741741                        sawSigned = true;
    742                 } // if
    743         } // for
     742                }
     743        }
    744744
    745745        BasicType *bt;
     
    748748        } else {
    749749                bt = new BasicType( buildQualifiers(), ret );
    750         } // if
     750        }
    751751        buildForall( forall, bt->get_forall() );
    752752        return bt;
     
    760760        } else {
    761761                pt = new PointerType( buildQualifiers(), new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
    762         } // if
     762        }
    763763        buildForall( forall, pt->get_forall() );
    764764        return pt;
     
    773773                at = new ArrayType( buildQualifiers(), new BasicType( Type::Qualifiers(), BasicType::SignedInt ),
    774774                                                        maybeBuild< Expression >( array->dimension ), array->isVarLen, array->isStatic );
    775         } // if
     775        }
    776776        buildForall( forall, at->get_forall() );
    777777        return at;
     
    791791                        break;
    792792                  default:
    793                         ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, LinkageSpec::Cforall ) ) );
    794                 } // switch
     793                        ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", Declaration::NoStorageClass, 0, false, LinkageSpec::Cforall ) ) );
     794                }
    795795        } else {
    796                 ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ) );
    797         } // if
     796                ft->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ) );
     797        }
    798798        return ft;
    799799}
     
    817817          default:
    818818                assert( false );
    819         } // switch
     819        }
    820820        buildList( aggregate->params, at->get_parameters() );
    821821        buildList( aggregate->members, at->get_members() );
     
    857857                  default:
    858858                        assert( false );
    859                 } // switch
    860         } // if
     859                }
     860        }
    861861        buildList( aggInst->params, ret->get_parameters() );
    862862        buildForall( forall, ret->get_forall() );
     
    864864}
    865865
    866 NamedTypeDecl *TypeData::buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const {
     866NamedTypeDecl *TypeData::buildSymbolic( const std::string &name, Declaration::StorageClass sc ) const {
    867867        assert( kind == Symbolic );
    868868        NamedTypeDecl *ret;
     
    871871        } else {
    872872                ret = new TypeDecl( name, sc, maybeBuild< Type >( base ), TypeDecl::Any );
    873         } // if
     873        }
    874874        buildList( symbolic->params, ret->get_parameters() );
    875875        buildList( symbolic->assertions, ret->get_assertions() );
     
    881881        static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };
    882882
    883         TypeDecl *ret = new TypeDecl( variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ variable->tyClass ] );
     883        TypeDecl *ret = new TypeDecl( variable->name, Declaration::NoStorageClass, 0, kindMap[ variable->tyClass ] );
    884884        buildList( variable->assertions, ret->get_assertions() );
    885885       
     
    931931                assert( attr->type );
    932932                ret = new AttrType( buildQualifiers(), attr->name, attr->type->buildType() );
    933         } // if
     933        }
    934934
    935935        return ret;
  • src/Parser/TypeData.h

    rb5b0907 rea9b9d3  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:26:16 2015
    13 // Update Count     : 5
     12// Last Modified On : Sat May 16 15:20:00 2015
     13// Update Count     : 2
    1414//
    1515
     
    4444
    4545        struct Aggregate_t {
    46                 DeclarationNode::Aggregate kind;
     46                DeclarationNode::TyCon kind;
    4747                std::string name;
    4848                DeclarationNode *params;
     
    120120        TypeData *extractAggregate( bool toplevel = true ) const;
    121121        // helper function for DeclNodeImpl::build
    122         Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init = 0 ) const;
     122        Declaration * buildDecl( std::string name, Declaration::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init = 0 ) const;
    123123        // helper functions for build()
    124124        Type::Qualifiers buildQualifiers() const;
     
    128128        AggregateDecl * buildAggregate() const;
    129129        ReferenceToType * buildAggInst() const;
    130         NamedTypeDecl * buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const;
     130        NamedTypeDecl * buildSymbolic( const std::string &name, Declaration::StorageClass sc ) const;
    131131        TypeDecl* buildVariable() const;
    132132        EnumDecl* buildEnum() const;
  • src/Parser/lex.cc

    rb5b0907 rea9b9d3  
    13901390 * Created On       : Sat Sep 22 08:58:10 2001
    13911391 * Last Modified By : Peter A. Buhr
    1392  * Last Modified On : Thu Jun 11 21:52:35 2015
    1393  * Update Count     : 382
     1392 * Last Modified On : Mon Jun  8 20:24:15 2015
     1393 * Update Count     : 381
    13941394 */
    13951395#line 20 "lex.ll"
  • src/Parser/lex.ll

    rb5b0907 rea9b9d3  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Jun 11 21:52:35 2015
    13  * Update Count     : 382
     12 * Last Modified On : Mon Jun  8 20:24:15 2015
     13 * Update Count     : 381
    1414 */
    1515
  • src/Parser/parser.cc

    rb5b0907 rea9b9d3  
    330330        ExpressionNode *en;
    331331        DeclarationNode *decl;
    332         DeclarationNode::Aggregate aggKey;
     332        DeclarationNode::TyCon aggKey;
    333333        DeclarationNode::TypeClass tclass;
    334334        StatementNode *sn;
     
    568568
    569569/* YYFINAL -- State number of the termination state.  */
    570 #define YYFINAL  240
     570#define YYFINAL  238
    571571/* YYLAST -- Last index in YYTABLE.  */
    572 #define YYLAST   12141
     572#define YYLAST   12086
    573573
    574574/* YYNTOKENS -- Number of terminals.  */
     
    577577#define YYNNTS  235
    578578/* YYNRULES -- Number of rules.  */
    579 #define YYNRULES  735
     579#define YYNRULES  733
    580580/* YYNRULES -- Number of states.  */
    581 #define YYNSTATES  1552
     581#define YYNSTATES  1550
    582582
    583583/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    665665    1060,  1061,  1067,  1069,  1072,  1076,  1078,  1081,  1083,  1085,
    666666    1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,  1103,  1105,
    667     1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,  1123,  1125,
    668     1128,  1131,  1135,  1139,  1141,  1145,  1147,  1150,  1153,  1156,
    669     1161,  1166,  1171,  1176,  1178,  1181,  1184,  1188,  1190,  1193,
    670     1196,  1198,  1201,  1204,  1208,  1210,  1213,  1216,  1218,  1220,
    671     1225,  1228,  1234,  1244,  1252,  1263,  1276,  1284,  1298,  1301,
    672     1304,  1306,  1309,  1312,  1316,  1319,  1323,  1325,  1328,  1332,
    673     1335,  1338,  1343,  1344,  1346,  1349,  1352,  1354,  1355,  1357,
    674     1360,  1363,  1369,  1376,  1379,  1382,  1387,  1388,  1391,  1392,
    675     1394,  1396,  1398,  1404,  1410,  1416,  1418,  1424,  1430,  1440,
    676     1442,  1448,  1449,  1451,  1453,  1459,  1461,  1463,  1469,  1475,
    677     1477,  1481,  1485,  1490,  1492,  1494,  1496,  1498,  1501,  1503,
    678     1507,  1511,  1513,  1516,  1518,  1522,  1524,  1526,  1528,  1530,
    679     1532,  1534,  1536,  1538,  1540,  1542,  1544,  1547,  1549,  1551,
    680     1553,  1556,  1557,  1560,  1562,  1567,  1569,  1572,  1576,  1581,
    681     1584,  1587,  1589,  1592,  1595,  1601,  1607,  1615,  1622,  1624,
    682     1627,  1630,  1634,  1639,  1645,  1648,  1651,  1656,  1657,  1662,
    683     1665,  1667,  1669,  1671,  1672,  1675,  1681,  1687,  1701,  1703,
    684     1705,  1709,  1713,  1716,  1720,  1724,  1727,  1732,  1734,  1741,
    685     1751,  1752,  1764,  1766,  1770,  1774,  1778,  1780,  1782,  1788,
    686     1791,  1797,  1798,  1800,  1802,  1806,  1807,  1809,  1811,  1813,
    687     1815,  1816,  1823,  1826,  1828,  1831,  1836,  1839,  1843,  1847,
    688     1851,  1856,  1862,  1868,  1874,  1881,  1883,  1885,  1887,  1891,
    689     1892,  1898,  1899,  1901,  1903,  1906,  1913,  1915,  1919,  1920,
    690     1922,  1927,  1929,  1931,  1933,  1935,  1938,  1940,  1943,  1946,
    691     1948,  1952,  1955,  1959,  1963,  1966,  1971,  1976,  1980,  1989,
    692     1993,  1996,  1998,  2001,  2008,  2017,  2021,  2024,  2028,  2032,
    693     2037,  2042,  2046,  2048,  2050,  2052,  2057,  2064,  2068,  2071,
    694     2075,  2079,  2084,  2089,  2093,  2096,  2098,  2101,  2104,  2106,
    695     2110,  2113,  2117,  2121,  2124,  2129,  2134,  2138,  2145,  2154,
    696     2158,  2161,  2163,  2166,  2169,  2172,  2176,  2180,  2183,  2188,
    697     2193,  2197,  2204,  2213,  2217,  2220,  2222,  2225,  2228,  2230,
    698     2233,  2237,  2241,  2244,  2249,  2256,  2265,  2267,  2270,  2273,
    699     2275,  2278,  2281,  2285,  2289,  2291,  2296,  2301,  2305,  2311,
    700     2320,  2324,  2329,  2335,  2337,  2343,  2349,  2356,  2363,  2365,
    701     2368,  2371,  2373,  2376,  2379,  2383,  2387,  2389,  2394,  2399,
    702     2403,  2409,  2418,  2422,  2424,  2427,  2429,  2434,  2441,  2447,
    703     2454,  2462,  2470,  2472,  2475,  2478,  2480,  2483,  2486,  2490,
    704     2494,  2496,  2501,  2506,  2510,  2519,  2523,  2525,  2527,  2530,
    705     2532,  2534,  2537,  2541,  2544,  2548,  2551,  2555,  2561,  2564,
    706     2571,  2575,  2578,  2584,  2587,  2594,  2598,  2601,  2608,  2615,
    707     2622,  2630,  2632,  2635,  2637,  2639,  2641,  2644,  2648,  2651,
    708     2655,  2658,  2662,  2668,  2675,  2678,  2684,  2691,  2694,  2700,
    709     2708,  2715,  2722,  2723,  2725,  2726
     667    1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,  1124,  1127,
     668    1131,  1135,  1137,  1141,  1143,  1146,  1149,  1152,  1157,  1162,
     669    1167,  1172,  1174,  1177,  1180,  1184,  1186,  1189,  1192,  1194,
     670    1197,  1200,  1204,  1206,  1209,  1212,  1214,  1216,  1221,  1224,
     671    1230,  1240,  1248,  1259,  1272,  1280,  1294,  1297,  1300,  1302,
     672    1305,  1308,  1312,  1315,  1319,  1321,  1324,  1328,  1331,  1334,
     673    1339,  1340,  1342,  1345,  1348,  1350,  1351,  1353,  1356,  1359,
     674    1365,  1372,  1375,  1378,  1383,  1384,  1387,  1388,  1390,  1392,
     675    1394,  1400,  1406,  1412,  1414,  1420,  1426,  1436,  1438,  1444,
     676    1445,  1447,  1449,  1455,  1457,  1459,  1465,  1471,  1473,  1477,
     677    1481,  1486,  1488,  1490,  1492,  1494,  1497,  1499,  1503,  1507,
     678    1509,  1512,  1514,  1518,  1520,  1522,  1524,  1526,  1528,  1530,
     679    1532,  1534,  1536,  1538,  1540,  1543,  1545,  1547,  1549,  1552,
     680    1553,  1556,  1558,  1563,  1565,  1568,  1572,  1577,  1580,  1583,
     681    1585,  1588,  1591,  1597,  1603,  1611,  1618,  1620,  1623,  1626,
     682    1630,  1635,  1641,  1644,  1647,  1652,  1653,  1658,  1661,  1663,
     683    1665,  1667,  1668,  1671,  1677,  1683,  1697,  1699,  1701,  1705,
     684    1709,  1712,  1716,  1720,  1723,  1728,  1730,  1737,  1747,  1748,
     685    1760,  1762,  1766,  1770,  1774,  1776,  1778,  1784,  1787,  1793,
     686    1794,  1796,  1798,  1802,  1803,  1805,  1807,  1809,  1811,  1812,
     687    1819,  1822,  1824,  1827,  1832,  1835,  1839,  1843,  1847,  1852,
     688    1858,  1864,  1870,  1877,  1879,  1881,  1883,  1887,  1888,  1894,
     689    1895,  1897,  1899,  1902,  1909,  1911,  1915,  1916,  1918,  1923,
     690    1925,  1927,  1929,  1931,  1934,  1936,  1939,  1942,  1944,  1948,
     691    1951,  1955,  1959,  1962,  1967,  1972,  1976,  1985,  1989,  1992,
     692    1994,  1997,  2004,  2013,  2017,  2020,  2024,  2028,  2033,  2038,
     693    2042,  2044,  2046,  2048,  2053,  2060,  2064,  2067,  2071,  2075,
     694    2080,  2085,  2089,  2092,  2094,  2097,  2100,  2102,  2106,  2109,
     695    2113,  2117,  2120,  2125,  2130,  2134,  2141,  2150,  2154,  2157,
     696    2159,  2162,  2165,  2168,  2172,  2176,  2179,  2184,  2189,  2193,
     697    2200,  2209,  2213,  2216,  2218,  2221,  2224,  2226,  2229,  2233,
     698    2237,  2240,  2245,  2252,  2261,  2263,  2266,  2269,  2271,  2274,
     699    2277,  2281,  2285,  2287,  2292,  2297,  2301,  2307,  2316,  2320,
     700    2325,  2331,  2333,  2339,  2345,  2352,  2359,  2361,  2364,  2367,
     701    2369,  2372,  2375,  2379,  2383,  2385,  2390,  2395,  2399,  2405,
     702    2414,  2418,  2420,  2423,  2425,  2430,  2437,  2443,  2450,  2458,
     703    2466,  2468,  2471,  2474,  2476,  2479,  2482,  2486,  2490,  2492,
     704    2497,  2502,  2506,  2515,  2519,  2521,  2523,  2526,  2528,  2530,
     705    2533,  2537,  2540,  2544,  2547,  2551,  2557,  2560,  2567,  2571,
     706    2574,  2580,  2583,  2590,  2594,  2597,  2604,  2611,  2618,  2626,
     707    2628,  2631,  2633,  2635,  2637,  2640,  2644,  2647,  2651,  2654,
     708    2658,  2664,  2671,  2674,  2680,  2687,  2690,  2696,  2704,  2711,
     709    2718,  2719,  2721,  2722
    710710};
    711711
     
    822822     221,    -1,   220,   216,   221,    -1,   222,    -1,   221,   222,
    823823      -1,   223,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    824       -1,     8,    -1,     9,    -1,    62,    -1,    64,    -1,    16,
    825       -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    826       -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
    827       -1,    26,    -1,   226,    -1,   220,   226,    -1,   225,   222,
    828       -1,   225,   222,   216,    -1,   225,   222,   226,    -1,   227,
    829       -1,   215,   228,   215,    -1,   224,    -1,   216,   224,    -1,
    830      227,   217,    -1,   227,   224,    -1,    27,   101,   263,   102,
    831       -1,    27,   101,   160,   102,    -1,    71,   101,   263,   102,
    832       -1,    71,   101,   160,   102,    -1,   230,    -1,   220,   230,
    833       -1,   229,   222,    -1,   229,   222,   216,    -1,   233,    -1,
    834      216,   233,    -1,   230,   217,    -1,   232,    -1,   220,   232,
    835       -1,   231,   222,    -1,   231,   222,   216,    -1,    67,    -1,
    836      216,    67,    -1,   232,   217,    -1,   234,    -1,   244,    -1,
    837      235,   106,   236,   107,    -1,   235,   261,    -1,   235,   261,
    838      106,   236,   107,    -1,   235,   101,   126,   272,   127,   102,
    839      106,   236,   107,    -1,   235,   101,   126,   272,   127,   102,
    840      261,    -1,   235,   101,   126,   272,   127,   102,   261,   106,
    841      236,   107,    -1,   235,   101,   126,   272,   127,   102,   101,
    842      278,   102,   106,   236,   107,    -1,   235,   101,   126,   278,
    843      127,   102,   261,    -1,   235,   101,   126,   272,   127,   102,
    844      101,   278,   102,   261,   106,   236,   107,    -1,    30,   298,
    845       -1,    31,   298,    -1,   237,    -1,   236,   237,    -1,   238,
    846      124,    -1,    38,   238,   124,    -1,   239,   124,    -1,    38,
    847      239,   124,    -1,   352,    -1,   352,   261,    -1,   238,   108,
    848      261,    -1,   238,   108,    -1,   214,   240,    -1,   239,   108,
    849      298,   240,    -1,    -1,   242,    -1,   304,   241,    -1,   317,
    850      241,    -1,   343,    -1,    -1,   242,    -1,   109,   154,    -1,
    851       29,   298,    -1,   243,   106,   245,   358,   107,    -1,   243,
    852      261,   106,   245,   358,   107,    -1,   243,   261,    -1,   261,
    853      246,    -1,   245,   108,   261,   246,    -1,    -1,   123,   154,
    854       -1,    -1,   248,    -1,   250,    -1,   249,    -1,   249,   127,
    855      108,   126,   250,    -1,   250,   127,   108,   126,    89,    -1,
    856      249,   127,   108,   126,    89,    -1,   254,    -1,   250,   127,
    857      108,   126,   254,    -1,   249,   127,   108,   126,   254,    -1,
    858      249,   127,   108,   126,   250,   127,   108,   126,   254,    -1,
    859      255,    -1,   250,   127,   108,   126,   255,    -1,    -1,   252,
    860       -1,   253,    -1,   253,   127,   108,   126,    89,    -1,   257,
    861       -1,   256,    -1,   253,   127,   108,   126,   257,    -1,   253,
    862      127,   108,   126,   256,    -1,   256,    -1,   348,   259,   359,
    863       -1,   356,   259,   359,    -1,   216,   356,   259,   359,    -1,
    864      206,    -1,   257,    -1,   348,    -1,   356,    -1,   216,   356,
    865       -1,   357,    -1,   213,   322,   359,    -1,   213,   326,   359,
    866       -1,   213,    -1,   213,   337,    -1,   131,    -1,   258,   108,
    867      131,    -1,   129,    -1,    67,    -1,    68,    -1,   130,    -1,
    868       67,    -1,    68,    -1,   131,    -1,    67,    -1,    68,    -1,
    869      352,    -1,   214,    -1,   214,   343,    -1,   352,    -1,   357,
    870       -1,   214,    -1,   214,   331,    -1,    -1,   123,   265,    -1,
    871      155,    -1,   106,   266,   358,   107,    -1,   265,    -1,   267,
    872      265,    -1,   266,   108,   265,    -1,   266,   108,   267,   265,
    873       -1,   268,   109,    -1,   261,   109,    -1,   269,    -1,   268,
    874      269,    -1,   105,   261,    -1,   103,   126,   155,   127,   104,
    875       -1,   103,   126,   296,   127,   104,    -1,   103,   126,   154,
    876       89,   154,   127,   104,    -1,   105,   103,   126,   138,   127,
    877      104,    -1,   271,    -1,   220,   271,    -1,   270,   222,    -1,
    878      270,   222,   216,    -1,    68,   101,   278,   102,    -1,   216,
    879       68,   101,   278,   102,    -1,   271,   217,    -1,   273,   359,
    880       -1,   272,   108,   273,   359,    -1,    -1,   275,   261,   274,
    881      276,    -1,   214,   322,    -1,    32,    -1,    34,    -1,    33,
    882       -1,    -1,   276,   277,    -1,   121,   261,   101,   278,   102,
    883       -1,   121,   106,   126,   284,   107,    -1,   121,   101,   126,
    884      272,   127,   102,   106,   126,   284,   107,   101,   278,   102,
    885       -1,   263,    -1,   155,    -1,   278,   108,   263,    -1,   278,
    886      108,   155,    -1,    32,   280,    -1,   221,    32,   280,    -1,
    887      279,   108,   280,    -1,   281,   276,    -1,   281,   276,   123,
    888      263,    -1,   261,    -1,   260,   101,   126,   272,   127,   102,
    889       -1,    35,   261,   101,   126,   272,   127,   102,   106,   107,
    890       -1,    -1,    35,   261,   101,   126,   272,   127,   102,   106,
    891      283,   284,   107,    -1,   285,    -1,   284,   126,   285,    -1,
    892      286,   127,   124,    -1,   287,   127,   124,    -1,   204,    -1,
    893      206,    -1,   286,   127,   108,   126,   259,    -1,   214,   295,
    894       -1,   287,   127,   108,   126,   295,    -1,    -1,   289,    -1,
    895      291,    -1,   289,   126,   291,    -1,    -1,   289,    -1,   201,
    896       -1,   293,    -1,   189,    -1,    -1,     5,    75,   292,   106,
    897      290,   107,    -1,    38,   291,    -1,   294,    -1,   309,   164,
    898       -1,   313,   126,   196,   164,    -1,   205,   164,    -1,   213,
    899      309,   164,    -1,   216,   309,   164,    -1,   220,   309,   164,
    900       -1,   220,   216,   309,   164,    -1,   213,   313,   126,   196,
    901      164,    -1,   216,   313,   126,   196,   164,    -1,   220,   313,
    902      126,   196,   164,    -1,   220,   216,   313,   126,   196,   164,
    903       -1,   304,    -1,   309,    -1,   317,    -1,   154,   115,   154,
    904       -1,    -1,    57,   101,   133,   102,   298,    -1,    -1,   299,
    905       -1,   300,    -1,   299,   300,    -1,    37,   101,   101,   301,
    906      102,   102,    -1,   302,    -1,   301,   108,   302,    -1,    -1,
    907      303,    -1,   303,   101,   161,   102,    -1,   259,    -1,   223,
    908       -1,   224,    -1,   217,    -1,   305,   298,    -1,   306,    -1,
    909      307,   298,    -1,   308,   298,    -1,   129,    -1,   101,   305,
    910      102,    -1,   111,   304,    -1,   111,   216,   304,    -1,   101,
    911      306,   102,    -1,   305,   335,    -1,   101,   306,   102,   335,
    912       -1,   101,   307,   102,   336,    -1,   101,   307,   102,    -1,
    913      101,   306,   102,   101,   126,   251,   127,   102,    -1,   101,
    914      308,   102,    -1,   310,   298,    -1,   311,    -1,   312,   298,
    915       -1,   305,   101,   126,   251,   127,   102,    -1,   101,   311,
    916      102,   101,   126,   251,   127,   102,    -1,   101,   310,   102,
    917       -1,   111,   309,    -1,   111,   216,   309,    -1,   101,   311,
    918      102,    -1,   101,   311,   102,   335,    -1,   101,   312,   102,
    919      336,    -1,   101,   312,   102,    -1,   314,    -1,   315,    -1,
    920      316,    -1,   305,   101,   258,   102,    -1,   101,   315,   102,
    921      101,   258,   102,    -1,   101,   314,   102,    -1,   111,   313,
    922       -1,   111,   216,   313,    -1,   101,   315,   102,    -1,   101,
    923      315,   102,   335,    -1,   101,   316,   102,   336,    -1,   101,
    924      316,   102,    -1,   318,   298,    -1,   319,    -1,   320,   298,
    925       -1,   321,   298,    -1,    67,    -1,   101,   318,   102,    -1,
    926      111,   317,    -1,   111,   216,   317,    -1,   101,   319,   102,
    927       -1,   318,   335,    -1,   101,   319,   102,   335,    -1,   101,
    928      320,   102,   336,    -1,   101,   320,   102,    -1,   318,   101,
    929      126,   251,   127,   102,    -1,   101,   319,   102,   101,   126,
    930      251,   127,   102,    -1,   101,   321,   102,    -1,   305,   298,
    931       -1,   323,    -1,   324,   298,    -1,   325,   298,    -1,   111,
    932      322,    -1,   111,   216,   322,    -1,   101,   323,   102,    -1,
    933      305,   341,    -1,   101,   323,   102,   335,    -1,   101,   324,
    934      102,   336,    -1,   101,   324,   102,    -1,   305,   101,   126,
    935      251,   127,   102,    -1,   101,   323,   102,   101,   126,   251,
    936      127,   102,    -1,   101,   325,   102,    -1,   327,   298,    -1,
    937      328,    -1,   329,   298,    -1,   330,   298,    -1,    67,    -1,
    938      111,   326,    -1,   111,   216,   326,    -1,   101,   328,   102,
    939       -1,   327,   341,    -1,   101,   328,   102,   341,    -1,   327,
    940      101,   126,   251,   127,   102,    -1,   101,   328,   102,   101,
    941      126,   251,   127,   102,    -1,   332,    -1,   333,   298,    -1,
    942      334,   298,    -1,   111,    -1,   111,   216,    -1,   111,   331,
    943       -1,   111,   216,   331,    -1,   101,   332,   102,    -1,   335,
    944       -1,   101,   332,   102,   335,    -1,   101,   333,   102,   336,
    945       -1,   101,   333,   102,    -1,   101,   126,   251,   127,   102,
    946       -1,   101,   332,   102,   101,   126,   251,   127,   102,    -1,
    947      101,   334,   102,    -1,   103,   126,   127,   104,    -1,   103,
    948      126,   127,   104,   336,    -1,   336,    -1,   103,   126,   155,
    949      127,   104,    -1,   103,   126,   111,   127,   104,    -1,   336,
    950      103,   126,   155,   127,   104,    -1,   336,   103,   126,   111,
    951      127,   104,    -1,   338,    -1,   339,   298,    -1,   340,   298,
    952       -1,   111,    -1,   111,   216,    -1,   111,   337,    -1,   111,
    953      216,   337,    -1,   101,   338,   102,    -1,   341,    -1,   101,
    954      338,   102,   341,    -1,   101,   339,   102,   336,    -1,   101,
    955      339,   102,    -1,   101,   126,   251,   127,   102,    -1,   101,
    956      338,   102,   101,   126,   251,   127,   102,    -1,   101,   340,
    957      102,    -1,   342,    -1,   342,   336,    -1,   336,    -1,   103,
    958      126,   127,   104,    -1,   103,   126,   216,   111,   127,   104,
    959       -1,   103,   126,   216,   127,   104,    -1,   103,   126,   216,
    960      155,   127,   104,    -1,   103,   126,     7,   215,   155,   127,
    961      104,    -1,   103,   126,   216,     7,   155,   127,   104,    -1,
    962      344,    -1,   345,   298,    -1,   346,   298,    -1,   111,    -1,
    963      111,   216,    -1,   111,   343,    -1,   111,   216,   343,    -1,
    964      101,   344,   102,    -1,   335,    -1,   101,   344,   102,   335,
    965       -1,   101,   345,   102,   336,    -1,   101,   345,   102,    -1,
    966      101,   344,   102,   101,   126,   251,   127,   102,    -1,   101,
    967      346,   102,    -1,   348,    -1,   356,    -1,   216,   356,    -1,
    968      349,    -1,   350,    -1,   111,   214,    -1,   216,   111,   214,
    969       -1,   111,   357,    -1,   216,   111,   357,    -1,   111,   347,
    970       -1,   216,   111,   347,    -1,   103,   126,   127,   104,   214,
    971       -1,   351,   214,    -1,   103,   126,   127,   104,   336,   214,
    972       -1,   351,   336,   214,    -1,   336,   214,    -1,   103,   126,
    973      127,   104,   349,    -1,   351,   349,    -1,   103,   126,   127,
    974      104,   336,   349,    -1,   351,   336,   349,    -1,   336,   349,
    975       -1,   103,   126,   216,   111,   127,   104,    -1,   103,   126,
    976      216,   155,   127,   104,    -1,   103,   126,   220,   155,   127,
    977      104,    -1,   103,   126,   220,   216,   155,   127,   104,    -1,
    978      356,    -1,   216,   356,    -1,   353,    -1,   354,    -1,   355,
    979       -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   357,
    980       -1,   216,   111,   357,    -1,   111,   352,    -1,   216,   111,
    981      352,    -1,   103,   126,   127,   104,   214,    -1,   103,   126,
    982      127,   104,   336,   214,    -1,   336,   214,    -1,   103,   126,
    983      127,   104,   354,    -1,   103,   126,   127,   104,   336,   354,
    984       -1,   336,   354,    -1,   103,   126,   250,   127,   104,    -1,
    985      103,   126,   127,   104,   101,   247,   102,    -1,   356,   101,
    986      126,   247,   127,   102,    -1,   207,   101,   126,   247,   127,
    987      102,    -1,    -1,   108,    -1,    -1,   123,   155,    -1
     824      -1,     8,    -1,     9,    -1,    16,    -1,    21,    -1,    20,
     825      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     826      -1,    15,    -1,    24,    -1,    25,    -1,    26,    -1,   226,
     827      -1,   220,   226,    -1,   225,   222,    -1,   225,   222,   216,
     828      -1,   225,   222,   226,    -1,   227,    -1,   215,   228,   215,
     829      -1,   224,    -1,   216,   224,    -1,   227,   217,    -1,   227,
     830     224,    -1,    27,   101,   263,   102,    -1,    27,   101,   160,
     831     102,    -1,    71,   101,   263,   102,    -1,    71,   101,   160,
     832     102,    -1,   230,    -1,   220,   230,    -1,   229,   222,    -1,
     833     229,   222,   216,    -1,   233,    -1,   216,   233,    -1,   230,
     834     217,    -1,   232,    -1,   220,   232,    -1,   231,   222,    -1,
     835     231,   222,   216,    -1,    67,    -1,   216,    67,    -1,   232,
     836     217,    -1,   234,    -1,   244,    -1,   235,   106,   236,   107,
     837      -1,   235,   261,    -1,   235,   261,   106,   236,   107,    -1,
     838     235,   101,   126,   272,   127,   102,   106,   236,   107,    -1,
     839     235,   101,   126,   272,   127,   102,   261,    -1,   235,   101,
     840     126,   272,   127,   102,   261,   106,   236,   107,    -1,   235,
     841     101,   126,   272,   127,   102,   101,   278,   102,   106,   236,
     842     107,    -1,   235,   101,   126,   278,   127,   102,   261,    -1,
     843     235,   101,   126,   272,   127,   102,   101,   278,   102,   261,
     844     106,   236,   107,    -1,    30,   298,    -1,    31,   298,    -1,
     845     237,    -1,   236,   237,    -1,   238,   124,    -1,    38,   238,
     846     124,    -1,   239,   124,    -1,    38,   239,   124,    -1,   352,
     847      -1,   352,   261,    -1,   238,   108,   261,    -1,   238,   108,
     848      -1,   214,   240,    -1,   239,   108,   298,   240,    -1,    -1,
     849     242,    -1,   304,   241,    -1,   317,   241,    -1,   343,    -1,
     850      -1,   242,    -1,   109,   154,    -1,    29,   298,    -1,   243,
     851     106,   245,   358,   107,    -1,   243,   261,   106,   245,   358,
     852     107,    -1,   243,   261,    -1,   261,   246,    -1,   245,   108,
     853     261,   246,    -1,    -1,   123,   154,    -1,    -1,   248,    -1,
     854     250,    -1,   249,    -1,   249,   127,   108,   126,   250,    -1,
     855     250,   127,   108,   126,    89,    -1,   249,   127,   108,   126,
     856      89,    -1,   254,    -1,   250,   127,   108,   126,   254,    -1,
     857     249,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
     858     250,   127,   108,   126,   254,    -1,   255,    -1,   250,   127,
     859     108,   126,   255,    -1,    -1,   252,    -1,   253,    -1,   253,
     860     127,   108,   126,    89,    -1,   257,    -1,   256,    -1,   253,
     861     127,   108,   126,   257,    -1,   253,   127,   108,   126,   256,
     862      -1,   256,    -1,   348,   259,   359,    -1,   356,   259,   359,
     863      -1,   216,   356,   259,   359,    -1,   206,    -1,   257,    -1,
     864     348,    -1,   356,    -1,   216,   356,    -1,   357,    -1,   213,
     865     322,   359,    -1,   213,   326,   359,    -1,   213,    -1,   213,
     866     337,    -1,   131,    -1,   258,   108,   131,    -1,   129,    -1,
     867      67,    -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,
     868     131,    -1,    67,    -1,    68,    -1,   352,    -1,   214,    -1,
     869     214,   343,    -1,   352,    -1,   357,    -1,   214,    -1,   214,
     870     331,    -1,    -1,   123,   265,    -1,   155,    -1,   106,   266,
     871     358,   107,    -1,   265,    -1,   267,   265,    -1,   266,   108,
     872     265,    -1,   266,   108,   267,   265,    -1,   268,   109,    -1,
     873     261,   109,    -1,   269,    -1,   268,   269,    -1,   105,   261,
     874      -1,   103,   126,   155,   127,   104,    -1,   103,   126,   296,
     875     127,   104,    -1,   103,   126,   154,    89,   154,   127,   104,
     876      -1,   105,   103,   126,   138,   127,   104,    -1,   271,    -1,
     877     220,   271,    -1,   270,   222,    -1,   270,   222,   216,    -1,
     878      68,   101,   278,   102,    -1,   216,    68,   101,   278,   102,
     879      -1,   271,   217,    -1,   273,   359,    -1,   272,   108,   273,
     880     359,    -1,    -1,   275,   261,   274,   276,    -1,   214,   322,
     881      -1,    32,    -1,    34,    -1,    33,    -1,    -1,   276,   277,
     882      -1,   121,   261,   101,   278,   102,    -1,   121,   106,   126,
     883     284,   107,    -1,   121,   101,   126,   272,   127,   102,   106,
     884     126,   284,   107,   101,   278,   102,    -1,   263,    -1,   155,
     885      -1,   278,   108,   263,    -1,   278,   108,   155,    -1,    32,
     886     280,    -1,   221,    32,   280,    -1,   279,   108,   280,    -1,
     887     281,   276,    -1,   281,   276,   123,   263,    -1,   261,    -1,
     888     260,   101,   126,   272,   127,   102,    -1,    35,   261,   101,
     889     126,   272,   127,   102,   106,   107,    -1,    -1,    35,   261,
     890     101,   126,   272,   127,   102,   106,   283,   284,   107,    -1,
     891     285,    -1,   284,   126,   285,    -1,   286,   127,   124,    -1,
     892     287,   127,   124,    -1,   204,    -1,   206,    -1,   286,   127,
     893     108,   126,   259,    -1,   214,   295,    -1,   287,   127,   108,
     894     126,   295,    -1,    -1,   289,    -1,   291,    -1,   289,   126,
     895     291,    -1,    -1,   289,    -1,   201,    -1,   293,    -1,   189,
     896      -1,    -1,     5,    75,   292,   106,   290,   107,    -1,    38,
     897     291,    -1,   294,    -1,   309,   164,    -1,   313,   126,   196,
     898     164,    -1,   205,   164,    -1,   213,   309,   164,    -1,   216,
     899     309,   164,    -1,   220,   309,   164,    -1,   220,   216,   309,
     900     164,    -1,   213,   313,   126,   196,   164,    -1,   216,   313,
     901     126,   196,   164,    -1,   220,   313,   126,   196,   164,    -1,
     902     220,   216,   313,   126,   196,   164,    -1,   304,    -1,   309,
     903      -1,   317,    -1,   154,   115,   154,    -1,    -1,    57,   101,
     904     133,   102,   298,    -1,    -1,   299,    -1,   300,    -1,   299,
     905     300,    -1,    37,   101,   101,   301,   102,   102,    -1,   302,
     906      -1,   301,   108,   302,    -1,    -1,   303,    -1,   303,   101,
     907     161,   102,    -1,   259,    -1,   223,    -1,   224,    -1,   217,
     908      -1,   305,   298,    -1,   306,    -1,   307,   298,    -1,   308,
     909     298,    -1,   129,    -1,   101,   305,   102,    -1,   111,   304,
     910      -1,   111,   216,   304,    -1,   101,   306,   102,    -1,   305,
     911     335,    -1,   101,   306,   102,   335,    -1,   101,   307,   102,
     912     336,    -1,   101,   307,   102,    -1,   101,   306,   102,   101,
     913     126,   251,   127,   102,    -1,   101,   308,   102,    -1,   310,
     914     298,    -1,   311,    -1,   312,   298,    -1,   305,   101,   126,
     915     251,   127,   102,    -1,   101,   311,   102,   101,   126,   251,
     916     127,   102,    -1,   101,   310,   102,    -1,   111,   309,    -1,
     917     111,   216,   309,    -1,   101,   311,   102,    -1,   101,   311,
     918     102,   335,    -1,   101,   312,   102,   336,    -1,   101,   312,
     919     102,    -1,   314,    -1,   315,    -1,   316,    -1,   305,   101,
     920     258,   102,    -1,   101,   315,   102,   101,   258,   102,    -1,
     921     101,   314,   102,    -1,   111,   313,    -1,   111,   216,   313,
     922      -1,   101,   315,   102,    -1,   101,   315,   102,   335,    -1,
     923     101,   316,   102,   336,    -1,   101,   316,   102,    -1,   318,
     924     298,    -1,   319,    -1,   320,   298,    -1,   321,   298,    -1,
     925      67,    -1,   101,   318,   102,    -1,   111,   317,    -1,   111,
     926     216,   317,    -1,   101,   319,   102,    -1,   318,   335,    -1,
     927     101,   319,   102,   335,    -1,   101,   320,   102,   336,    -1,
     928     101,   320,   102,    -1,   318,   101,   126,   251,   127,   102,
     929      -1,   101,   319,   102,   101,   126,   251,   127,   102,    -1,
     930     101,   321,   102,    -1,   305,   298,    -1,   323,    -1,   324,
     931     298,    -1,   325,   298,    -1,   111,   322,    -1,   111,   216,
     932     322,    -1,   101,   323,   102,    -1,   305,   341,    -1,   101,
     933     323,   102,   335,    -1,   101,   324,   102,   336,    -1,   101,
     934     324,   102,    -1,   305,   101,   126,   251,   127,   102,    -1,
     935     101,   323,   102,   101,   126,   251,   127,   102,    -1,   101,
     936     325,   102,    -1,   327,   298,    -1,   328,    -1,   329,   298,
     937      -1,   330,   298,    -1,    67,    -1,   111,   326,    -1,   111,
     938     216,   326,    -1,   101,   328,   102,    -1,   327,   341,    -1,
     939     101,   328,   102,   341,    -1,   327,   101,   126,   251,   127,
     940     102,    -1,   101,   328,   102,   101,   126,   251,   127,   102,
     941      -1,   332,    -1,   333,   298,    -1,   334,   298,    -1,   111,
     942      -1,   111,   216,    -1,   111,   331,    -1,   111,   216,   331,
     943      -1,   101,   332,   102,    -1,   335,    -1,   101,   332,   102,
     944     335,    -1,   101,   333,   102,   336,    -1,   101,   333,   102,
     945      -1,   101,   126,   251,   127,   102,    -1,   101,   332,   102,
     946     101,   126,   251,   127,   102,    -1,   101,   334,   102,    -1,
     947     103,   126,   127,   104,    -1,   103,   126,   127,   104,   336,
     948      -1,   336,    -1,   103,   126,   155,   127,   104,    -1,   103,
     949     126,   111,   127,   104,    -1,   336,   103,   126,   155,   127,
     950     104,    -1,   336,   103,   126,   111,   127,   104,    -1,   338,
     951      -1,   339,   298,    -1,   340,   298,    -1,   111,    -1,   111,
     952     216,    -1,   111,   337,    -1,   111,   216,   337,    -1,   101,
     953     338,   102,    -1,   341,    -1,   101,   338,   102,   341,    -1,
     954     101,   339,   102,   336,    -1,   101,   339,   102,    -1,   101,
     955     126,   251,   127,   102,    -1,   101,   338,   102,   101,   126,
     956     251,   127,   102,    -1,   101,   340,   102,    -1,   342,    -1,
     957     342,   336,    -1,   336,    -1,   103,   126,   127,   104,    -1,
     958     103,   126,   216,   111,   127,   104,    -1,   103,   126,   216,
     959     127,   104,    -1,   103,   126,   216,   155,   127,   104,    -1,
     960     103,   126,     7,   215,   155,   127,   104,    -1,   103,   126,
     961     216,     7,   155,   127,   104,    -1,   344,    -1,   345,   298,
     962      -1,   346,   298,    -1,   111,    -1,   111,   216,    -1,   111,
     963     343,    -1,   111,   216,   343,    -1,   101,   344,   102,    -1,
     964     335,    -1,   101,   344,   102,   335,    -1,   101,   345,   102,
     965     336,    -1,   101,   345,   102,    -1,   101,   344,   102,   101,
     966     126,   251,   127,   102,    -1,   101,   346,   102,    -1,   348,
     967      -1,   356,    -1,   216,   356,    -1,   349,    -1,   350,    -1,
     968     111,   214,    -1,   216,   111,   214,    -1,   111,   357,    -1,
     969     216,   111,   357,    -1,   111,   347,    -1,   216,   111,   347,
     970      -1,   103,   126,   127,   104,   214,    -1,   351,   214,    -1,
     971     103,   126,   127,   104,   336,   214,    -1,   351,   336,   214,
     972      -1,   336,   214,    -1,   103,   126,   127,   104,   349,    -1,
     973     351,   349,    -1,   103,   126,   127,   104,   336,   349,    -1,
     974     351,   336,   349,    -1,   336,   349,    -1,   103,   126,   216,
     975     111,   127,   104,    -1,   103,   126,   216,   155,   127,   104,
     976      -1,   103,   126,   220,   155,   127,   104,    -1,   103,   126,
     977     220,   216,   155,   127,   104,    -1,   356,    -1,   216,   356,
     978      -1,   353,    -1,   354,    -1,   355,    -1,   111,   214,    -1,
     979     216,   111,   214,    -1,   111,   357,    -1,   216,   111,   357,
     980      -1,   111,   352,    -1,   216,   111,   352,    -1,   103,   126,
     981     127,   104,   214,    -1,   103,   126,   127,   104,   336,   214,
     982      -1,   336,   214,    -1,   103,   126,   127,   104,   354,    -1,
     983     103,   126,   127,   104,   336,   354,    -1,   336,   354,    -1,
     984     103,   126,   250,   127,   104,    -1,   103,   126,   127,   104,
     985     101,   247,   102,    -1,   356,   101,   126,   247,   127,   102,
     986      -1,   207,   101,   126,   247,   127,   102,    -1,    -1,   108,
     987      -1,    -1,   123,   155,    -1
    988988};
    989989
     
    10211021    1173,  1183,  1184,  1189,  1190,  1195,  1197,  1199,  1201,  1203,
    10221022    1206,  1205,  1217,  1218,  1220,  1230,  1231,  1236,  1240,  1242,
    1023     1244,  1246,  1248,  1250,  1252,  1254,  1259,  1261,  1263,  1265,
    1024     1267,  1269,  1271,  1273,  1275,  1277,  1279,  1281,  1287,  1288,
    1025     1290,  1292,  1294,  1299,  1300,  1306,  1307,  1309,  1311,  1316,
    1026     1318,  1320,  1322,  1327,  1328,  1330,  1332,  1337,  1338,  1340,
    1027     1345,  1346,  1348,  1350,  1355,  1357,  1359,  1364,  1365,  1369,
    1028     1371,  1373,  1375,  1377,  1379,  1381,  1383,  1386,  1391,  1393,
    1029     1398,  1400,  1405,  1406,  1408,  1409,  1414,  1415,  1417,  1419,
    1030     1424,  1426,  1432,  1433,  1435,  1438,  1441,  1446,  1447,  1452,
    1031     1457,  1461,  1463,  1465,  1470,  1472,  1478,  1479,  1487,  1488,
    1032     1492,  1493,  1494,  1496,  1498,  1506,  1507,  1509,  1511,  1516,
    1033     1517,  1523,  1524,  1528,  1529,  1534,  1535,  1536,  1538,  1547,
    1034     1548,  1550,  1553,  1555,  1559,  1560,  1561,  1563,  1565,  1569,
    1035     1574,  1582,  1583,  1592,  1594,  1599,  1600,  1601,  1605,  1606,
    1036     1607,  1611,  1612,  1613,  1617,  1618,  1619,  1624,  1625,  1626,
    1037     1627,  1633,  1634,  1638,  1639,  1643,  1644,  1645,  1646,  1661,
    1038     1662,  1667,  1668,  1672,  1674,  1678,  1680,  1682,  1706,  1707,
    1039     1709,  1711,  1716,  1718,  1720,  1725,  1726,  1732,  1731,  1735,
    1040     1739,  1741,  1743,  1749,  1750,  1755,  1760,  1762,  1767,  1769,
    1041     1770,  1772,  1777,  1779,  1781,  1786,  1788,  1793,  1798,  1806,
    1042     1812,  1811,  1825,  1826,  1831,  1832,  1836,  1841,  1846,  1854,
    1043     1859,  1870,  1871,  1882,  1883,  1889,  1890,  1894,  1895,  1896,
    1044     1899,  1898,  1909,  1914,  1921,  1927,  1936,  1942,  1948,  1954,
    1045     1960,  1968,  1974,  1982,  1988,  1997,  1998,  1999,  2003,  2007,
    1046     2009,  2012,  2014,  2018,  2019,  2023,  2027,  2028,  2031,  2033,
    1047     2034,  2038,  2039,  2040,  2041,  2076,  2077,  2078,  2079,  2083,
    1048     2088,  2093,  2095,  2097,  2102,  2104,  2106,  2108,  2113,  2115,
    1049     2125,  2126,  2127,  2131,  2133,  2135,  2140,  2142,  2144,  2149,
    1050     2151,  2153,  2162,  2163,  2164,  2168,  2170,  2172,  2177,  2179,
    1051     2181,  2186,  2188,  2190,  2205,  2206,  2207,  2208,  2212,  2217,
    1052     2222,  2224,  2226,  2231,  2233,  2235,  2237,  2242,  2244,  2246,
    1053     2256,  2257,  2258,  2259,  2263,  2265,  2267,  2272,  2274,  2276,
    1054     2278,  2283,  2285,  2287,  2318,  2319,  2320,  2321,  2325,  2333,
    1055     2335,  2337,  2342,  2344,  2349,  2351,  2365,  2366,  2367,  2371,
    1056     2373,  2375,  2377,  2379,  2384,  2385,  2387,  2389,  2394,  2396,
    1057     2398,  2404,  2406,  2408,  2412,  2414,  2416,  2418,  2432,  2433,
    1058     2434,  2438,  2440,  2442,  2444,  2446,  2451,  2452,  2454,  2456,
    1059     2461,  2463,  2465,  2471,  2472,  2474,  2484,  2487,  2489,  2492,
    1060     2494,  2496,  2509,  2510,  2511,  2515,  2517,  2519,  2521,  2523,
    1061     2528,  2529,  2531,  2533,  2538,  2540,  2548,  2549,  2550,  2555,
    1062     2556,  2560,  2562,  2564,  2566,  2568,  2570,  2577,  2579,  2581,
    1063     2583,  2585,  2587,  2589,  2591,  2593,  2595,  2600,  2602,  2604,
    1064     2609,  2635,  2636,  2638,  2642,  2643,  2647,  2649,  2651,  2653,
    1065     2655,  2657,  2664,  2666,  2668,  2670,  2672,  2674,  2679,  2684,
    1066     2686,  2688,  2708,  2710,  2715,  2716
     1023    1244,  1246,  1248,  1251,  1256,  1258,  1260,  1262,  1264,  1266,
     1024    1268,  1270,  1272,  1274,  1276,  1278,  1284,  1285,  1287,  1289,
     1025    1291,  1296,  1297,  1303,  1304,  1306,  1308,  1313,  1315,  1317,
     1026    1319,  1324,  1325,  1327,  1329,  1334,  1335,  1337,  1342,  1343,
     1027    1345,  1347,  1352,  1354,  1356,  1361,  1362,  1366,  1368,  1370,
     1028    1372,  1374,  1376,  1378,  1380,  1383,  1388,  1390,  1395,  1397,
     1029    1402,  1403,  1405,  1406,  1411,  1412,  1414,  1416,  1421,  1423,
     1030    1429,  1430,  1432,  1435,  1438,  1443,  1444,  1449,  1454,  1458,
     1031    1460,  1462,  1467,  1469,  1475,  1476,  1484,  1485,  1489,  1490,
     1032    1491,  1493,  1495,  1503,  1504,  1506,  1508,  1513,  1514,  1520,
     1033    1521,  1525,  1526,  1531,  1532,  1533,  1535,  1544,  1545,  1547,
     1034    1550,  1552,  1556,  1557,  1558,  1560,  1562,  1566,  1571,  1579,
     1035    1580,  1589,  1591,  1596,  1597,  1598,  1602,  1603,  1604,  1608,
     1036    1609,  1610,  1614,  1615,  1616,  1621,  1622,  1623,  1624,  1630,
     1037    1631,  1635,  1636,  1640,  1641,  1642,  1643,  1658,  1659,  1664,
     1038    1665,  1669,  1671,  1675,  1677,  1679,  1703,  1704,  1706,  1708,
     1039    1713,  1715,  1717,  1722,  1723,  1729,  1728,  1732,  1736,  1738,
     1040    1740,  1746,  1747,  1752,  1757,  1759,  1764,  1766,  1767,  1769,
     1041    1774,  1776,  1778,  1783,  1785,  1790,  1795,  1803,  1809,  1808,
     1042    1822,  1823,  1828,  1829,  1833,  1838,  1843,  1851,  1856,  1867,
     1043    1868,  1879,  1880,  1886,  1887,  1891,  1892,  1893,  1896,  1895,
     1044    1906,  1911,  1918,  1924,  1933,  1939,  1945,  1951,  1957,  1965,
     1045    1971,  1979,  1985,  1994,  1995,  1996,  2000,  2004,  2006,  2009,
     1046    2011,  2015,  2016,  2020,  2024,  2025,  2028,  2030,  2031,  2035,
     1047    2036,  2037,  2038,  2073,  2074,  2075,  2076,  2080,  2085,  2090,
     1048    2092,  2094,  2099,  2101,  2103,  2105,  2110,  2112,  2122,  2123,
     1049    2124,  2128,  2130,  2132,  2137,  2139,  2141,  2146,  2148,  2150,
     1050    2159,  2160,  2161,  2165,  2167,  2169,  2174,  2176,  2178,  2183,
     1051    2185,  2187,  2202,  2203,  2204,  2205,  2209,  2214,  2219,  2221,
     1052    2223,  2228,  2230,  2232,  2234,  2239,  2241,  2243,  2253,  2254,
     1053    2255,  2256,  2260,  2262,  2264,  2269,  2271,  2273,  2275,  2280,
     1054    2282,  2284,  2315,  2316,  2317,  2318,  2322,  2330,  2332,  2334,
     1055    2339,  2341,  2346,  2348,  2362,  2363,  2364,  2368,  2370,  2372,
     1056    2374,  2376,  2381,  2382,  2384,  2386,  2391,  2393,  2395,  2401,
     1057    2403,  2405,  2409,  2411,  2413,  2415,  2429,  2430,  2431,  2435,
     1058    2437,  2439,  2441,  2443,  2448,  2449,  2451,  2453,  2458,  2460,
     1059    2462,  2468,  2469,  2471,  2481,  2484,  2486,  2489,  2491,  2493,
     1060    2506,  2507,  2508,  2512,  2514,  2516,  2518,  2520,  2525,  2526,
     1061    2528,  2530,  2535,  2537,  2545,  2546,  2547,  2552,  2553,  2557,
     1062    2559,  2561,  2563,  2565,  2567,  2574,  2576,  2578,  2580,  2582,
     1063    2584,  2586,  2588,  2590,  2592,  2597,  2599,  2601,  2606,  2632,
     1064    2633,  2635,  2639,  2640,  2644,  2646,  2648,  2650,  2652,  2654,
     1065    2661,  2663,  2665,  2667,  2669,  2671,  2676,  2681,  2683,  2685,
     1066    2705,  2707,  2712,  2713
    10671067};
    10681068#endif
     
    12341234     215,   216,   216,   217,   217,   218,   218,   218,   218,   218,
    12351235     219,   218,   220,   220,   220,   221,   221,   222,   223,   223,
    1236      223,   223,   223,   223,   223,   223,   224,   224,   224,   224,
    1237      224,   224,   224,   224,   224,   224,   224,   224,   225,   225,
    1238      225,   225,   225,   226,   226,   227,   227,   227,   227,   228,
    1239      228,   228,   228,   229,   229,   229,   229,   230,   230,   230,
    1240      231,   231,   231,   231,   232,   232,   232,   233,   233,   234,
    1241      234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
    1242      236,   236,   237,   237,   237,   237,   238,   238,   238,   238,
    1243      239,   239,   240,   240,   240,   240,   240,   241,   241,   242,
    1244      243,   244,   244,   244,   245,   245,   246,   246,   247,   247,
    1245      248,   248,   248,   248,   248,   249,   249,   249,   249,   250,
    1246      250,   251,   251,   252,   252,   253,   253,   253,   253,   254,
    1247      254,   254,   254,   254,   255,   255,   255,   255,   255,   256,
    1248      256,   257,   257,   258,   258,   259,   259,   259,   260,   260,
    1249      260,   261,   261,   261,   262,   262,   262,   263,   263,   263,
    1250      263,   264,   264,   265,   265,   266,   266,   266,   266,   267,
    1251      267,   268,   268,   269,   269,   269,   269,   269,   270,   270,
    1252      270,   270,   271,   271,   271,   272,   272,   274,   273,   273,
    1253      275,   275,   275,   276,   276,   277,   277,   277,   278,   278,
    1254      278,   278,   279,   279,   279,   280,   280,   281,   281,   282,
    1255      283,   282,   284,   284,   285,   285,   286,   286,   286,   287,
    1256      287,   288,   288,   289,   289,   290,   290,   291,   291,   291,
    1257      292,   291,   291,   293,   293,   293,   294,   294,   294,   294,
    1258      294,   294,   294,   294,   294,   295,   295,   295,   296,   297,
    1259      297,   298,   298,   299,   299,   300,   301,   301,   302,   302,
    1260      302,   303,   303,   303,   303,   304,   304,   304,   304,   305,
    1261      305,   306,   306,   306,   307,   307,   307,   307,   308,   308,
    1262      309,   309,   309,   310,   310,   310,   311,   311,   311,   312,
    1263      312,   312,   313,   313,   313,   314,   314,   314,   315,   315,
    1264      315,   316,   316,   316,   317,   317,   317,   317,   318,   318,
    1265      319,   319,   319,   320,   320,   320,   320,   321,   321,   321,
    1266      322,   322,   322,   322,   323,   323,   323,   324,   324,   324,
    1267      324,   325,   325,   325,   326,   326,   326,   326,   327,   328,
    1268      328,   328,   329,   329,   330,   330,   331,   331,   331,   332,
    1269      332,   332,   332,   332,   333,   333,   333,   333,   334,   334,
    1270      334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
    1271      337,   338,   338,   338,   338,   338,   339,   339,   339,   339,
    1272      340,   340,   340,   341,   341,   341,   342,   342,   342,   342,
    1273      342,   342,   343,   343,   343,   344,   344,   344,   344,   344,
    1274      345,   345,   345,   345,   346,   346,   347,   347,   347,   348,
    1275      348,   349,   349,   349,   349,   349,   349,   350,   350,   350,
    1276      350,   350,   350,   350,   350,   350,   350,   351,   351,   351,
    1277      351,   352,   352,   352,   353,   353,   354,   354,   354,   354,
    1278      354,   354,   355,   355,   355,   355,   355,   355,   356,   357,
    1279      357,   357,   358,   358,   359,   359
     1236     223,   223,   223,   223,   224,   224,   224,   224,   224,   224,
     1237     224,   224,   224,   224,   224,   224,   225,   225,   225,   225,
     1238     225,   226,   226,   227,   227,   227,   227,   228,   228,   228,
     1239     228,   229,   229,   229,   229,   230,   230,   230,   231,   231,
     1240     231,   231,   232,   232,   232,   233,   233,   234,   234,   234,
     1241     234,   234,   234,   234,   234,   234,   235,   235,   236,   236,
     1242     237,   237,   237,   237,   238,   238,   238,   238,   239,   239,
     1243     240,   240,   240,   240,   240,   241,   241,   242,   243,   244,
     1244     244,   244,   245,   245,   246,   246,   247,   247,   248,   248,
     1245     248,   248,   248,   249,   249,   249,   249,   250,   250,   251,
     1246     251,   252,   252,   253,   253,   253,   253,   254,   254,   254,
     1247     254,   254,   255,   255,   255,   255,   255,   256,   256,   257,
     1248     257,   258,   258,   259,   259,   259,   260,   260,   260,   261,
     1249     261,   261,   262,   262,   262,   263,   263,   263,   263,   264,
     1250     264,   265,   265,   266,   266,   266,   266,   267,   267,   268,
     1251     268,   269,   269,   269,   269,   269,   270,   270,   270,   270,
     1252     271,   271,   271,   272,   272,   274,   273,   273,   275,   275,
     1253     275,   276,   276,   277,   277,   277,   278,   278,   278,   278,
     1254     279,   279,   279,   280,   280,   281,   281,   282,   283,   282,
     1255     284,   284,   285,   285,   286,   286,   286,   287,   287,   288,
     1256     288,   289,   289,   290,   290,   291,   291,   291,   292,   291,
     1257     291,   293,   293,   293,   294,   294,   294,   294,   294,   294,
     1258     294,   294,   294,   295,   295,   295,   296,   297,   297,   298,
     1259     298,   299,   299,   300,   301,   301,   302,   302,   302,   303,
     1260     303,   303,   303,   304,   304,   304,   304,   305,   305,   306,
     1261     306,   306,   307,   307,   307,   307,   308,   308,   309,   309,
     1262     309,   310,   310,   310,   311,   311,   311,   312,   312,   312,
     1263     313,   313,   313,   314,   314,   314,   315,   315,   315,   316,
     1264     316,   316,   317,   317,   317,   317,   318,   318,   319,   319,
     1265     319,   320,   320,   320,   320,   321,   321,   321,   322,   322,
     1266     322,   322,   323,   323,   323,   324,   324,   324,   324,   325,
     1267     325,   325,   326,   326,   326,   326,   327,   328,   328,   328,
     1268     329,   329,   330,   330,   331,   331,   331,   332,   332,   332,
     1269     332,   332,   333,   333,   333,   333,   334,   334,   334,   335,
     1270     335,   335,   336,   336,   336,   336,   337,   337,   337,   338,
     1271     338,   338,   338,   338,   339,   339,   339,   339,   340,   340,
     1272     340,   341,   341,   341,   342,   342,   342,   342,   342,   342,
     1273     343,   343,   343,   344,   344,   344,   344,   344,   345,   345,
     1274     345,   345,   346,   346,   347,   347,   347,   348,   348,   349,
     1275     349,   349,   349,   349,   349,   350,   350,   350,   350,   350,
     1276     350,   350,   350,   350,   350,   351,   351,   351,   351,   352,
     1277     352,   352,   353,   353,   354,   354,   354,   354,   354,   354,
     1278     355,   355,   355,   355,   355,   355,   356,   357,   357,   357,
     1279     358,   358,   359,   359
    12801280};
    12811281
     
    13141314       0,     5,     1,     2,     3,     1,     2,     1,     1,     1,
    13151315       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1316        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
    1317        2,     3,     3,     1,     3,     1,     2,     2,     2,     4,
    1318        4,     4,     4,     1,     2,     2,     3,     1,     2,     2,
    1319        1,     2,     2,     3,     1,     2,     2,     1,     1,     4,
    1320        2,     5,     9,     7,    10,    12,     7,    13,     2,     2,
    1321        1,     2,     2,     3,     2,     3,     1,     2,     3,     2,
    1322        2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
    1323        2,     5,     6,     2,     2,     4,     0,     2,     0,     1,
    1324        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    1325        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    1326        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    1327        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    1328        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1329        2,     0,     2,     1,     4,     1,     2,     3,     4,     2,
    1330        2,     1,     2,     2,     5,     5,     7,     6,     1,     2,
    1331        2,     3,     4,     5,     2,     2,     4,     0,     4,     2,
    1332        1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
    1333        3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
    1334        0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
    1335        5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
    1336        0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
    1337        4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
    1338        5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
    1339        4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
    1340        3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
    1341        2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
    1342        4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
    1343        3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
    1344        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1345        2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
    1346        3,     6,     8,     3,     2,     1,     2,     2,     1,     2,
    1347        3,     3,     2,     4,     6,     8,     1,     2,     2,     1,
     1316       1,     1,     1,     1,     1,     1,     1,     2,     2,     3,
     1317       3,     1,     3,     1,     2,     2,     2,     4,     4,     4,
     1318       4,     1,     2,     2,     3,     1,     2,     2,     1,     2,
     1319       2,     3,     1,     2,     2,     1,     1,     4,     2,     5,
     1320       9,     7,    10,    12,     7,    13,     2,     2,     1,     2,
     1321       2,     3,     2,     3,     1,     2,     3,     2,     2,     4,
     1322       0,     1,     2,     2,     1,     0,     1,     2,     2,     5,
     1323       6,     2,     2,     4,     0,     2,     0,     1,     1,     1,
     1324       5,     5,     5,     1,     5,     5,     9,     1,     5,     0,
     1325       1,     1,     5,     1,     1,     5,     5,     1,     3,     3,
     1326       4,     1,     1,     1,     1,     2,     1,     3,     3,     1,
     1327       2,     1,     3,     1,     1,     1,     1,     1,     1,     1,
     1328       1,     1,     1,     1,     2,     1,     1,     1,     2,     0,
     1329       2,     1,     4,     1,     2,     3,     4,     2,     2,     1,
     1330       2,     2,     5,     5,     7,     6,     1,     2,     2,     3,
     1331       4,     5,     2,     2,     4,     0,     4,     2,     1,     1,
     1332       1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
     1333       2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
     1334       1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
     1335       1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
     1336       2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
     1337       5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
     1338       1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
     1339       1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
     1340       3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
     1341       2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
     1342       1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
     1343       4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
     1344       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1345       2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
     1346       8,     3,     2,     1,     2,     2,     1,     2,     3,     3,
     1347       2,     4,     6,     8,     1,     2,     2,     1,     2,     2,
     1348       3,     3,     1,     4,     4,     3,     5,     8,     3,     4,
     1349       5,     1,     5,     5,     6,     6,     1,     2,     2,     1,
    13481350       2,     2,     3,     3,     1,     4,     4,     3,     5,     8,
    1349        3,     4,     5,     1,     5,     5,     6,     6,     1,     2,
    1350        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1351        5,     8,     3,     1,     2,     1,     4,     6,     5,     6,
    1352        7,     7,     1,     2,     2,     1,     2,     2,     3,     3,
    1353        1,     4,     4,     3,     8,     3,     1,     1,     2,     1,
    1354        1,     2,     3,     2,     3,     2,     3,     5,     2,     6,
    1355        3,     2,     5,     2,     6,     3,     2,     6,     6,     6,
    1356        7,     1,     2,     1,     1,     1,     2,     3,     2,     3,
    1357        2,     3,     5,     6,     2,     5,     6,     2,     5,     7,
    1358        6,     6,     0,     1,     0,     2
     1351       3,     1,     2,     1,     4,     6,     5,     6,     7,     7,
     1352       1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
     1353       4,     3,     8,     3,     1,     1,     2,     1,     1,     2,
     1354       3,     2,     3,     2,     3,     5,     2,     6,     3,     2,
     1355       5,     2,     6,     3,     2,     6,     6,     6,     7,     1,
     1356       2,     1,     1,     1,     2,     3,     2,     3,     2,     3,
     1357       5,     6,     2,     5,     6,     2,     5,     7,     6,     6,
     1358       0,     1,     0,     2
    13591359};
    13601360
     
    13651365{
    13661366     279,   279,   300,   298,   301,   299,   302,   303,   285,   287,
    1367      286,     0,   288,   314,   306,   311,   309,   310,   308,   307,
    1368      312,   313,   315,   316,   317,   531,   531,   531,     0,     0,
    1369        0,   279,   279,   289,   304,   305,     7,   344,     0,     8,
    1370       13,    14,     0,     2,   279,   549,     9,   509,   507,   231,
    1371        3,   441,     3,   244,     0,     3,     3,     3,   232,     3,
    1372        0,     0,     0,   280,   281,   283,   279,   292,   295,   297,
    1373      325,   271,   318,   323,   272,   333,   273,   340,   337,   347,
    1374        0,     0,   348,   274,   458,     3,     3,     0,     2,   503,
    1375      508,   513,   284,     0,     0,   531,   561,   531,     2,   572,
    1376      573,   574,   279,     0,   714,   715,     0,    12,   279,     0,
    1377      255,   256,     0,   280,   275,   276,   277,   278,   510,   290,
    1378      380,   532,   533,   358,   359,    12,   432,   433,    11,   428,
    1379      431,     0,   487,   482,   473,   432,   433,     0,     0,   512,
    1380        0,   280,   279,     0,     0,     0,     0,     0,     0,     0,
    1381        0,   279,     2,     0,   716,   280,   566,   578,   720,   713,
    1382      711,   718,     0,     0,   238,     2,     0,   516,   426,   427,
    1383      425,     0,     0,     0,     0,   531,     0,   588,     0,     0,
    1384      529,   525,   531,   546,   531,   531,   526,     2,   527,   531,
    1385      585,   531,   531,     0,     0,     0,   279,   279,   298,   345,
    1386        0,     2,   279,   245,   282,   293,   326,   338,     0,     2,
    1387        0,   441,   246,   280,   319,   334,   341,   459,     0,     2,
    1388        0,   296,   320,   327,   328,     0,   335,   339,   342,   346,
    1389        2,   279,   350,     0,   383,   460,   464,     0,     0,     0,
    1390        1,   279,     2,   514,   560,   562,   279,     2,   724,   280,
    1391      727,   529,   529,   280,     0,     0,     0,   258,   531,   526,
    1392        2,   279,     0,     0,   279,   534,     2,   485,     2,   538,
    1393        0,     0,     0,     0,    17,    56,     4,     5,     6,    15,
    1394        0,     0,     0,   279,     2,     0,   279,    62,    63,    64,
    1395       65,    19,    18,    20,    23,    47,    66,     0,    69,    73,
    1396       76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
    1397      479,   734,   439,   478,     0,   437,   438,     0,   550,   565,
    1398      568,   571,   577,   580,   583,     2,   279,     0,     3,   413,
    1399        0,   421,   280,   279,   292,   318,   272,   333,   340,     3,
    1400        3,   395,   399,   409,   414,   458,   279,   415,   689,   690,
    1401      279,   416,   418,   279,     2,   567,   579,   712,     2,     2,
    1402      233,     2,     0,     0,   443,   442,   137,     2,     2,   235,
    1403        2,     2,   234,     2,   266,     2,   267,     0,   265,     0,
    1404        0,     0,     0,     0,     0,     0,     0,     0,   551,   590,
    1405        0,   441,     2,   545,   554,   643,   547,   548,   517,   279,
    1406        2,   584,   593,   586,   587,     0,   261,   279,   279,   324,
    1407        0,   280,   279,   279,   717,   721,   719,   518,   279,   529,
    1408      239,   247,   294,     0,     2,   519,   279,   483,   321,   322,
    1409      268,   336,   343,   279,   279,     2,   372,   279,   360,     0,
    1410        0,   366,   711,   279,   732,   386,     0,   461,   484,   236,
    1411      237,   504,   279,   423,     0,   279,   221,     0,     2,   223,
    1412        0,   280,     0,   241,     2,   242,   263,     0,     0,     2,
    1413      279,   529,   279,   470,   472,   471,     0,     0,   734,     0,
    1414      279,     0,   279,   474,   279,   544,   542,   543,   541,     0,
    1415      536,   539,    66,   101,     0,   279,    54,    50,   279,    59,
    1416      279,   279,    48,    49,    61,     2,   124,     0,     0,   435,
    1417        0,   434,   279,    52,    53,    16,     0,    30,    31,    35,
    1418        2,     0,   114,   115,   116,   117,   118,   119,   120,   121,
    1419      122,   123,     0,     0,    51,     0,     0,     0,     0,     0,
     1367     286,     0,   288,   312,   304,   309,   307,   308,   306,   305,
     1368     310,   311,   313,   314,   315,   529,   529,   529,     0,     0,
     1369       0,   279,   279,   289,     7,   342,     0,     8,    13,    14,
     1370       0,     2,   279,   547,     9,   507,   505,   231,     3,   439,
     1371       3,   244,     0,     3,     3,     3,   232,     3,     0,     0,
     1372       0,   280,   281,   283,   279,   292,   295,   297,   323,   271,
     1373     316,   321,   272,   331,   273,   338,   335,   345,     0,     0,
     1374     346,   274,   456,     3,     3,     0,     2,   501,   506,   511,
     1375     284,     0,     0,   529,   559,   529,     2,   570,   571,   572,
     1376     279,     0,   712,   713,     0,    12,   279,     0,   255,   256,
     1377       0,   280,   275,   276,   277,   278,   508,   290,   378,   530,
     1378     531,   356,   357,    12,   430,   431,    11,   426,   429,     0,
     1379     485,   480,   471,   430,   431,     0,     0,   510,     0,   280,
     1380     279,     0,     0,     0,     0,     0,     0,     0,     0,   279,
     1381       2,     0,   714,   280,   564,   576,   718,   711,   709,   716,
     1382       0,     0,   238,     2,     0,   514,   424,   425,   423,     0,
     1383       0,     0,     0,   529,     0,   586,     0,     0,   527,   523,
     1384     529,   544,   529,   529,   524,     2,   525,   529,   583,   529,
     1385     529,     0,     0,     0,   279,   279,   298,   343,     0,     2,
     1386     279,   245,   282,   293,   324,   336,     0,     2,     0,   439,
     1387     246,   280,   317,   332,   339,   457,     0,     2,     0,   296,
     1388     318,   325,   326,     0,   333,   337,   340,   344,     2,   279,
     1389     348,     0,   381,   458,   462,     0,     0,     0,     1,   279,
     1390       2,   512,   558,   560,   279,     2,   722,   280,   725,   527,
     1391     527,   280,     0,     0,     0,   258,   529,   524,     2,   279,
     1392       0,     0,   279,   532,     2,   483,     2,   536,     0,     0,
     1393       0,     0,    17,    56,     4,     5,     6,    15,     0,     0,
     1394       0,   279,     2,     0,   279,    62,    63,    64,    65,    19,
     1395      18,    20,    23,    47,    66,     0,    69,    73,    76,    79,
     1396      84,    87,    89,    91,    93,    95,    97,   102,   477,   732,
     1397     437,   476,     0,   435,   436,     0,   548,   563,   566,   569,
     1398     575,   578,   581,     2,   279,     0,     3,   411,     0,   419,
     1399     280,   279,   292,   316,   272,   331,   338,     3,     3,   393,
     1400     397,   407,   412,   456,   279,   413,   687,   688,   279,   414,
     1401     416,   279,     2,   565,   577,   710,     2,     2,   233,     2,
     1402       0,     0,   441,   440,   137,     2,     2,   235,     2,     2,
     1403     234,     2,   266,     2,   267,     0,   265,     0,     0,     0,
     1404       0,     0,     0,     0,     0,     0,   549,   588,     0,   439,
     1405       2,   543,   552,   641,   545,   546,   515,   279,     2,   582,
     1406     591,   584,   585,     0,   261,   279,   279,   322,     0,   280,
     1407     279,   279,   715,   719,   717,   516,   279,   527,   239,   247,
     1408     294,     0,     2,   517,   279,   481,   319,   320,   268,   334,
     1409     341,   279,   279,     2,   370,   279,   358,     0,     0,   364,
     1410     709,   279,   730,   384,     0,   459,   482,   236,   237,   502,
     1411     279,   421,     0,   279,   221,     0,     2,   223,     0,   280,
     1412       0,   241,     2,   242,   263,     0,     0,     2,   279,   527,
     1413     279,   468,   470,   469,     0,     0,   732,     0,   279,     0,
     1414     279,   472,   279,   542,   540,   541,   539,     0,   534,   537,
     1415      66,   101,     0,   279,    54,    50,   279,    59,   279,   279,
     1416      48,    49,    61,     2,   124,     0,     0,   433,     0,   432,
     1417     279,    52,    53,    16,     0,    30,    31,    35,     2,     0,
     1418     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
     1419       0,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    14201420       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1421        0,     0,     0,     0,     0,   105,     2,   629,   440,   626,
    1422      531,   531,   634,   462,   279,     2,   569,     2,   570,     0,
    1423      581,   582,   279,     2,   279,     0,   691,   280,   695,   686,
    1424      687,   693,   279,     0,   618,     2,     2,   651,   531,   734,
    1425      601,   531,   531,   734,   531,   615,   531,   531,   665,   422,
    1426      648,   531,   531,   656,   663,   279,   417,   280,     0,     0,
    1427      279,   701,   280,   706,   734,   698,   279,   703,   734,     0,
    1428      279,   279,     0,     3,    17,     2,     0,     0,   445,   732,
    1429        0,     0,   451,   225,     0,   279,     0,     0,     0,   529,
    1430      553,   557,   559,   589,   592,   596,   599,   552,   591,     0,
    1431      269,     3,     0,   279,   262,     0,     0,     0,     0,   260,
    1432        0,     2,     0,     0,   243,   520,   279,     0,   439,     3,
    1433        3,     0,     0,   279,     0,     0,   675,   370,   373,   377,
    1434      531,   377,   680,   376,   672,   531,   531,   349,   361,   369,
    1435      362,   531,   364,   367,   279,   733,     0,     0,   384,   732,
    1436      280,     3,   402,     3,   406,   405,   575,     0,   515,   279,
    1437        3,     3,   279,   421,   280,     3,   415,   416,     2,     0,
    1438        0,     0,   469,   291,   279,   465,   467,     3,     2,     2,
    1439        0,   486,     3,     0,   538,   126,     0,   210,     0,     0,
    1440        2,     0,     0,    36,     0,     0,   279,    21,     0,    22,
    1441        0,   675,   436,     0,   106,     0,     3,     2,    28,     2,
    1442        0,    33,     0,     2,    26,   103,   104,    70,    71,    72,
    1443       74,    75,    77,    78,    82,    83,    80,    81,    85,    86,
    1444       88,    90,    92,    94,    96,     0,     0,   735,   279,     0,
    1445        0,     0,   630,   631,   627,   628,   481,   480,   279,     0,
    1446        0,     0,   280,   279,   279,   645,   688,   344,     0,   722,
    1447      279,   725,   644,     2,   279,     0,     0,     0,     0,     0,
    1448        0,     0,     0,     3,   652,   604,   619,   653,     2,   600,
    1449      607,   419,   602,   603,   420,     2,   614,   622,   616,   617,
    1450      649,   650,   664,   692,   696,   694,   734,   253,     2,   728,
    1451        2,   410,   700,   705,   411,   279,     3,   389,     3,     3,
    1452        3,   441,     0,     3,     3,     2,   453,   450,   733,     0,
    1453      446,     2,   449,   452,     0,   279,   226,   248,     3,   257,
    1454      259,     0,   441,     2,   555,   556,     2,   594,   595,     0,
    1455        3,     0,   521,     3,   330,   329,   332,   331,   463,   279,
    1456        0,   522,     0,   523,     2,   629,     0,     0,   363,   365,
    1457        2,     0,     0,     0,     0,     0,   379,   676,   677,   374,
    1458      378,   375,   673,   674,   368,   372,   351,   386,   381,   387,
    1459        0,     0,     0,   424,   224,     0,     0,     3,     2,   651,
    1460      417,     0,   511,     0,   734,   473,     0,   279,   279,   279,
    1461        0,   535,   537,   127,     0,   206,     0,     0,   211,   212,
    1462       55,    60,   279,     0,    58,    57,     0,     0,   125,   676,
    1463        0,    67,    68,   107,   112,     3,   108,   106,     0,     0,
    1464        3,    25,    35,     3,     0,    99,     0,     3,   633,   637,
    1465      640,   632,     3,   576,   108,     2,   279,     3,     3,   280,
    1466        0,     2,     2,   723,   726,     0,     3,   606,   610,   613,
    1467      621,   655,   659,   662,   279,     0,     3,   605,   620,   654,
    1468      279,   279,   412,   279,   279,   279,     0,     0,     0,     0,
    1469      240,   108,     0,   101,     0,     3,     3,     0,   447,     0,
    1470      444,     0,     0,   229,   279,     0,     0,   126,     0,     0,
    1471        0,     0,     0,   126,     0,     0,     0,     2,     0,     0,
    1472        3,   128,   129,     2,   139,   130,   131,   132,   133,   134,
    1473      135,   141,   143,     0,     0,     0,   270,   279,   279,   531,
    1474      641,     0,     0,     0,   524,   630,     0,     0,   279,   279,
    1475      679,   683,   685,   678,   371,   385,   382,   563,     2,   647,
    1476      646,     0,   652,     2,   466,   468,   488,     3,   496,   497,
    1477        0,     2,   492,     3,     3,     0,     0,   540,     0,     0,
    1478      210,     0,     3,    37,   108,   732,   106,     0,     3,   644,
    1479       42,     3,    40,     3,    34,     0,     3,    98,   100,     0,
    1480        2,   635,   636,     0,   697,   279,   702,   279,     0,     0,
    1481        0,     3,   279,   279,   279,   621,     0,     2,   608,   609,
    1482        2,   623,     2,   657,   658,     0,   666,     0,     3,     0,
    1483        3,     3,     3,     3,   397,   396,   400,     0,   731,     2,
    1484        2,   730,   109,     0,     0,     0,     0,     3,   448,     3,
    1485        0,   227,   142,     3,   280,   279,     0,     0,     0,     0,
    1486        2,   187,     0,   185,     0,     0,     0,     0,     0,     0,
    1487      191,     0,   279,   531,   147,   144,   279,     0,     0,   252,
    1488      264,     3,     3,   530,   642,   597,   279,   279,   279,   353,
    1489      356,     0,     2,   681,   682,   279,   251,   279,     0,   499,
    1490      476,   279,     0,     0,   475,   490,     0,   207,     0,   213,
    1491      106,     0,     0,   113,   110,     0,     0,     0,     0,     0,
    1492        0,    24,     0,   638,   279,   564,   699,   704,   707,   708,
    1493      709,     0,     3,     3,   660,   279,   279,   279,     3,     3,
    1494        0,   668,     0,     0,     0,     0,   729,   279,   279,     3,
    1495      528,   109,   455,     0,     0,   230,   280,     0,     0,     0,
    1496        0,   279,   188,   186,     0,   183,   189,     0,     0,     0,
    1497      192,   195,   193,   190,     0,   126,   140,   138,   228,     0,
    1498        0,     0,   279,   279,   108,   279,   404,   408,   407,     0,
    1499      493,     2,   494,     2,   495,   489,   279,   214,     0,     0,
    1500        3,   644,    32,   111,     2,    45,     2,    43,    41,    29,
    1501      109,    27,     3,   710,     0,     0,     3,     3,     3,     0,
    1502        0,   667,   669,   611,   624,   254,     2,   394,     3,   393,
    1503        0,   457,   454,   126,     0,     0,   126,     3,     0,   126,
    1504      184,     0,     2,   200,   194,     0,   108,   136,   558,   598,
    1505        0,   352,   279,     3,     2,     0,     0,     2,   208,   215,
    1506        0,     0,     0,     0,     0,     0,   250,   249,     0,     0,
    1507        0,   670,   671,   279,     0,   456,   148,     0,     0,     2,
    1508      161,   126,   150,     0,   178,     0,   126,     0,     2,   152,
    1509        0,     2,     2,   279,     0,   354,     0,   279,   498,   500,
    1510      491,     0,     0,   111,    38,     3,     3,   639,   612,   625,
    1511      661,   398,   126,   154,   157,     0,   156,   160,     3,   163,
    1512      162,     0,   126,   180,   126,     3,     0,   279,     0,     2,
    1513      279,   279,   684,     2,   209,   216,     0,     0,     0,   149,
    1514        0,     0,   159,   217,   164,     2,   219,   179,     0,   182,
    1515      168,   196,     3,   201,   205,     0,   279,   355,   279,     0,
    1516       39,    46,    44,   155,   158,   126,     0,   165,   279,   126,
    1517      126,     0,   169,     0,     0,   675,   202,   203,   204,   197,
    1518        3,   357,   279,   145,   166,   151,   126,   220,   181,   176,
    1519      174,   170,   153,   126,     0,   676,     0,     0,   146,   167,
    1520      177,   171,   175,   174,   172,     3,     0,   477,   173,   198,
    1521        3,   199
     1421       0,     0,     0,   105,     2,   627,   438,   624,   529,   529,
     1422     632,   460,   279,     2,   567,     2,   568,     0,   579,   580,
     1423     279,     2,   279,     0,   689,   280,   693,   684,   685,   691,
     1424     279,     0,   616,     2,     2,   649,   529,   732,   599,   529,
     1425     529,   732,   529,   613,   529,   529,   663,   420,   646,   529,
     1426     529,   654,   661,   279,   415,   280,     0,     0,   279,   699,
     1427     280,   704,   732,   696,   279,   701,   732,     0,   279,   279,
     1428       0,     3,    17,     2,     0,     0,   443,   730,     0,     0,
     1429     449,   225,     0,   279,     0,     0,     0,   527,   551,   555,
     1430     557,   587,   590,   594,   597,   550,   589,     0,   269,     3,
     1431       0,   279,   262,     0,     0,     0,     0,   260,     0,     2,
     1432       0,     0,   243,   518,   279,     0,   437,     3,     3,     0,
     1433       0,   279,     0,     0,   673,   368,   371,   375,   529,   375,
     1434     678,   374,   670,   529,   529,   347,   359,   367,   360,   529,
     1435     362,   365,   279,   731,     0,     0,   382,   730,   280,     3,
     1436     400,     3,   404,   403,   573,     0,   513,   279,     3,     3,
     1437     279,   419,   280,     3,   413,   414,     2,     0,     0,     0,
     1438     467,   291,   279,   463,   465,     3,     2,     2,     0,   484,
     1439       3,     0,   536,   126,     0,   210,     0,     0,     2,     0,
     1440       0,    36,     0,     0,   279,    21,     0,    22,     0,   673,
     1441     434,     0,   106,     0,     3,     2,    28,     2,     0,    33,
     1442       0,     2,    26,   103,   104,    70,    71,    72,    74,    75,
     1443      77,    78,    82,    83,    80,    81,    85,    86,    88,    90,
     1444      92,    94,    96,     0,     0,   733,   279,     0,     0,     0,
     1445     628,   629,   625,   626,   479,   478,   279,     0,     0,     0,
     1446     280,   279,   279,   643,   686,   342,     0,   720,   279,   723,
     1447     642,     2,   279,     0,     0,     0,     0,     0,     0,     0,
     1448       0,     3,   650,   602,   617,   651,     2,   598,   605,   417,
     1449     600,   601,   418,     2,   612,   620,   614,   615,   647,   648,
     1450     662,   690,   694,   692,   732,   253,     2,   726,     2,   408,
     1451     698,   703,   409,   279,     3,   387,     3,     3,     3,   439,
     1452       0,     3,     3,     2,   451,   448,   731,     0,   444,     2,
     1453     447,   450,     0,   279,   226,   248,     3,   257,   259,     0,
     1454     439,     2,   553,   554,     2,   592,   593,     0,     3,     0,
     1455     519,     3,   328,   327,   330,   329,   461,   279,     0,   520,
     1456       0,   521,     2,   627,     0,     0,   361,   363,     2,     0,
     1457       0,     0,     0,     0,   377,   674,   675,   372,   376,   373,
     1458     671,   672,   366,   370,   349,   384,   379,   385,     0,     0,
     1459       0,   422,   224,     0,     0,     3,     2,   649,   415,     0,
     1460     509,     0,   732,   471,     0,   279,   279,   279,     0,   533,
     1461     535,   127,     0,   206,     0,     0,   211,   212,    55,    60,
     1462     279,     0,    58,    57,     0,     0,   125,   674,     0,    67,
     1463      68,   107,   112,     3,   108,   106,     0,     0,     3,    25,
     1464      35,     3,     0,    99,     0,     3,   631,   635,   638,   630,
     1465       3,   574,   108,     2,   279,     3,     3,   280,     0,     2,
     1466       2,   721,   724,     0,     3,   604,   608,   611,   619,   653,
     1467     657,   660,   279,     0,     3,   603,   618,   652,   279,   279,
     1468     410,   279,   279,   279,     0,     0,     0,     0,   240,   108,
     1469       0,   101,     0,     3,     3,     0,   445,     0,   442,     0,
     1470       0,   229,   279,     0,     0,   126,     0,     0,     0,     0,
     1471       0,   126,     0,     0,     0,     2,     0,     0,     3,   128,
     1472     129,     2,   139,   130,   131,   132,   133,   134,   135,   141,
     1473     143,     0,     0,     0,   270,   279,   279,   529,   639,     0,
     1474       0,     0,   522,   628,     0,     0,   279,   279,   677,   681,
     1475     683,   676,   369,   383,   380,   561,     2,   645,   644,     0,
     1476     650,     2,   464,   466,   486,     3,   494,   495,     0,     2,
     1477     490,     3,     3,     0,     0,   538,     0,     0,   210,     0,
     1478       3,    37,   108,   730,   106,     0,     3,   642,    42,     3,
     1479      40,     3,    34,     0,     3,    98,   100,     0,     2,   633,
     1480     634,     0,   695,   279,   700,   279,     0,     0,     0,     3,
     1481     279,   279,   279,   619,     0,     2,   606,   607,     2,   621,
     1482       2,   655,   656,     0,   664,     0,     3,     0,     3,     3,
     1483       3,     3,   395,   394,   398,     0,   729,     2,     2,   728,
     1484     109,     0,     0,     0,     0,     3,   446,     3,     0,   227,
     1485     142,     3,   280,   279,     0,     0,     0,     0,     2,   187,
     1486       0,   185,     0,     0,     0,     0,     0,     0,   191,     0,
     1487     279,   529,   147,   144,   279,     0,     0,   252,   264,     3,
     1488       3,   528,   640,   595,   279,   279,   279,   351,   354,     0,
     1489       2,   679,   680,   279,   251,   279,     0,   497,   474,   279,
     1490       0,     0,   473,   488,     0,   207,     0,   213,   106,     0,
     1491       0,   113,   110,     0,     0,     0,     0,     0,     0,    24,
     1492       0,   636,   279,   562,   697,   702,   705,   706,   707,     0,
     1493       3,     3,   658,   279,   279,   279,     3,     3,     0,   666,
     1494       0,     0,     0,     0,   727,   279,   279,     3,   526,   109,
     1495     453,     0,     0,   230,   280,     0,     0,     0,     0,   279,
     1496     188,   186,     0,   183,   189,     0,     0,     0,   192,   195,
     1497     193,   190,     0,   126,   140,   138,   228,     0,     0,     0,
     1498     279,   279,   108,   279,   402,   406,   405,     0,   491,     2,
     1499     492,     2,   493,   487,   279,   214,     0,     0,     3,   642,
     1500      32,   111,     2,    45,     2,    43,    41,    29,   109,    27,
     1501       3,   708,     0,     0,     3,     3,     3,     0,     0,   665,
     1502     667,   609,   622,   254,     2,   392,     3,   391,     0,   455,
     1503     452,   126,     0,     0,   126,     3,     0,   126,   184,     0,
     1504       2,   200,   194,     0,   108,   136,   556,   596,     0,   350,
     1505     279,     3,     2,     0,     0,     2,   208,   215,     0,     0,
     1506       0,     0,     0,     0,   250,   249,     0,     0,     0,   668,
     1507     669,   279,     0,   454,   148,     0,     0,     2,   161,   126,
     1508     150,     0,   178,     0,   126,     0,     2,   152,     0,     2,
     1509       2,   279,     0,   352,     0,   279,   496,   498,   489,     0,
     1510       0,   111,    38,     3,     3,   637,   610,   623,   659,   396,
     1511     126,   154,   157,     0,   156,   160,     3,   163,   162,     0,
     1512     126,   180,   126,     3,     0,   279,     0,     2,   279,   279,
     1513     682,     2,   209,   216,     0,     0,     0,   149,     0,     0,
     1514     159,   217,   164,     2,   219,   179,     0,   182,   168,   196,
     1515       3,   201,   205,     0,   279,   353,   279,     0,    39,    46,
     1516      44,   155,   158,   126,     0,   165,   279,   126,   126,     0,
     1517     169,     0,     0,   673,   202,   203,   204,   197,     3,   355,
     1518     279,   145,   166,   151,   126,   220,   181,   176,   174,   170,
     1519     153,   126,     0,   674,     0,     0,   146,   167,   177,   171,
     1520     175,   174,   172,     3,     0,   475,   173,   198,     3,   199
    15221521};
    15231522
     
    15251524static const yytype_int16 yydefgoto[] =
    15261525{
    1527       -1,   814,   456,   291,    45,   129,   130,   292,   293,   294,
    1528      295,   760,   742,  1131,  1132,   296,   297,   298,   299,   300,
    1529      301,   302,   303,   304,   305,   306,   307,   308,   309,  1034,
    1530      506,   974,   311,   975,   533,   953,  1059,  1523,  1061,  1062,
    1531     1063,  1064,  1524,  1065,  1066,  1454,  1455,  1420,  1421,  1422,
    1532     1506,  1507,  1511,  1512,  1541,  1542,  1067,  1378,  1068,  1069,
    1533     1310,  1311,  1312,  1492,  1070,   957,   958,   959,  1400,  1484,
    1534     1485,   457,   458,   875,   876,  1042,    48,    49,    50,    51,
    1535       52,   329,   153,    55,    56,    57,    58,    59,   331,    61,
    1536       62,   253,    64,    65,   264,   333,   334,    68,    69,    70,
    1537       71,   114,    73,   196,   336,   115,    76,   116,    78,    79,
    1538       80,   437,   438,   439,   440,   677,   919,   678,    81,    82,
    1539      444,   698,   856,   857,   339,   340,   701,   702,   703,   341,
    1540      342,   343,   344,   454,   171,   131,   132,   510,   313,   164,
    1541      628,   629,   630,   631,   632,    83,   117,   477,   478,   945,
    1542      479,   267,   483,   314,    85,   133,   134,    86,  1336,  1111,
    1543     1112,  1113,  1114,    87,    88,   719,    89,   263,    90,    91,
    1544      180,  1036,   664,   393,   121,    92,   489,   490,   491,   181,
    1545      258,   183,   184,   185,   259,    95,    96,    97,    98,    99,
    1546      100,   101,   188,   189,   190,   191,   192,   825,   590,   591,
    1547      592,   593,   594,   595,   596,   597,   558,   559,   560,   561,
    1548      682,   102,   599,   600,   601,   602,   603,   604,   918,   684,
    1549      685,   686,   578,   347,   348,   349,   350,   441,   159,   104,
    1550      105,   351,   352,   696,   555
     1526      -1,   812,   454,   289,    43,   127,   128,   290,   291,   292,
     1527     293,   758,   740,  1129,  1130,   294,   295,   296,   297,   298,
     1528     299,   300,   301,   302,   303,   304,   305,   306,   307,  1032,
     1529     504,   972,   309,   973,   531,   951,  1057,  1521,  1059,  1060,
     1530    1061,  1062,  1522,  1063,  1064,  1452,  1453,  1418,  1419,  1420,
     1531    1504,  1505,  1509,  1510,  1539,  1540,  1065,  1376,  1066,  1067,
     1532    1308,  1309,  1310,  1490,  1068,   955,   956,   957,  1398,  1482,
     1533    1483,   455,   456,   873,   874,  1040,    46,    47,    48,    49,
     1534      50,   327,   151,    53,    54,    55,    56,    57,   329,    59,
     1535      60,   251,    62,    63,   262,   331,   332,    66,    67,    68,
     1536      69,   112,    71,   194,   334,   113,    74,   114,    76,    77,
     1537      78,   435,   436,   437,   438,   675,   917,   676,    79,    80,
     1538     442,   696,   854,   855,   337,   338,   699,   700,   701,   339,
     1539     340,   341,   342,   452,   169,   129,   130,   508,   311,   162,
     1540     626,   627,   628,   629,   630,    81,   115,   475,   476,   943,
     1541     477,   265,   481,   312,    83,   131,   132,    84,  1334,  1109,
     1542    1110,  1111,  1112,    85,    86,   717,    87,   261,    88,    89,
     1543     178,  1034,   662,   391,   119,    90,   487,   488,   489,   179,
     1544     256,   181,   182,   183,   257,    93,    94,    95,    96,    97,
     1545      98,    99,   186,   187,   188,   189,   190,   823,   588,   589,
     1546     590,   591,   592,   593,   594,   595,   556,   557,   558,   559,
     1547     680,   100,   597,   598,   599,   600,   601,   602,   916,   682,
     1548     683,   684,   576,   345,   346,   347,   348,   439,   157,   102,
     1549     103,   349,   350,   694,   553
    15511550};
    15521551
    15531552/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15541553   STATE-NUM.  */
    1555 #define YYPACT_NINF -1306
     1554#define YYPACT_NINF -1291
    15561555static const yytype_int16 yypact[] =
    15571556{
    1558     6112, 10121, -1306,    45, -1306, -1306, -1306, -1306, -1306, -1306,
    1559    -1306,    27, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1560    -1306, -1306, -1306, -1306, -1306,    94,    94,    94,   808,   829,
    1561       69,  7553,   431, -1306, -1306, -1306, -1306, -1306,   134, -1306,
    1562    -1306, -1306,  1527, -1306,  4935, -1306, -1306, -1306, -1306, -1306,
    1563    -1306,    26,   185, -1306,  1590, -1306, -1306, -1306, -1306,   194,
    1564      544,   310,   103,  4656, -1306, -1306,  9491,  1148, -1306, -1306,
    1565    -1306,   779,   321,  3969,   180,  1184,   779,  1266, -1306, -1306,
    1566      614,   276, -1306,   779,  1398,   228, -1306,   350,   396, -1306,
    1567    -1306, -1306, -1306,   244,   185,    94, -1306,    94, -1306, -1306,
    1568    -1306, -1306, 10357,  1590, -1306, -1306,  1590, -1306, 10416,   306,
    1569    -1306, -1306,   946, 10475, -1306,   431,   431,   431, -1306, -1306,
    1570    -1306,    94, -1306, -1306, -1306,   360,   406,   415, -1306, -1306,
    1571    -1306,   427, -1306, -1306, -1306, -1306, -1306,   436,   460, -1306,
    1572      463,   431,  8930,  3037,   712,   484,   502,   510,   513,   524,
    1573      541,  6995, -1306,   566, -1306,  9560, -1306, -1306, -1306, -1306,
    1574      571, -1306,   234,  4195, -1306,   344,   251, -1306, -1306, -1306,
    1575    -1306,   601,   345,   349,   389,    94,   611, -1306,   544,  2525,
    1576      633, -1306,   129, -1306,    94,    94,   185, -1306, -1306,   222,
    1577    -1306,    94,    94,  2900,   637,   644,   431, 11276, -1306, -1306,
    1578      661, -1306,  4935, -1306, -1306,   779, -1306, -1306,   185, -1306,
    1579     1590,    26, -1306,  7796, -1306,   431,   431,   431,   185, -1306,
    1580      808, -1306,  6454, -1306, -1306,   657,   431, -1306,   431, -1306,
    1581    -1306, 10180,   647,   829,   671,   431, -1306,   808,   669,   673,
    1582    -1306,  7553,   752, -1306, -1306, -1306,  9361, -1306, -1306,  5911,
    1583    -1306,   633,   191, 10475,  5789,   946,  2900, -1306,   291, -1306,
    1584    -1306, 10416,  1590,   704,  2725, -1306, -1306,   255, -1306, 11839,
    1585    11556, 11613, 11556, 11670, -1306,   734, -1306, -1306, -1306, -1306,
    1586    11727, 11727,   752,  8612, -1306, 11556,  9036, -1306, -1306, -1306,
    1587    -1306, -1306, -1306,   770, -1306,   468,  1857, 11556, -1306,   446,
    1588      717,   853,   280,   793,   751,   737,   733,   795,   166, -1306,
    1589    -1306,   778,   551, -1306,   298, -1306, -1306,  3037, -1306, -1306,
    1590      401,   802, -1306,   490,   802, -1306,  8718,   811, -1306, -1306,
    1591     1169,   608,  8252, 11276,   779, -1306,   779,   431,   431, -1306,
    1592    -1306, -1306, -1306, -1306, -1306,   431, 10534,  1590, -1306, -1306,
    1593    10593,  1775, -1306,  6995, -1306, -1306, -1306, -1306, -1306, -1306,
    1594    -1306, -1306,  4717, 11556, -1306, -1306, -1306, -1306, -1306, -1306,
    1595    -1306, -1306, -1306, -1306, -1306, -1306, -1306,   946, -1306,   807,
    1596      826,   840,   846,   849,   855,   868,   875,  2525, -1306, -1306,
    1597      820,    26, -1306, -1306, -1306,   881, -1306, -1306, -1306,  9361,
    1598    -1306, -1306, -1306, -1306, -1306,  2900, -1306,  8930,  8930, -1306,
    1599      946, 12073,  8930,  7904, -1306, -1306, -1306, -1306,  9361,   191,
    1600    -1306, -1306,   779,   185, -1306, -1306,  9361, -1306,  6576, -1306,
    1601    -1306,   431,   431,  8506, 10652, -1306,  1231,  3253, -1306,   400,
    1602      418,   829, -1306, 10180,   884,   864,   829,   431, -1306, -1306,
    1603    -1306, -1306, 11012, -1306,   521,  8172, -1306,   185,   891, -1306,
    1604      946, 11914,  5969, -1306, -1306, -1306, -1306,   916,  2900, -1306,
    1605     8317,   633,  7444, -1306, -1306, -1306,  1642,   538,   778,   829,
    1606     2725,   700, 10416, -1306,  2725, -1306, -1306, -1306, -1306,   572,
    1607    -1306,   901, -1306, -1306,   122,  8612, -1306, -1306,  8612, -1306,
    1608     8824,  8612, -1306, -1306, -1306, -1306, -1306,   581,   912,   557,
    1609      918, -1306,  6659, -1306, -1306, -1306,   100, -1306, -1306,  6125,
    1610    -1306,   113, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1611    -1306, -1306,  5789,  5789, -1306, 11556, 11556, 11556, 11556, 11556,
    1612    11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556,
    1613    11556, 11556, 11556,  4485,  5789, -1306,   551,   858, -1306, -1306,
    1614       94,    94, -1306, -1306,  8930, -1306, -1306, -1306,   881,   752,
    1615    -1306,   881,  6659, -1306,  9142,   924, -1306, 10711, -1306, -1306,
    1616      571, -1306,  9696,   928, -1306,  1037, -1306,  2282,   292,   778,
    1617    -1306,    94,    94,   778,   300, -1306,    94,    94,   881, -1306,
    1618    -1306,    94,    94, -1306,   802, 10770,  1590, 12045,   172,   352,
    1619    10770, -1306, 10947, -1306,   778, -1306, 10534, -1306,   171,   931,
    1620     7969,  7969,  1590,  4778,   929, -1306,   372,   935, -1306,   956,
    1621     4195,   607, -1306,  1042,  1590,  7969,   752,   946,   752,   633,
    1622      763,   802, -1306, -1306,   797,   802, -1306, -1306, -1306,   997,
    1623    -1306, 11499,   185, 11012, -1306,   589,   976,   605,   984, -1306,
    1624      626, -1306,   986,   185, -1306, -1306,  9361,   185,  1612,   980,
    1625      983,   435,   443,  7107,  1354, 11556,  2791, -1306, -1306,   987,
    1626       87,   987, -1306, -1306, -1306,    94,    94, -1306, -1306,   829,
    1627    -1306,    94, -1306, -1306,  9764,   829,   996, 11556, -1306,   884,
    1628    12045, -1306, -1306,  1003, -1306, -1306, -1306,   752, -1306, 11980,
    1629    11556, -1306,  7969,   585,  8252, -1306, -1306,   571,  1001,  1002,
    1630     1642,  3314, -1306, -1306,  2725, -1306, -1306,   980, -1306, -1306,
    1631     1010, -1306,   980,  1013, 11839,  5789,   992,  1044,  1018,  1019,
    1632    -1306,  1015,  1025, -1306,  1026,  1027,  6771, -1306,  5789, -1306,
    1633      557,   926, -1306,  5040,  5789,  1029,  1022, -1306, -1306, -1306,
    1634      629, -1306,  5789, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1635      446,   446,   717,   717,   853,   853,   853,   853,   280,   280,
    1636      793,   751,   737,   733,   795, 11556,   886, -1306, 11012,  1032,
    1637     1034,  1035,   858, -1306, -1306, -1306, -1306, -1306, 11012, 11499,
    1638      653,  1038,  7219,  9248,  6995, -1306, -1306,  1030,  1043, -1306,
    1639    10357, -1306, -1306,  1037, 11012,   923,  1045,  1048,  1049,  1056,
    1640     1057,  1058,  1060,  3551,  2282, -1306, -1306, -1306, -1306, -1306,
    1641    -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1642    -1306, -1306,   881, -1306, -1306, -1306,   778, -1306, -1306, -1306,
    1643    -1306, -1306, -1306, -1306, -1306, 10239, -1306, -1306,  1061,  1062,
    1644    -1306,    26,  1041,  1022,  4778, -1306, -1306, -1306,  4717,  1039,
    1645    -1306, -1306, -1306, -1306,   829,  6270,  1111, -1306, -1306, -1306,
    1646    -1306,  1047,    26, -1306, -1306,   881, -1306, -1306,   881,   347,
    1647    11556,  1063, -1306, -1306, -1306, -1306, -1306, -1306, -1306,  6995,
    1648      899, -1306,   185, -1306,  1612,  2196,  1070,  1074, -1306, -1306,
    1649    -1306,  1077,   953,  1076,  1086,  1087, -1306,  2791, -1306, -1306,
    1650    -1306, -1306, -1306, -1306, -1306,  1231, -1306,   864, -1306, -1306,
    1651     1083,  1089,  1084, -1306, -1306,  1095,  1107, -1306,   585,  1172,
    1652    -1306,   375, -1306,  3314,   778, -1306,  1091,  2725, 10829,  8930,
    1653     1114, -1306, -1306,  1109,  1116, -1306,  1118,   295,  1112, -1306,
    1654     1117,  1117,  6659,  5789, -1306, -1306,  1117,  1120, -1306,   926,
    1655     4717, -1306, -1306, -1306, -1306,  1119,  5240,  5789,  1121,   752,
    1656     4778, -1306,  6125, -1306,   752, -1306,  5789, -1306,   828,   802,
    1657    -1306, -1306, -1306, -1306,  9389, -1306,  8718, -1306, -1306,  7331,
    1658     1127, -1306, -1306, -1306, -1306,  1131, -1306,   852,   802, -1306,
    1659      870,   879,   802, -1306,   431,  1135,  5490, -1306, -1306, -1306,
    1660    11012, 11012, -1306,  8382,  8382,  7969,  1133,  1132,  1134,  1139,
    1661    -1306, -1306,  1144,   596,    62,  1022, -1306,   752, -1306,  4195,
    1662    -1306,  5789,   458, -1306,  6547,  1149,  1151, 11442,  1152,  1153,
    1663       52,    75,    37,  5789,  1158,   185,  4069, -1306,  1113,  1138,
    1664    -1306, -1306, -1306,  1156, -1306, -1306, -1306, -1306, -1306, -1306,
    1665    -1306, -1306, -1306,   829,  1162,  5789, -1306, 11012, 11012,    94,
    1666      802,  1164,  1163,  1030, -1306,  2196,   819,   829,  6659, 10888,
    1667      887,   802, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1668    -1306,  1179,  1172, -1306, -1306,  1165, -1306,   980, -1306, -1306,
    1669      946,  1167, -1306, -1306, -1306,   662,  1183, -1306, 11556,  1161,
    1670     1044,  1044,  1182, -1306,  9823,   956,  5789,  1189,  1119,   540,
    1671       74,  1186, -1306,  1182, -1306,  1191,  1186, -1306, -1306,  1195,
    1672    -1306, -1306,   881,  1197, -1306, 10534, -1306,  6883,  1198,  1200,
    1673     1205, -1306, 10298,  7969,  7969, -1306,  1208, -1306, -1306,   881,
    1674    -1306, -1306, -1306, -1306,   881,  5789, -1306,  5789, 11556,  1209,
    1675    -1306, -1306, -1306, -1306, -1306, -1306, -1306,  1213, -1306, -1306,
    1676    -1306, -1306, -1306, 11556, 11556,  1212,  1214,  1186, -1306, -1306,
    1677      829, -1306, -1306, -1306,  3779, 10829,  5789,  5789,  1272,  5789,
    1678    -1306, -1306,  1203, -1306,  1204,  5789,  1206,  1207,  5789,  1006,
    1679    -1306,  1215,  6659,    94, -1306, -1306,  6270,  1222,   477, -1306,
    1680    -1306, -1306, -1306, -1306,   881, -1306,  9628,  8930, 10180,  1216,
    1681    -1306,  1229, -1306, -1306,   881, 11248, -1306,  8317,  1217, -1306,
    1682    -1306, 10829,   486,   495, -1306,  1230,  1245, -1306,   308, -1306,
    1683     5789,  1244,  1242, -1306, -1306,  1248,   136,   146,   752,  1251,
    1684     1254, -1306,  1256, -1306, 11012, -1306, -1306, -1306, -1306, -1306,
    1685    -1306,  1257, -1306, -1306, -1306, 11012, 11012, 11012, -1306, -1306,
    1686     1260, -1306,  1264,  1267,  1268,   646, -1306,  8036,  8144, -1306,
    1687    -1306,   715, -1306,  1270,  1273, -1306,  8447,   690,   721,  1275,
    1688      725,  6425, -1306, -1306,   508, -1306, -1306,   730,  1277,   185,
    1689     1316,  1326, -1306, -1306,  1278, 11442, -1306, -1306, -1306,  1279,
    1690     1282,   740,  9885, 10180,  5774, 11012, -1306, -1306, -1306,  1281,
    1691    -1306, -1306, -1306, -1306, -1306, -1306, 10829, -1306,  1261,  1315,
    1692     1119,   357, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,
    1693     1283, -1306, -1306, -1306,  1289,  1293, -1306, -1306, -1306,  1295,
    1694     1296, -1306, -1306, -1306, -1306, -1306, -1306, -1306,  1302, -1306,
    1695     1301, -1306, -1306, 11442,   130,  5789, 11442, -1306,  1304,  5789,
    1696    -1306,   155,  1328, -1306, -1306,  1314,  9458, -1306, -1306, -1306,
    1697      320, -1306,  9944, -1306, -1306,  1590,   946,  1311, -1306, -1306,
    1698      742,  1320,  5789,   752,   752,  1325, -1306, -1306,  1330,  1331,
    1699     1334, -1306, -1306,  8382,  1329, -1306,  1401, 11556,  1333, -1306,
    1700    -1306, 11362, -1306,   745, -1306,  1319, 11442,  1324, -1306, -1306,
    1701     1336, -1306,  1355, 10180,  1343, -1306,  1352, 10829, -1306, -1306,
    1702    -1306,  1332,  1387,  1358, -1306,  1186,  1186, -1306, -1306, -1306,
    1703    -1306, -1306, 11442,   118, -1306,   954, -1306, -1306,  7662, -1306,
    1704    -1306,  1339,  5789, -1306,  5789,  7662,   185, 10652,  1362, -1306,
    1705    10003, 10180, -1306,  1364, -1306, -1306,  5789,  1365,  1370, -1306,
    1706    11556, 11556, -1306, -1306,  1024,   101, -1306, -1306,  1356, -1306,
    1707     1024, -1306, -1306,  1567,   752,   185, 10652, -1306, 10062,  1375,
    1708    -1306, -1306, -1306, -1306, -1306, 11362,  1372,  1024,  7731,  5789,
    1709    11282,  1377,  1024,  1380,  1567,  2919, -1306, -1306, -1306, -1306,
    1710    -1306, -1306,  8930, -1306, 11127, -1306, 11362, -1306, -1306,  1361,
    1711    11046, -1306, -1306, 11282,   185,  2919,  1385,   747, -1306, 11127,
    1712    -1306, -1306, -1306, 11046, -1306, -1306,   185, -1306, -1306, -1306,
    1713    -1306, -1306
     1557    3767,  2676, -1291,    62, -1291, -1291, -1291, -1291, -1291, -1291,
     1558   -1291,   146, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1559   -1291, -1291, -1291, -1291, -1291,   115,   115,   115,   905,   892,
     1560     225,  4876,  1045, -1291, -1291, -1291,   234, -1291, -1291, -1291,
     1561     678, -1291,  2287, -1291, -1291, -1291, -1291, -1291, -1291,    63,
     1562     239, -1291,  1646, -1291, -1291, -1291, -1291,   252,   886,   360,
     1563      99,  7577, -1291, -1291,  9303,  1009, -1291, -1291, -1291,  1359,
     1564     399,  5014,   640,   618,  1359,   728, -1291, -1291,   365,   285,
     1565   -1291,  1359,  1167,   282, -1291,   469,   486, -1291, -1291, -1291,
     1566   -1291,   345,   239,   115, -1291,   115, -1291, -1291, -1291, -1291,
     1567   10104,  1646, -1291, -1291,  1646, -1291, 10163,   377, -1291, -1291,
     1568    1212, 10222, -1291,  1045,  1045,  1045, -1291, -1291, -1291,   115,
     1569   -1291, -1291, -1291,   406,   455,   458, -1291, -1291, -1291,   466,
     1570   -1291, -1291, -1291, -1291, -1291,   475,   515, -1291,   538,  1045,
     1571    8846,  1230,    47,   506,   511,   552,   556,   559,   591,  7019,
     1572   -1291,   604, -1291,  9372, -1291, -1291, -1291, -1291,   614, -1291,
     1573     250,  3635, -1291,   620,   260, -1291, -1291, -1291, -1291,   645,
     1574     270,   290,   311,   115,   629, -1291,   886,  1586,   701, -1291,
     1575     122, -1291,   115,   115,   239, -1291, -1291,   145, -1291,   115,
     1576     115,  2053,   660,   672,  1045, 11990, -1291, -1291,   676, -1291,
     1577    2287, -1291, -1291,  1359, -1291, -1291,   239, -1291,  1646,    63,
     1578   -1291,  7818, -1291,  1045,  1045,  1045,   239, -1291,   905, -1291,
     1579    3082, -1291, -1291,   666,  1045, -1291,  1045, -1291, -1291,  5469,
     1580     699,   892,   721,  1045, -1291,   905,   706,   710, -1291,  4876,
     1581     778, -1291, -1291, -1291,  6212, -1291, -1291,  5247, -1291,   701,
     1582     141, 10222, 11181,  1212,  2053, -1291,   171, -1291, -1291, 10163,
     1583    1646,   744, 11930, -1291, -1291,   401, -1291, 11692, 11409, 11466,
     1584   11409, 11523, -1291,   753, -1291, -1291, -1291, -1291, 11580, 11580,
     1585     778,  8528, -1291, 11409,  8952, -1291, -1291, -1291, -1291, -1291,
     1586   -1291,   782, -1291,   993,  2004, 11409, -1291,   364,   202,   603,
     1587     611,   697,   758,   762,   769,   821,    44, -1291, -1291,   789,
     1588     446, -1291,   353, -1291, -1291,  1230, -1291, -1291,   434,   816,
     1589   -1291,   572,   816, -1291,  8634,   818, -1291, -1291,  1508,  1393,
     1590    8274, 11990,  1359, -1291,  1359,  1045,  1045, -1291, -1291, -1291,
     1591   -1291, -1291, -1291,  1045, 10281,  1646, -1291, -1291, 10340,  1905,
     1592   -1291,  7019, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1593    5697, 11409, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1594   -1291, -1291, -1291, -1291, -1291,  1212, -1291,   936,   839,   846,
     1595     864,   951,   873,   893,   897,  1586, -1291, -1291,   902,    63,
     1596   -1291, -1291, -1291,   925, -1291, -1291, -1291,  6212, -1291, -1291,
     1597   -1291, -1291, -1291,  2053, -1291,  8846,  8846, -1291,  1212, 12018,
     1598    8846,  7926, -1291, -1291, -1291, -1291,  6212,   141, -1291, -1291,
     1599    1359,   239, -1291, -1291,  6212, -1291,  3835, -1291, -1291,  1045,
     1600    1045,  5848, 10399, -1291,  1122,  9570, -1291,   315,   316,   892,
     1601   -1291,  5469,   935,   923,   892,  1045, -1291, -1291, -1291, -1291,
     1602   10759, -1291,   387, 11958, -1291,   239,   964, -1291,  1212, 11767,
     1603   11238, -1291, -1291, -1291, -1291,   999,  2053, -1291,  8339,   701,
     1604    7468, -1291, -1291, -1291,   752,   594,   789,   892, 11930,   537,
     1605   10163, -1291, 11930, -1291, -1291, -1291, -1291,   624, -1291,   973,
     1606   -1291, -1291,   152,  8528, -1291, -1291,  8528, -1291,  8740,  8528,
     1607   -1291, -1291, -1291, -1291, -1291,   664,   979,   483,   982, -1291,
     1608    6675, -1291, -1291, -1291,    65, -1291, -1291, 11295, -1291,    91,
     1609   -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1610   11181, 11181, -1291, 11409, 11409, 11409, 11409, 11409, 11409, 11409,
     1611   11409, 11409, 11409, 11409, 11409, 11409, 11409, 11409, 11409, 11409,
     1612   11409,  3856, 11181, -1291,   446,  1147, -1291, -1291,   115,   115,
     1613   -1291, -1291,  8846, -1291, -1291, -1291,   925,   778, -1291,   925,
     1614    6675, -1291,  9058,   989, -1291, 10458, -1291, -1291,   614, -1291,
     1615    8198,   991, -1291,   306, -1291,  1892,   253,   789, -1291,   115,
     1616     115,   789,   258, -1291,   115,   115,   925, -1291, -1291,   115,
     1617     115, -1291,   816, 10517,  1646, 11898,   307,   330, 10517, -1291,
     1618   10694, -1291,   789, -1291, 10281, -1291,   162,  1003,  7991,  7991,
     1619    1646,  5948,  1007, -1291,   361,  1011, -1291,  1000,  3635,   682,
     1620   -1291,  1096,  1646,  7991,   778,  1212,   778,   701,   705,   816,
     1621   -1291, -1291,   717,   816, -1291, -1291, -1291,  1051, -1291, 11352,
     1622     239, 10759, -1291,   702,  1025,   723,  1027, -1291,   734, -1291,
     1623    1026,   239, -1291, -1291,  6212,   239,  1580,  1024,  1032,   341,
     1624     385,  7131,  1763, 11409,  2122, -1291, -1291,  1035,    43,  1035,
     1625   -1291, -1291, -1291,   115,   115, -1291, -1291,   892, -1291,   115,
     1626   -1291, -1291,  9629,   892,  1028, 11409, -1291,   935, 11898, -1291,
     1627   -1291,  1031, -1291, -1291, -1291,   778, -1291, 11833, 11409, -1291,
     1628    7991,   675,  8274, -1291, -1291,   614,  1034,  1038,   752,  2429,
     1629   -1291, -1291, 11930, -1291, -1291,  1024, -1291, -1291,  1047, -1291,
     1630    1024,  1048, 11692, 11181,  1029,  1076,  1060,  1061, -1291,  1055,
     1631    1064, -1291,  1065,  1067,  6788, -1291, 11181, -1291,   483,  1926,
     1632   -1291,  6058, 11181,  1068,  1063, -1291, -1291, -1291,   756, -1291,
     1633   11181, -1291, -1291, -1291, -1291, -1291, -1291, -1291,   364,   364,
     1634     202,   202,   603,   603,   603,   603,   611,   611,   697,   758,
     1635     762,   769,   821, 11409,   790, -1291, 10759,  1072,  1073,  1080,
     1636    1147, -1291, -1291, -1291, -1291, -1291, 10759, 11352,   760,  1081,
     1637    7243,  9164,  7019, -1291, -1291,  1085,  1089, -1291, 10104, -1291,
     1638   -1291,   306, 10759,  1010,  1090,  1092,  1093,  1098,  1099,  1100,
     1639    1101,  4615,  1892, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1640   -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1641     925, -1291, -1291, -1291,   789, -1291, -1291, -1291, -1291, -1291,
     1642   -1291, -1291, -1291,  9986, -1291, -1291,  1103,  1104, -1291,    63,
     1643    1105,  1063,  5948, -1291, -1291, -1291,  5697,  1107, -1291, -1291,
     1644   -1291, -1291,   892,  6285,  1187, -1291, -1291, -1291, -1291,  1106,
     1645      63, -1291, -1291,   925, -1291, -1291,   925,   175, 11409,  1112,
     1646   -1291, -1291, -1291, -1291, -1291, -1291, -1291,  7019,   512, -1291,
     1647     239, -1291,  1580,  1740,  1132,  1133, -1291, -1291, -1291,  1120,
     1648     880,  1136,  1143,  1144, -1291,  2122, -1291, -1291, -1291, -1291,
     1649   -1291, -1291, -1291,  1122, -1291,   923, -1291, -1291,  1140,  1149,
     1650    1148, -1291, -1291,  1156,  1157, -1291,   675,  2323, -1291,   374,
     1651   -1291,  2429,   789, -1291,  1150, 11930, 10576,  8846,  1160, -1291,
     1652   -1291,  1155,  1163, -1291,  1165,   173,  1161, -1291,  1166,  1166,
     1653    6675, 11181, -1291, -1291,  1166,  1169, -1291,  1926,  5697, -1291,
     1654   -1291, -1291, -1291,  1172,  4760, 11181,  1180,   778,  5948, -1291,
     1655   11295, -1291,   778, -1291, 11181, -1291,   792,   816, -1291, -1291,
     1656   -1291, -1291,  5313, -1291,  8634, -1291, -1291,  7355,  1183, -1291,
     1657   -1291, -1291, -1291,  1191, -1291,   828,   816, -1291,   866,   887,
     1658     816, -1291,  1045,  1190,  4985, -1291, -1291, -1291, 10759, 10759,
     1659   -1291,  8404,  8404,  7991,  1194,  1192,  1193,  1200, -1291, -1291,
     1660    1199,   450,   221,  1063, -1291,   778, -1291,  3635, -1291, 11181,
     1661     501, -1291,  6563,  1207,  1208, 11124,  1209,  1210,   112,   142,
     1662      54, 11181,  1213,   239,  5569, -1291,  1211,  1197, -1291, -1291,
     1663   -1291,  1215, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,
     1664   -1291,   892,  1223, 11181, -1291, 10759, 10759,   115,   816,  1224,
     1665    1225,  1085, -1291,  1740,   651,   892,  6675, 10635,   924,   816,
     1666   -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,  1226,
     1667    2323, -1291, -1291,  1206, -1291,  1024, -1291, -1291,  1212,  1228,
     1668   -1291, -1291, -1291,   765,  1232, -1291, 11409,  1216,  1076,  1076,
     1669    1234, -1291,  9688,  1000, 11181,  1240,  1172,   563,   227,  1239,
     1670   -1291,  1234, -1291,  1246,  1239, -1291, -1291,  1251, -1291, -1291,
     1671     925,  1252, -1291, 10281, -1291,  6907,  1254,  1256,  1257, -1291,
     1672   10045,  7991,  7991, -1291,  1253, -1291, -1291,   925, -1291, -1291,
     1673   -1291, -1291,   925, 11181, -1291, 11181, 11409,  1267, -1291, -1291,
     1674   -1291, -1291, -1291, -1291, -1291,  1273, -1291, -1291, -1291, -1291,
     1675   -1291, 11409, 11409,  1275,  1276,  1239, -1291, -1291,   892, -1291,
     1676   -1291, -1291,  7753, 10576, 11181, 11181,  1287, 11181, -1291, -1291,
     1677    1260, -1291,  1263, 11181,  1264,  1266, 11181,   938, -1291,  1268,
     1678    6675,   115, -1291, -1291,  6285,  1229,   542, -1291, -1291, -1291,
     1679   -1291, -1291,   925, -1291,  9440,  8846,  5469,  1285, -1291,  1289,
     1680   -1291, -1291,   925, 10967, -1291,  8339,  1295, -1291, -1291, 10576,
     1681     548,   582, -1291,  1291,  1297, -1291,   219, -1291, 11181,  1298,
     1682    1299, -1291, -1291,  1301,    98,   168,   778,  1303,  1305, -1291,
     1683    1306, -1291, 10759, -1291, -1291, -1291, -1291, -1291, -1291,  1309,
     1684   -1291, -1291, -1291, 10759, 10759, 10759, -1291, -1291,  1311, -1291,
     1685    1315,  1318,  1322,   507, -1291,  8058,  8166, -1291, -1291,   689,
     1686   -1291,  1321,  1325, -1291,  8469,   767,   776,  1329,   779,  6439,
     1687   -1291, -1291,   609, -1291, -1291,   784,  1330,   239,  1371,  1379,
     1688   -1291, -1291,  1332, 11124, -1291, -1291, -1291,  1336,  1337,   808,
     1689    9750,  5469,  9508, 10759, -1291, -1291, -1291,  1328, -1291, -1291,
     1690   -1291, -1291, -1291, -1291, 10576, -1291,  1316,  1368,  1172,    97,
     1691   -1291, -1291, -1291, -1291, -1291, -1291, -1291, -1291,  1342, -1291,
     1692   -1291, -1291,  1343,  1350, -1291, -1291, -1291,  1352,  1355, -1291,
     1693   -1291, -1291, -1291, -1291, -1291, -1291,  1361, -1291,  1362, -1291,
     1694   -1291, 11124,   118, 11181, 11124, -1291,  1365, 11181, -1291,   186,
     1695    1382, -1291, -1291,  1353,  9270, -1291, -1291, -1291,   497, -1291,
     1696    9809, -1291, -1291,  1646,  1212,  1369, -1291, -1291,   825,  1364,
     1697   11181,   778,   778,  1377, -1291, -1291,  1378,  1380,  1384, -1291,
     1698   -1291,  8404,  1381, -1291,  1447, 11409,  1383, -1291, -1291, 11044,
     1699   -1291,   837, -1291,  1366, 11124,  1373, -1291, -1291,  1396, -1291,
     1700    1406,  5469,  1394, -1291,  1397, 10576, -1291, -1291, -1291,  1386,
     1701    1426,  1399, -1291,  1239,  1239, -1291, -1291, -1291, -1291, -1291,
     1702   11124,   240, -1291,   900, -1291, -1291,  4527, -1291, -1291,  1387,
     1703   11181, -1291, 11181,  4527,   239, 10399,  1401, -1291,  9868,  5469,
     1704   -1291,  1405, -1291, -1291, 11181,  1402,  1412, -1291, 11409, 11409,
     1705   -1291, -1291,   990,   130, -1291, -1291,  1404, -1291,   990, -1291,
     1706   -1291,  1855,   778,   239, 10399, -1291,  9927,  1424, -1291, -1291,
     1707   -1291, -1291, -1291, 11044,  1419,   990,  7686, 11181, 10964,  1422,
     1708     990,  1431,  1855,  2409, -1291, -1291, -1291, -1291, -1291, -1291,
     1709    8846, -1291, 10846, -1291, 11044, -1291, -1291,  1410, 10765, -1291,
     1710   -1291, 10964,   239,  2409,  1440,   850, -1291, 10846, -1291, -1291,
     1711   -1291, 10765, -1291, -1291,   239, -1291, -1291, -1291, -1291, -1291
    17141712};
    17151713
     
    17171715static const yytype_int16 yypgoto[] =
    17181716{
    1719    -1306,  4178,  3354, -1306,  1595, -1306,    -1,     2,   839, -1306,
    1720    -1306, -1306,  -497,  -915,  -215,  4919, -1306,   975,   537,   542,
    1721      346,   554,   941,   943,   950,   945,   949, -1306,    17,  -251,
    1722     5020,   377,  -700,  -894, -1306,  -198,  -684,  -459, -1306,    77,
    1723    -1306,   290, -1062, -1306, -1306,    40, -1306, -1305, -1076,   127,
    1724    -1306, -1306, -1306, -1306,   -21, -1283, -1306, -1306, -1306, -1306,
    1725    -1306, -1306,   216,    31,    14,   408, -1306,   414, -1306,    76,
    1726    -1306,  -305, -1306, -1306, -1306,   467,  -851, -1306, -1306,     8,
    1727     -929,    10,  2660, -1306, -1306, -1306,  -110, -1306,   299,   597,
    1728      -29,  1428,  4046, -1306, -1306,    55,    49,    79,  -229,  1809,
    1729    -1306,  1752, -1306, -1306,    66,  2021, -1306,  2437,  1677, -1306,
    1730    -1306,  -412,  -376,  1122,  1124,   625,   871,  -270, -1306, -1306,
    1731     1105,   627,  -558, -1306,  -460,  -395,    48, -1306, -1306,  -855,
    1732     -990,   470,   652,   990,   -16, -1306,   727,    -5,  -244,  -195,
    1733     -127,   583,   692, -1306,   930, -1306,  2734,  -373,   841, -1306,
    1734    -1306,   619, -1306,  -405, -1306,    85, -1306, -1306, -1306, -1245,
    1735      327, -1306, -1306, -1306,  1097, -1306,    28, -1306, -1306,  -832,
    1736     -104, -1279,  -133,  2533, -1306,  3317, -1306,   836, -1306,  -122,
    1737     1439,  -163,  -160,  -157,     4,   -41,   -37,   -36,   587,    42,
    1738       51,    90,  -121,  -155,  -152,  -151,  -149,  -294,  -486,  -446,
    1739     -427,  -545, -1306,  -531, -1306, -1306,  -525,  -485,  -484,  -477,
    1740     1927,  4727,  -549,  -504,  -503,  -475,  -461, -1306,  -386,  -662,
    1741     -654,  -649,  -575,  -248,  -333, -1306, -1306,   226,   125,   -50,
    1742    -1306,   339,   169,  -590,  -241
     1717   -1291,  4245,  3306, -1291,  1116, -1291,    -1,     2,   896, -1291,
     1718   -1291, -1291,  -495,  -897,  -137,  5431, -1291,   913,   541,   551,
     1719     480,   578,  1002,  1004,  1001,  1005,  1006, -1291,    40,  -196,
     1720    5036,   426,  -670,  -935, -1291,   410,  -536,   405, -1291,   215,
     1721   -1291,   338, -1139, -1291, -1291,    76, -1291, -1286,  -974,   178,
     1722   -1291, -1291, -1291, -1291,    21, -1264, -1291, -1291, -1291, -1291,
     1723   -1291, -1291,   251,    72,    70,   452, -1291,   461, -1291,   108,
     1724   -1291,  -221, -1291, -1291, -1291,   510,  -756, -1291, -1291,     0,
     1725    -911,   123,  2941, -1291, -1291, -1291,    -4, -1291,   104,   656,
     1726     -23,  1441,  3190, -1291, -1291,    57,    83,   545,  -242,  1645,
     1727   -1291,  1583, -1291, -1291,   105,  2213, -1291,  2417,   430, -1291,
     1728   -1291,  -424,  -392,  1159,  1162,   665,   908,   386, -1291, -1291,
     1729    1151,   667,  -582, -1291,  -560,   393,  -622, -1291, -1291,  -913,
     1730    -944,  -339,   625,  1039,    -8, -1291,   220,   304,  -284,  -197,
     1731    -141,   644,   727, -1291,   986, -1291,  2799,  -407,   895, -1291,
     1732   -1291,   677, -1291,  -399, -1291,   -84, -1291, -1291, -1291, -1255,
     1733     388, -1291, -1291, -1291,  1154, -1291,    85, -1291, -1291,  -787,
     1734    -102, -1290,   -38,  1983, -1291,  2958, -1291,   894, -1291,  -164,
     1735     127,  -169,  -166,  -161,     4,   -37,   -35,   -34,   791,    51,
     1736      55,    59,  -101,  -155,  -153,  -140,  -138,  -299,  -486,  -465,
     1737    -454,  -533, -1291,  -528, -1291, -1291,  -539,  -526,  -507,  -477,
     1738    1502,  4608,  -529,  -535,  -530,  -514,  -525, -1291,  -360,  -646,
     1739    -641,  -638,  -576,  -285,  -303, -1291, -1291,  1288,    18,   -86,
     1740   -1291,   339,   120,  -577,  -382
    17431741};
    17441742
     
    17461744   positive, shift that token.  If negative, reduce the rule which
    17471745   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1748 #define YYTABLE_NINF -507
     1746#define YYTABLE_NINF -505
    17491747static const yytype_int16 yytable[] =
    17501748{
    1751      109,   145,    46,   140,    94,   146,   147,   660,   257,   110,
    1752       53,   111,   913,   613,    47,   380,   420,   617,   381,   494,
    1753      914,   382,   761,   383,  1071,   915,   384,   385,   670,   386,
    1754      844,   694,   793,    46,  1176,    94,   365,   589,   827,   869,
    1755      486,    53,   826,  1072,    46,    47,    46,   391,   156,    67,
    1756      683,   954,   250,   972,   819,    66,    46,   388,   389,   139,
    1757      669,   688,    46,   860,   186,    46,    74,   208,    46,  1136,
    1758      218,   789,   790,   203,   211,   715,   212,   878,   579,   791,
    1759       67,   820,   821,  1128,   148,   507,    66,   251,   913,   406,
    1760      252,  1397,   380,   149,   652,   381,   914,    74,   382,   816,
    1761      383,   915,   107,   384,   385,    46,   386,   727,    46,   930,
    1762      822,   732,   205,   663,    46,  1193,  1460,   107,   463,   465,
    1763      118,   667,  1187,   752,    30,   103,   103,   830,   119,   167,
    1764      194,    30,   150,   837,   388,   389,   459,   145,  1456,   817,
    1765      107,   146,   147,  -218,  -218,    46,   221,   156,  1205,   163,
    1766      222,  1183,  1256,   226,   937,   228,   103,    46,   818,   355,
    1767      858,   858,   235,   656,   658,   107,    30,   409,  1174,  1175,
    1768      138,   243,  1417,  1418,   195,   858,  1201,  1184,   107,  1257,
    1769       46,    46,   722,   156,     2,   198,     4,     5,     6,     7,
    1770      392,   103,  1473,  1192,   419,    46,   650,  1417,  1418,  1203,
    1771     1460,   107,  1456,   757,    46,  1460,   156,  1480,  -218,   655,
    1772      657,   107,    46,   161,   145,    46,   763,   423,   146,   147,
    1773      148,  1460,   716,   421,   736,   859,   859,  1531,  1460,   149,
    1774      242,   737,   392,  1184,   816,   142,  1419,   725,   731,  1344,
    1775      859,   453,    34,    46,    35,    94,   471,  1176,   390,  1346,
    1776     1544,    53,   858,   488,   552,    47,   744,    46,    46,    30,
    1777      156,  1428,   422,   398,    46,   647,   648,   991,   150,   451,
    1778      158,    46,   464,   639,   817,  1019,   847,   161,   715,  1018,
    1779      848,   504,  1005,   853,   221,   417,  1138,   493,   553,   459,
    1780       67,   165,   464,   818,   554,   425,    66,   507,  1176,    60,
    1781      507,   654,   175,   507,    -3,   427,   659,    74,   459,   820,
    1782      821,   316,    74,   193,   679,   681,   459,   859,   688,    46,
    1783      797,   355,   448,   400,  -275,   392,   579,   816,    30,    30,
    1784       60,   614,    46,    46,   158,   618,   237,    30,   822,   106,
    1785      106,   107,   359,   135,   136,   242,   647,   648,   831,    46,
    1786      240,   715,   834,    46,   830,   786,  1340,   579,   360,   368,
    1787      508,   902,   579,   542,   543,  1071,   103,   817,   315,  1207,
    1788      106,   416,  1193,   851,   722,   369,   481,   854,   482,    46,
    1789      793,   205,   233,   160,  1072,   107,   818,   135,   136,    46,
    1790      827,   355,   469,   828,   392,   586,  -502,  1119,   544,   545,
    1791      563,   835,   210,   586,  1120,   106,   564,    46,  1505,   920,
    1792     1338,   920,    46,   221,  1510,   226,  1060,  1339,   816,   789,
    1793      790,   844,   515,  1176,   916,   716,  1433,   791,   415,   254,
    1794      416,  1526,  1174,  1175,   820,   821,  1533,   107,    46,   135,
    1795      136,     8,     9,    10,    11,    12,   929,   160,  1530,  1079,
    1796     1379,   366,   262,   371,   109,   161,   849,   373,   817,  -109,
    1797      850,   -10,    46,   822,  1539,    74,  1402,  1177,    30,   372,
    1798       46,  1543,   355,   374,    46,   865,    94,   818,    46,   849,
    1799     -109,   160,    53,  1103,    74,  1134,    47,   415,  1445,  1446,
    1800      738,    33,    74,   739,   357,   581,   745,   375,   716,   741,
    1801      665,   221,   565,   870,   392,   486,   882,  -429,   689,   511,
    1802      205,   380,   158,   376,   381,   758,  -430,   382,   741,   383,
    1803      764,    67,   384,   385,   690,   386,   691,    66,   266,  1193,
    1804     1017,  1093,   811,   880,   708,  1252,  1193,   268,    74,   683,
    1805       60,   160,   692,   689,  1115,   460,   516,   517,   518,  1161,
    1806     1163,   691,   210,  1019,   388,   389,   459,   535,  1451,   908,
    1807      991,   269,   536,   537,   270,   858,  1190,   909,   453,   519,
    1808      442,   520,   508,   521,  1107,   508,   316,   316,   508,  1193,
    1809      106,   316,  1191,  1093,    46,  1190,   319,    46,  1198,    46,
    1810      846,   569,   357,   392,  1331,  1272,  1273,   103,   112,   934,
    1811      160,  1318,   316,  1333,   320,  1022,   861,  1486,    46,    36,
    1812     1332,   177,   321,    39,  1486,   322,   748,  1377,   877,  1334,
    1813       40,    41,   442,   706,    46,   160,   323,   803,  1173,   707,
    1814      859,   157,  1380,   315,   315,   879,    46,   881,   315,    46,
    1815      723,   154,  -109,   324,  -109,   178,   724,   187,  -109,  1017,
    1816      209,   316,   556,   219,   392,   179,   422,  1527,   750,   315,
    1817      392,  1146,   557,  -109,  -109,   580,  1030,   354,   751,   316,
    1818       46,   606,   358,    36,   733,   584,    46,    39,    46,   107,
    1819      734,   135,   136,   747,    40,    41,   938,  1076,   586,   748,
    1820      390,   894,   493,   858,   858,  1427,   939,   748,   460,   248,
    1821     -102,   893,   370,  1104,  -102,   154,   933,   896,   315,   585,
    1822      871,   586,   626,   748,   493,   230,   872,   460,   488,   587,
    1823      231,   511,    46,    46,   511,   460,   315,   511,   898,   892,
    1824      157,   981,    74,   316,   564,   378,    46,   982,   407,   312,
    1825      901,  1038,   356,   581,   903,   408,   160,   160,   579,   205,
    1826     1365,   160,   715,   443,  1366,   993,   137,  1060,   859,   859,
    1827     1004,   707,   412,   205,  1244,   107,   157,   135,   136,   713,
    1828      564,    60,   160,   442,   845,    74,   442,   446,  1488,   581,
    1829     1489,   430,   442,     2,   198,     4,     5,     6,     7,   157,
    1830      315,  1017,  1373,   449,   410,   647,   648,   450,   748,   414,
    1831      424,   728,   985,   679,   681,   811,   729,   232,   234,   717,
    1832      472,   106,  1267,   242,   318,    46,  1322,   107,  -454,  1146,
    1833     -454,   160,  1321,  1374,  -454,  1528,    46,  1376,   436,   748,
    1834      538,   539,  1381,   748,   442,   500,   987,   442,   748,   160,
    1835      442,    34,  1390,    35,  1441,   515,   992,  1461,   564,  1547,
    1836     1442,   205,   913,   748,   550,   564,  1387,   549,   414,   803,
    1837      914,   476,  1006,   548,   883,   915,   392,  1246,     8,     9,
    1838       10,    11,    12,   125,  1058,   126,   127,   128,   546,   547,
    1839      509,  1033,   551,   154,   107,    53,   135,   136,   774,   775,
    1840      776,   777,  1368,  1146,   107,    30,   135,   136,   886,   716,
    1841      392,   554,    46,   160,   356,   567,    46,    46,   242,   318,
    1842      392,  1392,  1188,   580,  1416,   582,   806,  1424,    33,    46,
    1843     1227,   649,   704,   576,    67,  1228,   811,    46,   640,  1140,
    1844       66,   392,  1289,  1290,   540,   541,     8,     9,    10,    11,
    1845       12,    74,   641,   611,   580,    46,   688,   615,   642,   580,
    1846      400,   643,   392,  1157,   803,   392,  1108,   644,  1109,   556,
    1847      445,   392,  1459,    30,    36,   460,  1083,  1463,    39,   557,
    1848      645,  1160,   713,   586,   356,    40,    41,   646,  1130,  1084,
    1849     1162,   741,   586,  1130,   247,  1165,    33,   697,  1232,   716,
    1850      392,  1146,   695,  1479,   748,   986,    46,  -222,  1297,  1298,
    1851      103,  1300,   735,  1137,   312,   312,  1239,  1304,   460,   312,
    1852     1307,    36,   717,   177,   749,    39,   688,   469,   318,   392,
    1853      753,  1470,    40,    41,   828,   318,   586,   750,   805,   392,
    1854      668,   436,   812,   442,   436,   855,  1130,   751,   -12,   811,
    1855      436,  1345,  1347,  1348,   867,   713,  1058,   255,   422,  1202,
    1856     1204,  1206,   112,   940,    53,   318,   392,   256,  1033,  1498,
    1857     1308,  1309,  1481,  1482,   868,  1538,  1417,  1418,  1171,  1172,
    1858      874,  1538,   279,   103,   811,   770,   771,   476,   895,   312,
    1859     1538,   476,   772,   773,  1538,   717,   897,    46,   724,   627,
    1860      900,   564,   509,    67,   688,   509,   675,   312,   509,  1195,
    1861      778,   779,    36,   928,   705,  -403,    39,  1517,  -506,   942,
    1862       74,   949,    46,    40,    41,   951,   955,  1537,   316,   956,
    1863      960,   961,   688,   704,   963,  1221,  1222,   964,   965,   966,
    1864      977,  1001,  1209,   976,   988,   493,   989,   990,   813,  1073,
    1865      586,   606,   994,   803,  1002,  1031,  1040,  1007,   587,  1093,
    1866     1008,  1009,     2,   198,     4,     5,     6,     7,  1010,  1011,
    1867     1012,   312,  1013,  -391,  -390,   845,  1453,  1080,   693,   103,
    1868     1075,   576,  1086,   445,    60,   315,  1087,  1423,  1090,   809,
    1869      220,  1089,     8,     9,    10,    11,    12,  -276,  1091,  1092,
    1870     1096,  1097,  1098,  1106,     8,     9,    10,    11,    12,  1099,
    1871      493,   493,   843,   211,   203,   212,   726,   576,   730,    30,
    1872       34,  1100,    35,   852,   106,  1058,  1116,   748,  1117,  1118,
    1873     1121,    30,  1213,   970,  1124,  1129,    53,  1126,    46,  1503,
    1874     1453,  1152,    33,  1155,    36,  1178,   168,   169,    39,  1166,
    1875     1179,  1181,  1180,   205,    33,    40,    41,   497,  1182,  1108,
    1876     1196,  1109,  1197,  1199,  1200,  1130,  1130,  1130,   704,  1208,
    1877      513,   514,  1214,    -3,  1219,    67,  1225,  1226,   704,  -277,
    1878      354,    66,   534,   938,  1240,   586,     8,     9,    10,    11,
    1879       12,  1236,    74,   939,   704,  1247,   481,   106,   160,  1245,
    1880     1250,   436,  1439,  1254,  1258,  1261,    36,  1263,   177,  1265,
    1881       39,   514,  1268,    30,  1269,   705,   421,    40,    41,  1270,
    1882     1274,    53,  1352,  1281,  1058,  1286,  1291,  1299,  1292,  1329,
    1883      103,   476,  1323,  1356,  1357,  1358,    33,  1302,  1303,  1317,
    1884     1305,  1306,   674,  1324,   392,   580,   811,  1335,   514,  1313,
    1885      675,   103,   676,   460,  1108,   422,  1109,  1337,  1341,  1342,
    1886       67,   380,  1343,   866,   381,  1349,  1195,   382,  1350,   383,
    1887     1351,  1353,   384,   385,  1361,   386,   103,    74,  1362,  1363,
    1888     1364,  1309,  1058,  1393,  1371,  1058,  1375,  1372,  1382,  1438,
    1889     1385,  1388,  1386,   106,  1389,  1398,  1383,  1394,    46,  1516,
    1890     1399,  1406,  1402,   388,   389,  1407,   316,    46,    46,  1411,
    1891     1412,  -278,  1130,  1130,  -392,  1415,  1426,  1003,     8,     9,
    1892       10,    11,    12,   647,   648,  1432,   924,  1430,  1440,    36,
    1893     1058,   177,   927,    39,  1443,  1058,   103,  1447,    63,   113,
    1894       40,    41,  1448,  1449,   493,    30,  1450,  1366,  1466,    93,
    1895      705,  1452,  1457,  1462,  1468,  1108,   713,  1109,  1464,  1471,
    1896      705,  1058,   809,   315,  1472,   674,  1474,   392,    33,    63,
    1897      141,   103,  1475,  1487,  1495,   676,   705,  1476,    53,  1501,
    1898       93,  1499,   155,   145,  1502,    53,  1522,   146,   147,  1525,
    1899     1509,   144,  1534,    93,  1532,  1540,   717,  1546,   889,   780,
    1900      704,   704,   781,  1518,   213,    46,   783,   493,   493,   182,
    1901      782,   784,    93,  1253,  1058,    93,  1316,    67,  1429,  1058,
    1902      767,   768,   769,  1195,    67,    60,    46,    46,    53,   156,
    1903     1195,  1504,  1548,  1058,    74,  1058,  1384,  1520,  1248,  1058,
    1904      249,    74,  1058,   210,   106,  1249,   713,    46,  1058,   355,
    1905     1218,  1490,  1058,  1491,   476,  1110,   312,   704,   704,   514,
    1906     1094,   699,   921,  1125,  1095,   106,   671,    67,   672,   800,
    1907     1039,   873,   103,  1195,  1105,   944,   160,   442,  1330,   718,
    1908      952,   317,  1519,   809,    74,     0,   717,     0,     0,   332,
    1909      106,     0,    93,   103,     0,     0,     0,     0,     0,     0,
    1910      103,  1144,    36,   843,    93,   627,    39,     0,     0,     0,
    1911      460,  1043,     0,    40,    41,     0,     0,   387,     0,     0,
    1912        0,  1545,     0,     0,     0,     0,     0,   379,   182,     0,
    1913        0,   405,     0,  1550,   141,   411,     0,     0,    42,     0,
    1914      155,     0,    36,   103,   177,   210,    39,     0,   143,     0,
    1915      106,    93,     0,    40,    41,     0,     0,     0,     0,   170,
    1916      428,     0,    93,     0,   431,    36,   432,   168,   169,    39,
    1917        0,   442,   442,   447,     0,     0,    40,    41,  1514,    63,
    1918      392,     0,   705,   705,   461,   106,     0,    36,  1515,     0,
    1919       93,    39,     0,     0,   468,   514,   809,     0,    40,    41,
    1920        0,   316,   411,  1494,   467,     0,     0,   627,   170,     0,
    1921        0,   170,     0,     0,     0,  1327,     0,    36,     0,     0,
    1922        0,    39,     0,   904,     0,   392,     0,     0,    40,    41,
    1923        0,   809,  1494,   905,     0,     0,     0,     0,   971,   705,
    1924      705,   442,     0,     0,   704,     0,     0,     0,     0,     0,
    1925      207,     0,  1266,   720,     0,   704,   704,   704,   315,  1144,
    1926        0,     0,    72,   721,   577,     0,    93,   460,     0,     0,
    1927        0,   607,     0,     0,   460,     0,     0,     0,     0,     0,
    1928      588,     0,   442,     0,   612,     0,   106,     0,   612,     0,
    1929        0,   332,     0,    72,     0,     0,     0,     0,     0,     0,
    1930      207,     0,     0,     0,     0,   704,     0,   106,     0,     0,
    1931     1043,     0,     0,     0,   106,   170,   442,   460,     0,   442,
    1932      442,     0,     0,  1229,  1230,     0,     0,     0,   214,     0,
    1933        0,     0,     0,  1144,   312,   436,   182,   461,     0,     0,
    1934        0,     0,   207,     0,     0,   442,     0,   442,  1110,     0,
    1935       36,   332,   168,   169,    39,     0,   461,   106,     0,     0,
    1936        0,    40,    41,     0,   461,     0,     0,   170,     0,     0,
    1937        0,   160,     0,     0,   170,   514,     0,     0,     0,     0,
    1938        0,     0,   206,     0,     0,   680,   358,     0,     0,     0,
    1939      700,     0,   224,   411,     0,     0,     0,  1328,     0,     0,
    1940      207,     0,     0,     0,     0,     0,     0,     0,   714,     0,
    1941       63,     0,     0,   335,     0,     0,     0,     0,   411,     0,
    1942        0,    93,   411,     0,     0,   588,   705,  1295,     0,   436,
    1943      436,  1144,   206,     0,     0,   170,   207,   705,   705,   705,
    1944      207,     0,     0,  1110,     0,     0,     0,     0,     0,     0,
    1945      332,     0,   170,     0,     0,     0,   170,   522,   523,   524,
    1946      525,   526,   527,   528,   529,   530,   531,     0,     0,     0,
    1947        0,     0,     0,     0,   206,     0,     0,     0,     0,     0,
    1948        0,   514,     0,     0,   429,     0,     0,   705,     0,     0,
    1949      532,     0,     0,   809,     0,   792,     0,     0,     0,   436,
    1950        0,     0,     0,    72,     0,     0,     0,     0,    72,     0,
    1951      802,     0,   577,     0,     0,     0,     0,     0,     0,   207,
    1952      249,     0,     0,     0,     0,   824,     0,     0,     0,   497,
    1953        0,    75,   206,     0,   815,     0,   588,     0,     0,     0,
    1954      436,     0,     0,   577,  1110,     0,     0,     0,   577,     0,
    1955        0,     0,     0,     0,   612,     0,     0,     0,   332,   332,
    1956        0,     0,    75,     0,     0,     0,     0,     0,   206,     0,
    1957        0,     0,   206,   332,  1493,     0,     0,   436,   436,     0,
    1958        0,     0,     0,     0,     0,     0,     0,     0,   487,     0,
    1959        0,   700,     0,     0,     0,   214,     0,   215,   207,     0,
    1960        0,     0,     0,  1493,   461,   436,     0,     0,     0,     0,
    1961        0,   714,     0,     0,   917,   335,     0,   588,     0,   394,
    1962        0,     0,     0,   912,     0,   680,   402,  1434,     0,   312,
     1749     107,   108,    44,   143,    92,   144,   145,   378,   255,   138,
     1750     379,   658,   418,   386,   248,   380,   791,   692,   101,   101,
     1751     363,   381,   759,   382,   667,   484,   911,   842,   787,   891,
     1752     587,   912,   668,    44,   913,    92,   383,   858,   384,   577,
     1753    1126,   611,    44,   686,    44,   615,   154,   788,   818,   101,
     1754     867,   876,   824,   819,    44,   817,   825,    64,   856,   856,
     1755      44,   828,   184,    44,   209,   206,    44,   835,   216,   820,
     1756      45,   725,   492,   856,   681,   730,   387,   789,  1174,  1395,
     1757      30,   970,   101,    65,   378,  1134,  1070,   379,    64,   404,
     1758     386,   146,   380,   249,   723,   147,   250,   814,   381,   148,
     1759     382,    45,   911,    44,    58,    72,    44,   912,  1172,  1173,
     1760     913,   702,    44,   383,    65,   384,   137,  1069,   815,   105,
     1761     928,   654,   656,    51,   109,  1454,   192,    91,   935,   816,
     1762     105,  1191,   550,  1458,   425,    58,    72,   116,  1185,   143,
     1763     389,   144,   145,    44,   203,   154,   390,   750,   240,   316,
     1764     856,   446,    30,   387,    51,    44,   105,   353,    91,    30,
     1765    1415,  1416,   159,   105,   985,  1203,   551,   142,   755,    91,
     1766     193,   407,  -218,  -218,   990,   720,   650,   105,    44,    44,
     1767    1471,   154,    30,   714,   201,   180,   161,   210,    91,  1454,
     1768    1004,    91,   648,    44,   761,   661,   729,   952,   388,  -109,
     1769     417,  1342,    44,   665,   154,   829,  1400,   105,    30,   832,
     1770      44,   461,   463,    44,   742,   421,   143,  1458,   144,   145,
     1771    -109,   645,  1458,   240,  1417,   390,   159,   146,  1415,  1416,
     1772     849,   147,   814,   105,   852,   148,  1199,  -218,  1458,   451,
     1773     457,    44,   462,    92,  1529,  1458,   398,   117,   390,   135,
     1774     513,   989,   469,   815,   734,    44,    44,   101,   154,   486,
     1775     314,   735,    44,   462,   816,   165,  1201,  1542,    91,    44,
     1776     677,  1344,   467,   637,   390,  1117,   818,  1077,   795,   502,
     1777      91,   819,  1118,  1003,   646,   552,  1190,   577,   828,  1016,
     1778      30,  1174,  1426,  1017,   420,    30,    64,   820,   230,   232,
     1779     686,   652,   645,   377,   180,  1254,   657,   241,   491,    45,
     1780    1181,   851,   702,  1338,  1136,   536,   537,    44,   577,   353,
     1781     414,  1336,    65,   577,   449,   814,   136,    91,  1337,  1478,
     1782      44,    44,  1255,   679,   419,   140,  1182,   612,    91,   104,
     1783     104,   616,  1174,    58,    72,   163,   815,    44,   458,    72,
     1784     105,    44,   133,   134,   826,  1182,   584,   816,   357,   833,
     1785     173,   584,    51,   191,   791,   646,    91,   720,   366,  1528,
     1786     104,    34,  1172,  1173,   358,    37,   787,    44,   369,   414,
     1787     465,   158,    38,    39,   367,  1537,   714,    44,  1191,   353,
     1788     235,   231,  1541,   457,   370,   788,  1169,  1170,   371,   396,
     1789     208,   818,  -275,   104,   159,    44,   819,   811,   825,   584,
     1790      44,   845,   457,   203,   372,   846,   814,   585,   842,   373,
     1791     457,   415,   820,   687,   689,   789,   105,  1070,   133,   134,
     1792     105,   423,   133,   134,   847,   374,    44,   815,   848,   688,
     1793     690,  1175,    91,   900,   579,   158,   240,   702,   816,   687,
     1794     260,   443,   107,  1219,  1220,   561,   586,   702,  1069,   714,
     1795      44,   562,  1020,   856,   863,   906,   228,  1174,    44,   238,
     1796     353,   229,    44,   702,    92,   533,    44,   914,   847,   158,
     1797     534,   535,  1101,  1159,  1161,  1132,  -500,   868,   101,   704,
     1798     484,   205,   355,   689,   809,   705,   506,   739,  1449,   927,
     1799     252,   458,    72,   378,  1443,  1444,   379,   -10,  1503,   907,
     1800     386,   380,   180,   756,  1508,  1205,   739,   381,   762,   382,
     1801     458,    72,   479,  1015,   480,   314,   314,    64,   458,    72,
     1802     314,  1524,   383,   878,   384,   563,  1531,   390,  1105,   158,
     1803      45,   205,   203,  1377,   989,  1191,  1250,   554,  1113,   390,
     1804     208,   314,  1191,    65,  -102,  1091,  -427,   555,  -102,  -428,
     1805    1102,   678,   105,   681,   133,   134,   451,   264,   440,  1270,
     1806    1271,  1017,   711,   387,    58,    72,   266,    34,   104,  1081,
     1807     625,    37,    44,   205,   748,    44,   390,    44,    38,    39,
     1808     355,   856,   856,    51,   749,  1191,   844,    91,   158,   880,
     1809     314,   586,   105,  1431,   133,   134,    44,  1091,   317,  1188,
     1810     219,  1363,   859,   318,   220,  1364,   267,   224,   314,   226,
     1811     440,  -276,    44,   158,   875,  1189,   233,   801,     8,     9,
     1812      10,    11,    12,   877,    44,   879,   663,    44,   726,   268,
     1813    1350,   205,  1015,   727,     2,   196,     4,     5,     6,     7,
     1814    1188,  1354,  1355,  1356,   319,    30,  1329,   110,   320,   691,
     1815     457,   321,  1028,   578,   443,  -109,  1316,  -109,    44,   604,
     1816     706,  -109,  1330,   567,    44,   390,    44,   205,    33,   702,
     1817     702,   205,   314,  1074,   538,   539,  -109,  -109,   420,  1144,
     1818    1331,   505,   579,   322,   540,   541,   721,   724,   152,   728,
     1819    1484,  1391,   722,   932,   931,   352,  1332,  1484,   506,   577,
     1820     813,   506,   586,   491,   506,   356,   105,   746,   133,   134,
     1821      44,    44,  1002,   843,   486,  1036,   731,   364,   579,   542,
     1822     543,  -277,   732,  1378,    44,   491,   702,   702,     8,     9,
     1823      10,    11,    12,    34,   158,   158,   368,    37,   219,   158,
     1824    1525,   645,  1225,   376,    38,    39,   246,  1226,   388,   677,
     1825     205,   405,   152,  1375,    -3,    30,   745,   809,   458,    72,
     1826     158,   440,   746,   406,   440,   711,   936,   410,   584,    40,
     1827     440,   203,   544,   545,  1015,   869,   937,   624,    33,   141,
     1828     428,   870,  -452,   586,  -452,   203,   310,   736,  -452,   910,
     1829     737,   678,  1320,   743,   892,   441,   881,   715,   390,   104,
     1830     746,   458,    72,    44,   646,   653,   655,    34,   884,   158,
     1831     390,    37,   679,   983,    44,   894,  1319,   444,    38,    39,
     1832     447,   746,   440,   155,   448,   440,   896,   158,   440,   205,
     1833    1265,  1425,   562,   105,   864,   813,   586,  1144,   711,   185,
     1834     470,   408,   207,   718,   498,   217,   412,   513,   979,   801,
     1835     714,   713,   991,   719,   980,   890,   911,  1242,   705,  1371,
     1836     546,   912,  1056,   562,   913,   746,   899,   219,  1372,   224,
     1837     901,  1374,   547,   203,   746,   434,  1379,   746,   809,   205,
     1838     548,   101,   746,  1138,  1325,   390,  1186,  1390,   746,   984,
     1839      44,   158,  1031,   505,    44,    44,   505,   922,   549,   505,
     1840    1388,   578,   552,   925,   804,   412,   562,    44,   474,   565,
     1841    1244,  1144,   580,   702,  1486,    44,  1487,  1439,   686,  1155,
     1842      64,   390,   155,  1440,   702,   702,   702,   507,   813,  1459,
     1843     152,   638,   578,    44,   354,   746,  1106,   578,   639,   586,
     1844     714,    34,  1545,   175,   801,    37,    65,   105,   562,   133,
     1845     134,   784,    38,    39,   101,   219,   640,  1158,   155,   584,
     1846     123,  1526,   124,   125,   126,   642,  1128,    58,    72,   739,
     1847     574,  1128,   316,   390,   702,  1287,  1288,   176,  1160,  1163,
     1848     584,   155,  1306,  1307,    44,   643,    51,   177,   686,   644,
     1849     609,   809,   422,   647,   613,   205,  1237,  1468,  1479,  1480,
     1850     715,   857,   857,     2,   196,     4,     5,     6,     7,  1144,
     1851     772,   773,   774,   775,  1135,  1230,   857,   390,   245,   813,
     1852     586,   440,  1415,  1416,  1128,   205,   809,   240,   316,   390,
     1853     205,   218,   678,   693,  1056,  1496,   695,  1200,  1202,  1204,
     1854     678,   938,   398,   641,   390,     8,     9,    10,    11,    12,
     1855     101,   310,   310,   918,   713,   918,   310,   314,   586,  1107,
     1856    -222,   514,   515,   516,   733,   703,   686,   768,   769,  1031,
     1857     420,   747,    30,   715,   751,    44,   625,   666,   434,   770,
     1858     771,   434,  1041,   803,   517,   810,   518,   434,   519,  1193,
     1859     467,   316,   390,   857,   686,    33,   354,   853,   866,   110,
     1860      44,   826,   316,   584,   843,  1082,   -12,  1343,  1345,  1346,
     1861     865,  1535,   776,   777,   872,    65,   277,   893,   205,   895,
     1862     898,  1515,   722,  -401,   474,   926,   310,   713,   474,   604,
     1863     562,  -504,   205,   801,   673,   940,   458,    72,   947,   507,
     1864     949,   954,   507,   953,   310,   507,   491,     8,     9,    10,
     1865      11,    12,   958,   959,   961,    51,   962,   963,   168,   964,
     1866    -278,   975,   974,  1091,   986,   987,   354,     8,     9,    10,
     1867      11,    12,   988,   495,    30,   992,   999,    34,   625,   175,
     1868    1000,    37,  1005,   209,  1006,  1007,   511,   512,    38,    39,
     1869    1008,  1009,  1010,  1011,    30,  -389,  -388,    33,   532,  1029,
     1870     586,   101,   104,  1056,  1038,  1071,  1078,   168,   310,  1451,
     1871     168,   491,   491,   672,  1087,   390,    44,    33,   574,  1073,
     1872     205,   673,   101,   674,  1084,  1085,   807,   512,  1088,  1106,
     1873       8,     9,    10,    11,    12,  1089,  1090,  1094,   554,   711,
     1874     390,  1095,  1104,  1128,  1128,  1128,  1096,   101,   555,   841,
     1875    1097,  1098,  1114,   746,   574,  1115,  1116,    30,  1207,  1119,
     1876     850,    64,   968,  1122,   512,   203,   703,    34,  1058,   175,
     1877    1124,    37,  1501,  1451,  1127,   104,   158,  1150,    38,    39,
     1878      33,  1041,  1437,  1153,  1164,    34,  1176,    65,   809,    37,
     1879    1177,  1178,  1179,  1180,  1227,  1228,    38,    39,  1194,  1195,
     1880    1197,  1198,  1056,   253,  1206,   201,   210,   101,    58,    72,
     1881    1211,  1212,    -3,   254,   168,  1217,  1223,   479,  1234,  1224,
     1882     156,    40,  1297,   578,  1106,  1238,  1315,    51,  1243,   711,
     1883    1245,   141,  1248,   378,  1252,   314,   379,  1256,   434,   386,
     1884    1259,   380,   101,  1261,  1263,  1272,  1193,   381,  1266,   382,
     1885    1267,  1268,  1107,     2,   196,     4,     5,     6,     7,   645,
     1886    1056,  1279,   383,  1056,   384,  1284,   168,   420,   474,  1289,
     1887    1290,   104,    65,   168,  1300,  1436,    44,  1301,  1303,  1514,
     1888    1304,  1321,  1311,  1322,   156,    44,    44,  1327,  1333,  1335,
     1889    1128,  1128,  1339,   458,    72,  1341,  1340,  1347,  1293,  1348,
     1890    1349,   703,   387,  1351,  1171,  1359,   857,   419,  1056,  1360,
     1891    1361,   703,    51,  1056,  1362,  1369,  1307,   205,   313,  1370,
     1892    1373,  1380,   646,  1383,  1392,  1106,  1384,   703,  1386,  1387,
     1893    1396,    61,   111,  1397,   168,  1404,   765,   766,   767,  1056,
     1894    1196,  1400,  1405,   101,  1430,   491,  1409,  1107,    34,  1410,
     1895     582,   168,    37,  -390,  1001,   168,  1413,  1424,  1441,    38,
     1896      39,  1428,    61,   139,   101,   143,  1438,   144,   145,  1445,
     1897    1446,   101,  1447,   153,   715,   512,  1448,  1450,   413,  1364,
     1898    1460,  1516,  1455,    44,   583,  1466,   584,  1462,  1464,  1470,
     1899    1469,  1473,  1056,  1493,   585,   211,  1499,  1056,  1474,   807,
     1900    1472,  1485,  1497,  1193,    44,    44,  1500,   154,   491,   491,
     1901    1193,  1056,  1381,  1056,   101,  1520,  1523,  1056,  1507,  1530,
     1902    1056,   208,   104,  1532,  1538,    44,  1056,   353,   713,    65,
     1903    1056,   247,  1544,   887,   857,   857,    65,   413,   778,   780,
     1904    1251,   779,  1314,   104,   781,  1502,   782,  1427,  1107,  1382,
     1905     458,    72,  1546,  1193,   158,   440,  1518,   458,    72,   509,
     1906    1246,  1488,   156,    34,   715,   166,   167,    37,   104,    51,
     1907    1247,  1216,   315,    70,    38,    39,    51,   919,  1092,    65,
     1908     330,   669,  1093,  1037,   670,   697,     8,     9,    10,    11,
     1909      12,   474,  1108,   310,  1295,  1296,   798,  1298,  1432,   352,
     1910     458,    72,  1123,  1302,    70,   871,  1305,   942,   385,  1058,
     1911    1103,   512,   205,    30,   716,     0,   950,  1328,     0,    51,
     1912     807,     0,   403,   208,     0,   139,   409,     0,   104,   465,
     1913     314,   153,     0,   703,   703,    34,    33,   212,  1142,    37,
     1914     841,    34,     0,   175,     0,    37,    38,    39,     0,   440,
     1915     440,   426,    38,    39,   969,   429,     0,   430,     0,     0,
     1916       0,     0,     0,   104,   445,     0,     0,     0,  1366,  1489,
     1917      61,   902,   392,   390,     0,   459,     0,   176,     0,   400,
     1918       0,   903,     0,   313,   313,   466,   806,   177,   313,     0,
     1919     703,   703,     0,   409,     0,     0,   204,     0,  1517,     0,
     1920       0,    34,     0,   166,   167,    37,   222,     0,  1385,   313,
     1921     168,     0,    38,    39,   205,     0,     0,     0,     0,   440,
     1922       0,     0,   333,     0,     0,     0,   168,     0,     0,     0,
     1923       0,     0,     0,   807,     0,     0,     0,  1543,   168,     0,
     1924       8,     9,    10,    11,    12,     0,   204,     0,   392,  1548,
     1925       0,     0,     0,     0,     0,   575,     0,     0,   313,     0,
     1926     440,     0,   605,     0,   104,     0,  1414,    30,   807,  1422,
     1927       0,   509,     0,  1421,   509,   610,   313,   509,     0,   610,
     1928       0,     0,   330,     0,     0,   104,     0,     0,   204,  1264,
     1929      33,   512,   104,   427,   440,    34,  1142,   440,   440,    37,
     1930       0,     0,   560,     0,     0,     0,    38,    39,     0,     0,
     1931     564,     0,    70,   568,  1457,     0,     0,    70,    34,  1461,
     1932     175,     0,    37,   440,     0,   440,     0,     0,   459,    38,
     1933      39,   902,     0,   390,     0,   104,     0,     0,   168,     0,
     1934     313,   903,   330,     0,     0,  1477,   204,   459,  1326,   158,
     1935       0,     0,     0,     0,   672,   459,   390,     0,     0,     0,
     1936       0,     0,     0,     0,   674,     0,     0,     0,     0,   392,
     1937    1142,   310,   434,   400,     0,     0,     0,   703,     0,     0,
     1938       0,   698,   204,     0,   409,  1108,   204,     0,   703,   703,
     1939     703,     0,     8,     9,    10,    11,    12,   512,     0,   712,
     1940       0,    61,   485,     0,   212,     0,     0,     0,     0,   409,
     1941      34,     0,   175,   409,    37,     0,     0,  1536,     0,    30,
     1942       0,    38,    39,  1536,   333,     0,     8,     9,    10,    11,
     1943      12,     0,  1536,     0,     0,     0,  1536,     0,   703,     0,
     1944       0,   330,    33,     0,     0,   495,  1512,    34,   390,   582,
     1945       0,    37,     0,    30,     0,     0,  1513,   392,    38,    39,
     1946      34,     0,   166,   167,    37,   204,   434,   434,  1142,     0,
     1947      70,    38,    39,     0,     0,     0,    33,     0,     0,     0,
     1948    1108,     0,     0,   583,   333,   584,   790,     0,     0,    70,
     1949       0,     0,     0,   585,     0,     0,   356,    70,   118,   121,
     1950     122,   800,     0,   575,   806,     0,     0,     0,     0,     0,
     1951       0,   247,     0,     0,     0,     0,   822,   748,     0,   390,
     1952       0,     0,     0,   333,     0,     0,     0,   749,     0,     0,
     1953     807,     0,     0,     0,   575,     0,   434,     0,     0,   575,
     1954       0,   333,     0,    70,   204,   610,   560,   560,     0,   330,
     1955     330,     0,     0,     8,     9,    10,    11,    12,     0,     0,
     1956       0,   204,     0,     0,   330,     0,   242,     0,   243,   512,
     1957       0,     0,     0,     0,     0,     0,     0,   434,     0,     0,
     1958      30,  1108,   698,   333,   520,   521,   522,   523,   524,   525,
     1959     526,   527,   528,   529,   204,   459,     0,     0,   806,     0,
     1960       0,     0,   712,    33,     0,   915,     0,     0,    34,     0,
     1961     175,  1491,    37,     0,   434,   434,     0,   530,     0,    38,
     1962      39,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     1963     882,     0,     0,     0,   885,     0,     0,     0,   459,     0,
     1964    1491,   330,   434,   333,   253,     0,   375,     0,     0,    30,
     1965     941,     0,     0,   409,   254,   394,   395,     0,   560,     0,
     1966     399,     0,   401,   402,     0,     0,   310,     0,     0,     0,
     1967     392,     0,    33,     0,     0,   712,     0,    34,     0,   175,
     1968     967,    37,     0,     0,     0,     0,     0,     0,    38,    39,
     1969       0,   333,   333,     0,     0,     0,     0,     0,     0,     0,
     1970       0,     0,     0,    73,     0,     0,   333,     0,     0,     0,
     1971     204,     0,     0,   672,     0,   390,     0,   698,     0,     0,
     1972       0,     0,     0,   674,   333,   313,     0,   698,     0,     0,
     1973       0,     0,   997,   800,    73,     0,     0,    70,     0,   247,
     1974     204,     0,     0,   698,   333,   204,     0,     0,     0,     0,
     1975       0,     0,  1014,     0,     0,     0,     0,     0,     0,     0,
     1976       0,     0,     0,     0,     0,     0,     0,   213,     0,     0,
    19631977       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1964        0,     0,     0,     0,     0,     0,     0,   461,   207,     0,
    1965      332,   206,     0,   514,     0,     0,     0,     0,     0,   943,
    1966        0,    72,   411,     0,     0,     0,     0,     0,     0,   815,
    1967      588,     0,     0,     0,     0,   335,     0,     0,     0,     0,
    1968       72,     0,   337,     0,   714,     0,     0,   808,    72,   969,
    1969        0,     0,     0,     0,     0,   394,     0,     0,     0,     0,
     1978      70,     0,   560,   333,   247,     0,     0,     8,     9,    10,
     1979      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     1980      21,    22,    23,    24,    61,     0,    25,    26,    27,     0,
     1981       0,     0,     0,     0,    30,     0,     0,   333,     0,     0,
     1982       0,     0,     0,     8,     9,    10,    11,    12,   800,     0,
     1983     806,     0,     0,   204,  1083,     0,     0,    33,     0,     0,
     1984       0,     0,    34,     0,    35,    36,    37,   204,     0,     0,
     1985      30,     0,   335,    38,    39,     0,     0,     0,     0,   333,
     1986       0,     0,     0,     0,     0,     0,     0,   485,  1100,   333,
     1987       0,     0,     0,    33,   212,   333,   409,   111,    40,     0,
     1988     150,     0,     0,     0,     0,   333,     0,     0,    42,     0,
     1989       0,   330,     0,     0,   560,   560,     0,     0,     0,     0,
     1990       0,     0,   392,     0,     0,   247,     0,    75,     0,     8,
     1991       9,    10,    11,    12,   936,     0,   584,     0,     0,     0,
     1992       0,     0,     0,   610,   937,   575,     0,     0,     0,     8,
     1993       9,    10,    11,    12,     0,   204,    30,     0,    75,     0,
     1994       0,     0,    73,   139,     0,     0,    70,    73,     0,   698,
     1995     698,     0,   330,   330,   330,     0,    30,     0,     0,    33,
     1996       0,     0,     0,     0,    34,     0,   175,     0,    37,     0,
     1997     333,   214,     0,  1192,     0,    38,    39,     0,  1139,    33,
     1998       0,     0,     0,     0,    34,     0,     0,     0,    37,     0,
     1999     806,     0,     0,     0,     0,    38,    39,  1156,     0,   168,
     2000    1512,     0,   390,   313,     0,     0,   698,   698,     0,     0,
     2001    1513,     0,     0,     0,     0,     0,     0,   800,   247,     0,
     2002     718,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2003     719,   792,   793,   333,   213,     0,     0,     0,     0,     0,
    19702004       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1971        0,   170,     0,     0,   335,     0,     8,     9,    10,    11,
    1972       12,     0,     0,     0,     0,     0,   700,   170,     0,     0,
    1973      206,     0,   335,     0,    72,     0,   700,     0,     0,   170,
    1974        0,   999,   802,    30,     0,     0,     0,   206,   249,   562,
    1975        0,     0,   700,     0,     0,     0,     0,   566,     0,     0,
    1976      570,  1016,   815,     0,   207,     0,    33,     0,     0,     0,
    1977        0,    36,    75,   588,   335,    39,     0,    75,     0,     0,
    1978      206,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    1979        0,     0,     0,   249,   207,     0,     0,     0,     0,   207,
    1980        0,     0,     8,     9,    10,    11,    12,   904,     0,   392,
    1981        0,     0,     0,    63,     0,     0,   394,   905,     0,     0,
    1982      402,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1983        0,     0,     0,     0,   335,     0,     0,   802,     0,   170,
    1984        0,     0,     0,  1085,     0,     0,     0,     0,     0,     0,
    1985        0,     0,    33,   815,   588,     0,     0,    36,     0,   584,
    1986        0,    39,     0,     0,   215,     0,   680,     0,    40,    41,
    1987        0,     0,     0,     0,   680,     0,     0,  1102,     0,     0,
    1988        0,     0,   335,   335,   337,   411,   113,   207,     0,     0,
    1989        0,     0,   588,   585,     0,   586,   206,   335,     0,     0,
    1990      332,   207,     0,   587,   394,     0,     0,     0,     0,     0,
    1991        0,     0,     0,     0,   249,   335,     0,     0,     0,     0,
    1992        0,     0,     0,     0,     0,     0,   206,     0,    72,     0,
    1993       75,   206,   612,     0,   577,   335,     0,     0,     0,     0,
    1994        0,     0,     0,     0,   337,     0,     0,    77,     0,    75,
    1995        0,     0,   141,     0,     0,     0,     0,    75,   700,   700,
    1996        0,   332,   332,   332,     0,     0,     0,     0,     0,     0,
    1997        0,    72,     0,     0,   335,     0,     0,     0,    77,     0,
    1998        0,     0,  1194,   337,     0,     0,     0,     0,     0,   207,
    1999        0,     0,     0,   562,   562,     0,     0,     0,     0,     0,
    2000        0,   337,     0,    75,     0,   808,     0,     0,   335,     0,
    2001        0,     0,     0,   216,     0,   700,   700,     0,     0,   206,
    2002        0,     0,     0,     0,     0,     0,   802,   249,     0,     0,
    2003        0,     0,     0,   206,   588,     0,     0,     0,     0,     0,
    2004        0,     0,     0,   337,     0,     8,     9,    10,    11,    12,
    2005      335,     0,     0,   487,     0,     0,     0,     0,     0,     0,
    2006      335,     0,   249,     0,     0,   214,   335,     0,   120,   123,
    2007      124,     0,    30,     0,     0,     0,   335,   884,     0,     0,
    2008        0,   887,     0,   612,     0,   714,     0,     0,     0,     0,
    2009      612,   332,   332,     0,     0,    33,     0,     0,   338,   808,
    2010       36,     0,   177,   337,    39,   562,     0,     0,     0,     0,
    2011        0,    40,    41,     0,     0,     0,     0,   394,     0,     0,
    2012        0,   206,     0,     0,     0,     0,     0,     0,     0,     0,
    2013        0,     0,     0,  1296,     0,     0,   178,    72,   244,     0,
    2014      245,     0,     0,     0,     0,     0,   179,     0,     0,     0,
    2015      332,   337,   337,     0,    63,     0,     0,     0,     0,     0,
    2016        0,   335,     0,     0,   612,     0,   337,     0,     0,     0,
    2017       54,    54,     0,   700,     0,   714,     0,     0,     0,   113,
    2018        0,     0,     0,     0,   337,     0,   207,     0,    77,     0,
    2019        0,     0,     0,    77,     0,     0,     0,    75,     0,     0,
    2020        0,    54,   700,     0,   337,     0,     0,     0,     0,     0,
    2021        0,     0,     0,   700,   700,   700,     0,     0,   377,     0,
    2022        0,     0,     0,     0,   335,   332,   332,   396,   397,   562,
    2023        0,     0,   401,    54,   403,   404,    54,     0,     0,  1194,
    2024       75,     0,     0,   337,    84,     8,     9,    10,    11,    12,
     2005       0,     0,     0,   247,   335,     0,   336,     0,     0,   827,
     2006       0,     0,   830,   831,     0,   834,     0,   836,   837,     0,
     2007       0,     0,   838,   839,   610,   560,   712,     0,     0,     0,
     2008    1231,   610,   330,   330,     0,     0,     0,     0,     0,     0,
     2009       0,   333,   333,     0,   333,   333,   333,     0,     0,     0,
     2010      73,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2011       0,     0,     0,     0,   335,    70,     0,     0,     0,    73,
     2012       0,     0,     0,     0,  1294,     0,     0,    73,     0,     0,
     2013       0,     0,   204,     0,     0,     0,     0,     0,     0,     0,
     2014       0,   330,     0,     0,     0,    61,    75,     0,   333,   333,
     2015       0,    75,     0,   335,     0,   610,   920,   921,     0,   333,
     2016       0,     0,   923,     0,   698,     0,   712,     0,     0,     0,
     2017     111,   335,     0,    73,     0,     0,     8,     9,    10,    11,
     2018      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2019      22,    23,    24,   698,     0,    25,    26,    27,     0,     0,
     2020       0,     0,     0,    30,   698,   698,   698,     0,     0,     0,
     2021       0,     0,     0,   335,     0,     0,   330,   330,   333,     0,
     2022       0,     0,     0,     0,   333,   333,    33,     0,     0,     0,
     2023    1192,   105,     0,    35,    36,     0,     0,     0,   214,     0,
     2024       0,     0,     0,  1492,     0,     0,     0,     0,     0,     0,
     2025       0,     0,     0,   610,   698,     0,     0,     0,   336,     0,
     2026       0,     0,     0,     0,     0,   111,   212,     0,     0,    41,
     2027       0,     0,  1492,   335,     0,     0,     0,   106,     0,     0,
     2028       0,     0,     0,   333,     0,     0,     0,    70,     0,    82,
     2029       0,     0,     0,     0,     0,     0,     0,     0,   313,     0,
     2030       0,     0,     0,     0,    75,     0,   333,     0,   333,     0,
     2031       0,     0,     0,     0,     0,   247,     0,     0,   336,     0,
     2032      82,   335,   335,    75,     0,     0,     0,   204,     0,     0,
     2033       0,    75,     0,     0,     0,   333,   335,     0,     0,     0,
     2034       0,     0,   330,     0,     0,     0,   333,   333,   333,     0,
     2035       0,     0,     0,   215,   335,     0,     0,   336,   333,   333,
     2036       0,     0,     0,     0,     0,     0,   111,    73,     0,     0,
     2037       0,     0,    70,     0,   335,   336,     0,    75,     0,     0,
     2038       0,     0,     0,     0,     0,     0,     0,  1192,     0,     0,
     2039       0,     0,     0,     0,  1192,     0,   333,     0,     0,     0,
     2040       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2041      73,     0,     0,   335,     0,     0,     0,   336,     0,     0,
     2042       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
     2043       0,    52,    52,     0,     0,     0,     0,  1192,   343,     0,
     2044       0,     0,     0,     0,  1533,     0,     0,   335,     0,     0,
     2045       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2046       0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
     2047       0,     0,     0,   120,   120,   120,     0,   336,     0,     0,
     2048       0,     0,     0,     0,   333,     0,     0,     0,     0,   335,
     2049       0,     0,    52,     0,     0,    52,     0,     0,     0,   335,
     2050       0,     0,     0,     0,   213,   335,     0,     0,     0,     0,
     2051       0,     0,     0,     0,     0,   335,     0,     0,     0,     0,
     2052       0,     0,     0,     0,     0,   336,   336,     0,    82,    70,
     2053       0,     0,     0,    82,     0,     0,    70,     0,     0,     0,
     2054     336,   120,     0,   120,     0,     0,     0,     0,     0,     0,
     2055    1221,     0,     0,     0,     0,     0,     0,     0,   336,     0,
     2056       0,     0,     0,     0,     0,     0,     0,   263,     0,     0,
     2057       0,    75,     0,     0,     0,     0,    73,     0,   336,    70,
     2058     328,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2059      16,    17,    18,    19,    20,    21,    22,    23,    24,  -279,
     2060     335,     0,     0,     0,     0,     0,     0,     0,     0,    30,
     2061       0,     0,     0,     0,    75,     0,     0,   336,     0,     0,
     2062     215,   120,     0,     0,     0,     0,     0,     0,   120,     0,
     2063     120,   120,    33,     0,     0,   120,     0,   120,   120,     0,
     2064     343,     0,    52,  -279,     0,     0,     0,     0,     0,     0,
     2065       0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
     2066       0,     0,     0,   335,     0,     0,     0,     0,     0,     0,
     2067      52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2068       0,     0,     0,     0,  1313,     0,    82,     0,     0,     0,
     2069       0,     0,     0,   336,     0,     0,     0,     0,     0,     0,
     2070     343,     0,     0,   336,   120,    82,     0,     0,   214,   336,
     2071       0,     0,     0,    82,     0,     0,     0,     0,     0,   336,
     2072       0,   335,   335,     0,   335,   335,   335,     0,     0,     0,
     2073       0,     0,     0,     0,     0,     0,     0,     0,     0,   343,
     2074       0,   202,     0,     0,     0,    73,     0,     0,     0,     0,
     2075       0,   221,     0,   225,     0,   227,     0,   343,     0,    82,
     2076       0,     0,   234,     0,     0,     0,     0,     0,     0,     0,
     2077       0,     0,     0,     0,     0,     0,     0,     0,   335,   335,
     2078      75,     0,   328,     0,     0,     0,     0,     0,     0,   335,
     2079       0,   202,     0,   225,   227,   234,     0,     0,     0,   343,
     2080       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
     2081       0,     0,     0,     0,     0,     0,     0,     0,     0,   202,
     2082       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2083       0,     0,     0,   202,     0,     0,     0,     0,     0,     0,
     2084       0,     0,   328,     0,   160,     0,   164,     0,   335,   170,
     2085     171,   172,     0,   174,   335,   335,     0,     0,     0,   343,
     2086       0,     0,     0,     0,     0,     0,     0,   336,   223,     0,
     2087       0,     0,     0,     0,     0,     0,     0,     0,     0,   236,
     2088     237,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2089       0,   202,     0,   225,   227,   234,   213,     0,     0,     0,
     2090       0,    52,     0,     0,     0,     0,     0,   343,   343,     0,
     2091       0,     0,     0,   335,     0,     0,     0,    73,     0,     0,
     2092       0,     0,   343,     0,     0,   336,   336,   202,   336,   336,
     2093     336,   202,     0,     0,     0,     0,   335,     0,   335,     0,
     2094     343,   328,     0,     0,     0,   325,     0,   483,     0,    75,
     2095       0,     0,     0,    82,     0,     0,     0,     0,     0,     0,
     2096     343,     0,     0,     0,     0,   335,     0,     0,     0,     0,
     2097       0,     0,     0,     0,     0,     0,   335,   335,   335,     0,
     2098       0,     0,   336,   336,     0,     0,     0,     0,   335,   335,
     2099       0,     0,     0,   336,     0,   202,    82,     0,     0,   343,
     2100       0,   328,    73,     0,     0,     0,   120,   120,     0,     0,
     2101     202,     0,     0,     0,     0,   225,   227,     0,     0,     0,
     2102       0,     0,     0,   234,     0,     0,   335,     0,     0,     0,
     2103       0,     0,     0,   343,   120,     0,     0,   120,   120,     0,
     2104     120,     0,   120,   120,     0,     0,     0,   120,   120,   328,
     2105     328,     0,   336,     0,     0,     0,     0,     0,   336,   336,
     2106       0,     0,     0,     0,   328,   202,     0,     0,     0,     0,
     2107       0,     0,     0,     0,     0,   343,     0,     0,     0,     0,
     2108       0,     0,     0,   202,     0,   343,     0,     0,     0,   202,
     2109     215,   343,     0,     0,     0,     0,     0,     0,     0,     0,
     2110     214,   343,     0,     0,     0,     0,   202,     0,     0,   202,
     2111     202,     0,     0,     0,   335,     0,     0,   336,     0,     0,
     2112     573,    75,   581,     0,     0,   202,   120,     0,     0,     0,
     2113       0,   120,   120,   606,   607,     0,     0,   120,     0,   202,
     2114     336,   328,   336,     0,     0,     0,   202,   617,     0,     0,
     2115       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
     2116       0,   269,    82,   270,     0,     0,    73,     0,     0,   336,
     2117       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2118     336,   336,   336,     0,   271,     0,   343,     0,     0,     0,
     2119     272,     0,   336,   336,   273,     0,     0,   274,   275,   276,
     2120     277,    38,    39,     0,   278,   279,    75,   660,     0,    73,
     2121       0,     0,   280,     0,     0,     0,     0,     0,     0,     0,
     2122       0,     0,     0,     0,     0,     0,   281,     0,   359,     0,
     2123     336,   360,     0,   328,     0,   283,   361,   285,   286,   287,
     2124     288,     0,     0,     0,     0,     0,     0,     0,     0,   343,
     2125       0,     0,     0,     0,     0,   202,     0,  -499,     0,     0,
     2126       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2127      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2128      21,    22,    23,    24,     0,   202,    25,    26,    27,    28,
     2129     202,     0,    29,     0,    30,    31,     0,     0,     0,     0,
     2130       0,     0,     0,     0,    52,     0,   753,   343,   343,     0,
     2131     343,   343,   343,     0,    32,     0,     0,    33,   336,     0,
     2132       0,     0,    34,     0,    35,    36,    37,     0,   328,     0,
     2133       0,    82,     0,    38,    39,     8,     9,    10,    11,    12,
    20252134      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2026       23,    24,   612,   700,    25,    26,    27,   473,   474,   475,
    2027        0,     0,    30,     0,   113,    84,     0,   337,     0,     0,
    2028      216,     0,   335,   335,     0,   335,   335,   335,     0,     0,
    2029        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2030      338,     0,    37,    38,     0,     0,    72,     0,     0,     0,
    2031      217,     8,     9,    10,    11,    12,     0,     0,   206,   337,
    2032        0,   330,     0,     0,   249,     0,     0,     0,     0,   337,
    2033        0,   808,     0,     0,   215,   337,     0,     0,    30,   335,
    2034      335,   562,   562,     0,     0,   337,    77,     0,     0,   394,
    2035      335,   332,     0,     0,     0,     0,     0,     0,     0,     0,
    2036      338,    33,     0,     0,     0,    77,    36,     0,   177,     0,
    2037       39,     0,     0,    77,     0,   113,     0,    40,    41,     0,
    2038        0,   207,     0,    54,     0,     0,     0,     0,     0,     0,
    2039        0,     0,     0,     0,     0,   345,  1194,     0,     0,   338,
    2040        0,     0,   674,  1194,   392,     0,    75,     0,     0,   335,
    2041        0,    54,   676,     0,     0,   335,   335,   338,     0,    77,
    2042        8,     9,    10,    11,    12,  1141,     0,     0,     0,     0,
    2043      337,     0,     0,     0,     0,     0,     0,     0,     0,     8,
    2044        9,    10,    11,    12,  1158,     0,  1194,    30,     0,     0,
    2045        0,     0,     0,  1535,     0,     0,     0,   214,     0,   338,
    2046        0,     0,     0,   467,     0,     0,    30,     0,     0,     0,
    2047       33,     0,     0,     0,   335,    36,     0,   177,    72,    39,
    2048        0,     0,     0,   207,     0,    84,    40,    41,     0,    33,
    2049       84,   808,     0,   337,    36,     0,   177,   335,    39,   335,
    2050      170,     0,     0,     0,     0,    40,    41,     0,     0,     0,
    2051        0,   255,     0,   206,     0,     0,     0,     0,     0,   338,
    2052        0,   256,   562,   330,     0,     0,   335,  1233,     0,     0,
    2053     1514,     0,   392,     0,     0,     0,     0,   335,   335,   335,
    2054     1515,     0,     0,     0,     0,     0,     0,     0,     0,   335,
    2055      335,   337,   337,     0,   337,   337,   337,     8,     9,    10,
    2056       11,    12,     0,    72,     0,     0,     0,   338,   338,     0,
    2057        0,     0,     0,     0,     0,    75,     0,   217,     0,     0,
    2058        0,     0,   338,   330,    30,     0,     0,   335,     0,     0,
    2059        0,     0,     0,     0,     0,     0,     0,   345,     0,     0,
    2060      338,     0,     0,   794,   795,     0,     0,    33,   337,   337,
    2061        0,     0,    36,    77,     0,   206,    39,     0,     0,   337,
    2062      338,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2063        0,   829,     0,     0,   832,   833,     0,   836,     0,   838,
    2064      839,     0,    54,    84,   840,   841,     0,     0,    42,     0,
    2065        0,     0,     0,     0,     0,     0,    77,   345,   143,   338,
    2066        0,     0,    84,     0,     0,     0,     0,     0,     0,     0,
    2067       84,     0,     0,     0,     0,   335,     0,     0,   337,     0,
    2068        0,     0,   330,     0,   337,   337,     0,     0,     0,     0,
    2069        0,     0,     0,   338,     0,     0,   345,     0,     0,     0,
     2135      23,    24,  -280,     0,     0,     0,     0,     0,    40,     0,
     2136      41,     0,    30,    75,   343,   343,   799,     0,    42,     0,
     2137      75,     0,     0,     0,     0,   343,     0,    52,   202,     0,
     2138       0,     0,   269,     0,   270,    33,     0,     0,     0,     0,
     2139       0,   328,   202,     0,     0,     0,  -280,     0,     0,     0,
     2140       0,     0,     0,     0,     0,   271,     0,     0,     0,     0,
     2141       0,   272,   483,    75,     0,   273,     0,   860,   274,   275,
     2142     276,   277,    38,    39,     0,   278,   279,     0,     0,     0,
     2143       0,     0,     0,   280,   343,     0,     0,     0,     0,     0,
     2144     343,   343,     0,     0,     0,   889,     0,   281,     0,   359,
     2145       0,     0,   328,   328,   328,   783,   283,   361,   285,   286,
     2146     287,   288,     0,   904,   905,     0,     0,   909,     0,     0,
     2147     202,     0,     0,    52,     0,     0,     0,     0,     0,     0,
     2148     202,     0,   215,     0,     0,     0,     0,     0,     0,     0,
     2149       0,     0,     0,     0,     0,   929,     0,   930,     0,   343,
     2150       0,     0,   202,    82,   933,   934,     0,     0,     0,   939,
     2151       0,     0,     0,     0,     0,     0,     0,   328,     0,     0,
     2152       0,   944,   343,     0,   343,   120,   948,     0,     0,     0,
    20702153       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2071        0,     0,     0,     0,   345,     0,    84,     0,     0,     0,
    2072       72,     0,     0,     0,     0,     0,   215,    72,   922,   923,
    2073        0,     0,     0,     0,   925,   338,     0,     0,     0,     0,
    2074        0,     0,   330,   337,     0,   338,     0,    75,     0,     0,
    2075      216,   338,     0,     0,     0,     0,   345,     0,     0,     0,
    2076        0,   338,     0,     0,     0,     0,   337,     0,   337,     0,
    2077       72,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2154     965,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2155     976,   343,     0,     0,     0,     0,     0,     0,     0,     0,
     2156       0,     0,   343,   343,   343,     0,     0,     0,     0,     0,
     2157       0,     0,     0,     0,   343,   343,     0,     0,     0,     0,
     2158       0,     0,   328,   328,     0,     0,     0,     0,    82,     0,
     2159       0,     0,     0,     0,     0,   202,     0,     0,   998,     0,
     2160       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2161       0,     0,   343,     0,     0,     0,     0,  1013,     0,     0,
     2162       0,   202,     0,    52,    52,     0,     0,     0,     0,     0,
     2163       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2164       0,   328,     0,     0,     0,    52,     0,   202,     0,     0,
     2165    1024,     0,  1025,  1026,  1027,     0,     0,  1030,   860,   120,
     2166       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2167      52,     0,  1072,     0,     0,     0,     0,   202,     0,     0,
     2168       0,     0,     0,     0,   573,     0,     0,  1079,     0,     0,
     2169       0,     0,     0,  1080,   202,     0,     0,     0,     0,     0,
     2170     343,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2171       0,     0,     0,     0,     0,     0,   328,   328,     0,     0,
     2172       0,     0,     0,     0,     0,    52,     0,     0,     0,     0,
     2173      52,  1099,     0,     0,     0,     0,     0,     0,     0,     0,
     2174       0,     0,     0,     0,     0,    82,     0,     0,     0,     0,
     2175       0,     0,    82,     0,     0,     0,   753,     0,     0,     0,
     2176       0,     0,     0,   202,     0,    52,     0,     0,     0,  1125,
     2177       0,     0,     0,     0,   860,     0,   149,  1133,     0,     0,
     2178     202,  1137,     0,     0,     0,     0,  1141,     0,     0,     0,
     2179    1146,  1147,  1148,     0,     0,    82,     0,     0,     0,     0,
     2180    1154,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2181    1167,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2182       0,   239,     0,     0,     0,     0,     0,     0,     0,  1183,
     2183    1184,   244,     0,     0,     0,     0,     0,     0,     0,     0,
     2184       0,     0,   328,     0,     0,     0,     0,     0,     0,     0,
     2185       0,     0,     0,     0,  1213,     0,     0,  1215,     0,     0,
     2186       0,     0,     0,     0,     0,     0,    52,     0,     0,     0,
     2187       0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
     2188       0,     0,  1229,     0,     0,   351,     0,    52,     0,     0,
     2189       0,     0,     0,     0,    52,     0,     0,     0,   365,     0,
     2190       0,  1236,     0,     0,     0,     0,     0,  1240,  1241,     0,
     2191       0,     0,     0,     0,     0,     0,  1249,     0,     0,     0,
     2192     397,     0,  1253,     0,     0,  1257,     0,  1258,     0,     0,
     2193    1260,     0,     0,     0,   411,     0,     0,    52,     0,     0,
     2194       0,   860,   416,     0,     0,  1269,     0,     0,     0,     0,
     2195       0,     0,   424,     0,     0,     0,     0,     0,     0,     0,
     2196       0,     0,  1278,   431,  1280,  1281,  1282,  1283,     0,     0,
     2197       0,     0,     0,     0,   202,   450,     0,     0,     0,     0,
     2198     460,  1291,     0,  1292,     0,     0,     0,   164,     0,     0,
     2199       0,     0,     0,   468,     0,     0,     0,     0,     0,   478,
     2200       0,   482,     0,     0,     0,     0,  1312,     0,     0,     0,
     2201       0,     0,     0,     0,     0,  1317,  1318,   510,     0,     0,
     2202       1,     2,   196,     4,     5,     6,     7,     8,     9,    10,
     2203      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2204      21,    22,    23,    24,  -279,     0,    25,    26,    27,    28,
     2205       0,     0,    29,     0,    30,     0,     0,     0,   570,     0,
     2206       0,     0,     0,     0,     0,     0,  1352,  1353,     0,     0,
     2207       0,     0,  1357,  1358,     0,     0,     0,    33,     0,     0,
     2208       0,     0,     0,  1368,    35,    36,     0,   618,  -279,     0,
     2209       0,   619,   620,     0,   621,     0,     0,     0,     0,     0,
     2210     631,   632,     0,   633,   634,     0,   635,     0,   636,     0,
     2211       0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
     2212      41,     0,     0,     0,     0,   649,     0,     0,   106,     0,
     2213       0,     0,     0,   651,  1399,     0,     0,     0,     0,     0,
     2214       0,   269,    30,   270,     0,     0,  1403,     0,     0,     0,
     2215    1406,  1407,  1408,     0,     0,     0,     0,   664,     0,     0,
     2216       0,     0,  1412,     0,   271,    33,     0,     0,   671,     0,
     2217     272,  1423,     0,     0,   273,     0,     0,   274,   275,   276,
     2218     277,    38,    39,     0,   278,   279,     0,  1434,     0,     0,
     2219       0,   707,   280,     0,     0,     0,     0,   710,     0,     0,
     2220       0,     0,   450,     0,     0,     0,   281,     0,   359,     0,
     2221       0,     0,     0,   202,     0,   283,   888,   285,   286,   287,
     2222     288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2223       0,     0,     0,     0,     0,     0,     0,     0,   744,  1475,
     2224    1476,     0,     0,     0,     0,     0,     0,   344,     0,     0,
     2225       0,     0,  1481,   760,     0,     0,     0,     0,     0,  1481,
     2226       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2227      18,    19,    20,    21,    22,    23,    24,  -279,   393,    25,
     2228      26,    27,     0,     0,     0,   393,  1511,    30,     0,   786,
     2229       0,     0,     0,     0,     0,     0,     0,     0,   796,     0,
     2230     797,     0,     0,     0,     0,     0,   802,     0,     0,     0,
     2231      33,     0,     0,     0,  1534,     0,     0,    35,    36,   821,
     2232       0,  -279,     0,     0,     0,     0,     0,     0,     0,     0,
     2233       0,     0,     0,     0,     0,     0,     0,     0,     0,  1547,
     2234       0,     0,     0,     0,  1549,     0,     0,     0,     0,     0,
     2235       0,  1023,     0,   565,   393,     0,     0,     0,   862,     0,
     2236       0,   106,     0,     0,     0,     0,     0,     0,     0,     1,
     2237       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     2238      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2239      22,    23,    24,     0,   897,    25,    26,    27,    28,     0,
     2240       0,    29,     0,    30,    31,     0,     0,     0,   393,     0,
     2241       0,     0,     0,     0,     0,     0,   393,   566,     0,   393,
     2242     569,     0,   344,    32,     0,     0,    33,   596,     0,     0,
     2243       0,    34,     0,    35,    36,    37,     0,     0,     0,     0,
     2244       0,     0,    38,    39,     0,     0,   614,     0,     0,   344,
     2245       0,   239,     0,     0,     0,     0,     0,     0,     0,     0,
     2246       0,   945,   946,     0,     0,     0,     0,    40,     0,    41,
     2247       0,     0,     0,   960,     0,   393,     0,    42,     0,   393,
     2248       0,     0,  1165,     0,     0,     8,     9,    10,    11,    12,
     2249     977,     0,   978,     0,     0,     0,   982,     0,     0,     0,
     2250       0,     0,     0,     0,     0,     0,     0,     0,     0,   344,
     2251       0,   269,    30,   270,     8,     9,    10,    11,    12,    13,
     2252      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2253      24,     0,   393,     0,   271,    33,     0,     0,     0,     0,
     2254     272,    30,     0,     0,   273,     0,     0,   274,   275,   276,
     2255     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2256       0,  1018,   280,   393,    33,     0,   344,     0,  1019,     0,
     2257       0,     0,     0,     0,     0,     0,   281,     0,   359,     0,
     2258       0,  1021,     0,  1022,     0,   283,  1166,   285,   286,   287,
     2259     288,     0,     0,     0,     0,     0,     0,     0,  1035,     0,
     2260       0,     0,     0,     0,  1039,   393,     0,     0,   344,     0,
     2261       0,     0,     0,     0,     0,     0,  1075,     0,     0,  1076,
     2262       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2263       0,     0,     0,     0,     0,     0,     0,   786,     0,     0,
     2264       0,     0,     0,  1086,     0,     0,     0,     0,     0,     0,
     2265       0,     0,   393,   393,     0,     0,     0,     0,     0,     0,
     2266       0,     0,     0,     0,     0,     0,   308,     0,   344,     0,
     2267     344,     0,     0,     0,     0,   326,     0,     0,   808,     0,
     2268       0,   596,     0,   596,   596,     0,     0,   362,     0,     0,
     2269     596,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2270     840,   344,     0,     0,     0,     0,   344,     0,     0,     0,
     2271       0,     0,     0,     0,     0,     0,   344,   344,     0,     0,
     2272       0,     0,     0,     0,     0,     0,     0,     0,  1145,     0,
     2273       0,   344,     0,     0,  1151,  1152,   393,   883,     0,     0,
     2274     393,   886,     0,     0,     0,     0,     0,     8,     9,    10,
     2275      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2276      21,    22,    23,    24,   393,     0,    25,    26,    27,   344,
     2277     393,     0,   393,     0,    30,     0,   393,     0,   464,     0,
     2278       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2279    1210,     0,     0,     0,     0,     0,  1214,    33,     0,     0,
     2280       0,     0,     0,     0,   197,   198,     0,     0,   344,   596,
     2281       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    20782282      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2079      330,   330,    25,    26,    27,   337,     0,     0,     0,     0,
    2080       30,   434,     0,     0,     0,   330,   337,   337,   337,     0,
    2081        0,     0,     0,     0,     0,     0,   345,     0,   337,   337,
    2082        0,     0,    77,    33,     0,     0,     0,     0,     0,     0,
    2083       37,    38,    75,     0,     8,     9,    10,    11,    12,     0,
    2084        0,     0,     0,     0,     0,     0,   338,     0,     0,     0,
    2085        0,     0,   122,   122,   122,     0,   337,     0,     0,     0,
    2086        0,    30,     0,     0,   345,   345,   435,     0,     0,     0,
    2087      687,     0,     0,     0,   108,     0,     0,     0,     0,   345,
    2088        0,     0,   330,     0,    33,     0,     0,     0,     0,    36,
    2089        0,     0,     0,    39,     0,     0,     0,   345,     0,     0,
    2090       40,    41,     0,     0,     0,     0,     0,     0,     0,   338,
    2091       84,     0,     0,     0,   162,     0,   166,   345,     0,   172,
    2092      173,   174,   122,   176,   122,   720,     0,     0,     0,     0,
    2093        0,     0,     0,     0,     0,   721,     0,     0,   225,     0,
    2094        0,     0,     0,     0,   337,     0,     0,     0,   265,   238,
    2095      239,     0,     0,    84,     0,     0,   345,     0,     0,     0,
    2096        0,     0,     0,     0,     0,     0,     0,   338,   338,     0,
    2097      338,   338,   338,     0,   330,     0,     0,     0,     0,     0,
    2098        0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
    2099      345,    77,     0,     0,     0,     0,    75,     0,     0,     0,
    2100        0,     0,   122,     0,     0,     0,     0,     0,     0,   122,
    2101        0,   122,   122,     0,     0,   327,   122,     0,   122,   122,
    2102        0,     0,     0,     0,   338,   338,     0,     0,     0,     0,
    2103        0,     0,   345,     0,     0,   338,     0,     0,     0,    75,
    2104        0,     0,   345,     0,     0,    54,     0,   217,   345,     0,
    2105        0,     0,     0,     0,     0,     0,     0,     0,   345,     0,
    2106        0,     0,     0,     0,     0,     0,     0,     0,  1014,   330,
    2107        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2108        0,     0,     0,     0,     0,   122,     0,     0,     0,     0,
    2109        0,     0,     0,     0,   338,     0,     0,   271,    30,   272,
    2110      338,   338,     0,     0,     0,     0,     0,     0,     0,     0,
    2111        0,     0,     0,     0,     0,     0,     0,     0,    54,    84,
    2112      273,    33,  1223,     0,     0,     0,   274,     0,     0,     0,
    2113      275,     0,   330,   276,   277,   278,   279,    40,    41,     0,
    2114      280,   281,   216,   345,     0,     0,     0,     0,   282,     0,
    2115        0,     0,     0,     0,     0,     0,     0,     0,     0,   338,
    2116        0,     0,   283,    77,   361,     0,     0,     0,     0,     0,
    2117        0,   285,   890,   287,   288,   289,   290,     0,     0,     0,
    2118        0,     0,   338,     0,   338,     0,     0,     0,     0,     0,
    2119      575,     0,   583,   330,   330,   330,     0,     0,     0,     0,
    2120        0,     0,     0,   608,   609,     0,   345,     0,     0,     0,
    2121        0,   338,     0,     0,    54,     0,     0,   619,     0,     0,
    2122        0,     0,   338,   338,   338,     0,     0,     0,     0,     0,
    2123        0,     0,     0,     0,   338,   338,     0,     0,     0,     0,
    2124        0,     0,     0,     0,     0,     0,     0,     0,    77,     0,
    2125        0,     0,     0,     0,     0,     0,  1315,     0,   330,     0,
    2126        0,     0,     0,     0,   345,   345,     0,   345,   345,   345,
    2127        0,     0,   338,     0,     0,     0,     0,   662,     0,     0,
    2128        0,     0,     0,     0,     0,     0,     0,     0,    84,     0,
    2129        0,     0,   197,     2,   198,     4,     5,     6,     7,     8,
     2283    -279,  1233,    25,    26,    27,     0,  1235,     0,     0,     0,
     2284      30,     0,   344,     0,  1239,     0,   393,   393,   259,     0,
     2285       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2286       0,     0,     0,    33,     0,     0,     0,     0,    34,     0,
     2287     805,    36,    37,  1262,  -279,     0,     0,   326,     0,    38,
     2288      39,     0,     0,     0,     0,     0,   362,     0,   393,     0,
     2289    1273,     0,     0,  1274,     0,  1275,     0,     0,     0,     0,
     2290     344,     0,     0,     0,  1023,     0,   565,     0,     0,   596,
     2291       0,   596,  1285,  1286,   608,     0,     0,     0,     0,     0,
     2292     596,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2293       0,     0,     0,  1299,     0,     0,   308,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2295       0,   808,     0,     0,     0,     0,     0,   308,     0,     0,
     2296       0,     0,     0,     0,     0,  1323,     0,     0,     0,     8,
     2297       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2298      19,    20,    21,    22,    23,    24,   709,     0,    25,    26,
     2299      27,     0,     0,     0,     0,   344,    30,   432,     0,     0,
     2300     393,   393,     0,     0,     0,     0,     0,     0,   393,     0,
     2301       0,     0,     0,   393,     0,     0,     0,     0,     0,    33,
     2302       0,   393,     0,     0,   741,     0,    35,    36,     0,     0,
     2303       0,     0,     0,     0,   596,   596,   754,     0,     0,     0,
     2304       0,     0,     0,   741,     0,     0,     0,     0,     0,     0,
     2305       0,     0,     0,     0,     0,     0,   763,   764,   344,     0,
     2306       0,     0,   433,     0,  1393,   393,  1394,     0,     0,     0,
     2307     106,     0,   808,     0,     0,     0,     0,  1401,   785,  1402,
     2308       0,     0,     0,     0,   393,  1140,     0,     0,   794,     0,
     2309    1143,     0,   344,     0,     0,   269,   754,   270,     0,  1411,
     2310       0,     0,     0,   393,  1157,     0,   596,   596,  1162,     0,
     2311       0,     0,     0,     0,     0,  1429,     0,     0,   271,   344,
     2312     344,   344,     0,     0,   272,     0,     0,  1435,   273,     0,
     2313    1239,   274,   275,   276,   277,    38,    39,     0,   278,   279,
     2314       0,     0,     0,     0,     0,     0,   280,   861,     0,     0,
     2315       0,     0,  1456,     0,   362,     0,     0,     0,     0,     0,
     2316     281,  1463,   359,     0,  1465,  1467,     0,     0,     0,   283,
     2317     361,   285,   286,   287,   288,   326,  1222,     0,     0,     0,
     2318       0,   393,     0,  1208,   344,   808,   393,  1232,     0,   490,
     2319     494,   490,   497,     0,     0,     0,     0,   326,   596,   500,
     2320     501,     0,  1494,     0,   490,   490,  1239,     0,     0,     0,
     2321       0,     0,     0,     0,     0,     0,   490,     0,  1506,     0,
     2322     808,     0,     0,   269,     0,   270,     0,     0,     0,     0,
     2323       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2324       0,     0,     0,   344,     0,   490,   271,     0,  1143,   344,
     2325     344,     0,   622,     0,   133,   134,   273,     0,     0,   274,
     2326     275,   276,   277,    38,    39,     0,   278,   279,     0,     0,
     2327     754,     0,   966,     0,   280,     0,     0,     0,   971,     0,
     2328       0,     0,   490,     0,     0,     0,   981,     0,   281,     0,
     2329     623,     0,   624,   360,     0,     0,     0,   283,   361,   285,
     2330     286,   287,   288,     0,     0,     0,     0,     0,   344,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332       0,     0,  1143,   326,     0,     0,   995,   996,   326,     0,
     2333       0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
     2334       0,     0,     0,     0,     0,     0,     0,   326,     8,     9,
     2335      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2336      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2337     471,   472,   473,     0,   269,    30,   270,     0,     0,     0,
     2338       0,     0,     0,   344,   344,     0,     0,     0,  1033,     0,
     2339       0,     0,   362,     0,     0,     0,     0,   271,    33,     0,
     2340       0,     0,     0,   272,     0,    35,    36,   273,     0,     0,
     2341     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2342    1143,     0,     0,   326,     0,   280,     0,     0,     0,     0,
     2343       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2344       0,   282,     0,     0,     0,     0,     0,     0,   283,   284,
     2345     285,   286,   287,   288,   490,   490,   490,   490,   490,   490,
     2346     490,   490,   490,   490,   490,   490,   490,   490,   490,   490,
     2347     490,   490,     0,   308,   269,     0,   270,     0,     0,     0,
     2348       0,     0,   808,     0,     0,     0,  1120,  1121,     0,     0,
     2349       0,     0,     0,   490,   362,     0,     0,   271,     0,     0,
     2350       0,   971,     0,   272,  1131,     0,   741,   273,     0,   344,
     2351     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2352       0,     0,     0,  1149,     0,   280,     0,     0,     0,     0,
     2353       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2354    1168,   359,     0,     0,     0,     0,   752,     0,   283,   361,
     2355     285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
     2356       0,     0,     0,   362,     0,  1187,     0,     0,     0,     0,
     2357       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2358    1209,     0,     0,     0,   269,     0,   270,     0,     0,   393,
     2359       0,     0,     0,     0,   490,     0,     0,     0,     0,  1218,
     2360       0,     0,     0,     0,     0,     0,     0,   271,     0,     0,
     2361     393,   393,   754,   272,     0,     0,   490,   273,     0,     0,
     2362     274,   275,   276,   277,    38,    39,     0,   278,   279,   490,
     2363       0,   393,     0,     0,     0,   280,     0,     0,     0,     0,
     2364       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2365     971,   359,     0,     0,   968,     0,     0,     0,   283,   361,
     2366     285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
     2367       0,   861,   490,     0,     0,     0,     0,     0,     0,     0,
     2368       0,     0,     0,     0,     0,     0,     0,     0,     0,  1276,
     2369       0,  1277,     0,     0,     0,     0,     0,     0,     0,     0,
     2370       0,     0,     0,     0,   490,   453,     2,   196,     4,     5,
     2371       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2372      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2373       0,    25,    26,    27,     0,     0,   754,     0,     0,    30,
     2374       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2375       0,   308,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,    33,     0,     0,     0,     0,     0,     0,    35,
     2377      36,     0,     0,     0,   971,     0,     0,     0,     1,     2,
     2378     196,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2379      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2380      23,    24,     0,     0,    25,    26,    27,    28,    -3,   490,
     2381      29,   269,    30,  1042,  1043,     0,  1044,     0,     0,  1045,
     2382    1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,  1053,     0,
     2383       0,  1054,    32,     0,   271,    33,     0,     0,     0,     0,
     2384     622,     0,    35,    36,   273,     0,     0,   274,   275,   276,
     2385     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2386       0,     0,   280,     0,     0,     0,     0,     0,     0,     0,
     2387       0,     0,     0,     0,     0,     0,   281,     0,  1055,     0,
     2388       0,   163,     0,     0,     0,   283,   284,   285,   286,   287,
     2389     288,     0,     0,     0,     0,     0,     0,     0,     0,  -126,
     2390       0,     0,     0,     0,     0,   490,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,   490,     0,     0,     0,     0,
     2392       0,     0,     0,     0,     0,     0,  1442,     0,     0,     0,
     2393       0,     0,     1,     2,   196,     4,     5,     6,     7,     8,
    21302394       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    21312395      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2132       27,   345,   345,   330,   330,     0,    30,     0,     0,     0,
    2133        0,     0,   345,     0,     0,     0,     0,     0,     0,     0,
    2134        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2135        0,    34,     0,    35,     0,     0,   199,   200,     0,     0,
    2136      338,     0,     0,     0,    54,    54,     0,     0,     0,     0,
    2137        0,     0,     0,     0,     0,     0,   755,     0,     0,     0,
    2138        0,     0,   330,     0,     0,     0,    54,   122,   122,     0,
    2139        0,   345,   201,     0,     0,     0,     0,   345,   345,     0,
    2140      261,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    2141        0,    54,    77,     0,     0,   122,     0,     0,   122,   122,
    2142        0,   122,     0,   122,   122,     0,     0,     0,   122,   122,
    2143        0,     0,     0,     0,     0,     0,   801,     0,     0,   217,
     2396      27,    28,     0,   490,    29,   269,    30,   270,     0,     0,
    21442397       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2145        0,     0,     0,     0,     0,    77,   345,   330,   330,     0,
    2146       84,     0,     0,     0,     0,     0,    54,     0,     0,     0,
    2147        0,    54,     0,     0,     0,     0,     0,     0,     0,   345,
    2148        0,   345,     0,     0,     0,     0,     0,   862,     0,     8,
    2149        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2150       19,    20,    21,    22,    23,    24,    54,   122,   345,     0,
    2151        0,     0,   122,   122,     0,   891,    30,     0,   122,   345,
    2152      345,   345,     0,     0,     0,     0,     0,     0,     0,     0,
    2153        0,   345,   345,   906,   907,     0,     0,   911,     0,    33,
    2154        0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
     2398       0,     0,     0,     0,     0,     0,     0,     0,   271,    33,
     2399       0,     0,     0,     0,   272,     0,    35,    36,   273,     0,
     2400    1498,   274,   275,   276,   277,    38,    39,     0,   278,   279,
     2401       0,     0,     0,     0,     0,     0,   280,     0,     0,     0,
    21552402       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2156        0,     0,     0,     0,     0,   931,     0,   932,     0,   345,
    2157        0,     0,     0,     0,   935,   936,     0,     0,     0,   941,
    2158        0,     0,     0,   330,     0,     0,     0,     0,     0,     0,
    2159        0,   946,     0,     0,     0,     0,   950,     0,     0,     0,
    2160        0,     0,     0,     0,     0,     0,     0,    54,     0,     0,
    2161      967,     0,     0,     0,     0,   271,     0,   272,     0,   204,
    2162      978,     0,     0,     0,     0,     0,     0,     0,    54,   223,
    2163        0,   227,     0,   229,     0,    54,     0,     0,   273,     0,
    2164      236,     0,     0,     0,   274,     0,     0,     0,   275,     0,
    2165        0,   276,   277,   278,   279,    40,    41,   345,   280,   281,
    2166        0,     0,     0,     0,     0,     0,   282,     0,  1000,   204,
    2167        0,   227,   229,   236,     0,     0,     0,     0,    54,     0,
    2168      283,     0,   361,     0,     0,     0,     0,  1015,     0,   285,
    2169      363,   287,   288,   289,   290,     0,     0,   204,     0,     0,
    2170        0,     0,    84,  1210,     0,     0,     0,     0,     0,    84,
    2171        0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
    2172     1026,     0,  1027,  1028,  1029,     0,     0,  1032,   862,     0,
    2173        0,   151,     0,     0,     0,     0,     0,     0,     0,     0,
    2174        0,   271,  1074,   272,     0,     0,     0,     0,     0,     0,
    2175        0,     0,    84,     0,   575,     0,     0,  1081,     0,     0,
    2176        0,     0,     0,  1082,   273,     0,     0,     0,     0,   204,
    2177      274,   227,   229,   236,   275,     0,   241,   276,   277,   278,
    2178      279,    40,    41,     0,   280,   281,   246,     0,     0,     0,
    2179        0,     0,   282,     0,     0,     0,     0,     0,     0,     0,
    2180        0,  1101,     0,     0,     0,   204,   283,     0,   361,   204,
    2181        0,   362,     0,     0,     0,   285,   363,   287,   288,   289,
    2182      290,     0,     0,     0,     0,   485,   755,     0,     0,     0,
    2183        0,     0,     0,     0,     0,     0,     0,     0,     0,  1127,
    2184      353,     0,     0,     0,   862,     0,     0,  1135,     0,     0,
    2185        0,  1139,     0,   367,     0,     0,  1143,     0,     0,     0,
    2186     1148,  1149,  1150,     0,     0,     0,     0,     0,     0,     0,
    2187     1156,     0,     0,   204,     0,   399,     0,     0,     0,     0,
    2188     1169,     0,     0,     0,     0,     0,     0,     0,   204,   413,
    2189        0,     0,     0,   227,   229,     0,     0,   418,     0,  1185,
    2190     1186,   236,     0,     0,     0,     0,   122,   426,     0,     0,
    2191        0,     0,     0,     0,     0,     0,     0,     0,   433,     0,
    2192        0,     0,     0,     0,  1215,     0,     0,  1217,     0,     0,
    2193      452,     0,     0,     0,     0,   462,     0,     0,     0,     0,
    2194        0,     0,     0,   204,     0,     0,     0,     0,   470,     0,
    2195        0,     0,  1231,     0,   480,     0,   484,     0,     0,     0,
    2196        0,   204,     0,     0,     0,     0,     0,   204,     0,     0,
    2197        0,  1238,   512,     0,     0,     0,     0,  1242,  1243,     0,
    2198        0,     0,     0,     0,   204,     0,  1251,   204,   204,     0,
    2199        0,     0,  1255,     0,     0,  1259,     0,  1260,     0,     0,
    2200     1262,     0,     0,   204,     0,     0,     0,     0,     0,     0,
    2201        0,   862,     0,   572,     0,  1271,     0,   204,     0,     0,
    2202        0,     0,     0,     0,   204,     0,     0,     0,     0,     0,
    2203        0,   271,  1280,   272,  1282,  1283,  1284,  1285,     0,     0,
    2204      122,     0,   620,     0,     0,     0,   621,   622,     0,   623,
    2205        0,  1293,     0,  1294,   273,   633,   634,   166,   635,   636,
    2206      274,   637,     0,   638,   275,     0,     0,   276,   277,   278,
    2207      279,    40,    41,     0,   280,   281,  1314,     0,     0,     0,
    2208      651,     0,   282,     0,     0,  1319,  1320,     0,   653,     0,
    2209        0,     0,     0,     0,     0,     0,   283,     0,   361,     0,
    2210        0,     0,     0,     0,   785,   285,   363,   287,   288,   289,
    2211      290,     0,   666,     0,     0,     0,     0,     0,     0,     0,
    2212        0,     0,     0,   673,     0,     0,     0,     0,     0,     0,
    2213        0,     0,     0,   204,     0,     0,  1354,  1355,     0,     0,
    2214        0,     0,  1359,  1360,     0,     0,   709,     0,     0,     0,
    2215        0,     0,   712,  1370,     0,     0,     0,   452,     0,     0,
    2216        0,     0,     0,   204,     0,     0,     0,     0,   204,   197,
    2217        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
    2218       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2219       22,    23,    24,   746,     0,    25,    26,    27,     0,     0,
    2220        0,     0,     0,    30,  1401,     0,     0,     0,   762,     0,
    2221        0,     0,     0,     0,     0,     0,  1405,     0,     0,     0,
    2222     1408,  1409,  1410,     0,     0,     0,    33,     0,    34,     0,
    2223       35,    36,  1414,   199,   200,    39,     0,     0,     0,     0,
    2224        0,  1425,    40,    41,   788,     0,     0,     0,     0,     0,
    2225        0,     0,     0,   798,     0,   799,   204,  1436,     0,     0,
    2226        0,   804,     0,   271,     0,   272,     0,    42,     0,   201,
    2227      204,     0,     0,     0,   823,     0,     0,   202,     0,     0,
    2228        0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
    2229      485,     0,   624,     0,   135,   136,   275,     0,     0,   276,
    2230      277,   278,   279,    40,    41,     0,   280,   281,     0,  1477,
    2231     1478,     0,     0,   864,   282,     0,     0,     0,     0,     0,
    2232        0,     0,  1483,     0,   271,     0,   272,     0,   283,  1483,
    2233      625,     0,   626,   362,     0,     0,     0,   285,   363,   287,
    2234      288,   289,   290,     0,     0,     0,     0,   273,   204,   899,
    2235        0,     0,     0,   274,     0,     0,  1513,   275,   204,     0,
    2236      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2237        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2238      204,     0,     0,     0,  1536,     0,     0,     0,   346,   283,
    2239        0,   361,     0,     0,     0,     0,   754,     0,   285,   363,
    2240      287,   288,   289,   290,     0,     0,   241,     0,     0,  1549,
    2241        0,     0,     0,     0,  1551,     0,   947,   948,     0,   395,
    2242        0,     0,     0,     0,     0,     0,   395,     0,   962,     0,
     2403     281,     0,  1055,     0,     0,     0,     0,   490,     0,   283,
     2404     284,   285,   286,   287,   288,     0,   308,     0,     0,     0,
     2405       0,     0,     0,  -126,     0,     0,     1,     2,   196,     4,
     2406       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2407      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2408       0,     0,    25,    26,    27,    28,     0,   490,    29,   269,
     2409      30,   270,     0,     0,     0,     0,     0,     0,     0,     0,
     2410       0,     0,   490,   490,     0,     0,     0,     0,     0,     0,
     2411       0,     0,   271,    33,     0,     0,     0,     0,   272,     0,
     2412      35,    36,   273,     0,     0,   274,   275,   276,   277,    38,
     2413      39,     0,   278,   279,     0,     0,     0,     0,     0,     0,
     2414     280,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2415       0,     0,     0,     0,   281,     0,    41,     0,     0,     0,
     2416       0,     0,     0,   283,   284,   285,   286,   287,   288,     2,
     2417     196,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2418      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2419      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2420       0,   269,    30,   270,     0,     0,     0,     0,     0,     0,
    22432421       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2244        0,     0,     0,     0,     0,   979,     0,   980,     0,     0,
    2245        0,   984,     0,     0,     0,     8,     9,    10,    11,    12,
    2246       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2247       23,    24,     0,   204,    25,    26,    27,     0,     0,     0,
    2248        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2249        0,     0,     0,     0,     0,   395,     0,     0,     0,   204,
    2250        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2251       36,     0,    37,    38,    39,     0,  1020,     0,     0,     0,
    2252        0,    40,    41,  1021,     0,   204,     0,     0,     0,     0,
    2253        0,     0,     0,     0,     0,     0,  1023,     0,  1024,     0,
    2254        0,     0,     0,     0,     0,     0,    42,     0,   152,   395,
    2255        0,     0,     0,  1037,     0,   204,    44,   395,   568,  1041,
    2256      395,   571,     0,   346,     0,     0,     0,     0,   598,     0,
    2257        0,  1077,   204,     0,  1078,     0,     0,     0,     0,     0,
    2258        0,     0,     0,     0,     0,     0,   271,   616,   272,     0,
    2259      346,     0,   788,     0,     0,     0,     0,     0,  1088,     0,
    2260        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
    2261        0,     0,     0,     0,     0,   274,   395,     0,     0,   275,
    2262      395,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2263      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
    2264        0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
    2265      346,   283,     0,   361,     0,     0,   970,     0,   204,     0,
    2266      285,   363,   287,   288,   289,   290,     0,     0,     0,     0,
    2267        0,     0,   310,   395,     0,     0,     0,     0,     0,     0,
    2268        0,   328,     0,  1147,     0,     0,     0,     0,     0,  1153,
    2269     1154,     0,     0,   364,     0,     0,     0,     0,     0,   492,
    2270      496,   492,   499,     0,   395,     0,     0,   346,     0,   502,
    2271      503,     0,     0,     0,   492,   492,     0,     0,     0,     0,
    2272        0,     0,     0,     0,     0,     0,   492,     0,     0,     0,
     2422       0,     0,     0,     0,   271,    33,     0,     0,     0,     0,
     2423     272,     0,    35,    36,   273,     0,     0,   274,   275,   276,
     2424     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2425       0,     0,   280,     0,     0,     0,     0,     0,     0,     0,
     2426       0,     0,     0,     0,     0,     0,   281,     0,   323,    -3,
     2427       0,     0,     0,   752,     0,   283,   324,   285,   286,   287,
     2428     288,     0,     2,   196,     4,     5,     6,     7,     8,     9,
     2429      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2430      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2431       0,     0,     0,     0,   269,    30,   270,     0,     0,     0,
    22732432       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,  1212,   395,     0,     0,   346,
    2275      204,  1216,     0,     0,     0,   492,     0,     0,     0,     0,
    2276        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2277       18,    19,    20,    21,    22,    23,    24,  -279,     0,    25,
    2278       26,    27,     0,     0,   466,     0,  1235,    30,     0,     0,
    2279        0,  1237,   492,   395,   395,     0,     0,     0,     0,  1241,
    2280        0,     0,     0,     0,     0,     0,     0,     0,     0,   346,
    2281       33,   346,     0,     0,     0,     0,     0,    37,    38,   810,
    2282        0,  -279,   598,     0,   598,   598,     0,     0,  1264,     0,
    2283        0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
    2284        0,   842,   346,     0,     0,  1275,     0,   346,  1276,     0,
    2285     1277,  1025,   204,   567,     0,     0,     0,   346,   346,     0,
    2286        0,   108,     0,     0,     0,     0,     0,  1287,  1288,     0,
    2287        0,     0,   346,     0,     0,     0,     0,   395,   885,     0,
    2288        0,   395,   888,   328,     0,     0,     0,     0,  1301,     0,
    2289        0,     0,   364,     0,     0,     0,     0,     0,     0,     0,
    2290        0,     0,     0,     0,     0,   395,     0,     0,     0,     0,
    2291      346,   395,     0,   395,     0,     0,     0,   395,     0,     0,
    2292     1325,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2433       0,     0,     0,     0,     0,     0,   490,   271,    33,     0,
     2434       0,     0,     0,   272,     0,    35,    36,   273,     0,     0,
     2435     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2436       0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
     2437       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2438       0,   908,    -3,     0,     0,     0,   752,     0,   283,   324,
     2439     285,   286,   287,   288,     0,     0,     0,     0,     0,   490,
     2440     490,     2,   196,     4,     5,     6,     7,     8,     9,    10,
     2441      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2442      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2443       0,     0,     0,   269,    30,   270,     0,     0,     0,     0,
    22932444       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2294        0,     0,   310,     0,     0,     0,     0,     0,     0,   346,
    2295      598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2296        0,     0,     0,   310,   492,   492,   492,   492,   492,   492,
    2297      492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
    2298      492,   492,     0,   346,     0,     0,     0,   395,   395,     0,
    2299        0,     0,   711,     0,     0,     0,     0,     0,     0,     0,
    2300        0,     0,     0,   492,     0,     0,     0,  1167,     0,     0,
    2301        8,     9,    10,    11,    12,     0,     0,     0,     0,  1395,
    2302        0,  1396,     0,     0,     0,     0,     0,     0,     0,   395,
    2303      743,     0,  1403,     0,  1404,     0,   271,    30,   272,     0,
    2304        0,   346,   756,     0,     0,     0,     0,     0,     0,   743,
    2305      598,     0,   598,     0,  1413,     0,     0,     0,     0,   273,
    2306       33,   598,   765,   766,     0,   274,     0,     0,     0,   275,
    2307     1431,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2308      281,     0,  1437,     0,   787,  1241,     0,   282,     0,     0,
    2309        0,   204,   810,     0,   796,     0,     0,     0,     0,     0,
    2310        0,   283,   756,   361,   492,     0,     0,  1458,     0,     0,
    2311      285,  1168,   287,   288,   289,   290,  1465,     0,     0,  1467,
    2312     1469,     0,     0,     0,     0,     0,   492,     0,     0,     0,
    2313        0,     0,     0,     0,     0,     0,   346,     0,     0,   492,
    2314        0,   395,   395,     0,     0,     0,     0,     0,     0,   395,
    2315        0,     0,     0,   863,   395,     0,     0,  1496,     0,     0,
    2316      364,  1241,   395,     0,     0,     0,     0,     0,     0,     0,
    2317        0,     0,     0,  1508,     0,   598,   598,     0,     0,     0,
    2318        0,   328,   492,     0,     0,     0,     0,     0,     0,     0,
    2319        0,     0,     0,     0,     0,     0,     0,     0,     0,   346,
    2320        0,     0,     0,   328,     0,     0,   395,     0,     0,     0,
    2321        0,     0,     0,   810,   492,     0,     0,     0,     0,     0,
    2322        0,     0,     0,     0,     0,   395,  1142,     0,     0,     0,
    2323        0,  1145,     0,   346,     0,     0,     0,     0,     0,     0,
    2324        0,     0,     0,     0,   395,  1159,     0,   598,   598,  1164,
    2325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2326      346,   346,   346,     0,     0,     0,     0,     0,     0,     0,
    2327        0,     0,     0,     0,     0,     0,   756,     0,   968,     0,
    2328        0,     0,     0,     0,   973,     0,     0,     0,     0,     0,
    2329        0,     0,   983,     0,     8,     9,    10,    11,    12,    13,
    2330       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2331       24,  -279,     0,    25,    26,    27,     0,  1224,     0,   492,
    2332        0,    30,   395,     0,     0,   346,   810,   395,  1234,   328,
    2333        0,     0,   997,   998,   328,   271,     0,   272,     0,   598,
    2334        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2335        0,    37,    38,   328,     0,  -279,     0,     0,   273,     0,
    2336        0,   810,     0,     0,   274,     0,     0,     0,   275,     0,
    2337        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2338        0,     0,     0,     0,   346,  1025,   282,   567,     0,  1145,
    2339      346,   346,     0,     0,  1035,   610,     0,     0,   364,     0,
    2340      283,     0,   361,     0,     0,     0,     0,     0,     0,   285,
    2341      363,   287,   288,   289,   290,   492,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,   492,     0,     0,     0,   328,
    2343        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2344       17,    18,    19,    20,    21,    22,    23,    24,     0,   346,
    2345       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2346        0,     0,     0,  1145,     0,     0,     0,     0,     0,     0,
    2347        0,     0,     0,   492,   346,     0,     0,     0,     0,   310,
    2348        0,    33,     0,     0,     0,     0,     0,     0,   199,   200,
    2349        0,     0,  1122,  1123,     0,     0,     0,     0,     0,     0,
    2350      364,     0,     0,     0,     0,     0,     0,   973,     0,     0,
    2351     1133,     0,   743,     0,     0,   271,     0,   272,     0,     0,
    2352        0,     0,     0,     0,   346,   346,     0,     0,     0,  1151,
    2353        0,     0,   261,     0,     0,     0,     0,     0,   273,     0,
    2354        0,     0,     0,     0,   274,     0,  1170,   492,   275,     0,
    2355        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2356        0,  1145,     0,     0,     0,     0,   282,     0,     0,   364,
    2357        0,  1189,     0,     0,     0,     0,     0,     0,     0,     0,
    2358      283,     0,   361,     0,     0,     0,  1211,     0,     0,   285,
    2359      710,   287,   288,   289,   290,     0,     0,   492,     0,     0,
    2360        0,     0,     0,     0,     0,  1220,     0,     0,     0,     0,
    2361        0,     0,   492,   492,     0,     0,     0,     0,   756,     0,
    2362        0,     0,  -501,   810,     0,     1,     2,     3,     4,     5,
    2363        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2364       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2365      346,    25,    26,    27,    28,     0,   973,    29,     0,    30,
    2366       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2367        0,   271,     0,   272,     0,     0,     0,   863,     0,    32,
    2368        0,     0,    33,     0,    34,     0,    35,    36,     0,    37,
    2369       38,    39,     0,     0,   273,  1278,     0,  1279,    40,    41,
    2370      624,     0,     0,     0,   275,     0,     0,   276,   277,   278,
    2371      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2372        0,     0,   282,    42,     0,    43,     0,     0,     0,     0,
    2373      395,     0,     0,    44,     0,     0,   283,     0,   759,     0,
    2374        0,     0,   756,     0,     0,   285,   363,   287,   288,   289,
    2375      290,   395,   395,     0,     0,     0,     0,   310,     0,     0,
    2376        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2377        0,     0,   395,     0,     0,     0,     0,     0,     0,     0,
    2378      973,     0,     0,     1,     2,   198,     4,     5,     6,     7,
    2379        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2380       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2381       26,    27,    28,     0,     0,    29,   271,    30,  1044,  1045,
    2382        0,  1046,     0,     0,  1047,  1048,  1049,  1050,  1051,  1052,
    2383     1053,  1054,     0,  1055,     0,     0,  1056,    32,     0,   273,
    2384       33,     0,    34,     0,    35,   624,   492,    37,    38,   275,
    2385        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2386      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
    2387        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2388        0,   283,     0,  1057,     0,     0,   165,     0,     0,     0,
    2389      285,   286,   287,   288,   289,   290,     0,     0,     0,     0,
    2390        0,     0,     0,     0,  -126,     0,     0,     0,     0,   492,
    2391      492,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2392        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,     0,  1444,     0,     0,     0,     0,     0,     1,     2,
    2394      198,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2395       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2396       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2397       29,   271,    30,   272,     8,     9,    10,    11,    12,    13,
    2398       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2399       24,  -279,     0,     0,   273,    33,     0,    34,     0,    35,
    2400      274,    30,    37,    38,   275,     0,  1500,   276,   277,   278,
    2401      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2402        0,     0,   282,     0,    33,     0,     0,     0,     0,     0,
    2403        0,     0,     0,     0,     0,  -279,   283,     0,  1057,     0,
    2404        0,     0,     0,     0,     0,   285,   286,   287,   288,   289,
    2405      290,     0,   310,     0,     0,     0,     0,     0,     0,  -126,
    2406        1,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2407       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2408       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2409        0,     0,    29,   271,    30,   272,     8,     9,    10,    11,
    2410       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2411       22,    23,    24,  -280,     0,     0,   273,    33,     0,    34,
    2412        0,    35,   274,    30,    37,    38,   275,     0,     0,   276,
    2413      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2414        0,     0,     0,     0,   282,     0,    33,     0,     0,     0,
    2415        0,     0,     0,     0,     0,     0,     0,  -280,   283,     0,
    2416       43,     0,     0,     0,     0,     0,     0,   285,   286,   287,
    2417      288,   289,   290,     2,   198,     4,     5,     6,     7,     8,
     2445       0,     0,     0,     0,     0,     0,   271,    33,     0,     0,
     2446       0,     0,   272,     0,    35,    36,   273,     0,     0,   274,
     2447     275,   276,   277,    38,    39,     0,   278,   279,     0,     0,
     2448       0,     0,     0,     0,   280,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,     0,     0,     0,   281,     0,
     2450     908,    -3,     0,     0,     0,   752,     0,   283,   572,   285,
     2451     286,   287,   288,     2,   196,     4,     5,     6,     7,     8,
    24182452       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24192453      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2420       27,     0,     0,     0,     0,   271,    30,   272,     0,     0,
     2454      27,     0,     0,     0,     0,   269,    30,   270,     0,     0,
    24212455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2422        0,     0,     0,     0,     0,     0,     0,     0,   273,    33,
    2423        0,    34,     0,    35,   274,     0,    37,    38,   275,     0,
    2424        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2425        0,     0,     0,     0,     0,     0,   282,     0,     0,     0,
     2456       0,     0,     0,     0,     0,     0,     0,     0,   271,    33,
     2457       0,     0,     0,     0,   272,     0,    35,    36,   273,     0,
     2458       0,   274,   275,   276,   277,    38,    39,     0,   278,   279,
     2459       0,     0,     0,     0,     0,     0,   280,     0,     0,     0,
    24262460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2427      283,     0,   325,    -3,     0,     0,     0,   754,     0,   285,
    2428      326,   287,   288,   289,   290,     2,   198,     4,     5,     6,
     2461     281,     0,   323,    -3,     0,     0,     0,     0,     0,   283,
     2462     324,   285,   286,   287,   288,     2,   196,     4,     5,     6,
    24292463       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24302464      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2431       25,    26,    27,     0,     0,     0,     0,   271,    30,   272,
     2465      25,    26,    27,     0,     0,     0,     0,   269,    30,   270,
    24322466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24332467       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2434      273,    33,     0,    34,     0,    35,   274,     0,    37,    38,
    2435      275,     0,     0,   276,   277,   278,   279,    40,    41,     0,
    2436      280,   281,     0,     0,     0,     0,     0,     0,   282,     0,
     2468     271,    33,     0,     0,     0,     0,   272,     0,    35,    36,
     2469     273,     0,     0,   274,   275,   276,   277,    38,    39,     0,
     2470     278,   279,     0,     0,     0,     0,     0,     0,   280,     0,
    24372471       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,     0,   283,     0,   910,    -3,     0,     0,     0,   754,
    2439        0,   285,   326,   287,   288,   289,   290,     2,   198,     4,
     2472       0,     0,   281,     0,   908,    -3,     0,     0,     0,     0,
     2473       0,   283,   324,   285,   286,   287,   288,     2,   196,     4,
    24402474       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24412475      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2442        0,     0,    25,    26,    27,     0,     0,     0,     0,   271,
    2443       30,   272,     0,     0,     0,     0,     0,     0,     0,     0,
     2476       0,     0,    25,    26,    27,     0,     0,     0,     0,   269,
     2477      30,   270,     0,     0,     0,     0,     0,     0,     0,     0,
    24442478       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2445        0,     0,   273,    33,     0,    34,     0,    35,   274,     0,
    2446       37,    38,   275,     0,     0,   276,   277,   278,   279,    40,
    2447       41,     0,   280,   281,     0,     0,     0,     0,     0,     0,
    2448      282,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2449        0,     0,     0,     0,   283,     0,   910,    -3,     0,     0,
    2450        0,   754,     0,   285,   574,   287,   288,   289,   290,     2,
    2451      198,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2479       0,     0,   271,    33,     0,     0,     0,     0,   272,     0,
     2480     197,   198,   273,     0,     0,   274,   275,   276,   277,    38,
     2481      39,     0,   278,   279,     0,     0,     0,     0,     0,     0,
     2482     280,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2483       0,     0,     0,     0,   281,     0,   993,     0,     0,     0,
     2484       0,     0,     0,   283,   994,   285,   286,   287,   288,     2,
     2485     196,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    24522486      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    24532487      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2454        0,   271,    30,   272,     0,     0,     0,     0,     0,     0,
     2488       0,   269,    30,   270,     0,     0,     0,     0,     0,     0,
    24552489       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,   273,    33,     0,    34,     0,    35,
    2457      274,     0,    37,    38,   275,     0,     0,   276,   277,   278,
    2458      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2459        0,     0,   282,     0,     0,     0,     0,     0,     0,     0,
    2460        0,     0,     0,     0,     0,     0,   283,     0,   325,    -3,
    2461        0,     0,     0,     0,     0,   285,   326,   287,   288,   289,
    2462      290,     2,   198,     4,     5,     6,     7,     8,     9,    10,
     2490       0,     0,     0,     0,   271,    33,     0,     0,     0,     0,
     2491     272,     0,   197,   198,   273,     0,     0,   274,   275,   276,
     2492     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2493       0,     0,   280,     0,     0,     0,     0,     0,     0,     0,
     2494       0,     0,     0,     0,     0,     0,   281,     0,   359,     0,
     2495       0,     0,     0,     0,     0,   283,   361,   285,   286,   287,
     2496     288,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2497      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2498      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2499      28,     0,     0,    29,     0,    30,    31,     0,     0,     0,
     2500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2501       0,     0,     0,     0,     0,    32,     0,     0,    33,     0,
     2502       0,     0,     0,    34,     0,    35,    36,    37,     0,     0,
     2503       0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
     2504       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2505       0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
     2506       0,    41,     0,     0,     0,  -503,     0,     0,     0,    42,
     2507     195,     2,   196,     4,     5,     6,     7,     8,     9,    10,
    24632508      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    24642509      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2465        0,     0,     0,   271,    30,   272,     0,     0,     0,     0,
     2510       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    24662511       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2467        0,     0,     0,     0,     0,     0,   273,    33,     0,    34,
    2468        0,    35,   274,     0,    37,    38,   275,     0,     0,   276,
    2469      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2470        0,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2471        0,     0,     0,     0,     0,     0,     0,     0,   283,     0,
    2472      910,    -3,     0,     0,     0,     0,     0,   285,   326,   287,
    2473      288,   289,   290,     2,   198,     4,     5,     6,     7,     8,
     2512       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2513       0,     0,    34,     0,   197,   198,    37,     0,     0,     0,
     2514       0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
     2515       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2516       0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
     2517     199,     0,     0,     0,     0,     0,     0,     0,   200,     1,
     2518       2,   196,     4,     5,     6,     7,     8,     9,    10,    11,
     2519      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2520      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2521       0,    29,     0,    30,     0,     0,     0,     0,     0,     0,
     2522       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2523       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2524       0,     0,     0,    35,    36,     0,   195,     2,   196,     4,
     2525       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2526      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2527       0,     0,    25,    26,    27,     0,     0,     0,     0,    41,
     2528      30,     0,     0,     0,     0,     0,     0,   106,     0,     0,
     2529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2530       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2531     197,   198,     2,   196,     4,     5,     6,     7,     8,     9,
     2532      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2533      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2534       0,     0,     0,     0,     0,    30,   199,     0,     0,     0,
     2535       0,     0,     0,     0,   259,     0,     0,     0,     0,     0,
     2536       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2537       0,     0,     0,    34,     0,   197,   198,    37,     0,     0,
     2538       0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
     2539       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2540       0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
     2541       0,   199,     0,     0,     0,     0,     0,     0,     0,   200,
     2542       2,   196,     4,     5,     6,     7,     8,     9,    10,    11,
     2543      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2544      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2545       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
     2546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2547       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2548       0,     0,     0,    35,    36,     2,   196,     4,     5,     6,
     2549       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2550      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2551      25,    26,    27,     0,     0,     0,     0,     0,    30,   659,
     2552      -3,     0,     0,     0,     0,     0,     0,   608,     0,     0,
     2553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2554       0,    33,     0,     0,     0,     0,     0,     0,    35,    36,
     2555       0,     0,     2,   196,     4,     5,     6,     7,     8,     9,
     2556      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2557      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2558       0,     0,     0,  -386,   659,    30,     0,     0,     0,     0,
     2559       0,     0,   608,     0,     0,     0,     0,     0,     0,     0,
     2560       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2561       0,     0,     0,     0,     0,    35,    36,     0,     0,     0,
     2562       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2563       0,     0,     0,     0,     0,     0,     0,  1365,     0,     0,
     2564       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2565       0,   659,     0,     0,     0,     0,     0,     0,     0,   608,
     2566       2,   196,     4,     5,     6,     7,     8,     9,    10,    11,
     2567      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2568      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2569       0,     0,     0,    30,     0,     0,     0,     0,     8,     9,
     2570      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2571      20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
     2572       0,     0,     0,    35,    36,    30,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,  1367,     0,     0,    33,     0,
     2575       0,     0,     0,    34,     0,   805,    36,    37,     0,   659,
     2576       0,     0,     0,     0,    38,    39,     0,   608,     2,   196,
     2577       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2578      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2579      24,   565,     0,    25,    26,    27,     0,     0,     0,   106,
     2580       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     2581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2583       0,   197,   198,     2,   196,     4,     5,     6,     7,     8,
    24742584       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24752585      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2476       27,     0,     0,     0,     0,   271,    30,   272,     0,     0,
    2477        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2478        0,     0,     0,     0,     0,     0,     0,     0,   273,    33,
    2479        0,    34,     0,    35,   274,     0,   199,   200,   275,     0,
    2480        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2481        0,     0,     0,     0,     0,     0,   282,     0,     0,     0,
    2482        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2483      283,     0,   995,     0,     0,     0,     0,     0,     0,   285,
    2484      996,   287,   288,   289,   290,     2,   198,     4,     5,     6,
    2485        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2486       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2487       25,    26,    27,     0,     0,     0,     0,   271,    30,   272,
    2488        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2489        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2490      273,    33,     0,    34,     0,    35,   274,     0,   199,   200,
    2491      275,     0,     0,   276,   277,   278,   279,    40,    41,     0,
    2492      280,   281,     0,     0,     0,     0,     0,     0,   282,     0,
    2493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2494        0,     0,   283,     0,   361,     0,     0,     0,     0,     0,
    2495        0,   285,   363,   287,   288,   289,   290,     1,     2,     3,
    2496        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2497       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2498       24,     0,     0,    25,    26,    27,    28,     0,     0,    29,
    2499        0,    30,    31,     0,     0,     0,     0,     0,     0,     0,
    2500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501        0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
    2502        0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
    2503       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2505        0,     0,     0,     0,     0,    42,     0,    43,     0,     0,
    2506        0,  -505,     0,     0,     0,    44,     1,     2,     3,     4,
    2507        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2508       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2509        0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
    2510       30,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512       32,     0,     0,    33,     0,    34,     0,    35,    36,     0,
    2513       37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2514       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2516        0,     0,     0,     0,    42,     0,    43,     0,     0,     0,
    2517        0,     0,     0,     0,    44,     1,     2,   198,     4,     5,
    2518        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2519       16,    17,    18,    19,    20,    21,    22,    23,    24,  -279,
    2520        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
    2521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2524       38,     0,     0,  -279,     1,     2,   198,     4,     5,     6,
    2525        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2526       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2527       25,    26,    27,    28,     0,    43,    29,     0,    30,     0,
    2528        0,     0,     0,   108,     0,     0,     0,     0,     0,     0,
    2529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2531        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
    2532       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2533       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2534        0,     0,     0,    30,    43,     0,     0,     0,     0,     0,
    2535        0,     0,   108,     0,     0,     0,     0,     0,     0,     0,
    2536        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2537       35,    36,     0,   199,   200,    39,     0,     0,     0,     0,
    2538        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2539        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,     0,     0,    42,     0,   201,
    2541        0,     0,     0,     0,     0,     0,     0,   202,     2,   198,
     2586      27,     0,     0,     0,     0,     0,    30,   258,     0,     0,
     2587       0,     0,     0,     0,     0,   603,     0,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2589       0,     0,     0,     0,     0,     0,    35,    36,     2,   196,
    25422590       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25432591      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25442592      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2545        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2548        0,    37,    38,     2,   198,     4,     5,     6,     7,     8,
     2593       0,    30,   571,     0,     0,     0,     0,     0,     0,     0,
     2594     608,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2595       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2596       0,    35,    36,     2,   196,     4,     5,     6,     7,     8,
    25492597       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    25502598      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2551       27,     0,     0,     0,     0,     0,    30,   661,    -3,     0,
    2552        0,     0,     0,     0,     0,   610,     0,     0,     0,     0,
     2599      27,     0,     0,     0,     0,     0,    30,   659,     0,     0,
     2600       0,     0,     0,     0,     0,   608,     0,     0,     0,     0,
    25532601       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2554        0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
    2555        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
     2602       0,     0,     0,     0,     0,     0,   197,   198,     8,     9,
     2603      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2604      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2605       0,     0,     0,     0,   269,    30,   270,     0,     0,     0,
     2606       0,     0,   199,     0,     0,     0,     0,     0,     0,     0,
     2607     259,     0,     0,     0,     0,     0,     0,   271,    33,     0,
     2608       0,     0,     0,   272,     0,    35,    36,   273,     0,     0,
     2609     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2610       0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
     2611       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2612       0,   503,     0,     0,   163,     0,     0,     0,   283,   284,
     2613     285,   286,   287,   288,     8,     9,    10,    11,    12,    13,
     2614      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2615      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2616     269,    30,   270,     0,     0,     0,     0,     0,     0,     0,
     2617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,   271,    33,     0,     0,     0,     0,   272,
     2619       0,    35,    36,   273,     0,     0,   274,   275,   276,   277,
     2620      38,    39,     0,   278,   279,     0,     0,     0,     0,     0,
     2621       0,   280,     0,     0,     0,     0,     0,     0,     0,     0,
     2622       0,     0,     0,     0,     0,   281,     0,   571,    -3,     0,
     2623       0,     0,     0,     0,   283,   572,   285,   286,   287,   288,
     2624       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2625      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2626      26,    27,     0,     0,     0,     0,   269,    30,   270,     0,
     2627       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2628       0,     0,     0,     0,     0,     0,     0,     0,     0,   271,
     2629      33,     0,     0,     0,     0,   622,     0,    35,    36,   273,
     2630       0,     0,   274,   275,   276,   277,    38,    39,     0,   278,
     2631     279,     0,     0,     0,     0,     0,     0,   280,     0,     0,
     2632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,   281,   -35,   738,     0,     0,     0,     0,     0,     0,
     2634     283,   284,   285,   286,   287,   288,     8,     9,    10,    11,
    25562635      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25572636      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2558        0,  -388,   661,    30,     0,     0,     0,     0,     0,     0,
    2559      610,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2561       35,     0,     0,    37,    38,     0,     0,     0,     0,     0,
     2637       0,     0,   269,    30,   270,     0,     0,     0,     0,     0,
    25622638       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2563        0,     0,     0,     0,     0,  1367,     0,     0,     0,     0,
    2564        0,     0,     0,     0,     0,     0,     0,     0,     0,   661,
    2565        0,     0,     0,     0,     0,     0,     0,   610,     2,   198,
    2566        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2639       0,     0,     0,     0,     0,   271,    33,     0,     0,     0,
     2640       0,   272,     0,    35,    36,   273,     0,     0,   274,   275,
     2641     276,   277,    38,    39,     0,   278,   279,     0,     0,     0,
     2642       0,     0,     0,   280,     0,     0,     0,     0,     0,     0,
     2643       0,     0,     0,     0,     0,     0,     0,   281,     0,   282,
     2644       0,     0,     0,     0,     0,     0,   283,   284,   285,   286,
     2645     287,   288,     8,     9,    10,    11,    12,    13,    14,    15,
     2646      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2647       0,    25,    26,    27,     0,     0,     0,     0,   269,    30,
     2648     270,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2649       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2650       0,   271,    33,     0,     0,     0,     0,   272,     0,    35,
     2651      36,   273,     0,     0,   274,   275,   276,   277,    38,    39,
     2652       0,   278,   279,     0,     0,     0,     0,     0,     0,   280,
     2653       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2654       0,     0,     0,   281,     0,   150,     0,     0,     0,     0,
     2655       0,     0,   283,   284,   285,   286,   287,   288,     8,     9,
     2656      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2657      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2658       0,     0,     0,     0,   269,    30,   270,     0,     0,     0,
     2659       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2660       0,     0,     0,     0,     0,     0,     0,   271,    33,     0,
     2661       0,     0,     0,   272,     0,    35,    36,   273,     0,     0,
     2662     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2663       0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
     2664       0,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2665       0,   571,     0,     0,     0,     0,     0,     0,   283,   572,
     2666     285,   286,   287,   288,     8,     9,    10,    11,    12,    13,
    25672667      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25682668      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2569        0,    30,     8,     9,    10,    11,    12,    13,    14,    15,
     2669     269,    30,   270,     0,     0,     0,     0,     0,     0,     0,
     2670       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2671       0,     0,     0,   271,    33,     0,     0,     0,     0,   272,
     2672       0,    35,    36,   273,     0,     0,   274,   275,   276,   277,
     2673      38,    39,     0,   278,   279,     0,     0,     0,     0,     0,
     2674       0,   280,     0,     0,     0,     0,     0,     0,     0,     0,
     2675       0,     0,     0,     0,     0,   281,     0,   359,     0,     0,
     2676       0,     0,     0,     0,   283,   361,   285,   286,   287,   288,
     2677       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2678      18,    19,    20,    21,    22,    23,    24,  -279,     0,    25,
     2679      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
     2680       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2681      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2682      33,     0,    25,    26,    27,    34,     0,   805,    36,    37,
     2683      30,  -279,     0,     0,     0,     0,    38,    39,     0,     0,
     2684       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2685       0,     0,     0,    33,     0,     0,     0,     0,    34,     0,
     2686      35,    36,    37,   565,     0,     0,     0,     0,     0,    38,
     2687      39,   106,     8,     9,    10,    11,    12,    13,    14,    15,
    25702688      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2571        0,    25,    26,    27,    33,     0,    34,     0,    35,    30,
    2572        0,    37,    38,     0,     0,     0,     0,     0,     0,     0,
     2689       0,    25,    26,    27,    40,     0,    41,     0,     0,    30,
     2690       0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
    25732691       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,    33,  1369,     0,     0,     0,   107,     0,    37,
    2575       38,     0,     0,     0,     0,     0,     0,   661,     0,     0,
    2576        0,     0,     0,     0,     0,   610,     2,   198,     4,     5,
    2577        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2692       0,     0,    33,     0,     0,     0,     0,    34,     0,   197,
     2693     198,    37,     0,     0,     0,     0,     0,     0,    38,    39,
     2694       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2695      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2696      26,    27,     0,    40,     0,   258,     0,    30,     0,     0,
     2697       0,     0,     0,   200,     0,     0,     0,     0,     0,     0,
     2698       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2699      33,     0,     0,     0,     0,    34,     0,   805,    36,    37,
     2700       0,     0,     0,     0,     0,     0,    38,    39,     8,     9,
     2701      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2702      20,    21,    22,    23,    24,  -279,     0,    25,    26,    27,
     2703       0,  1023,     0,   565,     0,    30,     0,     0,     0,     0,
     2704       0,   608,     0,     0,     0,     0,     0,     0,     0,     0,
     2705       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2706       0,     0,     0,     0,     0,    35,    36,     0,     0,  -279,
     2707       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2708      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2709      26,    27,     0,     0,     0,     0,     0,    30,   432,  1023,
     2710       0,   565,     0,     0,     0,     0,     0,     0,     0,   608,
     2711       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2712      33,     0,     0,     0,     0,     0,     0,    35,    36,     8,
     2713       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2714      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2715      27,     0,     0,     0,     0,     0,    30,   432,     0,     0,
     2716       0,     0,     0,   433,     0,     0,     0,   685,     0,     0,
     2717       0,   106,     0,     0,     0,     0,     0,     0,     0,    33,
     2718       0,     0,     0,     0,     0,     0,    35,    36,     8,     9,
     2719      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2720      20,    21,    22,    23,    24,  -279,     0,    25,    26,    27,
     2721       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2722       0,     0,   433,     0,     0,     0,   924,     0,     0,     0,
     2723     106,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2724       0,     0,     0,     0,     0,    35,    36,     0,     0,  -279,
     2725       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2726      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2727      26,    27,     0,     0,     0,     0,     0,    30,   432,     0,
     2728       0,   565,     0,     0,     0,     0,     0,     0,     0,   106,
     2729       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2730      33,     0,     0,     0,     0,     0,     0,    35,    36,     8,
     2731       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2732      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2733      27,     0,     0,     0,     0,     0,    30,   432,     0,     0,
     2734       0,     0,     0,   433,     0,     0,     0,  1389,     0,     0,
     2735       0,   106,     0,     0,     0,     0,     0,     0,     0,    33,
     2736       0,     0,     0,     0,     0,     0,    35,    36,     8,     9,
     2737      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2738      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2739       0,     0,     0,     0,     0,    30,   432,     0,     0,     0,
     2740       0,     0,   433,     0,     0,     0,  1433,     0,     0,     0,
     2741     106,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2742       0,     0,     0,     0,     0,    35,    36,     8,     9,    10,
     2743      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2744      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2745       0,     0,     0,     0,    30,   432,     0,     0,     0,     0,
     2746       0,   433,     0,     0,     0,  1495,     0,     0,     0,   106,
     2747       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2748       0,     0,     0,     0,    35,    36,     8,     9,    10,    11,
     2749      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2750      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2751       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
     2752     433,     0,     0,     0,  1519,     0,     0,     0,   106,     0,
     2753       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2754       0,     0,     0,    35,    36,     8,     9,    10,    11,    12,
     2755      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2756      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2757       0,     0,    30,     0,     0,     0,     0,  1023,     0,   565,
     2758       0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
     2759       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2760       0,     0,    35,    36,     8,     9,    10,    11,    12,    13,
     2761      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2762      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2763       0,    30,     0,     0,     0,     0,  1023,     0,   565,     0,
     2764       0,     0,     0,     0,     0,     0,   608,     0,     0,     0,
     2765       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2766       0,    35,    36,     8,     9,    10,    11,    12,    13,    14,
     2767      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2768       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2769      30,     0,     0,     0,     0,     0,     0,   245,     0,     0,
     2770       0,     0,     0,     0,     0,   106,     0,     0,     0,     0,
     2771       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2772      35,    36,     8,     9,    10,    11,    12,    13,    14,    15,
    25782773      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    25792774       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2582        0,     0,    33,     0,    34,     0,    35,     0,     0,   199,
    2583      200,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2584       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2585       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2586        0,     0,     0,     0,    30,   260,     0,     0,     0,     0,
    2587        0,     0,     0,   605,     0,     0,     0,     0,     0,     0,
    2588        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2589        0,    35,     0,     0,    37,    38,     2,   198,     4,     5,
    2590        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2591       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2592        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2593      573,     0,     0,     0,     0,     0,     0,     0,   610,     0,
    2594        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2595        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2596       38,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2597       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2598       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2599        0,     0,     0,     0,    30,   661,     0,     0,     0,     0,
    2600        0,     0,     0,   610,     0,     0,     0,     0,     0,     0,
    2601        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2602        0,    35,     0,     0,   199,   200,     8,     9,    10,    11,
    2603       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2604       22,    23,    24,     0,     0,    25,    26,    27,   473,   474,
    2605      475,     0,   271,    30,   272,     0,     0,     0,     0,     0,
    2606      201,     0,     0,     0,     0,     0,     0,     0,   261,     0,
    2607        0,     0,     0,     0,     0,   273,    33,     0,     0,     0,
    2608        0,   274,     0,    37,    38,   275,     0,     0,   276,   277,
    2609      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2610        0,     0,     0,   282,     0,     0,     0,     0,     0,     0,
    2611        0,     0,     0,     0,     0,     0,     0,   283,     0,   284,
    2612        0,     0,     0,     0,     0,     0,   285,   286,   287,   288,
    2613      289,   290,     8,     9,    10,    11,    12,    13,    14,    15,
    2614       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2615        0,    25,    26,    27,     0,     0,     0,     0,   271,    30,
    2616      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2617        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2618        0,   273,    33,     0,     0,     0,     0,   274,     0,    37,
    2619       38,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2620        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2621        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2622        0,     0,     0,   283,     0,   505,     0,     0,   165,     0,
    2623        0,     0,   285,   286,   287,   288,   289,   290,     8,     9,
    2624       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2625       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2626        0,     0,     0,     0,   271,    30,   272,     0,     0,     0,
    2627        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2628        0,     0,     0,     0,     0,     0,     0,   273,    33,     0,
    2629        0,     0,     0,   274,     0,    37,    38,   275,     0,     0,
    2630      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2631        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
    2633        0,   573,    -3,     0,     0,     0,     0,     0,   285,   574,
    2634      287,   288,   289,   290,     8,     9,    10,    11,    12,    13,
    2635       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2636       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2637      271,    30,   272,     0,     0,     0,     0,     0,     0,     0,
    2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639        0,     0,     0,   273,    33,     0,     0,     0,     0,   624,
    2640        0,    37,    38,   275,     0,     0,   276,   277,   278,   279,
    2641       40,    41,     0,   280,   281,     0,     0,     0,     0,     0,
    2642        0,   282,     0,     0,     0,     0,     0,     0,     0,     0,
    2643        0,     0,     0,     0,     0,   283,   -35,   740,     0,     0,
    2644        0,     0,     0,     0,   285,   286,   287,   288,   289,   290,
     2775       0,     0,     0,     0,     0,     0,   150,     0,     0,     0,
     2776       0,     0,     0,     0,   106,     0,     0,     0,     0,     0,
     2777       0,     0,    33,     0,     0,     0,     0,     0,     0,   197,
     2778     198,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2779      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2780      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2781       0,     0,     0,     0,     0,   258,     0,     0,     0,     0,
     2782       0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
     2783       0,    33,     0,     0,     0,     0,     0,     0,    35,    36,
    26452784       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    26462785      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2647       26,    27,     0,     0,     0,     0,   271,    30,   272,     0,
    2648        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2649        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
    2650       33,     0,     0,     0,     0,   274,     0,    37,    38,   275,
    2651        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2652      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,   283,     0,   284,     0,     0,     0,     0,     0,     0,
    2655      285,   286,   287,   288,   289,   290,     8,     9,    10,    11,
    2656       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2657       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2658        0,     0,   271,    30,   272,     0,     0,     0,     0,     0,
    2659        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2660        0,     0,     0,     0,     0,   273,    33,     0,     0,     0,
    2661        0,   274,     0,    37,    38,   275,     0,     0,   276,   277,
    2662      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2663        0,     0,     0,   282,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,   283,     0,   152,
    2665        0,     0,     0,     0,     0,     0,   285,   286,   287,   288,
    2666      289,   290,     8,     9,    10,    11,    12,    13,    14,    15,
    2667       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2668        0,    25,    26,    27,     0,     0,     0,     0,   271,    30,
    2669      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2670        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2671        0,   273,    33,     0,     0,     0,     0,   274,     0,    37,
    2672       38,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2673        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2674        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2675        0,     0,     0,   283,     0,   573,     0,     0,     0,     0,
    2676        0,     0,   285,   574,   287,   288,   289,   290,     8,     9,
    2677       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2678       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2679        0,     0,     0,     0,   271,    30,   272,     0,     0,     0,
    2680        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2681        0,     0,     0,     0,     0,     0,     0,   273,    33,     0,
    2682        0,     0,     0,   274,     0,    37,    38,   275,     0,     0,
    2683      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2684        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
    2686        0,   361,     0,     0,     0,     0,     0,     0,   285,   363,
    2687      287,   288,   289,   290,   455,     2,   198,     4,     5,     6,
    2688        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2689       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2690       25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    2691        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2692       19,    20,    21,    22,    23,    24,  -279,     0,    25,    26,
    2693       27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
    2694        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2695        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2696        0,     0,     0,     0,    36,     0,   807,    38,    39,     0,
    2697     -279,     0,     0,     0,     0,    40,    41,    -3,     8,     9,
    2698       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2699       20,    21,    22,    23,    24,  -279,     0,    25,    26,    27,
    2700     1025,     0,   567,     0,     0,    30,     0,     0,     0,     0,
    2701      610,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2702       17,    18,    19,    20,    21,    22,    23,    24,    33,     0,
    2703       25,    26,    27,    36,     0,   807,    38,    39,    30,  -279,
    2704        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    2705        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2706        0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
    2707       39,   567,     0,     0,     0,     0,     0,    40,    41,   108,
    2708        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2709       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2710       26,    27,    42,     0,    43,     0,     0,    30,     0,     0,
    2711        0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
    2712        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2713       33,     0,     0,     0,     0,    36,     0,   199,   200,    39,
    2714        0,     0,     0,     0,     0,     0,    40,    41,     8,     9,
    2715       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2716       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2717        0,    42,     0,   260,     0,    30,     0,     0,     0,     0,
    2718        0,   202,     0,     0,     0,     0,     0,     0,     0,     0,
    2719        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2720        0,     0,     0,    36,     0,   807,    38,    39,     0,     0,
    2721        0,     0,     0,     0,    40,    41,     8,     9,    10,    11,
    2722       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2723       22,    23,    24,     0,     0,    25,    26,    27,     0,  1025,
    2724        0,   567,     0,    30,     0,     0,     0,     0,     0,   610,
    2725        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2727        0,    36,     0,   807,    38,    39,     0,     0,     0,     0,
    2728        0,     0,    40,    41,     8,     9,    10,    11,    12,    13,
    2729       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2730       24,     0,     0,    25,    26,    27,     0,     0,     0,   567,
    2731        0,    30,   434,     0,     0,     0,     0,   108,     0,     0,
    2732        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2733        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2734        0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    2735       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2736     -279,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2737       30,     0,     0,     0,     0,     0,     0,   435,     0,     0,
    2738        0,   926,     0,     0,     0,   108,     0,     0,     0,     0,
    2739        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2740       37,    38,     0,     0,  -279,     8,     9,    10,    11,    12,
    2741       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2742       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2743        0,     0,    30,   434,     0,     0,   567,     0,     0,     0,
    2744        0,     0,     0,     0,   108,     0,     0,     0,     0,     0,
    2745        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2746        0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    2747       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2748       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2749        0,    30,   434,     0,     0,     0,     0,     0,   435,     0,
    2750        0,     0,  1391,     0,     0,     0,   108,     0,     0,     0,
    2751        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2752        0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    2753       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2754        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2755       30,   434,     0,     0,     0,     0,     0,   435,     0,     0,
    2756        0,  1435,     0,     0,     0,   108,     0,     0,     0,     0,
    2757        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2758       37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    2759       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2760        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2761      434,     0,     0,     0,     0,     0,   435,     0,     0,     0,
    2762     1497,     0,     0,     0,   108,     0,     0,     0,     0,     0,
    2763        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2764       38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2765       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2766       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2767        0,     0,     0,     0,     0,   435,     0,     0,     0,  1521,
    2768        0,     0,     0,   108,     0,     0,     0,     0,     0,     0,
    2769        0,    33,     0,     0,     0,     0,   107,     0,    37,    38,
    2770        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2771       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2772       26,    27,     0,     0,     0,     0,     0,    30,   434,     0,
    2773        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
    2774        0,     0,   108,     0,     0,     0,     0,     0,     0,     0,
    2775       33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2786      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
     2787       0,     0,     0,     0,   245,     0,     0,     0,     0,     0,
     2788       0,     0,   608,     0,     0,     0,     0,     0,     0,     0,
     2789      33,     0,     0,     0,     0,     0,     0,    35,    36,     8,
    27762790       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    27772791      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    27782792      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2779        0,     0,     0,   435,     0,     0,     0,     0,     0,     0,
    2780        0,   108,     0,     0,     0,     0,     0,     0,     0,    33,
    2781        0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
     2793       0,     0,     0,   565,     0,     0,     0,     0,     0,     0,
     2794       0,   608,     0,     0,     0,     0,     0,     0,     0,    33,
     2795       0,     0,     0,     0,     0,     0,    35,    36,     8,     9,
    27822796      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27832797      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    27842798       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2785     1025,     0,   567,     0,     0,     0,     0,     0,     0,     0,
    2786      108,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2787        0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
     2799       0,     0,   433,     0,     0,     0,     0,     0,     0,     0,
     2800     106,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2801       0,     0,     0,     0,     0,   197,   198,     8,     9,    10,
    27882802      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27892803      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2790        0,     0,     0,     0,    30,     0,     0,     0,     0,  1025,
    2791        0,   567,     0,     0,     0,     0,     0,     0,     0,   610,
     2804       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2805       0,   258,     0,     0,     0,     0,     0,     0,     0,   603,
    27922806       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2793        0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     2807       0,     0,     0,     0,    35,    36,     8,     9,    10,    11,
    27942808      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    27952809      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    27962810       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2797      247,     0,     0,     0,     0,     0,     0,     0,   108,     0,
     2811     571,     0,     0,     0,     0,     0,     0,     0,   608,     0,
    27982812       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2799        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2813       0,     0,     0,    35,    36,     8,     9,    10,    11,    12,
    28002814      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    28012815      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2802        0,     0,    30,     0,     0,     0,     0,     0,     0,   152,
    2803        0,     0,     0,     0,     0,     0,     0,   108,     0,     0,
     2816       0,     0,    30,     0,     0,     0,     0,     0,     0,    41,
     2817       0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
    28042818       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2805        0,     0,   199,   200,     8,     9,    10,    11,    12,    13,
     2819       0,     0,    35,    36,     8,     9,    10,    11,    12,    13,
    28062820      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    28072821      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2808        0,    30,     0,     0,     0,     0,     0,     0,   260,     0,
    2809        0,     0,     0,     0,     0,     0,   261,     0,     0,     0,
     2822       0,    30,     0,     0,     0,     0,     0,     0,   565,     0,
     2823       0,     0,     0,     0,     0,     0,   106,     0,     0,     0,
    28102824       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2811        0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    2812       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2813        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2814       30,     0,     0,     0,     0,     0,     0,   247,     0,     0,
    2815        0,     0,     0,     0,     0,   610,     0,     0,     0,     0,
    2816        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2817       37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    2818       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2819        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2820        0,     0,     0,     0,     0,     0,   567,     0,     0,     0,
    2821        0,     0,     0,     0,   610,     0,     0,     0,     0,     0,
    2822        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2823       38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2824       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2825       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2826        0,     0,     0,     0,     0,   435,     0,     0,     0,     0,
    2827        0,     0,     0,   108,     0,     0,     0,     0,     0,     0,
    2828        0,    33,     0,     0,     0,     0,     0,     0,   199,   200,
    2829        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2830       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2831       26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2832        0,     0,     0,     0,   260,     0,     0,     0,     0,     0,
    2833        0,     0,   605,     0,     0,     0,     0,     0,     0,     0,
    2834       33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2825       0,   197,   198,     2,   196,     4,     5,     6,     7,     8,
    28352826       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    28362827      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    28372828      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2838        0,     0,     0,   573,     0,     0,     0,     0,     0,     0,
    2839        0,   610,     0,     0,     0,     0,     0,     0,     0,    33,
    2840        0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
     2829       0,   269,     0,   270,  1043,   603,  1044,     0,     0,  1045,
     2830    1046,  1047,  1048,  1049,  1050,  1051,  1052,  1527,  1053,    33,
     2831       0,  1054,    32,     0,   271,     0,    35,    36,     0,     0,
     2832     622,     0,     0,     0,   273,     0,     0,   274,   275,   276,
     2833     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2834       0,     0,   280,     0,     0,     0,     0,     0,     0,     0,
     2835       0,  -399,     0,     0,     0,     0,   281,     0,   359,     0,
     2836       0,   163,     0,     0,     0,   283,   361,   285,   286,   287,
     2837     288,     0,   269,     0,   270,  1043,     0,  1044,     0,  -126,
     2838    1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,  1053,
     2839       0,     0,  1054,    32,     0,   271,     0,     0,     0,     0,
     2840       0,   622,     0,     0,     0,   273,     0,     0,   274,   275,
     2841     276,   277,    38,    39,     0,   278,   279,     0,     0,     0,
     2842       0,     0,     0,   280,     0,     0,     0,     0,     0,     0,
     2843       0,     0,     0,     0,     0,     0,     0,   281,     0,   359,
     2844       0,     0,   163,     0,     0,     0,   283,   361,   285,   286,
     2845     287,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2846    -126,     2,   196,     4,     5,     6,     7,     8,     9,    10,
     2847      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2848      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2849     269,     0,   270,  1043,    30,  1044,  1415,  1416,  1045,  1046,
     2850    1047,  1048,  1049,  1050,  1051,  1052,  1527,  1053,     0,     0,
     2851    1054,    32,     0,   271,     0,     0,     0,    33,     0,   622,
     2852       0,     0,     0,   273,    35,    36,   274,   275,   276,   277,
     2853      38,    39,     0,   278,   279,     0,     0,     0,     0,     0,
     2854       0,   280,     0,     0,     0,     0,  1324,     0,     0,     0,
     2855       0,     0,     0,     0,     0,   281,     0,   359,     0,     0,
     2856     163,     0,     0,     0,   283,   361,   285,   286,   287,   288,
     2857     269,     0,   270,  1043,     0,  1044,  1415,  1416,  1045,  1046,
     2858    1047,  1048,  1049,  1050,  1051,  1052,     0,  1053,     0,     0,
     2859    1054,    32,     0,   271,     0,     0,     0,     0,     0,   622,
     2860       0,     0,     0,   273,     0,     0,   274,   275,   276,   277,
     2861      38,    39,     0,   278,   279,     0,     0,     0,     0,     0,
     2862       0,   280,     0,     0,     0,     0,     0,     0,     0,     0,
     2863       0,     0,     0,     0,     0,   281,     0,   359,     0,     0,
     2864     163,     0,     0,     0,   283,   361,   285,   286,   287,   288,
     2865     269,     0,   270,  1043,     0,  1044,     0,     0,  1045,  1046,
     2866    1047,  1048,  1049,  1050,  1051,  1052,     0,  1053,     0,     0,
     2867    1054,    32,     0,   271,     0,     0,     0,     0,     0,   622,
     2868       0,     0,     0,   273,     0,     0,   274,   275,   276,   277,
     2869      38,    39,     0,   278,   279,     0,     0,     0,     0,     0,
     2870       0,   280,     0,     0,     0,     0,     0,   269,     0,   270,
     2871       0,     0,     0,     0,     0,   281,     0,   359,     0,     0,
     2872     163,     0,     0,     0,   283,   361,   285,   286,   287,   288,
     2873     271,     0,     0,     0,     0,     0,   272,     0,     0,     0,
     2874     273,     0,     0,   274,   275,   276,   277,    38,    39,     0,
     2875     278,   279,     0,     0,     0,     0,     0,     0,   280,     0,
     2876       0,     0,     0,     0,   269,     0,   270,     0,     0,     0,
     2877       0,     0,   281,     0,   359,     0,     0,     0,     0,     0,
     2878       0,   283,   361,   285,   286,   287,   288,   271,     0,     0,
     2879       0,     0,     0,   272,     0,     0,     0,   273,     0,     0,
     2880     274,   275,   276,   277,    38,    39,     0,   278,   279,     0,
     2881       0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
     2882       0,   269,     0,   270,     0,     0,     0,     0,     0,   281,
     2883       0,   359,     0,     0,     0,     0,     0,     0,   283,   708,
     2884     285,   286,   287,   288,   271,     0,     0,     0,     0,     0,
     2885     622,     0,     0,     0,   273,     0,     0,   274,   275,   276,
     2886     277,    38,    39,     0,   278,   279,     0,     0,     0,     0,
     2887       0,     0,   280,     0,     0,     0,     0,     0,   269,     0,
     2888     270,     0,     0,     0,     0,     0,   281,     0,   757,     0,
     2889       0,     0,     0,     0,     0,   283,   361,   285,   286,   287,
     2890     288,   271,     0,     0,     0,     0,     0,   272,     0,     0,
     2891       0,   273,     0,     0,   274,   275,   276,   277,    38,    39,
     2892       0,   278,   279,     0,     0,     0,     0,     0,     0,   280,
     2893       0,     0,     0,     0,     0,   269,     0,   270,     0,     0,
     2894       0,     0,     0,   281,     0,   359,     0,     0,     0,     0,
     2895       0,     0,   283,   888,   285,   286,   287,   288,   271,     0,
     2896       0,     0,     0,     0,   272,     0,     0,     0,   273,     0,
     2897       0,   274,   275,   276,   277,    38,    39,     0,   278,   279,
     2898       0,     0,     0,     0,     0,     0,   280,     0,     0,     0,
     2899       0,     0,   269,     0,   270,     0,     0,     0,     0,     0,
     2900     281,     0,     0,     0,     0,     0,     0,     0,     0,   283,
     2901     361,   285,   286,   287,   288,   271,     0,     0,     0,     0,
     2902       0,   272,     0,     0,     0,   273,     0,     0,   274,   275,
     2903     276,   277,    38,    39,     0,   278,   279,     0,     0,     0,
     2904       0,     0,     0,   280,     0,     0,     0,     0,     0,   269,
     2905       0,   270,     0,     0,     0,     0,     0,   493,     0,     0,
     2906       0,     0,     0,     0,     0,     0,   283,   361,   285,   286,
     2907     287,   288,   271,     0,     0,     0,     0,     0,   272,     0,
     2908       0,     0,   273,     0,     0,   274,   275,   276,   277,    38,
     2909      39,     0,   278,   279,     0,     0,     0,     0,     0,     0,
     2910     280,     0,     0,     0,     0,     0,   269,     0,   270,     0,
     2911       0,     0,     0,     0,   496,     0,     0,     0,     0,     0,
     2912       0,     0,     0,   283,   361,   285,   286,   287,   288,   271,
     2913       0,     0,     0,     0,     0,   272,     0,     0,     0,   273,
     2914       0,     0,   274,   275,   276,   277,    38,    39,     0,   278,
     2915     279,     0,     0,     0,     0,     0,     0,   280,     0,     0,
     2916       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2917       0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
     2918     283,   361,   285,   286,   287,   288,     2,   196,     4,     5,
     2919       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2920      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2921       0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
     2922       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2923       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2924       0,     0,    33,     0,     0,     0,     0,    34,     0,   166,
     2925     167,    37,     0,     0,     0,     0,     0,     0,    38,    39,
     2926     195,     2,   196,     4,     5,     6,     7,     8,     9,    10,
     2927      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2928      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2929       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2930       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2931       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2932       0,     0,     0,     0,   197,   198,   453,     2,   196,     4,
     2933       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2934      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2935       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2936      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2937       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2938       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2939      35,    36,     2,   196,     4,     5,     6,     7,     8,     9,
    28412940      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    28422941      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    28432942       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2844        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
    2845      108,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2846        0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
    2847       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2848       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2849        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2850        0,   567,     0,     0,     0,     0,     0,     0,     0,   108,
    2851        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2852        0,     0,     0,     0,   199,   200,     2,   198,     4,     5,
    2853        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2854       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2855        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2856        0,     0,     0,     0,     0,     0,     0,     0,   605,     0,
    2857        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2858        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2859       38,     0,   271,     0,   272,  1045,     0,  1046,     0,     0,
    2860     1047,  1048,  1049,  1050,  1051,  1052,  1053,  1054,  1529,  1055,
    2861        0,     0,  1056,    32,     0,   273,     0,     0,     0,     0,
    2862        0,   624,     0,     0,  -401,   275,     0,     0,   276,   277,
    2863      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2864        0,     0,     0,   282,     0,     0,     0,     0,     0,     0,
    2865        0,     0,     0,     0,     0,     0,     0,   283,     0,   361,
    2866        0,     0,   165,     0,     0,     0,   285,   363,   287,   288,
    2867      289,   290,     0,   271,     0,   272,  1045,     0,  1046,     0,
    2868     -126,  1047,  1048,  1049,  1050,  1051,  1052,  1053,  1054,     0,
    2869     1055,     0,     0,  1056,    32,     0,   273,     0,     0,     0,
    2870        0,     0,   624,     0,     0,     0,   275,     0,     0,   276,
    2871      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2872        0,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2873        0,     0,     0,     0,     0,     0,     0,     0,   283,     0,
    2874      361,     0,     0,   165,     0,     0,     0,   285,   363,   287,
    2875      288,   289,   290,     0,     0,     0,     0,     0,     0,     0,
    2876        0,  -126,     2,   198,     4,     5,     6,     7,     8,     9,
     2943       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2944      18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
     2945      26,    27,   471,   472,   473,   197,   198,    30,     8,     9,
    28772946      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    28782947      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2879        0,     0,     0,     0,     0,    30,     8,     9,    10,    11,
    2880       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2881       22,    23,    24,     0,     0,    25,    26,    27,    33,     0,
    2882       34,     0,    35,    30,     0,    37,    38,     0,   271,     0,
    2883      272,  1045,     0,  1046,  1417,  1418,  1047,  1048,  1049,  1050,
    2884     1051,  1052,  1053,  1054,  1529,  1055,    33,  1326,  1056,    32,
    2885        0,   273,     0,    37,    38,     0,     0,   624,     0,     0,
    2886        0,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2887        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
     2948      33,     0,     0,     0,     0,    30,     0,    35,    36,     0,
     2949       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2950      18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
     2951      26,    27,     0,   105,     0,    35,    36,    30,     8,     9,
     2952      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2953      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2954      33,     0,     0,     0,     0,    30,     0,    35,    36,     0,
    28882955       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2889        0,     0,     0,   283,     0,   361,     0,     0,   165,     0,
    2890        0,     0,   285,   363,   287,   288,   289,   290,   271,     0,
    2891      272,  1045,     0,  1046,  1417,  1418,  1047,  1048,  1049,  1050,
    2892     1051,  1052,  1053,  1054,     0,  1055,     0,     0,  1056,    32,
    2893        0,   273,     0,     0,     0,     0,     0,   624,     0,     0,
    2894        0,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2895        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2896        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2897        0,     0,     0,   283,     0,   361,     0,     0,   165,     0,
    2898        0,     0,   285,   363,   287,   288,   289,   290,   271,     0,
    2899      272,  1045,     0,  1046,     0,     0,  1047,  1048,  1049,  1050,
    2900     1051,  1052,  1053,  1054,     0,  1055,     0,     0,  1056,    32,
    2901        0,   273,     0,     0,     0,     0,     0,   624,     0,     0,
    2902        0,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2903        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2904        0,     0,     0,     0,     0,   271,     0,   272,     0,     0,
    2905        0,     0,     0,   283,     0,   361,     0,     0,   165,     0,
    2906        0,     0,   285,   363,   287,   288,   289,   290,   273,     0,
    2907        0,     0,     0,     0,   274,     0,     0,     0,   275,     0,
    2908        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2909        0,     0,     0,     0,     0,     0,   282,     0,     0,     0,
    2910        0,     0,   271,     0,   272,     0,     0,     0,     0,     0,
    2911      283,     0,   361,     0,     0,     0,     0,     0,     0,   285,
    2912      890,   287,   288,   289,   290,   273,     0,     0,     0,     0,
    2913        0,   274,     0,     0,     0,   275,     0,     0,   276,   277,
    2914      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2915        0,     0,     0,   282,     0,     0,     0,     0,     0,   271,
    2916        0,   272,     0,     0,     0,     0,     0,   283,     0,     0,
    2917        0,     0,     0,     0,     0,     0,   285,   363,   287,   288,
    2918      289,   290,   273,     0,     0,     0,     0,     0,   274,     0,
    2919        0,     0,   275,     0,     0,   276,   277,   278,   279,    40,
    2920       41,     0,   280,   281,     0,     0,     0,     0,     0,     0,
    2921      282,     0,     0,     0,     0,     0,   271,     0,   272,     0,
    2922        0,     0,     0,     0,   495,     0,     0,     0,     0,     0,
    2923        0,     0,     0,   285,   363,   287,   288,   289,   290,   273,
    2924        0,     0,     0,     0,     0,   274,     0,     0,     0,   275,
    2925        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2926      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
    2927        0,     0,     0,   271,     0,   272,     0,     0,     0,     0,
    2928        0,   498,     0,     0,     0,     0,     0,     0,     0,     0,
    2929      285,   363,   287,   288,   289,   290,   273,     0,     0,     0,
    2930        0,     0,   274,     0,     0,     0,   275,     0,     0,   276,
    2931      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2932        0,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2933        0,     0,     0,     0,     0,     0,     0,     0,   501,     0,
    2934        0,     0,     0,     0,     0,     0,     0,   285,   363,   287,
    2935      288,   289,   290,     2,   198,     4,     5,     6,     7,     8,
    2936        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2937       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
    2938        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2939        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2940        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2941        0,    34,     0,    35,    36,     0,   168,   169,    39,     0,
    2942        0,     0,     0,     0,     0,    40,    41,   197,     2,   198,
     2956       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2957       0,     0,     0,     0,     0,   197,   198
     2958};
     2959
     2960#define yypact_value_is_default(yystate) \
     2961  ((yystate) == (-1291))
     2962
     2963#define yytable_value_is_error(yytable_value) \
     2964  YYID (0)
     2965
     2966static const yytype_int16 yycheck[] =
     2967{
     2968       1,     1,     0,    40,     0,    40,    40,   176,   110,    32,
     2969     176,   410,   209,   177,   100,   176,   555,   441,     0,     1,
     2970     161,   176,   517,   176,   431,   267,   672,   603,   554,   651,
     2971     329,   672,   431,    31,   672,    31,   176,   619,   176,   324,
     2972     975,   344,    40,   435,    42,   348,    42,   554,   583,    31,
     2973     627,   633,   585,   583,    52,   583,   585,     0,   618,   619,
     2974      58,   586,    58,    61,    64,    61,    64,   592,    64,   583,
     2975       0,   478,   268,   633,   434,   482,   177,   554,  1022,  1334,
     2976      37,   751,    64,     0,   253,   982,   873,   253,    31,   191,
     2977     254,    40,   253,   101,   476,    40,   104,   583,   253,    40,
     2978     253,    31,   748,   101,     0,     0,   104,   748,  1021,  1022,
     2979     748,   450,   110,   253,    31,   253,    31,   873,   583,    65,
     2980     697,   405,   406,     0,     1,  1415,    27,     0,   710,   583,
     2981      65,  1042,    88,  1419,   218,    31,    31,    75,  1035,   176,
     2982     178,   176,   176,   141,    61,   141,   103,   507,   101,   102,
     2983     710,   235,    37,   254,    31,   153,    65,   153,    31,    37,
     2984      42,    43,    42,    65,   786,   111,   122,    40,   103,    42,
     2985      71,   194,    42,    43,   796,   474,   397,    65,   176,   177,
     2986    1435,   177,    37,   468,    61,    58,   123,    64,    61,  1479,
     2987     812,    64,   389,   191,   103,   416,   480,   733,    57,   102,
     2988     208,   103,   200,   424,   200,   587,   109,    65,    37,   591,
     2989     208,   249,   250,   211,   498,   211,   253,  1503,   253,   253,
     2990     123,   385,  1508,   101,   106,   103,   106,   176,    42,    43,
     2991     612,   176,   718,    65,   616,   176,   124,   107,  1524,   240,
     2992     244,   239,   101,   239,  1508,  1531,   101,   101,   103,    29,
     2993      75,   790,   260,   718,   102,   253,   254,   239,   254,   267,
     2994     140,   109,   260,   101,   718,    50,   124,  1531,   141,   267,
     2995     434,   103,   101,   375,   103,   102,   811,   102,   562,   280,
     2996     153,   811,   109,   811,   385,   123,  1042,   572,   813,   822,
     2997      37,  1235,   106,   822,   211,    37,   239,   811,    78,    79,
     2998     692,   403,   466,   176,   177,    78,   408,    92,   268,   239,
     2999      89,   614,   651,  1248,   984,   113,   114,   315,   603,   315,
     3000     200,   102,   239,   608,   239,   811,   101,   200,   109,    89,
     3001     328,   329,   105,   434,   211,   101,   115,   345,   211,     0,
     3002       1,   349,  1286,   239,   239,   106,   811,   345,   244,   244,
     3003      65,   349,    67,    68,   101,   115,   103,   811,   108,   101,
     3004     108,   103,   239,     3,   903,   466,   239,   666,   108,  1508,
     3005      31,    65,  1285,  1286,   124,    69,   902,   375,   108,   259,
     3006     253,    42,    76,    77,   124,  1524,   671,   385,  1299,   385,
     3007     108,   106,  1531,   397,   124,   902,  1018,  1019,   108,   184,
     3008      61,   936,     3,    64,   284,   403,   936,   101,   937,   103,
     3009     408,   104,   416,   330,   124,   108,   902,   111,   994,   108,
     3010     424,   206,   936,   108,   108,   902,    65,  1214,    67,    68,
     3011      65,   216,    67,    68,   104,   124,   434,   902,   108,   124,
     3012     124,  1023,   315,   664,   324,   106,   101,   786,   902,   108,
     3013     111,   231,   453,  1075,  1076,   102,   329,   796,  1214,   744,
     3014     458,   108,   844,  1023,   103,   124,   101,  1411,   466,     0,
     3015     466,   106,   470,   812,   470,   111,   474,   673,   104,   140,
     3016     116,   117,   108,  1008,  1009,   980,     0,   628,   470,   102,
     3017     732,    61,   153,   108,   580,   108,   281,   498,  1411,   695,
     3018     123,   397,   397,   672,  1401,  1402,   672,   101,  1482,   124,
     3019     674,   672,   385,   514,  1488,  1051,   517,   672,   519,   672,
     3020     416,   416,   121,   822,   123,   405,   406,   470,   424,   424,
     3021     410,  1505,   672,   635,   672,   101,  1510,   103,   945,   200,
     3022     470,   111,   459,  1299,  1083,  1456,  1123,   101,   947,   103,
     3023     211,   431,  1463,   470,   104,   915,   101,   111,   108,   101,
     3024     942,   434,    65,   923,    67,    68,   567,   101,   229,  1151,
     3025    1152,  1100,   468,   674,   470,   470,   101,    65,   239,    67,
     3026     360,    69,   580,   153,   101,   583,   103,   585,    76,    77,
     3027     251,  1151,  1152,   470,   111,  1506,   604,   470,   259,   637,
     3028     480,   474,    65,   106,    67,    68,   604,   967,   102,   108,
     3029      65,   104,   620,   102,    69,   108,   101,    72,   498,    74,
     3030     281,     3,   620,   284,   632,   124,    81,   570,    10,    11,
     3031      12,    13,    14,   634,   632,   636,   421,   635,   101,   101,
     3032    1262,   211,   941,   106,     4,     5,     6,     7,     8,     9,
     3033     108,  1273,  1274,  1275,   102,    37,   108,     1,   102,   439,
     3034     664,   102,   859,   324,   444,   102,   124,   104,   666,   330,
     3035     455,   108,   124,   101,   672,   103,   674,   247,    60,  1018,
     3036    1019,   251,   562,   880,    81,    82,   123,   124,   605,   992,
     3037     108,   281,   572,   102,    83,    84,   102,   477,    42,   479,
     3038    1456,  1323,   108,   707,   705,   101,   124,  1463,   493,   994,
     3039     583,   496,   585,   673,   499,   101,    65,   108,    67,    68,
     3040     718,   719,   808,   603,   732,   866,   102,   107,   608,   118,
     3041     119,     3,   108,   124,   732,   695,  1075,  1076,    10,    11,
     3042      12,    13,    14,    65,   405,   406,   101,    69,   203,   410,
     3043    1506,   915,   101,   124,    76,    77,   100,   106,    57,   923,
     3044     330,   101,   106,  1299,   124,    37,   102,   853,   664,   664,
     3045     431,   432,   108,   101,   435,   671,   101,   101,   103,   101,
     3046     441,   698,    85,    86,  1083,   103,   111,   105,    60,   111,
     3047     124,   109,   103,   666,   105,   712,   140,   493,   109,   672,
     3048     496,   674,  1226,   499,   102,   106,   101,   468,   103,   470,
     3049     108,   707,   707,   811,   915,   405,   406,    65,   101,   480,
     3050     103,    69,   923,   783,   822,   102,  1225,   106,    76,    77,
     3051     124,   108,   493,    42,   124,   496,   102,   498,   499,   409,
     3052    1143,  1377,   108,    65,   624,   718,   719,  1150,   744,    58,
     3053     106,   195,    61,   101,   101,    64,   200,    75,   102,   802,
     3054    1145,   468,   102,   111,   108,   650,  1512,   102,   108,   102,
     3055     112,  1512,   873,   108,  1512,   108,   661,   332,   102,   334,
     3056     665,   102,   120,   800,   108,   229,   102,   108,   974,   459,
     3057     121,   873,   108,   101,  1233,   103,  1037,  1321,   108,   109,
     3058     898,   562,   862,   493,   902,   903,   496,   687,    87,   499,
     3059     102,   572,   123,   693,   575,   259,   108,   915,   262,   103,
     3060    1116,  1224,   104,  1262,  1460,   923,  1462,   102,  1320,   101,
     3061     873,   103,   141,   108,  1273,  1274,  1275,   281,   811,   102,
     3062     284,   102,   603,   941,   153,   108,   946,   608,   102,   822,
     3063    1235,    65,   102,    67,   897,    69,   873,    65,   108,    67,
     3064      68,   551,    76,    77,   946,   420,   102,   101,   177,   103,
     3065      65,  1507,    67,    68,    69,   102,   977,   873,   873,   980,
     3066     324,   982,   102,   103,  1323,  1181,  1182,   101,   101,  1012,
     3067     103,   200,    54,    55,   992,   102,   873,   111,  1390,   102,
     3068     344,  1087,   211,   101,   348,   575,  1108,  1431,   108,   109,
     3069     671,   618,   619,     4,     5,     6,     7,     8,     9,  1322,
     3070     540,   541,   542,   543,   984,   101,   633,   103,   103,   902,
     3071     903,   692,    42,    43,  1035,   605,  1122,   101,   102,   103,
     3072     610,    32,   915,   108,  1045,  1469,   123,  1048,  1049,  1050,
     3073     923,   712,   101,   102,   103,    10,    11,    12,    13,    14,
     3074    1042,   405,   406,   677,   671,   679,   410,   947,   941,   946,
     3075     106,    78,    79,    80,   101,   450,  1468,   536,   537,  1039,
     3076     997,   102,    37,   744,   102,  1083,   866,   431,   432,   538,
     3077     539,   435,   872,   104,   101,   104,   103,   441,   105,  1042,
     3078     101,   102,   103,   710,  1496,    60,   315,   104,   108,   453,
     3079    1108,   101,   102,   103,   994,   900,   109,  1254,  1255,  1256,
     3080     109,  1520,   544,   545,    28,  1042,    75,   102,   698,   102,
     3081     104,  1491,   108,   102,   478,   107,   480,   744,   482,   800,
     3082     108,   107,   712,  1086,   109,   107,  1042,  1042,   101,   493,
     3083     102,    75,   496,   124,   498,   499,  1116,    10,    11,    12,
     3084      13,    14,   102,   102,   109,  1042,   102,   102,    52,   102,
     3085       3,   108,   104,  1533,   102,   102,   385,    10,    11,    12,
     3086      13,    14,   102,   270,    37,   104,   101,    65,   968,    67,
     3087     101,    69,   102,  1193,   102,   102,   283,   284,    76,    77,
     3088     102,   102,   102,   102,    37,   102,   102,    60,   295,   104,
     3089    1083,  1193,   873,  1214,   107,    28,   104,   101,   562,  1415,
     3090     104,  1181,  1182,   101,   104,   103,  1224,    60,   572,   123,
     3091     800,   109,  1214,   111,   102,   102,   580,   324,   102,  1239,
     3092      10,    11,    12,    13,    14,   102,   102,   107,   101,  1145,
     3093     103,   102,   102,  1254,  1255,  1256,   108,  1239,   111,   603,
     3094     104,   104,   102,   108,   608,   102,   101,    37,  1053,   108,
     3095     614,  1214,   106,   104,   361,  1192,   651,    65,   873,    67,
     3096     108,    69,  1478,  1479,   104,   946,   947,   104,    76,    77,
     3097      60,  1071,  1394,   102,   104,    65,   102,  1214,  1384,    69,
     3098     108,   108,   102,   104,  1084,  1085,    76,    77,   101,   101,
     3099     101,   101,  1313,   101,   101,  1192,  1193,  1299,  1214,  1214,
     3100     109,   124,   107,   111,   208,   102,   102,   121,   102,   104,
     3101      42,   101,    45,   994,  1334,   107,   107,  1214,   106,  1235,
     3102     124,   111,   108,  1512,   104,  1225,  1512,   108,   692,  1513,
     3103     104,  1512,  1334,   102,   102,   102,  1299,  1512,   104,  1512,
     3104     104,   104,  1239,     4,     5,     6,     7,     8,     9,  1533,
     3105    1371,   104,  1512,  1374,  1512,   102,   260,  1294,   722,   104,
     3106     104,  1042,  1299,   267,   124,  1393,  1384,   124,   124,  1491,
     3107     124,   106,   124,   104,   106,  1393,  1394,   102,   107,   102,
     3108    1401,  1402,   104,  1299,  1299,   104,   107,   104,  1188,   104,
     3109     104,   786,  1513,   104,  1021,   104,  1023,  1294,  1419,   104,
     3110     102,   796,  1299,  1424,   102,   104,    55,   997,   140,   104,
     3111     101,   101,  1533,    54,   106,  1435,   104,   812,   102,   102,
     3112     124,     0,     1,    75,   328,   102,   533,   534,   535,  1450,
     3113    1045,   109,   102,  1435,   101,  1415,   104,  1334,    65,   104,
     3114      67,   345,    69,   102,   808,   349,   104,   102,   104,    76,
     3115      77,    89,    31,    32,  1456,  1512,   107,  1512,  1512,   102,
     3116     102,  1463,   102,    42,  1145,   572,   102,    40,   200,   108,
     3117     124,  1492,   109,  1491,   101,    89,   103,   124,   102,   102,
     3118     106,    75,  1503,   102,   111,    64,   104,  1508,   109,   853,
     3119     124,   124,   107,  1456,  1512,  1513,   104,  1513,  1478,  1479,
     3120    1463,  1522,  1307,  1524,  1506,   101,   107,  1528,   124,   107,
     3121    1531,  1192,  1193,   102,   124,  1533,  1537,  1533,  1145,  1456,
     3122    1541,   100,   102,   647,  1151,  1152,  1463,   259,   546,   548,
     3123    1124,   547,  1214,  1214,   549,  1479,   550,  1379,  1435,  1308,
     3124    1456,  1456,  1541,  1506,  1225,  1226,  1494,  1463,  1463,   281,
     3125    1118,  1463,   284,    65,  1235,    67,    68,    69,  1239,  1456,
     3126    1119,  1071,   141,     0,    76,    77,  1463,   679,   923,  1506,
     3127     149,   432,   925,   866,   432,   444,    10,    11,    12,    13,
     3128      14,   945,   946,   947,  1194,  1195,   567,  1197,  1388,   101,
     3129    1506,  1506,   968,  1203,    31,   629,  1206,   722,   177,  1214,
     3130     943,   708,  1192,    37,   470,    -1,   732,  1239,    -1,  1506,
     3131     974,    -1,   191,  1294,    -1,   194,   195,    -1,  1299,  1512,
     3132    1520,   200,    -1,  1018,  1019,    65,    60,    64,   992,    69,
     3133     994,    65,    -1,    67,    -1,    69,    76,    77,    -1,  1320,
     3134    1321,   220,    76,    77,   751,   224,    -1,   226,    -1,    -1,
     3135      -1,    -1,    -1,  1334,   233,    -1,    -1,    -1,  1285,  1464,
     3136     239,   101,   180,   103,    -1,   244,    -1,   101,    -1,   187,
     3137      -1,   111,    -1,   405,   406,   254,   580,   111,   410,    -1,
     3138    1075,  1076,    -1,   262,    -1,    -1,    61,    -1,  1493,    -1,
     3139      -1,    65,    -1,    67,    68,    69,    71,    -1,  1313,   431,
     3140     604,    -1,    76,    77,  1294,    -1,    -1,    -1,    -1,  1390,
     3141      -1,    -1,   149,    -1,    -1,    -1,   620,    -1,    -1,    -1,
     3142      -1,    -1,    -1,  1087,    -1,    -1,    -1,  1532,   632,    -1,
     3143      10,    11,    12,    13,    14,    -1,   111,    -1,   256,  1544,
     3144      -1,    -1,    -1,    -1,    -1,   324,    -1,    -1,   480,    -1,
     3145    1431,    -1,   331,    -1,  1435,    -1,  1371,    37,  1122,  1374,
     3146      -1,   493,    -1,  1373,   496,   344,   498,   499,    -1,   348,
     3147      -1,    -1,   351,    -1,    -1,  1456,    -1,    -1,   153,  1143,
     3148      60,   888,  1463,   220,  1465,    65,  1150,  1468,  1469,    69,
     3149      -1,    -1,   310,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3150     318,    -1,   239,   321,  1419,    -1,    -1,   244,    65,  1424,
     3151      67,    -1,    69,  1494,    -1,  1496,    -1,    -1,   397,    76,
     3152      77,   101,    -1,   103,    -1,  1506,    -1,    -1,   732,    -1,
     3153     562,   111,   411,    -1,    -1,  1450,   211,   416,  1233,  1520,
     3154      -1,    -1,    -1,    -1,   101,   424,   103,    -1,    -1,    -1,
     3155      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,   377,
     3156    1224,  1225,  1226,   381,    -1,    -1,    -1,  1262,    -1,    -1,
     3157      -1,   450,   247,    -1,   453,  1239,   251,    -1,  1273,  1274,
     3158    1275,    -1,    10,    11,    12,    13,    14,   994,    -1,   468,
     3159      -1,   470,   267,    -1,   331,    -1,    -1,    -1,    -1,   478,
     3160      65,    -1,    67,   482,    69,    -1,    -1,  1522,    -1,    37,
     3161      -1,    76,    77,  1528,   351,    -1,    10,    11,    12,    13,
     3162      14,    -1,  1537,    -1,    -1,    -1,  1541,    -1,  1323,    -1,
     3163      -1,   510,    60,    -1,    -1,  1042,   101,    65,   103,    67,
     3164      -1,    69,    -1,    37,    -1,    -1,   111,   465,    76,    77,
     3165      65,    -1,    67,    68,    69,   330,  1320,  1321,  1322,    -1,
     3166     397,    76,    77,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3167    1334,    -1,    -1,   101,   411,   103,   555,    -1,    -1,   416,
     3168      -1,    -1,    -1,   111,    -1,    -1,   101,   424,    25,    26,
     3169      27,   570,    -1,   572,   898,    -1,    -1,    -1,    -1,    -1,
     3170      -1,   580,    -1,    -1,    -1,    -1,   585,   101,    -1,   103,
     3171      -1,    -1,    -1,   450,    -1,    -1,    -1,   111,    -1,    -1,
     3172    1384,    -1,    -1,    -1,   603,    -1,  1390,    -1,    -1,   608,
     3173      -1,   468,    -1,   470,   409,   614,   554,   555,    -1,   618,
     3174     619,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
     3175      -1,   426,    -1,    -1,   633,    -1,    93,    -1,    95,  1166,
     3176      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1431,    -1,    -1,
     3177      37,  1435,   651,   510,    90,    91,    92,    93,    94,    95,
     3178      96,    97,    98,    99,   459,   664,    -1,    -1,   992,    -1,
     3179      -1,    -1,   671,    60,    -1,   674,    -1,    -1,    65,    -1,
     3180      67,  1465,    69,    -1,  1468,  1469,    -1,   123,    -1,    76,
     3181      77,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3182     638,    -1,    -1,    -1,   642,    -1,    -1,    -1,   707,    -1,
     3183    1494,   710,  1496,   570,   101,    -1,   173,    -1,    -1,    37,
     3184     719,    -1,    -1,   722,   111,   182,   183,    -1,   666,    -1,
     3185     187,    -1,   189,   190,    -1,    -1,  1520,    -1,    -1,    -1,
     3186     678,    -1,    60,    -1,    -1,   744,    -1,    65,    -1,    67,
     3187     749,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
     3188      -1,   618,   619,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3189      -1,    -1,    -1,     0,    -1,    -1,   633,    -1,    -1,    -1,
     3190     575,    -1,    -1,   101,    -1,   103,    -1,   786,    -1,    -1,
     3191      -1,    -1,    -1,   111,   651,   947,    -1,   796,    -1,    -1,
     3192      -1,    -1,   801,   802,    31,    -1,    -1,   664,    -1,   808,
     3193     605,    -1,    -1,   812,   671,   610,    -1,    -1,    -1,    -1,
     3194      -1,    -1,   821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3195      -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,
     3196      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3197     707,    -1,   790,   710,   853,    -1,    -1,    10,    11,    12,
     3198      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3199      23,    24,    25,    26,   873,    -1,    29,    30,    31,    -1,
     3200      -1,    -1,    -1,    -1,    37,    -1,    -1,   744,    -1,    -1,
     3201      -1,    -1,    -1,    10,    11,    12,    13,    14,   897,    -1,
     3202    1224,    -1,    -1,   698,   903,    -1,    -1,    60,    -1,    -1,
     3203      -1,    -1,    65,    -1,    67,    68,    69,   712,    -1,    -1,
     3204      37,    -1,   149,    76,    77,    -1,    -1,    -1,    -1,   786,
     3205      -1,    -1,    -1,    -1,    -1,    -1,    -1,   732,   937,   796,
     3206      -1,    -1,    -1,    60,   801,   802,   945,   946,   101,    -1,
     3207     103,    -1,    -1,    -1,    -1,   812,    -1,    -1,   111,    -1,
     3208      -1,   960,    -1,    -1,   902,   903,    -1,    -1,    -1,    -1,
     3209      -1,    -1,   910,    -1,    -1,   974,    -1,     0,    -1,    10,
     3210      11,    12,    13,    14,   101,    -1,   103,    -1,    -1,    -1,
     3211      -1,    -1,    -1,   992,   111,   994,    -1,    -1,    -1,    10,
     3212      11,    12,    13,    14,    -1,   800,    37,    -1,    31,    -1,
     3213      -1,    -1,   239,  1012,    -1,    -1,   873,   244,    -1,  1018,
     3214    1019,    -1,  1021,  1022,  1023,    -1,    37,    -1,    -1,    60,
     3215      -1,    -1,    -1,    -1,    65,    -1,    67,    -1,    69,    -1,
     3216     897,    64,    -1,  1042,    -1,    76,    77,    -1,   986,    60,
     3217      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
     3218    1384,    -1,    -1,    -1,    -1,    76,    77,  1005,    -1,  1393,
     3219     101,    -1,   103,  1225,    -1,    -1,  1075,  1076,    -1,    -1,
     3220     111,    -1,    -1,    -1,    -1,    -1,    -1,  1086,  1087,    -1,
     3221     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3222     111,   558,   559,   960,   331,    -1,    -1,    -1,    -1,    -1,
     3223      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,  1122,   351,    -1,   149,    -1,    -1,   586,
     3225      -1,    -1,   589,   590,    -1,   592,    -1,   594,   595,    -1,
     3226      -1,    -1,   599,   600,  1143,  1083,  1145,    -1,    -1,    -1,
     3227    1088,  1150,  1151,  1152,    -1,    -1,    -1,    -1,    -1,    -1,
     3228      -1,  1018,  1019,    -1,  1021,  1022,  1023,    -1,    -1,    -1,
     3229     397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3230      -1,    -1,    -1,    -1,   411,  1042,    -1,    -1,    -1,   416,
     3231      -1,    -1,    -1,    -1,  1193,    -1,    -1,   424,    -1,    -1,
     3232      -1,    -1,   997,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,  1210,    -1,    -1,    -1,  1214,   239,    -1,  1075,  1076,
     3234      -1,   244,    -1,   450,    -1,  1224,   683,   684,    -1,  1086,
     3235      -1,    -1,   689,    -1,  1233,    -1,  1235,    -1,    -1,    -1,
     3236    1239,   468,    -1,   470,    -1,    -1,    10,    11,    12,    13,
     3237      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3238      24,    25,    26,  1262,    -1,    29,    30,    31,    -1,    -1,
     3239      -1,    -1,    -1,    37,  1273,  1274,  1275,    -1,    -1,    -1,
     3240      -1,    -1,    -1,   510,    -1,    -1,  1285,  1286,  1145,    -1,
     3241      -1,    -1,    -1,    -1,  1151,  1152,    60,    -1,    -1,    -1,
     3242    1299,    65,    -1,    67,    68,    -1,    -1,    -1,   331,    -1,
     3243      -1,    -1,    -1,  1465,    -1,    -1,    -1,    -1,    -1,    -1,
     3244      -1,    -1,    -1,  1322,  1323,    -1,    -1,    -1,   351,    -1,
     3245      -1,    -1,    -1,    -1,    -1,  1334,  1193,    -1,    -1,   103,
     3246      -1,    -1,  1494,   570,    -1,    -1,    -1,   111,    -1,    -1,
     3247      -1,    -1,    -1,  1210,    -1,    -1,    -1,  1214,    -1,     0,
     3248      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1520,    -1,
     3249      -1,    -1,    -1,    -1,   397,    -1,  1233,    -1,  1235,    -1,
     3250      -1,    -1,    -1,    -1,    -1,  1384,    -1,    -1,   411,    -1,
     3251      31,   618,   619,   416,    -1,    -1,    -1,  1192,    -1,    -1,
     3252      -1,   424,    -1,    -1,    -1,  1262,   633,    -1,    -1,    -1,
     3253      -1,    -1,  1411,    -1,    -1,    -1,  1273,  1274,  1275,    -1,
     3254      -1,    -1,    -1,    64,   651,    -1,    -1,   450,  1285,  1286,
     3255      -1,    -1,    -1,    -1,    -1,    -1,  1435,   664,    -1,    -1,
     3256      -1,    -1,  1299,    -1,   671,   468,    -1,   470,    -1,    -1,
     3257      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1456,    -1,    -1,
     3258      -1,    -1,    -1,    -1,  1463,    -1,  1323,    -1,    -1,    -1,
     3259      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3260     707,    -1,    -1,   710,    -1,    -1,    -1,   510,    -1,    -1,
     3261      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,
     3262      -1,     0,     1,    -1,    -1,    -1,    -1,  1506,   149,    -1,
     3263      -1,    -1,    -1,    -1,  1513,    -1,    -1,   744,    -1,    -1,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3265      -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3266      -1,    -1,    -1,    25,    26,    27,    -1,   570,    -1,    -1,
     3267      -1,    -1,    -1,    -1,  1411,    -1,    -1,    -1,    -1,   786,
     3268      -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,   796,
     3269      -1,    -1,    -1,    -1,   801,   802,    -1,    -1,    -1,    -1,
     3270      -1,    -1,    -1,    -1,    -1,   812,    -1,    -1,    -1,    -1,
     3271      -1,    -1,    -1,    -1,    -1,   618,   619,    -1,   239,  1456,
     3272      -1,    -1,    -1,   244,    -1,    -1,  1463,    -1,    -1,    -1,
     3273     633,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
     3274    1077,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   651,    -1,
     3275      -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,
     3276      -1,   664,    -1,    -1,    -1,    -1,   873,    -1,   671,  1506,
     3277     149,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3278      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3279     897,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
     3280      -1,    -1,    -1,    -1,   707,    -1,    -1,   710,    -1,    -1,
     3281     331,   173,    -1,    -1,    -1,    -1,    -1,    -1,   180,    -1,
     3282     182,   183,    60,    -1,    -1,   187,    -1,   189,   190,    -1,
     3283     351,    -1,   211,    71,    -1,    -1,    -1,    -1,    -1,    -1,
     3284      -1,   744,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3285      -1,    -1,    -1,   960,    -1,    -1,    -1,    -1,    -1,    -1,
     3286     239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3287      -1,    -1,    -1,    -1,  1211,    -1,   397,    -1,    -1,    -1,
     3288      -1,    -1,    -1,   786,    -1,    -1,    -1,    -1,    -1,    -1,
     3289     411,    -1,    -1,   796,   256,   416,    -1,    -1,   801,   802,
     3290      -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,   812,
     3291      -1,  1018,  1019,    -1,  1021,  1022,  1023,    -1,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   450,
     3293      -1,    61,    -1,    -1,    -1,  1042,    -1,    -1,    -1,    -1,
     3294      -1,    71,    -1,    73,    -1,    75,    -1,   468,    -1,   470,
     3295      -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1075,  1076,
     3297     873,    -1,   351,    -1,    -1,    -1,    -1,    -1,    -1,  1086,
     3298      -1,   111,    -1,   113,   114,   115,    -1,    -1,    -1,   510,
     3299      -1,    -1,    -1,    -1,   897,    -1,    -1,    -1,    -1,    -1,
     3300      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,
     3301      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3302      -1,    -1,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,
     3303      -1,    -1,   411,    -1,    48,    -1,    50,    -1,  1145,    53,
     3304      54,    55,    -1,    57,  1151,  1152,    -1,    -1,    -1,   570,
     3305      -1,    -1,    -1,    -1,    -1,    -1,    -1,   960,    72,    -1,
     3306      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3307      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3308      -1,   211,    -1,   213,   214,   215,  1193,    -1,    -1,    -1,
     3309      -1,   470,    -1,    -1,    -1,    -1,    -1,   618,   619,    -1,
     3310      -1,    -1,    -1,  1210,    -1,    -1,    -1,  1214,    -1,    -1,
     3311      -1,    -1,   633,    -1,    -1,  1018,  1019,   247,  1021,  1022,
     3312    1023,   251,    -1,    -1,    -1,    -1,  1233,    -1,  1235,    -1,
     3313     651,   510,    -1,    -1,    -1,   149,    -1,   267,    -1,  1042,
     3314      -1,    -1,    -1,   664,    -1,    -1,    -1,    -1,    -1,    -1,
     3315     671,    -1,    -1,    -1,    -1,  1262,    -1,    -1,    -1,    -1,
     3316      -1,    -1,    -1,    -1,    -1,    -1,  1273,  1274,  1275,    -1,
     3317      -1,    -1,  1075,  1076,    -1,    -1,    -1,    -1,  1285,  1286,
     3318      -1,    -1,    -1,  1086,    -1,   315,   707,    -1,    -1,   710,
     3319      -1,   570,  1299,    -1,    -1,    -1,   558,   559,    -1,    -1,
     3320     330,    -1,    -1,    -1,    -1,   335,   336,    -1,    -1,    -1,
     3321      -1,    -1,    -1,   343,    -1,    -1,  1323,    -1,    -1,    -1,
     3322      -1,    -1,    -1,   744,   586,    -1,    -1,   589,   590,    -1,
     3323     592,    -1,   594,   595,    -1,    -1,    -1,   599,   600,   618,
     3324     619,    -1,  1145,    -1,    -1,    -1,    -1,    -1,  1151,  1152,
     3325      -1,    -1,    -1,    -1,   633,   385,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,   786,    -1,    -1,    -1,    -1,
     3327      -1,    -1,    -1,   403,    -1,   796,    -1,    -1,    -1,   409,
     3328     801,   802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3329    1193,   812,    -1,    -1,    -1,    -1,   426,    -1,    -1,   429,
     3330     430,    -1,    -1,    -1,  1411,    -1,    -1,  1210,    -1,    -1,
     3331     324,  1214,   326,    -1,    -1,   445,   678,    -1,    -1,    -1,
     3332      -1,   683,   684,   337,   338,    -1,    -1,   689,    -1,   459,
     3333    1233,   710,  1235,    -1,    -1,    -1,   466,   351,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1456,
     3335      -1,    36,   873,    38,    -1,    -1,  1463,    -1,    -1,  1262,
     3336      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3337    1273,  1274,  1275,    -1,    59,    -1,   897,    -1,    -1,    -1,
     3338      65,    -1,  1285,  1286,    69,    -1,    -1,    72,    73,    74,
     3339      75,    76,    77,    -1,    79,    80,  1299,   411,    -1,  1506,
     3340      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3341      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3342    1323,   106,    -1,   802,    -1,   110,   111,   112,   113,   114,
     3343     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   960,
     3344      -1,    -1,    -1,    -1,    -1,   575,    -1,     0,    -1,    -1,
     3345       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3346      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3347      23,    24,    25,    26,    -1,   605,    29,    30,    31,    32,
     3348     610,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,   873,    -1,   510,  1018,  1019,    -1,
     3350    1021,  1022,  1023,    -1,    57,    -1,    -1,    60,  1411,    -1,
     3351      -1,    -1,    65,    -1,    67,    68,    69,    -1,   897,    -1,
     3352      -1,  1042,    -1,    76,    77,    10,    11,    12,    13,    14,
     3353      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3354      25,    26,    27,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3355     103,    -1,    37,  1456,  1075,  1076,   570,    -1,   111,    -1,
     3356    1463,    -1,    -1,    -1,    -1,  1086,    -1,   946,   698,    -1,
     3357      -1,    -1,    36,    -1,    38,    60,    -1,    -1,    -1,    -1,
     3358      -1,   960,   712,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3359      -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
     3360      -1,    65,   732,  1506,    -1,    69,    -1,   621,    72,    73,
     3361      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3362      -1,    -1,    -1,    87,  1145,    -1,    -1,    -1,    -1,    -1,
     3363    1151,  1152,    -1,    -1,    -1,   649,    -1,   101,    -1,   103,
     3364      -1,    -1,  1021,  1022,  1023,   109,   110,   111,   112,   113,
     3365     114,   115,    -1,   667,   668,    -1,    -1,   671,    -1,    -1,
     3366     790,    -1,    -1,  1042,    -1,    -1,    -1,    -1,    -1,    -1,
     3367     800,    -1,  1193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3368      -1,    -1,    -1,    -1,    -1,   699,    -1,   701,    -1,  1210,
     3369      -1,    -1,   822,  1214,   708,   709,    -1,    -1,    -1,   713,
     3370      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1086,    -1,    -1,
     3371      -1,   725,  1233,    -1,  1235,  1077,   730,    -1,    -1,    -1,
     3372      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3373     744,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3374     754,  1262,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3375      -1,    -1,  1273,  1274,  1275,    -1,    -1,    -1,    -1,    -1,
     3376      -1,    -1,    -1,    -1,  1285,  1286,    -1,    -1,    -1,    -1,
     3377      -1,    -1,  1151,  1152,    -1,    -1,    -1,    -1,  1299,    -1,
     3378      -1,    -1,    -1,    -1,    -1,   915,    -1,    -1,   802,    -1,
     3379      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3380      -1,    -1,  1323,    -1,    -1,    -1,    -1,   821,    -1,    -1,
     3381      -1,   941,    -1,  1192,  1193,    -1,    -1,    -1,    -1,    -1,
     3382      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383      -1,  1210,    -1,    -1,    -1,  1214,    -1,   967,    -1,    -1,
     3384     854,    -1,   856,   857,   858,    -1,    -1,   861,   862,  1211,
     3385      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3386    1239,    -1,   876,    -1,    -1,    -1,    -1,   997,    -1,    -1,
     3387      -1,    -1,    -1,    -1,   888,    -1,    -1,   891,    -1,    -1,
     3388      -1,    -1,    -1,   897,  1014,    -1,    -1,    -1,    -1,    -1,
     3389    1411,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390      -1,    -1,    -1,    -1,    -1,    -1,  1285,  1286,    -1,    -1,
     3391      -1,    -1,    -1,    -1,    -1,  1294,    -1,    -1,    -1,    -1,
     3392    1299,   935,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3393      -1,    -1,    -1,    -1,    -1,  1456,    -1,    -1,    -1,    -1,
     3394      -1,    -1,  1463,    -1,    -1,    -1,   960,    -1,    -1,    -1,
     3395      -1,    -1,    -1,  1083,    -1,  1334,    -1,    -1,    -1,   973,
     3396      -1,    -1,    -1,    -1,   978,    -1,    41,   981,    -1,    -1,
     3397    1100,   985,    -1,    -1,    -1,    -1,   990,    -1,    -1,    -1,
     3398     994,   995,   996,    -1,    -1,  1506,    -1,    -1,    -1,    -1,
     3399    1004,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3400    1014,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3401      -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1033,
     3402    1034,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3403      -1,    -1,  1411,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      -1,    -1,    -1,    -1,  1058,    -1,    -1,  1061,    -1,    -1,
     3405      -1,    -1,    -1,    -1,    -1,    -1,  1435,    -1,    -1,    -1,
     3406      -1,    -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3407      -1,    -1,  1086,    -1,    -1,   150,    -1,  1456,    -1,    -1,
     3408      -1,    -1,    -1,    -1,  1463,    -1,    -1,    -1,   163,    -1,
     3409      -1,  1105,    -1,    -1,    -1,    -1,    -1,  1111,  1112,    -1,
     3410      -1,    -1,    -1,    -1,    -1,    -1,  1120,    -1,    -1,    -1,
     3411     185,    -1,  1126,    -1,    -1,  1129,    -1,  1131,    -1,    -1,
     3412    1134,    -1,    -1,    -1,   199,    -1,    -1,  1506,    -1,    -1,
     3413      -1,  1145,   207,    -1,    -1,  1149,    -1,    -1,    -1,    -1,
     3414      -1,    -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3415      -1,    -1,  1166,   228,  1168,  1169,  1170,  1171,    -1,    -1,
     3416      -1,    -1,    -1,    -1,  1294,   240,    -1,    -1,    -1,    -1,
     3417     245,  1185,    -1,  1187,    -1,    -1,    -1,  1191,    -1,    -1,
     3418      -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,    -1,   264,
     3419      -1,   266,    -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,
     3420      -1,    -1,    -1,    -1,    -1,  1219,  1220,   282,    -1,    -1,
     3421       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3422      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3423      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
     3424      -1,    -1,    35,    -1,    37,    -1,    -1,    -1,   323,    -1,
     3425      -1,    -1,    -1,    -1,    -1,    -1,  1270,  1271,    -1,    -1,
     3426      -1,    -1,  1276,  1277,    -1,    -1,    -1,    60,    -1,    -1,
     3427      -1,    -1,    -1,  1287,    67,    68,    -1,   352,    71,    -1,
     3428      -1,   356,   357,    -1,   359,    -1,    -1,    -1,    -1,    -1,
     3429     365,   366,    -1,   368,   369,    -1,   371,    -1,   373,    -1,
     3430      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3431     103,    -1,    -1,    -1,    -1,   390,    -1,    -1,   111,    -1,
     3432      -1,    -1,    -1,   398,  1338,    -1,    -1,    -1,    -1,    -1,
     3433      -1,    36,    37,    38,    -1,    -1,  1350,    -1,    -1,    -1,
     3434    1354,  1355,  1356,    -1,    -1,    -1,    -1,   422,    -1,    -1,
     3435      -1,    -1,  1366,    -1,    59,    60,    -1,    -1,   433,    -1,
     3436      65,  1375,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     3437      75,    76,    77,    -1,    79,    80,    -1,  1391,    -1,    -1,
     3438      -1,   456,    87,    -1,    -1,    -1,    -1,   462,    -1,    -1,
     3439      -1,    -1,   467,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3440      -1,    -1,    -1,  1533,    -1,   110,   111,   112,   113,   114,
     3441     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   503,  1443,
     3443    1444,    -1,    -1,    -1,    -1,    -1,    -1,   149,    -1,    -1,
     3444      -1,    -1,  1456,   518,    -1,    -1,    -1,    -1,    -1,  1463,
     3445      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3446      20,    21,    22,    23,    24,    25,    26,    27,   180,    29,
     3447      30,    31,    -1,    -1,    -1,   187,  1490,    37,    -1,   554,
     3448      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   563,    -1,
     3449     565,    -1,    -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,
     3450      60,    -1,    -1,    -1,  1518,    -1,    -1,    67,    68,   584,
     3451      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3452      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1543,
     3453      -1,    -1,    -1,    -1,  1548,    -1,    -1,    -1,    -1,    -1,
     3454      -1,   101,    -1,   103,   256,    -1,    -1,    -1,   623,    -1,
     3455      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
    29433456       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    29443457      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2945       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2946        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2947        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2948        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2949        0,   199,   200,   455,     2,   198,     4,     5,     6,     7,
     3458      24,    25,    26,    -1,   659,    29,    30,    31,    32,    -1,
     3459      -1,    35,    -1,    37,    38,    -1,    -1,    -1,   310,    -1,
     3460      -1,    -1,    -1,    -1,    -1,    -1,   318,   319,    -1,   321,
     3461     322,    -1,   324,    57,    -1,    -1,    60,   329,    -1,    -1,
     3462      -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
     3463      -1,    -1,    76,    77,    -1,    -1,   348,    -1,    -1,   351,
     3464      -1,   716,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3465      -1,   726,   727,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3466      -1,    -1,    -1,   738,    -1,   377,    -1,   111,    -1,   381,
     3467      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3468     755,    -1,   757,    -1,    -1,    -1,   761,    -1,    -1,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   411,
     3470      -1,    36,    37,    38,    10,    11,    12,    13,    14,    15,
     3471      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3472      26,    -1,   434,    -1,    59,    60,    -1,    -1,    -1,    -1,
     3473      65,    37,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     3474      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3475      -1,   826,    87,   465,    60,    -1,   468,    -1,   833,    -1,
     3476      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3477      -1,   846,    -1,   848,    -1,   110,   111,   112,   113,   114,
     3478     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   863,    -1,
     3479      -1,    -1,    -1,    -1,   869,   507,    -1,    -1,   510,    -1,
     3480      -1,    -1,    -1,    -1,    -1,    -1,   881,    -1,    -1,   884,
     3481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    -1,   902,    -1,    -1,
     3483      -1,    -1,    -1,   908,    -1,    -1,    -1,    -1,    -1,    -1,
     3484      -1,    -1,   554,   555,    -1,    -1,    -1,    -1,    -1,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,   140,    -1,   570,    -1,
     3486     572,    -1,    -1,    -1,    -1,   149,    -1,    -1,   580,    -1,
     3487      -1,   583,    -1,   585,   586,    -1,    -1,   161,    -1,    -1,
     3488     592,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3489     602,   603,    -1,    -1,    -1,    -1,   608,    -1,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,    -1,   618,   619,    -1,    -1,
     3491      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   993,    -1,
     3492      -1,   633,    -1,    -1,   999,  1000,   638,   639,    -1,    -1,
     3493     642,   643,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3494      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3495      23,    24,    25,    26,   666,    -1,    29,    30,    31,   671,
     3496     672,    -1,   674,    -1,    37,    -1,   678,    -1,   252,    -1,
     3497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498    1055,    -1,    -1,    -1,    -1,    -1,  1061,    60,    -1,    -1,
     3499      -1,    -1,    -1,    -1,    67,    68,    -1,    -1,   710,   711,
     3500      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3501      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3502      27,  1096,    29,    30,    31,    -1,  1101,    -1,    -1,    -1,
     3503      37,    -1,   744,    -1,  1109,    -1,   748,   749,   111,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3505      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3506      67,    68,    69,  1138,    71,    -1,    -1,   351,    -1,    76,
     3507      77,    -1,    -1,    -1,    -1,    -1,   360,    -1,   790,    -1,
     3508    1155,    -1,    -1,  1158,    -1,  1160,    -1,    -1,    -1,    -1,
     3509     802,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   811,
     3510      -1,   813,  1177,  1178,   111,    -1,    -1,    -1,    -1,    -1,
     3511     822,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3512      -1,    -1,    -1,  1198,    -1,    -1,   410,    -1,    -1,    -1,
     3513      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3514      -1,   853,    -1,    -1,    -1,    -1,    -1,   431,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,  1230,    -1,    -1,    -1,    10,
     3516      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3517      21,    22,    23,    24,    25,    26,   460,    -1,    29,    30,
     3518      31,    -1,    -1,    -1,    -1,   897,    37,    38,    -1,    -1,
     3519     902,   903,    -1,    -1,    -1,    -1,    -1,    -1,   910,    -1,
     3520      -1,    -1,    -1,   915,    -1,    -1,    -1,    -1,    -1,    60,
     3521      -1,   923,    -1,    -1,   498,    -1,    67,    68,    -1,    -1,
     3522      -1,    -1,    -1,    -1,   936,   937,   510,    -1,    -1,    -1,
     3523      -1,    -1,    -1,   517,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    -1,    -1,    -1,    -1,    -1,   530,   531,   960,    -1,
     3525      -1,    -1,   103,    -1,  1329,   967,  1331,    -1,    -1,    -1,
     3526     111,    -1,   974,    -1,    -1,    -1,    -1,  1342,   552,  1344,
     3527      -1,    -1,    -1,    -1,   986,   987,    -1,    -1,   562,    -1,
     3528     992,    -1,   994,    -1,    -1,    36,   570,    38,    -1,  1364,
     3529      -1,    -1,    -1,  1005,  1006,    -1,  1008,  1009,  1010,    -1,
     3530      -1,    -1,    -1,    -1,    -1,  1380,    -1,    -1,    59,  1021,
     3531    1022,  1023,    -1,    -1,    65,    -1,    -1,  1392,    69,    -1,
     3532    1395,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3533      -1,    -1,    -1,    -1,    -1,    -1,    87,   621,    -1,    -1,
     3534      -1,    -1,  1417,    -1,   628,    -1,    -1,    -1,    -1,    -1,
     3535     101,  1426,   103,    -1,  1429,  1430,    -1,    -1,    -1,   110,
     3536     111,   112,   113,   114,   115,   649,  1078,    -1,    -1,    -1,
     3537      -1,  1083,    -1,   124,  1086,  1087,  1088,  1089,    -1,   268,
     3538     269,   270,   271,    -1,    -1,    -1,    -1,   671,  1100,   278,
     3539     279,    -1,  1467,    -1,   283,   284,  1471,    -1,    -1,    -1,
     3540      -1,    -1,    -1,    -1,    -1,    -1,   295,    -1,  1483,    -1,
     3541    1122,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3542      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3543      -1,    -1,    -1,  1145,    -1,   324,    59,    -1,  1150,  1151,
     3544    1152,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3545      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3546     744,    -1,   746,    -1,    87,    -1,    -1,    -1,   752,    -1,
     3547      -1,    -1,   361,    -1,    -1,    -1,   760,    -1,   101,    -1,
     3548     103,    -1,   105,   106,    -1,    -1,    -1,   110,   111,   112,
     3549     113,   114,   115,    -1,    -1,    -1,    -1,    -1,  1210,    -1,
     3550      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3551      -1,    -1,  1224,   797,    -1,    -1,   800,   801,   802,    -1,
     3552      -1,    -1,    -1,  1235,    -1,    -1,    -1,    -1,    -1,    -1,
     3553      -1,    -1,    -1,    -1,    -1,    -1,    -1,   821,    10,    11,
     3554      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3555      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3556      32,    33,    34,    -1,    36,    37,    38,    -1,    -1,    -1,
     3557      -1,    -1,    -1,  1285,  1286,    -1,    -1,    -1,   862,    -1,
     3558      -1,    -1,   866,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3559      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
     3560      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3561    1322,    -1,    -1,   897,    -1,    87,    -1,    -1,    -1,    -1,
     3562      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3563      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3564     112,   113,   114,   115,   533,   534,   535,   536,   537,   538,
     3565     539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
     3566     549,   550,    -1,   947,    36,    -1,    38,    -1,    -1,    -1,
     3567      -1,    -1,  1384,    -1,    -1,    -1,   960,   961,    -1,    -1,
     3568      -1,    -1,    -1,   572,   968,    -1,    -1,    59,    -1,    -1,
     3569      -1,   975,    -1,    65,   978,    -1,   980,    69,    -1,  1411,
     3570      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3571      -1,    -1,    -1,   997,    -1,    87,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3573    1014,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
     3574     112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    -1,  1037,    -1,  1039,    -1,    -1,    -1,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3577    1054,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,  1491,
     3578      -1,    -1,    -1,    -1,   673,    -1,    -1,    -1,    -1,  1073,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,
     3580    1512,  1513,  1086,    65,    -1,    -1,   695,    69,    -1,    -1,
     3581      72,    73,    74,    75,    76,    77,    -1,    79,    80,   708,
     3582      -1,  1533,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3584    1124,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,
     3585     112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
     3586      -1,  1145,   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3587      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1163,
     3588      -1,  1165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3589      -1,    -1,    -1,    -1,   783,     3,     4,     5,     6,     7,
    29503590       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2951       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2952       26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2953        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2954        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2955       33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
    2956      198,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2957       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2958       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2959        0,     0,    30,     8,     9,    10,    11,    12,    13,    14,
     3591      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3592      -1,    29,    30,    31,    -1,    -1,  1210,    -1,    -1,    37,
     3593      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3594      -1,  1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3596      68,    -1,    -1,    -1,  1248,    -1,    -1,    -1,     3,     4,
     3597       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    29603598      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2961        0,     0,    25,    26,    27,    33,     0,    34,     0,    35,
    2962       30,     0,   199,   200,     0,     0,     0,     0,     0,     0,
    2963        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2964        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2965      199,   200
    2966 };
    2967 
    2968 #define yypact_value_is_default(yystate) \
    2969   ((yystate) == (-1306))
    2970 
    2971 #define yytable_value_is_error(yytable_value) \
    2972   YYID (0)
    2973 
    2974 static const yytype_int16 yycheck[] =
    2975 {
    2976        1,    42,     0,    32,     0,    42,    42,   412,   112,     1,
    2977        0,     1,   674,   346,     0,   178,   211,   350,   178,   270,
    2978      674,   178,   519,   178,   875,   674,   178,   178,   433,   178,
    2979      605,   443,   557,    31,  1024,    31,   163,   331,   587,   629,
    2980      269,    31,   587,   875,    42,    31,    44,   180,    44,     0,
    2981      436,   735,   102,   753,   585,     0,    54,   179,   179,    31,
    2982      433,   437,    60,   621,    60,    63,     0,    63,    66,   984,
    2983       66,   556,   556,    63,    66,   470,    66,   635,   326,   556,
    2984       31,   585,   585,   977,    42,   283,    31,   103,   750,   193,
    2985      106,  1336,   255,    42,   399,   255,   750,    31,   255,   585,
    2986      255,   750,    65,   255,   255,   103,   255,   480,   106,   699,
    2987      585,   484,    63,   418,   112,  1044,  1421,    65,   251,   252,
    2988       75,   426,  1037,   509,    37,     0,     1,   588,   101,    52,
    2989       27,    37,    42,   594,   256,   256,   246,   178,  1417,   585,
    2990       65,   178,   178,    42,    43,   143,    67,   143,   111,   123,
    2991       71,    89,    78,    74,   712,    76,    31,   155,   585,   155,
    2992      620,   621,    83,   407,   408,    65,    37,   196,  1023,  1024,
    2993      101,    94,    42,    43,    71,   635,   124,   115,    65,   105,
    2994      178,   179,   476,   179,     4,     5,     6,     7,     8,     9,
    2995      103,    66,  1437,  1044,   210,   193,   391,    42,    43,   124,
    2996     1505,    65,  1481,   103,   202,  1510,   202,    89,   107,   407,
    2997      408,    65,   210,    44,   255,   213,   103,   213,   255,   255,
    2998      178,  1526,   470,   213,   102,   620,   621,  1510,  1533,   178,
    2999      101,   109,   103,   115,   720,   101,   106,   478,   482,   103,
    3000      635,   242,    62,   241,    64,   241,   262,  1237,    57,   103,
    3001     1533,   241,   712,   269,    88,   241,   500,   255,   256,    37,
    3002      256,   106,   213,   186,   262,   387,   387,   792,   178,   241,
    3003       44,   269,   101,   377,   720,   824,   104,   108,   673,   824,
    3004      108,   282,   813,   616,   205,   208,   986,   270,   122,   399,
    3005      241,   106,   101,   720,   123,   218,   241,   495,  1288,     0,
    3006      498,   405,   108,   501,   124,   220,   410,   241,   418,   813,
    3007      813,   142,   246,     3,   436,   436,   426,   712,   694,   317,
    3008      564,   317,   237,   101,     3,   103,   574,   813,    37,    37,
    3009       31,   347,   330,   331,   108,   351,   108,    37,   813,     0,
    3010        1,    65,   108,    67,    68,   101,   468,   468,   589,   347,
    3011        0,   746,   593,   351,   815,   553,  1250,   605,   124,   108,
    3012      283,   666,   610,    83,    84,  1216,   241,   813,   142,  1053,
    3013       31,   202,  1301,   614,   668,   124,   121,   618,   123,   377,
    3014      905,   332,   106,    44,  1216,    65,   813,    67,    68,   387,
    3015      939,   387,   101,   101,   103,   103,     0,   102,   118,   119,
    3016      102,   101,    63,   103,   109,    66,   108,   405,  1484,   679,
    3017      102,   681,   410,   334,  1490,   336,   875,   109,   904,   904,
    3018      904,   996,    75,  1413,   675,   673,   106,   904,   202,   123,
    3019      261,  1507,  1287,  1288,   938,   938,  1512,    65,   436,    67,
    3020       68,    10,    11,    12,    13,    14,   697,   108,  1510,   102,
    3021     1301,   107,   113,   108,   455,   286,   104,   108,   904,   102,
    3022      108,   101,   460,   938,  1526,   399,   109,  1025,    37,   124,
    3023      468,  1533,   468,   124,   472,   103,   472,   904,   476,   104,
    3024      123,   142,   472,   108,   418,   982,   472,   261,  1403,  1404,
    3025      495,    60,   426,   498,   155,   326,   501,   108,   746,   500,
    3026      423,   422,   101,   630,   103,   734,   639,   101,   108,   283,
    3027      461,   674,   286,   124,   674,   516,   101,   674,   519,   674,
    3028      521,   472,   674,   674,   124,   674,   108,   472,   101,  1458,
    3029      824,   917,   582,   637,   457,  1125,  1465,   101,   472,   925,
    3030      241,   202,   124,   108,   949,   246,    78,    79,    80,  1010,
    3031     1011,   108,   213,  1102,   676,   676,   666,   111,  1413,   124,
    3032     1085,   101,   116,   117,   101,  1025,   108,   124,   569,   101,
    3033      231,   103,   495,   105,   947,   498,   407,   408,   501,  1508,
    3034      241,   412,   124,   969,   582,   108,   102,   585,  1047,   587,
    3035      606,   101,   253,   103,   108,  1153,  1154,   472,     1,   709,
    3036      261,   124,   433,   108,   102,   846,   622,  1458,   606,    65,
    3037      124,    67,   102,    69,  1465,   102,   108,  1301,   634,   124,
    3038       76,    77,   283,   102,   622,   286,   102,   572,  1023,   108,
    3039     1025,    44,   124,   407,   408,   636,   634,   638,   412,   637,
    3040      102,    44,   102,   102,   104,   101,   108,    60,   108,   943,
    3041       63,   482,   101,    66,   103,   111,   607,  1508,   101,   433,
    3042      103,   994,   111,   123,   124,   326,   861,   101,   111,   500,
    3043      668,   332,   101,    65,   102,    67,   674,    69,   676,    65,
    3044      108,    67,    68,   102,    76,    77,   101,   882,   103,   108,
    3045       57,   102,   675,  1153,  1154,  1379,   111,   108,   399,   102,
    3046      104,   653,   101,   944,   108,   108,   707,   102,   482,   101,
    3047      103,   103,   105,   108,   697,   101,   109,   418,   734,   111,
    3048      106,   495,   720,   721,   498,   426,   500,   501,   102,   652,
    3049      143,   102,   666,   564,   108,   124,   734,   108,   101,   142,
    3050      663,   868,   155,   574,   667,   101,   407,   408,   996,   700,
    3051      104,   412,  1147,   106,   108,   102,    29,  1216,  1153,  1154,
    3052      810,   108,   101,   714,   102,    65,   179,    67,    68,   470,
    3053      108,   472,   433,   434,   605,   709,   437,   106,  1462,   610,
    3054     1464,   124,   443,     4,     5,     6,     7,     8,     9,   202,
    3055      564,  1085,   102,   124,   197,   917,   917,   124,   108,   202,
    3056      213,   101,   785,   925,   925,   855,   106,    80,    81,   470,
    3057      106,   472,  1145,   101,   102,   813,  1228,    65,   103,  1152,
    3058      105,   482,  1227,   102,   109,  1509,   824,   102,   231,   108,
    3059      113,   114,   102,   108,   495,   101,   788,   498,   108,   500,
    3060      501,    62,   102,    64,   102,    75,   798,   102,   108,   102,
    3061      108,   802,  1514,   108,   121,   108,  1315,   120,   261,   804,
    3062     1514,   264,   814,   112,   101,  1514,   103,  1118,    10,    11,
    3063       12,    13,    14,    65,   875,    67,    68,    69,    85,    86,
    3064      283,   864,    87,   286,    65,   875,    67,    68,   542,   543,
    3065      544,   545,  1287,  1226,    65,    37,    67,    68,   101,  1147,
    3066      103,   123,   900,   564,   317,   103,   904,   905,   101,   102,
    3067      103,  1323,  1039,   574,  1373,   104,   577,  1376,    60,   917,
    3068      101,   101,   452,   326,   875,   106,   976,   925,   102,   101,
    3069      875,   103,  1183,  1184,    81,    82,    10,    11,    12,    13,
    3070       14,   875,   102,   346,   605,   943,  1322,   350,   102,   610,
    3071      101,   102,   103,   101,   899,   103,   948,   102,   948,   101,
    3072      233,   103,  1421,    37,    65,   666,    67,  1426,    69,   111,
    3073      102,   101,   673,   103,   387,    76,    77,   102,   979,   902,
    3074      101,   982,   103,   984,   103,  1014,    60,   123,   101,  1237,
    3075      103,  1324,   108,  1452,   108,   109,   994,   106,  1196,  1197,
    3076      875,  1199,   101,   986,   407,   408,  1110,  1205,   709,   412,
    3077     1208,    65,   673,    67,   102,    69,  1392,   101,   102,   103,
    3078      102,  1433,    76,    77,   101,   102,   103,   101,   104,   103,
    3079      433,   434,   104,   694,   437,   104,  1037,   111,   109,  1089,
    3080      443,  1256,  1257,  1258,   109,   746,  1047,   101,   999,  1050,
    3081     1051,  1052,   455,   714,  1044,   102,   103,   111,  1041,  1471,
    3082       54,    55,   108,   109,   108,  1524,    42,    43,  1020,  1021,
    3083       28,  1530,    75,   948,  1124,   538,   539,   480,   102,   482,
    3084     1539,   484,   540,   541,  1543,   746,   102,  1085,   108,   362,
    3085      104,   108,   495,  1044,  1470,   498,   109,   500,   501,  1044,
    3086      546,   547,    65,   107,   452,   102,    69,  1493,   107,   107,
    3087     1044,   101,  1110,    76,    77,   102,   124,  1522,   949,    75,
    3088      102,   102,  1498,   653,   109,  1077,  1078,   102,   102,   102,
    3089      108,   101,  1055,   104,   102,  1118,   102,   102,   101,    28,
    3090      103,   802,   104,  1088,   101,   104,   107,   102,   111,  1535,
    3091      102,   102,     4,     5,     6,     7,     8,     9,   102,   102,
    3092      102,   564,   102,   102,   102,   996,  1417,   104,   441,  1044,
    3093      123,   574,   102,   446,   875,   949,   102,  1375,   102,   582,
    3094       32,   104,    10,    11,    12,    13,    14,     3,   102,   102,
    3095      107,   102,   108,   102,    10,    11,    12,    13,    14,   104,
    3096     1183,  1184,   605,  1195,  1194,  1195,   479,   610,   481,    37,
    3097       62,   104,    64,   616,   875,  1216,   102,   108,   102,   101,
    3098      108,    37,   109,   106,   104,   104,  1216,   108,  1226,  1480,
    3099     1481,   104,    60,   102,    65,   102,    67,    68,    69,   104,
    3100      108,   102,   108,  1194,    60,    76,    77,   272,   104,  1241,
    3101      101,  1241,   101,   101,   101,  1256,  1257,  1258,   788,   101,
    3102      285,   286,   124,   107,   102,  1216,   102,   104,   798,     3,
    3103      101,  1216,   297,   101,   107,   103,    10,    11,    12,    13,
    3104       14,   102,  1216,   111,   814,   124,   121,   948,   949,   106,
    3105      108,   694,  1396,   104,   108,   104,    65,   102,    67,   102,
    3106       69,   326,   104,    37,   104,   653,  1296,    76,    77,   104,
    3107      102,  1301,  1264,   104,  1315,   102,   104,    45,   104,   102,
    3108     1195,   724,   106,  1275,  1276,  1277,    60,   124,   124,   107,
    3109      124,   124,   101,   104,   103,   996,  1386,   107,   363,   124,
    3110      109,  1216,   111,  1044,  1336,  1296,  1336,   102,   104,   107,
    3111     1301,  1514,   104,   626,  1514,   104,  1301,  1514,   104,  1514,
    3112      104,   104,  1514,  1514,   104,  1514,  1241,  1301,   104,   102,
    3113      102,    55,  1373,  1325,   104,  1376,   101,   104,   101,  1395,
    3114       54,   102,   104,  1044,   102,   124,  1309,   106,  1386,  1493,
    3115       75,   102,   109,  1515,  1515,   102,  1227,  1395,  1396,   104,
    3116      104,     3,  1403,  1404,   102,   104,   102,   810,    10,    11,
    3117       12,    13,    14,  1535,  1535,   101,   689,    89,   107,    65,
    3118     1421,    67,   695,    69,   104,  1426,  1301,   102,     0,     1,
    3119       76,    77,   102,   102,  1417,    37,   102,   108,   102,     0,
    3120      788,    40,   109,   124,    89,  1437,  1147,  1437,   124,   106,
    3121      798,  1452,   855,  1227,   102,   101,   124,   103,    60,    31,
    3122       32,  1336,    75,   124,   102,   111,   814,   109,  1458,   104,
    3123       31,   107,    44,  1514,   104,  1465,   101,  1514,  1514,   107,
    3124      124,    42,   102,    44,   107,   124,  1147,   102,   649,   548,
    3125     1020,  1021,   549,  1494,    66,  1493,   551,  1480,  1481,    60,
    3126      550,   552,    63,  1126,  1505,    66,  1216,  1458,  1381,  1510,
    3127      535,   536,   537,  1458,  1465,  1216,  1514,  1515,  1508,  1515,
    3128     1465,  1481,  1543,  1524,  1458,  1526,  1310,  1496,  1120,  1530,
    3129      102,  1465,  1533,  1194,  1195,  1121,  1237,  1535,  1539,  1535,
    3130     1073,  1465,  1543,  1466,   947,   948,   949,  1077,  1078,   574,
    3131      925,   446,   681,   970,   927,  1216,   434,  1508,   434,   569,
    3132      868,   631,  1437,  1508,   945,   724,  1227,  1228,  1241,   472,
    3133      734,   143,  1495,   976,  1508,    -1,  1237,    -1,    -1,   151,
    3134     1241,    -1,   143,  1458,    -1,    -1,    -1,    -1,    -1,    -1,
    3135     1465,   994,    65,   996,   155,   868,    69,    -1,    -1,    -1,
    3136     1301,   874,    -1,    76,    77,    -1,    -1,   179,    -1,    -1,
    3137       -1,  1534,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,
    3138       -1,   193,    -1,  1546,   196,   197,    -1,    -1,   101,    -1,
    3139      202,    -1,    65,  1508,    67,  1296,    69,    -1,   111,    -1,
    3140     1301,   202,    -1,    76,    77,    -1,    -1,    -1,    -1,    54,
    3141      222,    -1,   213,    -1,   226,    65,   228,    67,    68,    69,
    3142       -1,  1322,  1323,   235,    -1,    -1,    76,    77,   101,   241,
    3143      103,    -1,  1020,  1021,   246,  1336,    -1,    65,   111,    -1,
    3144      241,    69,    -1,    -1,   256,   710,  1089,    -1,    76,    77,
    3145       -1,  1522,   264,  1467,   255,    -1,    -1,   970,   103,    -1,
    3146       -1,   106,    -1,    -1,    -1,  1235,    -1,    65,    -1,    -1,
    3147       -1,    69,    -1,   101,    -1,   103,    -1,    -1,    76,    77,
    3148       -1,  1124,  1496,   111,    -1,    -1,    -1,    -1,   753,  1077,
    3149     1078,  1392,    -1,    -1,  1264,    -1,    -1,    -1,    -1,    -1,
    3150       63,    -1,  1145,   101,    -1,  1275,  1276,  1277,  1522,  1152,
    3151       -1,    -1,     0,   111,   326,    -1,   317,  1458,    -1,    -1,
    3152       -1,   333,    -1,    -1,  1465,    -1,    -1,    -1,    -1,    -1,
    3153      331,    -1,  1433,    -1,   346,    -1,  1437,    -1,   350,    -1,
    3154       -1,   353,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
    3155      113,    -1,    -1,    -1,    -1,  1325,    -1,  1458,    -1,    -1,
    3156     1073,    -1,    -1,    -1,  1465,   210,  1467,  1508,    -1,  1470,
    3157     1471,    -1,    -1,  1086,  1087,    -1,    -1,    -1,    66,    -1,
    3158       -1,    -1,    -1,  1226,  1227,  1228,   387,   399,    -1,    -1,
    3159       -1,    -1,   155,    -1,    -1,  1496,    -1,  1498,  1241,    -1,
    3160       65,   413,    67,    68,    69,    -1,   418,  1508,    -1,    -1,
    3161       -1,    76,    77,    -1,   426,    -1,    -1,   262,    -1,    -1,
    3162       -1,  1522,    -1,    -1,   269,   890,    -1,    -1,    -1,    -1,
    3163       -1,    -1,    63,    -1,    -1,   436,   101,    -1,    -1,    -1,
    3164      452,    -1,    73,   455,    -1,    -1,    -1,  1235,    -1,    -1,
    3165      213,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   470,    -1,
    3166      472,    -1,    -1,   151,    -1,    -1,    -1,    -1,   480,    -1,
    3167       -1,   472,   484,    -1,    -1,   476,  1264,  1190,    -1,  1322,
    3168     1323,  1324,   113,    -1,    -1,   330,   249,  1275,  1276,  1277,
    3169      253,    -1,    -1,  1336,    -1,    -1,    -1,    -1,    -1,    -1,
    3170      512,    -1,   347,    -1,    -1,    -1,   351,    90,    91,    92,
    3171       93,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
    3172       -1,    -1,    -1,    -1,   155,    -1,    -1,    -1,    -1,    -1,
    3173       -1,   996,    -1,    -1,   222,    -1,    -1,  1325,    -1,    -1,
    3174      123,    -1,    -1,  1386,    -1,   557,    -1,    -1,    -1,  1392,
    3175       -1,    -1,    -1,   241,    -1,    -1,    -1,    -1,   246,    -1,
    3176      572,    -1,   574,    -1,    -1,    -1,    -1,    -1,    -1,   332,
    3177      582,    -1,    -1,    -1,    -1,   587,    -1,    -1,    -1,  1044,
    3178       -1,     0,   213,    -1,   585,    -1,   587,    -1,    -1,    -1,
    3179     1433,    -1,    -1,   605,  1437,    -1,    -1,    -1,   610,    -1,
    3180       -1,    -1,    -1,    -1,   616,    -1,    -1,    -1,   620,   621,
    3181       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,   249,    -1,
    3182       -1,    -1,   253,   635,  1467,    -1,    -1,  1470,  1471,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   269,    -1,
    3184       -1,   653,    -1,    -1,    -1,   333,    -1,    66,   411,    -1,
    3185       -1,    -1,    -1,  1496,   666,  1498,    -1,    -1,    -1,    -1,
    3186       -1,   673,    -1,    -1,   676,   353,    -1,   668,    -1,   182,
    3187       -1,    -1,    -1,   674,    -1,   676,   189,  1390,    -1,  1522,
    3188       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3189       -1,    -1,    -1,    -1,    -1,    -1,    -1,   709,   461,    -1,
    3190      712,   332,    -1,  1168,    -1,    -1,    -1,    -1,    -1,   721,
    3191       -1,   399,   724,    -1,    -1,    -1,    -1,    -1,    -1,   720,
    3192      721,    -1,    -1,    -1,    -1,   413,    -1,    -1,    -1,    -1,
    3193      418,    -1,   151,    -1,   746,    -1,    -1,   582,   426,   751,
    3194       -1,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,
    3195       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3196       -1,   606,    -1,    -1,   452,    -1,    10,    11,    12,    13,
    3197       14,    -1,    -1,    -1,    -1,    -1,   788,   622,    -1,    -1,
    3198      411,    -1,   470,    -1,   472,    -1,   798,    -1,    -1,   634,
    3199       -1,   803,   804,    37,    -1,    -1,    -1,   428,   810,   312,
    3200       -1,    -1,   814,    -1,    -1,    -1,    -1,   320,    -1,    -1,
    3201      323,   823,   813,    -1,   577,    -1,    60,    -1,    -1,    -1,
    3202       -1,    65,   241,   824,   512,    69,    -1,   246,    -1,    -1,
    3203      461,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
    3204       -1,    -1,    -1,   855,   607,    -1,    -1,    -1,    -1,   612,
    3205       -1,    -1,    10,    11,    12,    13,    14,   101,    -1,   103,
    3206       -1,    -1,    -1,   875,    -1,    -1,   379,   111,    -1,    -1,
    3207      383,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3208       -1,    -1,    -1,    -1,   572,    -1,    -1,   899,    -1,   734,
    3209       -1,    -1,    -1,   905,    -1,    -1,    -1,    -1,    -1,    -1,
    3210       -1,    -1,    60,   904,   905,    -1,    -1,    65,    -1,    67,
    3211       -1,    69,    -1,    -1,   333,    -1,   917,    -1,    76,    77,
    3212       -1,    -1,    -1,    -1,   925,    -1,    -1,   939,    -1,    -1,
    3213       -1,    -1,   620,   621,   353,   947,   948,   700,    -1,    -1,
    3214       -1,    -1,   943,   101,    -1,   103,   577,   635,    -1,    -1,
    3215      962,   714,    -1,   111,   467,    -1,    -1,    -1,    -1,    -1,
    3216       -1,    -1,    -1,    -1,   976,   653,    -1,    -1,    -1,    -1,
    3217       -1,    -1,    -1,    -1,    -1,    -1,   607,    -1,   666,    -1,
    3218      399,   612,   994,    -1,   996,   673,    -1,    -1,    -1,    -1,
    3219       -1,    -1,    -1,    -1,   413,    -1,    -1,     0,    -1,   418,
    3220       -1,    -1,  1014,    -1,    -1,    -1,    -1,   426,  1020,  1021,
    3221       -1,  1023,  1024,  1025,    -1,    -1,    -1,    -1,    -1,    -1,
    3222       -1,   709,    -1,    -1,   712,    -1,    -1,    -1,    31,    -1,
    3223       -1,    -1,  1044,   452,    -1,    -1,    -1,    -1,    -1,   802,
    3224       -1,    -1,    -1,   556,   557,    -1,    -1,    -1,    -1,    -1,
    3225       -1,   470,    -1,   472,    -1,   900,    -1,    -1,   746,    -1,
    3226       -1,    -1,    -1,    66,    -1,  1077,  1078,    -1,    -1,   700,
    3227       -1,    -1,    -1,    -1,    -1,    -1,  1088,  1089,    -1,    -1,
    3228       -1,    -1,    -1,   714,  1085,    -1,    -1,    -1,    -1,    -1,
    3229       -1,    -1,    -1,   512,    -1,    10,    11,    12,    13,    14,
    3230      788,    -1,    -1,   734,    -1,    -1,    -1,    -1,    -1,    -1,
    3231      798,    -1,  1124,    -1,    -1,   803,   804,    -1,    25,    26,
    3232       27,    -1,    37,    -1,    -1,    -1,   814,   640,    -1,    -1,
    3233       -1,   644,    -1,  1145,    -1,  1147,    -1,    -1,    -1,    -1,
    3234     1152,  1153,  1154,    -1,    -1,    60,    -1,    -1,   151,   994,
    3235       65,    -1,    67,   572,    69,   668,    -1,    -1,    -1,    -1,
    3236       -1,    76,    77,    -1,    -1,    -1,    -1,   680,    -1,    -1,
    3237       -1,   802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3238       -1,    -1,    -1,  1195,    -1,    -1,   101,   875,    95,    -1,
    3239       97,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3240     1212,   620,   621,    -1,  1216,    -1,    -1,    -1,    -1,    -1,
    3241       -1,   899,    -1,    -1,  1226,    -1,   635,    -1,    -1,    -1,
    3242        0,     1,    -1,  1235,    -1,  1237,    -1,    -1,    -1,  1241,
    3243       -1,    -1,    -1,    -1,   653,    -1,   999,    -1,   241,    -1,
    3244       -1,    -1,    -1,   246,    -1,    -1,    -1,   666,    -1,    -1,
    3245       -1,    31,  1264,    -1,   673,    -1,    -1,    -1,    -1,    -1,
    3246       -1,    -1,    -1,  1275,  1276,  1277,    -1,    -1,   175,    -1,
    3247       -1,    -1,    -1,    -1,   962,  1287,  1288,   184,   185,   792,
    3248       -1,    -1,   189,    63,   191,   192,    66,    -1,    -1,  1301,
    3249      709,    -1,    -1,   712,     0,    10,    11,    12,    13,    14,
    3250       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3251       25,    26,  1324,  1325,    29,    30,    31,    32,    33,    34,
    3252       -1,    -1,    37,    -1,  1336,    31,    -1,   746,    -1,    -1,
    3253      333,    -1,  1020,  1021,    -1,  1023,  1024,  1025,    -1,    -1,
    3254       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3255      353,    -1,    67,    68,    -1,    -1,  1044,    -1,    -1,    -1,
    3256       66,    10,    11,    12,    13,    14,    -1,    -1,   999,   788,
    3257       -1,   151,    -1,    -1,  1386,    -1,    -1,    -1,    -1,   798,
    3258       -1,  1226,    -1,    -1,   803,   804,    -1,    -1,    37,  1077,
    3259     1078,   904,   905,    -1,    -1,   814,   399,    -1,    -1,   912,
    3260     1088,  1413,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3261      413,    60,    -1,    -1,    -1,   418,    65,    -1,    67,    -1,
    3262       69,    -1,    -1,   426,    -1,  1437,    -1,    76,    77,    -1,
    3263       -1,  1194,    -1,   213,    -1,    -1,    -1,    -1,    -1,    -1,
    3264       -1,    -1,    -1,    -1,    -1,   151,  1458,    -1,    -1,   452,
    3265       -1,    -1,   101,  1465,   103,    -1,   875,    -1,    -1,  1147,
    3266       -1,   241,   111,    -1,    -1,  1153,  1154,   470,    -1,   472,
    3267       10,    11,    12,    13,    14,   988,    -1,    -1,    -1,    -1,
    3268      899,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,
    3269       11,    12,    13,    14,  1007,    -1,  1508,    37,    -1,    -1,
    3270       -1,    -1,    -1,  1515,    -1,    -1,    -1,  1195,    -1,   512,
    3271       -1,    -1,    -1,  1514,    -1,    -1,    37,    -1,    -1,    -1,
    3272       60,    -1,    -1,    -1,  1212,    65,    -1,    67,  1216,    69,
    3273       -1,    -1,    -1,  1296,    -1,   241,    76,    77,    -1,    60,
    3274      246,  1386,    -1,   962,    65,    -1,    67,  1235,    69,  1237,
    3275     1395,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,
    3276       -1,   101,    -1,  1194,    -1,    -1,    -1,    -1,    -1,   572,
    3277       -1,   111,  1085,   353,    -1,    -1,  1264,  1090,    -1,    -1,
    3278      101,    -1,   103,    -1,    -1,    -1,    -1,  1275,  1276,  1277,
    3279      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,
    3280     1288,  1020,  1021,    -1,  1023,  1024,  1025,    10,    11,    12,
    3281       13,    14,    -1,  1301,    -1,    -1,    -1,   620,   621,    -1,
    3282       -1,    -1,    -1,    -1,    -1,  1044,    -1,   333,    -1,    -1,
    3283       -1,    -1,   635,   413,    37,    -1,    -1,  1325,    -1,    -1,
    3284       -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,    -1,    -1,
    3285      653,    -1,    -1,   560,   561,    -1,    -1,    60,  1077,  1078,
    3286       -1,    -1,    65,   666,    -1,  1296,    69,    -1,    -1,  1088,
    3287      673,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
    3288       -1,   588,    -1,    -1,   591,   592,    -1,   594,    -1,   596,
    3289      597,    -1,   472,   399,   601,   602,    -1,    -1,   101,    -1,
    3290       -1,    -1,    -1,    -1,    -1,    -1,   709,   413,   111,   712,
    3291       -1,    -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3292      426,    -1,    -1,    -1,    -1,  1413,    -1,    -1,  1147,    -1,
    3293       -1,    -1,   512,    -1,  1153,  1154,    -1,    -1,    -1,    -1,
    3294       -1,    -1,    -1,   746,    -1,    -1,   452,    -1,    -1,    -1,
    3295       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3296       -1,    -1,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
    3297     1458,    -1,    -1,    -1,    -1,    -1,  1195,  1465,   685,   686,
    3298       -1,    -1,    -1,    -1,   691,   788,    -1,    -1,    -1,    -1,
    3299       -1,    -1,   572,  1212,    -1,   798,    -1,  1216,    -1,    -1,
    3300      803,   804,    -1,    -1,    -1,    -1,   512,    -1,    -1,    -1,
    3301       -1,   814,    -1,    -1,    -1,    -1,  1235,    -1,  1237,    -1,
    3302     1508,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3303       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3304      620,   621,    29,    30,    31,  1264,    -1,    -1,    -1,    -1,
    3305       37,    38,    -1,    -1,    -1,   635,  1275,  1276,  1277,    -1,
    3306       -1,    -1,    -1,    -1,    -1,    -1,   572,    -1,  1287,  1288,
    3307       -1,    -1,   875,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3308       67,    68,  1301,    -1,    10,    11,    12,    13,    14,    -1,
    3309       -1,    -1,    -1,    -1,    -1,    -1,   899,    -1,    -1,    -1,
    3310       -1,    -1,    25,    26,    27,    -1,  1325,    -1,    -1,    -1,
    3311       -1,    37,    -1,    -1,   620,   621,   103,    -1,    -1,    -1,
    3312      107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,   635,
    3313       -1,    -1,   712,    -1,    60,    -1,    -1,    -1,    -1,    65,
    3314       -1,    -1,    -1,    69,    -1,    -1,    -1,   653,    -1,    -1,
    3315       76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   962,
    3316      666,    -1,    -1,    -1,    50,    -1,    52,   673,    -1,    55,
    3317       56,    57,    95,    59,    97,   101,    -1,    -1,    -1,    -1,
    3318       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    74,    -1,
    3319       -1,    -1,    -1,    -1,  1413,    -1,    -1,    -1,   121,    85,
    3320       86,    -1,    -1,   709,    -1,    -1,   712,    -1,    -1,    -1,
    3321       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1020,  1021,    -1,
    3322     1023,  1024,  1025,    -1,   804,    -1,    -1,    -1,    -1,    -1,
    3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1458,
    3324      746,  1044,    -1,    -1,    -1,    -1,  1465,    -1,    -1,    -1,
    3325       -1,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,   182,
    3326       -1,   184,   185,    -1,    -1,   151,   189,    -1,   191,   192,
    3327       -1,    -1,    -1,    -1,  1077,  1078,    -1,    -1,    -1,    -1,
    3328       -1,    -1,   788,    -1,    -1,  1088,    -1,    -1,    -1,  1508,
    3329       -1,    -1,   798,    -1,    -1,   875,    -1,   803,   804,    -1,
    3330       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   814,    -1,
    3331       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,   899,
    3332       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,
    3334       -1,    -1,    -1,    -1,  1147,    -1,    -1,    36,    37,    38,
    3335     1153,  1154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   948,   875,
    3337       59,    60,  1079,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3338       69,    -1,   962,    72,    73,    74,    75,    76,    77,    -1,
    3339       79,    80,  1195,   899,    -1,    -1,    -1,    -1,    87,    -1,
    3340       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,
    3341       -1,    -1,   101,  1216,   103,    -1,    -1,    -1,    -1,    -1,
    3342       -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
    3343       -1,    -1,  1235,    -1,  1237,    -1,    -1,    -1,    -1,    -1,
    3344      326,    -1,   328,  1023,  1024,  1025,    -1,    -1,    -1,    -1,
    3345       -1,    -1,    -1,   339,   340,    -1,   962,    -1,    -1,    -1,
    3346       -1,  1264,    -1,    -1,  1044,    -1,    -1,   353,    -1,    -1,
    3347       -1,    -1,  1275,  1276,  1277,    -1,    -1,    -1,    -1,    -1,
    3348       -1,    -1,    -1,    -1,  1287,  1288,    -1,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1301,    -1,
    3350       -1,    -1,    -1,    -1,    -1,    -1,  1213,    -1,  1088,    -1,
    3351       -1,    -1,    -1,    -1,  1020,  1021,    -1,  1023,  1024,  1025,
    3352       -1,    -1,  1325,    -1,    -1,    -1,    -1,   413,    -1,    -1,
    3353       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1044,    -1,
     3599      25,    26,    -1,    -1,    29,    30,    31,    32,   106,   888,
     3600      35,    36,    37,    38,    39,    -1,    41,    -1,    -1,    44,
     3601      45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
     3602      -1,    56,    57,    -1,    59,    60,    -1,    -1,    -1,    -1,
     3603      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3604      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3605      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3606      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3607      -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3608     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,
     3609      -1,    -1,    -1,    -1,    -1,   984,    -1,    -1,    -1,    -1,
     3610      -1,    -1,    -1,    -1,    -1,   994,    -1,    -1,    -1,    -1,
     3611      -1,    -1,    -1,    -1,    -1,    -1,  1400,    -1,    -1,    -1,
    33543612      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    33553613      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    33563614      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3357       31,  1077,  1078,  1153,  1154,    -1,    37,    -1,    -1,    -1,
    3358       -1,    -1,  1088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3360       -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
    3361     1413,    -1,    -1,    -1,  1194,  1195,    -1,    -1,    -1,    -1,
    3362       -1,    -1,    -1,    -1,    -1,    -1,   512,    -1,    -1,    -1,
    3363       -1,    -1,  1212,    -1,    -1,    -1,  1216,   560,   561,    -1,
    3364       -1,  1147,   103,    -1,    -1,    -1,    -1,  1153,  1154,    -1,
    3365      111,    -1,    -1,    -1,    -1,  1458,    -1,    -1,    -1,    -1,
    3366       -1,  1241,  1465,    -1,    -1,   588,    -1,    -1,   591,   592,
    3367       -1,   594,    -1,   596,   597,    -1,    -1,    -1,   601,   602,
    3368       -1,    -1,    -1,    -1,    -1,    -1,   572,    -1,    -1,  1195,
     3615      31,    32,    -1,  1042,    35,    36,    37,    38,    -1,    -1,
    33693616      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3370       -1,    -1,    -1,    -1,    -1,  1508,  1212,  1287,  1288,    -1,
    3371     1216,    -1,    -1,    -1,    -1,    -1,  1296,    -1,    -1,    -1,
    3372       -1,  1301,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1235,
    3373       -1,  1237,    -1,    -1,    -1,    -1,    -1,   623,    -1,    10,
    3374       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3375       21,    22,    23,    24,    25,    26,  1336,   680,  1264,    -1,
    3376       -1,    -1,   685,   686,    -1,   651,    37,    -1,   691,  1275,
    3377     1276,  1277,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3378       -1,  1287,  1288,   669,   670,    -1,    -1,   673,    -1,    60,
    3379       -1,    -1,    -1,    -1,    -1,  1301,    -1,    -1,    -1,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3618      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3619    1474,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3620      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    33803621      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    -1,    -1,    -1,   701,    -1,   703,    -1,  1325,
    3382       -1,    -1,    -1,    -1,   710,   711,    -1,    -1,    -1,   715,
    3383       -1,    -1,    -1,  1413,    -1,    -1,    -1,    -1,    -1,    -1,
    3384       -1,   727,    -1,    -1,    -1,    -1,   732,    -1,    -1,    -1,
    3385       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1437,    -1,    -1,
    3386      746,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    63,
    3387      756,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1458,    73,
    3388       -1,    75,    -1,    77,    -1,  1465,    -1,    -1,    59,    -1,
    3389       84,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
    3390       -1,    72,    73,    74,    75,    76,    77,  1413,    79,    80,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,   804,   113,
    3392       -1,   115,   116,   117,    -1,    -1,    -1,    -1,  1508,    -1,
    3393      101,    -1,   103,    -1,    -1,    -1,    -1,   823,    -1,   110,
    3394      111,   112,   113,   114,   115,    -1,    -1,   141,    -1,    -1,
    3395       -1,    -1,  1458,   124,    -1,    -1,    -1,    -1,    -1,  1465,
    3396       -1,   155,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3397      856,    -1,   858,   859,   860,    -1,    -1,   863,   864,    -1,
    3398       -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    36,   878,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3400       -1,    -1,  1508,    -1,   890,    -1,    -1,   893,    -1,    -1,
    3401       -1,    -1,    -1,   899,    59,    -1,    -1,    -1,    -1,   213,
    3402       65,   215,   216,   217,    69,    -1,    88,    72,    73,    74,
    3403       75,    76,    77,    -1,    79,    80,    98,    -1,    -1,    -1,
     3622     101,    -1,   103,    -1,    -1,    -1,    -1,  1116,    -1,   110,
     3623     111,   112,   113,   114,   115,    -1,  1520,    -1,    -1,    -1,
     3624      -1,    -1,    -1,   124,    -1,    -1,     3,     4,     5,     6,
     3625       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3626      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3627      -1,    -1,    29,    30,    31,    32,    -1,  1166,    35,    36,
     3628      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3629      -1,    -1,  1181,  1182,    -1,    -1,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3631      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3632      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3633      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3635      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,     4,
     3636       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3637      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3638      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3639      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3640      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3641      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
     3642      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3643      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    34043644      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3405       -1,   937,    -1,    -1,    -1,   249,   101,    -1,   103,   253,
    3406       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3407      115,    -1,    -1,    -1,    -1,   269,   962,    -1,    -1,    -1,
    3408       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   975,
    3409      152,    -1,    -1,    -1,   980,    -1,    -1,   983,    -1,    -1,
    3410       -1,   987,    -1,   165,    -1,    -1,   992,    -1,    -1,    -1,
    3411      996,   997,   998,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3412     1006,    -1,    -1,   317,    -1,   187,    -1,    -1,    -1,    -1,
    3413     1016,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   332,   201,
    3414       -1,    -1,    -1,   337,   338,    -1,    -1,   209,    -1,  1035,
    3415     1036,   345,    -1,    -1,    -1,    -1,  1079,   219,    -1,    -1,
    3416       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   230,    -1,
    3417       -1,    -1,    -1,    -1,  1060,    -1,    -1,  1063,    -1,    -1,
    3418      242,    -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,
    3419       -1,    -1,    -1,   387,    -1,    -1,    -1,    -1,   260,    -1,
    3420       -1,    -1,  1088,    -1,   266,    -1,   268,    -1,    -1,    -1,
    3421       -1,   405,    -1,    -1,    -1,    -1,    -1,   411,    -1,    -1,
    3422       -1,  1107,   284,    -1,    -1,    -1,    -1,  1113,  1114,    -1,
    3423       -1,    -1,    -1,    -1,   428,    -1,  1122,   431,   432,    -1,
    3424       -1,    -1,  1128,    -1,    -1,  1131,    -1,  1133,    -1,    -1,
    3425     1136,    -1,    -1,   447,    -1,    -1,    -1,    -1,    -1,    -1,
    3426       -1,  1147,    -1,   325,    -1,  1151,    -1,   461,    -1,    -1,
    3427       -1,    -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,    -1,
    3428       -1,    36,  1168,    38,  1170,  1171,  1172,  1173,    -1,    -1,
    3429     1213,    -1,   354,    -1,    -1,    -1,   358,   359,    -1,   361,
    3430       -1,  1187,    -1,  1189,    59,   367,   368,  1193,   370,   371,
    3431       65,   373,    -1,   375,    69,    -1,    -1,    72,    73,    74,
    3432       75,    76,    77,    -1,    79,    80,  1212,    -1,    -1,    -1,
    3433      392,    -1,    87,    -1,    -1,  1221,  1222,    -1,   400,    -1,
    3434       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3435       -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,   114,
    3436      115,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,   577,    -1,    -1,  1272,  1273,    -1,    -1,
    3439       -1,    -1,  1278,  1279,    -1,    -1,   458,    -1,    -1,    -1,
    3440       -1,    -1,   464,  1289,    -1,    -1,    -1,   469,    -1,    -1,
    3441       -1,    -1,    -1,   607,    -1,    -1,    -1,    -1,   612,     3,
    3442        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3443       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3444       24,    25,    26,   505,    -1,    29,    30,    31,    -1,    -1,
    3445       -1,    -1,    -1,    37,  1340,    -1,    -1,    -1,   520,    -1,
    3446       -1,    -1,    -1,    -1,    -1,    -1,  1352,    -1,    -1,    -1,
    3447     1356,  1357,  1358,    -1,    -1,    -1,    60,    -1,    62,    -1,
    3448       64,    65,  1368,    67,    68,    69,    -1,    -1,    -1,    -1,
    3449       -1,  1377,    76,    77,   556,    -1,    -1,    -1,    -1,    -1,
    3450       -1,    -1,    -1,   565,    -1,   567,   700,  1393,    -1,    -1,
    3451       -1,   573,    -1,    36,    -1,    38,    -1,   101,    -1,   103,
    3452      714,    -1,    -1,    -1,   586,    -1,    -1,   111,    -1,    -1,
    3453       -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,
    3454      734,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    3455       73,    74,    75,    76,    77,    -1,    79,    80,    -1,  1445,
    3456     1446,    -1,    -1,   625,    87,    -1,    -1,    -1,    -1,    -1,
    3457       -1,    -1,  1458,    -1,    36,    -1,    38,    -1,   101,  1465,
    3458      103,    -1,   105,   106,    -1,    -1,    -1,   110,   111,   112,
    3459      113,   114,   115,    -1,    -1,    -1,    -1,    59,   792,   661,
    3460       -1,    -1,    -1,    65,    -1,    -1,  1492,    69,   802,    -1,
     3645      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
     3646      -1,    -1,    -1,   108,    -1,   110,   111,   112,   113,   114,
     3647     115,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3648      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3649      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3650      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3652      -1,    -1,    -1,    -1,    -1,    -1,  1415,    59,    60,    -1,
     3653      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
    34613654      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    34623655      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3463      824,    -1,    -1,    -1,  1520,    -1,    -1,    -1,   151,   101,
    3464       -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
    3465      112,   113,   114,   115,    -1,    -1,   718,    -1,    -1,  1545,
    3466       -1,    -1,    -1,    -1,  1550,    -1,   728,   729,    -1,   182,
    3467       -1,    -1,    -1,    -1,    -1,    -1,   189,    -1,   740,    -1,
     3656      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3657      -1,   103,   104,    -1,    -1,    -1,   108,    -1,   110,   111,
     3658     112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,  1478,
     3659    1479,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3660      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3661      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3662      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    34683663      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3469       -1,    -1,    -1,    -1,    -1,   757,    -1,   759,    -1,    -1,
    3470       -1,   763,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3471       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3472       25,    26,    -1,   917,    29,    30,    31,    -1,    -1,    -1,
    3473       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3474       -1,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,   943,
    3475       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3476       65,    -1,    67,    68,    69,    -1,   828,    -1,    -1,    -1,
    3477       -1,    76,    77,   835,    -1,   969,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,    -1,    -1,    -1,   848,    -1,   850,    -1,
    3479       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   312,
    3480       -1,    -1,    -1,   865,    -1,   999,   111,   320,   321,   871,
    3481      323,   324,    -1,   326,    -1,    -1,    -1,    -1,   331,    -1,
    3482       -1,   883,  1016,    -1,   886,    -1,    -1,    -1,    -1,    -1,
    3483       -1,    -1,    -1,    -1,    -1,    -1,    36,   350,    38,    -1,
    3484      353,    -1,   904,    -1,    -1,    -1,    -1,    -1,   910,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
    3486       -1,    -1,    -1,    -1,    -1,    65,   379,    -1,    -1,    69,
    3487      383,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3488       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3489       -1,  1085,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490      413,   101,    -1,   103,    -1,    -1,   106,    -1,  1102,    -1,
    3491      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
    3492       -1,    -1,   142,   436,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,   151,    -1,   995,    -1,    -1,    -1,    -1,    -1,  1001,
    3494     1002,    -1,    -1,   163,    -1,    -1,    -1,    -1,    -1,   270,
    3495      271,   272,   273,    -1,   467,    -1,    -1,   470,    -1,   280,
    3496      281,    -1,    -1,    -1,   285,   286,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    -1,    -1,    -1,    -1,   297,    -1,    -1,    -1,
    3498       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3499       -1,    -1,    -1,    -1,    -1,  1057,   509,    -1,    -1,   512,
    3500     1194,  1063,    -1,    -1,    -1,   326,    -1,    -1,    -1,    -1,
    3501       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3502       20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
    3503       30,    31,    -1,    -1,   254,    -1,  1098,    37,    -1,    -1,
    3504       -1,  1103,   363,   556,   557,    -1,    -1,    -1,    -1,  1111,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   572,
    3506       60,   574,    -1,    -1,    -1,    -1,    -1,    67,    68,   582,
    3507       -1,    71,   585,    -1,   587,   588,    -1,    -1,  1140,    -1,
    3508       -1,   594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3509       -1,   604,   605,    -1,    -1,  1157,    -1,   610,  1160,    -1,
    3510     1162,   101,  1296,   103,    -1,    -1,    -1,   620,   621,    -1,
    3511       -1,   111,    -1,    -1,    -1,    -1,    -1,  1179,  1180,    -1,
    3512       -1,    -1,   635,    -1,    -1,    -1,    -1,   640,   641,    -1,
    3513       -1,   644,   645,   353,    -1,    -1,    -1,    -1,  1200,    -1,
    3514       -1,    -1,   362,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3515       -1,    -1,    -1,    -1,    -1,   668,    -1,    -1,    -1,    -1,
    3516      673,   674,    -1,   676,    -1,    -1,    -1,   680,    -1,    -1,
    3517     1232,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3519       -1,    -1,   412,    -1,    -1,    -1,    -1,    -1,    -1,   712,
    3520      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,   433,   535,   536,   537,   538,   539,   540,
    3522      541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
    3523      551,   552,    -1,   746,    -1,    -1,    -1,   750,   751,    -1,
    3524       -1,    -1,   462,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,   574,    -1,    -1,    -1,     7,    -1,    -1,
    3526       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,  1331,
    3527       -1,  1333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   792,
    3528      500,    -1,  1344,    -1,  1346,    -1,    36,    37,    38,    -1,
    3529       -1,   804,   512,    -1,    -1,    -1,    -1,    -1,    -1,   519,
    3530      813,    -1,   815,    -1,  1366,    -1,    -1,    -1,    -1,    59,
    3531       60,   824,   532,   533,    -1,    65,    -1,    -1,    -1,    69,
    3532     1382,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3533       80,    -1,  1394,    -1,   554,  1397,    -1,    87,    -1,    -1,
    3534       -1,  1535,   855,    -1,   564,    -1,    -1,    -1,    -1,    -1,
    3535       -1,   101,   572,   103,   675,    -1,    -1,  1419,    -1,    -1,
    3536      110,   111,   112,   113,   114,   115,  1428,    -1,    -1,  1431,
    3537     1432,    -1,    -1,    -1,    -1,    -1,   697,    -1,    -1,    -1,
    3538       -1,    -1,    -1,    -1,    -1,    -1,   899,    -1,    -1,   710,
    3539       -1,   904,   905,    -1,    -1,    -1,    -1,    -1,    -1,   912,
    3540       -1,    -1,    -1,   623,   917,    -1,    -1,  1469,    -1,    -1,
    3541      630,  1473,   925,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3542       -1,    -1,    -1,  1485,    -1,   938,   939,    -1,    -1,    -1,
    3543       -1,   651,   753,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3544       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   962,
    3545       -1,    -1,    -1,   673,    -1,    -1,   969,    -1,    -1,    -1,
    3546       -1,    -1,    -1,   976,   785,    -1,    -1,    -1,    -1,    -1,
    3547       -1,    -1,    -1,    -1,    -1,   988,   989,    -1,    -1,    -1,
    3548       -1,   994,    -1,   996,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    -1,    -1,    -1,  1007,  1008,    -1,  1010,  1011,  1012,
    3550       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3551     1023,  1024,  1025,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3552       -1,    -1,    -1,    -1,    -1,    -1,   746,    -1,   748,    -1,
    3553       -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,    -1,    -1,
    3554       -1,    -1,   762,    -1,    10,    11,    12,    13,    14,    15,
    3555       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3556       26,    27,    -1,    29,    30,    31,    -1,  1080,    -1,   890,
    3557       -1,    37,  1085,    -1,    -1,  1088,  1089,  1090,  1091,   799,
    3558       -1,    -1,   802,   803,   804,    36,    -1,    38,    -1,  1102,
    3559       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    67,    68,   823,    -1,    71,    -1,    -1,    59,    -1,
    3561       -1,  1124,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
    3562       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3563       -1,    -1,    -1,    -1,  1147,   101,    87,   103,    -1,  1152,
    3564     1153,  1154,    -1,    -1,   864,   111,    -1,    -1,   868,    -1,
    3565      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3566      111,   112,   113,   114,   115,   986,    -1,    -1,    -1,    -1,
    3567       -1,    -1,    -1,    -1,    -1,   996,    -1,    -1,    -1,   899,
    3568       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3569       19,    20,    21,    22,    23,    24,    25,    26,    -1,  1212,
    3570       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3571       -1,    -1,    -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,
    3572       -1,    -1,    -1,  1044,  1237,    -1,    -1,    -1,    -1,   949,
    3573       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    3574       -1,    -1,   962,   963,    -1,    -1,    -1,    -1,    -1,    -1,
    3575      970,    -1,    -1,    -1,    -1,    -1,    -1,   977,    -1,    -1,
    3576      980,    -1,   982,    -1,    -1,    36,    -1,    38,    -1,    -1,
    3577       -1,    -1,    -1,    -1,  1287,  1288,    -1,    -1,    -1,   999,
    3578       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    59,    -1,
    3579       -1,    -1,    -1,    -1,    65,    -1,  1016,  1118,    69,    -1,
    3580       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3581       -1,  1324,    -1,    -1,    -1,    -1,    87,    -1,    -1,  1039,
    3582       -1,  1041,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3583      101,    -1,   103,    -1,    -1,    -1,  1056,    -1,    -1,   110,
    3584      111,   112,   113,   114,   115,    -1,    -1,  1168,    -1,    -1,
    3585       -1,    -1,    -1,    -1,    -1,  1075,    -1,    -1,    -1,    -1,
    3586       -1,    -1,  1183,  1184,    -1,    -1,    -1,    -1,  1088,    -1,
    3587       -1,    -1,     0,  1386,    -1,     3,     4,     5,     6,     7,
    3588        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3589       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3590     1413,    29,    30,    31,    32,    -1,  1126,    35,    -1,    37,
    3591       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592       -1,    36,    -1,    38,    -1,    -1,    -1,  1147,    -1,    57,
    3593       -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3594       68,    69,    -1,    -1,    59,  1165,    -1,  1167,    76,    77,
    3595       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3596       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3597       -1,    -1,    87,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3598     1493,    -1,    -1,   111,    -1,    -1,   101,    -1,   103,    -1,
    3599       -1,    -1,  1212,    -1,    -1,   110,   111,   112,   113,   114,
    3600      115,  1514,  1515,    -1,    -1,    -1,    -1,  1227,    -1,    -1,
    3601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3602       -1,    -1,  1535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603     1250,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
    3604       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3605       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3606       30,    31,    32,    -1,    -1,    35,    36,    37,    38,    39,
    3607       -1,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
    3608       50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
    3609       60,    -1,    62,    -1,    64,    65,  1417,    67,    68,    69,
    3610       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3611       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3613       -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3614      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
    3615       -1,    -1,    -1,    -1,   124,    -1,    -1,    -1,    -1,  1480,
    3616     1481,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3618       -1,    -1,  1402,    -1,    -1,    -1,    -1,    -1,     3,     4,
    3619        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3620       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3621       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3622       35,    36,    37,    38,    10,    11,    12,    13,    14,    15,
    3623       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3624       26,    27,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
    3625       65,    37,    67,    68,    69,    -1,  1476,    72,    73,    74,
    3626       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3627       -1,    -1,    87,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    -1,    -1,    71,   101,    -1,   103,    -1,
    3629       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3630      115,    -1,  1522,    -1,    -1,    -1,    -1,    -1,    -1,   124,
    3631        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3632       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3633       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3634       -1,    -1,    35,    36,    37,    38,    10,    11,    12,    13,
    3635       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3636       24,    25,    26,    27,    -1,    -1,    59,    60,    -1,    62,
    3637       -1,    64,    65,    37,    67,    68,    69,    -1,    -1,    72,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3665      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    36383666      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3639       -1,    -1,    -1,    -1,    87,    -1,    60,    -1,    -1,    -1,
    3640       -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,   101,    -1,
    3641      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3667      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3668      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3669     103,   104,    -1,    -1,    -1,   108,    -1,   110,   111,   112,
    36423670     113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
    36433671      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    36463674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36473675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3648       -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
     3676      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
    36493677      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    36503678      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    36513679      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3652      101,    -1,   103,   104,    -1,    -1,    -1,   108,    -1,   110,
     3680     101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,
    36533681     111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
    36543682       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    36573685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36583686      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3659       59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3687      59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    36603688      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    36613689      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    36623690      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3663       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,   108,
     3691      -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
    36643692      -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
    36653693       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     
    36683696      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36693697      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3670       -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
     3698      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,
    36713699      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
    36723700      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    36733701      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3674       -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
    3675       -1,   108,    -1,   110,   111,   112,   113,   114,   115,     4,
     3702      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3703      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,     4,
    36763704       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36773705      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    36793707      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    36803708      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3709      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
    36823710      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
    36833711      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    36843712      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
     3713      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    36863714      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3687      115,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3715     115,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3716      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3717      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3718      32,    -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,
     3719      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3720      -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
     3721      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
     3723      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3724      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3725      -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
     3726       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    36883727      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    36893728      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3690       -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3729      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    36913730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
    3693       -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    3694       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3695       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     3732      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3733      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
     3734      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36963735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3697      103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3698      113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
    3699       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3700       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3701       31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3736     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     3,
     3737       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3738      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3739      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3740      -1,    35,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    37023741      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3704       -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
    3705       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3706       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3708      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3709      111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
    3710        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3711       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3712       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3713       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3715       59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
    3716       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3717       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    3718       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3719       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3720       -1,   110,   111,   112,   113,   114,   115,     3,     4,     5,
    3721        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3722       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3723       26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,
    3724       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3725       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3726       -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,
    3727       -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3728       76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3729       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3730       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3731       -1,   107,    -1,    -1,    -1,   111,     3,     4,     5,     6,
     3742      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3743      -1,    -1,    -1,    67,    68,    -1,     3,     4,     5,     6,
    37323744       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    37333745      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3734       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
    3735       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,   103,
     3747      37,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    37363748      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3737       57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
    3738       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3739       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3749      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3750      67,    68,     4,     5,     6,     7,     8,     9,    10,    11,
     3751      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3752      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3753      -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,
     3754      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3756      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
     3757      -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
    37403758      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3741       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3742       -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,     7,
    3743        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3744       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3745       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3746       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3748       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3749       68,    -1,    -1,    71,     3,     4,     5,     6,     7,     8,
    3750        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3751       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3752       29,    30,    31,    32,    -1,   103,    35,    -1,    37,    -1,
    3753       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3754       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3755       -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3760      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    37563761       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    37573762      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    37583763      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3759       -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,    -1,
     3764      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     3765      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3766      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3767      -1,    -1,    -1,    67,    68,     4,     5,     6,     7,     8,
     3768       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3769      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3770      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,   103,
     3771     104,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3772      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3773      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     3774      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3775      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3776      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3777      -1,    -1,    -1,   102,   103,    37,    -1,    -1,    -1,    -1,
    37603778      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
    3762       64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3763       -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3780      -1,    -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,
    37643781      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3765       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3766       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
     3782      -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
     3783      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3784      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3785       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3786      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3787      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3788      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    10,    11,
     3789      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3790      22,    23,    24,    25,    26,    -1,    60,    29,    30,    31,
     3791      -1,    -1,    -1,    67,    68,    37,    -1,    -1,    -1,    -1,
     3792      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3793      -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    60,    -1,
     3794      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,   103,
     3795      -1,    -1,    -1,    -1,    76,    77,    -1,   111,     4,     5,
     3796       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3797      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3798      26,   103,    -1,    29,    30,    31,    -1,    -1,    -1,   111,
     3799      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3802      -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
     3803      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3804      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3805      31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
     3806      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3807      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3808      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,     4,     5,
    37673809       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    37683810      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    37693811      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3770       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3772       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
     3812      -1,    37,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3813     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3814      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    37733815      -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
    37743816      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    37753817      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3776       31,    -1,    -1,    -1,    -1,    -1,    37,   103,   104,    -1,
     3818      31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
    37773819      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    37783820      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3779       -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
    3780        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3781       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3782       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3783       -1,   102,   103,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3784      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3785       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
    3786       64,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3788       -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
    3789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
    3790       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
    3791        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3792       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3793       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3794       -1,    37,    10,    11,    12,    13,    14,    15,    16,    17,
    3795       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3796       -1,    29,    30,    31,    60,    -1,    62,    -1,    64,    37,
    3797       -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3799       -1,    -1,    60,    89,    -1,    -1,    -1,    65,    -1,    67,
    3800       68,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
    3801       -1,    -1,    -1,    -1,    -1,   111,     4,     5,     6,     7,
    3802        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3803       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3804       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3808       68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3809       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3810       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3811       -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,
    3812       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3814       -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
    3815        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3816       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3817       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3818      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3820       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3821       68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3822       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3823       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3824       -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,
    3825       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3827       -1,    64,    -1,    -1,    67,    68,    10,    11,    12,    13,
    3828       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3829       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
    3830       34,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3831      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3832       -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
    3833       -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,    73,
    3834       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3835       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3836       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3837       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3838      114,   115,    10,    11,    12,    13,    14,    15,    16,    17,
    3839       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3840       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3841       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3843       -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
    3844       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3845       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    3846       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3847       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    3848       -1,    -1,   110,   111,   112,   113,   114,   115,    10,    11,
     3821      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,
    38493822      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    38503823      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    38513824      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3825      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3826     111,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    38543827      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
    38553828      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    38563829      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    38573830      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3858       -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3831      -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,
    38593832     112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
    38603833      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     
    38663839      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    38673840      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3868       -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,
     3841      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,
    38693842      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
    38703843      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    38773850      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    38783851      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3879       -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3852      -1,   101,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    38803853     110,   111,   112,   113,   114,   115,    10,    11,    12,    13,
    38813854      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    39103883      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    39113884      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3912      112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
    3913        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3914       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3915       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    3916       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3917       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3918       31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
     3885     112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
     3886      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3887      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3888      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39193889      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3920       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3921       -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
    3922       71,    -1,    -1,    -1,    -1,    76,    77,   106,    10,    11,
    3923       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3924       22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
    3925      101,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    3926      111,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3927       19,    20,    21,    22,    23,    24,    25,    26,    60,    -1,
    3928       29,    30,    31,    65,    -1,    67,    68,    69,    37,    71,
    3929       -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
     3890      -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,
     3891      -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
     3892      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3893      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3894      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3895      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3896      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3897      20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     3898      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
     3899      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3900      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3901      60,    -1,    29,    30,    31,    65,    -1,    67,    68,    69,
     3902      37,    71,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
    39303903      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3931       -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    3932       69,   103,    -1,    -1,    -1,    -1,    -1,    76,    77,   111,
     3904      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3905      67,    68,    69,   103,    -1,    -1,    -1,    -1,    -1,    76,
     3906      77,   111,    10,    11,    12,    13,    14,    15,    16,    17,
     3907      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3908      -1,    29,    30,    31,   101,    -1,   103,    -1,    -1,    37,
     3909      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3910      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3911      -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3912      68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
    39333913      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    39343914      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3935       30,    31,   101,    -1,   103,    -1,    -1,    37,    -1,    -1,
    3936       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3915      30,    31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,
     3916      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    39373917      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39383918      60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
    39393919      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,    11,
    39403920      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3941       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3921      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
    39423922      -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,    -1,
    39433923      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39443924      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3945       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
    3946       -1,    -1,    -1,    -1,    76,    77,    10,    11,    12,    13,
    3947       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3948       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,   101,
    3949       -1,   103,    -1,    37,    -1,    -1,    -1,    -1,    -1,   111,
     3925      -1,    -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    71,
     3926      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3927      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3928      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    38,   101,
     3929      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    39503930      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3951       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    3952       -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3953       -1,    -1,    76,    77,    10,    11,    12,    13,    14,    15,
    3954       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3955       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,   103,
    3956       -1,    37,    38,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    3957       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3958       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3959       -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
    3960       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3961       27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3962       37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
    3963       -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3964       -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3965       67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
    3966       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3967       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3968       -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,    -1,
    3969       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3970       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3971       -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    3972       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3973       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3974       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    3975       -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3976       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3977       -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
    3978       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3979       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3980       37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
    3981       -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3982       -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3983       67,    68,    10,    11,    12,    13,    14,    15,    16,    17,
    3984       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3985       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3986       38,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
    3987      107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3988       -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3989       68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3990       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3991       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3992       -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,   107,
    3993       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3994       -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3931      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,
     3932      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3933      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3934      31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
     3935      -1,    -1,    -1,   103,    -1,    -1,    -1,   107,    -1,    -1,
     3936      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3937      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,
     3938      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3939      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
     3940      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     3941      -1,    -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,
     3942     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3943      -1,    -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    71,
    39953944      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    39963945      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    39973946      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
    3998       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3999       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3947      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3948      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40003949      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,
    40013950      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    40023951      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    4003       31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    4004       -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3952      31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
     3953      -1,    -1,    -1,   103,    -1,    -1,    -1,   107,    -1,    -1,
    40053954      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    40063955      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,
    40073956      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    40083957      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    4009       -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    4010      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3958      -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,
     3959      -1,    -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,
    40113960     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    40123961      -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,
    40133962      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    40143963      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    4015       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,   101,
    4016       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3964      -1,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,    -1,
     3965      -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
    40173966      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    40183967      -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
     
    40203969      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    40213970      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    4022      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3971     103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
    40233972      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    40243973      -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
    40253974      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    40263975      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    4027       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3976      -1,    -1,    37,    -1,    -1,    -1,    -1,   101,    -1,   103,
    40283977      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    40293978      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     
    40313980      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    40323981      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    4033       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3982      -1,    37,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    40343983      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    40353984      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     
    40754024      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    40764025      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    4077       -1,    -1,    -1,    -1,    67,    68,     4,     5,     6,     7,
    4078        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    4079       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    4080       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    4081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    4082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4083       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    4084       68,    -1,    36,    -1,    38,    39,    -1,    41,    -1,    -1,
    4085       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     4026      -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
     4027      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     4028      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     4029      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     4030     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     4031      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     4032      -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
     4033      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4034      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     4035      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     4036      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     4037      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     4038      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     4039      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     4040      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     4041      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     4042      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     4043      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     4044      -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
     4045      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4046      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     4047      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
     4048      -1,    36,    -1,    38,    39,   111,    41,    -1,    -1,    44,
     4049      45,    46,    47,    48,    49,    50,    51,    52,    53,    60,
     4050      -1,    56,    57,    -1,    59,    -1,    67,    68,    -1,    -1,
     4051      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     4052      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     4053      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4054      -1,   102,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     4055      -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     4056     115,    -1,    36,    -1,    38,    39,    -1,    41,    -1,   124,
     4057      44,    45,    46,    47,    48,    49,    50,    51,    -1,    53,
    40864058      -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,
    4087       -1,    65,    -1,    -1,   102,    69,    -1,    -1,    72,    73,
     4059      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
    40884060      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    40894061      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    40904062      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    40914063      -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,
    4092      114,   115,    -1,    36,    -1,    38,    39,    -1,    41,    -1,
    4093      124,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
    4094       53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
    4095       -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    4096       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    4097       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    4098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    4099      103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
    4100      113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4101       -1,   124,     4,     5,     6,     7,     8,     9,    10,    11,
    4102       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4103       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    4104       -1,    -1,    -1,    -1,    -1,    37,    10,    11,    12,    13,
    4105       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4106       24,    25,    26,    -1,    -1,    29,    30,    31,    60,    -1,
    4107       62,    -1,    64,    37,    -1,    67,    68,    -1,    36,    -1,
    4108       38,    39,    -1,    41,    42,    43,    44,    45,    46,    47,
    4109       48,    49,    50,    51,    52,    53,    60,    89,    56,    57,
    4110       -1,    59,    -1,    67,    68,    -1,    -1,    65,    -1,    -1,
    4111       -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    4112       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    4113       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4114       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    4115       -1,    -1,   110,   111,   112,   113,   114,   115,    36,    -1,
    4116       38,    39,    -1,    41,    42,    43,    44,    45,    46,    47,
    4117       48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
    4118       -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    4119       -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    4120       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    4121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4122       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    4123       -1,    -1,   110,   111,   112,   113,   114,   115,    36,    -1,
    4124       38,    39,    -1,    41,    -1,    -1,    44,    45,    46,    47,
    4125       48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
    4126       -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     4064     114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4065     124,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     4066      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4067      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     4068      36,    -1,    38,    39,    37,    41,    42,    43,    44,    45,
     4069      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     4070      56,    57,    -1,    59,    -1,    -1,    -1,    60,    -1,    65,
     4071      -1,    -1,    -1,    69,    67,    68,    72,    73,    74,    75,
     4072      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     4073      -1,    87,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
     4074      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     4075     106,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     4076      36,    -1,    38,    39,    -1,    41,    42,    43,    44,    45,
     4077      46,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,
     4078      56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
     4079      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     4080      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     4081      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4082      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     4083     106,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     4084      36,    -1,    38,    39,    -1,    41,    -1,    -1,    44,    45,
     4085      46,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1,
     4086      56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
     4087      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     4088      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     4089      -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
     4090      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     4091     106,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     4092      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     4093      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     4094      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     4095      -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     4096      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     4097      -1,   110,   111,   112,   113,   114,   115,    59,    -1,    -1,
     4098      -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,
     4099      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     4100      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     4101      -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,
     4102      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     4103     112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,
     4104      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     4105      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     4106      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,
     4107      38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     4108      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     4109     115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    41274110      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    41284111      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    41294112      -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,
    4130       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
     4113      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    41314114      -1,    -1,   110,   111,   112,   113,   114,   115,    59,    -1,
    41324115      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
     
    41344117      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    41354118      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
    4136      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     4119     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    41374120     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
    41384121      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     
    41504133      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    41514134      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    4152       -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     4135      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    41534136      -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4154      110,   111,   112,   113,   114,   115,    59,    -1,    -1,    -1,
    4155       -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    4156       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    4157       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    4158       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    4159       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    4160      113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
    4161       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    4162       21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,
    4163       -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    4164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    4166       -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
    4167       -1,    -1,    -1,    -1,    -1,    76,    77,     3,     4,     5,
    4168        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    4169       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4170       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    4171       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4173       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
    4174       -1,    67,    68,     3,     4,     5,     6,     7,     8,     9,
    4175       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    4176       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    4177       30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
     4137     110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
     4138       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     4139      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     4140      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    41784141      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    41794142      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4180       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,     4,
    4181        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    4182       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4183       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    4184       -1,    -1,    37,    10,    11,    12,    13,    14,    15,    16,
     4143      -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
     4144      68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
     4145       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     4146      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4147      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     4148      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     4149      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4150      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     4151      -1,    -1,    -1,    -1,    67,    68,     3,     4,     5,     6,
     4152       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    41854153      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4186       -1,    -1,    29,    30,    31,    60,    -1,    62,    -1,    64,
    4187       37,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
     4154      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     4155      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    41884156      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    41894157      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    4190       67,    68
     4158      67,    68,     4,     5,     6,     7,     8,     9,    10,    11,
     4159      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4160      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     4161      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     4162      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4163      20,    21,    22,    23,    24,    25,    26,    -1,    60,    29,
     4164      30,    31,    32,    33,    34,    67,    68,    37,    10,    11,
     4165      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4166      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     4167      60,    -1,    -1,    -1,    -1,    37,    -1,    67,    68,    -1,
     4168      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4169      20,    21,    22,    23,    24,    25,    26,    -1,    60,    29,
     4170      30,    31,    -1,    65,    -1,    67,    68,    37,    10,    11,
     4171      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4172      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     4173      60,    -1,    -1,    -1,    -1,    37,    -1,    67,    68,    -1,
     4174      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4175      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     4176      -1,    -1,    -1,    -1,    -1,    67,    68
    41914177};
    41924178
     
    41984184      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    41994185      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    4200       37,    38,    57,    60,    62,    64,    65,    67,    68,    69,
    4201       76,    77,   101,   103,   111,   129,   132,   189,   201,   202,
    4202      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
    4203      213,   214,   215,   216,   217,   218,   220,   221,   222,   223,
    4204      224,   225,   226,   227,   229,   230,   231,   232,   233,   234,
    4205      235,   243,   244,   270,   271,   279,   282,   288,   289,   291,
    4206      293,   294,   300,   305,   309,   310,   311,   312,   313,   314,
    4207      315,   316,   336,   353,   354,   355,   356,    65,   111,   131,
    4208      204,   206,   214,   216,   226,   230,   232,   271,    75,   101,
    4209      298,   299,   300,   298,   298,    65,    67,    68,    69,   130,
    4210      131,   260,   261,   280,   281,    67,    68,   261,   101,   291,
    4211      215,   216,   101,   111,   305,   310,   311,   312,   314,   315,
    4212      316,   126,   103,   207,   214,   216,   309,   313,   352,   353,
    4213      356,   357,   127,   123,   264,   106,   127,   164,    67,    68,
    4214      129,   259,   127,   127,   127,   108,   127,    67,   101,   111,
    4215      295,   304,   305,   306,   307,   308,   309,   313,   317,   318,
    4216      319,   320,   321,     3,    27,    71,   228,     3,     5,    67,
    4217       68,   103,   111,   206,   217,   221,   224,   233,   309,   313,
    4218      356,   204,   206,   216,   226,   230,   232,   271,   309,   313,
    4219       32,   222,   222,   217,   224,   127,   222,   217,   222,   217,
    4220      101,   106,   261,   106,   261,   222,   217,   108,   127,   127,
    4221        0,   126,   101,   164,   298,   298,   126,   103,   214,   216,
    4222      354,   259,   259,   216,   123,   101,   111,   295,   305,   309,
    4223      103,   111,   356,   292,   219,   300,   101,   276,   101,   101,
    4224      101,    36,    38,    59,    65,    69,    72,    73,    74,    75,
    4225       79,    80,    87,   101,   103,   110,   111,   112,   113,   114,
    4226      115,   128,   132,   133,   134,   135,   140,   141,   142,   143,
    4227      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
    4228      155,   157,   214,   263,   278,   352,   357,   216,   102,   102,
    4229      102,   102,   102,   102,   102,   103,   111,   127,   155,   206,
    4230      207,   213,   216,   220,   221,   226,   229,   230,   232,   249,
    4231      250,   254,   255,   256,   257,   271,   336,   348,   349,   350,
    4232      351,   356,   357,   126,   101,   309,   313,   356,   101,   108,
    4233      124,   103,   106,   111,   155,   265,   107,   126,   108,   124,
    4234      101,   108,   124,   108,   124,   108,   124,   298,   124,   305,
    4235      306,   307,   308,   318,   319,   320,   321,   216,   304,   317,
    4236       57,   297,   103,   298,   335,   336,   298,   298,   164,   126,
    4237      101,   298,   335,   298,   298,   216,   295,   101,   101,   215,
    4238      214,   216,   101,   126,   214,   352,   357,   164,   126,   259,
    4239      264,   206,   221,   309,   313,   164,   126,   280,   216,   226,
    4240      124,   216,   216,   126,    38,   103,   214,   236,   237,   238,
    4241      239,   352,   356,   106,   245,   261,   106,   216,   280,   124,
    4242      124,   291,   126,   131,   258,     3,   127,   196,   197,   211,
    4243      213,   216,   126,   297,   101,   297,   155,   305,   216,   101,
    4244      126,   259,   106,    32,    33,    34,   214,   272,   273,   275,
    4245      126,   121,   123,   277,   126,   217,   223,   224,   259,   301,
    4246      302,   303,   140,   153,   154,   101,   140,   142,   101,   140,
    4247      101,   101,   140,   140,   131,   103,   155,   160,   164,   214,
    4248      262,   352,   126,   142,   142,    75,    78,    79,    80,   101,
    4249      103,   105,    90,    91,    92,    93,    94,    95,    96,    97,
    4250       98,    99,   123,   159,   142,   111,   116,   117,   113,   114,
    4251       81,    82,    83,    84,   118,   119,    85,    86,   112,   120,
    4252      121,    87,    88,   122,   123,   359,   101,   111,   331,   332,
    4253      333,   334,   335,   102,   108,   101,   335,   103,   336,   101,
    4254      335,   336,   126,   103,   111,   127,   214,   216,   347,   348,
    4255      356,   357,   104,   127,    67,   101,   103,   111,   305,   322,
    4256      323,   324,   325,   326,   327,   328,   329,   330,   336,   337,
    4257      338,   339,   340,   341,   342,   111,   356,   216,   127,   127,
    4258      111,   214,   216,   349,   259,   214,   336,   349,   259,   127,
    4259      126,   126,   126,   126,    65,   103,   105,   261,   265,   266,
    4260      267,   268,   269,   126,   126,   126,   126,   126,   126,   295,
    4261      102,   102,   102,   102,   102,   102,   102,   304,   317,   101,
    4262      264,   126,   196,   126,   295,   160,   263,   160,   263,   295,
    4263      278,   103,   127,   196,   297,   164,   126,   196,   214,   272,
    4264      278,   238,   239,   126,   101,   109,   111,   240,   242,   304,
    4265      305,   317,   335,   343,   344,   345,   346,   107,   237,   108,
    4266      124,   108,   124,   261,   236,   108,   358,   123,   246,   245,
    4267      216,   251,   252,   253,   256,   257,   102,   108,   164,   126,
    4268      111,   155,   126,   213,   216,   250,   348,   356,   289,   290,
    4269      101,   111,   322,   102,   108,   359,   261,   272,   101,   106,
    4270      261,   263,   272,   102,   108,   101,   102,   109,   262,   262,
    4271      103,   131,   137,   155,   263,   262,   126,   102,   108,   102,
    4272      101,   111,   343,   102,   108,   127,   155,   103,   131,   103,
    4273      136,   137,   126,   103,   131,   155,   155,   142,   142,   142,
    4274      143,   143,   144,   144,   145,   145,   145,   145,   146,   146,
    4275      147,   148,   149,   150,   151,   109,   160,   155,   126,   332,
    4276      333,   334,   216,   331,   298,   298,   155,   263,   126,   126,
    4277      258,   127,   216,   220,   126,   104,   356,    67,   129,   214,
    4278      336,   354,   104,   101,   126,   305,   323,   324,   325,   328,
    4279      338,   339,   340,   126,   216,   322,   326,   337,   101,   298,
    4280      341,   359,   298,   298,   359,   101,   298,   341,   298,   298,
    4281      298,   298,   336,   214,   347,   357,   259,   104,   108,   104,
    4282      108,   359,   214,   349,   359,   104,   247,   248,   249,   250,
    4283      247,   259,   127,   155,   126,   103,   261,   109,   108,   358,
    4284      265,   103,   109,   269,    28,   198,   199,   259,   247,   131,
    4285      295,   131,   297,   101,   335,   336,   101,   335,   336,   133,
    4286      111,   127,   164,   251,   102,   102,   102,   102,   102,   126,
    4287      104,   164,   196,   164,   101,   111,   127,   127,   124,   124,
    4288      103,   127,   305,   344,   345,   346,   154,   216,   343,   241,
    4289      242,   241,   298,   298,   261,   298,   107,   261,   107,   154,
    4290      358,   127,   127,   131,   211,   127,   127,   247,   101,   111,
    4291      356,   127,   107,   216,   273,   274,   127,   126,   126,   101,
    4292      127,   102,   302,   160,   161,   124,    75,   190,   191,   192,
    4293      102,   102,   126,   109,   102,   102,   102,   127,   155,   216,
    4294      106,   142,   157,   155,   156,   158,   104,   108,   127,   126,
    4295      126,   102,   108,   155,   126,   153,   109,   251,   102,   102,
    4296      102,   331,   251,   102,   104,   103,   111,   155,   155,   216,
    4297      127,   101,   101,   214,   354,   328,   251,   102,   102,   102,
    4298      102,   102,   102,   102,     7,   127,   216,   322,   326,   337,
    4299      126,   126,   359,   126,   126,   101,   127,   127,   127,   127,
    4300      264,   104,   127,   153,   154,   155,   296,   126,   265,   267,
    4301      107,   126,   200,   261,    38,    39,    41,    44,    45,    46,
    4302       47,    48,    49,    50,    51,    53,    56,   103,   131,   161,
    4303      162,   163,   164,   165,   166,   168,   169,   181,   183,   184,
    4304      189,   201,   294,    28,   127,   123,   264,   126,   126,   102,
    4305      104,   127,   127,    67,   164,   216,   102,   102,   126,   104,
    4306      102,   102,   102,   343,   240,   246,   107,   102,   108,   104,
    4307      104,   127,   216,   108,   359,   276,   102,   272,   204,   206,
    4308      214,   284,   285,   286,   287,   278,   102,   102,   101,   102,
    4309      109,   108,   155,   155,   104,   266,   108,   127,   158,   104,
    4310      131,   138,   139,   155,   137,   127,   138,   153,   157,   127,
    4311      101,   335,   336,   127,   214,   336,   349,   126,   127,   127,
    4312      127,   155,   104,   126,   126,   102,   127,   101,   335,   336,
    4313      101,   341,   101,   341,   336,   215,   104,     7,   111,   127,
    4314      155,   251,   251,   250,   254,   254,   255,   247,   102,   108,
    4315      108,   102,   104,    89,   115,   127,   127,   138,   265,   155,
    4316      108,   124,   201,   205,   216,   220,   101,   101,   162,   101,
    4317      101,   124,   131,   124,   131,   111,   131,   161,   101,   164,
    4318      124,   155,   126,   109,   124,   127,   126,   127,   200,   102,
    4319      155,   251,   251,   298,   336,   102,   104,   101,   106,   261,
    4320      261,   127,   101,   335,   336,   126,   102,   126,   127,   295,
    4321      107,   126,   127,   127,   102,   106,   154,   124,   190,   192,
    4322      108,   127,   358,   156,   104,   127,    78,   105,   108,   127,
    4323      127,   104,   127,   102,   126,   102,   214,   349,   104,   104,
    4324      104,   127,   247,   247,   102,   126,   126,   126,   155,   155,
    4325      127,   104,   127,   127,   127,   127,   102,   126,   126,   154,
    4326      154,   104,   104,   127,   127,   261,   216,   160,   160,    45,
    4327      160,   126,   124,   124,   160,   124,   124,   160,    54,    55,
    4328      185,   186,   187,   124,   127,   298,   166,   107,   124,   127,
    4329      127,   278,   236,   106,   104,   126,    89,   256,   257,   102,
    4330      285,   108,   124,   108,   124,   107,   283,   102,   102,   109,
    4331      158,   104,   107,   104,   103,   139,   103,   139,   139,   104,
    4332      104,   104,   251,   104,   127,   127,   251,   251,   251,   127,
    4333      127,   104,   104,   102,   102,   104,   108,    89,   250,    89,
    4334      127,   104,   104,   102,   102,   101,   102,   161,   182,   201,
    4335      124,   102,   101,   164,   187,    54,   104,   162,   102,   102,
    4336      102,   107,   236,   251,   106,   126,   126,   284,   124,    75,
    4337      193,   127,   109,   126,   126,   127,   102,   102,   127,   127,
    4338      127,   104,   104,   126,   127,   104,   162,    42,    43,   106,
    4339      172,   173,   174,   160,   162,   127,   102,   161,   106,   174,
    4340       89,   126,   101,   106,   261,   107,   127,   126,   259,   295,
    4341      107,   102,   108,   104,   155,   138,   138,   102,   102,   102,
    4342      102,   254,    40,   154,   170,   171,   296,   109,   126,   162,
    4343      172,   102,   124,   162,   124,   126,   102,   126,    89,   126,
    4344      236,   106,   102,   284,   124,    75,   109,   127,   127,   162,
    4345       89,   108,   109,   127,   194,   195,   201,   124,   161,   161,
    4346      194,   164,   188,   214,   352,   102,   126,   107,   236,   107,
    4347      155,   104,   104,   154,   170,   173,   175,   176,   126,   124,
    4348      173,   177,   178,   127,   101,   111,   295,   343,   131,   164,
    4349      188,   107,   101,   162,   167,   107,   173,   201,   161,    52,
    4350      167,   180,   107,   173,   102,   216,   127,   278,   162,   167,
    4351      124,   179,   180,   167,   180,   164,   102,   102,   179,   127,
    4352      164,   127
     4186      37,    38,    57,    60,    65,    67,    68,    69,    76,    77,
     4187     101,   103,   111,   129,   132,   189,   201,   202,   203,   204,
     4188     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     4189     215,   216,   217,   218,   220,   221,   222,   223,   224,   225,
     4190     226,   227,   229,   230,   231,   232,   233,   234,   235,   243,
     4191     244,   270,   271,   279,   282,   288,   289,   291,   293,   294,
     4192     300,   305,   309,   310,   311,   312,   313,   314,   315,   316,
     4193     336,   353,   354,   355,   356,    65,   111,   131,   204,   206,
     4194     214,   216,   226,   230,   232,   271,    75,   101,   298,   299,
     4195     300,   298,   298,    65,    67,    68,    69,   130,   131,   260,
     4196     261,   280,   281,    67,    68,   261,   101,   291,   215,   216,
     4197     101,   111,   305,   310,   311,   312,   314,   315,   316,   126,
     4198     103,   207,   214,   216,   309,   313,   352,   353,   356,   357,
     4199     127,   123,   264,   106,   127,   164,    67,    68,   129,   259,
     4200     127,   127,   127,   108,   127,    67,   101,   111,   295,   304,
     4201     305,   306,   307,   308,   309,   313,   317,   318,   319,   320,
     4202     321,     3,    27,    71,   228,     3,     5,    67,    68,   103,
     4203     111,   206,   217,   221,   224,   233,   309,   313,   356,   204,
     4204     206,   216,   226,   230,   232,   271,   309,   313,    32,   222,
     4205     222,   217,   224,   127,   222,   217,   222,   217,   101,   106,
     4206     261,   106,   261,   222,   217,   108,   127,   127,     0,   126,
     4207     101,   164,   298,   298,   126,   103,   214,   216,   354,   259,
     4208     259,   216,   123,   101,   111,   295,   305,   309,   103,   111,
     4209     356,   292,   219,   300,   101,   276,   101,   101,   101,    36,
     4210      38,    59,    65,    69,    72,    73,    74,    75,    79,    80,
     4211      87,   101,   103,   110,   111,   112,   113,   114,   115,   128,
     4212     132,   133,   134,   135,   140,   141,   142,   143,   144,   145,
     4213     146,   147,   148,   149,   150,   151,   152,   153,   155,   157,
     4214     214,   263,   278,   352,   357,   216,   102,   102,   102,   102,
     4215     102,   102,   102,   103,   111,   127,   155,   206,   207,   213,
     4216     216,   220,   221,   226,   229,   230,   232,   249,   250,   254,
     4217     255,   256,   257,   271,   336,   348,   349,   350,   351,   356,
     4218     357,   126,   101,   309,   313,   356,   101,   108,   124,   103,
     4219     106,   111,   155,   265,   107,   126,   108,   124,   101,   108,
     4220     124,   108,   124,   108,   124,   298,   124,   305,   306,   307,
     4221     308,   318,   319,   320,   321,   216,   304,   317,    57,   297,
     4222     103,   298,   335,   336,   298,   298,   164,   126,   101,   298,
     4223     335,   298,   298,   216,   295,   101,   101,   215,   214,   216,
     4224     101,   126,   214,   352,   357,   164,   126,   259,   264,   206,
     4225     221,   309,   313,   164,   126,   280,   216,   226,   124,   216,
     4226     216,   126,    38,   103,   214,   236,   237,   238,   239,   352,
     4227     356,   106,   245,   261,   106,   216,   280,   124,   124,   291,
     4228     126,   131,   258,     3,   127,   196,   197,   211,   213,   216,
     4229     126,   297,   101,   297,   155,   305,   216,   101,   126,   259,
     4230     106,    32,    33,    34,   214,   272,   273,   275,   126,   121,
     4231     123,   277,   126,   217,   223,   224,   259,   301,   302,   303,
     4232     140,   153,   154,   101,   140,   142,   101,   140,   101,   101,
     4233     140,   140,   131,   103,   155,   160,   164,   214,   262,   352,
     4234     126,   142,   142,    75,    78,    79,    80,   101,   103,   105,
     4235      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
     4236     123,   159,   142,   111,   116,   117,   113,   114,    81,    82,
     4237      83,    84,   118,   119,    85,    86,   112,   120,   121,    87,
     4238      88,   122,   123,   359,   101,   111,   331,   332,   333,   334,
     4239     335,   102,   108,   101,   335,   103,   336,   101,   335,   336,
     4240     126,   103,   111,   127,   214,   216,   347,   348,   356,   357,
     4241     104,   127,    67,   101,   103,   111,   305,   322,   323,   324,
     4242     325,   326,   327,   328,   329,   330,   336,   337,   338,   339,
     4243     340,   341,   342,   111,   356,   216,   127,   127,   111,   214,
     4244     216,   349,   259,   214,   336,   349,   259,   127,   126,   126,
     4245     126,   126,    65,   103,   105,   261,   265,   266,   267,   268,
     4246     269,   126,   126,   126,   126,   126,   126,   295,   102,   102,
     4247     102,   102,   102,   102,   102,   304,   317,   101,   264,   126,
     4248     196,   126,   295,   160,   263,   160,   263,   295,   278,   103,
     4249     127,   196,   297,   164,   126,   196,   214,   272,   278,   238,
     4250     239,   126,   101,   109,   111,   240,   242,   304,   305,   317,
     4251     335,   343,   344,   345,   346,   107,   237,   108,   124,   108,
     4252     124,   261,   236,   108,   358,   123,   246,   245,   216,   251,
     4253     252,   253,   256,   257,   102,   108,   164,   126,   111,   155,
     4254     126,   213,   216,   250,   348,   356,   289,   290,   101,   111,
     4255     322,   102,   108,   359,   261,   272,   101,   106,   261,   263,
     4256     272,   102,   108,   101,   102,   109,   262,   262,   103,   131,
     4257     137,   155,   263,   262,   126,   102,   108,   102,   101,   111,
     4258     343,   102,   108,   127,   155,   103,   131,   103,   136,   137,
     4259     126,   103,   131,   155,   155,   142,   142,   142,   143,   143,
     4260     144,   144,   145,   145,   145,   145,   146,   146,   147,   148,
     4261     149,   150,   151,   109,   160,   155,   126,   332,   333,   334,
     4262     216,   331,   298,   298,   155,   263,   126,   126,   258,   127,
     4263     216,   220,   126,   104,   356,    67,   129,   214,   336,   354,
     4264     104,   101,   126,   305,   323,   324,   325,   328,   338,   339,
     4265     340,   126,   216,   322,   326,   337,   101,   298,   341,   359,
     4266     298,   298,   359,   101,   298,   341,   298,   298,   298,   298,
     4267     336,   214,   347,   357,   259,   104,   108,   104,   108,   359,
     4268     214,   349,   359,   104,   247,   248,   249,   250,   247,   259,
     4269     127,   155,   126,   103,   261,   109,   108,   358,   265,   103,
     4270     109,   269,    28,   198,   199,   259,   247,   131,   295,   131,
     4271     297,   101,   335,   336,   101,   335,   336,   133,   111,   127,
     4272     164,   251,   102,   102,   102,   102,   102,   126,   104,   164,
     4273     196,   164,   101,   111,   127,   127,   124,   124,   103,   127,
     4274     305,   344,   345,   346,   154,   216,   343,   241,   242,   241,
     4275     298,   298,   261,   298,   107,   261,   107,   154,   358,   127,
     4276     127,   131,   211,   127,   127,   247,   101,   111,   356,   127,
     4277     107,   216,   273,   274,   127,   126,   126,   101,   127,   102,
     4278     302,   160,   161,   124,    75,   190,   191,   192,   102,   102,
     4279     126,   109,   102,   102,   102,   127,   155,   216,   106,   142,
     4280     157,   155,   156,   158,   104,   108,   127,   126,   126,   102,
     4281     108,   155,   126,   153,   109,   251,   102,   102,   102,   331,
     4282     251,   102,   104,   103,   111,   155,   155,   216,   127,   101,
     4283     101,   214,   354,   328,   251,   102,   102,   102,   102,   102,
     4284     102,   102,     7,   127,   216,   322,   326,   337,   126,   126,
     4285     359,   126,   126,   101,   127,   127,   127,   127,   264,   104,
     4286     127,   153,   154,   155,   296,   126,   265,   267,   107,   126,
     4287     200,   261,    38,    39,    41,    44,    45,    46,    47,    48,
     4288      49,    50,    51,    53,    56,   103,   131,   161,   162,   163,
     4289     164,   165,   166,   168,   169,   181,   183,   184,   189,   201,
     4290     294,    28,   127,   123,   264,   126,   126,   102,   104,   127,
     4291     127,    67,   164,   216,   102,   102,   126,   104,   102,   102,
     4292     102,   343,   240,   246,   107,   102,   108,   104,   104,   127,
     4293     216,   108,   359,   276,   102,   272,   204,   206,   214,   284,
     4294     285,   286,   287,   278,   102,   102,   101,   102,   109,   108,
     4295     155,   155,   104,   266,   108,   127,   158,   104,   131,   138,
     4296     139,   155,   137,   127,   138,   153,   157,   127,   101,   335,
     4297     336,   127,   214,   336,   349,   126,   127,   127,   127,   155,
     4298     104,   126,   126,   102,   127,   101,   335,   336,   101,   341,
     4299     101,   341,   336,   215,   104,     7,   111,   127,   155,   251,
     4300     251,   250,   254,   254,   255,   247,   102,   108,   108,   102,
     4301     104,    89,   115,   127,   127,   138,   265,   155,   108,   124,
     4302     201,   205,   216,   220,   101,   101,   162,   101,   101,   124,
     4303     131,   124,   131,   111,   131,   161,   101,   164,   124,   155,
     4304     126,   109,   124,   127,   126,   127,   200,   102,   155,   251,
     4305     251,   298,   336,   102,   104,   101,   106,   261,   261,   127,
     4306     101,   335,   336,   126,   102,   126,   127,   295,   107,   126,
     4307     127,   127,   102,   106,   154,   124,   190,   192,   108,   127,
     4308     358,   156,   104,   127,    78,   105,   108,   127,   127,   104,
     4309     127,   102,   126,   102,   214,   349,   104,   104,   104,   127,
     4310     247,   247,   102,   126,   126,   126,   155,   155,   127,   104,
     4311     127,   127,   127,   127,   102,   126,   126,   154,   154,   104,
     4312     104,   127,   127,   261,   216,   160,   160,    45,   160,   126,
     4313     124,   124,   160,   124,   124,   160,    54,    55,   185,   186,
     4314     187,   124,   127,   298,   166,   107,   124,   127,   127,   278,
     4315     236,   106,   104,   126,    89,   256,   257,   102,   285,   108,
     4316     124,   108,   124,   107,   283,   102,   102,   109,   158,   104,
     4317     107,   104,   103,   139,   103,   139,   139,   104,   104,   104,
     4318     251,   104,   127,   127,   251,   251,   251,   127,   127,   104,
     4319     104,   102,   102,   104,   108,    89,   250,    89,   127,   104,
     4320     104,   102,   102,   101,   102,   161,   182,   201,   124,   102,
     4321     101,   164,   187,    54,   104,   162,   102,   102,   102,   107,
     4322     236,   251,   106,   126,   126,   284,   124,    75,   193,   127,
     4323     109,   126,   126,   127,   102,   102,   127,   127,   127,   104,
     4324     104,   126,   127,   104,   162,    42,    43,   106,   172,   173,
     4325     174,   160,   162,   127,   102,   161,   106,   174,    89,   126,
     4326     101,   106,   261,   107,   127,   126,   259,   295,   107,   102,
     4327     108,   104,   155,   138,   138,   102,   102,   102,   102,   254,
     4328      40,   154,   170,   171,   296,   109,   126,   162,   172,   102,
     4329     124,   162,   124,   126,   102,   126,    89,   126,   236,   106,
     4330     102,   284,   124,    75,   109,   127,   127,   162,    89,   108,
     4331     109,   127,   194,   195,   201,   124,   161,   161,   194,   164,
     4332     188,   214,   352,   102,   126,   107,   236,   107,   155,   104,
     4333     104,   154,   170,   173,   175,   176,   126,   124,   173,   177,
     4334     178,   127,   101,   111,   295,   343,   131,   164,   188,   107,
     4335     101,   162,   167,   107,   173,   201,   161,    52,   167,   180,
     4336     107,   173,   102,   216,   127,   278,   162,   167,   124,   179,
     4337     180,   167,   180,   164,   102,   102,   179,   127,   164,   127
    43534338};
    43544339
     
    67576742
    67586743/* Line 1806 of yacc.c  */
    6759 #line 1249 "parser.yy"
     6744#line 1250 "parser.yy"
    67606745    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    67616746    break;
     
    67646749
    67656750/* Line 1806 of yacc.c  */
    6766 #line 1251 "parser.yy"
     6751#line 1252 "parser.yy"
    67676752    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67686753    break;
     
    67716756
    67726757/* Line 1806 of yacc.c  */
    6773 #line 1253 "parser.yy"
    6774     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6758#line 1257 "parser.yy"
     6759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67756760    break;
    67766761
     
    67786763
    67796764/* Line 1806 of yacc.c  */
    6780 #line 1255 "parser.yy"
    6781     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6765#line 1259 "parser.yy"
     6766    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67826767    break;
    67836768
     
    67856770
    67866771/* Line 1806 of yacc.c  */
    6787 #line 1260 "parser.yy"
    6788     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6772#line 1261 "parser.yy"
     6773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67896774    break;
    67906775
     
    67926777
    67936778/* Line 1806 of yacc.c  */
    6794 #line 1262 "parser.yy"
    6795     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6779#line 1263 "parser.yy"
     6780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67966781    break;
    67976782
     
    67996784
    68006785/* Line 1806 of yacc.c  */
    6801 #line 1264 "parser.yy"
    6802     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6786#line 1265 "parser.yy"
     6787    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    68036788    break;
    68046789
     
    68066791
    68076792/* Line 1806 of yacc.c  */
    6808 #line 1266 "parser.yy"
    6809     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6793#line 1267 "parser.yy"
     6794    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    68106795    break;
    68116796
     
    68136798
    68146799/* Line 1806 of yacc.c  */
    6815 #line 1268 "parser.yy"
    6816     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6800#line 1269 "parser.yy"
     6801    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    68176802    break;
    68186803
     
    68206805
    68216806/* Line 1806 of yacc.c  */
    6822 #line 1270 "parser.yy"
    6823     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6807#line 1271 "parser.yy"
     6808    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    68246809    break;
    68256810
     
    68276812
    68286813/* Line 1806 of yacc.c  */
    6829 #line 1272 "parser.yy"
    6830     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6814#line 1273 "parser.yy"
     6815    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68316816    break;
    68326817
     
    68346819
    68356820/* Line 1806 of yacc.c  */
    6836 #line 1274 "parser.yy"
    6837     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6821#line 1275 "parser.yy"
     6822    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68386823    break;
    68396824
     
    68416826
    68426827/* Line 1806 of yacc.c  */
    6843 #line 1276 "parser.yy"
    6844     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6828#line 1277 "parser.yy"
     6829    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    68456830    break;
    68466831
     
    68486833
    68496834/* Line 1806 of yacc.c  */
    6850 #line 1278 "parser.yy"
    6851     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6852     break;
    6853 
    6854   case 316:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1280 "parser.yy"
    6858     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6835#line 1279 "parser.yy"
     6836    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    68596837    break;
    68606838
     
    68626840
    68636841/* Line 1806 of yacc.c  */
    6864 #line 1282 "parser.yy"
    6865     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6842#line 1286 "parser.yy"
     6843    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6844    break;
     6845
     6846  case 318:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1288 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68666851    break;
    68676852
     
    68696854
    68706855/* Line 1806 of yacc.c  */
    6871 #line 1289 "parser.yy"
     6856#line 1290 "parser.yy"
     6857    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6858    break;
     6859
     6860  case 320:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1292 "parser.yy"
     6864    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6865    break;
     6866
     6867  case 322:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1298 "parser.yy"
     6871    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6872    break;
     6873
     6874  case 324:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1305 "parser.yy"
    68726878    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68736879    break;
    68746880
    6875   case 320:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1291 "parser.yy"
     6881  case 325:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1307 "parser.yy"
    68796885    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68806886    break;
    68816887
    6882   case 321:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1293 "parser.yy"
     6888  case 326:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1309 "parser.yy"
     6892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6893    break;
     6894
     6895  case 327:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1314 "parser.yy"
     6899    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6900    break;
     6901
     6902  case 328:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1316 "parser.yy"
     6906    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6907    break;
     6908
     6909  case 329:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1318 "parser.yy"
     6913    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6914    break;
     6915
     6916  case 330:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1320 "parser.yy"
     6920    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6921    break;
     6922
     6923  case 332:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1326 "parser.yy"
     6927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6928    break;
     6929
     6930  case 333:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1328 "parser.yy"
     6934    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6935    break;
     6936
     6937  case 334:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1330 "parser.yy"
    68866941    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68876942    break;
    68886943
    6889   case 322:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1295 "parser.yy"
    6893     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6894     break;
    6895 
    6896   case 324:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1301 "parser.yy"
    6900     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6901     break;
    6902 
    6903   case 326:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1308 "parser.yy"
     6944  case 336:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1336 "parser.yy"
    69076948    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69086949    break;
    69096950
    6910   case 327:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1310 "parser.yy"
     6951  case 337:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1338 "parser.yy"
    69146955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69156956    break;
    69166957
    6917   case 328:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1312 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6922     break;
    6923 
    6924   case 329:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1317 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6929     break;
    6930 
    6931   case 330:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1319 "parser.yy"
    6935     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6936     break;
    6937 
    6938   case 331:
    6939 
    6940 /* Line 1806 of yacc.c  */
    6941 #line 1321 "parser.yy"
    6942     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6943     break;
    6944 
    6945   case 332:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1323 "parser.yy"
    6949     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6950     break;
    6951 
    6952   case 334:
    6953 
    6954 /* Line 1806 of yacc.c  */
    6955 #line 1329 "parser.yy"
     6958  case 339:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1344 "parser.yy"
    69566962    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69576963    break;
    69586964
    6959   case 335:
    6960 
    6961 /* Line 1806 of yacc.c  */
    6962 #line 1331 "parser.yy"
     6965  case 340:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1346 "parser.yy"
    69636969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69646970    break;
    69656971
    6966   case 336:
    6967 
    6968 /* Line 1806 of yacc.c  */
    6969 #line 1333 "parser.yy"
     6972  case 341:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1348 "parser.yy"
    69706976    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69716977    break;
    69726978
    6973   case 338:
    6974 
    6975 /* Line 1806 of yacc.c  */
    6976 #line 1339 "parser.yy"
    6977     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6978     break;
    6979 
    6980   case 339:
    6981 
    6982 /* Line 1806 of yacc.c  */
    6983 #line 1341 "parser.yy"
     6979  case 342:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1353 "parser.yy"
     6983    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6984    break;
     6985
     6986  case 343:
     6987
     6988/* Line 1806 of yacc.c  */
     6989#line 1355 "parser.yy"
     6990    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6991    break;
     6992
     6993  case 344:
     6994
     6995/* Line 1806 of yacc.c  */
     6996#line 1357 "parser.yy"
    69846997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69856998    break;
    69866999
    6987   case 341:
    6988 
    6989 /* Line 1806 of yacc.c  */
    6990 #line 1347 "parser.yy"
    6991     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6992     break;
    6993 
    6994   case 342:
    6995 
    6996 /* Line 1806 of yacc.c  */
    6997 #line 1349 "parser.yy"
    6998     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6999     break;
    7000 
    7001   case 343:
    7002 
    7003 /* Line 1806 of yacc.c  */
    7004 #line 1351 "parser.yy"
    7005     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7006     break;
    7007 
    7008   case 344:
    7009 
    7010 /* Line 1806 of yacc.c  */
    7011 #line 1356 "parser.yy"
    7012     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    7013     break;
    7014 
    7015   case 345:
    7016 
    7017 /* Line 1806 of yacc.c  */
    7018 #line 1358 "parser.yy"
    7019     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7020     break;
    7021 
    7022   case 346:
    7023 
    7024 /* Line 1806 of yacc.c  */
    7025 #line 1360 "parser.yy"
    7026     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7000  case 347:
     7001
     7002/* Line 1806 of yacc.c  */
     7003#line 1367 "parser.yy"
     7004    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); }
     7005    break;
     7006
     7007  case 348:
     7008
     7009/* Line 1806 of yacc.c  */
     7010#line 1369 "parser.yy"
     7011    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); }
    70277012    break;
    70287013
     
    70307015
    70317016/* Line 1806 of yacc.c  */
    7032 #line 1370 "parser.yy"
    7033     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); }
     7017#line 1371 "parser.yy"
     7018    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); }
    70347019    break;
    70357020
     
    70377022
    70387023/* Line 1806 of yacc.c  */
    7039 #line 1372 "parser.yy"
    7040     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); }
     7024#line 1373 "parser.yy"
     7025    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); }
    70417026    break;
    70427027
     
    70447029
    70457030/* Line 1806 of yacc.c  */
    7046 #line 1374 "parser.yy"
    7047     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); }
     7031#line 1375 "parser.yy"
     7032    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); }
    70487033    break;
    70497034
     
    70517036
    70527037/* Line 1806 of yacc.c  */
    7053 #line 1376 "parser.yy"
    7054     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); }
     7038#line 1377 "parser.yy"
     7039    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); }
    70557040    break;
    70567041
     
    70587043
    70597044/* Line 1806 of yacc.c  */
    7060 #line 1378 "parser.yy"
    7061     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); }
     7045#line 1379 "parser.yy"
     7046    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); }
    70627047    break;
    70637048
     
    70657050
    70667051/* Line 1806 of yacc.c  */
    7067 #line 1380 "parser.yy"
    7068     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); }
     7052#line 1382 "parser.yy"
     7053    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); }
    70697054    break;
    70707055
     
    70727057
    70737058/* Line 1806 of yacc.c  */
    7074 #line 1382 "parser.yy"
    7075     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); }
     7059#line 1384 "parser.yy"
     7060    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }
    70767061    break;
    70777062
     
    70797064
    70807065/* Line 1806 of yacc.c  */
    7081 #line 1385 "parser.yy"
    7082     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); }
     7066#line 1389 "parser.yy"
     7067    { (yyval.aggKey) = DeclarationNode::Struct; }
    70837068    break;
    70847069
     
    70867071
    70877072/* Line 1806 of yacc.c  */
    7088 #line 1387 "parser.yy"
    7089     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }
     7073#line 1391 "parser.yy"
     7074    { (yyval.aggKey) = DeclarationNode::Union; }
    70907075    break;
    70917076
     
    70937078
    70947079/* Line 1806 of yacc.c  */
    7095 #line 1392 "parser.yy"
    7096     { (yyval.aggKey) = DeclarationNode::Struct; }
     7080#line 1396 "parser.yy"
     7081    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70977082    break;
    70987083
     
    71007085
    71017086/* Line 1806 of yacc.c  */
    7102 #line 1394 "parser.yy"
    7103     { (yyval.aggKey) = DeclarationNode::Union; }
    7104     break;
    7105 
    7106   case 360:
    7107 
    7108 /* Line 1806 of yacc.c  */
    7109 #line 1399 "parser.yy"
    7110     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     7087#line 1398 "parser.yy"
     7088    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    71117089    break;
    71127090
     
    71147092
    71157093/* Line 1806 of yacc.c  */
    7116 #line 1401 "parser.yy"
    7117     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     7094#line 1404 "parser.yy"
     7095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71187096    break;
    71197097
     
    71287106
    71297107/* Line 1806 of yacc.c  */
    7130 #line 1410 "parser.yy"
    7131     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7108#line 1413 "parser.yy"
     7109    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7110    break;
     7111
     7112  case 366:
     7113
     7114/* Line 1806 of yacc.c  */
     7115#line 1415 "parser.yy"
     7116    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71327117    break;
    71337118
     
    71357120
    71367121/* Line 1806 of yacc.c  */
    7137 #line 1416 "parser.yy"
    7138     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7122#line 1417 "parser.yy"
     7123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71397124    break;
    71407125
     
    71427127
    71437128/* Line 1806 of yacc.c  */
    7144 #line 1418 "parser.yy"
    7145     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7129#line 1422 "parser.yy"
     7130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71467131    break;
    71477132
     
    71497134
    71507135/* Line 1806 of yacc.c  */
    7151 #line 1420 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7136#line 1424 "parser.yy"
     7137    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71537138    break;
    71547139
     
    71567141
    71577142/* Line 1806 of yacc.c  */
    7158 #line 1425 "parser.yy"
    7159     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7143#line 1429 "parser.yy"
     7144    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71607145    break;
    71617146
     
    71637148
    71647149/* Line 1806 of yacc.c  */
    7165 #line 1427 "parser.yy"
    7166     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7150#line 1431 "parser.yy"
     7151    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71677152    break;
    71687153
     
    71707155
    71717156/* Line 1806 of yacc.c  */
    7172 #line 1432 "parser.yy"
    7173     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7157#line 1434 "parser.yy"
     7158    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71747159    break;
    71757160
    71767161  case 373:
    7177 
    7178 /* Line 1806 of yacc.c  */
    7179 #line 1434 "parser.yy"
    7180     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7181     break;
    7182 
    7183   case 374:
    71847162
    71857163/* Line 1806 of yacc.c  */
     
    71917169
    71927170/* Line 1806 of yacc.c  */
    7193 #line 1440 "parser.yy"
    7194     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7171#line 1443 "parser.yy"
     7172    { (yyval.en) = 0; }
     7173    break;
     7174
     7175  case 376:
     7176
     7177/* Line 1806 of yacc.c  */
     7178#line 1445 "parser.yy"
     7179    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71957180    break;
    71967181
     
    71987183
    71997184/* Line 1806 of yacc.c  */
    7200 #line 1446 "parser.yy"
     7185#line 1450 "parser.yy"
     7186    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7187    break;
     7188
     7189  case 379:
     7190
     7191/* Line 1806 of yacc.c  */
     7192#line 1459 "parser.yy"
     7193    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7194    break;
     7195
     7196  case 380:
     7197
     7198/* Line 1806 of yacc.c  */
     7199#line 1461 "parser.yy"
     7200    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     7201    break;
     7202
     7203  case 381:
     7204
     7205/* Line 1806 of yacc.c  */
     7206#line 1463 "parser.yy"
     7207    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     7208    break;
     7209
     7210  case 382:
     7211
     7212/* Line 1806 of yacc.c  */
     7213#line 1468 "parser.yy"
     7214    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7215    break;
     7216
     7217  case 383:
     7218
     7219/* Line 1806 of yacc.c  */
     7220#line 1470 "parser.yy"
     7221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7222    break;
     7223
     7224  case 384:
     7225
     7226/* Line 1806 of yacc.c  */
     7227#line 1475 "parser.yy"
    72017228    { (yyval.en) = 0; }
    72027229    break;
    72037230
    7204   case 378:
    7205 
    7206 /* Line 1806 of yacc.c  */
    7207 #line 1448 "parser.yy"
    7208     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7209     break;
    7210 
    7211   case 379:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1453 "parser.yy"
     7231  case 385:
     7232
     7233/* Line 1806 of yacc.c  */
     7234#line 1477 "parser.yy"
    72157235    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72167236    break;
    72177237
    7218   case 381:
    7219 
    7220 /* Line 1806 of yacc.c  */
    7221 #line 1462 "parser.yy"
    7222     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7223     break;
    7224 
    7225   case 382:
    7226 
    7227 /* Line 1806 of yacc.c  */
    7228 #line 1464 "parser.yy"
    7229     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7230     break;
    7231 
    7232   case 383:
    7233 
    7234 /* Line 1806 of yacc.c  */
    7235 #line 1466 "parser.yy"
    7236     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7237     break;
    7238 
    7239   case 384:
    7240 
    7241 /* Line 1806 of yacc.c  */
    7242 #line 1471 "parser.yy"
    7243     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7244     break;
    7245 
    7246   case 385:
    7247 
    7248 /* Line 1806 of yacc.c  */
    7249 #line 1473 "parser.yy"
    7250     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7251     break;
    7252 
    72537238  case 386:
    72547239
    72557240/* Line 1806 of yacc.c  */
    7256 #line 1478 "parser.yy"
    7257     { (yyval.en) = 0; }
    7258     break;
    7259 
    7260   case 387:
    7261 
    7262 /* Line 1806 of yacc.c  */
    7263 #line 1480 "parser.yy"
    7264     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7265     break;
    7266 
    7267   case 388:
    7268 
    7269 /* Line 1806 of yacc.c  */
    7270 #line 1487 "parser.yy"
     7241#line 1484 "parser.yy"
    72717242    { (yyval.decl) = 0; }
    72727243    break;
    72737244
     7245  case 390:
     7246
     7247/* Line 1806 of yacc.c  */
     7248#line 1492 "parser.yy"
     7249    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7250    break;
     7251
     7252  case 391:
     7253
     7254/* Line 1806 of yacc.c  */
     7255#line 1494 "parser.yy"
     7256    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7257    break;
     7258
    72747259  case 392:
    72757260
    72767261/* Line 1806 of yacc.c  */
    7277 #line 1495 "parser.yy"
     7262#line 1496 "parser.yy"
     7263    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7264    break;
     7265
     7266  case 394:
     7267
     7268/* Line 1806 of yacc.c  */
     7269#line 1505 "parser.yy"
    72787270    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72797271    break;
    72807272
    7281   case 393:
    7282 
    7283 /* Line 1806 of yacc.c  */
    7284 #line 1497 "parser.yy"
     7273  case 395:
     7274
     7275/* Line 1806 of yacc.c  */
     7276#line 1507 "parser.yy"
     7277    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7278    break;
     7279
     7280  case 396:
     7281
     7282/* Line 1806 of yacc.c  */
     7283#line 1509 "parser.yy"
     7284    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7285    break;
     7286
     7287  case 398:
     7288
     7289/* Line 1806 of yacc.c  */
     7290#line 1515 "parser.yy"
     7291    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7292    break;
     7293
     7294  case 399:
     7295
     7296/* Line 1806 of yacc.c  */
     7297#line 1520 "parser.yy"
     7298    { (yyval.decl) = 0; }
     7299    break;
     7300
     7301  case 402:
     7302
     7303/* Line 1806 of yacc.c  */
     7304#line 1527 "parser.yy"
    72857305    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72867306    break;
    72877307
    7288   case 394:
    7289 
    7290 /* Line 1806 of yacc.c  */
    7291 #line 1499 "parser.yy"
    7292     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7293     break;
    7294 
    7295   case 396:
    7296 
    7297 /* Line 1806 of yacc.c  */
    7298 #line 1508 "parser.yy"
     7308  case 405:
     7309
     7310/* Line 1806 of yacc.c  */
     7311#line 1534 "parser.yy"
    72997312    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73007313    break;
    73017314
    7302   case 397:
    7303 
    7304 /* Line 1806 of yacc.c  */
    7305 #line 1510 "parser.yy"
     7315  case 406:
     7316
     7317/* Line 1806 of yacc.c  */
     7318#line 1536 "parser.yy"
    73067319    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73077320    break;
    73087321
    7309   case 398:
    7310 
    7311 /* Line 1806 of yacc.c  */
    7312 #line 1512 "parser.yy"
    7313     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7314     break;
    7315 
    7316   case 400:
    7317 
    7318 /* Line 1806 of yacc.c  */
    7319 #line 1518 "parser.yy"
    7320     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7321     break;
    7322 
    7323   case 401:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1523 "parser.yy"
    7327     { (yyval.decl) = 0; }
    7328     break;
    7329 
    7330   case 404:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1530 "parser.yy"
    7334     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7335     break;
    7336 
    7337   case 407:
    7338 
    7339 /* Line 1806 of yacc.c  */
    7340 #line 1537 "parser.yy"
    7341     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7342     break;
    7343 
    73447322  case 408:
    73457323
    73467324/* Line 1806 of yacc.c  */
    7347 #line 1539 "parser.yy"
    7348     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7349     break;
    7350 
    7351   case 410:
     7325#line 1546 "parser.yy"
     7326    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7327    break;
     7328
     7329  case 409:
    73527330
    73537331/* Line 1806 of yacc.c  */
     
    73567334    break;
    73577335
    7358   case 411:
    7359 
    7360 /* Line 1806 of yacc.c  */
    7361 #line 1552 "parser.yy"
    7362     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7363     break;
    7364 
    7365   case 412:
    7366 
    7367 /* Line 1806 of yacc.c  */
    7368 #line 1554 "parser.yy"
     7336  case 410:
     7337
     7338/* Line 1806 of yacc.c  */
     7339#line 1551 "parser.yy"
    73697340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73707341    break;
    73717342
     7343  case 415:
     7344
     7345/* Line 1806 of yacc.c  */
     7346#line 1561 "parser.yy"
     7347    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7348    break;
     7349
    73727350  case 417:
    73737351
    73747352/* Line 1806 of yacc.c  */
    7375 #line 1564 "parser.yy"
    7376     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7377     break;
    7378 
    7379   case 419:
    7380 
    7381 /* Line 1806 of yacc.c  */
    7382 #line 1570 "parser.yy"
     7353#line 1567 "parser.yy"
    73837354    {
    73847355                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73877358    break;
    73887359
    7389   case 420:
    7390 
    7391 /* Line 1806 of yacc.c  */
    7392 #line 1575 "parser.yy"
     7360  case 418:
     7361
     7362/* Line 1806 of yacc.c  */
     7363#line 1572 "parser.yy"
    73937364    {
    73947365                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73977368    break;
    73987369
     7370  case 420:
     7371
     7372/* Line 1806 of yacc.c  */
     7373#line 1581 "parser.yy"
     7374    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7375    break;
     7376
     7377  case 421:
     7378
     7379/* Line 1806 of yacc.c  */
     7380#line 1590 "parser.yy"
     7381    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7382    break;
     7383
    73997384  case 422:
    74007385
    74017386/* Line 1806 of yacc.c  */
    7402 #line 1584 "parser.yy"
     7387#line 1592 "parser.yy"
     7388    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7389    break;
     7390
     7391  case 434:
     7392
     7393/* Line 1806 of yacc.c  */
     7394#line 1617 "parser.yy"
    74037395    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74047396    break;
    74057397
    7406   case 423:
    7407 
    7408 /* Line 1806 of yacc.c  */
    7409 #line 1593 "parser.yy"
    7410     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7411     break;
    7412 
    7413   case 424:
    7414 
    7415 /* Line 1806 of yacc.c  */
    7416 #line 1595 "parser.yy"
    7417     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7418     break;
    7419 
    7420   case 436:
    7421 
    7422 /* Line 1806 of yacc.c  */
    7423 #line 1620 "parser.yy"
     7398  case 438:
     7399
     7400/* Line 1806 of yacc.c  */
     7401#line 1625 "parser.yy"
    74247402    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74257403    break;
    74267404
     7405  case 439:
     7406
     7407/* Line 1806 of yacc.c  */
     7408#line 1630 "parser.yy"
     7409    { (yyval.in) = 0; }
     7410    break;
     7411
    74277412  case 440:
    74287413
    74297414/* Line 1806 of yacc.c  */
    7430 #line 1628 "parser.yy"
    7431     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7415#line 1631 "parser.yy"
     7416    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74327417    break;
    74337418
     
    74357420
    74367421/* Line 1806 of yacc.c  */
    7437 #line 1633 "parser.yy"
    7438     { (yyval.in) = 0; }
     7422#line 1635 "parser.yy"
     7423    { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
    74397424    break;
    74407425
     
    74427427
    74437428/* Line 1806 of yacc.c  */
    7444 #line 1634 "parser.yy"
    7445     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7446     break;
    7447 
    7448   case 443:
    7449 
    7450 /* Line 1806 of yacc.c  */
    7451 #line 1638 "parser.yy"
    7452     { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
     7429#line 1636 "parser.yy"
     7430    { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); }
    74537431    break;
    74547432
     
    74567434
    74577435/* Line 1806 of yacc.c  */
    7458 #line 1639 "parser.yy"
    7459     { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); }
     7436#line 1641 "parser.yy"
     7437    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7438    break;
     7439
     7440  case 445:
     7441
     7442/* Line 1806 of yacc.c  */
     7443#line 1642 "parser.yy"
     7444    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); }
    74607445    break;
    74617446
     
    74647449/* Line 1806 of yacc.c  */
    74657450#line 1644 "parser.yy"
    7466     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7467     break;
    7468 
    7469   case 447:
    7470 
    7471 /* Line 1806 of yacc.c  */
    7472 #line 1645 "parser.yy"
    7473     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); }
     7451    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); }
    74747452    break;
    74757453
     
    74777455
    74787456/* Line 1806 of yacc.c  */
    7479 #line 1647 "parser.yy"
    7480     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); }
     7457#line 1660 "parser.yy"
     7458    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74817459    break;
    74827460
     
    74847462
    74857463/* Line 1806 of yacc.c  */
    7486 #line 1663 "parser.yy"
    7487     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7464#line 1665 "parser.yy"
     7465    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7466    break;
     7467
     7468  case 451:
     7469
     7470/* Line 1806 of yacc.c  */
     7471#line 1670 "parser.yy"
     7472    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    74887473    break;
    74897474
     
    74917476
    74927477/* Line 1806 of yacc.c  */
    7493 #line 1668 "parser.yy"
    7494     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7478#line 1674 "parser.yy"
     7479    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74957480    break;
    74967481
     
    74987483
    74997484/* Line 1806 of yacc.c  */
    7500 #line 1673 "parser.yy"
    7501     { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
     7485#line 1676 "parser.yy"
     7486    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    75027487    break;
    75037488
     
    75057490
    75067491/* Line 1806 of yacc.c  */
    7507 #line 1677 "parser.yy"
    7508     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7492#line 1678 "parser.yy"
     7493    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }
    75097494    break;
    75107495
     
    75127497
    75137498/* Line 1806 of yacc.c  */
    7514 #line 1679 "parser.yy"
    7515     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7516     break;
    7517 
    7518   case 456:
    7519 
    7520 /* Line 1806 of yacc.c  */
    7521 #line 1681 "parser.yy"
    7522     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }
     7499#line 1680 "parser.yy"
     7500    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    75237501    break;
    75247502
     
    75267504
    75277505/* Line 1806 of yacc.c  */
    7528 #line 1683 "parser.yy"
    7529     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     7506#line 1705 "parser.yy"
     7507    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7508    break;
     7509
     7510  case 458:
     7511
     7512/* Line 1806 of yacc.c  */
     7513#line 1707 "parser.yy"
     7514    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75307515    break;
    75317516
     
    75337518
    75347519/* Line 1806 of yacc.c  */
    7535 #line 1708 "parser.yy"
    7536     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7520#line 1709 "parser.yy"
     7521    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75377522    break;
    75387523
     
    75407525
    75417526/* Line 1806 of yacc.c  */
    7542 #line 1710 "parser.yy"
     7527#line 1714 "parser.yy"
     7528    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7529    break;
     7530
     7531  case 461:
     7532
     7533/* Line 1806 of yacc.c  */
     7534#line 1716 "parser.yy"
     7535    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
     7536    break;
     7537
     7538  case 462:
     7539
     7540/* Line 1806 of yacc.c  */
     7541#line 1718 "parser.yy"
    75437542    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75447543    break;
    75457544
    7546   case 461:
    7547 
    7548 /* Line 1806 of yacc.c  */
    7549 #line 1712 "parser.yy"
    7550     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7551     break;
    7552 
    7553   case 462:
    7554 
    7555 /* Line 1806 of yacc.c  */
    7556 #line 1717 "parser.yy"
    7557     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7558     break;
    7559 
    7560   case 463:
    7561 
    7562 /* Line 1806 of yacc.c  */
    7563 #line 1719 "parser.yy"
    7564     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
    7565     break;
    7566 
    75677545  case 464:
    75687546
    75697547/* Line 1806 of yacc.c  */
    7570 #line 1721 "parser.yy"
    7571     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7548#line 1724 "parser.yy"
     7549    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7550    break;
     7551
     7552  case 465:
     7553
     7554/* Line 1806 of yacc.c  */
     7555#line 1729 "parser.yy"
     7556    { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); }
    75727557    break;
    75737558
     
    75757560
    75767561/* Line 1806 of yacc.c  */
    7577 #line 1727 "parser.yy"
    7578     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7579     break;
    7580 
    7581   case 467:
    7582 
    7583 /* Line 1806 of yacc.c  */
    7584 #line 1732 "parser.yy"
    7585     { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); }
     7562#line 1731 "parser.yy"
     7563    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75867564    break;
    75877565
     
    75897567
    75907568/* Line 1806 of yacc.c  */
    7591 #line 1734 "parser.yy"
    7592     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7569#line 1737 "parser.yy"
     7570    { (yyval.tclass) = DeclarationNode::Type; }
     7571    break;
     7572
     7573  case 469:
     7574
     7575/* Line 1806 of yacc.c  */
     7576#line 1739 "parser.yy"
     7577    { (yyval.tclass) = DeclarationNode::Ftype; }
    75937578    break;
    75947579
     
    75967581
    75977582/* Line 1806 of yacc.c  */
    7598 #line 1740 "parser.yy"
    7599     { (yyval.tclass) = DeclarationNode::Type; }
     7583#line 1741 "parser.yy"
     7584    { (yyval.tclass) = DeclarationNode::Dtype; }
    76007585    break;
    76017586
     
    76037588
    76047589/* Line 1806 of yacc.c  */
    7605 #line 1742 "parser.yy"
    7606     { (yyval.tclass) = DeclarationNode::Ftype; }
     7590#line 1746 "parser.yy"
     7591    { (yyval.decl) = 0; }
    76077592    break;
    76087593
     
    76107595
    76117596/* Line 1806 of yacc.c  */
    7612 #line 1744 "parser.yy"
    7613     { (yyval.tclass) = DeclarationNode::Dtype; }
     7597#line 1748 "parser.yy"
     7598    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    76147599    break;
    76157600
     
    76177602
    76187603/* Line 1806 of yacc.c  */
    7619 #line 1749 "parser.yy"
    7620     { (yyval.decl) = 0; }
    7621     break;
    7622 
    7623   case 474:
    7624 
    7625 /* Line 1806 of yacc.c  */
    7626 #line 1751 "parser.yy"
    7627     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7628     break;
    7629 
    7630   case 475:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1756 "parser.yy"
     7604#line 1753 "parser.yy"
    76347605    {
    76357606                        typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) );
     
    76387609    break;
    76397610
     7611  case 474:
     7612
     7613/* Line 1806 of yacc.c  */
     7614#line 1758 "parser.yy"
     7615    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7616    break;
     7617
     7618  case 475:
     7619
     7620/* Line 1806 of yacc.c  */
     7621#line 1760 "parser.yy"
     7622    { (yyval.decl) = 0; }
     7623    break;
     7624
    76407625  case 476:
    76417626
    76427627/* Line 1806 of yacc.c  */
    7643 #line 1761 "parser.yy"
    7644     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7645     break;
    7646 
    7647   case 477:
    7648 
    7649 /* Line 1806 of yacc.c  */
    7650 #line 1763 "parser.yy"
    7651     { (yyval.decl) = 0; }
     7628#line 1765 "parser.yy"
     7629    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76527630    break;
    76537631
     
    76567634/* Line 1806 of yacc.c  */
    76577635#line 1768 "parser.yy"
    7658     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7636    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7637    break;
     7638
     7639  case 479:
     7640
     7641/* Line 1806 of yacc.c  */
     7642#line 1770 "parser.yy"
     7643    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
    76597644    break;
    76607645
     
    76627647
    76637648/* Line 1806 of yacc.c  */
    7664 #line 1771 "parser.yy"
    7665     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7649#line 1775 "parser.yy"
     7650    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76667651    break;
    76677652
     
    76697654
    76707655/* Line 1806 of yacc.c  */
    7671 #line 1773 "parser.yy"
    7672     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
     7656#line 1777 "parser.yy"
     7657    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76737658    break;
    76747659
     
    76767661
    76777662/* Line 1806 of yacc.c  */
    7678 #line 1778 "parser.yy"
    7679     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7663#line 1779 "parser.yy"
     7664    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76807665    break;
    76817666
     
    76837668
    76847669/* Line 1806 of yacc.c  */
    7685 #line 1780 "parser.yy"
    7686     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7670#line 1784 "parser.yy"
     7671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76877672    break;
    76887673
     
    76907675
    76917676/* Line 1806 of yacc.c  */
    7692 #line 1782 "parser.yy"
    7693     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7677#line 1786 "parser.yy"
     7678    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76947679    break;
    76957680
     
    76977682
    76987683/* Line 1806 of yacc.c  */
    7699 #line 1787 "parser.yy"
    7700     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7701     break;
    7702 
    7703   case 486:
    7704 
    7705 /* Line 1806 of yacc.c  */
    7706 #line 1789 "parser.yy"
    7707     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7708     break;
    7709 
    7710   case 487:
    7711 
    7712 /* Line 1806 of yacc.c  */
    7713 #line 1794 "parser.yy"
     7684#line 1791 "parser.yy"
    77147685    {
    77157686                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD);
     
    77187689    break;
    77197690
    7720   case 488:
    7721 
    7722 /* Line 1806 of yacc.c  */
    7723 #line 1799 "parser.yy"
     7691  case 486:
     7692
     7693/* Line 1806 of yacc.c  */
     7694#line 1796 "parser.yy"
    77247695    {
    77257696                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (6)].tok)), TypedefTable::TG);
     
    77287699    break;
    77297700
    7730   case 489:
    7731 
    7732 /* Line 1806 of yacc.c  */
    7733 #line 1807 "parser.yy"
     7701  case 487:
     7702
     7703/* Line 1806 of yacc.c  */
     7704#line 1804 "parser.yy"
    77347705    {
    77357706                        typedefTable.addToEnclosingScope(*((yyvsp[(2) - (9)].tok)), TypedefTable::ID );
     
    77387709    break;
    77397710
    7740   case 490:
    7741 
    7742 /* Line 1806 of yacc.c  */
    7743 #line 1812 "parser.yy"
     7711  case 488:
     7712
     7713/* Line 1806 of yacc.c  */
     7714#line 1809 "parser.yy"
    77447715    {
    77457716                        typedefTable.enterContext( *((yyvsp[(2) - (8)].tok)) );
     
    77487719    break;
    77497720
    7750   case 491:
    7751 
    7752 /* Line 1806 of yacc.c  */
    7753 #line 1817 "parser.yy"
     7721  case 489:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1814 "parser.yy"
    77547725    {
    77557726                        typedefTable.leaveContext();
     
    77597730    break;
    77607731
    7761   case 493:
    7762 
    7763 /* Line 1806 of yacc.c  */
    7764 #line 1827 "parser.yy"
     7732  case 491:
     7733
     7734/* Line 1806 of yacc.c  */
     7735#line 1824 "parser.yy"
    77657736    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77667737    break;
    77677738
    7768   case 496:
    7769 
    7770 /* Line 1806 of yacc.c  */
    7771 #line 1837 "parser.yy"
     7739  case 494:
     7740
     7741/* Line 1806 of yacc.c  */
     7742#line 1834 "parser.yy"
    77727743    {
    77737744                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77767747    break;
    77777748
    7778   case 497:
    7779 
    7780 /* Line 1806 of yacc.c  */
    7781 #line 1842 "parser.yy"
     7749  case 495:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1839 "parser.yy"
    77827753    {
    77837754                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77867757    break;
    77877758
    7788   case 498:
    7789 
    7790 /* Line 1806 of yacc.c  */
    7791 #line 1847 "parser.yy"
     7759  case 496:
     7760
     7761/* Line 1806 of yacc.c  */
     7762#line 1844 "parser.yy"
    77927763    {
    77937764                        typedefTable.addToEnclosingScope2( *((yyvsp[(5) - (5)].tok)), TypedefTable::ID );
     
    77967767    break;
    77977768
    7798   case 499:
    7799 
    7800 /* Line 1806 of yacc.c  */
    7801 #line 1855 "parser.yy"
     7769  case 497:
     7770
     7771/* Line 1806 of yacc.c  */
     7772#line 1852 "parser.yy"
    78027773    {
    78037774                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78067777    break;
    78077778
    7808   case 500:
    7809 
    7810 /* Line 1806 of yacc.c  */
    7811 #line 1860 "parser.yy"
     7779  case 498:
     7780
     7781/* Line 1806 of yacc.c  */
     7782#line 1857 "parser.yy"
    78127783    {
    78137784                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78167787    break;
    78177788
    7818   case 501:
    7819 
    7820 /* Line 1806 of yacc.c  */
    7821 #line 1870 "parser.yy"
     7789  case 499:
     7790
     7791/* Line 1806 of yacc.c  */
     7792#line 1867 "parser.yy"
    78227793    {}
    78237794    break;
    78247795
    7825   case 502:
    7826 
    7827 /* Line 1806 of yacc.c  */
    7828 #line 1872 "parser.yy"
     7796  case 500:
     7797
     7798/* Line 1806 of yacc.c  */
     7799#line 1869 "parser.yy"
    78297800    {
    78307801                        if ( theTree ) {
     
    78367807    break;
    78377808
    7838   case 504:
    7839 
    7840 /* Line 1806 of yacc.c  */
    7841 #line 1884 "parser.yy"
     7809  case 502:
     7810
     7811/* Line 1806 of yacc.c  */
     7812#line 1881 "parser.yy"
    78427813    { (yyval.decl) = ((yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78437814    break;
    78447815
    7845   case 505:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 1889 "parser.yy"
     7816  case 503:
     7817
     7818/* Line 1806 of yacc.c  */
     7819#line 1886 "parser.yy"
    78497820    { (yyval.decl) = 0; }
    78507821    break;
    78517822
    7852   case 509:
    7853 
    7854 /* Line 1806 of yacc.c  */
    7855 #line 1897 "parser.yy"
     7823  case 507:
     7824
     7825/* Line 1806 of yacc.c  */
     7826#line 1894 "parser.yy"
    78567827    {}
    78577828    break;
    78587829
    7859   case 510:
    7860 
    7861 /* Line 1806 of yacc.c  */
    7862 #line 1899 "parser.yy"
     7830  case 508:
     7831
     7832/* Line 1806 of yacc.c  */
     7833#line 1896 "parser.yy"
    78637834    {
    78647835                        linkageStack.push( linkage );
     
    78677838    break;
    78687839
    7869   case 511:
    7870 
    7871 /* Line 1806 of yacc.c  */
    7872 #line 1904 "parser.yy"
     7840  case 509:
     7841
     7842/* Line 1806 of yacc.c  */
     7843#line 1901 "parser.yy"
    78737844    {
    78747845                        linkage = linkageStack.top();
     
    78787849    break;
    78797850
     7851  case 510:
     7852
     7853/* Line 1806 of yacc.c  */
     7854#line 1907 "parser.yy"
     7855    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7856    break;
     7857
    78807858  case 512:
    78817859
    78827860/* Line 1806 of yacc.c  */
    7883 #line 1910 "parser.yy"
    7884     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7885     break;
    7886 
    7887   case 514:
    7888 
    7889 /* Line 1806 of yacc.c  */
    7890 #line 1922 "parser.yy"
     7861#line 1919 "parser.yy"
    78917862    {
    78927863                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78967867    break;
    78977868
    7898   case 515:
    7899 
    7900 /* Line 1806 of yacc.c  */
    7901 #line 1928 "parser.yy"
     7869  case 513:
     7870
     7871/* Line 1806 of yacc.c  */
     7872#line 1925 "parser.yy"
    79027873    {
    79037874                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79077878    break;
    79087879
    7909   case 516:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 1937 "parser.yy"
     7880  case 514:
     7881
     7882/* Line 1806 of yacc.c  */
     7883#line 1934 "parser.yy"
    79137884    {
    79147885                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79187889    break;
    79197890
    7920   case 517:
    7921 
    7922 /* Line 1806 of yacc.c  */
    7923 #line 1943 "parser.yy"
     7891  case 515:
     7892
     7893/* Line 1806 of yacc.c  */
     7894#line 1940 "parser.yy"
    79247895    {
    79257896                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79297900    break;
    79307901
    7931   case 518:
    7932 
    7933 /* Line 1806 of yacc.c  */
    7934 #line 1949 "parser.yy"
     7902  case 516:
     7903
     7904/* Line 1806 of yacc.c  */
     7905#line 1946 "parser.yy"
    79357906    {
    79367907                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79407911    break;
    79417912
    7942   case 519:
    7943 
    7944 /* Line 1806 of yacc.c  */
    7945 #line 1955 "parser.yy"
     7913  case 517:
     7914
     7915/* Line 1806 of yacc.c  */
     7916#line 1952 "parser.yy"
    79467917    {
    79477918                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79517922    break;
    79527923
    7953   case 520:
    7954 
    7955 /* Line 1806 of yacc.c  */
    7956 #line 1961 "parser.yy"
     7924  case 518:
     7925
     7926/* Line 1806 of yacc.c  */
     7927#line 1958 "parser.yy"
    79577928    {
    79587929                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79627933    break;
    79637934
    7964   case 521:
    7965 
    7966 /* Line 1806 of yacc.c  */
    7967 #line 1969 "parser.yy"
     7935  case 519:
     7936
     7937/* Line 1806 of yacc.c  */
     7938#line 1966 "parser.yy"
    79687939    {
    79697940                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79737944    break;
    79747945
    7975   case 522:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 1975 "parser.yy"
     7946  case 520:
     7947
     7948/* Line 1806 of yacc.c  */
     7949#line 1972 "parser.yy"
    79797950    {
    79807951                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79847955    break;
    79857956
    7986   case 523:
    7987 
    7988 /* Line 1806 of yacc.c  */
    7989 #line 1983 "parser.yy"
     7957  case 521:
     7958
     7959/* Line 1806 of yacc.c  */
     7960#line 1980 "parser.yy"
    79907961    {
    79917962                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79957966    break;
    79967967
    7997   case 524:
    7998 
    7999 /* Line 1806 of yacc.c  */
    8000 #line 1989 "parser.yy"
     7968  case 522:
     7969
     7970/* Line 1806 of yacc.c  */
     7971#line 1986 "parser.yy"
    80017972    {
    80027973                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80067977    break;
    80077978
    8008   case 528:
    8009 
    8010 /* Line 1806 of yacc.c  */
    8011 #line 2004 "parser.yy"
     7979  case 526:
     7980
     7981/* Line 1806 of yacc.c  */
     7982#line 2001 "parser.yy"
    80127983    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    80137984    break;
    80147985
     7986  case 539:
     7987
     7988/* Line 1806 of yacc.c  */
     7989#line 2035 "parser.yy"
     7990    {}
     7991    break;
     7992
     7993  case 540:
     7994
     7995/* Line 1806 of yacc.c  */
     7996#line 2036 "parser.yy"
     7997    {}
     7998    break;
     7999
    80158000  case 541:
     8001
     8002/* Line 1806 of yacc.c  */
     8003#line 2037 "parser.yy"
     8004    {}
     8005    break;
     8006
     8007  case 542:
    80168008
    80178009/* Line 1806 of yacc.c  */
     
    80208012    break;
    80218013
    8022   case 542:
    8023 
    8024 /* Line 1806 of yacc.c  */
    8025 #line 2039 "parser.yy"
    8026     {}
    8027     break;
    8028 
    8029   case 543:
    8030 
    8031 /* Line 1806 of yacc.c  */
    8032 #line 2040 "parser.yy"
    8033     {}
    8034     break;
    8035 
    8036   case 544:
    8037 
    8038 /* Line 1806 of yacc.c  */
    8039 #line 2041 "parser.yy"
    8040     {}
    8041     break;
    8042 
    8043   case 549:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2084 "parser.yy"
     8014  case 547:
     8015
     8016/* Line 1806 of yacc.c  */
     8017#line 2081 "parser.yy"
    80478018    {
    80488019                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    80518022    break;
    80528023
     8024  case 548:
     8025
     8026/* Line 1806 of yacc.c  */
     8027#line 2086 "parser.yy"
     8028    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8029    break;
     8030
     8031  case 549:
     8032
     8033/* Line 1806 of yacc.c  */
     8034#line 2091 "parser.yy"
     8035    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8036    break;
     8037
    80538038  case 550:
    80548039
    80558040/* Line 1806 of yacc.c  */
    8056 #line 2089 "parser.yy"
     8041#line 2093 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8043    break;
     8044
     8045  case 551:
     8046
     8047/* Line 1806 of yacc.c  */
     8048#line 2095 "parser.yy"
    80578049    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80588050    break;
    80598051
    8060   case 551:
    8061 
    8062 /* Line 1806 of yacc.c  */
    8063 #line 2094 "parser.yy"
     8052  case 552:
     8053
     8054/* Line 1806 of yacc.c  */
     8055#line 2100 "parser.yy"
     8056    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8057    break;
     8058
     8059  case 553:
     8060
     8061/* Line 1806 of yacc.c  */
     8062#line 2102 "parser.yy"
     8063    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8064    break;
     8065
     8066  case 554:
     8067
     8068/* Line 1806 of yacc.c  */
     8069#line 2104 "parser.yy"
     8070    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8071    break;
     8072
     8073  case 555:
     8074
     8075/* Line 1806 of yacc.c  */
     8076#line 2106 "parser.yy"
     8077    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8078    break;
     8079
     8080  case 556:
     8081
     8082/* Line 1806 of yacc.c  */
     8083#line 2111 "parser.yy"
     8084    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8085    break;
     8086
     8087  case 557:
     8088
     8089/* Line 1806 of yacc.c  */
     8090#line 2113 "parser.yy"
     8091    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8092    break;
     8093
     8094  case 561:
     8095
     8096/* Line 1806 of yacc.c  */
     8097#line 2129 "parser.yy"
     8098    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8099    break;
     8100
     8101  case 562:
     8102
     8103/* Line 1806 of yacc.c  */
     8104#line 2131 "parser.yy"
     8105    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8106    break;
     8107
     8108  case 563:
     8109
     8110/* Line 1806 of yacc.c  */
     8111#line 2133 "parser.yy"
     8112    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8113    break;
     8114
     8115  case 564:
     8116
     8117/* Line 1806 of yacc.c  */
     8118#line 2138 "parser.yy"
    80648119    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80658120    break;
    80668121
    8067   case 552:
    8068 
    8069 /* Line 1806 of yacc.c  */
    8070 #line 2096 "parser.yy"
     8122  case 565:
     8123
     8124/* Line 1806 of yacc.c  */
     8125#line 2140 "parser.yy"
    80718126    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80728127    break;
    80738128
    8074   case 553:
    8075 
    8076 /* Line 1806 of yacc.c  */
    8077 #line 2098 "parser.yy"
     8129  case 566:
     8130
     8131/* Line 1806 of yacc.c  */
     8132#line 2142 "parser.yy"
    80788133    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80798134    break;
    80808135
    8081   case 554:
    8082 
    8083 /* Line 1806 of yacc.c  */
    8084 #line 2103 "parser.yy"
    8085     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8086     break;
    8087 
    8088   case 555:
    8089 
    8090 /* Line 1806 of yacc.c  */
    8091 #line 2105 "parser.yy"
     8136  case 567:
     8137
     8138/* Line 1806 of yacc.c  */
     8139#line 2147 "parser.yy"
    80928140    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80938141    break;
    80948142
    8095   case 556:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2107 "parser.yy"
     8143  case 568:
     8144
     8145/* Line 1806 of yacc.c  */
     8146#line 2149 "parser.yy"
    80998147    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81008148    break;
    81018149
    8102   case 557:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2109 "parser.yy"
     8150  case 569:
     8151
     8152/* Line 1806 of yacc.c  */
     8153#line 2151 "parser.yy"
    81068154    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81078155    break;
    81088156
    8109   case 558:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2114 "parser.yy"
    8113     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8114     break;
    8115 
    8116   case 559:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2116 "parser.yy"
     8157  case 573:
     8158
     8159/* Line 1806 of yacc.c  */
     8160#line 2166 "parser.yy"
     8161    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8162    break;
     8163
     8164  case 574:
     8165
     8166/* Line 1806 of yacc.c  */
     8167#line 2168 "parser.yy"
     8168    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8169    break;
     8170
     8171  case 575:
     8172
     8173/* Line 1806 of yacc.c  */
     8174#line 2170 "parser.yy"
    81208175    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81218176    break;
    81228177
    8123   case 563:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2132 "parser.yy"
    8127     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8128     break;
    8129 
    8130   case 564:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2134 "parser.yy"
    8134     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8135     break;
    8136 
    8137   case 565:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2136 "parser.yy"
     8178  case 576:
     8179
     8180/* Line 1806 of yacc.c  */
     8181#line 2175 "parser.yy"
     8182    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8183    break;
     8184
     8185  case 577:
     8186
     8187/* Line 1806 of yacc.c  */
     8188#line 2177 "parser.yy"
     8189    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8190    break;
     8191
     8192  case 578:
     8193
     8194/* Line 1806 of yacc.c  */
     8195#line 2179 "parser.yy"
    81418196    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81428197    break;
    81438198
    8144   case 566:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2141 "parser.yy"
    8148     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8149     break;
    8150 
    8151   case 567:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2143 "parser.yy"
    8155     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8156     break;
    8157 
    8158   case 568:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2145 "parser.yy"
     8199  case 579:
     8200
     8201/* Line 1806 of yacc.c  */
     8202#line 2184 "parser.yy"
     8203    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8204    break;
     8205
     8206  case 580:
     8207
     8208/* Line 1806 of yacc.c  */
     8209#line 2186 "parser.yy"
     8210    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8211    break;
     8212
     8213  case 581:
     8214
     8215/* Line 1806 of yacc.c  */
     8216#line 2188 "parser.yy"
    81628217    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81638218    break;
    81648219
    8165   case 569:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2150 "parser.yy"
    8169     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8170     break;
    8171 
    8172   case 570:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2152 "parser.yy"
    8176     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8177     break;
    8178 
    8179   case 571:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2154 "parser.yy"
    8183     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8184     break;
    8185 
    8186   case 575:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2169 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8191     break;
    8192 
    8193   case 576:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2171 "parser.yy"
    8197     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8198     break;
    8199 
    8200   case 577:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2173 "parser.yy"
    8204     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8205     break;
    8206 
    8207   case 578:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2178 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8212     break;
    8213 
    8214   case 579:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2180 "parser.yy"
    8218     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8219     break;
    8220 
    8221   case 580:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2182 "parser.yy"
    8225     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8226     break;
    8227 
    8228   case 581:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2187 "parser.yy"
    8232     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8233     break;
    8234 
    8235   case 582:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2189 "parser.yy"
    8239     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8240     break;
    8241 
    8242   case 583:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2191 "parser.yy"
    8246     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8247     break;
    8248 
    8249   case 588:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2213 "parser.yy"
     8220  case 586:
     8221
     8222/* Line 1806 of yacc.c  */
     8223#line 2210 "parser.yy"
    82538224    {
    82548225                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    82578228    break;
    82588229
     8230  case 587:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2215 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8235    break;
     8236
     8237  case 588:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2220 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8242    break;
     8243
    82598244  case 589:
    82608245
    82618246/* Line 1806 of yacc.c  */
    8262 #line 2218 "parser.yy"
     8247#line 2222 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8249    break;
     8250
     8251  case 590:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2224 "parser.yy"
    82638255    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82648256    break;
    82658257
    8266   case 590:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2223 "parser.yy"
     8258  case 591:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2229 "parser.yy"
     8262    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8263    break;
     8264
     8265  case 592:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2231 "parser.yy"
     8269    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8270    break;
     8271
     8272  case 593:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2233 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8277    break;
     8278
     8279  case 594:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2235 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8284    break;
     8285
     8286  case 595:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2240 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8291    break;
     8292
     8293  case 596:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2242 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8298    break;
     8299
     8300  case 597:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2244 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8305    break;
     8306
     8307  case 602:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2261 "parser.yy"
    82708311    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82718312    break;
    82728313
    8273   case 591:
    8274 
    8275 /* Line 1806 of yacc.c  */
    8276 #line 2225 "parser.yy"
     8314  case 603:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2263 "parser.yy"
    82778318    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82788319    break;
    82798320
    8280   case 592:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2227 "parser.yy"
     8321  case 604:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2265 "parser.yy"
    82848325    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82858326    break;
    82868327
    8287   case 593:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2232 "parser.yy"
     8328  case 605:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2270 "parser.yy"
    82918332    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82928333    break;
    82938334
    8294   case 594:
    8295 
    8296 /* Line 1806 of yacc.c  */
    8297 #line 2234 "parser.yy"
     8335  case 606:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2272 "parser.yy"
    82988339    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82998340    break;
    83008341
    8301   case 595:
    8302 
    8303 /* Line 1806 of yacc.c  */
    8304 #line 2236 "parser.yy"
     8342  case 607:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2274 "parser.yy"
    83058346    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83068347    break;
    83078348
    8308   case 596:
    8309 
    8310 /* Line 1806 of yacc.c  */
    8311 #line 2238 "parser.yy"
     8349  case 608:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2276 "parser.yy"
    83128353    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83138354    break;
    83148355
    8315   case 597:
    8316 
    8317 /* Line 1806 of yacc.c  */
    8318 #line 2243 "parser.yy"
     8356  case 609:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2281 "parser.yy"
    83198360    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83208361    break;
    83218362
    8322   case 598:
    8323 
    8324 /* Line 1806 of yacc.c  */
    8325 #line 2245 "parser.yy"
     8363  case 610:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2283 "parser.yy"
    83268367    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83278368    break;
    83288369
    8329   case 599:
    8330 
    8331 /* Line 1806 of yacc.c  */
    8332 #line 2247 "parser.yy"
     8370  case 611:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2285 "parser.yy"
    83338374    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83348375    break;
    83358376
    8336   case 604:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2264 "parser.yy"
    8340     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8341     break;
    8342 
    8343   case 605:
    8344 
    8345 /* Line 1806 of yacc.c  */
    8346 #line 2266 "parser.yy"
    8347     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8348     break;
    8349 
    8350   case 606:
    8351 
    8352 /* Line 1806 of yacc.c  */
    8353 #line 2268 "parser.yy"
    8354     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8355     break;
    8356 
    8357   case 607:
    8358 
    8359 /* Line 1806 of yacc.c  */
    8360 #line 2273 "parser.yy"
    8361     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8362     break;
    8363 
    8364   case 608:
    8365 
    8366 /* Line 1806 of yacc.c  */
    8367 #line 2275 "parser.yy"
    8368     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8369     break;
    8370 
    8371   case 609:
    8372 
    8373 /* Line 1806 of yacc.c  */
    8374 #line 2277 "parser.yy"
    8375     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8376     break;
    8377 
    8378   case 610:
    8379 
    8380 /* Line 1806 of yacc.c  */
    8381 #line 2279 "parser.yy"
    8382     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8383     break;
    8384 
    8385   case 611:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2284 "parser.yy"
    8389     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8390     break;
    8391 
    8392   case 612:
    8393 
    8394 /* Line 1806 of yacc.c  */
    8395 #line 2286 "parser.yy"
    8396     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8397     break;
    8398 
    8399   case 613:
    8400 
    8401 /* Line 1806 of yacc.c  */
    8402 #line 2288 "parser.yy"
    8403     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8404     break;
    8405 
    8406   case 618:
    8407 
    8408 /* Line 1806 of yacc.c  */
    8409 #line 2326 "parser.yy"
     8377  case 616:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2323 "parser.yy"
    84108381    {
    84118382                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    84148385    break;
    84158386
     8387  case 617:
     8388
     8389/* Line 1806 of yacc.c  */
     8390#line 2331 "parser.yy"
     8391    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8392    break;
     8393
     8394  case 618:
     8395
     8396/* Line 1806 of yacc.c  */
     8397#line 2333 "parser.yy"
     8398    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8399    break;
     8400
    84168401  case 619:
    84178402
    84188403/* Line 1806 of yacc.c  */
    8419 #line 2334 "parser.yy"
     8404#line 2335 "parser.yy"
     8405    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8406    break;
     8407
     8408  case 620:
     8409
     8410/* Line 1806 of yacc.c  */
     8411#line 2340 "parser.yy"
     8412    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8413    break;
     8414
     8415  case 621:
     8416
     8417/* Line 1806 of yacc.c  */
     8418#line 2342 "parser.yy"
     8419    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8420    break;
     8421
     8422  case 622:
     8423
     8424/* Line 1806 of yacc.c  */
     8425#line 2347 "parser.yy"
     8426    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8427    break;
     8428
     8429  case 623:
     8430
     8431/* Line 1806 of yacc.c  */
     8432#line 2349 "parser.yy"
     8433    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8434    break;
     8435
     8436  case 627:
     8437
     8438/* Line 1806 of yacc.c  */
     8439#line 2369 "parser.yy"
     8440    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8441    break;
     8442
     8443  case 628:
     8444
     8445/* Line 1806 of yacc.c  */
     8446#line 2371 "parser.yy"
     8447    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8448    break;
     8449
     8450  case 629:
     8451
     8452/* Line 1806 of yacc.c  */
     8453#line 2373 "parser.yy"
    84208454    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84218455    break;
    84228456
    8423   case 620:
    8424 
    8425 /* Line 1806 of yacc.c  */
    8426 #line 2336 "parser.yy"
     8457  case 630:
     8458
     8459/* Line 1806 of yacc.c  */
     8460#line 2375 "parser.yy"
    84278461    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84288462    break;
    84298463
    8430   case 621:
    8431 
    8432 /* Line 1806 of yacc.c  */
    8433 #line 2338 "parser.yy"
     8464  case 631:
     8465
     8466/* Line 1806 of yacc.c  */
     8467#line 2377 "parser.yy"
    84348468    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84358469    break;
    84368470
    8437   case 622:
    8438 
    8439 /* Line 1806 of yacc.c  */
    8440 #line 2343 "parser.yy"
     8471  case 633:
     8472
     8473/* Line 1806 of yacc.c  */
     8474#line 2383 "parser.yy"
     8475    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8476    break;
     8477
     8478  case 634:
     8479
     8480/* Line 1806 of yacc.c  */
     8481#line 2385 "parser.yy"
     8482    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8483    break;
     8484
     8485  case 635:
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2387 "parser.yy"
     8489    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8490    break;
     8491
     8492  case 636:
     8493
     8494/* Line 1806 of yacc.c  */
     8495#line 2392 "parser.yy"
     8496    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8497    break;
     8498
     8499  case 637:
     8500
     8501/* Line 1806 of yacc.c  */
     8502#line 2394 "parser.yy"
     8503    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8504    break;
     8505
     8506  case 638:
     8507
     8508/* Line 1806 of yacc.c  */
     8509#line 2396 "parser.yy"
     8510    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8511    break;
     8512
     8513  case 639:
     8514
     8515/* Line 1806 of yacc.c  */
     8516#line 2402 "parser.yy"
     8517    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8518    break;
     8519
     8520  case 640:
     8521
     8522/* Line 1806 of yacc.c  */
     8523#line 2404 "parser.yy"
     8524    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); }
     8525    break;
     8526
     8527  case 642:
     8528
     8529/* Line 1806 of yacc.c  */
     8530#line 2410 "parser.yy"
     8531    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8532    break;
     8533
     8534  case 643:
     8535
     8536/* Line 1806 of yacc.c  */
     8537#line 2412 "parser.yy"
     8538    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8539    break;
     8540
     8541  case 644:
     8542
     8543/* Line 1806 of yacc.c  */
     8544#line 2414 "parser.yy"
     8545    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8546    break;
     8547
     8548  case 645:
     8549
     8550/* Line 1806 of yacc.c  */
     8551#line 2416 "parser.yy"
     8552    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8553    break;
     8554
     8555  case 649:
     8556
     8557/* Line 1806 of yacc.c  */
     8558#line 2436 "parser.yy"
     8559    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8560    break;
     8561
     8562  case 650:
     8563
     8564/* Line 1806 of yacc.c  */
     8565#line 2438 "parser.yy"
     8566    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8567    break;
     8568
     8569  case 651:
     8570
     8571/* Line 1806 of yacc.c  */
     8572#line 2440 "parser.yy"
     8573    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8574    break;
     8575
     8576  case 652:
     8577
     8578/* Line 1806 of yacc.c  */
     8579#line 2442 "parser.yy"
     8580    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8581    break;
     8582
     8583  case 653:
     8584
     8585/* Line 1806 of yacc.c  */
     8586#line 2444 "parser.yy"
     8587    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8588    break;
     8589
     8590  case 655:
     8591
     8592/* Line 1806 of yacc.c  */
     8593#line 2450 "parser.yy"
     8594    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8595    break;
     8596
     8597  case 656:
     8598
     8599/* Line 1806 of yacc.c  */
     8600#line 2452 "parser.yy"
     8601    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8602    break;
     8603
     8604  case 657:
     8605
     8606/* Line 1806 of yacc.c  */
     8607#line 2454 "parser.yy"
     8608    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8609    break;
     8610
     8611  case 658:
     8612
     8613/* Line 1806 of yacc.c  */
     8614#line 2459 "parser.yy"
     8615    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8616    break;
     8617
     8618  case 659:
     8619
     8620/* Line 1806 of yacc.c  */
     8621#line 2461 "parser.yy"
     8622    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8623    break;
     8624
     8625  case 660:
     8626
     8627/* Line 1806 of yacc.c  */
     8628#line 2463 "parser.yy"
     8629    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8630    break;
     8631
     8632  case 662:
     8633
     8634/* Line 1806 of yacc.c  */
     8635#line 2470 "parser.yy"
    84418636    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84428637    break;
    84438638
    8444   case 623:
    8445 
    8446 /* Line 1806 of yacc.c  */
    8447 #line 2345 "parser.yy"
     8639  case 664:
     8640
     8641/* Line 1806 of yacc.c  */
     8642#line 2482 "parser.yy"
     8643    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8644    break;
     8645
     8646  case 665:
     8647
     8648/* Line 1806 of yacc.c  */
     8649#line 2485 "parser.yy"
     8650    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8651    break;
     8652
     8653  case 666:
     8654
     8655/* Line 1806 of yacc.c  */
     8656#line 2487 "parser.yy"
     8657    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8658    break;
     8659
     8660  case 667:
     8661
     8662/* Line 1806 of yacc.c  */
     8663#line 2490 "parser.yy"
     8664    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8665    break;
     8666
     8667  case 668:
     8668
     8669/* Line 1806 of yacc.c  */
     8670#line 2492 "parser.yy"
     8671    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8672    break;
     8673
     8674  case 669:
     8675
     8676/* Line 1806 of yacc.c  */
     8677#line 2494 "parser.yy"
     8678    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8679    break;
     8680
     8681  case 673:
     8682
     8683/* Line 1806 of yacc.c  */
     8684#line 2513 "parser.yy"
     8685    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8686    break;
     8687
     8688  case 674:
     8689
     8690/* Line 1806 of yacc.c  */
     8691#line 2515 "parser.yy"
     8692    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8693    break;
     8694
     8695  case 675:
     8696
     8697/* Line 1806 of yacc.c  */
     8698#line 2517 "parser.yy"
     8699    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8700    break;
     8701
     8702  case 676:
     8703
     8704/* Line 1806 of yacc.c  */
     8705#line 2519 "parser.yy"
     8706    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8707    break;
     8708
     8709  case 677:
     8710
     8711/* Line 1806 of yacc.c  */
     8712#line 2521 "parser.yy"
     8713    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8714    break;
     8715
     8716  case 679:
     8717
     8718/* Line 1806 of yacc.c  */
     8719#line 2527 "parser.yy"
    84488720    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84498721    break;
    84508722
    8451   case 624:
    8452 
    8453 /* Line 1806 of yacc.c  */
    8454 #line 2350 "parser.yy"
    8455     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8456     break;
    8457 
    8458   case 625:
    8459 
    8460 /* Line 1806 of yacc.c  */
    8461 #line 2352 "parser.yy"
     8723  case 680:
     8724
     8725/* Line 1806 of yacc.c  */
     8726#line 2529 "parser.yy"
     8727    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8728    break;
     8729
     8730  case 681:
     8731
     8732/* Line 1806 of yacc.c  */
     8733#line 2531 "parser.yy"
     8734    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8735    break;
     8736
     8737  case 682:
     8738
     8739/* Line 1806 of yacc.c  */
     8740#line 2536 "parser.yy"
    84628741    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84638742    break;
    84648743
    8465   case 629:
    8466 
    8467 /* Line 1806 of yacc.c  */
    8468 #line 2372 "parser.yy"
    8469     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8470     break;
    8471 
    8472   case 630:
    8473 
    8474 /* Line 1806 of yacc.c  */
    8475 #line 2374 "parser.yy"
    8476     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8477     break;
    8478 
    8479   case 631:
    8480 
    8481 /* Line 1806 of yacc.c  */
    8482 #line 2376 "parser.yy"
    8483     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8484     break;
    8485 
    8486   case 632:
    8487 
    8488 /* Line 1806 of yacc.c  */
    8489 #line 2378 "parser.yy"
    8490     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8491     break;
    8492 
    8493   case 633:
    8494 
    8495 /* Line 1806 of yacc.c  */
    8496 #line 2380 "parser.yy"
     8744  case 683:
     8745
     8746/* Line 1806 of yacc.c  */
     8747#line 2538 "parser.yy"
    84978748    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84988749    break;
    84998750
    8500   case 635:
    8501 
    8502 /* Line 1806 of yacc.c  */
    8503 #line 2386 "parser.yy"
    8504     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8505     break;
    8506 
    8507   case 636:
    8508 
    8509 /* Line 1806 of yacc.c  */
    8510 #line 2388 "parser.yy"
    8511     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8512     break;
    8513 
    8514   case 637:
    8515 
    8516 /* Line 1806 of yacc.c  */
    8517 #line 2390 "parser.yy"
    8518     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8519     break;
    8520 
    8521   case 638:
    8522 
    8523 /* Line 1806 of yacc.c  */
    8524 #line 2395 "parser.yy"
    8525     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8526     break;
    8527 
    8528   case 639:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2397 "parser.yy"
    8532     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8533     break;
    8534 
    8535   case 640:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2399 "parser.yy"
    8539     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8540     break;
    8541 
    8542   case 641:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2405 "parser.yy"
    8546     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8547     break;
    8548 
    8549   case 642:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2407 "parser.yy"
    8553     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); }
    8554     break;
    8555 
    8556   case 644:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2413 "parser.yy"
    8560     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8561     break;
    8562 
    8563   case 645:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2415 "parser.yy"
    8567     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8568     break;
    8569 
    8570   case 646:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2417 "parser.yy"
    8574     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8575     break;
    8576 
    8577   case 647:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2419 "parser.yy"
    8581     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8582     break;
    8583 
    8584   case 651:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2439 "parser.yy"
    8588     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8589     break;
    8590 
    8591   case 652:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2441 "parser.yy"
    8595     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8596     break;
    8597 
    8598   case 653:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2443 "parser.yy"
    8602     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8603     break;
    8604 
    8605   case 654:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2445 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8610     break;
    8611 
    8612   case 655:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2447 "parser.yy"
    8616     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8617     break;
    8618 
    8619   case 657:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2453 "parser.yy"
    8623     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8624     break;
    8625 
    8626   case 658:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2455 "parser.yy"
    8630     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8631     break;
    8632 
    8633   case 659:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2457 "parser.yy"
    8637     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8638     break;
    8639 
    8640   case 660:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2462 "parser.yy"
    8644     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8645     break;
    8646 
    8647   case 661:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2464 "parser.yy"
    8651     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8652     break;
    8653 
    8654   case 662:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2466 "parser.yy"
    8658     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8659     break;
    8660 
    8661   case 664:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2473 "parser.yy"
    8665     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8666     break;
    8667 
    8668   case 666:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2485 "parser.yy"
    8672     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8673     break;
    8674 
    8675   case 667:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2488 "parser.yy"
     8751  case 686:
     8752
     8753/* Line 1806 of yacc.c  */
     8754#line 2548 "parser.yy"
     8755    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8756    break;
     8757
     8758  case 689:
     8759
     8760/* Line 1806 of yacc.c  */
     8761#line 2558 "parser.yy"
     8762    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8763    break;
     8764
     8765  case 690:
     8766
     8767/* Line 1806 of yacc.c  */
     8768#line 2560 "parser.yy"
     8769    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8770    break;
     8771
     8772  case 691:
     8773
     8774/* Line 1806 of yacc.c  */
     8775#line 2562 "parser.yy"
     8776    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8777    break;
     8778
     8779  case 692:
     8780
     8781/* Line 1806 of yacc.c  */
     8782#line 2564 "parser.yy"
     8783    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8784    break;
     8785
     8786  case 693:
     8787
     8788/* Line 1806 of yacc.c  */
     8789#line 2566 "parser.yy"
     8790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8791    break;
     8792
     8793  case 694:
     8794
     8795/* Line 1806 of yacc.c  */
     8796#line 2568 "parser.yy"
     8797    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8798    break;
     8799
     8800  case 695:
     8801
     8802/* Line 1806 of yacc.c  */
     8803#line 2575 "parser.yy"
     8804    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8805    break;
     8806
     8807  case 696:
     8808
     8809/* Line 1806 of yacc.c  */
     8810#line 2577 "parser.yy"
     8811    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8812    break;
     8813
     8814  case 697:
     8815
     8816/* Line 1806 of yacc.c  */
     8817#line 2579 "parser.yy"
     8818    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8819    break;
     8820
     8821  case 698:
     8822
     8823/* Line 1806 of yacc.c  */
     8824#line 2581 "parser.yy"
     8825    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8826    break;
     8827
     8828  case 699:
     8829
     8830/* Line 1806 of yacc.c  */
     8831#line 2583 "parser.yy"
     8832    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8833    break;
     8834
     8835  case 700:
     8836
     8837/* Line 1806 of yacc.c  */
     8838#line 2585 "parser.yy"
     8839    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8840    break;
     8841
     8842  case 701:
     8843
     8844/* Line 1806 of yacc.c  */
     8845#line 2587 "parser.yy"
     8846    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8847    break;
     8848
     8849  case 702:
     8850
     8851/* Line 1806 of yacc.c  */
     8852#line 2589 "parser.yy"
     8853    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8854    break;
     8855
     8856  case 703:
     8857
     8858/* Line 1806 of yacc.c  */
     8859#line 2591 "parser.yy"
     8860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8861    break;
     8862
     8863  case 704:
     8864
     8865/* Line 1806 of yacc.c  */
     8866#line 2593 "parser.yy"
     8867    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8868    break;
     8869
     8870  case 705:
     8871
     8872/* Line 1806 of yacc.c  */
     8873#line 2598 "parser.yy"
    86798874    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86808875    break;
    86818876
    8682   case 668:
    8683 
    8684 /* Line 1806 of yacc.c  */
    8685 #line 2490 "parser.yy"
    8686     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8687     break;
    8688 
    8689   case 669:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2493 "parser.yy"
     8877  case 706:
     8878
     8879/* Line 1806 of yacc.c  */
     8880#line 2600 "parser.yy"
    86938881    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86948882    break;
    86958883
    8696   case 670:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2495 "parser.yy"
    8700     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8701     break;
    8702 
    8703   case 671:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2497 "parser.yy"
    8707     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8708     break;
    8709 
    8710   case 675:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2516 "parser.yy"
    8714     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8715     break;
    8716 
    8717   case 676:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2518 "parser.yy"
    8721     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8722     break;
    8723 
    8724   case 677:
    8725 
    8726 /* Line 1806 of yacc.c  */
    8727 #line 2520 "parser.yy"
    8728     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8729     break;
    8730 
    8731   case 678:
    8732 
    8733 /* Line 1806 of yacc.c  */
    8734 #line 2522 "parser.yy"
    8735     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8736     break;
    8737 
    8738   case 679:
    8739 
    8740 /* Line 1806 of yacc.c  */
    8741 #line 2524 "parser.yy"
    8742     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8743     break;
    8744 
    8745   case 681:
    8746 
    8747 /* Line 1806 of yacc.c  */
    8748 #line 2530 "parser.yy"
    8749     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8750     break;
    8751 
    8752   case 682:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2532 "parser.yy"
    8756     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8757     break;
    8758 
    8759   case 683:
    8760 
    8761 /* Line 1806 of yacc.c  */
    8762 #line 2534 "parser.yy"
    8763     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8764     break;
    8765 
    8766   case 684:
    8767 
    8768 /* Line 1806 of yacc.c  */
    8769 #line 2539 "parser.yy"
    8770     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8771     break;
    8772 
    8773   case 685:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2541 "parser.yy"
    8777     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8778     break;
    8779 
    8780   case 688:
    8781 
    8782 /* Line 1806 of yacc.c  */
    8783 #line 2551 "parser.yy"
     8884  case 707:
     8885
     8886/* Line 1806 of yacc.c  */
     8887#line 2605 "parser.yy"
     8888    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     8889    break;
     8890
     8891  case 708:
     8892
     8893/* Line 1806 of yacc.c  */
     8894#line 2607 "parser.yy"
     8895    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     8896    break;
     8897
     8898  case 710:
     8899
     8900/* Line 1806 of yacc.c  */
     8901#line 2634 "parser.yy"
    87848902    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87858903    break;
    87868904
    8787   case 691:
    8788 
    8789 /* Line 1806 of yacc.c  */
    8790 #line 2561 "parser.yy"
     8905  case 714:
     8906
     8907/* Line 1806 of yacc.c  */
     8908#line 2645 "parser.yy"
    87918909    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87928910    break;
    87938911
    8794   case 692:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2563 "parser.yy"
     8912  case 715:
     8913
     8914/* Line 1806 of yacc.c  */
     8915#line 2647 "parser.yy"
    87988916    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87998917    break;
    88008918
    8801   case 693:
    8802 
    8803 /* Line 1806 of yacc.c  */
    8804 #line 2565 "parser.yy"
     8919  case 716:
     8920
     8921/* Line 1806 of yacc.c  */
     8922#line 2649 "parser.yy"
    88058923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88068924    break;
    88078925
    8808   case 694:
    8809 
    8810 /* Line 1806 of yacc.c  */
    8811 #line 2567 "parser.yy"
     8926  case 717:
     8927
     8928/* Line 1806 of yacc.c  */
     8929#line 2651 "parser.yy"
    88128930    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88138931    break;
    88148932
    8815   case 695:
    8816 
    8817 /* Line 1806 of yacc.c  */
    8818 #line 2569 "parser.yy"
     8933  case 718:
     8934
     8935/* Line 1806 of yacc.c  */
     8936#line 2653 "parser.yy"
    88198937    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88208938    break;
    88218939
    8822   case 696:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2571 "parser.yy"
     8940  case 719:
     8941
     8942/* Line 1806 of yacc.c  */
     8943#line 2655 "parser.yy"
    88268944    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88278945    break;
    88288946
    8829   case 697:
    8830 
    8831 /* Line 1806 of yacc.c  */
    8832 #line 2578 "parser.yy"
     8947  case 720:
     8948
     8949/* Line 1806 of yacc.c  */
     8950#line 2662 "parser.yy"
    88338951    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88348952    break;
    88358953
    8836   case 698:
    8837 
    8838 /* Line 1806 of yacc.c  */
    8839 #line 2580 "parser.yy"
     8954  case 721:
     8955
     8956/* Line 1806 of yacc.c  */
     8957#line 2664 "parser.yy"
     8958    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8959    break;
     8960
     8961  case 722:
     8962
     8963/* Line 1806 of yacc.c  */
     8964#line 2666 "parser.yy"
    88408965    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88418966    break;
    88428967
    8843   case 699:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2582 "parser.yy"
     8968  case 723:
     8969
     8970/* Line 1806 of yacc.c  */
     8971#line 2668 "parser.yy"
     8972    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8973    break;
     8974
     8975  case 724:
     8976
     8977/* Line 1806 of yacc.c  */
     8978#line 2670 "parser.yy"
    88478979    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88488980    break;
    88498981
    8850   case 700:
    8851 
    8852 /* Line 1806 of yacc.c  */
    8853 #line 2584 "parser.yy"
    8854     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8855     break;
    8856 
    8857   case 701:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2586 "parser.yy"
     8982  case 725:
     8983
     8984/* Line 1806 of yacc.c  */
     8985#line 2672 "parser.yy"
    88618986    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88628987    break;
    88638988
    8864   case 702:
    8865 
    8866 /* Line 1806 of yacc.c  */
    8867 #line 2588 "parser.yy"
    8868     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8869     break;
    8870 
    8871   case 703:
    8872 
    8873 /* Line 1806 of yacc.c  */
    8874 #line 2590 "parser.yy"
    8875     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8876     break;
    8877 
    8878   case 704:
    8879 
    8880 /* Line 1806 of yacc.c  */
    8881 #line 2592 "parser.yy"
    8882     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8883     break;
    8884 
    8885   case 705:
    8886 
    8887 /* Line 1806 of yacc.c  */
    8888 #line 2594 "parser.yy"
    8889     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8890     break;
    8891 
    8892   case 706:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2596 "parser.yy"
    8896     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8897     break;
    8898 
    8899   case 707:
    8900 
    8901 /* Line 1806 of yacc.c  */
    8902 #line 2601 "parser.yy"
    8903     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8904     break;
    8905 
    8906   case 708:
    8907 
    8908 /* Line 1806 of yacc.c  */
    8909 #line 2603 "parser.yy"
    8910     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8911     break;
    8912 
    8913   case 709:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2608 "parser.yy"
    8917     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8918     break;
    8919 
    8920   case 710:
    8921 
    8922 /* Line 1806 of yacc.c  */
    8923 #line 2610 "parser.yy"
    8924     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8925     break;
    8926 
    8927   case 712:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2637 "parser.yy"
    8931     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8932     break;
    8933 
    8934   case 716:
    8935 
    8936 /* Line 1806 of yacc.c  */
    8937 #line 2648 "parser.yy"
    8938     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8939     break;
    8940 
    8941   case 717:
    8942 
    8943 /* Line 1806 of yacc.c  */
    8944 #line 2650 "parser.yy"
    8945     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8946     break;
    8947 
    8948   case 718:
    8949 
    8950 /* Line 1806 of yacc.c  */
    8951 #line 2652 "parser.yy"
    8952     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8953     break;
    8954 
    8955   case 719:
    8956 
    8957 /* Line 1806 of yacc.c  */
    8958 #line 2654 "parser.yy"
    8959     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8960     break;
    8961 
    8962   case 720:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2656 "parser.yy"
    8966     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8967     break;
    8968 
    8969   case 721:
    8970 
    8971 /* Line 1806 of yacc.c  */
    8972 #line 2658 "parser.yy"
    8973     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8974     break;
    8975 
    8976   case 722:
    8977 
    8978 /* Line 1806 of yacc.c  */
    8979 #line 2665 "parser.yy"
    8980     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8981     break;
    8982 
    8983   case 723:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2667 "parser.yy"
    8987     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8988     break;
    8989 
    8990   case 724:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2669 "parser.yy"
    8994     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8995     break;
    8996 
    8997   case 725:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2671 "parser.yy"
    9001     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9002     break;
    9003 
    90048989  case 726:
    90058990
    90068991/* Line 1806 of yacc.c  */
    9007 #line 2673 "parser.yy"
    9008     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8992#line 2677 "parser.yy"
     8993    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90098994    break;
    90108995
     
    90128997
    90138998/* Line 1806 of yacc.c  */
    9014 #line 2675 "parser.yy"
    9015     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8999#line 2682 "parser.yy"
     9000    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); }
    90169001    break;
    90179002
     
    90199004
    90209005/* Line 1806 of yacc.c  */
    9021 #line 2680 "parser.yy"
    9022     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9006#line 2684 "parser.yy"
     9007    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90239008    break;
    90249009
     
    90269011
    90279012/* Line 1806 of yacc.c  */
    9028 #line 2685 "parser.yy"
    9029     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); }
    9030     break;
    9031 
    9032   case 730:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2687 "parser.yy"
     9013#line 2686 "parser.yy"
    90369014    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90379015    break;
    90389016
    9039   case 731:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2689 "parser.yy"
    9043     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9044     break;
    9045 
    9046   case 734:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2715 "parser.yy"
     9017  case 732:
     9018
     9019/* Line 1806 of yacc.c  */
     9020#line 2712 "parser.yy"
    90509021    { (yyval.en) = 0; }
    90519022    break;
    90529023
    9053   case 735:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2717 "parser.yy"
     9024  case 733:
     9025
     9026/* Line 1806 of yacc.c  */
     9027#line 2714 "parser.yy"
    90579028    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90589029    break;
     
    90619032
    90629033/* Line 1806 of yacc.c  */
    9063 #line 9064 "Parser/parser.cc"
     9034#line 9035 "Parser/parser.cc"
    90649035      default: break;
    90659036    }
     
    92929263
    92939264/* Line 2067 of yacc.c  */
    9294 #line 2720 "parser.yy"
     9265#line 2717 "parser.yy"
    92959266
    92969267// ----end of grammar----
  • src/Parser/parser.h

    rb5b0907 rea9b9d3  
    252252        ExpressionNode *en;
    253253        DeclarationNode *decl;
    254         DeclarationNode::Aggregate aggKey;
     254        DeclarationNode::TyCon aggKey;
    255255        DeclarationNode::TypeClass tclass;
    256256        StatementNode *sn;
  • src/Parser/parser.yy

    rb5b0907 rea9b9d3  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:21:45 2015
    13 // Update Count     : 1048
     12// Last Modified On : Wed Jun 10 20:31:54 2015
     13// Update Count     : 1040
    1414//
    1515
     
    111111        ExpressionNode *en;
    112112        DeclarationNode *decl;
    113         DeclarationNode::Aggregate aggKey;
     113        DeclarationNode::TyCon aggKey;
    114114        DeclarationNode::TypeClass tclass;
    115115        StatementNode *sn;
     
    887887
    888888asm_operand:                                                                                    // GCC
    889         STRINGliteral '(' constant_expression ')'       {}
     889        STRINGliteral '(' constant_expression ')'               {}
    890890        ;
    891891
     
    12471247                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    12481248        | INLINE                                                                                        // C99
     1249                // INLINE is essentially a storage class specifier for functions, and hence, belongs here.
    12491250                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    12501251        | FORTRAN                                                                                       // C99
    12511252                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    1252         | NORETURN                                                                                      // C11
    1253                 { $$ = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    1254         | THREADLOCAL                                                                           // C11
    1255                 { $$ = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    12561253        ;
    12571254
  • src/SymTab/Validate.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Sun May 17 21:50:04 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:06:13 2015
    13 // Update Count     : 26
     12// Last Modified On : Mon Jun  8 17:19:35 2015
     13// Update Count     : 22
    1414//
    1515
     
    4545#include "SynTree/Type.h"
    4646#include "SynTree/Statement.h"
     47#include "Indexer.h"
    4748#include "SynTree/TypeSubstitution.h"
    48 #include "Indexer.h"
    4949#include "FixFunction.h"
    5050#include "ImplementationType.h"
     
    506506                if ( ! array->get_dimension() ) return;
    507507 
    508                 ObjectDecl *index = new ObjectDecl( indexName.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 );
     508                ObjectDecl *index = new ObjectDecl( indexName.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 );
    509509                *out++ = new DeclStmt( noLabels, index );
    510510 
     
    544544                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    545545 
    546                 ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
     546                ObjectDecl *returnVal = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
    547547                assignType->get_returnVals().push_back( returnVal );
    548548 
    549                 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
     549                ObjectDecl *dstParam = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
    550550                assignType->get_parameters().push_back( dstParam );
    551551 
    552                 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
     552                ObjectDecl *srcParam = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
    553553                assignType->get_parameters().push_back( srcParam );
    554554
    555555                // Routines at global scope marked "static" to prevent multiple definitions is separate translation units
    556556                // because each unit generates copies of the default routines for each aggregate.
    557                 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
     557                FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? Declaration::NoStorageClass : Declaration::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
    558558                assignDecl->fixUniqueId();
    559559 
     
    587587                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    588588 
    589                 ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
     589                ObjectDecl *returnVal = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
    590590                assignType->get_returnVals().push_back( returnVal );
    591591 
    592                 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
     592                ObjectDecl *dstParam = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
    593593                assignType->get_parameters().push_back( dstParam );
    594594 
    595                 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
     595                ObjectDecl *srcParam = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
    596596                assignType->get_parameters().push_back( srcParam );
    597597 
    598598                // Routines at global scope marked "static" to prevent multiple definitions is separate translation units
    599599                // because each unit generates copies of the default routines for each aggregate.
    600                 FunctionDecl *assignDecl = new FunctionDecl( "?=?",  functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
     600                FunctionDecl *assignDecl = new FunctionDecl( "?=?",  functionNesting > 0 ? Declaration::NoStorageClass : Declaration::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
    601601                assignDecl->fixUniqueId();
    602602 
     
    633633                TypeInstType *typeInst = new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), false );
    634634                typeInst->set_baseType( typeDecl );
    635                 ObjectDecl *src = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 );
    636                 ObjectDecl *dst = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );
     635                ObjectDecl *src = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 );
     636                ObjectDecl *dst = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );
    637637                if ( typeDecl->get_base() ) {
    638638                        stmts = new CompoundStmt( std::list< Label >() );
     
    643643                } // if
    644644                FunctionType *type = new FunctionType( Type::Qualifiers(), false );
    645                 type->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) );
     645                type->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) );
    646646                type->get_parameters().push_back( dst );
    647647                type->get_parameters().push_back( src );
    648                 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false );
     648                FunctionDecl *func = new FunctionDecl( "?=?", Declaration::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false );
    649649                declsToAdd.push_back( func );
    650650        }
  • src/SynTree/AggregateDecl.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Sun May 17 23:56:39 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:12:49 2015
    13 // Update Count     : 6
     12// Last Modified On : Tue May 19 16:52:08 2015
     13// Update Count     : 5
    1414//
    1515
     
    1919
    2020
    21 AggregateDecl::AggregateDecl( const std::string &name ) : Parent( name, DeclarationNode::NoStorageClass, LinkageSpec::Cforall ) {
     21AggregateDecl::AggregateDecl( const std::string &name ) : Parent( name, Declaration::NoStorageClass, LinkageSpec::Cforall ) {
    2222}
    2323
  • src/SynTree/Declaration.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:07:20 2015
    13 // Update Count     : 9
     12// Last Modified On : Mon May 18 08:18:35 2015
     13// Update Count     : 2
    1414//
    1515
     
    2222#include "utility.h"
    2323
     24const char* Declaration::storageClassName[] = { "", "auto", "static", "extern", "register" }; 
     25
    2426static UniqueId lastUniqueId = 0;
    2527typedef std::map< UniqueId, Declaration* > IdMapType;
    2628static IdMapType idMap;
    2729
    28 Declaration::Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage )
    29                 : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {
     30Declaration::Declaration( const std::string &name, StorageClass sc, LinkageSpec::Type linkage )
     31        : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {
    3032}
    3133
    3234Declaration::Declaration( const Declaration &other )
    33                 : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
     35        : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
    3436}
    3537
     
    4244}
    4345
     46/* static class method */
    4447Declaration *Declaration::declFromId( UniqueId id ) {
    4548        IdMapType::const_iterator i = idMap.find( id );
    46         return i != idMap.end() ? i->second : 0;
     49        if ( i != idMap.end() ) {
     50                return i->second;
     51        } else {
     52                return 0;
     53        } // if
    4754}
    4855
     56/* static class method */
    4957void Declaration::dumpIds( std::ostream &os ) {
    5058        for ( IdMapType::const_iterator i = idMap.begin(); i != idMap.end(); ++i ) {
  • src/SynTree/Declaration.h

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 12 23:55:26 2015
    13 // Update Count     : 24
     12// Last Modified On : Sun Jun  7 22:03:43 2015
     13// Update Count     : 7
    1414//
    1515
     
    2121#include "Mutator.h"
    2222#include "Parser/LinkageSpec.h"
    23 #include "Parser/ParseNode.h"
    2423
    2524class Declaration {
    2625  public:
    27         Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage );
     26        enum StorageClass { 
     27                NoStorageClass,
     28                Extern,
     29                Static,
     30                Auto,
     31                Register,
     32                Inline,
     33                Fortran,
     34        };     
     35
     36        Declaration( const std::string &name, StorageClass sc, LinkageSpec::Type linkage );
    2837        Declaration( const Declaration &other );
    2938        virtual ~Declaration();
     
    3140        const std::string &get_name() const { return name; }
    3241        void set_name( std::string newValue ) { name = newValue; }
    33         DeclarationNode::StorageClass get_storageClass() const { return storageClass; }
    34         void set_storageClass( DeclarationNode::StorageClass newValue ) { storageClass = newValue; }
     42        StorageClass get_storageClass() const { return storageClass; }
     43        void set_storageClass( StorageClass newValue ) { storageClass = newValue; }
    3544        LinkageSpec::Type get_linkage() const { return linkage; }
    3645        void set_linkage( LinkageSpec::Type newValue ) { linkage = newValue; }
     
    4453        virtual void printShort( std::ostream &os, int indent = 0 ) const = 0;
    4554
     55        static const char* storageClassName[]; 
     56
    4657        static void dumpIds( std::ostream &os );
    4758        static Declaration *declFromId( UniqueId id );
    4859  private:
    4960        std::string name;
    50         DeclarationNode::StorageClass storageClass;
     61        StorageClass storageClass;
    5162        LinkageSpec::Type linkage;
    5263        UniqueId uniqueId;
     
    5566class DeclarationWithType : public Declaration {
    5667  public:
    57         DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage );
     68        DeclarationWithType( const std::string &name, StorageClass sc, LinkageSpec::Type linkage );
    5869        DeclarationWithType( const DeclarationWithType &other );
    5970        virtual ~DeclarationWithType();
     
    7586        typedef DeclarationWithType Parent;
    7687  public:
    77         ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );
     88        ObjectDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );
    7889        ObjectDecl( const ObjectDecl &other );
    7990        virtual ~ObjectDecl();
     
    101112        typedef DeclarationWithType Parent;
    102113  public:
    103         FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline );
     114        FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline );
    104115        FunctionDecl( const FunctionDecl &other );
    105116        virtual ~FunctionDecl();
     
    133144        typedef Declaration Parent;
    134145  public:
    135         NamedTypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type );
     146        NamedTypeDecl( const std::string &name, StorageClass sc, Type *type );
    136147        NamedTypeDecl( const TypeDecl &other );
    137148        virtual ~NamedTypeDecl();
     
    158169        enum Kind { Any, Dtype, Ftype };
    159170
    160         TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind );
     171        TypeDecl( const std::string &name, StorageClass sc, Type *type, Kind kind );
    161172        TypeDecl( const TypeDecl &other );
    162173
     
    174185        typedef NamedTypeDecl Parent;
    175186  public:
    176         TypedefDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type ) : Parent( name, sc, type ) {}
     187        TypedefDecl( const std::string &name, StorageClass sc, Type *type ) : Parent( name, sc, type ) {}
    177188        TypedefDecl( const TypedefDecl &other ) : Parent( other ) {}
    178189
  • src/SynTree/DeclarationWithType.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:08:07 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon May 18 08:20:23 2015
     13// Update Count     : 2
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage )
     20DeclarationWithType::DeclarationWithType( const std::string &name, StorageClass sc, LinkageSpec::Type linkage )
    2121                : Declaration( name, sc, linkage ) {
    2222}
  • src/SynTree/FunctionDecl.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:12:20 2015
    13 // Update Count     : 14
     12// Last Modified On : Sun Jun  7 08:36:44 2015
     13// Update Count     : 12
    1414//
    1515
     
    2121#include "utility.h"
    2222
    23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline )
     23FunctionDecl::FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline )
    2424                : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) {
    2525        // this is a brazen hack to force the function "main" to have C linkage
     
    6060                os << "inline ";
    6161        } // if
    62         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    63                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     62        if ( get_storageClass() != NoStorageClass ) {
     63                os << storageClassName[ get_storageClass() ] << ' ';
    6464        } // if
    6565        if ( get_type() ) {
     
    9696                os << "inline ";
    9797        } // if
    98         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    99                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     98        if ( get_storageClass() != NoStorageClass ) {
     99                os << storageClassName[ get_storageClass() ] << ' ';
    100100        } // if
    101101        if ( get_type() ) {
  • src/SynTree/NamedTypeDecl.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:13:55 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun  7 08:36:09 2015
     13// Update Count     : 2
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 NamedTypeDecl::NamedTypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *base )
     20NamedTypeDecl::NamedTypeDecl( const std::string &name, StorageClass sc, Type *base )
    2121        : Parent( name, sc, LinkageSpec::Cforall ), base( base ) {}
    2222
     
    3939                os << get_name() << ": ";
    4040        } // if
    41         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    42                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     41        if ( get_storageClass() != NoStorageClass ) {
     42                os << storageClassName[ get_storageClass() ] << ' ';
    4343        } // if
    4444        os << typeString();
     
    6363                os << get_name() << ": ";
    6464        } // if
    65         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    66                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     65        if ( get_storageClass() != NoStorageClass ) {
     66                os << storageClassName[ get_storageClass() ] << ' ';
    6767        } // if
    6868        os << typeString();
  • src/SynTree/ObjectDecl.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:10:16 2015
    13 // Update Count     : 15
     12// Last Modified On : Thu Jun  4 21:21:12 2015
     13// Update Count     : 10
    1414//
    1515
     
    2020#include "utility.h"
    2121
    22 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )
     22ObjectDecl::ObjectDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )
    2323        : Parent( name, sc, linkage ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) {
    2424}
     
    4343        } // if
    4444
    45         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    46                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     45        if ( get_storageClass() != NoStorageClass ) {
     46                os << storageClassName[ get_storageClass() ] << ' ';
    4747        } // if
    4848
     
    7474        } // if
    7575
    76         if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
    77                 os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
     76        if ( get_storageClass() != NoStorageClass ) {
     77                os << storageClassName[ get_storageClass() ] << ' ';
    7878        } // if
    7979
  • src/SynTree/TypeDecl.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:14:35 2015
    13 // Update Count     : 2
     12// Last Modified On : Mon May 18 11:02:11 2015
     13// Update Count     : 1
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 TypeDecl::TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ) {
     20TypeDecl::TypeDecl( const std::string &name, StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ) {
    2121}
    2222
  • src/Tests/Attributes.c

    rb5b0907 rea9b9d3  
    1 // I Compile-time resolution
    2 // =========================
    3 //
    4 // 1. an isolated name, where the argument is implicitly determined by the result context
    5 //
    6 //    @max
    7 //
    8 // 2. a direct application to a manifest type
    9 //
    10 //    @max( int )
    11 //
    12 // 3. constraining a type variable; the application is implicitly performed at the call site as in (2)
    13 //
    14 //    forall( type T | { T @max( T ); } ) T x( T t );
    15 //
    16 //
    17 // II Run-time resolution
    18 // ======================
    19 //
    20 // 1. an indirect reference, where the argument is implicitly determined by the result context
    21 //
    22 //    attr_var = &@max;
    23 //    x = (*attr_var);
    24 //
    25 // 2. an indirect application to a manifest type
    26 //
    27 //    (*attr_var)( int )
    28 //
    29 // 3. a direct application to a type variable
    30 //
    31 //    @max( T )
    32 //
    33 // Under what circumstances can this be done at compile/link time?
    34 //
    35 //
    36 // III Declaration forms
    37 // =====================
    38 //
    39 // 1. monomorphic with implicit argument
    40 //
    41 //    int @max;
    42 //
    43 // 2. monomorphic with explicit argument
    44 //
    45 //    int @max( int );
    46 //
    47 // 3. polymorphic
    48 //
    49 //    forall( type T | constraint( T ) ) int @attr( T );
    50 
    511int @max = 3;
    522
    533int main() {
    544    int x;
    55     type @type(type t);                                                                 // compiler intrinsic
     5    type @type(type t);         // compiler intrinsic
    566    type @widest(type t);
    57     @type(x) *y;                                                                                // gcc: typeof(x) *y;
    58     const @widest(double) *w;                                                   // gcc: const typeof(x) *w;
    59     * @type(3 + 4) z;                                                                   // cfa declaration syntax
     7    @type(x) *y;                // gcc: typeof(x) *y;
     8    const @widest(double) *w;   // gcc: const typeof(x) *w;
     9    * @type(3 + 4) z;           // cfa declaration syntax
    6010    y = @max;           
    6111    z = @max(x) + @size(int);
  • src/Tests/Expect-a/AsmName.txt

    rb5b0907 rea9b9d3  
    1 x: extern signed int
     1x: auto signed int
    22fred: function
    33    with parameters
  • src/Tests/Expect-a/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-a/Context.txt

    rb5b0907 rea9b9d3  
    5252
    5353
    54         Declaration of x: extern type
    55         Declaration of y: extern type
     54        Declaration of x: auto type
     55        Declaration of y: auto type
    5656          with assertions
    5757            instance of context has_r
  • src/Tests/Expect-a/Functions.txt

    rb5b0907 rea9b9d3  
    173173      CompoundStmt
    174174
    175 fII3: extern function
    176     with parameters
    177       i: signed int
    178     returning
    179       signed int
    180     with body
    181       CompoundStmt
    182 
    183 fII4: extern function
     175fII3: auto function
     176    with parameters
     177      i: signed int
     178    returning
     179      signed int
     180    with body
     181      CompoundStmt
     182
     183fII4: auto function
    184184    with parameters
    185185      i: signed int
     
    257257      CompoundStmt
    258258
    259 fO4: extern function
     259fO4: auto function
    260260      accepting unspecified arguments
    261261    returning
     
    268268      CompoundStmt
    269269
    270 fO5: extern function
     270fO5: auto function
    271271      accepting unspecified arguments
    272272    returning
  • src/Tests/Expect-a/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    6565      signed int
    6666
     67struct S1
     68    with parameters
     69      T: type
     70
     71struct S1
     72    with parameters
     73      T: type
     74
     75    with members
     76      i: instance of type T (not function type)
     77
     78v1: instance of struct S1
     79  with parameters
     80    signed int
     81
     82p: pointer to instance of struct S1
     83  with parameters
     84    signed int
     85
    6786struct S2
    6887    with parameters
     
    7291      i: instance of type T (not function type)
    7392
    74 v1: instance of struct S3
    75   with parameters
    76     signed int
    77 
    78 p: pointer to instance of struct S3
    79   with parameters
    80     signed int
    81 
    82 struct S24
    83     with parameters
    84       T: type
    85 
    86     with members
    87       i: instance of type T (not function type)
    88 
    89 v2: instance of struct S24
     93v2: instance of struct S2
    9094  with parameters
    9195    signed int
  • src/Tests/Expect-e/AsmName.txt

    rb5b0907 rea9b9d3  
    1 x: extern signed int
     1x: auto signed int
    22fred: function
    33    with parameters
  • src/Tests/Expect-e/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-e/Context.txt

    rb5b0907 rea9b9d3  
    5454
    5555
    56         Declaration of x: extern type
     56        Declaration of x: auto type
    5757        Declaration of ?=?: automatically generated function
    5858            with parameters
     
    6262              instance of type x (not function type)
    6363
    64         Declaration of y: extern type
     64        Declaration of y: auto type
    6565          with assertions
    6666            instance of context has_r
  • src/Tests/Expect-e/Function.txt

    rb5b0907 rea9b9d3  
    245245
    246246
    247 cfa-cpp: GenPoly/Box.cc:401: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
     247cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
    248248Aborted (core dumped)
  • src/Tests/Expect-e/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    5353            Name: *?
    5454        ...to:
    55             Variable Expression: _dst: pointer to instance of struct S2
     55            Variable Expression: _dst: pointer to instance of struct S1
    5656    Member Expression, with field:
    5757      i: instance of type T (not function type)
    5858    from aggregate:
    59       Variable Expression: _src: instance of struct S2
     59      Variable Expression: _src: instance of struct S1
    6060
    6161Error: No reasonable alternatives for expression Applying untyped:
     
    6969            Name: *?
    7070        ...to:
    71             Variable Expression: _dst: pointer to instance of struct S24
     71            Variable Expression: _dst: pointer to instance of struct S2
    7272    Member Expression, with field:
    7373      i: instance of type T (not function type)
    7474    from aggregate:
    75       Variable Expression: _src: instance of struct S24
     75      Variable Expression: _src: instance of struct S2
    7676
    7777Error: No reasonable alternatives for expression Applying untyped:
  • src/Tests/Expect-f/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-f/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    4747            Name: *?
    4848        ...to:
    49             Variable Expression: _dst: pointer to instance of struct S2
     49            Variable Expression: _dst: pointer to instance of struct S1
    5050    Member Expression, with field:
    5151      i: instance of type T (not function type)
    5252    from aggregate:
    53       Variable Expression: _src: instance of struct S2
     53      Variable Expression: _src: instance of struct S1
    5454
    5555Error: No reasonable alternatives for expression Applying untyped:
     
    6363            Name: *?
    6464        ...to:
    65             Variable Expression: _dst: pointer to instance of struct S24
     65            Variable Expression: _dst: pointer to instance of struct S2
    6666    Member Expression, with field:
    6767      i: instance of type T (not function type)
    6868    from aggregate:
    69       Variable Expression: _src: instance of struct S24
     69      Variable Expression: _src: instance of struct S2
    7070
    7171Error: No reasonable alternatives for expression Applying untyped:
  • src/Tests/Expect-r/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-r/Function.txt

    rb5b0907 rea9b9d3  
    49544954there are 1 alternatives before elimination
    49554955there are 1 alternatives after elimination
    4956 cfa-cpp: GenPoly/Box.cc:401: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
     4956cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
    49574957Aborted (core dumped)
  • src/Tests/Expect-r/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    610610decl is ?=?: automatically generated inline static function
    611611  with parameters
    612     _dst: pointer to instance of struct S2
    613     _src: instance of struct S2
     612    _dst: pointer to instance of struct S1
     613    _src: instance of struct S1
    614614  returning
    615     instance of struct S2
     615    instance of struct S1
    616616  with body
    617617    CompoundStmt
     
    627627                      Name: *?
    628628                  ...to:
    629                       Variable Expression: _dst: pointer to instance of struct S2
     629                      Variable Expression: _dst: pointer to instance of struct S1
    630630              Member Expression, with field:
    631631                i: instance of type T (not function type)
    632632              from aggregate:
    633                 Variable Expression: _src: instance of struct S2
    634 
    635               Return Statement, returning: Variable Expression: _src: instance of struct S2
     633                Variable Expression: _src: instance of struct S1
     634
     635              Return Statement, returning: Variable Expression: _src: instance of struct S1
    636636
    637637
     
    639639newExpr is Variable Expression: ?=?: inline static function
    640640    with parameters
    641       _dst: pointer to instance of struct S2
    642       _src: instance of struct S2
    643     returning
    644       instance of struct S2
     641      _dst: pointer to instance of struct S1
     642      _src: instance of struct S1
     643    returning
     644      instance of struct S1
    645645
    646646
     
    698698Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    699699    with parameters
     700      _dst: pointer to instance of struct S1
     701      _src: instance of struct S1
     702    returning
     703      instance of struct S1
     704
     705(types:
     706    pointer to function
     707        with parameters
     708          _dst: pointer to instance of struct S1
     709          _src: instance of struct S1
     710        returning
     711          instance of struct S1
     712
     713)
     714Environment:
     715
     716Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
     717    with parameters
     718      _dst: pointer to instance of type List1 (not function type)
     719      _src: instance of type List1 (not function type)
     720    returning
     721      instance of type List1 (not function type)
     722
     723(types:
     724    pointer to function
     725        with parameters
     726          _dst: pointer to instance of type List1 (not function type)
     727          _src: instance of type List1 (not function type)
     728        returning
     729          instance of type List1 (not function type)
     730
     731)
     732Environment:
     733
     734there are 3 alternatives before elimination
     735there are 3 alternatives after elimination
     736alternatives before prune:
     737Cost ( 0, 0, 0 ): Member Expression, with field:
     738  i: instance of type T (not function type)
     739from aggregate:
     740  Applying untyped:
     741      Name: *?
     742  ...to:
     743      Variable Expression: _dst: pointer to instance of struct S1
     744(types:
     745    lvalue instance of type T (not function type)
     746)
     747Environment:
     748
     749there are 1 alternatives before elimination
     750there are 1 alternatives after elimination
     751alternatives before prune:
     752Cost ( 0, 0, 0 ): Address of:
     753  Member Expression, with field:
     754    i: instance of type T (not function type)
     755  from aggregate:
     756    Applying untyped:
     757        Name: *?
     758    ...to:
     759        Variable Expression: _dst: pointer to instance of struct S1
     760(types:
     761    pointer to instance of type T (not function type)
     762)
     763Environment:
     764
     765there are 1 alternatives before elimination
     766there are 1 alternatives after elimination
     767findSubExprs
     768Cost ( 0, 0, 0 ): Address of:
     769  Member Expression, with field:
     770    i: instance of type T (not function type)
     771  from aggregate:
     772    Applying untyped:
     773        Name: *?
     774    ...to:
     775        Variable Expression: _dst: pointer to instance of struct S1
     776(types:
     777    pointer to instance of type T (not function type)
     778)
     779Environment:
     780
     781alternatives before prune:
     782Cost ( 0, 0, 0 ): Member Expression, with field:
     783  i: instance of type T (not function type)
     784from aggregate:
     785  Variable Expression: _src: instance of struct S1
     786(types:
     787    lvalue instance of type T (not function type)
     788)
     789Environment:
     790
     791there are 1 alternatives before elimination
     792there are 1 alternatives after elimination
     793findSubExprs
     794Cost ( 0, 0, 0 ): Member Expression, with field:
     795  i: instance of type T (not function type)
     796from aggregate:
     797  Variable Expression: _src: instance of struct S1
     798(types:
     799    lvalue instance of type T (not function type)
     800)
     801Environment:
     802
     803working on alternative:
     804        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
     805            with parameters
     806              _dst: pointer to instance of type List1 (not function type)
     807              _src: instance of type List1 (not function type)
     808            returning
     809              instance of type List1 (not function type)
     810
     811(types:
     812            pointer to function
     813                with parameters
     814                  _dst: pointer to instance of type List1 (not function type)
     815                  _src: instance of type List1 (not function type)
     816                returning
     817                  instance of type List1 (not function type)
     818
     819)
     820        Environment:
     821formal type is pointer to instance of type List1 (not function type)
     822actual type is pointer to instance of type T (not function type)
     823working on alternative:
     824        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     825            with parameters
     826              _dst: pointer to instance of struct S1
     827              _src: instance of struct S1
     828            returning
     829              instance of struct S1
     830
     831(types:
     832            pointer to function
     833                with parameters
     834                  _dst: pointer to instance of struct S1
     835                  _src: instance of struct S1
     836                returning
     837                  instance of struct S1
     838
     839)
     840        Environment:
     841formal type is pointer to instance of struct S1
     842actual type is pointer to instance of type T (not function type)
     843working on alternative:
     844        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     845            with parameters
     846              _dst: pointer to instance of struct __anonymous0
     847              _src: instance of struct __anonymous0
     848            returning
     849              instance of struct __anonymous0
     850
     851(types:
     852            pointer to function
     853                with parameters
     854                  _dst: pointer to instance of struct __anonymous0
     855                  _src: instance of struct __anonymous0
     856                returning
     857                  instance of struct __anonymous0
     858
     859)
     860        Environment:
     861formal type is pointer to instance of struct __anonymous0
     862actual type is pointer to instance of type T (not function type)
     863alternatives before prune:
     864Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S1
     865(types:
     866    lvalue instance of struct S1
     867)
     868Environment:
     869
     870there are 1 alternatives before elimination
     871there are 1 alternatives after elimination
     872alternatives before prune:
     873Cost ( 0, 0, 0 ): Cast of:
     874  Variable Expression: _src: instance of struct S1
     875
     876to:
     877  instance of struct S1
     878(types:
     879    instance of struct S1
     880)
     881Environment:
     882
     883there are 1 alternatives before elimination
     884there are 1 alternatives after elimination
     885nameExpr is ?=?
     886decl is ?=?: automatically generated inline static function
     887  with parameters
     888    _dst: pointer to instance of struct __anonymous0
     889    _src: instance of struct __anonymous0
     890  returning
     891    instance of struct __anonymous0
     892  with body
     893    CompoundStmt
     894              Expression Statement:
     895          Applying untyped:
     896              Name: ?=?
     897          ...to:
     898              Address of:
     899                Member Expression, with field:
     900                  data: instance of type T (not function type)
     901                from aggregate:
     902                  Applying untyped:
     903                      Name: *?
     904                  ...to:
     905                      Variable Expression: _dst: pointer to instance of struct __anonymous0
     906              Member Expression, with field:
     907                data: instance of type T (not function type)
     908              from aggregate:
     909                Variable Expression: _src: instance of struct __anonymous0
     910
     911              Expression Statement:
     912          Applying untyped:
     913              Name: ?=?
     914          ...to:
     915              Address of:
     916                Member Expression, with field:
     917                  next: pointer to instance of type List1 (not function type)
     918                  with parameters
     919                    instance of type T (not function type)
     920
     921                from aggregate:
     922                  Applying untyped:
     923                      Name: *?
     924                  ...to:
     925                      Variable Expression: _dst: pointer to instance of struct __anonymous0
     926              Member Expression, with field:
     927                next: pointer to instance of type List1 (not function type)
     928                with parameters
     929                  instance of type T (not function type)
     930
     931              from aggregate:
     932                Variable Expression: _src: instance of struct __anonymous0
     933
     934              Return Statement, returning: Cast of:
     935  Variable Expression: _src: instance of struct __anonymous0
     936
     937to:
     938  instance of struct __anonymous0
     939with environment:
     940  Types:
     941  Non-types:
     942
     943
     944
     945newExpr is Variable Expression: ?=?: inline static function
     946    with parameters
     947      _dst: pointer to instance of struct __anonymous0
     948      _src: instance of struct __anonymous0
     949    returning
     950      instance of struct __anonymous0
     951
     952
     953decl is ?=?: automatically generated inline static function
     954  with parameters
     955    _dst: pointer to instance of struct S1
     956    _src: instance of struct S1
     957  returning
     958    instance of struct S1
     959  with body
     960    CompoundStmt
     961              Expression Statement:
     962          Applying untyped:
     963              Name: ?=?
     964          ...to:
     965              Address of:
     966                Member Expression, with field:
     967                  i: instance of type T (not function type)
     968                from aggregate:
     969                  Applying untyped:
     970                      Name: *?
     971                  ...to:
     972                      Variable Expression: _dst: pointer to instance of struct S1
     973              Member Expression, with field:
     974                i: instance of type T (not function type)
     975              from aggregate:
     976                Variable Expression: _src: instance of struct S1
     977
     978              Return Statement, returning: Cast of:
     979  Variable Expression: _src: instance of struct S1
     980
     981to:
     982  instance of struct S1
     983with environment:
     984  Types:
     985  Non-types:
     986
     987
     988
     989newExpr is Variable Expression: ?=?: inline static function
     990    with parameters
     991      _dst: pointer to instance of struct S1
     992      _src: instance of struct S1
     993    returning
     994      instance of struct S1
     995
     996
     997decl is ?=?: automatically generated inline static function
     998  with parameters
     999    _dst: pointer to instance of struct S2
     1000    _src: instance of struct S2
     1001  returning
     1002    instance of struct S2
     1003  with body
     1004    CompoundStmt
     1005              Expression Statement:
     1006          Applying untyped:
     1007              Name: ?=?
     1008          ...to:
     1009              Address of:
     1010                Member Expression, with field:
     1011                  i: instance of type T (not function type)
     1012                from aggregate:
     1013                  Applying untyped:
     1014                      Name: *?
     1015                  ...to:
     1016                      Variable Expression: _dst: pointer to instance of struct S2
     1017              Member Expression, with field:
     1018                i: instance of type T (not function type)
     1019              from aggregate:
     1020                Variable Expression: _src: instance of struct S2
     1021
     1022              Return Statement, returning: Variable Expression: _src: instance of struct S2
     1023
     1024
     1025
     1026newExpr is Variable Expression: ?=?: inline static function
     1027    with parameters
     1028      _dst: pointer to instance of struct S2
     1029      _src: instance of struct S2
     1030    returning
     1031      instance of struct S2
     1032
     1033
     1034decl is ?=?: automatically generated function
     1035  with parameters
     1036    _dst: pointer to instance of type List1 (not function type)
     1037    _src: instance of type List1 (not function type)
     1038  returning
     1039    instance of type List1 (not function type)
     1040  with body
     1041    CompoundStmt
     1042              Return Statement, returning: Applying untyped:
     1043    Name: ?=?
     1044...to:
     1045    Cast of:
     1046      Variable Expression: _dst: pointer to instance of type List1 (not function type)
     1047
     1048    to:
     1049      pointer to pointer to instance of struct __anonymous0
     1050    Cast of:
     1051      Variable Expression: _src: instance of type List1 (not function type)
     1052
     1053    to:
     1054      pointer to instance of struct __anonymous0
     1055
     1056
     1057
     1058newExpr is Variable Expression: ?=?: function
     1059    with parameters
     1060      _dst: pointer to instance of type List1 (not function type)
     1061      _src: instance of type List1 (not function type)
     1062    returning
     1063      instance of type List1 (not function type)
     1064
     1065
     1066alternatives before prune:
     1067Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     1068    with parameters
     1069      _dst: pointer to instance of struct __anonymous0
     1070      _src: instance of struct __anonymous0
     1071    returning
     1072      instance of struct __anonymous0
     1073
     1074(types:
     1075    pointer to function
     1076        with parameters
     1077          _dst: pointer to instance of struct __anonymous0
     1078          _src: instance of struct __anonymous0
     1079        returning
     1080          instance of struct __anonymous0
     1081
     1082)
     1083Environment:
     1084
     1085Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     1086    with parameters
     1087      _dst: pointer to instance of struct S1
     1088      _src: instance of struct S1
     1089    returning
     1090      instance of struct S1
     1091
     1092(types:
     1093    pointer to function
     1094        with parameters
     1095          _dst: pointer to instance of struct S1
     1096          _src: instance of struct S1
     1097        returning
     1098          instance of struct S1
     1099
     1100)
     1101Environment:
     1102
     1103Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     1104    with parameters
    7001105      _dst: pointer to instance of struct S2
    7011106      _src: instance of struct S2
     
    7321137Environment:
    7331138
    734 there are 3 alternatives before elimination
    735 there are 3 alternatives after elimination
     1139there are 4 alternatives before elimination
     1140there are 4 alternatives after elimination
    7361141alternatives before prune:
    7371142Cost ( 0, 0, 0 ): Member Expression, with field:
     
    8441249        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    8451250            with parameters
     1251              _dst: pointer to instance of struct S1
     1252              _src: instance of struct S1
     1253            returning
     1254              instance of struct S1
     1255
     1256(types:
     1257            pointer to function
     1258                with parameters
     1259                  _dst: pointer to instance of struct S1
     1260                  _src: instance of struct S1
     1261                returning
     1262                  instance of struct S1
     1263
     1264)
     1265        Environment:
     1266formal type is pointer to instance of struct S1
     1267actual type is pointer to instance of type T (not function type)
     1268working on alternative:
     1269        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     1270            with parameters
    8461271              _dst: pointer to instance of struct __anonymous0
    8471272              _src: instance of struct __anonymous0
     
    9531378decl is ?=?: automatically generated inline static function
    9541379  with parameters
     1380    _dst: pointer to instance of struct __anonymous1
     1381    _src: instance of struct __anonymous1
     1382  returning
     1383    instance of struct __anonymous1
     1384  with body
     1385    CompoundStmt
     1386              Expression Statement:
     1387          Applying untyped:
     1388              Name: ?=?
     1389          ...to:
     1390              Address of:
     1391                Member Expression, with field:
     1392                  i: instance of type T (not function type)
     1393                from aggregate:
     1394                  Applying untyped:
     1395                      Name: *?
     1396                  ...to:
     1397                      Variable Expression: _dst: pointer to instance of struct __anonymous1
     1398              Member Expression, with field:
     1399                i: instance of type T (not function type)
     1400              from aggregate:
     1401                Variable Expression: _src: instance of struct __anonymous1
     1402
     1403              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1
     1404
     1405
     1406
     1407newExpr is Variable Expression: ?=?: inline static function
     1408    with parameters
     1409      _dst: pointer to instance of struct __anonymous1
     1410      _src: instance of struct __anonymous1
     1411    returning
     1412      instance of struct __anonymous1
     1413
     1414
     1415decl is ?=?: automatically generated inline static function
     1416  with parameters
     1417    _dst: pointer to instance of struct S1
     1418    _src: instance of struct S1
     1419  returning
     1420    instance of struct S1
     1421  with body
     1422    CompoundStmt
     1423              Expression Statement:
     1424          Applying untyped:
     1425              Name: ?=?
     1426          ...to:
     1427              Address of:
     1428                Member Expression, with field:
     1429                  i: instance of type T (not function type)
     1430                from aggregate:
     1431                  Applying untyped:
     1432                      Name: *?
     1433                  ...to:
     1434                      Variable Expression: _dst: pointer to instance of struct S1
     1435              Member Expression, with field:
     1436                i: instance of type T (not function type)
     1437              from aggregate:
     1438                Variable Expression: _src: instance of struct S1
     1439
     1440              Return Statement, returning: Cast of:
     1441  Variable Expression: _src: instance of struct S1
     1442
     1443to:
     1444  instance of struct S1
     1445with environment:
     1446  Types:
     1447  Non-types:
     1448
     1449
     1450
     1451newExpr is Variable Expression: ?=?: inline static function
     1452    with parameters
     1453      _dst: pointer to instance of struct S1
     1454      _src: instance of struct S1
     1455    returning
     1456      instance of struct S1
     1457
     1458
     1459decl is ?=?: automatically generated inline static function
     1460  with parameters
    9551461    _dst: pointer to instance of struct S2
    9561462    _src: instance of struct S2
     
    9931499    returning
    9941500      instance of struct S2
    995 
    996 
    997 decl is ?=?: automatically generated inline static function
    998   with parameters
    999     _dst: pointer to instance of struct S24
    1000     _src: instance of struct S24
    1001   returning
    1002     instance of struct S24
    1003   with body
    1004     CompoundStmt
    1005               Expression Statement:
    1006           Applying untyped:
    1007               Name: ?=?
    1008           ...to:
    1009               Address of:
    1010                 Member Expression, with field:
    1011                   i: instance of type T (not function type)
    1012                 from aggregate:
    1013                   Applying untyped:
    1014                       Name: *?
    1015                   ...to:
    1016                       Variable Expression: _dst: pointer to instance of struct S24
    1017               Member Expression, with field:
    1018                 i: instance of type T (not function type)
    1019               from aggregate:
    1020                 Variable Expression: _src: instance of struct S24
    1021 
    1022               Return Statement, returning: Variable Expression: _src: instance of struct S24
    1023 
    1024 
    1025 
    1026 newExpr is Variable Expression: ?=?: inline static function
    1027     with parameters
    1028       _dst: pointer to instance of struct S24
    1029       _src: instance of struct S24
    1030     returning
    1031       instance of struct S24
    10321501
    10331502
     
    10851554Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    10861555    with parameters
     1556      _dst: pointer to instance of struct __anonymous1
     1557      _src: instance of struct __anonymous1
     1558    returning
     1559      instance of struct __anonymous1
     1560
     1561(types:
     1562    pointer to function
     1563        with parameters
     1564          _dst: pointer to instance of struct __anonymous1
     1565          _src: instance of struct __anonymous1
     1566        returning
     1567          instance of struct __anonymous1
     1568
     1569)
     1570Environment:
     1571
     1572Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     1573    with parameters
     1574      _dst: pointer to instance of struct S1
     1575      _src: instance of struct S1
     1576    returning
     1577      instance of struct S1
     1578
     1579(types:
     1580    pointer to function
     1581        with parameters
     1582          _dst: pointer to instance of struct S1
     1583          _src: instance of struct S1
     1584        returning
     1585          instance of struct S1
     1586
     1587)
     1588Environment:
     1589
     1590Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     1591    with parameters
    10871592      _dst: pointer to instance of struct S2
    10881593      _src: instance of struct S2
     
    11011606Environment:
    11021607
    1103 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    1104     with parameters
    1105       _dst: pointer to instance of struct S24
    1106       _src: instance of struct S24
    1107     returning
    1108       instance of struct S24
    1109 
    1110 (types:
    1111     pointer to function
    1112         with parameters
    1113           _dst: pointer to instance of struct S24
    1114           _src: instance of struct S24
    1115         returning
    1116           instance of struct S24
    1117 
    1118 )
    1119 Environment:
    1120 
    11211608Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
    11221609    with parameters
     
    11371624Environment:
    11381625
    1139 there are 4 alternatives before elimination
    1140 there are 4 alternatives after elimination
     1626there are 5 alternatives before elimination
     1627there are 5 alternatives after elimination
    11411628alternatives before prune:
    11421629Cost ( 0, 0, 0 ): Member Expression, with field:
     
    11461633      Name: *?
    11471634  ...to:
    1148       Variable Expression: _dst: pointer to instance of struct S24
     1635      Variable Expression: _dst: pointer to instance of struct __anonymous1
    11491636(types:
    11501637    lvalue instance of type T (not function type)
     
    11621649        Name: *?
    11631650    ...to:
    1164         Variable Expression: _dst: pointer to instance of struct S24
     1651        Variable Expression: _dst: pointer to instance of struct __anonymous1
    11651652(types:
    11661653    pointer to instance of type T (not function type)
     
    11781665        Name: *?
    11791666    ...to:
    1180         Variable Expression: _dst: pointer to instance of struct S24
     1667        Variable Expression: _dst: pointer to instance of struct __anonymous1
    11811668(types:
    11821669    pointer to instance of type T (not function type)
     
    11881675  i: instance of type T (not function type)
    11891676from aggregate:
    1190   Variable Expression: _src: instance of struct S24
     1677  Variable Expression: _src: instance of struct __anonymous1
    11911678(types:
    11921679    lvalue instance of type T (not function type)
     
    12001687  i: instance of type T (not function type)
    12011688from aggregate:
    1202   Variable Expression: _src: instance of struct S24
     1689  Variable Expression: _src: instance of struct __anonymous1
    12031690(types:
    12041691    lvalue instance of type T (not function type)
     
    12251712        Environment:
    12261713formal type is pointer to instance of type List1 (not function type)
    1227 actual type is pointer to instance of type T (not function type)
    1228 working on alternative:
    1229         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    1230             with parameters
    1231               _dst: pointer to instance of struct S24
    1232               _src: instance of struct S24
    1233             returning
    1234               instance of struct S24
    1235 
    1236 (types:
    1237             pointer to function
    1238                 with parameters
    1239                   _dst: pointer to instance of struct S24
    1240                   _src: instance of struct S24
    1241                 returning
    1242                   instance of struct S24
    1243 
    1244 )
    1245         Environment:
    1246 formal type is pointer to instance of struct S24
    12471714actual type is pointer to instance of type T (not function type)
    12481715working on alternative:
     
    12691736        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    12701737            with parameters
     1738              _dst: pointer to instance of struct S1
     1739              _src: instance of struct S1
     1740            returning
     1741              instance of struct S1
     1742
     1743(types:
     1744            pointer to function
     1745                with parameters
     1746                  _dst: pointer to instance of struct S1
     1747                  _src: instance of struct S1
     1748                returning
     1749                  instance of struct S1
     1750
     1751)
     1752        Environment:
     1753formal type is pointer to instance of struct S1
     1754actual type is pointer to instance of type T (not function type)
     1755working on alternative:
     1756        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     1757            with parameters
     1758              _dst: pointer to instance of struct __anonymous1
     1759              _src: instance of struct __anonymous1
     1760            returning
     1761              instance of struct __anonymous1
     1762
     1763(types:
     1764            pointer to function
     1765                with parameters
     1766                  _dst: pointer to instance of struct __anonymous1
     1767                  _src: instance of struct __anonymous1
     1768                returning
     1769                  instance of struct __anonymous1
     1770
     1771)
     1772        Environment:
     1773formal type is pointer to instance of struct __anonymous1
     1774actual type is pointer to instance of type T (not function type)
     1775working on alternative:
     1776        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     1777            with parameters
    12711778              _dst: pointer to instance of struct __anonymous0
    12721779              _src: instance of struct __anonymous0
     
    12871794actual type is pointer to instance of type T (not function type)
    12881795alternatives before prune:
    1289 Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S24
    1290 (types:
    1291     lvalue instance of struct S24
     1796Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1
     1797(types:
     1798    lvalue instance of struct __anonymous1
    12921799)
    12931800Environment:
     
    12971804alternatives before prune:
    12981805Cost ( 0, 0, 0 ): Cast of:
    1299   Variable Expression: _src: instance of struct S24
     1806  Variable Expression: _src: instance of struct __anonymous1
    13001807
    13011808to:
    1302   instance of struct S24
    1303 (types:
    1304     instance of struct S24
     1809  instance of struct __anonymous1
     1810(types:
     1811    instance of struct __anonymous1
    13051812)
    13061813Environment:
     
    14011908                Variable Expression: _src: instance of struct __anonymous1
    14021909
    1403               Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1
     1910              Return Statement, returning: Cast of:
     1911  Variable Expression: _src: instance of struct __anonymous1
     1912
     1913to:
     1914  instance of struct __anonymous1
     1915with environment:
     1916  Types:
     1917  Non-types:
    14041918
    14051919
     
    14111925    returning
    14121926      instance of struct __anonymous1
     1927
     1928
     1929decl is ?=?: automatically generated inline static function
     1930  with parameters
     1931    _dst: pointer to instance of struct S1
     1932    _src: instance of struct S1
     1933  returning
     1934    instance of struct S1
     1935  with body
     1936    CompoundStmt
     1937              Expression Statement:
     1938          Applying untyped:
     1939              Name: ?=?
     1940          ...to:
     1941              Address of:
     1942                Member Expression, with field:
     1943                  i: instance of type T (not function type)
     1944                from aggregate:
     1945                  Applying untyped:
     1946                      Name: *?
     1947                  ...to:
     1948                      Variable Expression: _dst: pointer to instance of struct S1
     1949              Member Expression, with field:
     1950                i: instance of type T (not function type)
     1951              from aggregate:
     1952                Variable Expression: _src: instance of struct S1
     1953
     1954              Return Statement, returning: Cast of:
     1955  Variable Expression: _src: instance of struct S1
     1956
     1957to:
     1958  instance of struct S1
     1959with environment:
     1960  Types:
     1961  Non-types:
     1962
     1963
     1964
     1965newExpr is Variable Expression: ?=?: inline static function
     1966    with parameters
     1967      _dst: pointer to instance of struct S1
     1968      _src: instance of struct S1
     1969    returning
     1970      instance of struct S1
    14131971
    14141972
     
    14592017decl is ?=?: automatically generated inline static function
    14602018  with parameters
    1461     _dst: pointer to instance of struct S24
    1462     _src: instance of struct S24
     2019    _dst: pointer to instance of struct node
     2020    _src: instance of struct node
    14632021  returning
    1464     instance of struct S24
     2022    instance of struct node
    14652023  with body
    14662024    CompoundStmt
     
    14712029              Address of:
    14722030                Member Expression, with field:
    1473                   i: instance of type T (not function type)
    1474                 from aggregate:
    1475                   Applying untyped:
    1476                       Name: *?
    1477                   ...to:
    1478                       Variable Expression: _dst: pointer to instance of struct S24
    1479               Member Expression, with field:
    1480                 i: instance of type T (not function type)
    1481               from aggregate:
    1482                 Variable Expression: _src: instance of struct S24
    1483 
    1484               Return Statement, returning: Cast of:
    1485   Variable Expression: _src: instance of struct S24
    1486 
    1487 to:
    1488   instance of struct S24
    1489 with environment:
    1490   Types:
    1491   Non-types:
     2031                  data: instance of type T (not function type)
     2032                from aggregate:
     2033                  Applying untyped:
     2034                      Name: *?
     2035                  ...to:
     2036                      Variable Expression: _dst: pointer to instance of struct node
     2037              Member Expression, with field:
     2038                data: instance of type T (not function type)
     2039              from aggregate:
     2040                Variable Expression: _src: instance of struct node
     2041
     2042              Expression Statement:
     2043          Applying untyped:
     2044              Name: ?=?
     2045          ...to:
     2046              Address of:
     2047                Member Expression, with field:
     2048                  next: pointer to instance of struct node
     2049                  with parameters
     2050                    instance of type T (not function type)
     2051
     2052                from aggregate:
     2053                  Applying untyped:
     2054                      Name: *?
     2055                  ...to:
     2056                      Variable Expression: _dst: pointer to instance of struct node
     2057              Member Expression, with field:
     2058                next: pointer to instance of struct node
     2059                with parameters
     2060                  instance of type T (not function type)
     2061
     2062              from aggregate:
     2063                Variable Expression: _src: instance of struct node
     2064
     2065              Return Statement, returning: Variable Expression: _src: instance of struct node
    14922066
    14932067
     
    14952069newExpr is Variable Expression: ?=?: inline static function
    14962070    with parameters
    1497       _dst: pointer to instance of struct S24
    1498       _src: instance of struct S24
    1499     returning
    1500       instance of struct S24
     2071      _dst: pointer to instance of struct node
     2072      _src: instance of struct node
     2073    returning
     2074      instance of struct node
    15012075
    15022076
     
    15722146Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    15732147    with parameters
     2148      _dst: pointer to instance of struct S1
     2149      _src: instance of struct S1
     2150    returning
     2151      instance of struct S1
     2152
     2153(types:
     2154    pointer to function
     2155        with parameters
     2156          _dst: pointer to instance of struct S1
     2157          _src: instance of struct S1
     2158        returning
     2159          instance of struct S1
     2160
     2161)
     2162Environment:
     2163
     2164Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     2165    with parameters
    15742166      _dst: pointer to instance of struct S2
    15752167      _src: instance of struct S2
     
    15902182Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    15912183    with parameters
    1592       _dst: pointer to instance of struct S24
    1593       _src: instance of struct S24
    1594     returning
    1595       instance of struct S24
     2184      _dst: pointer to instance of struct node
     2185      _src: instance of struct node
     2186    returning
     2187      instance of struct node
    15962188
    15972189(types:
    15982190    pointer to function
    15992191        with parameters
    1600           _dst: pointer to instance of struct S24
    1601           _src: instance of struct S24
     2192          _dst: pointer to instance of struct node
     2193          _src: instance of struct node
    16022194        returning
    1603           instance of struct S24
     2195          instance of struct node
    16042196
    16052197)
     
    16242216Environment:
    16252217
    1626 there are 5 alternatives before elimination
    1627 there are 5 alternatives after elimination
     2218there are 6 alternatives before elimination
     2219there are 6 alternatives after elimination
    16282220alternatives before prune:
    16292221Cost ( 0, 0, 0 ): Member Expression, with field:
    1630   i: instance of type T (not function type)
     2222  data: instance of type T (not function type)
    16312223from aggregate:
    16322224  Applying untyped:
    16332225      Name: *?
    16342226  ...to:
    1635       Variable Expression: _dst: pointer to instance of struct __anonymous1
     2227      Variable Expression: _dst: pointer to instance of struct node
    16362228(types:
    16372229    lvalue instance of type T (not function type)
     
    16442236Cost ( 0, 0, 0 ): Address of:
    16452237  Member Expression, with field:
    1646     i: instance of type T (not function type)
     2238    data: instance of type T (not function type)
    16472239  from aggregate:
    16482240    Applying untyped:
    16492241        Name: *?
    16502242    ...to:
    1651         Variable Expression: _dst: pointer to instance of struct __anonymous1
     2243        Variable Expression: _dst: pointer to instance of struct node
    16522244(types:
    16532245    pointer to instance of type T (not function type)
     
    16602252Cost ( 0, 0, 0 ): Address of:
    16612253  Member Expression, with field:
    1662     i: instance of type T (not function type)
     2254    data: instance of type T (not function type)
    16632255  from aggregate:
    16642256    Applying untyped:
    16652257        Name: *?
    16662258    ...to:
    1667         Variable Expression: _dst: pointer to instance of struct __anonymous1
     2259        Variable Expression: _dst: pointer to instance of struct node
    16682260(types:
    16692261    pointer to instance of type T (not function type)
     
    16732265alternatives before prune:
    16742266Cost ( 0, 0, 0 ): Member Expression, with field:
    1675   i: instance of type T (not function type)
     2267  data: instance of type T (not function type)
    16762268from aggregate:
    1677   Variable Expression: _src: instance of struct __anonymous1
     2269  Variable Expression: _src: instance of struct node
    16782270(types:
    16792271    lvalue instance of type T (not function type)
     
    16852277findSubExprs
    16862278Cost ( 0, 0, 0 ): Member Expression, with field:
    1687   i: instance of type T (not function type)
     2279  data: instance of type T (not function type)
    16882280from aggregate:
    1689   Variable Expression: _src: instance of struct __anonymous1
     2281  Variable Expression: _src: instance of struct node
    16902282(types:
    16912283    lvalue instance of type T (not function type)
     
    17162308        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    17172309            with parameters
    1718               _dst: pointer to instance of struct S24
    1719               _src: instance of struct S24
     2310              _dst: pointer to instance of struct node
     2311              _src: instance of struct node
    17202312            returning
    1721               instance of struct S24
     2313              instance of struct node
    17222314
    17232315(types:
    17242316            pointer to function
    17252317                with parameters
    1726                   _dst: pointer to instance of struct S24
    1727                   _src: instance of struct S24
     2318                  _dst: pointer to instance of struct node
     2319                  _src: instance of struct node
    17282320                returning
    1729                   instance of struct S24
     2321                  instance of struct node
    17302322
    17312323)
    17322324        Environment:
    1733 formal type is pointer to instance of struct S24
     2325formal type is pointer to instance of struct node
    17342326actual type is pointer to instance of type T (not function type)
    17352327working on alternative:
     
    17522344        Environment:
    17532345formal type is pointer to instance of struct S2
     2346actual type is pointer to instance of type T (not function type)
     2347working on alternative:
     2348        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     2349            with parameters
     2350              _dst: pointer to instance of struct S1
     2351              _src: instance of struct S1
     2352            returning
     2353              instance of struct S1
     2354
     2355(types:
     2356            pointer to function
     2357                with parameters
     2358                  _dst: pointer to instance of struct S1
     2359                  _src: instance of struct S1
     2360                returning
     2361                  instance of struct S1
     2362
     2363)
     2364        Environment:
     2365formal type is pointer to instance of struct S1
    17542366actual type is pointer to instance of type T (not function type)
    17552367working on alternative:
     
    17932405formal type is pointer to instance of struct __anonymous0
    17942406actual type is pointer to instance of type T (not function type)
    1795 alternatives before prune:
    1796 Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1
    1797 (types:
    1798     lvalue instance of struct __anonymous1
    1799 )
    1800 Environment:
    1801 
    1802 there are 1 alternatives before elimination
    1803 there are 1 alternatives after elimination
    1804 alternatives before prune:
    1805 Cost ( 0, 0, 0 ): Cast of:
    1806   Variable Expression: _src: instance of struct __anonymous1
    1807 
    1808 to:
    1809   instance of struct __anonymous1
    1810 (types:
    1811     instance of struct __anonymous1
    1812 )
    1813 Environment:
    1814 
    1815 there are 1 alternatives before elimination
    1816 there are 1 alternatives after elimination
    18172407nameExpr is ?=?
    18182408decl is ?=?: automatically generated inline static function
     
    19292519decl is ?=?: automatically generated inline static function
    19302520  with parameters
     2521    _dst: pointer to instance of struct S1
     2522    _src: instance of struct S1
     2523  returning
     2524    instance of struct S1
     2525  with body
     2526    CompoundStmt
     2527              Expression Statement:
     2528          Applying untyped:
     2529              Name: ?=?
     2530          ...to:
     2531              Address of:
     2532                Member Expression, with field:
     2533                  i: instance of type T (not function type)
     2534                from aggregate:
     2535                  Applying untyped:
     2536                      Name: *?
     2537                  ...to:
     2538                      Variable Expression: _dst: pointer to instance of struct S1
     2539              Member Expression, with field:
     2540                i: instance of type T (not function type)
     2541              from aggregate:
     2542                Variable Expression: _src: instance of struct S1
     2543
     2544              Return Statement, returning: Cast of:
     2545  Variable Expression: _src: instance of struct S1
     2546
     2547to:
     2548  instance of struct S1
     2549with environment:
     2550  Types:
     2551  Non-types:
     2552
     2553
     2554
     2555newExpr is Variable Expression: ?=?: inline static function
     2556    with parameters
     2557      _dst: pointer to instance of struct S1
     2558      _src: instance of struct S1
     2559    returning
     2560      instance of struct S1
     2561
     2562
     2563decl is ?=?: automatically generated inline static function
     2564  with parameters
    19312565    _dst: pointer to instance of struct S2
    19322566    _src: instance of struct S2
     
    19692603    returning
    19702604      instance of struct S2
    1971 
    1972 
    1973 decl is ?=?: automatically generated inline static function
    1974   with parameters
    1975     _dst: pointer to instance of struct S24
    1976     _src: instance of struct S24
    1977   returning
    1978     instance of struct S24
    1979   with body
    1980     CompoundStmt
    1981               Expression Statement:
    1982           Applying untyped:
    1983               Name: ?=?
    1984           ...to:
    1985               Address of:
    1986                 Member Expression, with field:
    1987                   i: instance of type T (not function type)
    1988                 from aggregate:
    1989                   Applying untyped:
    1990                       Name: *?
    1991                   ...to:
    1992                       Variable Expression: _dst: pointer to instance of struct S24
    1993               Member Expression, with field:
    1994                 i: instance of type T (not function type)
    1995               from aggregate:
    1996                 Variable Expression: _src: instance of struct S24
    1997 
    1998               Return Statement, returning: Cast of:
    1999   Variable Expression: _src: instance of struct S24
    2000 
    2001 to:
    2002   instance of struct S24
    2003 with environment:
    2004   Types:
    2005   Non-types:
    2006 
    2007 
    2008 
    2009 newExpr is Variable Expression: ?=?: inline static function
    2010     with parameters
    2011       _dst: pointer to instance of struct S24
    2012       _src: instance of struct S24
    2013     returning
    2014       instance of struct S24
    20152605
    20162606
     
    21462736Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    21472737    with parameters
     2738      _dst: pointer to instance of struct S1
     2739      _src: instance of struct S1
     2740    returning
     2741      instance of struct S1
     2742
     2743(types:
     2744    pointer to function
     2745        with parameters
     2746          _dst: pointer to instance of struct S1
     2747          _src: instance of struct S1
     2748        returning
     2749          instance of struct S1
     2750
     2751)
     2752Environment:
     2753
     2754Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     2755    with parameters
    21482756      _dst: pointer to instance of struct S2
    21492757      _src: instance of struct S2
     
    21642772Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    21652773    with parameters
    2166       _dst: pointer to instance of struct S24
    2167       _src: instance of struct S24
    2168     returning
    2169       instance of struct S24
    2170 
    2171 (types:
    2172     pointer to function
    2173         with parameters
    2174           _dst: pointer to instance of struct S24
    2175           _src: instance of struct S24
    2176         returning
    2177           instance of struct S24
    2178 
    2179 )
    2180 Environment:
    2181 
    2182 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    2183     with parameters
    21842774      _dst: pointer to instance of struct node
    21852775      _src: instance of struct node
     
    22202810alternatives before prune:
    22212811Cost ( 0, 0, 0 ): Member Expression, with field:
    2222   data: instance of type T (not function type)
     2812  next: pointer to instance of struct node
     2813  with parameters
     2814    instance of type T (not function type)
     2815
    22232816from aggregate:
    22242817  Applying untyped:
     
    22272820      Variable Expression: _dst: pointer to instance of struct node
    22282821(types:
    2229     lvalue instance of type T (not function type)
     2822    lvalue pointer to instance of struct node
     2823      with parameters
     2824        instance of type T (not function type)
     2825
    22302826)
    22312827Environment:
     
    22362832Cost ( 0, 0, 0 ): Address of:
    22372833  Member Expression, with field:
    2238     data: instance of type T (not function type)
     2834    next: pointer to instance of struct node
     2835    with parameters
     2836      instance of type T (not function type)
     2837
    22392838  from aggregate:
    22402839    Applying untyped:
     
    22432842        Variable Expression: _dst: pointer to instance of struct node
    22442843(types:
    2245     pointer to instance of type T (not function type)
     2844    pointer to pointer to instance of struct node
     2845      with parameters
     2846        instance of type T (not function type)
     2847
    22462848)
    22472849Environment:
     
    22522854Cost ( 0, 0, 0 ): Address of:
    22532855  Member Expression, with field:
    2254     data: instance of type T (not function type)
     2856    next: pointer to instance of struct node
     2857    with parameters
     2858      instance of type T (not function type)
     2859
    22552860  from aggregate:
    22562861    Applying untyped:
     
    22592864        Variable Expression: _dst: pointer to instance of struct node
    22602865(types:
    2261     pointer to instance of type T (not function type)
     2866    pointer to pointer to instance of struct node
     2867      with parameters
     2868        instance of type T (not function type)
     2869
    22622870)
    22632871Environment:
     
    22652873alternatives before prune:
    22662874Cost ( 0, 0, 0 ): Member Expression, with field:
    2267   data: instance of type T (not function type)
     2875  next: pointer to instance of struct node
     2876  with parameters
     2877    instance of type T (not function type)
     2878
    22682879from aggregate:
    22692880  Variable Expression: _src: instance of struct node
    22702881(types:
    2271     lvalue instance of type T (not function type)
     2882    lvalue pointer to instance of struct node
     2883      with parameters
     2884        instance of type T (not function type)
     2885
    22722886)
    22732887Environment:
     
    22772891findSubExprs
    22782892Cost ( 0, 0, 0 ): Member Expression, with field:
    2279   data: instance of type T (not function type)
     2893  next: pointer to instance of struct node
     2894  with parameters
     2895    instance of type T (not function type)
     2896
    22802897from aggregate:
    22812898  Variable Expression: _src: instance of struct node
    22822899(types:
    2283     lvalue instance of type T (not function type)
     2900    lvalue pointer to instance of struct node
     2901      with parameters
     2902        instance of type T (not function type)
     2903
    22842904)
    22852905Environment:
     
    23042924        Environment:
    23052925formal type is pointer to instance of type List1 (not function type)
    2306 actual type is pointer to instance of type T (not function type)
     2926actual type is pointer to pointer to instance of struct node
     2927with parameters
     2928  instance of type T (not function type)
     2929
    23072930working on alternative:
    23082931        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     
    23242947        Environment:
    23252948formal type is pointer to instance of struct node
    2326 actual type is pointer to instance of type T (not function type)
    2327 working on alternative:
    2328         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    2329             with parameters
    2330               _dst: pointer to instance of struct S24
    2331               _src: instance of struct S24
    2332             returning
    2333               instance of struct S24
    2334 
    2335 (types:
    2336             pointer to function
    2337                 with parameters
    2338                   _dst: pointer to instance of struct S24
    2339                   _src: instance of struct S24
    2340                 returning
    2341                   instance of struct S24
    2342 
    2343 )
    2344         Environment:
    2345 formal type is pointer to instance of struct S24
    2346 actual type is pointer to instance of type T (not function type)
     2949actual type is pointer to pointer to instance of struct node
     2950with parameters
     2951  instance of type T (not function type)
     2952
    23472953working on alternative:
    23482954        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     
    23642970        Environment:
    23652971formal type is pointer to instance of struct S2
    2366 actual type is pointer to instance of type T (not function type)
     2972actual type is pointer to pointer to instance of struct node
     2973with parameters
     2974  instance of type T (not function type)
     2975
     2976working on alternative:
     2977        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     2978            with parameters
     2979              _dst: pointer to instance of struct S1
     2980              _src: instance of struct S1
     2981            returning
     2982              instance of struct S1
     2983
     2984(types:
     2985            pointer to function
     2986                with parameters
     2987                  _dst: pointer to instance of struct S1
     2988                  _src: instance of struct S1
     2989                returning
     2990                  instance of struct S1
     2991
     2992)
     2993        Environment:
     2994formal type is pointer to instance of struct S1
     2995actual type is pointer to pointer to instance of struct node
     2996with parameters
     2997  instance of type T (not function type)
     2998
    23672999working on alternative:
    23683000        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     
    23843016        Environment:
    23853017formal type is pointer to instance of struct __anonymous1
    2386 actual type is pointer to instance of type T (not function type)
     3018actual type is pointer to pointer to instance of struct node
     3019with parameters
     3020  instance of type T (not function type)
     3021
    23873022working on alternative:
    23883023        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
     
    24043039        Environment:
    24053040formal type is pointer to instance of struct __anonymous0
    2406 actual type is pointer to instance of type T (not function type)
     3041actual type is pointer to pointer to instance of struct node
     3042with parameters
     3043  instance of type T (not function type)
     3044
     3045alternatives before prune:
     3046Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct node
     3047(types:
     3048    lvalue instance of struct node
     3049)
     3050Environment:
     3051
     3052there are 1 alternatives before elimination
     3053there are 1 alternatives after elimination
     3054alternatives before prune:
     3055Cost ( 0, 0, 0 ): Cast of:
     3056  Variable Expression: _src: instance of struct node
     3057
     3058to:
     3059  instance of struct node
     3060(types:
     3061    instance of struct node
     3062)
     3063Environment:
     3064
     3065there are 1 alternatives before elimination
     3066there are 1 alternatives after elimination
    24073067nameExpr is ?=?
    24083068decl is ?=?: automatically generated inline static function
     
    25193179decl is ?=?: automatically generated inline static function
    25203180  with parameters
     3181    _dst: pointer to instance of struct S1
     3182    _src: instance of struct S1
     3183  returning
     3184    instance of struct S1
     3185  with body
     3186    CompoundStmt
     3187              Expression Statement:
     3188          Applying untyped:
     3189              Name: ?=?
     3190          ...to:
     3191              Address of:
     3192                Member Expression, with field:
     3193                  i: instance of type T (not function type)
     3194                from aggregate:
     3195                  Applying untyped:
     3196                      Name: *?
     3197                  ...to:
     3198                      Variable Expression: _dst: pointer to instance of struct S1
     3199              Member Expression, with field:
     3200                i: instance of type T (not function type)
     3201              from aggregate:
     3202                Variable Expression: _src: instance of struct S1
     3203
     3204              Return Statement, returning: Cast of:
     3205  Variable Expression: _src: instance of struct S1
     3206
     3207to:
     3208  instance of struct S1
     3209with environment:
     3210  Types:
     3211  Non-types:
     3212
     3213
     3214
     3215newExpr is Variable Expression: ?=?: inline static function
     3216    with parameters
     3217      _dst: pointer to instance of struct S1
     3218      _src: instance of struct S1
     3219    returning
     3220      instance of struct S1
     3221
     3222
     3223decl is ?=?: automatically generated inline static function
     3224  with parameters
    25213225    _dst: pointer to instance of struct S2
    25223226    _src: instance of struct S2
     
    25633267decl is ?=?: automatically generated inline static function
    25643268  with parameters
    2565     _dst: pointer to instance of struct S24
    2566     _src: instance of struct S24
    2567   returning
    2568     instance of struct S24
    2569   with body
    2570     CompoundStmt
    2571               Expression Statement:
    2572           Applying untyped:
    2573               Name: ?=?
    2574           ...to:
    2575               Address of:
    2576                 Member Expression, with field:
    2577                   i: instance of type T (not function type)
    2578                 from aggregate:
    2579                   Applying untyped:
    2580                       Name: *?
    2581                   ...to:
    2582                       Variable Expression: _dst: pointer to instance of struct S24
    2583               Member Expression, with field:
    2584                 i: instance of type T (not function type)
    2585               from aggregate:
    2586                 Variable Expression: _src: instance of struct S24
    2587 
    2588               Return Statement, returning: Cast of:
    2589   Variable Expression: _src: instance of struct S24
    2590 
    2591 to:
    2592   instance of struct S24
    2593 with environment:
    2594   Types:
    2595   Non-types:
    2596 
    2597 
    2598 
    2599 newExpr is Variable Expression: ?=?: inline static function
    2600     with parameters
    2601       _dst: pointer to instance of struct S24
    2602       _src: instance of struct S24
    2603     returning
    2604       instance of struct S24
    2605 
    2606 
    2607 decl is ?=?: automatically generated inline static function
    2608   with parameters
    26093269    _dst: pointer to instance of struct node
    26103270    _src: instance of struct node
     
    26533313                Variable Expression: _src: instance of struct node
    26543314
    2655               Return Statement, returning: Variable Expression: _src: instance of struct node
     3315              Return Statement, returning: Cast of:
     3316  Variable Expression: _src: instance of struct node
     3317
     3318to:
     3319  instance of struct node
     3320with environment:
     3321  Types:
     3322  Non-types:
    26563323
    26573324
     
    26633330    returning
    26643331      instance of struct node
     3332
     3333
     3334decl is ?=?: automatically generated function
     3335  with parameters
     3336    _dst: pointer to instance of type List (not function type)
     3337    _src: instance of type List (not function type)
     3338  returning
     3339    instance of type List (not function type)
     3340  with body
     3341    CompoundStmt
     3342              Return Statement, returning: Applying untyped:
     3343    Name: ?=?
     3344...to:
     3345    Cast of:
     3346      Variable Expression: _dst: pointer to instance of type List (not function type)
     3347
     3348    to:
     3349      pointer to pointer to instance of struct node
     3350        with parameters
     3351          instance of type T (not function type)
     3352
     3353    Cast of:
     3354      Variable Expression: _src: instance of type List (not function type)
     3355
     3356    to:
     3357      pointer to instance of struct node
     3358        with parameters
     3359          instance of type T (not function type)
     3360
     3361
     3362
     3363
     3364newExpr is Variable Expression: ?=?: function
     3365    with parameters
     3366      _dst: pointer to instance of type List (not function type)
     3367      _src: instance of type List (not function type)
     3368    returning
     3369      instance of type List (not function type)
    26653370
    26663371
     
    27363441Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    27373442    with parameters
     3443      _dst: pointer to instance of struct S1
     3444      _src: instance of struct S1
     3445    returning
     3446      instance of struct S1
     3447
     3448(types:
     3449    pointer to function
     3450        with parameters
     3451          _dst: pointer to instance of struct S1
     3452          _src: instance of struct S1
     3453        returning
     3454          instance of struct S1
     3455
     3456)
     3457Environment:
     3458
     3459Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
     3460    with parameters
    27383461      _dst: pointer to instance of struct S2
    27393462      _src: instance of struct S2
     
    27483471        returning
    27493472          instance of struct S2
    2750 
    2751 )
    2752 Environment:
    2753 
    2754 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    2755     with parameters
    2756       _dst: pointer to instance of struct S24
    2757       _src: instance of struct S24
    2758     returning
    2759       instance of struct S24
    2760 
    2761 (types:
    2762     pointer to function
    2763         with parameters
    2764           _dst: pointer to instance of struct S24
    2765           _src: instance of struct S24
    2766         returning
    2767           instance of struct S24
    2768 
    2769 )
    2770 Environment:
    2771 
    2772 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    2773     with parameters
    2774       _dst: pointer to instance of struct node
    2775       _src: instance of struct node
    2776     returning
    2777       instance of struct node
    2778 
    2779 (types:
    2780     pointer to function
    2781         with parameters
    2782           _dst: pointer to instance of struct node
    2783           _src: instance of struct node
    2784         returning
    2785           instance of struct node
    2786 
    2787 )
    2788 Environment:
    2789 
    2790 Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
    2791     with parameters
    2792       _dst: pointer to instance of type List1 (not function type)
    2793       _src: instance of type List1 (not function type)
    2794     returning
    2795       instance of type List1 (not function type)
    2796 
    2797 (types:
    2798     pointer to function
    2799         with parameters
    2800           _dst: pointer to instance of type List1 (not function type)
    2801           _src: instance of type List1 (not function type)
    2802         returning
    2803           instance of type List1 (not function type)
    2804 
    2805 )
    2806 Environment:
    2807 
    2808 there are 6 alternatives before elimination
    2809 there are 6 alternatives after elimination
    2810 alternatives before prune:
    2811 Cost ( 0, 0, 0 ): Member Expression, with field:
    2812   next: pointer to instance of struct node
    2813   with parameters
    2814     instance of type T (not function type)
    2815 
    2816 from aggregate:
    2817   Applying untyped:
    2818       Name: *?
    2819   ...to:
    2820       Variable Expression: _dst: pointer to instance of struct node
    2821 (types:
    2822     lvalue pointer to instance of struct node
    2823       with parameters
    2824         instance of type T (not function type)
    2825 
    2826 )
    2827 Environment:
    2828 
    2829 there are 1 alternatives before elimination
    2830 there are 1 alternatives after elimination
    2831 alternatives before prune:
    2832 Cost ( 0, 0, 0 ): Address of:
    2833   Member Expression, with field:
    2834     next: pointer to instance of struct node
    2835     with parameters
    2836       instance of type T (not function type)
    2837 
    2838   from aggregate:
    2839     Applying untyped:
    2840         Name: *?
    2841     ...to:
    2842         Variable Expression: _dst: pointer to instance of struct node
    2843 (types:
    2844     pointer to pointer to instance of struct node
    2845       with parameters
    2846         instance of type T (not function type)
    2847 
    2848 )
    2849 Environment:
    2850 
    2851 there are 1 alternatives before elimination
    2852 there are 1 alternatives after elimination
    2853 findSubExprs
    2854 Cost ( 0, 0, 0 ): Address of:
    2855   Member Expression, with field:
    2856     next: pointer to instance of struct node
    2857     with parameters
    2858       instance of type T (not function type)
    2859 
    2860   from aggregate:
    2861     Applying untyped:
    2862         Name: *?
    2863     ...to:
    2864         Variable Expression: _dst: pointer to instance of struct node
    2865 (types:
    2866     pointer to pointer to instance of struct node
    2867       with parameters
    2868         instance of type T (not function type)
    2869 
    2870 )
    2871 Environment:
    2872 
    2873 alternatives before prune:
    2874 Cost ( 0, 0, 0 ): Member Expression, with field:
    2875   next: pointer to instance of struct node
    2876   with parameters
    2877     instance of type T (not function type)
    2878 
    2879 from aggregate:
    2880   Variable Expression: _src: instance of struct node
    2881 (types:
    2882     lvalue pointer to instance of struct node
    2883       with parameters
    2884         instance of type T (not function type)
    2885 
    2886 )
    2887 Environment:
    2888 
    2889 there are 1 alternatives before elimination
    2890 there are 1 alternatives after elimination
    2891 findSubExprs
    2892 Cost ( 0, 0, 0 ): Member Expression, with field:
    2893   next: pointer to instance of struct node
    2894   with parameters
    2895     instance of type T (not function type)
    2896 
    2897 from aggregate:
    2898   Variable Expression: _src: instance of struct node
    2899 (types:
    2900     lvalue pointer to instance of struct node
    2901       with parameters
    2902         instance of type T (not function type)
    2903 
    2904 )
    2905 Environment:
    2906 
    2907 working on alternative:
    2908         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
    2909             with parameters
    2910               _dst: pointer to instance of type List1 (not function type)
    2911               _src: instance of type List1 (not function type)
    2912             returning
    2913               instance of type List1 (not function type)
    2914 
    2915 (types:
    2916             pointer to function
    2917                 with parameters
    2918                   _dst: pointer to instance of type List1 (not function type)
    2919                   _src: instance of type List1 (not function type)
    2920                 returning
    2921                   instance of type List1 (not function type)
    2922 
    2923 )
    2924         Environment:
    2925 formal type is pointer to instance of type List1 (not function type)
    2926 actual type is pointer to pointer to instance of struct node
    2927 with parameters
    2928   instance of type T (not function type)
    2929 
    2930 working on alternative:
    2931         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    2932             with parameters
    2933               _dst: pointer to instance of struct node
    2934               _src: instance of struct node
    2935             returning
    2936               instance of struct node
    2937 
    2938 (types:
    2939             pointer to function
    2940                 with parameters
    2941                   _dst: pointer to instance of struct node
    2942                   _src: instance of struct node
    2943                 returning
    2944                   instance of struct node
    2945 
    2946 )
    2947         Environment:
    2948 formal type is pointer to instance of struct node
    2949 actual type is pointer to pointer to instance of struct node
    2950 with parameters
    2951   instance of type T (not function type)
    2952 
    2953 working on alternative:
    2954         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    2955             with parameters
    2956               _dst: pointer to instance of struct S24
    2957               _src: instance of struct S24
    2958             returning
    2959               instance of struct S24
    2960 
    2961 (types:
    2962             pointer to function
    2963                 with parameters
    2964                   _dst: pointer to instance of struct S24
    2965                   _src: instance of struct S24
    2966                 returning
    2967                   instance of struct S24
    2968 
    2969 )
    2970         Environment:
    2971 formal type is pointer to instance of struct S24
    2972 actual type is pointer to pointer to instance of struct node
    2973 with parameters
    2974   instance of type T (not function type)
    2975 
    2976 working on alternative:
    2977         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    2978             with parameters
    2979               _dst: pointer to instance of struct S2
    2980               _src: instance of struct S2
    2981             returning
    2982               instance of struct S2
    2983 
    2984 (types:
    2985             pointer to function
    2986                 with parameters
    2987                   _dst: pointer to instance of struct S2
    2988                   _src: instance of struct S2
    2989                 returning
    2990                   instance of struct S2
    2991 
    2992 )
    2993         Environment:
    2994 formal type is pointer to instance of struct S2
    2995 actual type is pointer to pointer to instance of struct node
    2996 with parameters
    2997   instance of type T (not function type)
    2998 
    2999 working on alternative:
    3000         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    3001             with parameters
    3002               _dst: pointer to instance of struct __anonymous1
    3003               _src: instance of struct __anonymous1
    3004             returning
    3005               instance of struct __anonymous1
    3006 
    3007 (types:
    3008             pointer to function
    3009                 with parameters
    3010                   _dst: pointer to instance of struct __anonymous1
    3011                   _src: instance of struct __anonymous1
    3012                 returning
    3013                   instance of struct __anonymous1
    3014 
    3015 )
    3016         Environment:
    3017 formal type is pointer to instance of struct __anonymous1
    3018 actual type is pointer to pointer to instance of struct node
    3019 with parameters
    3020   instance of type T (not function type)
    3021 
    3022 working on alternative:
    3023         Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
    3024             with parameters
    3025               _dst: pointer to instance of struct __anonymous0
    3026               _src: instance of struct __anonymous0
    3027             returning
    3028               instance of struct __anonymous0
    3029 
    3030 (types:
    3031             pointer to function
    3032                 with parameters
    3033                   _dst: pointer to instance of struct __anonymous0
    3034                   _src: instance of struct __anonymous0
    3035                 returning
    3036                   instance of struct __anonymous0
    3037 
    3038 )
    3039         Environment:
    3040 formal type is pointer to instance of struct __anonymous0
    3041 actual type is pointer to pointer to instance of struct node
    3042 with parameters
    3043   instance of type T (not function type)
    3044 
    3045 alternatives before prune:
    3046 Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct node
    3047 (types:
    3048     lvalue instance of struct node
    3049 )
    3050 Environment:
    3051 
    3052 there are 1 alternatives before elimination
    3053 there are 1 alternatives after elimination
    3054 alternatives before prune:
    3055 Cost ( 0, 0, 0 ): Cast of:
    3056   Variable Expression: _src: instance of struct node
    3057 
    3058 to:
    3059   instance of struct node
    3060 (types:
    3061     instance of struct node
    3062 )
    3063 Environment:
    3064 
    3065 there are 1 alternatives before elimination
    3066 there are 1 alternatives after elimination
    3067 nameExpr is ?=?
    3068 decl is ?=?: automatically generated inline static function
    3069   with parameters
    3070     _dst: pointer to instance of struct __anonymous0
    3071     _src: instance of struct __anonymous0
    3072   returning
    3073     instance of struct __anonymous0
    3074   with body
    3075     CompoundStmt
    3076               Expression Statement:
    3077           Applying untyped:
    3078               Name: ?=?
    3079           ...to:
    3080               Address of:
    3081                 Member Expression, with field:
    3082                   data: instance of type T (not function type)
    3083                 from aggregate:
    3084                   Applying untyped:
    3085                       Name: *?
    3086                   ...to:
    3087                       Variable Expression: _dst: pointer to instance of struct __anonymous0
    3088               Member Expression, with field:
    3089                 data: instance of type T (not function type)
    3090               from aggregate:
    3091                 Variable Expression: _src: instance of struct __anonymous0
    3092 
    3093               Expression Statement:
    3094           Applying untyped:
    3095               Name: ?=?
    3096           ...to:
    3097               Address of:
    3098                 Member Expression, with field:
    3099                   next: pointer to instance of type List1 (not function type)
    3100                   with parameters
    3101                     instance of type T (not function type)
    3102 
    3103                 from aggregate:
    3104                   Applying untyped:
    3105                       Name: *?
    3106                   ...to:
    3107                       Variable Expression: _dst: pointer to instance of struct __anonymous0
    3108               Member Expression, with field:
    3109                 next: pointer to instance of type List1 (not function type)
    3110                 with parameters
    3111                   instance of type T (not function type)
    3112 
    3113               from aggregate:
    3114                 Variable Expression: _src: instance of struct __anonymous0
    3115 
    3116               Return Statement, returning: Cast of:
    3117   Variable Expression: _src: instance of struct __anonymous0
    3118 
    3119 to:
    3120   instance of struct __anonymous0
    3121 with environment:
    3122   Types:
    3123   Non-types:
    3124 
    3125 
    3126 
    3127 newExpr is Variable Expression: ?=?: inline static function
    3128     with parameters
    3129       _dst: pointer to instance of struct __anonymous0
    3130       _src: instance of struct __anonymous0
    3131     returning
    3132       instance of struct __anonymous0
    3133 
    3134 
    3135 decl is ?=?: automatically generated inline static function
    3136   with parameters
    3137     _dst: pointer to instance of struct __anonymous1
    3138     _src: instance of struct __anonymous1
    3139   returning
    3140     instance of struct __anonymous1
    3141   with body
    3142     CompoundStmt
    3143               Expression Statement:
    3144           Applying untyped:
    3145               Name: ?=?
    3146           ...to:
    3147               Address of:
    3148                 Member Expression, with field:
    3149                   i: instance of type T (not function type)
    3150                 from aggregate:
    3151                   Applying untyped:
    3152                       Name: *?
    3153                   ...to:
    3154                       Variable Expression: _dst: pointer to instance of struct __anonymous1
    3155               Member Expression, with field:
    3156                 i: instance of type T (not function type)
    3157               from aggregate:
    3158                 Variable Expression: _src: instance of struct __anonymous1
    3159 
    3160               Return Statement, returning: Cast of:
    3161   Variable Expression: _src: instance of struct __anonymous1
    3162 
    3163 to:
    3164   instance of struct __anonymous1
    3165 with environment:
    3166   Types:
    3167   Non-types:
    3168 
    3169 
    3170 
    3171 newExpr is Variable Expression: ?=?: inline static function
    3172     with parameters
    3173       _dst: pointer to instance of struct __anonymous1
    3174       _src: instance of struct __anonymous1
    3175     returning
    3176       instance of struct __anonymous1
    3177 
    3178 
    3179 decl is ?=?: automatically generated inline static function
    3180   with parameters
    3181     _dst: pointer to instance of struct S2
    3182     _src: instance of struct S2
    3183   returning
    3184     instance of struct S2
    3185   with body
    3186     CompoundStmt
    3187               Expression Statement:
    3188           Applying untyped:
    3189               Name: ?=?
    3190           ...to:
    3191               Address of:
    3192                 Member Expression, with field:
    3193                   i: instance of type T (not function type)
    3194                 from aggregate:
    3195                   Applying untyped:
    3196                       Name: *?
    3197                   ...to:
    3198                       Variable Expression: _dst: pointer to instance of struct S2
    3199               Member Expression, with field:
    3200                 i: instance of type T (not function type)
    3201               from aggregate:
    3202                 Variable Expression: _src: instance of struct S2
    3203 
    3204               Return Statement, returning: Cast of:
    3205   Variable Expression: _src: instance of struct S2
    3206 
    3207 to:
    3208   instance of struct S2
    3209 with environment:
    3210   Types:
    3211   Non-types:
    3212 
    3213 
    3214 
    3215 newExpr is Variable Expression: ?=?: inline static function
    3216     with parameters
    3217       _dst: pointer to instance of struct S2
    3218       _src: instance of struct S2
    3219     returning
    3220       instance of struct S2
    3221 
    3222 
    3223 decl is ?=?: automatically generated inline static function
    3224   with parameters
    3225     _dst: pointer to instance of struct S24
    3226     _src: instance of struct S24
    3227   returning
    3228     instance of struct S24
    3229   with body
    3230     CompoundStmt
    3231               Expression Statement:
    3232           Applying untyped:
    3233               Name: ?=?
    3234           ...to:
    3235               Address of:
    3236                 Member Expression, with field:
    3237                   i: instance of type T (not function type)
    3238                 from aggregate:
    3239                   Applying untyped:
    3240                       Name: *?
    3241                   ...to:
    3242                       Variable Expression: _dst: pointer to instance of struct S24
    3243               Member Expression, with field:
    3244                 i: instance of type T (not function type)
    3245               from aggregate:
    3246                 Variable Expression: _src: instance of struct S24
    3247 
    3248               Return Statement, returning: Cast of:
    3249   Variable Expression: _src: instance of struct S24
    3250 
    3251 to:
    3252   instance of struct S24
    3253 with environment:
    3254   Types:
    3255   Non-types:
    3256 
    3257 
    3258 
    3259 newExpr is Variable Expression: ?=?: inline static function
    3260     with parameters
    3261       _dst: pointer to instance of struct S24
    3262       _src: instance of struct S24
    3263     returning
    3264       instance of struct S24
    3265 
    3266 
    3267 decl is ?=?: automatically generated inline static function
    3268   with parameters
    3269     _dst: pointer to instance of struct node
    3270     _src: instance of struct node
    3271   returning
    3272     instance of struct node
    3273   with body
    3274     CompoundStmt
    3275               Expression Statement:
    3276           Applying untyped:
    3277               Name: ?=?
    3278           ...to:
    3279               Address of:
    3280                 Member Expression, with field:
    3281                   data: instance of type T (not function type)
    3282                 from aggregate:
    3283                   Applying untyped:
    3284                       Name: *?
    3285                   ...to:
    3286                       Variable Expression: _dst: pointer to instance of struct node
    3287               Member Expression, with field:
    3288                 data: instance of type T (not function type)
    3289               from aggregate:
    3290                 Variable Expression: _src: instance of struct node
    3291 
    3292               Expression Statement:
    3293           Applying untyped:
    3294               Name: ?=?
    3295           ...to:
    3296               Address of:
    3297                 Member Expression, with field:
    3298                   next: pointer to instance of struct node
    3299                   with parameters
    3300                     instance of type T (not function type)
    3301 
    3302                 from aggregate:
    3303                   Applying untyped:
    3304                       Name: *?
    3305                   ...to:
    3306                       Variable Expression: _dst: pointer to instance of struct node
    3307               Member Expression, with field:
    3308                 next: pointer to instance of struct node
    3309                 with parameters
    3310                   instance of type T (not function type)
    3311 
    3312               from aggregate:
    3313                 Variable Expression: _src: instance of struct node
    3314 
    3315               Return Statement, returning: Cast of:
    3316   Variable Expression: _src: instance of struct node
    3317 
    3318 to:
    3319   instance of struct node
    3320 with environment:
    3321   Types:
    3322   Non-types:
    3323 
    3324 
    3325 
    3326 newExpr is Variable Expression: ?=?: inline static function
    3327     with parameters
    3328       _dst: pointer to instance of struct node
    3329       _src: instance of struct node
    3330     returning
    3331       instance of struct node
    3332 
    3333 
    3334 decl is ?=?: automatically generated function
    3335   with parameters
    3336     _dst: pointer to instance of type List (not function type)
    3337     _src: instance of type List (not function type)
    3338   returning
    3339     instance of type List (not function type)
    3340   with body
    3341     CompoundStmt
    3342               Return Statement, returning: Applying untyped:
    3343     Name: ?=?
    3344 ...to:
    3345     Cast of:
    3346       Variable Expression: _dst: pointer to instance of type List (not function type)
    3347 
    3348     to:
    3349       pointer to pointer to instance of struct node
    3350         with parameters
    3351           instance of type T (not function type)
    3352 
    3353     Cast of:
    3354       Variable Expression: _src: instance of type List (not function type)
    3355 
    3356     to:
    3357       pointer to instance of struct node
    3358         with parameters
    3359           instance of type T (not function type)
    3360 
    3361 
    3362 
    3363 
    3364 newExpr is Variable Expression: ?=?: function
    3365     with parameters
    3366       _dst: pointer to instance of type List (not function type)
    3367       _src: instance of type List (not function type)
    3368     returning
    3369       instance of type List (not function type)
    3370 
    3371 
    3372 decl is ?=?: automatically generated function
    3373   with parameters
    3374     _dst: pointer to instance of type List1 (not function type)
    3375     _src: instance of type List1 (not function type)
    3376   returning
    3377     instance of type List1 (not function type)
    3378   with body
    3379     CompoundStmt
    3380               Return Statement, returning: Applying untyped:
    3381     Name: ?=?
    3382 ...to:
    3383     Cast of:
    3384       Variable Expression: _dst: pointer to instance of type List1 (not function type)
    3385 
    3386     to:
    3387       pointer to pointer to instance of struct __anonymous0
    3388     Cast of:
    3389       Variable Expression: _src: instance of type List1 (not function type)
    3390 
    3391     to:
    3392       pointer to instance of struct __anonymous0
    3393 
    3394 
    3395 
    3396 newExpr is Variable Expression: ?=?: function
    3397     with parameters
    3398       _dst: pointer to instance of type List1 (not function type)
    3399       _src: instance of type List1 (not function type)
    3400     returning
    3401       instance of type List1 (not function type)
    3402 
    3403 
    3404 alternatives before prune:
    3405 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    3406     with parameters
    3407       _dst: pointer to instance of struct __anonymous0
    3408       _src: instance of struct __anonymous0
    3409     returning
    3410       instance of struct __anonymous0
    3411 
    3412 (types:
    3413     pointer to function
    3414         with parameters
    3415           _dst: pointer to instance of struct __anonymous0
    3416           _src: instance of struct __anonymous0
    3417         returning
    3418           instance of struct __anonymous0
    3419 
    3420 )
    3421 Environment:
    3422 
    3423 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    3424     with parameters
    3425       _dst: pointer to instance of struct __anonymous1
    3426       _src: instance of struct __anonymous1
    3427     returning
    3428       instance of struct __anonymous1
    3429 
    3430 (types:
    3431     pointer to function
    3432         with parameters
    3433           _dst: pointer to instance of struct __anonymous1
    3434           _src: instance of struct __anonymous1
    3435         returning
    3436           instance of struct __anonymous1
    3437 
    3438 )
    3439 Environment:
    3440 
    3441 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    3442     with parameters
    3443       _dst: pointer to instance of struct S2
    3444       _src: instance of struct S2
    3445     returning
    3446       instance of struct S2
    3447 
    3448 (types:
    3449     pointer to function
    3450         with parameters
    3451           _dst: pointer to instance of struct S2
    3452           _src: instance of struct S2
    3453         returning
    3454           instance of struct S2
    3455 
    3456 )
    3457 Environment:
    3458 
    3459 Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
    3460     with parameters
    3461       _dst: pointer to instance of struct S24
    3462       _src: instance of struct S24
    3463     returning
    3464       instance of struct S24
    3465 
    3466 (types:
    3467     pointer to function
    3468         with parameters
    3469           _dst: pointer to instance of struct S24
    3470           _src: instance of struct S24
    3471         returning
    3472           instance of struct S24
    34733473
    34743474)
     
    36193619            Name: *?
    36203620        ...to:
    3621             Variable Expression: _dst: pointer to instance of struct S2
     3621            Variable Expression: _dst: pointer to instance of struct S1
    36223622    Member Expression, with field:
    36233623      i: instance of type T (not function type)
    36243624    from aggregate:
    3625       Variable Expression: _src: instance of struct S2
     3625      Variable Expression: _src: instance of struct S1
    36263626
    36273627Error: No reasonable alternatives for expression Applying untyped:
     
    36353635            Name: *?
    36363636        ...to:
    3637             Variable Expression: _dst: pointer to instance of struct S24
     3637            Variable Expression: _dst: pointer to instance of struct S2
    36383638    Member Expression, with field:
    36393639      i: instance of type T (not function type)
    36403640    from aggregate:
    3641       Variable Expression: _src: instance of struct S24
     3641      Variable Expression: _src: instance of struct S2
    36423642
    36433643Error: No reasonable alternatives for expression Applying untyped:
  • src/Tests/Expect-s/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-s/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    44Adding type T
    55Adding function ?+?
    6 --- Entering scope
    7 --- Leaving scope containing
    8 Adding function ?=?
    96--- Entering scope
    107--- Leaving scope containing
     
    3633Adding object p
    3734--- Leaving scope containing
     35Adding fwd decl for struct S1
     36--- Entering scope
     37--- Entering scope
     38--- Leaving scope containing
     39Adding type T
     40--- Leaving scope containing
     41T
     42Adding struct S1
     43Adding fwd decl for struct S1
     44--- Entering scope
     45--- Entering scope
     46--- Leaving scope containing
     47Adding type T
     48Adding object i
     49--- Leaving scope containing
     50T
     51Adding struct S1
     52--- Entering scope
     53--- Leaving scope containing
     54Adding object v1
     55--- Entering scope
     56--- Leaving scope containing
     57Adding object p
    3858Adding fwd decl for struct S2
    3959--- Entering scope
     
    4565T
    4666Adding struct S2
    47 Adding struct S3 from implicit forward declaration
    48 --- Entering scope
    49 --- Leaving scope containing
    50 Adding object v1
    51 --- Entering scope
    52 --- Leaving scope containing
    53 Adding object p
    54 Adding fwd decl for struct S24
    55 --- Entering scope
    56 --- Entering scope
    57 --- Leaving scope containing
    58 Adding type T
    59 Adding object i
    60 --- Leaving scope containing
    61 T
    62 Adding struct S24
    6367--- Entering scope
    6468--- Leaving scope containing
  • src/Tests/Expect-v/AsmName.txt

    rb5b0907 rea9b9d3  
    1 x: extern signed int
     1x: auto signed int
    22fred: function
    33    with parameters
  • src/Tests/Expect-v/Attributes.txt

    rb5b0907 rea9b9d3  
    1 Error at line 58 reading token "*"
     1Error at line 8 reading token "*"
  • src/Tests/Expect-v/Context.txt

    rb5b0907 rea9b9d3  
    5454
    5555
    56         Declaration of x: extern type
     56        Declaration of x: auto type
    5757        Declaration of ?=?: automatically generated function
    5858            with parameters
     
    6262              instance of type x (not function type)
    6363
    64         Declaration of y: extern type
     64        Declaration of y: auto type
    6565          with assertions
    6666            instance of context has_r
  • src/Tests/Expect-v/Functions.txt

    rb5b0907 rea9b9d3  
    165165      CompoundStmt
    166166
    167 fII3: extern function
    168     with parameters
    169       i: signed int
    170     returning
    171       signed int
    172     with body
    173       CompoundStmt
    174 
    175 fII4: extern function
     167fII3: auto function
     168    with parameters
     169      i: signed int
     170    returning
     171      signed int
     172    with body
     173      CompoundStmt
     174
     175fII4: auto function
    176176    with parameters
    177177      i: signed int
     
    249249      CompoundStmt
    250250
    251 fO4: extern function
     251fO4: auto function
    252252      accepting unspecified arguments
    253253    returning
     
    260260      CompoundStmt
    261261
    262 fO5: extern function
     262fO5: auto function
    263263      accepting unspecified arguments
    264264    returning
  • src/Tests/Expect-v/TypeGenerator.txt

    rb5b0907 rea9b9d3  
    140140      signed int
    141141
     142struct S1
     143    with parameters
     144      T: type
     145
     146struct S1
     147    with parameters
     148      T: type
     149
     150    with members
     151      i: instance of type T (not function type)
     152
     153?=?: automatically generated inline static function
     154    with parameters
     155      _dst: pointer to instance of struct S1
     156      _src: instance of struct S1
     157    returning
     158      instance of struct S1
     159    with body
     160      CompoundStmt
     161                  Expression Statement:
     162            Applying untyped:
     163                Name: ?=?
     164            ...to:
     165                Address of:
     166                  Member Expression, with field:
     167                    i: instance of type T (not function type)
     168                  from aggregate:
     169                    Applying untyped:
     170                        Name: *?
     171                    ...to:
     172                        Variable Expression: _dst: pointer to instance of struct S1
     173                Member Expression, with field:
     174                  i: instance of type T (not function type)
     175                from aggregate:
     176                  Variable Expression: _src: instance of struct S1
     177
     178                  Return Statement, returning: Variable Expression: _src: instance of struct S1
     179
     180
     181
     182v1: instance of struct S1
     183  with parameters
     184    signed int
     185
     186p: pointer to instance of struct S1
     187  with parameters
     188    signed int
     189
    142190struct S2
    143191    with parameters
     
    176224
    177225
    178 v1: instance of struct S3
    179   with parameters
    180     signed int
    181 
    182 p: pointer to instance of struct S3
    183   with parameters
    184     signed int
    185 
    186 struct S24
    187     with parameters
    188       T: type
    189 
    190     with members
    191       i: instance of type T (not function type)
    192 
    193 ?=?: automatically generated inline static function
    194     with parameters
    195       _dst: pointer to instance of struct S24
    196       _src: instance of struct S24
    197     returning
    198       instance of struct S24
    199     with body
    200       CompoundStmt
    201                   Expression Statement:
    202             Applying untyped:
    203                 Name: ?=?
    204             ...to:
    205                 Address of:
    206                   Member Expression, with field:
    207                     i: instance of type T (not function type)
    208                   from aggregate:
    209                     Applying untyped:
    210                         Name: *?
    211                     ...to:
    212                         Variable Expression: _dst: pointer to instance of struct S24
    213                 Member Expression, with field:
    214                   i: instance of type T (not function type)
    215                 from aggregate:
    216                   Variable Expression: _src: instance of struct S24
    217 
    218                   Return Statement, returning: Variable Expression: _src: instance of struct S24
    219 
    220 
    221 
    222 v2: instance of struct S24
     226v2: instance of struct S2
    223227  with parameters
    224228    signed int
  • src/Tests/TypeGenerator.c

    rb5b0907 rea9b9d3  
    1111[int] h( * List1( int ) p );                                                    // new declaration syntax
    1212
    13 struct( type T ) S2 { T i; };                                                   // actual definition
    14 struct( int ) S3 v1, *p;                                                                // expansion and instantiation
    15 struct( type T )( int ) S24 { T i; } v2;                                // actual definition, expansion and instantiation
     13struct( type T ) S1;                                                                    // forward definition
     14struct( type T ) S1 { T i; };                                                   // actual definition
     15struct( int ) S1 v1, *p;                                                                // expansion and instantiation
     16struct( type T )( int ) S2 { T i; } v2;                                 // actual definition, expansion and instantiation
    1617struct( type T )( int ) { T i; } v2;                                    // anonymous actual definition, expansion and instantiation
    1718
  • src/Tuples/AssignExpand.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:16:39 2015
    13 // Update Count     : 4
     12// Last Modified On : Mon May 18 11:24:47 2015
     13// Update Count     : 2
    1414//
    1515
     
    2323#include "AssignExpand.h"
    2424
    25 #include "Parser/ParseNode.h"
    26 
    2725#include "SynTree/Type.h"
     26#include "SynTree/Statement.h"
     27#include "SynTree/Expression.h"
    2828#include "SynTree/Declaration.h"
    29 #include "SynTree/Expression.h"
    30 #include "SynTree/Statement.h"
    3129
    3230namespace Tuples {
     
    102100                                        assert( rhsT->get_results().size() == 1 );
    103101                                        // declare temporaries
    104                                         ObjectDecl *lhs = new ObjectDecl( temporaryNamer.newName("_lhs_"), DeclarationNode::NoStorageClass, LinkageSpec::Intrinsic, 0,
     102                                        ObjectDecl *lhs = new ObjectDecl( temporaryNamer.newName("_lhs_"), Declaration::NoStorageClass, LinkageSpec::Intrinsic, 0,
    105103                                                                                                          lhsT->get_results().front(), 0 );
    106104                                        decls.push_back( new DeclStmt( std::list< Label >(), lhs ) );
    107                                         ObjectDecl *rhs = new ObjectDecl( temporaryNamer.newName("_rhs_"), DeclarationNode::NoStorageClass, LinkageSpec::Intrinsic, 0,
     105                                        ObjectDecl *rhs = new ObjectDecl( temporaryNamer.newName("_rhs_"), Declaration::NoStorageClass, LinkageSpec::Intrinsic, 0,
    108106                                                                                                          rhsT->get_results().front(), 0);
    109107                                        decls.push_back( new DeclStmt( std::list< Label >(), rhs ));
  • src/Tuples/FunctionChecker.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 08:17:19 2015
    13 // Update Count     : 4
     12// Last Modified On : Mon May 18 11:59:55 2015
     13// Update Count     : 3
    1414//
    1515
     
    7575                if ( applicationExpr->get_results().size() > 1 ) {
    7676                        for ( std::list< Type *>::iterator res = applicationExpr->get_results().begin(); res != applicationExpr->get_results().end(); res++ )
    77                                 temporaries.push_back( new ObjectDecl( nameGen->newName(), DeclarationNode::Auto, LinkageSpec::AutoGen, 0, (*res )->clone(), 0 ) );
     77                                temporaries.push_back( new ObjectDecl( nameGen->newName(),Declaration::Auto,LinkageSpec::AutoGen, 0, (*res )->clone(), 0 ) );
    7878
    7979                        assert( ! temporaries.empty() );
  • src/main.cc

    rb5b0907 rea9b9d3  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 12 06:56:40 2015
    13 // Update Count     : 70
     12// Last Modified On : Thu Jun 11 11:06:04 2015
     13// Update Count     : 69
    1414//
    1515
     
    5454        if ( errorp ) std::cerr << x << std::endl;
    5555
    56 void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false );
     56void parse(FILE * input, LinkageSpec::Type t, bool shouldExit = false );
    5757
    5858bool
     
    277277                        delete output;
    278278                } // if
     279
    279280        } catch ( SemanticError &e ) {
    280281                if ( errorp ) {
     
    304305} // main
    305306
    306 void parse( FILE * input, LinkageSpec::Type linkage, bool shouldExit ) {
     307void parse(FILE * input, LinkageSpec::Type linkage, bool shouldExit) {
    307308        Parser::get_parser().set_linkage( linkage );
    308309        Parser::get_parser().parse( input );
Note: See TracChangeset for help on using the changeset viewer.